aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers/mod/scripts/vscripts/mp
diff options
context:
space:
mode:
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/mp')
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut32
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_playlist.gnut3
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut2
3 files changed, 35 insertions, 2 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
index a2e95e08..470fa6a4 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
@@ -6,9 +6,11 @@ void function CodeCallback_MatchIsOver()
SetUIVar( level, "putPlayerInMatchmakingAfterDelay", true )
else
SetUIVar( level, "putPlayerInMatchmakingAfterDelay", false )
-
+
+ #if MP
AddCreditsForXPGained()
PopulatePostgameData()
+ #endif
if ( ShouldReturnToLobby() )
{
@@ -19,6 +21,30 @@ void function CodeCallback_MatchIsOver()
else
GameRules_ChangeMap( "mp_lobby", GAMETYPE )
}
+ else
+ {
+ // iterate over all gamemodes/maps in current playlist, choose map/mode combination that's directly after our current one
+ // if we reach the end, go back to the first map/mode
+ bool changeOnNextIteration = false
+
+ for ( int i = 0; i < GetCurrentPlaylistGamemodesCount(); i++ )
+ {
+ if ( GetCurrentPlaylistGamemodeByIndex( i ) == GAMETYPE )
+ {
+ for ( int j = 0; j < GetCurrentPlaylistGamemodeByIndexMapsCount( i ); j++ )
+ {
+ if ( changeOnNextIteration )
+ GameRules_ChangeMap( GetCurrentPlaylistGamemodeByIndexMapByIndex( i, j ), GetCurrentPlaylistGamemodeByIndex( i ) )
+
+ if ( GetCurrentPlaylistGamemodeByIndexMapByIndex( i, j ) == GetMapName() )
+ changeOnNextIteration = true // change to next map/mode we iterate over
+ }
+ }
+ }
+
+ // go back to first map/mode
+ GameRules_ChangeMap( GetCurrentPlaylistGamemodeByIndexMapByIndex( 0, 0 ), GetCurrentPlaylistGamemodeByIndex( 0 ) )
+ }
#if DEV
if ( !IsMatchmakingServer() )
@@ -26,6 +52,7 @@ void function CodeCallback_MatchIsOver()
#endif // #if DEV
}
+#if MP
void function PopulatePostgameData()
{
// something's busted here because this isn't showing automatically on match end, ag
@@ -94,4 +121,5 @@ void function PopulatePostgameData()
player.SetPersistentVar( "isPostGameScoreboardValid", true )
}
-} \ No newline at end of file
+}
+#endif \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_playlist.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_playlist.gnut
index 0d610e37..8db52b11 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_playlist.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_playlist.gnut
@@ -61,8 +61,10 @@ void function FeaturedModeSettingsSetupPilotLoadouts( entity player )
shouldChangeLoadout = true
+ // have to set attachments too, otherwise we could give invalid mods for this weapon
modifiedLoadout.primary = "mp_weapon_epg"
modifiedLoadout.primaryMods = [ "rocket_arena" ]
+ modifiedLoadout.primaryAttachments = [ "" ]
// set secondary to whatever one is pistol
if ( GetWeaponInfoFileKeyField_Global( player.GetMainWeapons()[ 1 ].GetWeaponClassName(), "menu_category" ) == "at" )
@@ -87,6 +89,7 @@ void function FeaturedModeSettingsSetupPilotLoadouts( entity player )
// this one was never released, assuming it just gives you a mastiff and a kraber with quick swap
modifiedLoadout.primary = "mp_weapon_sniper"
modifiedLoadout.primaryMods = [ "pas_fast_swap", "pas_fast_ads" ]
+ modifiedLoadout.primaryAttachments = [ "" ]
// set secondary to whatever one is pistol
if ( GetWeaponInfoFileKeyField_Global( player.GetMainWeapons()[ 1 ].GetWeaponClassName(), "menu_category" ) == "at" )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
index 39940769..ac64af37 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
@@ -79,6 +79,8 @@ void function AddPlayerScore( entity targetPlayer, string scoreEventName, entity
if ( ScoreEvent_HasConversation( event ) )
PlayFactionDialogueToPlayer( event.conversation, targetPlayer )
+
+ HandleXPGainForScoreEvent( targetPlayer, event )
}
void function ScoreEvent_PlayerKilled( entity victim, entity attacker, var damageInfo )