diff options
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/mp')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut | 11 | ||||
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut | 5 |
2 files changed, 14 insertions, 2 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut index 5a0ec989..0425f1d7 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut +++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut @@ -40,6 +40,8 @@ void function BaseGametype_Init_MPSP() AddDamageCallback( "player", AddToTitanDamageStat ) AddDamageCallback( "npc_titan", AddToTitanDamageStat ) + + RegisterSignal( "PlayerRespawnStarted" ) } void function SetIntermissionCamera( entity camera ) @@ -394,6 +396,8 @@ void function RespawnAsPilot( entity player, bool manualPosition = false ) void function RespawnAsTitan( entity player, bool manualPosition = false ) { + player.Signal( "PlayerRespawnStarted" ) + player.isSpawning = true entity spawnpoint = FindSpawnPoint( player, true, ShouldStartSpawn( player ) && !IsFFAGame() ) @@ -459,9 +463,16 @@ void function PlayerBecomesSpectator( entity player ) player.EndSignal( "OnRespawned" ) player.EndSignal( "OnDestroy" ) + player.EndSignal( "PlayerRespawnStarted" ) int targetIndex = 0 + OnThreadEnd( function() : ( player ) + { + if ( IsValid( player ) ) + player.StopObserverMode() + }) + while ( true ) { table result = player.WaitSignal( "ObserverTargetChanged" ) diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut index 58c8bb9b..83d889dd 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut @@ -320,10 +320,11 @@ void function GameStateEnter_WinnerDetermined_Threaded() foreach( entity player in GetPlayerArray() ) { player.FreezeControlsOnServer() - ScreenFadeToBlackForever( player, 2.0 ) + ScreenFadeToBlackForever( player, 4.0 ) } - wait 2.5 + wait 6.5 + CleanUpEntitiesForRoundEnd() // fade should be done by this point, so cleanup stuff now when people won't see foreach( entity player in GetPlayerArray() ) player.UnfreezeControlsOnServer() |