If/then-Übung mit Fallen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

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.

  1. Erstelle und benenne ein Falle-Teil. Füge ein Skript in das Teil ein.

  2. 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 0
    local trapPart = script.Parent
  3. Erstelle eine Funktion mit dem Namen onTouch() mit einem Parameter namens otherPart.


    -- Wenn ein Spieler dieses Teil berührt, setze seine Gesundheit auf 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Verbinde die Funktion mit dem Touched-Ereignis des Falle-Teils, um sie auszuführen, wenn etwas das Teil berührt.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.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.

  1. Tippe in onTouch(): local character = otherPart.Parent.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Findet das übergeordnete Objekt von otherPart
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Überprüfe, ob character eine Humanoid hat, indem du tippst:

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

Überprüfen mit einer if-Anweisung

Wenn ein Humanoid gefunden wird, setze die Gesundheit des Humanoids auf null.

  1. Verwende eine if-Anweisung, um zu überprüfen, ob einem local humanoid erfolgreich zugewiesen wurde.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Bewertet, ob ein Humanoid gefunden wurde
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Füge eine Print-Anweisung hinzu und überprüfe den bisherigen Code.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Bewertet, ob ein Humanoid gefunden wurde
    if humanoid then
    print("Humanoid gefunden")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. 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.

  1. Schreibe zwischen then und end: humanoid.Health = 0.

    Vollständiges Skript

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Bewertet, ob ein Humanoid gefunden wurde
    if humanoid then
    print("Humanoid gefunden")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. 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.

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.