¿Aún tienes abierto el código de Verse? ¡Bien!
Para este ejercicio, vas a llamar a funciones que realmente dañarán a tu personaje de Fortnite, tal y como prometimos en la lección 3: es hora de practicar!
Antes de empezar a codificar, tendrás que añadir un dispositivo a tu isla de UEFN. Se llama generador de jugadores y hace que tu personaje jugador aparezca en la ubicación del dispositivo en lugar de en el aire, que es la ubicación de aparición predeterminada para Fortnite. Para que el código de este ejercicio funcione, es necesario el disponer de un generador de jugadores.
Para saber cómo colocar el dispositivo Generador de jugadores, consulta Colocación de objetos en Controles UEFN para usuarios del modo Creativo. Puedes colocarlo en cualquier lugar de la isla.
Parte del código que utilizarás en este ejercicio será nuevo para ti, pero tendrás la oportunidad de revisar lo que hace cada línea. No te preocupes si no lo entiendes todo ahora. Esta práctica solo consiste en llamar a funciones.
Asegúrate de que tienes todas las líneas siguientes al principio de tu archivo de Verse. Indican al compilador de Verse qué partes del código integrado de Verse y Fortnite utilizarás en tu dispositivo creado con 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 a tu personaje de Fortnite. Repasemos esto línea por línea.
- Llama a una función denominada
GetPlayspace(). Devuelve un valor de tipofort_playspace, que guardas en una constante nombradaPlayspace. Necesitas esto para conseguir jugadores. - Llama a un método nombrado
GetPlayers()en la constantePlayspace. El método devuelve una matriz de tipoplayer. Una matriz es un contenedor que puede contener múltiples variables del mismo tipo en Verse. En este caso, la matrizAllPlayerscontiene todos los jugadores de tu nivel. - Ya has aprendido que puedes utilizar
ifpara hacer preguntas de sí o no en tu código. En este ejemplo, utilizasifpara preguntar si hay 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á con el valor devuelto. - Un segundo
ifanidado dentro del primero pregunta si la constanteFirstPlayertiene un personaje de Fortnite llamando a su métodoGetFortCharacter[]. Fíjate en los corchetes utilizados para hacer el llamado. Se utilizan para llamar a una función que puede fallar. Por eso se utilizaifpara llamar a esta función. SiGetFortCharacter[]consigue devolver un valor de tipofort_character, la constante FortniteCharacter se inicializa con ese valor. -
Por último, ahora que tienes una constante de tipo
fort_characterpuedes llamar a su métodoDamage(). Este método hace uso de un parámetro de tipofloat. Es la cantidad de daño que recibirá el personaje. Aprenderás más sobre los parámetros en la próxima lección.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, verás que tu personaje de Fortnite recibe 50,0 puntos de daño al iniciar la partida.
Genial, ¿verdad?
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 se inicia el dispositivo 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)