Digamos que você esteja criando um jogo com poções mágicas. As poções têm efeitos diferentes: elas podem curar jogadores ou envenená-los. Você gostaria de declarar e inicializar algumas constantes e variáveis para armazenar a saúde do jogador e a quantidade de dano ou cura causados por uma poção.
Mas quais devem ser constantes e quais devem ser variáveis?
var PlayerHealth: float = 100.0
PotionDamageAmount: float = 20.0
PotionHealAmount : float = 10.0
~~~
As variáveis e constantes que você está alterando aqui não afetarão a saúde do seu personagem no Fortnite, mas você aprenderá como fazer exatamente isso em uma aula posterior!
A saúde do jogador mudará durante o jogo, dependendo das poções que ele usa. Quando pensar em **mudança**, pense em **variável**.
Por outro lado, não faz muito sentido alterar a quantidade de dano ou cura que as poções causam durante o jogo, então essas devem ser declaradas como **constantes**.
1. Se você escrever um código para alterar a variável `PlayerHealth` agora, não poderá saber se ela funcionou, a não ser que imprima algo no log. Para ajudar com isso, declare e inicialize a constante de string e a variável de string abaixo. Lembre-se de adicionar o espaço entre o final do texto e o último `"`.
~~~(verse)
PlayerStatusText: string = "A saúde do jogador agora é"
var EffectOnPlayerText: string = "dano de "
~~~
1. Agora você está pronto para mudar a saúde do jogador. Para alterar o valor de uma variável, você precisa usar a palavra-chave `set` no início da expressão. `PotionDamageAmount` deve ser subtraído de `PlayerHealth`, então use o operador `-`.
~~~(verse)
set PlayerHealth = PlayerHealth - PotionDamageAmount
~~~
1. Depois que `PlayerHealth` mudar, você quer ver a prova! Para fazer isso, faça as chamadas para `Print()` mostradas abaixo.
~~~(verse)
Print("O jogador sofreu {EffectOnPlayerText + ToString(PotionDamageAmount)}")
Print("{PlayerStatusText + ToString(PlayerHealth)}")
~~~
Pode parecer que você está tentando fazer matemática com suas strings, mas na verdade está **combinando** com o operador `+`. Isso é chamado de **concatenação**. A função `ToString()` cria uma versão da `string` de suas constante e variável `float` para que possam ser usadas por `Print()`.
1. Execute esse código agora, e você verá duas novas linhas impressas:
* `O jogador foi danificado em 20.0`
* `A saúde do jogador agora é 80,00`
Agora, sozinho, tente fazer a mesma coisa com `PotionHealAmount`.
1. Altere `PlayerHealth` usando a **palavra-chave** e o **operador** corretos.
1. Você também precisará alterar a variável `EffectOnPlayerText` para que ela faça sentido quando for impressa.
1. Por fim, você precisará imprimir como a saúde do jogador foi afetada e qual é sua saúde atual. Tente fazer isso sozinho primeiro, mas se precisar de ajuda, veja o código abaixo.
~~~(verse)
set PlayerHealth = PlayerHealth + PotionHealAmount
set EffectOnPlayerText = "healed "
Print("O jogador {EffectOnPlayerText + ToString(PotionHealAmount)}")
Print("{PlayerStatusText + ToString(PlayerHealth)}")
O script completo
~~~(verse) using { /Fortnite.com/Devices } using { /Verse.org/Simulation }
hello_world_device := class(creative_device):
# É executado quando o dispositivo é iniciado em um jogo em execução
OnBegin
PotionDamageAmount : float = 20.0 PotionHealAmount : float = 10.0 var PlayerHealth : float = 100.0
PlayerStatusText : string = "A saúde do jogador agora é" var EffectOnPlayerText: string = "dano de "
set PlayerHealth = PlayerHealth - PotionDamageAmount Print("O jogador sofreu {EffectOnPlayerText + ToString(PotionDamageAmount)}") Print("{PlayerStatusText + ToString(PlayerHealth)}")
set PlayerHealth = PlayerHealth + PotionHealAmount set EffectOnPlayerText = "healed " Print("O jogador {EffectOnPlayerText + ToString(PotionHealAmount)}") Print("{PlayerStatusText + ToString(PlayerHealth)}") ~~~