Com todos os dispositivos instalados, é hora de configurar como eles interagem.
A vinculação direta de eventos permite que os dispositivos se comuniquem diretamente usando eventos e funções. Saiba mais sobre esse assunto aqui.
Dispositivo A | Função | Dispositivo B | Evento | Explicação |
---|---|---|---|---|
Barreira oca 1 e 2 ![]() |
Desabilitar | Temporizador ![]() |
Em caso de êxito | Quando o tempo acabar, as barreiras desaparecerão. |
Barreira opaca ![]() |
Desabilitar | Temporizador ![]() |
Em caso de êxito | Quando o tempo acabar, a barreira desaparecerá. |
Confira uma captura de tela de como ficará após a vinculação:

Vinculação direta de eventos com Verse
Alternativamente, você pode usar o Verse para programar a lógica do dispositivo.
O primeiro passo é criar seu próprio dispositivo usando Verse. Para obter mais informações, você pode seguir o guia [Fundamentos da programação em Verse] (learn-the-basics-of-writing-code-in-verse) e depois voltar aqui para aplicar esses conceitos.
Agora você precisará referenciar os dispositivos que controlará com Verse no script.
Você precisará de 3 barrier_device
e 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{}
~~~
[Compile](verse-glossary#compile) o código, arraste `box_fight_manager` até o nível e selecione os dispositivos correspondentes:
{:width="600"}
Para este exemplo, `Timer` deve iniciar sozinho quando o jogo começar. Após o decurso do tempo definido, o `Timer` terá chegado ao fim e as barreiras serão desabilitadas.
Vamos fazer a [inscrição](coding-device-interactions-in-verse) de `SuccessEvent` do `Timer` quando o jogo começar:
~~~(verse)
OnBegin<override>()<suspends>:void=
Timer.SuccessEvent.Subscribe(DropBarriers)
DropBarriers
será chamada, desabilitando as três barreiras:
~~~(verse) DropBarriers(Player:?agent):void= Barrier1.Disable() Barrier2.Disable() MidBarrier.Disable() ~~~
Observe que SuccessEvent
espera chamar uma função que recebe um argumento agent
.
Compile seu código e pronto! Você já pode testar a ilha.
Se quiser usá-lo como referência, aqui está o script completo:
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()
Testando sua ilha
Você conseguiu!
Depois que tudo estiver configurado e pronto para entrar em ação, teste a ilha para garantir que funciona conforme o esperado no Fortnite.
Para publicar seu projeto, consulte a página Como publicar projetos.