Eğer/then tuzak uygulaması

*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, 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.

  1. Bir tuzak parçası oluşturun ve adlandırın. Parçaya bir script ekleyin.

  2. 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 yap
    local trapPart = script.Parent
  3. onTouch() 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 yap
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Fonksiyonu, bir şeyin parçaya dokunduğunda çalışması için tuzak parçasının Touched olayına bağlayın.


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

  1. onTouch() içinde local character = otherPart.Parent yazın.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- otherPart'ın ebeveyn nesnesini bulur
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. character'ın bir Humanoid olup olmadığını kontrol edin:

    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 if ifadesi ile kontrol et

Eğer bir Humanoid bulunursa, o zaman Humanoid'in Sağlığını sıfıra ayarlayın.

  1. local humanoid'a başarılı bir şekilde bir Humanoid atandığını kontrol etmek için bir if ifadesi kullanın.


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


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

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

    Tamamlanmış script

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

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.