In Einführung in die Skriptierung hast du gelernt, wie du Änderungen an einer Erfahrung im Laufe der Zeit in einer Schleife vornehmen kannst.Was ist, wenn du Änderungen vornehmen möchtest, die auf dem Verhalten des Benutzers basieren? In diesem Tutorial lernst du, wie du einen tödlichen Lavaboden herstellst, der Benutzer tötet, wenn sie darauf treten.
Einrichten
Du brauchst einen Ort in deiner Welt, um die tödliche Lava hineinzustellen.Wenn du dem Kurs Einführung in das Skripting folgtest, würde der Lavaboden gut in die Lücke passen, die von den verschwindenden Plattformen abgedeckt wird.
Füge ein Part ein und stelle es in deiner Welt ein. Benenne es LavaFloor .
Größe es an, damit es den Boden des umschließenden Platzabdeckt.
Lassen Sie den Boden wie Lava aussehen, indem Sie die Eigenschaft Material auf Neon und die Color auf eine orange Farbe einstellen.
Füge ein Skript in den LavaFloor Teil ein und benenne es in Kill um.
Entferne den Standardcode und erstelle eine Variable für die Lava.
local lava = script.Parent
Mit einem Ereignis verbinden
Verwende ein Ereignis , um zu erkennen, wann ein Benutzer die Lava berührt.Jedes Teil hat ein Touched-Ereignis, das abgefeuert wird, wenn etwas es berührt.Du kannst dich diesem Ereignis verbinden, um eine Funktion auszuführen, wenn es feuert.
Erkläre eine neue Funktion namens kill.
Greife auf das Touched auf dem Lavaprojekt mit einem Punkt zu, genau wie eine Eigenschaften: lava.Touched.
Rufe die Connect-Funktion auf das Touched-Ereignis auf und übermittle kill() als Funktion, die aufgerufen wird, wenn das Teil berührt wird.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Jeder Code, den du in der kill-Funktion schreibst, wird jetzt immer dann ausgeführt, wenn etwas die Lava berührt.Beachten Sie, dass eine Kolonne für die Connect Funktion verwendet wird, nicht ein Punkt - keine Sorge darüber, warum zu diesem Zeitpunkt, denken Sie nur an den Unterschied.
Holen Sie sich das berührende Teil
Um den Benutzer zu töten, wird die Funktion ein Objekt benötigen, das mit diesem Benutzer verbunden ist.Das Ereignis einer Teile Touched kann den "anderen Teil" liefern, der es berührt hat - aber nur, wenn du es anforderst, indem du es zu einem Parameter der Funktion machst.
Parameter sind Definitionen dessen, was eine Funktion erwartet, wenn sie aufgerufen wird.Ein Parameter kann in einer Funktion genutzt werden, genau wie jede andere Variable.Du kannst Informationen an einen Parameter übergeben, indem du ihn in den Klammern einschließt, wenn eine Funktion aufgerufen wird. Parameter werden in den Klammern auf der ersten Zeile einer Funktion definiert.Erstellen Sie einen Parametern mit dem Namen otherPart für die kill.
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Wenn die kill-Funktion aufgerufen wird, repräsentiert der otherPart-Parameter den Teil, der den Lavaboden berührt hat, und der Code, den Sie in der Funktion schreiben, kann ihn verwenden.
Charakter und Humanoid
Wenn ein Benutzer die Lava berührt, kann Roblox den spezifischen Körperteil des Benutzers erkennen, das es berührt hat, wie das linke Bein oder der rechte Fuß.Dieser Teil ist im Modell des Benutzers Charakter , das alle Objekte enthält, aus denen sich der Avatar des Benutzers im Erlebnis zusammensetzt, einschließlich:
- Die einzelnen Körperteile des Benutzers wie Kopf, Gliedmaßen und Torso.
- Alle Kleidung und Accessoires, die vom Benutzer getragen werden.
- Die Humanoid, ein spezielles Objekt, das viele Eigenschaften enthält, die sich auf den Benutzer beziehen, einschließlich der Gesundheit des Benutzers.
- Die HumanoidRootPart, die die Bewegung des Benutzers steuert.
Wie bereits erwähnt, ist jedes Körperteil, das die Lava berührt, Teil des Modell, sodass du mit otherPart.Parent auf diesen Charakter referenzieren kannst.Erstelle eine Variable, um die Eltern des Teils zu speichern, das die Lavaplatte berührt hat.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
Aus dem Modellmusst du das Humanoid-Objekt erhalten, um den Benutzer zu töten.Du kannst das mit der FindFirstChild()-Funktion tun - gib ihr einfach den Namen der Sache, die du suchst, und sie gibt das erste passende Kind aus, das sie in diesem Objekt findet.Rufen Sie FindFirstChild() auf die partParent Variable mit "Humanoid" als Kind, um das Ergebnis zu finden und in einer neuen Variable namens humanoid zu speichern.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
Überprüfe den Humanoiden
Du kannst leicht überprüfen, ob der Humanoid mit einer if -Anweisung gefunden wurde.Der Code in einem if-Statement wird nur ausgeführt, wenn die in der ersten Zeile definierte Bedingung wahr ist.
Es gibt eine Vielzahl von Betreibern, die verwendet werden können, um komplexere Bedingungen zu erstellen, denen Sie in zukünftigen Kursen begegnen werden - für jetzt stellen Sie einfach die humanoid dort bereit.Erstelle ein if Statement mit humanoid 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)
Zeichengesundheit festlegen
Jetzt, da die Humanoid überprüft wurde, können seine Eigenschaften geändert werden.Wenn du seine HealthEigenschaft auf 0 festlegst, stirbt der zugeordnete Charakter.Im Körper der if-Anweisung setze die Eigenschaft Health des Humanoiden 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 erfolgreich beim kontaktierentötet.Versuche, deine Lava als zusätzliche Herausforderung in einem Obby oder als Grenze für eine Welt zu verwenden.
Letzter Codes
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)