A interface fort_character é usada para definir as capacidades dos personagens no Fortnite. Ela está relacionada aos atributos e ações do corpo do personagem, como atributos como health (saúde) e shield (escudo), além de ações como pular e agachar.
Para entender o fort_character vamos compará-lo à classe agent:
- agent: Representa quem está jogando, que pode ser um jogador humano ou NPC. Possui uma identificação (id) que é mantida durante a sessão de jogo. É como se fosse o cérebro.
- fort_character: Representa o agent dentro do mundo do jogo. É como se fosse o corpo do agent. Quando um jogador é eliminado, o fort_character é descartado, mas a instância de agent continua ativa. Ao entrar em uma nova partida, um novo fort_character é gerado e associado ao agent existente.
Dica: Ao procurar na documentação ou no arquivo Fortnite.digest os métodos disponíveis na interface fort_character, você verá apenas os métodos definidos diretamente em fort_character. Contudo, todos os métodos das interfaces mencionadas anteriormente também estão disponíveis no fort_character. Por exemplo, o método SetHealth() pertence à interface healthful e está disponível em fort_character.
Você pode usar a interface fort_character para modificar o health e shield, além de verificar se o personagem está pulando, agachado, no chão, na água ou no ar. Existem muitas funcionalidades disponíveis.
Para usar a interface fort_character, é necessário adicionar este módulo:
using { /Fortnite.com/Characters }
Este módulo adiciona um método de extensão à classe agent para obter a instância de fort_character:
if( FortCharacter := Agent.GetFortCharacter[] ):
Também é possível obter a referência do agent associado ao fort_character, caso exista:
if ( Agent := FortCharacter.GetAgent[] ):
O exemplo abaixo mostra como aumentar o health de um fort_character em 10:
CurrentHealth := FortCharacter.GetHealth() FortCharacter.SetHealth( CurrentHealth + 10 )
Como exemplo prático de fort_character vamos criar um dispositivo que referencia um volume_device. Este dispositivo pode recuperar o health e shield dos agentes que estiverem dentro do volume referenciado. Ele também terá várias opções de configuração.
Abra o Verse Explorer, clique com o botão-direito no nome do projeto e escolha a opção Add new Verse file to project.
Em Device Name coloque recharger_device e clique no botão Create Empty.
Copie o código Verse abaixo para o dispositivo recharger_device:
using { /Fortnite.com/Characters }
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
recharger_device := class(creative_device):
@editable
VolumeDevice : volume_device = volume_device{}
@editable
TimeInterval : float = 1.0
@editable
HealthRegenAmount : float = 10.0;
@editable
ShieldRegenAmount : float = 10.0;
@editable
IsHealthRecharger : logic = true;
@editable
IsShieldRecharger : logic = true;
var AgentsInVolume : []agent = array{}
OnBegin<override>()<suspends>:void=
loop:
Sleep(TimeInterval)
set AgentsInVolume = VolumeDevice.GetAgentsInVolume()
if(AgentsInVolume.Length > 0):
for (Agent : AgentsInVolume):
if(FortCharacter := Agent.GetFortCharacter[]):
if(IsHealthRecharger?):
CurrentHealth := FortCharacter.GetHealth()
FortCharacter.SetHealth(CurrentHealth + HealthRegenAmount)
if(IsShieldRecharger?):
CurrentShield := FortCharacter.GetShield()
FortCharacter.SetShield(CurrentShield + ShieldRegenAmount)
O dispositivo mantém um loop executado a cada TimeInterval, que por padrão é 1 segundo. A cada iteração do loop, é obtido um array de agentes que estão dentro do volume. Para cada agente, o health e shield são aumentados, caso estejam habilitados.
Salve o arquivo e compile o código Verse usando a opção Verse > Compile Verse Code do menu do UEFN.
Acesse o Content Drawer e adicione o dispositivo recharger_device ao nível. Em seguida, adicione também um Volume Device e marque a propriedade Visible in Game.
Selecione o recharger_device no nível. Na aba Details, selecione a referência ao Volume Device. Podemos configurar o dispositivo para recarregar apenas health ou shield, além de modificar o intervalo de tempo e a quantidade recarregada.
Para facilitar o teste do dispositivo, vamos diminuir o health inicial do jogador. Na aba Outliner, selecione o Island Settings. Na aba Details, pesquise por Health. Em Starting Health Percentage defina 20%.
Salve o nível e clique no botão Launch Session para carregá-lo no Fortnite. Mova o personagem para dentro do volume para recarregar health e shield.


