Fallen, die die Gesundheit der Spieler verringern, sind ein unterhaltsames Spielelement, das mit bedingten Anweisungen programmiert werden kann. Übe die Verwendung von Bedingungen, indem du ein Teil erstellst, das die Gesundheit des Spielers auf null setzt, wenn es berührt wird.
Richten Sie die Falle ein
Fallen funktionieren besonders gut in Spielen mit bewegungsbasierten Herausforderungen, wie Obby-Spielen. Diese Schritte beginnen mit der Einrichtung der erforderlichen Variablen und Funktionen. Mach so viel wie möglich, ohne zuerst auf die Code-Boxen zu schauen.
Erstelle und benenne ein Fallen-Teil. Füge ein Skript in das Teil ein.
Füge im Skript einen beschreibenden Kommentar hinzu und verwende dann eine Variable, um auf das übergeordnete Element des Skripts zu verweisen.
-- Wenn ein Spieler dieses Teil berührt, setze seine Gesundheit auf 0local trapPart = script.ParentErstelle eine Funktion namens onTouch() mit einem Parameter namens otherPart.
-- Wenn ein Spieler dieses Teil berührt, setze seine Gesundheit auf 0local trapPart = script.Parentlocal function onTouch(otherPart)endVerbinde die Funktion mit dem Touched-Ereignis des Fallen-Teils, damit sie ausgeführt wird, wenn etwas das Teil berührt.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Überprüfen, ob ein Spieler berührt
Denke daran, dass der Parameter otherPart aufzeichnet, was auch immer das Fallen-Teil berührt, was ein Teil eines Spielers oder einfach die Basisplatte sein könnte.
Um sicherzustellen, dass die Falle nur Spieler zerstört und keine zufälligen Dekorationsgegenstände, verwende eine Wenn/Dann-Anweisung, um zu überprüfen, ob das, was sich in otherPart befindet, ein Humanoid-Objekt enthält.
Ein bestimmtes Objekt finden
Die Funktion FindFirstChildWhichIsA() kann verwendet werden, um nach bestimmten Objekttypen zu suchen, was praktisch ist, da wir nach einem Humanoid-Objekt suchen. Spieler werden wahrscheinlich die Falle nur mit einem Teil ihres Avatars berühren, daher muss eine Variable eingerichtet werden, um das übergeordnete Element des berührenden Teils zu finden und es nach einem Humanoid zu durchsuchen.
Tippe in onTouch(): local character = otherPart.Parent.
local trapPart = script.Parentlocal function onTouch(otherPart)-- Findet das übergeordnete Objekt von otherPartlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Überprüfe, ob character einen Humanoid hat, indem du tippst:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Mit einer Wenn-Anweisung überprüfen
Wenn ein Humanoid gefunden wird, setze die Gesundheit des Humanoids auf null.
Verwende eine Wenn-Anweisung, um zu überprüfen, ob einem local humanoid erfolgreich zugewiesen wurde.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bewertet, ob ein Humanoid gefunden wurdeif humanoid thenendendtrapPart.Touched:Connect(onTouch)Füge eine Druckanweisung hinzu und überprüfe den bisherigen Code.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bewertet, ob ein Humanoid gefunden wurdeif humanoid thenprint("Humanoid gefunden")endendtrapPart.Touched:Connect(onTouch)Führe den Code aus und überprüfe, ob du die Ausgabe sehen kannst, wann immer ein Spieler das Teil berührt.
Ändere die Gesundheit des Spielers
Wenn die Anweisung wahr ist, kannst du die gleiche Humanoid-Variable verwenden, um die Gesundheit des Spielers auf 0 zu setzen.
Tippe zwischen then und end: humanoid.Health = 0.
Vollständiges Skriptlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bewertet, ob ein Humanoid gefunden wurdeif humanoid thenprint("Humanoid gefunden")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Teste die Falle.
Zusammenfassung
Dieses Fallen-Teil verwendete Bedingungen, um Humanoid-Teile zu erkennen und die Gesundheit des Humanoids auf null zu setzen. Dieses Skript ist eine Verbesserung des vorherigen Fallen-Skripts, das jedes berührende Objekt unabhängig davon zerstörte, was es war.
Es hat jedoch immer noch einige Mängel. Humanoids sind nicht nur bei Spielern vorhanden. Humanoids sind auch bei nicht spielbaren Charakteren zu finden. Das Skript ist auch nur gut darin, die Gesundheit des Spielers auf null zu setzen. Du kannst experimentieren, indem du eine kleine Menge Gesundheit abziehst, aber es wird wahrscheinlich die Gesundheit schneller abziehen, als gewünscht. Spätere Lektionen bieten weitere Verbesserungen, um eine bessere Kontrolle darüber zu geben, wie viel Gesundheit von den Spielern abgezogen wird.