diff options
Diffstat (limited to 'Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut')
-rw-r--r-- | Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut b/Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut new file mode 100644 index 00000000..755396e3 --- /dev/null +++ b/Northstar.Client/mod/scripts/vscripts/presence/cl_presence.nut @@ -0,0 +1,60 @@ +untyped +globalize_all_functions + +struct { + int highestScore = 0 + int secondHighestScore = 0 +} file + +void function OnPrematchStart() +{ + if ( GetServerVar( "roundBased" ) ) + NSUpdateTimeInfo( level.nv.roundEndTime - Time() ) + else + NSUpdateTimeInfo( level.nv.gameEndTime - Time() ) +} + +void function NSUpdateGameStateClientStart() +{ + #if MP + AddCallback_GameStateEnter( eGameState.Prematch, OnPrematchStart ) + #endif + + thread NSUpdateGameStateLoopClient() + OnPrematchStart() +} + +void function NSUpdateGameStateLoopClient() +{ + while ( true ) + { + if ( IsSingleplayer() ) + { + NSUpdateGameStateClient( GetPlayerArray().len(), GetCurrentPlaylistVarInt( "max_players", 65535 ), 1, 1, 1, GetServerVar( "roundBased" ), 1 ) + wait 1.0 + } + else + { + foreach ( player in GetPlayerArray() ) + { + if ( GameRules_GetTeamScore( player.GetTeam() ) >= file.highestScore ) + { + file.highestScore = GameRules_GetTeamScore( player.GetTeam() ) + } + else if ( GameRules_GetTeamScore( player.GetTeam() ) > file.secondHighestScore ) + { + file.secondHighestScore = GameRules_GetTeamScore( player.GetTeam() ) + } + } + + int ourScore = 0 + if ( IsValid( GetLocalClientPlayer() ) ) + ourScore = GameRules_GetTeamScore( GetLocalClientPlayer().GetTeam() ) + + int limit = IsRoundBased() ? GetCurrentPlaylistVarInt( "roundscorelimit", 0 ) : GetCurrentPlaylistVarInt( "scorelimit", 0 ) + NSUpdateGameStateClient( GetPlayerArray().len(), GetCurrentPlaylistVarInt( "max_players", 65535 ), ourScore, file.secondHighestScore, file.highestScore, GetServerVar( "roundBased" ), limit ) + OnPrematchStart() + wait 1.0 + } + } +} |