¿Todavía tienes abierto el código en Verse? ¡Bien!
Para este ejercicio, vas a llamar a funciones que dañarán a tu personaje de Fortnite, como se prometió en Lección 3: ¡Hora de practicar!!
Antes de comenzar a codificar, deberás añadir un dispositivo a tu isla de UEFN. Se llama Generador de jugadores y provoca que el personaje de tu jugador aparezca en una ubicación de un dispositivo en lugar de aparecer en el aire, el cual es la ubicación de aparición predeterminada para Fortnite. Para que el código en esta tarea funcione, se necesita el Generador de jugadores.
Para saber cómo colocar el dispositivo Generador de jugadores, consulta Colocación de objetos en Controles de UEFN para usuarios del modo Creativo. Tienes la libertad de colocarlo donde quieras.
Algunos de los ejemplos de código que usarás en este ejercicio te resultarán nuevos, pero tendrás la oportunidad de revisar cuál es la función de cada línea. No te preocupes si no entiendes todo ahora. Esta práctica solo se trata de llamar funciones.
Asegúrate de tener todas las líneas siguientes en la parte superior del archivo de Verse. Estas líneas le dicen al compilador de Verse qué partes del código integrado de Verse y Fortnite utilizarás en tu dispositivo creado por Verse.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
A continuación, escribirás las líneas de código que dañan al personaje de Fortnite. Analicemos esto línea por línea.
- Llama a una función denominada
GetPlayspace(). Devuelve un valor del tipofort_playspace, que guardas en una constante llamadaPlayspace. Lo necesitas para obtener los jugadores. - Llama a un método denominado
GetPlayers()en laPlayspaceconstante. El método retorna una matriz del tipoplayer. Una matriz es un contenedor que puede tener múltiples variables del mismo tipo en Verse. En este caso, la matrizAllPlayerscontiene todos los jugadores de tu nivel. - Ya aprendiste que puedes usar
ifpara hacer preguntas de sí o no en el código. En este ejemplo, usasifpara preguntar si existe una variable en la primera posición de la matrizAllPlayers. La expresiónAllPlayers[0]devolverá el valor de la variable en esa posición si existe, y la constanteFirstPlayerse inicializará en el valor devuelto. - Una segunda expresión
ifanidada dentro de la primera pregunta si la constanteFirstPlayertiene un personaje de Fortnite mediante la llamada a su métodoGetFortCharacter[]. Observa los corchetes que se usan para hacer la llamada. Se utilizan para llamar a una función que puede fallar. Por este motivo, se utilizaifpara hacer la llamada. SiGetFortCharacter[]devuelve correctamente un valor del tipofort_character, la constante FortniteCharacter se inicializa en ese valor. -
Finalmente, ahora que tienes una constante de tipo
fort_character, puedes llamar a su métodoDamage(). Este método toma un parámetro del tipofloat. Esa es la cantidad de daño que recibirá el personaje. En la próxima lección, obtendrás más información sobre los parámetros.Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0)
Si ejecutas este código, debes ver que el personaje de Fortnite toma 50.0 de daño cuando se inicia la partida.
Bastante bien, ¿no?
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=
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Damage(50.0)