Wenn ein Spieler in ein laufendes Spiel einsteigt, soll er nicht als Zuschauer auf den Beginn einer neuen Runde warten müssen. Im Idealfall sollte ein neuer Spieler spawnen und sofort mit dem Spiel beginnen können. Um dies zu bewerkstelligen, musst du den neuen Spieler zur TeamMap hinzufügen, sein Eliminierungsevent abonnieren und ihm seine erste Waffe geben.
Folge diesen Schritten, um Spielern Waffen zu geben und ihre Spielerevents zu abonnieren, wenn sie einem laufenden Spiel beitreten.
-
Füge eine neue Methode
OnPlayerAddedzur Klasseteam_elimination_gamehinzu. Diese Methode befördert jeden Spieler, der dem Spiel beitritt, auf die niedrigste Waffenstufe eines anderen Spielers im Team.OnPlayerAdded(InPlayer : player) : void = Print("Ein neuer Spieler ist beigetreten!") -
Rufe das Team für den neuen Spieler mit
GetTeam[]ab und speichere es in einer lokalen VariablenTeam. Rufe denFortCharacterfür diesen Spieler ab und speichere ihn in einer VariablenFortCharacter.OnPlayerAdded(InPlayer : player) : void = Print("Ein neuer Spieler ist beigetreten!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] -
Um den neuen Spieler der
TeamMapzuzuweisen, musst du auf dieplayer_mapzugreifen, die demTeamdes neuen Spielers zugewiesen ist. Rufe dieplayer_mapab, die dem neuen Spieler zugeordnet ist, und speichere sie in einer lokalen VariablenPlayerMap.OnPlayerAdded(InPlayer : player) : void = Print("Ein neuer Spieler ist beigetreten!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team] -
Setze die Punkte des Spielers in
PlayerMapauf 0 und aktualisiere dannTeamMapin deiner lokalen VariablePlayerMap.OnPlayerAdded(InPlayer : player) : void = Print("Ein neuer Spieler ist beigetreten!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team] set PlayerMap[InPlayer] = 0 set TeamMap[Team] = PlayerMap -
Gib dem Spieler seine erste Waffe durch einen Aufruf von
GrantWeapon, und abonniere das Eliminierungsevent des neuen Spielers. DeinOnPlayerAdded-Code sollte wie der folgende Code aussehen.OnPlayerAdded(InPlayer : player) : void = Print("Ein neuer Spieler ist beigetreten!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team] set PlayerMap[InPlayer] = 0 set TeamMap[Team] = PlayerMap then: GrantWeapon(option{InPlayer}, 0) Print("Waffenstufe des neuen Spielers in der TeamMap auf 0 gesetzt") FortCharacter.EliminatedEvent().Subscribe(OnPlayerEliminated) # Das Eliminierungsevent dieses Spielers abonnieren -
Abonniere in
OnBeginden SpielbereichPlayerAddedEventmitOnPlayerAdded. Jetzt wird ein Spieler, der dem laufenden Spiel beitritt,OnPlayerAddedauslösen. DaPlayerAddedEventein Event ist, das vom Spielbereich selbst ausgelöst wird, brauchst du kein bestimmtes Gerät, um es zu abonnieren.OnBegin<override>()<suspends> : void = set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Die Anzahl der Eliminierungen bis zum Spielende beträgt {EliminationsToEndGame}") Print("Spieler werden zugewiesen") PopulateTeamsAndPlayers() für (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # Abonniere die Spawnfläche jedes Spielers für (Sentry : Sentries): Sentry.EliminatedEvent.Subscribe(TestPlayerEliminated) # Abonniere jeden Wächter # Abonniere neue Spieler, die dem Spiel beitreten GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
Speichere das Script in Visual Studio Code, kompiliere es und klicke in der UEFN-Werkzeugleiste auf Sitzung starten, um das Level zu testen. Wenn ein neuer Spieler ein laufendes Spiel betritt, sollte er mit der ersten Waffe spawnen. Wenn er oder ein Teamkollege eine Eliminierung erzielt, sollten sie in die nächste Waffenstufe aufsteigen.
Nächster Schritt
Im nächsten Schritt dieses Tutorials lernst du, wie du Eliminierungen im Einzelspielermodus mit Wächtern testen kannst.