Le trappole che diminuiscono la salute dei giocatori sono un elemento di gioco divertente che può essere programmato con istruzioni condizionali. Esercitati a utilizzare le condizioni creando una parte che imposta la salute del giocatore a zero quando viene toccata.
Imposta la trappola
Le trappole funzionano eccezionalmente bene nei giochi con sfide basate sul movimento, come gli obbies. Questi passaggi inizieranno impostando le variabili e le funzioni necessarie. Fai quanto più puoi senza guardare prima le caselle di codice.
Crea e nomina una parte trappola. Inserisci uno script nella parte.
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 0local trapPart = script.ParentCrea una funzione chiamata onTouch() con un parametro chiamato otherPart.
-- Se un giocatore tocca questa parte, imposta la sua salute a 0local trapPart = script.Parentlocal function onTouch(otherPart)endCollega la funzione all'evento Touched della parte trappola per eseguirla ogni volta che qualcosa tocca la parte.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Controlla il tocco del giocatore
Ricorda, il parametro otherPart registra ciò che tocca la parte trappola, che potrebbe essere una parte di un giocatore o semplicemente il baseplate.
Per garantire che la trappola distrugga solo i giocatori e non distrugga oggetti decorativi casuali, usa un'istruzione if/then per controllare 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 toccheranno probabilmente la trappola solo con una parte del loro avatar, quindi deve essere impostata una variabile per trovare il genitore della parte toccante e cercarlo per un Humanoid.
In onTouch(), digita local character = otherPart.Parent.
local trapPart = script.Parentlocal function onTouch(otherPart)-- Trova l'oggetto genitore 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)
Controlla con un'istruzione if
Se viene trovato un Humanoid, imposta la Salute dell'Humanoid a zero.
Usa un'istruzione if 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 è stato trovato un Humanoidif humanoid thenendendtrapPart.Touched:Connect(onTouch)Aggiungi una dichiarazione di stampa e controlla il codice finora.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Valuta se è stato trovato un Humanoidif humanoid thenprint("Trovato un Humanoid")endendtrapPart.Touched:Connect(onTouch)Esegui il codice e controlla che tu possa 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.
Tra then e end, digita humanoid.Health = 0.
Script completatolocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Valuta se è stato trovato un Humanoidif humanoid thenprint("Trovato un Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Testa la trappola.
Riepilogo
Questa parte 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, ha ancora alcuni difetti. Gli Humanoid non sono presenti solo nei giocatori. Gli Humanoid si trovano anche nei personaggi non giocabili. Lo script è anche buono solo per impostare la salute del giocatore a zero. Puoi sperimentare sottraendo una piccola quantità di salute, ma è probabile che sottragga la salute più velocemente di quanto desiderato. Le lezioni successive forniscono ulteriori miglioramenti per dare un maggiore controllo su quanto viene sottratta la salute ai giocatori.