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.
Crea e nomeggia una parte trappola. Inserisci uno script nella parte.
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 0local trapPart = script.ParentCrea una funzione chiamata onTouch() con un parametro chiamato otherPart .
-- Se un giocatore tocca questa parte, imposta la loro salute su 0local trapPart = script.Parentlocal function onTouch(otherPart)endConnetti la funzione all'evento Touched della parte per eseguire ogni volta che qualcosa tocca la parte.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.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.
In onTouch() , digita local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- Trova l'oggetto padre di otherPartlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Controlla se character ha un Humanoid digitando:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Controllo con una dichiarazione if
Se viene trovato un umanoide, allora imposta la salute dell'umanoide su zero.
Usa un if statement per controllare se un Humanoid è stato assegnato con successo a local humanoid .
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Valuta se un Umanoide è stato trovatoif humanoid thenendendtrapPart.Touched:Connect(onTouch)Aggiungi una dichiarazione di stampa e controlla il codice fino ad ora.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Valuta se un Umanoide è stato trovatoif humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)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.
Tra then e end, digita humanoid.Health = 0 .
scriptcompletatolocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Valuta se un Umanoide è stato trovatoif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)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