Oyuncuların sağlığını azaltan tuzaklar, koşullu ifadelerle kodlanabilen eğlenceli bir oyun öğesidir.Dokununca oyuncunun sağlığını sıfıra ayaran bir parça oluşturarak koşulları uygulayın.
Tuzak kuruldu
Tuzaklar, hareket tabanlı zorluklarla ilgili deneyimlerde istisnai derecede iyi çalışır, örneğin obby'ler.Bu adımlar gerekli değişkenleri ve işlevleri ayarlayarak başlayacaktır.Önce kod kutularına bakmadan mümkün olduğunca fazla yapın.
Bir tuzak parçası oluştur ve adlandır. Parçaya bir senaryo ekleyin.
Senaryoda açıklayıcı bir yorum ekleyin ve ardından senaryonun ebeveynini referans olarak kullanmak için bir değişken kullanın.
-- Bir oyuncu bu parçaya dokunursa, sağlığını 0'a ayarlayınlocal trapPart = script.ParentBir parametreyle adlandırılan onTouch() fonksiyonu oluşturun, adı otherPart olan bir parametre ile.
-- Bir oyuncu bu parçaya dokunursa, sağlığını 0'a ayarlayınlocal trapPart = script.Parentlocal function onTouch(otherPart)endİşlevi, parçaya herhangi bir şey dokunduğunda çalıştırmak için tuzağın Touched etkinliğine bağlayın.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Oyuncu dokunuşunu kontrol et
Hatırla, parametre otherPart herhangi bir tuzak parçasına dokunan her şeyi kaydeder, ki bu bir oyuncunun veya sadece temel plakanın bir parçası olabilir.
Tuzak yalnızca oyuncuları yok edecek ve rastgele dekoratif öğeleri yok edecek olmadığından emin olmak için, otherPart içinde ne varsa kontrol etmek için bir if/then ifadesi kullanın, bir Humanoid nesnesi içeriyor mu.
Belirli bir nesneyi bul
İşlev FindFirstChildWhichIsA() belirli nesne türlerini aramak için kullanılabilir, ki bu yararlı çünkü bir Humanoid türü nesne arıyoruz.Oyuncular muhtemelen avatarlarının sadece bir kısmıyla tuzağa dokunacaklar, bu yüzden dokunan parçanın ebeveynini bulmak ve bir Humanoid'i aramak için bir değişken kurulmalıdır.
In onTouch() , type local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- DiğerParçacığın ebeveyn nesnesini bulurlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Kontrol etmek için character 'nin bir Humanoid 'ye sahip olup olmadığını yazın:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Bir if ifadesi ile kontrol et
Bir Humanoid bulunursa, Humanoid'in sağlığını sıfıra ayarlayın.
Bir Humanoid'in başarıyla local humanoid 'ye atandığını kontrol etmek için bir if ifadesi kullanın.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bir Humanoid bulunduğunu değerlendiririf humanoid thenendendtrapPart.Touched:Connect(onTouch)Bir yazdırma ifadesi ekleyin ve şimdiye kadar kodu kontrol edin.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bir Humanoid bulunduğunu değerlendiririf humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)Kodu çalıştırın ve bir oyuncu parçaya dokunduğunda çıktıyı görebileceğinizi kontrol edin.
oyuncusağlığını değiştir
Eğer ifade doğruysa, oyuncunun sağlığını 0'a ayarlamak için aynı insansız varyantı kullanabilirsiniz.
Arasında then ve end arasında, humanoid.Health = 0 yazın.
Tamamlanmış senaryolocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bir Humanoid bulunduğunu değerlendiririf humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Tuzak test edin.
Özet
Bu tuzak parçası koşulları kullanarak Humanoid parçalarını tespit etti ve Humanoid'in sağlığını sıfıra ayarlandı.Bu senaryo, ne olursa olsun dokunan herhangi bir nesneyi yok eden önceki tuzağın kodunu geliştirir.
Ancak hala birkaç kusuru var.Humanoidler sadece oyuncuların içinde değildir.Humanoidler ayrıca oynanabilir olmayan karakterlerde de bulunur.Senaryo ayrıca sadece oyuncunun sağlığını sıfıra ayarlamak için iyidir.Küçük bir sağlık miktarını çıkararak deney yapabilirsiniz, ancak sağlığı istenenden daha hızlı çıkarması muhtemeldir.Daha sonraki dersler, oyunculara ne kadar sağlık çıkarılabileceği konusunda daha fazla kontrol vermek için daha fazla geliştirme sağlar.