In Einführung in Skripting hast du gelernt, wie man Änderungen in einem Erlebnis im Laufe der Zeit in einem Loop vor sich her ist. Was ist, wenn du Änderungen basierend auf dem Verhalten des Benutzers willst? In diesem Tutorial wirst du lernen, wie man einen tödlichen Lavaboden macht, der Benutzer zerstört, wenn sie darauf treten.
Einstellungen
Du brauchst einen Platz in deiner Welt, um die tödliche Lava zu platzieren. Wenn du den Einführung in Skripte Kurs abgeschlossen hast, passt die Lavaboden gut in die Kerbe, die von den verschwindenden Plattformen abgedeckt wird.
Fügen Sie ein Part ein und bewegen Sie es in Ihre Welt. Benennen Sie es LavaFloor .
Skaliere es, damit es den Boden des umgebenden Platzabdeckt.
Lassen Sie den Boden so aussehen, wie Lava, indem Sie die Eigenschaft Material auf Neon und die Farbe Color auf eine orangefarbene Farbe einstellen.
Fügen Sie ein Skript in den LavaFloor Teil ein und benennen Sie ihn zu Kill um.
Entfernen Sie den Standardcode und erstellen Sie eine Variable für die Lava.
local lava = script.Parent
Verbindung mit einem Ereignis
Verwenden Sie ein Ereignis , um zu erkennen, wenn ein Benutzer die Lava berührt. Jedes Teil hat ein Touched -Ereignis, das abgefeuert wird, wenn etwas sie berührt. Sie können verbinden mit diesem Ereignis, um eine Funktion auszuführen, wenn es abgefeuert wird.
Erkläre eine neue Funktion, die kill heißt.
Zugriff auf das Touched -Ereignis auf dem Lava-Objekt mit einem Punkt, genau wie eine Eigenschaften: lava.Touched .
Rufe die Funktion Connect auf dem Ereignis Touched auf, indem du die Funktion kill aufrufst.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Jeder Code, den du in der kill-Funktion schreibst, wird jetzt ausgeführt, wenn etwas die Lava berührt. Beachte, dass ein Komma für die Connect-Funktion verwendet wird, und 1> nicht1> ein Punkt - keine Sorge darüber, warum in diesem Moment einfach den Unterschied bemerkst.
Den berührenden Teil erhalten
Um den Benutzer zu töten, wird die Funktion ein Objekt benötigen, das mit diesem Benutzer verbunden ist. Ein Teil's Touched -Ereignis kann das "Andere Teil" bieten, das es berührt hat, aber nur, wenn du es anfragest, indem du es zu einem Parameter der Funktion macht.
Parameter sind Definitionen, was eine Funktion erwartet, wenn sie aufgerufen wird. Ein Parameter kann in einer Funktion verwendet werden, wie jede andere Variable. Sie können Informationen an einen Parameter übergeben, indem Sie ihn in die Elternzeit einfügen, wenn eine Funktion aufgerufen wird. Parameter werden in den Elternzeit in der ersten Zeile einer Funktion definiert. Erstellen Sie einen Parameter mit dem Namen otherPart für die F
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Wenn die Funktion kill aufgerufen wird, stellt der otherPart-Parameter die Teil dar, die den Lavaboden berührt hat, und der Code, den Sie in der Funktion schreiben, wird in der Lage sein, ihn zu verwenden.
Charakter und Humanoid
Wenn ein Benutzer die Lava berührt, kann Roblox die spezifische Körperstelle des Benutzers, die sie berührt hat, wie das linke Bein oder das rechte Bein, erkennen. Dieser Teil ist im Charakter-Modell des Benutzers, das alle Objekte enthält, aus denen sich der Avatar des Benutzers in der Erlebniszusammensetzt, einschließlich:
- Die einzelnen Körperteile des Benutzers wie der Kopf, Gliedmaßen und Torso.
- Alle Kleidung und Zubehör, die der Benutzer trägt.
- Das Humanoid, ein spezielles Objekt, das viele Eigenschaften enthält, die dem Benutzer zugewiesen sind, einschließlich der Gesundheit des Benutzers.
- Die HumanoidRootPart, die die Bewegung des Benutzers steuert.
Wie zuvor erwähnt, ist jedes Körperteil, das die Lava berührt, Teil des Modell, so dass Sie eine Verweis auf diesen Charakter mit otherPart.Parent erhalten können. Erstellen Sie eine Variable, um den Elternteil des Teils zu speichern, der die Lava-Boden berührt.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
Vom Modellaus müssen Sie das Humanoid-Objekt erhalten, um den Benutzer zu töten. Sie können dies mit der FindFirstChild() -Funktion tun, passen Sie einfach den Namen der Sache ein, die Sie suchen, und bieten Sie das erste übereinstimmende Kind, das Sie in diesem Objekt finden,
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
Humanoid überprüfen
Sie können leicht überprüfen, ob die Humanoid mit einer if Aussage gefunden wurde. Der Code in einer if-Anweisung wird nur ausgeführt, wenn die Bedingung in der ersten Zeile wahr ist.
Es gibt eine Reihe von Betreiber, die verwendet werden können, um komplexere Bedingungen zu erstellen, mit denen Sie in zukünftigen Kursen auftreten werden - für jetzt, einfügen Sie einfach die humanoid Variable da. Erstellen Sie eine if Anweisung mit 2>humanoid2> als Bedingung.
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)
Charakter-Gesundheit einstellen
Jetzt, da der Humanoid überprüft wurde, können seine Eigenschaften geändert werden. Wenn Sie seine Health Eigenschaft auf 0 setzen, stirbt der mit dem Charakter verbundene Charakter. Im Körper der if-Anweisung setzen Sie die Eigenschaft 1>Health1> des Humanoid auf 0.
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)
Damit ist dein Lavaboden fertig! Teste deine Erfahrung und du solltest finden, dass deine tödliche Lava Benutzer bei kontaktierenerfolgreich tötet. Versuche, deine Lava als zusätzliche Herausforderung in einem Obby oder als Grenze für eine Welt zu verwenden.
End-Code
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)