Ahora que conoces la estructura de una función, es momento de crear la tuya, dos tuyas, en realidad.
En el último ejercicio, aprendiste las líneas de código necesarias para dañar al personaje de un jugador en Fortnite. Sería mejor si no tuvieras que tipear esas mismas líneas cada vez que necesites ese código.
-
Declara una función llamada
HurtPlayer()
. Tendrá un tipo de devoluciónvoid
, lo que significa que no devolverá un valor. Coloca la declaración de la función al final del archivo de Verse. El cuerpo de la función es el mismo código de Lección 5: ¡Hora de practicar!, así que consulta allí si necesitas refrescar la memoria.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)
No puedes definir una función dentro de otra, así que asegúrate de que todas las funciones tengan aplicado el mismo nivel de sangría que
OnBegin()
. -
Ahora tienes una función que puedes usar cuando quieras para dañar a un personaje. Pero declarar una función no ejecuta el código en el cuerpo de la función. Para hacerlo, necesitas llamar a la función. Asegúrate de llamar a estas funciones dentro de
OnBegin()
.HurtPlayer() Print("Jugador herido")
-
A esta altura, puedes haberte dado cuenta de que también existe un método para curar a un personaje. Se denomina
Heal()
, y puedes llamarlo exactamente de la misma forma en que lo haces conDamage()
. Crea tu funciónHealPlayer()
al final del archivo de Verse mediante este código.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)
-
Ahora agrega la llamada
HealPlayer()
a las llamadas de función en el cuerpo deOnBegin()
.HurtPlayer() Print("Jugador herido") Sleep(5.0) HealPlayer() Print("Jugador sanado")
Puedes advertir que hay una nueva llamada a función Sleep()
. Básicamente, Sleep()
hace que el programa espere antes de continuar con la ejecución del código que viene después. El tiempo de espera está determinado por el parámetro que pasas a Sleep()
y se representa en segundos. (En otra lección, más adelante, obtendrás más información sobre los parámetros). Sin Sleep()
aquí, HealPlayer()
se ejecutaría inmediatamente después de HurtPlayer()
, y no notarías el efecto de ambas llamadas a función.
Secuencia de comandos completa
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):
# Se ejecuta cuando el dispositivo se inicia en un juego en ejecución
OnBegin<override>()<suspends>:void=
HurtPlayer()
Print("Jugador herido")
Sleep(5.0)
HealPlayer()
Print("Jugador sanado")
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)