Ainda tem seu código Verse aberto? Que bom!
Para este exercício, você chamará funções que realmente causarão dano ao seu personagem do Fortnite, como prometido na Aula 3: Hora de praticar!
Antes de começar a programar, você precisará adicionar um dispositivo à sua ilha do UEFN. Esse dispositivo é chamado de Plataforma de Surgimento de Jogador e faz com que o personagem do seu jogador apareça no local do dispositivo em vez de no ar, que é o local de surgimento padrão do Fortnite. Para que o código deste exercício funcione, o Gerador de Jogadores é necessário.
Para saber como posicionar o dispositivo Plataforma de Surgimento de Jogador no nível, consulte a seção Posicionamento de objetos em Controles do UEFN para usuários do Modo Criativo. Sinta-se à vontade para colocá-lo em qualquer lugar da sua ilha.
Parte do código usado neste exercício será novidade, mas você terá a chance de revisar o que cada linha está fazendo. Não se preocupe se você não entender tudo agora. Essa prática consiste apenas em chamar funções.
Certifique-se de ter todas as linhas a seguir na parte superior do seu arquivo do Verse. Elas informam ao compilador do Verse quais partes do código integrado do Verse e do Fortnite você usará no seu dispositivo criado com Verse.
~~~(verse) using { /Fortnite.com/Devices } using { /Fortnite.com/Characters } using { /Fortnite.com/Playspaces } using { /Verse.org/Simulation } using { /Verse.org/Verse }
Em seguida, você escreverá as linhas de código que causam dano ao seu personagem do Fortnite. Vamos examiná-las linha por linha.
1. Chame uma função denominada `GetPlayspace()`. Ela retorna um valor do tipo `fort_playspace`, que você salva em uma constante chamada `Playspace`. Você precisa disso para obter os jogadores.
1. Chame um método chamado `GetPlayers()` na constante `Playspace`. O método retorna uma [matriz](array-in-verse) do tipo `player`. Uma **matriz** é um contêiner que pode ter diversas variáveis do mesmo tipo no Verse. Neste caso, a matriz `AllPlayers` mantém todos os jogadores no seu nível.
1. Você já aprendeu que pode usar `if` para fazer perguntas Sim ou Não no seu código. Neste exemplo, você usa `if` para perguntar se há uma variável na primeira posição da matriz `AllPlayers`. A expressão `AllPlayers[0]` retornará o valor da variável nessa posição, se ela existir, e a constante `FirstPlayer` será inicializada com o valor de retorno.
1. Uma segunda `if` aninhada na primeira pergunta se a constante `FirstPlayer` tem um personagem do Fortnite, chamando seu método `GetFortCharacter[]`. Observe os **colchetes** usados para fazer a chamada. Eles são usados para chamar uma função que pode falhar. É por isso que `if` é usada para chamar essa função. Se `GetFortCharacter[]` conseguir retornar um valor do tipo `fort_character`, a constante FortniteCharacter será inicializada com esse valor.
1. Por fim, agora que você tem uma constante de tipo `fort_character`, pode chamar seu método `Damage()`. Esse método usa um parâmetro do tipo `float`. Essa é a quantidade de dano que o personagem sofrerá. Você saberá mais sobre o parâmetro na próxima aula.
~~~(verse)
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Damage(50.0)
Se você executar esse código, verá seu personagem do Fortnite sofrer 50.0
de dano quando o jogo começar!
Muito legal, certo?
O script completo
~~~(verse) 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):
# É executado quando o dispositivo é iniciado em um jogo em execução
OnBegin
Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0) ~~~