Orta seviye öğreticiler

Ölümcül Lava

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

In Giriş Scripting, you learned how to make changes in an experience in a loop over time. What if you want to make changes based on user behavior? In this tutorial, you'll learn how to make a deadly lava floor which kills users when they step on it.

Kurulum

Dünyanızda ölümcül lav için bir yer ayarlamanız gerekiyor. Eğer Giriş Scripting kursunu takip ettiyseniz, lava zemin kaybolan platformların kapladığı boşluğa güzel bir şekilde oturacaktır.

  1. Bir Part ekleyin ve dünyanın içinde uygun bir yere yerleştirin. Adını LavaFloor koyun.

  2. Zemin alanını kaplayacak şekilde boyutlandırın.

  3. Zeminin lav gibi görünmesini sağlamak için Material özelliğini Neon ve Color özelliğini turuncu bir ton olarak ayarlayın.

  4. LavaFloor parçasına bir Script ekleyin ve adını Kill olarak değiştirin.

  5. Varsayılan kodu kaldırın ve lava için bir değişken oluşturun.


    local lava = script.Parent

Bir etkinliğe bağlanın

Kullanıcının lavı dokunduğunu tespit etmek için bir etkinlik kullanın. Her parça, bir şeyin dokunması durumunda tetiklenen bir Touched etkinliğine sahiptir. Bu etkinliğe bağlanarak, tetiklendiğinde bir fonksiyon çalıştırabilirsiniz.

  1. kill adında yeni bir fonksiyon tanımlayın.

  2. Lava nesnesi üzerindeki Touched etkinliğine nokta ile erişin, tıpkı bir özellik gibi: lava.Touched.

  3. Touched etkinliğinde Connect fonksiyonunu çağırın, parça dokunduğunda çağrılacak fonksiyon olarak kill() gönderin.


    local lava = script.Parent
    local function kill()
    end
    lava.Touched:Connect(kill)

Yazdığınız herhangi bir kod kill fonksiyonu içinde, bir şey lavı dokunduğunda çalışacaktır. Connect fonksiyonu için üste (colon) kullanıldığını ve nokta kullanılmadığını unutmayın - bu durumda neden böyle olduğunu düşünmeyin, sadece farkı hatırlayın.

Dokunan parçayı alın

Kullanıcıyı öldürmek için, fonksiyonun o kullanıcı ile ilişkili bir nesneye ihtiyacı vardır. Bir parçanın Touched etkinliği, ona dokunan "diğer parçayı" sağlayabilir - ancak bunu fonksiyonun bir parametre haline getirerek talep etmelisiniz.

Parametreler, bir fonksiyonun çağrıldığında ne alması gerektiğini tanımlayan ifadelerdir. Bir parametre, fonksiyonda tıpkı başka bir değişken gibi kullanılabilir. Bir fonksiyon çağrıldığında, bilgiyi parametreye dahil ederek geçirebilirsiniz. Parametreler bir fonksiyonun ilk satırındaki parantezlerde tanımlanır. kill fonksiyonu için otherPart adında bir parametre oluşturun.


local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)

kill fonksiyonu çağrıldığında, otherPart parametresi lav zeminine dokunan parçayı temsil eder ve fonksiyon içinde yazacağınız kod onu kullanabilir.

Karakter ve humanoid

Bir kullanıcı lavı dokunduğunda, Roblox kullanıcının dokunan vücut parçasını, örneğin sol bacak veya sağ ayak gibi, tespit edebilir. Bu parça kullanıcının Karakter modelindedir ve bu model, deneyimdeki kullanıcının avatarını oluşturan tüm nesneleri içerir:

  • Kullanıcının başı, uzuvları ve gövdesi gibi bireysel vücut parçaları.
  • Kullanıcının giydiği kıyafetler ve aksesuarlar.
  • Kullanıcının sağlığıyla ilgili birçok özelliği içeren özel bir nesne olan Humanoid.
  • Kullanıcının hareketlerini kontrol eden HumanoidRootPart.

Daha önce belirtildiği gibi, lava ile temas eden herhangi bir vücut parçası Karakter modelinin bir parçasıdır, bu nedenle otherPart.Parent ile o karaktere bir referans alabilirsiniz. Lava zeminine dokunan parçanın ebeveynini saklamak için bir değişken oluşturun.


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)

Karakter modelinden, kullanıcıyı öldürmek için Humanoid nesnesini almanız gerekecek. Bunu FindFirstChild() fonksiyonu ile yapabilirsiniz — aradığınız şeyin adını geçerek, bu nesnede bulduğu ilk eşleşen alt öğeyi sağlar. partParent değişkeni üzerinde FindFirstChild() çağrısını gerçekleştirin ve "Humanoid" adlı çocuğu bulup sonucu humanoid adında yeni bir değişkende saklayın.


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)

Humanoid'u kontrol et

Humanoid'in bulunup bulunmadığını kolayca kontrol edebilirsiniz, bir if ifadesi kullanarak. Bir if ifadesindeki kod, yalnızca ilk satırda tanımlanan koşul doğru olduğunda çalışacaktır.

Gelişmiş koşullar oluşturmak için kullanılabilecek çeşitli operatörler vardır ve ilerleyen derslerde bunlarla karşılaşacaksınız - şimdilik, humanoid değişkenini oraya koyun. humanoid değişkeni koşuluyla bir if ifadesi oluşturun.


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)

Karakter sağlığını ayarlayın

Artık Humanoid kontrol edildiğine göre, özellikleri değiştirebilirsiniz. Onun Health özelliğini 0 olarak ayarlarsanız, ilişkili Karakter ölür. If ifadesinin içinde, humanoid'in Health özelliğini 0 olarak ayarlayın.


local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)

Böylece lava zeminini tamamladınız! Deneyiminizi test edin ve ölümcül lavınızın temas ettiğinde kullanıcıları başarıyla öldürdüğünü göreceksiniz. Lavınızı bir obby'de ek bir zorluk olarak kullanmayı veya bir dünyanın sınırı olarak denemeyi düşünün.

Nihai kod


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.