7d436ac0c5
* Fix trying to write to a struct before its initialized. Same issue on IW4, IW5 and T5 game modules. * Fix path issues in the scripts + add support for t5zm. * Fix deploy.bat * Change paths inside the gsc scripts used to call functions in other scripts * Remove mp includes from base gsc file. #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; * Define GetXuid as overrideMethod as t5zm doesn't have it. * Define GetPlayerFromClientNum as getting all players is slightly different on t5zm. * Remove the precompiled gsc file for T6 as PlutoT6 can load uncompiled GSC now. * Fix _customcallbacks.gsc for T6 * Add T6 support to the game interface. * Update _integration_base.gsc use camelCase for functionName * Make sure the Setup functions are always called in the right order. Base -> shared -> game Otherwise we might write to structs before they are created. * Move functions interacting with the game from _base to _shared GetPlayerFromClientNum OnPlayerJoinedTeam OnPlayerJoinedSpectators GenerateJoinTeamString PlayerTrackingOnInterval SaveTrackingMetrics * Block execution until game specific setup is done Block _shared execution until the game specific file finished. This allows the game specific file to override the events in _shared. * Fix setup event flow Move check of sv_iw4madmin_integration_enabled dvar after waittill in _shared so _base has a chance to set it to 1. Move check of sv_iw4madmin_autobalance dvar to OnPlayerConnect in _shared so the game specific script has a chance to set the dvar. * ignore bots * add more spaces
86 lines
2.4 KiB
Plaintext
86 lines
2.4 KiB
Plaintext
init()
|
|
{
|
|
|
|
level.startmessagedefaultduration = 2;
|
|
level.regulargamemessages = spawnstruct();
|
|
level.regulargamemessages.waittime = 6;
|
|
|
|
|
|
level thread onplayerconnect();
|
|
}
|
|
|
|
onplayerconnect()
|
|
{
|
|
for ( ;; )
|
|
{
|
|
level waittill( "connecting", player );
|
|
player thread displaypopupswaiter();
|
|
}
|
|
}
|
|
|
|
displaypopupswaiter()
|
|
{
|
|
self endon( "disconnect" );
|
|
self.ranknotifyqueue = [];
|
|
if ( !isDefined( self.pers[ "challengeNotifyQueue" ] ) )
|
|
{
|
|
self.pers[ "challengeNotifyQueue" ] = [];
|
|
}
|
|
if ( !isDefined( self.pers[ "contractNotifyQueue" ] ) )
|
|
{
|
|
self.pers[ "contractNotifyQueue" ] = [];
|
|
}
|
|
self.messagenotifyqueue = [];
|
|
self.startmessagenotifyqueue = [];
|
|
self.wagernotifyqueue = [];
|
|
while ( !level.gameended )
|
|
{
|
|
if ( self.startmessagenotifyqueue.size == 0 && self.messagenotifyqueue.size == 0 )
|
|
{
|
|
self waittill( "received award" );
|
|
}
|
|
waittillframeend;
|
|
if ( level.gameended )
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if ( self.startmessagenotifyqueue.size > 0 )
|
|
{
|
|
nextnotifydata = self.startmessagenotifyqueue[ 0 ];
|
|
arrayremoveindex( self.startmessagenotifyqueue, 0, 0 );
|
|
if ( isDefined( nextnotifydata.duration ) )
|
|
{
|
|
duration = nextnotifydata.duration;
|
|
}
|
|
else
|
|
{
|
|
duration = level.startmessagedefaultduration;
|
|
}
|
|
self maps\mp\gametypes_zm\_hud_message::shownotifymessage( nextnotifydata, duration );
|
|
wait duration;
|
|
continue;
|
|
}
|
|
else if ( self.messagenotifyqueue.size > 0 )
|
|
{
|
|
nextnotifydata = self.messagenotifyqueue[ 0 ];
|
|
arrayremoveindex( self.messagenotifyqueue, 0, 0 );
|
|
if ( isDefined( nextnotifydata.duration ) )
|
|
{
|
|
duration = nextnotifydata.duration;
|
|
}
|
|
else
|
|
{
|
|
duration = level.regulargamemessages.waittime;
|
|
}
|
|
self maps\mp\gametypes_zm\_hud_message::shownotifymessage( nextnotifydata, duration );
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
wait 1;
|
|
}
|
|
}
|
|
}
|
|
} |