Oyuncuların sağlığını azaltan tuzaklar eğlenceli bir oyun oynama öğesi kodlanabilir kondisyonlarla. Kondisyonları uygulamak için bir parça oluşturarak oyuncunun sağlığını sıfıra kadar yapılandırın.
Tuzak ayarlanıyor
Hareket tabanlı zorluklar, obbyler gibi deneyimlerde çok iyi çalışır. Bu adımlar, ilk olarak gerekli değişkenleri ve işlevleri ayarlayarak başlar. Kod kutularını ilk olarak görmek yerine olabildiğince çok yapın.
Bir tuzak parçası oluştur ve adlandır. Parçaya bir kripti gir.
Kodda açıklayıcı bir yorum ekleyin ve ardından kodun ebeveynine referans vermek için bir değişken kullanın.
-- Bir oyuncu bu parçaya dokunursa, sağlığını 0 olarak ayarlalocal trapPart = script.ParentotherPart ile adlandırılmış bir işlev oluşturun.
-- Bir oyuncu bu parçaya dokunursa, sağlığını 0 olarak ayarla
local trapPart = script.Parent
local function onTouch(otherPart)
end
Bir şey Touched etkinliğine bağlayın, herhangi bir şey parçaya dokunduğunda çalıştırın.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Oyuncu Dokunuşunu Kontrol Etme
Unutmayın, otherPart parçasının herhangi bir yere dokunduğu kaydedilir, bu bir oyuncunun veya sadece bir baseplate'in bir parçası olabilir.
Tuzak sadece oyuncuları yok edeceğinden ve rastgele dekor öğelerini yok edeceğinden emin olmak için bir if/then ifade kullanın, böylece otherPart içindeki herhangi bir şeyin bir Humanoid nesnesini içerdiğinden emin olabilirsiniz.
Belirli Bir Objeyi Bulma
Kullanıcılar, yuvarlak türündeki bir nesneyi ararken özellikli nesne türleri aranabilir, bu da yararlıdır, çünkü yuvarlak türündeki bir nesneyi arıyoruz. Oyuncular sadece bir avatar parçasıyla yakalanıyor, bu yüzden bir değişken ayarlanmalıdır, böylece dokunan parçanın ebeveyni bulunur ve
In onTouch() , type local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- Diğer bir parçanın ebeveyn objesini bulurlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Character ın bir Humanoid ı olup olmadığını görmek için yazdırı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 ifade ile kontrol
Bir Humanoid bulunursa, Humanoid'in Sağlığını sıfırlayın.
Bir Humanoid'ın local humanoid 'e başarıyla atanıp atanmadığını kontrol etmek için bir ifade kullanın.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bir Humanoid'i bulup bulmadığını değerlendiririf humanoid thenendendtrapPart.Touched:Connect(onTouch)Bir print ifadesi ekleyin ve kodu şimdiye kadar kontrol edin.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bir Humanoid'i bulup bulmadığını değerlendiririf humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)Run kodunu çalıştırın ve bir oyuncu bir parçaya dokunduğunda çıktıyı görebileceğinizden emin olun.
Oyuncunun Sağlığını Değiştirme
Eğer ifade doğruysa, oyuncunun sağlığını 0'a ayarlamak için aynı insanoid değişkenini kullanabilirsiniz.
then ve end arasında, humanoid.Health = 0 yazın.
Komplete edilen kriptlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bir Humanoid'i bulup bulmadığını değerlendiririf humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Tuzak test edin.
Özet
Bu tuzak parçası, Humanoid parçalarını tespit etmek için koşulları kullanır ve Humanoid'ın sağlığını sıfıra ayarlar. Bu senaryo, önceki tuzak senaryosuna bir geliştirme olarak, herhangi bir dokunmatik nesneyi yok etmez.
Ancak, hala birkaç eksikliği var. Humanoid'ler sadece oyuncuların sağlığını ayarlar. Humanoid'ler ayrıca oynanabilir karakterlerde de bulunur. Skript sadece oyuncunun sağlığını sıfırlayarak iyidir. Daha az sağlık çekmek için biraz sağlık çekmek için deneyebilirsin