Wenn/dann übe 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 lustiges Spiel-Element, das mit Bedingungen programmiert werden kann.Übe das Verwenden von Bedingungen, indem du ein Teil erstellst, das die Gesundheit des Spieler:inauf Null setzt, wenn es berührt wird.

Stelle die Falle ein

Fallen funktionieren außergewöhnlich gut in Erlebnissen mit bewegungsbezogenen Herausforderungen, wie Obbies.Diese Schritte beginnen damit, die notwendigen Variablen und Funktionen einzurichten.Mach so viel wie möglich, ohne zuerst die Codeboxen anzusehen.

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

  2. Füge im Skript, das. PL: die Skriptseinen beschreibenden Kommentar hinzu und verwende dann eine Variable, um den übergeordnetes Teildes Skript, das. PL: die Skriptszu referenzieren.


    -- Wenn ein Spieler diesen Teil berührt, setze seine Gesundheit auf 0
    local trapPart = script.Parent
  3. Erstelle eine Funktion namens onTouch() mit einem Parameter namens otherPart.


    -- Wenn ein Spieler diesen 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 Fallteils, um es zu laufen, wann immer etwas die Teile berührt.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.Touched:Connect(onTouch)

Überprüfe die Berührung des Spielers

Denken Sie daran, der Parameter otherPart speichert alles, was die Fallteile berührt, was möglicherweise ein Teil eines Spielers oder nur die Grundplatte ist.

Um sicherzustellen, 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 irgendetwas in otherPart enthält ein Humanoid-Objekt.

Ein bestimmtes Objekt finden

Die Funktion FindFirstChildWhichIsA() kann verwendet werden, um nach bestimmten Objektarten zu suchen, was praktisch ist, weil wir ein menschliches Objekt suchen.Spieler werden wahrscheinlich die Falle mit nur einem Teil ihres Avatars berühren, sodass eine Variable eingerichtet werden muss, um den Elternteil des berührenden Teils zu finden und ihn auf einen Humanoiden zu durchsuchen.

  1. In onTouch() , geben Sie local character = otherPart.Parent ein.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Findet das Objektvon otherPart
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Überprüfen Sie, ob character einen Humanoid hat, indem Sie tippen:

    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- statement

Wenn ein Humanoid gefunden wird, wird die Gesundheit des Humanoids auf Null gesetzt.

  1. Verwende ein if-Statement, um zu überprüfen, ob ein Humanoid erfolgreich zu local humanoid zugewiesen wurde.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Prüft, ob ein Humanoid gefunden wurde
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Füge eine Druckausgabe hinzu und prüfe den Code bisher.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Prüft, ob ein Humanoid gefunden wurde
    if humanoid then
    print("Found a Humanoid")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. Führe den Code aus und überprüfe, dass du die Ausgabe sehen kannst, wann immer ein Spieler das Teil berührt.

Ändere die Gesundheit des Spieler:in

Wenn die Aussage wahr ist, kannst du die gleiche humanoide Variable verwenden, um die Gesundheit des Spieler:inauf 0 zu setzen.

  1. Zwischen then und end, geben Sie humanoid.Health = 0 ein.

    Abgeschlossenes Skript, das. PL: die Skripts

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Prüft, ob ein Humanoid gefunden wurde
    if humanoid then
    print("Found a Humanoid")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Teste die Falle.

Übersicht

Dieser Fallabschnitt verwendete Bedingungen, um menschliche Teile zu erkennen und die Gesundheit des Humanoiden auf Null zu setzen.Dieses Skript ist eine Verbesserung des vorherigen 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 findet man auch in nicht spielbaren Charakteren.Das Skript ist auch nur gut darin, die Gesundheit des Spieler:inauf Null zu setzen.Du kannst mit der Abziehung einer kleinen Menge Gesundheit 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 geben, wie viel Gesundheit von den Spielern abgezogen wird.