aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-11-07 03:53:07 +0000
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-11-07 03:53:07 +0000
commit35dfd937798d105238db23ea86f90f21be46694b (patch)
treed0e1ee639bc6177649dbcbde054f1e6094fc054c /Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
parente79a58640e1ef1ea1c3c954aefccd36c3cb55286 (diff)
downloadNorthstarMods-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.nut73
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