Esercizi if/then con 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 istruzioni condizionali. Pratica l'uso delle condizioni creando una parte che imposta la salute del giocatore a zero quando viene toccata.

Configura la trappola

Le trappole funzionano molto bene in esperienze con sfide basate sul movimento, come gli obbies. Questi passaggi inizieranno con la configurazione delle variabili e delle funzioni necessarie. Fai quanto più possibile senza guardare prima le caselle di codice.

  1. Crea e dai un nome a una parte della trappola. Inserisci uno script nella parte.

  2. Nello script, aggiungi un commento descrittivo e poi usa una variabile per fare riferimento al genitore dello script.


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


    -- Se un giocatore tocca questa parte, imposta la sua salute a 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Collega la funzione all'evento Touched della parte della trappola in modo che venga eseguita ogni volta che qualcosa tocca la parte.


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

Controlla il tocco del giocatore

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

Per assicurarti che la trappola distrugga solo i giocatori e non distrugga elementi decorativi casuali, usa un'istruzione if/then per verificare se ciò che si trova in otherPart contiene un oggetto Humanoid.

Trova un oggetto specifico

La funzione FindFirstChildWhichIsA() può essere utilizzata per cercare tipi di oggetti specifici, il che è utile perché stiamo cercando un oggetto di tipo Humanoid. I giocatori probabilmente toccheranno la trappola con solo una parte del loro avatar, quindi deve essere impostata una variabile per trovare il genitore della parte toccante e cercare in esso un Humanoid.

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


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Trova l'oggetto genitore 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)

Controlla con un'istruzione if

Se viene trovato un Humanoid, allora imposta la salute dell'Humanoid a zero.

  1. Usa un'istruzione if 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 Humanoid è stato trovato
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Aggiungi una dichiarazione di print e controlla il codice finora.


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

Cambia la salute del giocatore

Se l'istruzione è vera, puoi usare la stessa variabile humanoid per impostare la salute del giocatore a 0.

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

    Script completato

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

Questa parte della trappola ha utilizzato condizioni per rilevare parti Humanoid e impostare la salute dell'Humanoid a zero. Questo script è un miglioramento rispetto al precedente script della trappola, che distruggeva qualsiasi oggetto toccante indipendentemente da cosa fosse.

Tuttavia, presenta ancora alcuni difetti. Gli Humanoidi non sono solo nei giocatori. Gli Humanoidi si trovano anche nei personaggi non giocabili. Lo script è anche buono solo per impostare la salute del giocatore a zero. Puoi sperimentare con la sottrazione di una piccola quantità di salute, ma è probabile che sottragga la salute più velocemente di quanto desiderato. Le lezioni successive offrono ulteriori miglioramenti per dare un maggiore controllo su quanto possa essere sottratta la salute ai giocatori.

© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.