Fallen, die die Gesundheit der Spieler reduzieren, sind ein lustiges Spiel-Element, das mit Bedingungen verbunden werden kann. Üben Sie, indem Sie Bedingungen erstellen, mit denen die Spieler:inGesundheit beim Berühren auf Null reduzieren.
Die Falle einrichten
Fallen in Erfahrungen mit bewegungsbasierten Herausforderungen, wie Obbies, besonders gut funktionieren. Dies sind Schritte, die Sie setzen, indem Sie die notwendigen Variablen und Funktionen einrichten. Machen Sie so viel wie möglich, ohne zuerst auf die Code-Boxen zu schauen.
Erstellen und benennen Sie einen Teil. Fügen Sie ein Skript in den Teil ein.
Füge einen beschreibenden Kommentar in das Skript, das. PL: die Skriptsein und verwende dann eine Variable, um auf den übergeordnetes Teildes Skript, das. PL: die Skriptszu verweisen.
-- Wenn ein Spieler diese Teil berührt, setzen Sie seine Gesundheit auf 0local trapPart = script.ParentErstellen Sie eine Funktion namens onTouch() mit einem Parameter namens otherPart.
-- Wenn ein Spieler diese Teil berührt, setzen Sie seine Gesundheit auf 0local trapPart = script.Parentlocal function onTouch(otherPart)endVerbinden Sie die Funktion mit dem Ereignis Touched der Teile, um immer zu laufen, wenn etwas die Teile berührt.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Player-Berührung überprüfen
Denken Sie daran, dass der參數 otherPart jedes berührt, was die Falle betrifft, was möglicherweise ein Teil eines Spielers oder einfach die Grundplatteist.
Um zu gewährleisten, dass die Falle nur Spieler zerstört und keine zufälligen Dekorationsgegenstände zerstört, verwende eine If/Then-Anweisung, um zu überprüfen, ob in otherPart ein Humanoid-Objekt enthalten ist.
Ein bestimmtes Objekt finden
Die Funktion FindFirstChildWhichIsA() kann verwendet werden, um nach bestimmten Objektarten zu suchen, was praktisch ist, da wir ein Humanoid-Objekt suchen. Spieler berühren möglicherweise nur einen Teil ihres Avatars, sodass eine Variable festgelegt werden muss, um den Elternteil des berührenden Teils zu finden und ihn nach einem Humanoid zu suchen.
In onTouch() , tippe local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- Findet das übergeordnete Objekt eines anderen Teilslocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Überprüfen Sie, ob character ein Humanoid hat, indem Sie tippen:
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 einem if- Statement überprüfen
Wenn ein Humanoid gefunden wird, dann setze die Gesundheit des Humanoid auf null.
Verwenden Sie ein if-Anweisung, um zu überprüfen, ob ein Humanoid erfolgreich an local humanoid 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ügen Sie eine druck声 hinzu und überprüfen sie den code bisher.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bewertet, ob ein Humanoid gefunden wurdeif humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)Run den Code und stellen Sie sicher, dass Sie die Ausgabe sehen können, wenn ein Spieler die Teile berührt.
Ändern der Gesundheit des Spielers
Wenn die Anweisung wahr ist, können Sie die gleiche Menschliche Variable verwenden, um die Gesundheit des Spieler:inauf 0 zu setzen.
Zwischen then und end, tippe humanoid.Health = 0 .
Abgeschlossenes Skript, das. PL: die Skriptslocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Bewertet, ob ein Humanoid gefunden wurdeif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Testen Sie die Falle.
Zusammenfassung
Dieser Fall verwendet Konditionen, um menschliche Teile zu erkennen und die Gesundheit des Menschlichen auf Null zu setzen. Dieses Skript ist ein Upgrade auf das vorherige Skript, das. PL: die Skripts, das jedes berührende Objekt zerstörte, egal was es war.
Es hat jedoch immer noch einige Mängel. Humanoiden sind nicht nur in Spielern. Humanoiden finden Sie auch in nicht-spielbaren Charakteren. Das Skript ist jedoch nur gut darin, die Gesundheit des Spieler:inauf Null zu setzen. Sie können auch mit der Subtraktion eines kleinen Gesundheitsbetrags experimentieren, aber es ist wahrscheinlich so, dass der Gesundheitsverbrauch pro Spieler verringert wird. Spätere Lektionen bieten weitere Verbesserungen, um mehr Kontrolle über die Ges