diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-11-07 03:53:07 +0000 |
---|---|---|
committer | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-11-07 03:53:07 +0000 |
commit | 35dfd937798d105238db23ea86f90f21be46694b (patch) | |
tree | d0e1ee639bc6177649dbcbde054f1e6094fc054c /Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut | |
parent | e79a58640e1ef1ea1c3c954aefccd36c3cb55286 (diff) | |
download | NorthstarMods-35dfd937798d105238db23ea86f90f21be46694b.tar.gz NorthstarMods-35dfd937798d105238db23ea86f90f21be46694b.zip |
code cleanup, xp, postgame and some small changes
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut index 95d7492ed..94fda4d70 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut @@ -7,6 +7,9 @@ void function CodeCallback_MatchIsOver() else SetUIVar( level, "putPlayerInMatchmakingAfterDelay", false ) + AddCreditsForXPGained() + PopulatePostgameData() + if ( ShouldReturnToLobby() ) { SetCurrentPlaylist( "private_match" ) // needed for private lobby to load @@ -22,3 +25,73 @@ void function CodeCallback_MatchIsOver() GameRules_ChangeMap( "mp_lobby", GAMETYPE ) #endif // #if DEV } + +void function PopulatePostgameData() +{ + // something's busted here because this isn't showing automatically on match end, ag + foreach ( entity player in GetPlayerArray() ) + { + int teams = GetCurrentPlaylistVarInt( "max_teams", 2 ) + bool standardTeams = teams != 2 + + int enumModeIndex = 0 + int enumMapIndex = 0 + + try + { + enumModeIndex = PersistenceGetEnumIndexForItemName( "gamemodes", GAMETYPE ) + enumMapIndex = PersistenceGetEnumIndexForItemName( "maps", GetMapName() ) + } + catch( ex ) {} + + player.SetPersistentVar( "postGameData.myTeam", player.GetTeam() ) + player.SetPersistentVar( "postGameData.myXuid", player.GetUID() ) + player.SetPersistentVar( "postGameData.gameMode", PersistenceGetEnumIndexForItemName( "gamemodes", GAMETYPE ) ) + player.SetPersistentVar( "postGameData.map", PersistenceGetEnumIndexForItemName( "maps", GetMapName() ) ) + player.SetPersistentVar( "postGameData.teams", standardTeams ) + player.SetPersistentVar( "postGameData.maxTeamSize", teams ) + player.SetPersistentVar( "postGameData.privateMatch", true ) + player.SetPersistentVar( "postGameData.ranked", true ) + player.SetPersistentVar( "postGameData.hadMatchLossProtection", false ) + + player.SetPersistentVar( "isFDPostGameScoreboardValid", GAMETYPE == FD ) + + if ( standardTeams ) + { + if ( player.GetTeam() == TEAM_MILITIA ) + { + player.SetPersistentVar( "postGameData.factionMCOR", GetFactionChoice( player ) ) + player.SetPersistentVar( "postGameData.factionIMC", GetEnemyFaction( player ) ) + } + else + { + player.SetPersistentVar( "postGameData.factionIMC", GetFactionChoice( player ) ) + player.SetPersistentVar( "postGameData.factionMCOR", GetEnemyFaction( player ) ) + } + + player.SetPersistentVar( "postGameData.scoreMCOR", GameRules_GetTeamScore( TEAM_MILITIA ) ) + player.SetPersistentVar( "postGameData.scoreIMC", GameRules_GetTeamScore( TEAM_IMC ) ) + } + else + { + player.SetPersistentVar( "postGameData.factionMCOR", GetFactionChoice( player ) ) + player.SetPersistentVar( "postGameData.scoreMCOR", GameRules_GetTeamScore( player.GetTeam() ) ) + } + + array<entity> otherPlayers = GetPlayerArray() + array<int> scoreTypes = GameMode_GetScoreboardColumnScoreTypes( GAMETYPE ) + int persistenceArrayCount = PersistenceGetArrayCount( "postGameData.players" ) + for ( int i = 0; i < min( otherPlayers.len(), persistenceArrayCount ); i++ ) + { + player.SetPersistentVar( "postGameData.players[" + i + "].team", otherPlayers[ i ].GetTeam() ) + player.SetPersistentVar( "postGameData.players[" + i + "].name", otherPlayers[ i ].GetPlayerName() ) + player.SetPersistentVar( "postGameData.players[" + i + "].xuid", otherPlayers[ i ].GetUID() ) + player.SetPersistentVar( "postGameData.players[" + i + "].callsignIconIndex", otherPlayers[ i ].GetPersistentVarAsInt( "activeCallsignIconIndex" ) ) + + for ( int j = 0; j < scoreTypes.len(); j++ ) + player.SetPersistentVar( "postGameData.players[" + i + "].scores[" + j + "]", otherPlayers[ i ].GetPlayerGameStat( scoreTypes[ j ] ) ) + } + + player.SetPersistentVar( "isPostGameScoreboardValid", true ) + } +}
\ No newline at end of file |