Esta etapa mostra como atribuir uma arma a um jogador no início do jogo.
Quando um jogador surgir pela primeira vez, dê a primeira arma na matriz WeaponGranters. Para fazer isso, você precisará inscrever funções na plataforma de surgimento de cada jogador. Consulte a página Codificando interações entre dispositivos para obter mais detalhes sobre eventos assináveis.
Siga estas etapas para assinar eventos de surgimento de jogadores e atribuir sua primeira arma.
-
Adicione um novo método
OnPlayerSpawn()à classeteam_elimination_game. Esse método garante que você atribua ao jogador a arma certa quando ele surgir pela primeira vez e quando ressurgir.~~~(verse) OnPlayerSpawn(InPlayer : agent) : void = Print("Um jogador acabou de surgir!") ~~~
-
Para assinar as funções que você acabou de configurar em seus eventos associados, você precisa adicionar um novo código a
OnBegin(). Crie um loopforpara assinar oSpawnedEventde cada gerador de jogadores usandoOnPlayerSpawn.~~~(verse) OnBegin
() : void = # Obter todos os jogadores set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("O número de eliminações para terminar o jogo é {EliminationsToEndGame}")
for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # Inscrever a cada plataforma de surgimento de jogador ~~~ -
Para distribuir aos jogadores a primeira arma, você precisa acessar o primeiro Distribuidor de Item na matriz
WeaponGranters. Você fará isso por meio de um novo método.-
Adicione um novo método
GrantWeaponà classeteam_elimination_game. Esse método usa um agenteoptione atribui a ele uma arma com base noWeaponTierfornecido.~~~(verse) GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Distribuir ao jogador uma arma de Nível {WeaponTier}") ~~~
-
Dentro de
GrantWeapon, acesse o Distribuidor de Itens apropriado a partir da matrizWeaponGrantersusandoWeaponTiercomo índice. Acesse o valor dentro deInPlayere armazene-o em uma variávelGrantedPlayer.~~~(verse) GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Distribuir ao jogador uma arma de Nível {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?): ~~~
-
Distribua ao jogador a arma apropriada usando
ItemGranter.GrantItem. Você pode verificar qual arma foi distribuída registrandoWeaponTier. Seu códigoGrantWeapondeve ter a aparência do código abaixo.~~~(verse) GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Distribuir ao jogador uma arma de Nível {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?): ItemGranter.GrantItem(GrantedPlayer) ~~~
-
-
Modifique
OnPlayerSpawnpara chamarGrantWeapon. Quando um jogador surgir, inicialize número um inteiroWeaponTiercomo zero para refletir o índice do primeiro Distribuidor de Itens na matrizWeaponGranterse chameGrantWeaponpassandoWeaponTiere uma referência ao jogador. Seu códigoOnPlayerSpawndeve ter a aparência do código abaixo.~~~(verse) OnPlayerSpawn(InPlayer : agent) : void= Print("Um jogador acabou de surgir!") WeaponTier : int = 0 GrantWeapon(option{InPlayer}, WeaponTier) Print("O jogador que surgiu recebeu uma arma de nível {WeaponTier}") ~~~
-
Salve o código no Visual Studio Code, compile-o e clique em Iniciar sessão na barra de ferramentas do UEFN para testar o nível. Ao testar seu nível, você deve surgir com a primeira arma na matriz
WeaponGranters. Verifique esse comportamento com o log.
Próxima etapa
Na próxima etapa deste tutorial, você aprenderá a rastrear jogadores usando mapas e a preencher esses mapas quando o jogo começar.