Dans cette étape, nous vous montrons comment attribuer une arme à un joueur au début de la partie.
Lorsqu’un joueur apparaît pour la première fois, il reçoit la première arme de la matrice WeaponGranters. Pour ce faire, vous devez abonner des fonctions à chaque plaque d’apparition de joueur. Consultez la page Coder les interactions entre les appareils pour en savoir plus sur les événements auxquels il est possible de s’abonner.
Procédez comme suit pour vous abonner aux événements d'apparition de joueur et pour attribuer aux joueurs leur première arme.
-
Ajoutez une méthode
OnPlayerSpawn()à la classeteam_elimination_game. Cette méthode permet d'attribuer au joueur la bonne arme lorsqu'il apparaît pour la première fois et lorsqu'il réapparaît.OnPlayerSpawn(InPlayer : agent) : void = Print("A Player just spawned!") -
Pour abonner les fonctions que vous venez de configurer à leurs événements respectifs, vous devez ajouter un nouveau code à
OnBegin(). Créez une boucleforpour vous abonner auSpawnedEventde chaque point d'apparition de joueur en utilisantOnPlayerSpawn.OnBegin<override>()<suspends> : void = # Obtenir tous les joueurs set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Number of eliminations to end game is {EliminationsToEndGame}") for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # S'abonner à chaque point d'apparition de joueur -
Pour accorder la première arme aux joueurs, vous devez accéder au premier fournisseur d'objets de la matrice
WeaponGranters. Pour ce faire, utilisez une nouvelle méthode.- Ajouter une nouvelle méthode
GrantWeaponà la classeteam_elimination_game. Cette méthode prend uneoptiond’agent et lui attribue une arme basée sur le paramètreWeaponTierfourni.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Granting Player a weapon of Tier {WeaponTier}")- À l'intérieur de
GrantWeapon, accédez au fournisseur d’objets approprié de la matriceWeaponGrantersen utilisantWeaponTiercomme index. Accédez à la valeur dansInPlayeret stockez-la dans une variableGrantedPlayer.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Granting Player a weapon of Tier {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?):- Accordez au joueur l’arme appropriée en utilisant
ItemGranter.GrantItem. Vous pouvez vérifier quelle arme a été accordée en enregistrantWeaponTier. Votre codeGrantWeapondoit être similaire à celui-ci.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Granting Player a weapon of Tier {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?): ItemGranter.GrantItem(GrantedPlayer) - Ajouter une nouvelle méthode
-
Modifiez
OnPlayerSpawnpour appelerGrantWeapon. Lorsqu'un joueur apparaît, initialisez un entierWeaponTierà zéro pour refléter l'index du premier fournisseur d'objets de la matriceWeaponGranters, puis appelezGrantWeaponen transmettantWeaponTieret une référence au joueur. Votre codeOnPlayerSpawndoit ressembler à celui-ci.OnPlayerSpawn(InPlayer : agent) : void= Print("A player just spawned!") WeaponTier : int = 0 GrantWeapon(option{InPlayer}, WeaponTier) Print("Spawned Player was granted a gun of tier {WeaponTier}") -
Enregistrez le script dans Visual Studio Code, compilez-le et cliquez sur Lancer la session dans la barre d'outils de l'UEFN pour tester votre niveau. Lorsque vous testez votre niveau, vous devez apparaître avec la première arme de la matrice
WeaponGranters. Vérifiez ce comportement à l'aide du journal.
Étape suivante
Dans l'étape suivante de ce tutoriel, vous apprendrez à suivre les joueurs à l'aide de cartes et à remplir ces cartes au début du jeu.