Dieser Schritt zeigt, wie man einem Spieler zu Beginn des Spiels eine Waffe zuweist.
Wenn ein Spieler zum ersten Mal spawnt, wird ihm die erste Waffe aus dem Array WeaponGranters gewährt. Dazu musst du Funktionen für jede Spieler-Spawnfläche abonnieren. Weitere Einzelheiten zu abonnierbaren Events findest du auf der Seite Geräteinteraktionen programmieren.
Folge diesen Schritten, um die Spawn-Events der Spieler zu abonnieren und ihnen ihre erste Waffe zuzuweisen.
-
Füge eine neue Methode
OnPlayerSpawn()zur Klasseteam_elimination_gamehinzu. Diese Methode stellt sicher, dass du dem Spieler die richtige Waffe zuweist, wenn er zum ersten Mal spawnt und wenn er respawnt.OnPlayerSpawn(InPlayer : agent) : void = Print("Ein Spieler ist gerade gespawnt!") -
Um die Funktionen, die du gerade eingerichtet hast, für ihre zugehörigen Events zu abonnieren, musst du neuen Code zu
OnBegin()hinzufügen. Erstelle einefor-Schleife, um mitOnPlayerSpawndasSpawnedEventeines jeden Spielers zu abonnieren.OnBegin<override>()<suspends> : void = # Rufe alle Spieler ab set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Die Anzahl der Eliminierungen bis zum Spielende beträgt {EliminationsToEndGame}") für (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # Abonniere die Spawnfläche jedes Spielers -
Um Spielern die erste Waffe zu gewähren, musst du auf den ersten Gegenstandsgeber im
WeaponGrantersArray zugreifen. Dies erfolgt durch eine neue Methode.- Füge eine neue Methode
GrantWeaponzur Klasseteam_elimination_gamehinzu. Diese Methode nimmt einen optionalen Agenten und weist ihm eine Waffe zu, die auf dem angegebenenWeaponTierbasiert.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Spieler erhält eine Waffe der Stufe {WeaponTier}")- Greife innerhalb von
GrantWeaponauf den entsprechenden Item Granter aus dem ArrayWeaponGranterszu und verwende dabeiWeaponTierals Index. Greife auf den Wert inInPlayerzu und speichere ihn in der VariablenGrantedPlayer.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Spieler erhält eine Waffe der Stufe {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?):- Gib dem Spieler die entsprechende Waffe mit
ItemGranter.GrantItem. Du kannst überprüfen, welche Waffe gewährt wurde, indem duWeaponTierprotokollierst. DeinGrantWeapon-Code sollte wie der untenstehende Code aussehen.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Spieler erhält eine Waffe der Stufe {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?): ItemGranter.GrantItem(GrantedPlayer) - Füge eine neue Methode
-
Ändere
OnPlayerSpawnumGrantWeaponaufzurufen. Wenn ein Spieler spawnt, initialisiere eine GanzzahlWeaponTierauf Null, um den Index des ersten Item Granters imWeaponGrantersArray wiederzugeben, dann rufeGrantWeaponauf, wobeiWeaponTierund eine Referenz auf den Spieler übergeben werden. DeinOnPlayerSpawn-Code sollte wie der unten stehende Code aussehen.OnPlayerSpawn(InPlayer : agent) : void= Print("Ein Spieler ist gespawnt!") WeaponTier : int = 0 GrantWeapon(option{InPlayer}, WeaponTier) Print("Der gespawnte Spieler hat eine Waffe der Stufe {WeaponTier} erhalten") -
Speichere das Script in Visual Studio Code, kompiliere es und klicke in der UEFN-Symbolleiste auf Sitzung starten, um den Level zu testen. Wenn du dein Level testest, solltest du mit der ersten Waffe aus dem Array
WeaponGrantersspawnen. Dies lässt sich anhand des Logs überprüfen.
Nächster Schritt
Im nächsten Schritt dieses Tutorials lernst du, wie man Spieler mit Hilfe von Maps verfolgt und wie man diese Maps zu Beginn des Spiels bevölkert.