Hi everyone !
I would like to get the last team of a player who left the game in progress.
I don’t even know if it is possible to do that?..
Here is the context : When a player from team4 leaves the game, a random player from Team1 take his place, so his team change from Team1 to Team4.
Self.GetPlayspace().PlayerRemovedEvent().Subscribe(OnPlayerRemovedR6)
Here is my function :
OnPlayerRemoved(Player_ : player) : void =
set Teams = GetPlayspace().GetTeamCollection().GetTeams()
var MaybeTeam4 : ?team = option{GetPlayspace().GetTeamCollection().GetTeams()[3]} #Select team4
#if the player who left the game is from team4
if (ValidTeam4 := MaybeTeam4?):
MaybeFortCharacter : ?fort_character = option{Player_.GetFortCharacter[]}
if (ValidFortCharacter := MaybeFortCharacter?):
MaybeAgent : ?agent = option{ValidFortCharacter.GetAgent[]}
if (ValidAgent := MaybeAgent?):
if (GetPlayspace().GetTeamCollection().IsOnTeam[ValidAgent , ValidTeam4]):
TeamCollection := GetPlayspace().GetTeamCollection()
#Select a random player from Team1
if(
Team1 := GetPlayspace().GetTeamCollection().GetTeams()[0],
Team1Agents := TeamCollection.GetAgents[Team1],
ShuffledAgents := Shuffle(Team1Agents)
):
# Will store the first alive player from Team1 into SelectedPlayerMaybe
var SelectedPlayerMaybe : ?player = false
for(Team1Agent : ShuffledAgents, not SelectedPlayerMaybe?, Player := player[Team1Agent], Player.GetFortCharacter[].IsActive[]):
set SelectedPlayerMaybe = option{Player}
if(SelectedPlayer := SelectedPlayerMaybe?):
TeamChanger4.ChangeTeamAndClass(SelectedPlayer) #Change Team of random player from Team1 to Team4