Se/allora Pratica con le trappole

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Le trappole che riducono la salute dei giocatori sono un elemento di gioco divertente che può essere codificato con dichiarazioni condizionali. Pratica usando le condizioni quando crei una parte che imposta la salute del Giocatorea zero quando toccato.

Configurazione della trappola

Le trappole funzionano eccezionalmente bene in esperienze con sfide basate sul movimento, come gli obby. Questi passi inizieranno impostando le variabili e le funzioni necessarie. Fai il maggior possibile senza guardare prima le scatole di codice.

  1. Crea e nomeggia una parte trappola. Inserisci uno script nella parte.

  2. Nell'script, aggiungi un commento descrittivo e poi usa una variabile per fare riferimento al parentdello script.


    -- Se un giocatore tocca questa parte, imposta la loro salute su 0
    local trapPart = script.Parent
  3. Crea una funzione chiamata onTouch() con un parametro chiamato otherPart .


    -- Se un giocatore tocca questa parte, imposta la loro salute su 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Connetti la funzione all'evento Touched della parte per eseguire ogni volta che qualcosa tocca la parte.


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

Controllo del giocatore

Ricorda, il parametro otherPart registra tutto ciò che tocca la parte trappola, che potrebbe essere una parte di un giocatore o semplicemente la piastra di base.

Per assicurarsi che la trappola distruggerà solo i giocatori e non distruggerà oggetti decorativi casuali, usa una frase if/then per controllare se qualsiasi cosa in otherPart contiene un oggetto umanoidale.

Trovare un oggetto specifico

La funzione FindFirstChildWhichIsA() può essere utilizzata per cercare specifici tipi di oggetti, che è utile perché stiamo cercando un oggetto di tipo umanoide. I giocatori toccheranno probabilmente l'angolo con solo una parte del loro Avatar, quindi una variabile deve essere impostata per trovare il padre dell'angolo e cercarlo per un umanoide.

  1. In onTouch() , digita local character = otherPart.Parent .


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Trova l'oggetto padre di otherPart
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Controlla se character ha un Humanoid digitando:

    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)

Controllo con una dichiarazione if

Se viene trovato un umanoide, allora imposta la salute dell'umanoide su zero.

  1. Usa un if statement per controllare se un Humanoid è stato assegnato con successo a local humanoid .


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Valuta se un Umanoide è stato trovato
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Aggiungi una dichiarazione di stampa e controlla il codice fino ad ora.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Valuta se un Umanoide è stato trovato
    if humanoid then
    print("Found a Humanoid")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. Esegui il codice e assicurati di poter vedere l'output ogni volta che un giocatore tocca la parte.

Cambiare la salute del giocatore

Se la dichiarazione è vera, puoi utilizzare la stessa variabile umanoidale per impostare la salute del Giocatoresu 0.

  1. Tra then e end, digita humanoid.Health = 0 .

    scriptcompletato

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Valuta se un Umanoide è stato trovato
    if humanoid then
    print("Found a Humanoid")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Prova la trappola.

Panoramica

Questa parte della trappola usa i condizionali per rilevare parti umanoidi e imposta la salute dell'umanoidi su zero. Questo script è un miglioramento dello script della trappola precedente, che distrusse qualsiasi oggetto toccante non importa cosa fosse.

Tuttavia, ha ancora alcuni difetti. Gli umanoidi non sono solo nei giocatori. Gli umanoidi sono anche trovati in personaggi non giocabili. Lo script è anche solo buono per impostare la salute del Giocatorea zero. Puoi sperimentare con la sottrazione di una piccola quantità di salute, ma è probabile che sottrarre la salute più velocemente di quanto desiderato. Le lezioni successive forniscono ulteriori miglioramenti per fornire un mag