Agora que você conhece a estrutura de uma função, é hora de criar a sua — duas, na verdade!
No último exercício, você aprendeu as linhas de código necessárias para danificar um personagem do jogador no Fortnite. Seria melhor se você não precisasse digitar essas mesmas linhas todas as vezes que precisasse desse código.
-
Declare uma função chamada
HurtPlayer()
. Ela terá um teclado de retorno devoid
, o que significa que não retornará um valor. Coloque a declaração da função no final do seu arquivo Verse. O corpo da função é o mesmo código da Aula 5: Hora de praticar, então confira lá se precisar relembrar.~~~(verse) HurtPlayer() : void = Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0) ~~~
Como você não pode definir uma função dentro de outra, certifique-se de que todas as suas funções estejam recuadas no mesmo nível de
OnBegin()
. -
Agora, você tem uma função que pode ser usada sempre que quiser causar danos a um personagem. Porém, declarar uma função não executa o código no corpo da função. Para fazer isso, você precisa chamar a função. Certifique-se de chamar essas funções dentro de
OnBegin()
.~~~(verse) HurtPlayer() Print("Jogador ferido") ~~~
-
Você já deve ter adivinhado que também existe um método que cura um personagem. Chama-se
Heal()
, e você pode chamá-lo exatamente da mesma forma que chamaDamage()
. Crie sua funçãoHealPlayer()
no final do seu arquivo do Verse usando esse código.~~~(verse) HealPlayer() : void = Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Heal(20.0) ~~~
-
Agora, adicione a chamada
HealPlayer()
às chamadas de função no corpo deOnBegin()
.~~~(verse) HurtPlayer() Print("Jogador ferido") Sleep(5.0) HealPlayer() Print("Jogador curado") ~~~
Você pode notar que há uma nova chamada para a função Sleep()
. Basicamente, Sleep()
faz com que o programa espere antes de continuar executando o código que vem depois. O tempo de espera é determinado pelo parâmetro que você passa para Sleep()
, representado em segundos. (Você aprenderá mais sobre parâmetros em uma lição posterior.) Sem Sleep()
aqui, HealPlayer ()
seria executado imediatamente após HurtPlayer()
, e você não notaria o efeito de ambas as chamadas de função.
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
HurtPlayer() Print("Jogador ferido") Sleep(5.0) HealPlayer() Print("Jogador curado")
HurtPlayer() : void = Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0)
HealPlayer() : void =
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Heal(20.0)
~~~