Oyuncuların sağlığını azaltan tuzaklar, koşullu ifadelerle kodlanabilen eğlenceli bir oyun elemanıdır. Oyuncunun sağlığını sıfıra indiren bir parça oluşturarak koşullu ifadeleri kullanma pratiği yapın.
Tuzağı kurun
Tuzaklar, hareket temelli zorluk içeren deneyimlerde son derece iyi çalışır, örneğin obbi oyunlarında. Bu adımlar gerekli değişkenleri ve fonksiyonları kurmaya başlayacak. Öncelikle kod kutularına bakmadan elinizden gelenin en iyisini yapın.
Bir tuzak parçası oluşturun ve adlandırın. Parçaya bir script ekleyin.
Scriptte, açıklayıcı bir yorum ekleyin ve scriptin ebeveynine atıfta bulunmak için bir değişken kullanın.
-- Eğer bir oyuncu bu parçaya dokunursa, sağlığını 0 yaplocal trapPart = script.ParentonTouch() adında bir fonksiyon oluşturun ve bir parametre olarak otherPart kullanın.
-- Eğer bir oyuncu bu parçaya dokunursa, sağlığını 0 yaplocal trapPart = script.Parentlocal function onTouch(otherPart)endFonksiyonu, bir şeyin parçaya dokunduğunda çalışması için tuzak parçasının Touched olayına bağlayın.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Oyuncu dokunuşunu kontrol et
Unutmayın, otherPart parametresi tuzak parçasına dokunan her şeyi kaydeder, bu bir oyuncunun parçası veya sadece taban plakası olabilir.
Tuzakların sadece oyuncuları yok etmesini ve rastgele dekor öğelerini yok etmemesini sağlamak için, otherPart içindeki nesnenin bir Humanoid nesnesi içerip içermediğini kontrol etmek için bir if/then ifadeleri kullanın.
Belirli bir nesneyi bulma
FindFirstChildWhichIsA() fonksiyonu belirli nesne türlerini aramak için kullanılabilir, bu da işimize yarar çünkü bir Humanoid türü nesne arıyoruz. Oyuncular muhtemelen sadece avatarlarının bir kısmıyla tuzağa dokunacakları için, dokunan parçanın ebeveynini bulmak ve onu Humanoid için aramak üzere bir değişken ayarlamamız gerekiyor.
onTouch() içinde local character = otherPart.Parent yazın.
local trapPart = script.Parentlocal function onTouch(otherPart)-- otherPart'ın ebeveyn nesnesini bulurlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)character'ın bir Humanoid olup olmadığını kontrol edin:
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
Eğer bir Humanoid bulunursa, o zaman Humanoid'in Sağlığını sıfıra ayarlayın.
local humanoid'a başarılı bir şekilde bir Humanoid 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'in bulunup bulunmadığını değerlendiririf humanoid thenendendtrapPart.Touched:Connect(onTouch)Bir print ifadesi ekleyin ve şimdiki kodu kontrol edin.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bir Humanoid'in bulunup bulunmadığını değerlendiririf humanoid thenprint("Bir Humanoid buldum")endendtrapPart.Touched:Connect(onTouch)Kodu Çalıştırın ve bir oyuncu parçaya dokunduğunda çıktıyı görebildiğinizi kontrol edin.
Oyuncunun sağlığını değiştirme
Eğer ifade doğruysa, oyuncunun sağlığını 0 olarak ayarlamak için aynı humanoid değişkenini kullanabilirsiniz.
then ve end arasında humanoid.Health = 0 yazın.
Tamamlanmış scriptlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bir Humanoid'in bulunup bulunmadığını değerlendiririf humanoid thenprint("Bir Humanoid buldum")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Tuzağı test edin.
Özet
Bu tuzak parçası, Humanoid parçaları algılamak ve Humanoid'in sağlığını sıfıra ayarlamak için koşul ifadelerini kullandı. Bu script, dokunan her nesneyi yok eden önceki tuzak scriptine göre bir gelişmedir.
Ancak, hala birkaç kusuru var. Humanoidler sadece oyuncularda bulunmaz. Humanoidler ayrıca oynanabilir olmayan karakterlerde de vardır. Script, oyuncunun sağlığını sıfıra ayarlamakta da yalnızca iyidir. Küçük bir miktar sağlık çıkarma ile deneme yapabilirsiniz, ancak muhtemelen sağlığı istenenden daha hızlı çıkaracaktır. Daha sonraki dersler, oyunculardan ne kadar sağlığın çıkarılacağını kontrol etmek için daha fazla iyileştirme sunar.