Hey, I have bugs when people play on my map, the score doesn’t count the kills of some players. I’ve tried to fix it, but I can’t get it to work. sometimes it counts the kill sometimes not it’s random when it should count all the kills for each team.
verse code :
using { /Fortnite.com/Characters }
using { /Fortnite.com/Game }
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
Gamos2 := class(creative_device):
var PlayersMap:[player]CustomPPP = map{}
var Team1Score:int = 0
var Team2Score:int = 0
@editable
PlayerSpawner21:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner22:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner23:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner24:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner25:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner26:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner27:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner28:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner29:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner30:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner31:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner32:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner33:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner34:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner35:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner36:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner37:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner38:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner39:player_spawner_device = player_spawner_device{}
@editable
PlayerSpawner40:player_spawner_device = player_spawner_device{}
@editable
SM:score_manager_device = score_manager_device{}
OnBegin<override>()<suspends>:void=
PlayerSpawner21.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner22.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner23.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner24.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner25.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner26.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner27.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner28.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner29.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner30.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner31.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner32.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner33.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner34.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner35.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner36.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner37.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner38.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner39.SpawnedEvent.Subscribe(OnPlayerSpawned)
PlayerSpawner40.SpawnedEvent.Subscribe(OnPlayerSpawned)
GetPlayspace().PlayerRemovedEvent().Subscribe(OnPlayerRemoved)
UpdateScore():void=
for(Player : PlayersMap):
Team:int = Player.GetTeam()
if(Team = 1):
set Team1Score = SM.GetCurrentScore(Player.MyAgentObj)
else:
set Team2Score = SM.GetCurrentScore(Player.MyAgentObj)
Player.UpdateScore(Team1Score, Team2Score)
OnPlayerSpawned(Agent:agent):void=
if:
PlayerObj := player[Agent]
then:
if(PlayerExists := PlayersMap[PlayerObj]):
#do nothing, player already exists
else:
if(FC:fort_character = Agent.GetFortCharacter[]):
FC.EliminatedEvent().Subscribe(OnPlayerEliminated)
NewCustomPlayer:CustomPPP = CustomPPP{MyAgentObj := Agent}
if(set PlayersMap[PlayerObj] = NewCustomPlayer):
NewCustomPlayer.InitPlayer()
TeamCollection:=GetPlayspace().GetTeamCollection()
if(PlayerTeam := TeamCollection.GetTeam[Agent]):
TeamsArray:=TeamCollection.GetTeams()
for(TeamNumber->Team : TeamsArray):
if(PlayerTeam = Team):
NewCustomPlayer.SetTeam(TeamNumber)
UpdateScore()
OnPlayerRemoved(Player:player):void=
if(RemoveCustomPPP:CustomPPP = PlayersMap[Player]):
#remove the player from the players
var TempAllPlayersMap:[player]CustomPPP = map{}
for (Key -> Value : PlayersMap, Key <> Player):
set TempAllPlayersMap = ConcatenateMaps(TempAllPlayersMap, map{Key => Value})
set PlayersMap = TempAllPlayersMap
OnPlayerEliminated(ElimResult:elimination_result):void=
Print("player was eliminated")
EliminatedFC:fort_character = ElimResult.EliminatedCharacter
if(FortCharacter := ElimResult.EliminatingCharacter?):
if(FortCharacter = EliminatedFC):
#this is a self elim
else:
if(EliminatingAgent := FortCharacter.GetAgent[], EliminatingPlayer:=player[EliminatingAgent]):
if(EliminatingCustomPlayer:CustomPPP = PlayersMap[EliminatingPlayer]):
SM.Activate(EliminatingAgent)
if(EliminatedAgent:agent = EliminatedFC.GetAgent[], Player:player = player[EliminatedAgent]):
if(EliminatedCustomPlayer:CustomPPP = PlayersMap[Player]):
UpdateScore()