Hai ancora aperto il tuo codice Verse? Bene!
In questo esercizio, chiamerai funzioni che danneggeranno effettivamente il tuo personaggio di Fortnite, come anticipato nella Lezione 3: È ora di fare pratica!
Prima di iniziare a scrivere nuovo codice, dovrai aggiungere un dispositivo alla tua isola UEFN. Si chiama Generatore giocatore e fa sì che il tuo personaggio giocatore venga generato nella posizione del dispositivo anziché in aria, ovvero la posizione di generazione predefinita di Fortnite. Per il funzionamento del codice in questo esercizio, è necessario il Generatore giocatore.
Per informazioni su come posizionare il dispositivo Generatore giocatore, vedi Posizionamento di oggetti in Comandi UEFN per utenti di Fortnite Creativo. Posizionalo pure dove desideri sulla tua isola.
Parte del codice che utilizzi in questo esercizio è nuovo, ma avrai la possibilità di rivedere le operazioni di ogni riga. Non preoccuparti se non capisci tutto in questo momento. Questo esercizio riguarda solo la chiamata di funzioni.
Accertati di avere tutte le seguenti righe nella parte superiore del file Verse. Queste indicano al compilatore Verse quali parti del codice di Verse e Fortnite incorporato utilizzerai nel tuo dispositivo creato da Verse.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
Successivamente, scriverai le righe di codice che danneggiano il tuo personaggio di Fortnite. Esaminiamo il codice riga per riga.
- Chiama una funzione denominata
GetPlayspace(). Restituisce un valore di tipofort_playspaceche viene salvato in una costante denominataPlayspace. Questo serve per ottenere i giocatori. - Chiama un metodo denominato
GetPlayers()sulla costantePlayspace. Il metodo restituisce un array di tipoplayer. Un array è un contenitore che può contenere più variabili dello stesso tipo in Verse. In questo caso l'arrayAllPlayerstiene tutti i giocatori nel tuo livello. - Hai già imparato che puoi utilizzare
ifper porre domande di tipo sì o no nel tuo codice. In questo esempio, viene utilizzatoifper chiedere se c'è una variabile nella prima posizione dell'arrayAllPlayers. L'espressioneAllPlayers[0]restituisce il valore della variabile in quella posizione, se esiste, e la costanteFirstPlayerviene inizializzata sul valore restituito. - Un secondo
ifnidificato nel primo chiede se la costanteFirstPlayerha un personaggio di Fortnite chiamando il relativo metodoGetFortCharacter[]. Tieni presente che per eseguire la chiamata vengono impiegate parentesi quadre. Queste vengono utilizzate per chiamare una funzione che può non riuscire. Ecco perchéifviene utilizzato per chiamare questa funzione. SeGetFortCharacter[]riesce a restituire un valore di tipofort_character, la costante FortniteCharacter viene inizializzata su tale valore. -
Infine, ora che hai una costante di tipo
fort_characterpuoi chiamare il relativo metodoDamage(). Questo metodo accetta un parametro del tipofloat. Questa è la quantità di danni che riceverà il personaggio. Ulteriori informazioni sui parametri verranno fornite nella prossima lezione.Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0)
Eseguendo questo codice, dovresti vedere il tuo personaggio di Fortnite subire danni 50.0 all'inizio del gioco!
Bello, vero?
Script completo
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
hello_world_device := class(creative_device):
# Viene eseguito quando il dispositivo viene avviato in un gioco in esecuzione
OnBegin<override>()<suspends>:void=
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Damage(50.0)