Eğer/sonra Tuzaklarla Uzaktan Pratik

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

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.

  1. Bir tuzak parçası oluştur ve adlandır. Parçaya bir kripti gir.

  2. 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 ayarla
    local trapPart = script.Parent
  3. otherPart 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
  1. Bir şey Touched etkinliğine bağlayın, herhangi bir şey parçaya dokunduğunda çalıştırın.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.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

  1. In onTouch() , type local character = otherPart.Parent .


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Diğer bir parçanın ebeveyn objesini bulur
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Character ın bir Humanoid ı olup olmadığını görmek için yazdırın:

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

Bir ifade ile kontrol

Bir Humanoid bulunursa, Humanoid'in Sağlığını sıfırlayın.

  1. Bir Humanoid'ın local humanoid 'e başarıyla atanıp atanmadığını kontrol etmek için bir ifade kullanın.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Bir Humanoid'i bulup bulmadığını değerlendirir
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Bir print ifadesi ekleyin ve kodu şimdiye kadar kontrol edin.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Bir Humanoid'i bulup bulmadığını değerlendirir
    if humanoid then
    print("Found a Humanoid")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. 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.

  1. then ve end arasında, humanoid.Health = 0 yazın.

    Komplete edilen kript

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Bir Humanoid'i bulup bulmadığını değerlendirir
    if humanoid then
    print("Found a Humanoid")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. 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