Fallen, die die Gesundheit der Spieler verringern, sind ein spaßiges Spielelement, das mit Bedingungsaussagen kodiert werden kann. Übe den Umgang mit 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 Erfahrungen mit bewegungsbasierten Herausforderungen, wie obbies. Diese Schritte beginnen damit, die notwendigen Variablen und Funktionen einzurichten. Mach so viel wie möglich, ohne zuerst auf die Codeboxen zu schauen.
Erstelle und benenne ein Falle-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 Skript zu verweisen.
-- Wenn ein Spieler dieses Teil berührt, setze seine Gesundheit auf 0local trapPart = script.ParentErstelle eine Funktion mit dem Namen 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 Falle-Teils, um sie auszuführen, wenn etwas das Teil berührt.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Überprüfen auf Spielerberührung
Denke daran, dass der Parameter otherPart verzeichnet, was auch immer das Falle-Teil berührt, was ein Teil eines Spielers oder einfach die Grundplatte sein könnte.
Um sicherzustellen, dass die Falle nur Spieler zerstört und keine zufälligen Dekorationsobjekte, verwende eine if/then-Aussage, um zu überprüfen, ob otherPart ein Humanoid-Objekt enthält.
Finde ein spezifisches Objekt
Die Funktion FindFirstChildWhichIsA() kann verwendet werden, um nach spezifischen Objekttypen zu suchen, was praktisch ist, da wir nach einem Humanoid-Typ-Objekt suchen. Spieler werden wahrscheinlich die Falle nur mit einem Teil ihres Avatars berühren, daher muss eine Variable eingerichtet werden, um das übergeordnete Objekt des berührenden Teils zu finden und es auf ein Humanoid zu überprüfen.
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 eine 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)
Überprüfen mit einer if-Anweisung
Wenn ein Humanoid gefunden wird, setze die Gesundheit des Humanoids auf null.
Verwende eine if-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 Print-Anweisung 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 Aussage wahr ist, kannst du dieselbe Humanoid-Variable verwenden, um die Gesundheit des Spielers auf 0 zu setzen.
Schreibe 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 Falle-Teil verwendete Bedingungen, um Humanoid-Teile zu erkennen und die Gesundheit des Humanoids auf null zu setzen. Dieses Skript ist eine Verbesserung des vorherigen Falle-Skripts, das jedes berührende Objekt ohne Rücksicht auf das, was es war, zerstörte.
Es hat jedoch immer noch einige Mängel. Humanoide sind nicht nur bei Spielern vorhanden. Humanoide finden sich auch in nicht spielbaren Charakteren. Das Skript ist auch nur in der Lage, die Gesundheit des Spielers auf null zu setzen. Du kannst mit dem Abziehen eines kleinen Gesundheitsbetrags experimentieren, aber es ist wahrscheinlich, dass es die Gesundheit schneller abzieht als gewünscht. Spätere Lektionen bieten weitere Verbesserungen, um mehr Kontrolle darüber zu haben, wie viel Gesundheit von Spielern abgezogen wird.