Con todos los dispositivos en su lugar, es hora de configurar cómo interactúan.
La vinculación directa de eventos permite que los dispositivos se comuniquen directamente entre sí mediante eventos y funciones. Obtén más información aquí.
Dispositivo A | Función | Dispositivo B | Evento | Explicación |
---|---|---|---|---|
Barrera hueca 1 y 2 ![]() |
Deshabilitar | Cronómetro ![]() |
Al completarse correctamente | Cuando el cronómetro llegue a su fin, las barreras desaparecerán. |
Barrera opaca ![]() |
Deshabilitar | Cronómetro ![]() |
Al completarse correctamente | Cuando el cronómetro llegue a su fin, la barrera desaparecerá. |
Aquí hay una captura de pantalla de cómo se verá esto una vez que se establezca el enlace:

Vinculación directa de eventos con Verse
También puedes utilizar Verse para programar la lógica del dispositivo.
El primer paso es crear tu propio dispositivo con Verse. Para obtener más información, puedes seguir la guía Aprende los aspectos básicos de la escritura de código en Verse y, luego, regresar aquí para aplicar esos conceptos.
Ahora deberás referenciar los dispositivos que controlarás con Verse en tu secuencia de comandos.
Necesitarás 3 barrier_device
y 1 timer_device
:
box_fight_manager := class<concrete>(creative_device):
Logger:log = log{Channel:=box_fight_log}
@editable
Barrier1:barrier_device = barrier_device{}
@editable
Barrier2:barrier_device = barrier_device{}
@editable
MidBarrier:barrier_device = barrier_device{}
@editable
Timer:timer_device = timer_device{}
Compila tu código y arrastra el box_fight_manager
hasta el nivel. A continuación, selecciona los dispositivos correspondientes:

En este ejemplo, el Timer
debería empezar por sí solo al comenzar la partida. Una vez transcurrido el tiempo establecido, el Timer
termina con resultado positivo, y se desactivan las barreras.
Suscribámonos al SuccessEvent
del Timer
cuando comience el juego:
OnBegin<override>()<suspends>:void=
Timer.SuccessEvent.Subscribe(DropBarriers)
Se llamará a DropBarriers
, lo que desactivará las tres barreras:
DropBarriers(Player:?agent):void=
Barrier1.Disable()
Barrier2.Disable()
MidBarrier.Disable()
Ten en cuenta que SuccessEvent
espera llamar a una función que toma un argumento agent
.
Compila tu código, ¡y listo! Puedes probar tu isla.
Aquí tienes la secuencia completa, como referencia:
using { /Fortnite.com/Devices }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
box_fight_log:=class(log_channel){}
box_fight_manager := class<concrete>(creative_device):
Logger:log = log{Channel:=box_fight_log}
@editable
Barrier1:barrier_device = barrier_device{}
@editable
Barrier2:barrier_device = barrier_device{}
@editable
MidBarrier:barrier_device = barrier_device{}
@editable
Timer:timer_device = timer_device{}
OnBegin<override>()<suspends>:void=
Timer.SuccessEvent.Subscribe(DropBarriers)
DropBarriers(Player:?agent):void=
Barrier1.Disable()
Barrier2.Disable()
MidBarrier.Disable()
Cómo realizar una prueba de juego de tu isla
¡Lo hiciste!
Una vez que todo se haya configurado y esté listo para funcionar, realiza una prueba de juego de tu isla para asegurarte de que todo funcione como se espera en Fortnite.
Para publicar tu proyecto, consulta la página Cómo publicar proyectos.