mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 13:55:43 +00:00
Fix
This commit is contained in:
parent
2377499a0f
commit
fc9b03d9ac
237
userraw/maps/mp/gametypes/_persistence.gsc
Normal file
237
userraw/maps/mp/gametypes/_persistence.gsc
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
#include maps\mp\_utility;
|
||||||
|
|
||||||
|
init()
|
||||||
|
{
|
||||||
|
level.persistentDataInfo = [];
|
||||||
|
|
||||||
|
maps\mp\gametypes\_class::init();
|
||||||
|
maps\mp\gametypes\_rank::init();
|
||||||
|
maps\mp\gametypes\_missions::init();
|
||||||
|
maps\mp\gametypes\_playercards::init();
|
||||||
|
|
||||||
|
level thread updateBufferedStats();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
initBufferedStats()
|
||||||
|
{
|
||||||
|
self.bufferedStats = [];
|
||||||
|
self.bufferedStats[ "totalShots" ] = self getPlayerData( "totalShots" );
|
||||||
|
self.bufferedStats[ "accuracy" ] = self getPlayerData( "accuracy" );
|
||||||
|
self.bufferedStats[ "misses" ] = self getPlayerData( "misses" );
|
||||||
|
self.bufferedStats[ "hits" ] = self getPlayerData( "hits" );
|
||||||
|
self.bufferedStats[ "timePlayedAllies" ] = self getPlayerData( "timePlayedAllies" );
|
||||||
|
self.bufferedStats[ "timePlayedOpfor" ] = self getPlayerData( "timePlayedOpfor" );
|
||||||
|
self.bufferedStats[ "timePlayedOther" ] = self getPlayerData( "timePlayedOther" );
|
||||||
|
self.bufferedStats[ "timePlayedTotal" ] = self getPlayerData( "timePlayedTotal" );
|
||||||
|
|
||||||
|
self.bufferedChildStats = [];
|
||||||
|
self.bufferedChildStats[ "round" ] = [];
|
||||||
|
self.bufferedChildStats[ "round" ][ "timePlayed" ] = self getPlayerData( "round", "timePlayed" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ==========================================
|
||||||
|
// Script persistent data functions
|
||||||
|
// These are made for convenience, so persistent data can be tracked by strings.
|
||||||
|
// They make use of code functions which are prototyped below.
|
||||||
|
|
||||||
|
/*
|
||||||
|
=============
|
||||||
|
statGet
|
||||||
|
|
||||||
|
Returns the value of the named stat
|
||||||
|
=============
|
||||||
|
*/
|
||||||
|
statGet( dataName )
|
||||||
|
{
|
||||||
|
assert( !isDefined( self.bufferedStats[ dataName ] ) ); // should use statGetBuffered consistently with statSetBuffered
|
||||||
|
return self GetPlayerData( dataName );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
=============
|
||||||
|
statSet
|
||||||
|
|
||||||
|
Sets the value of the named stat
|
||||||
|
=============
|
||||||
|
*/
|
||||||
|
statSet( dataName, value )
|
||||||
|
{
|
||||||
|
assert( !isDefined( self.bufferedStats[ dataName ] ) ); // should use statGetBuffered consistently with statSetBuffered
|
||||||
|
|
||||||
|
if ( !self rankingEnabled() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
self SetPlayerData( dataName, value );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
=============
|
||||||
|
statAdd
|
||||||
|
|
||||||
|
Adds the passed value to the value of the named stat
|
||||||
|
=============
|
||||||
|
*/
|
||||||
|
statAdd( dataName, value )
|
||||||
|
{
|
||||||
|
assert( !isDefined( self.bufferedStats[ dataName ] ) ); // should use statGetBuffered consistently with statSetBuffered
|
||||||
|
|
||||||
|
if ( !self rankingEnabled() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
curValue = self GetPlayerData( dataName );
|
||||||
|
self SetPlayerData( dataName, value + curValue );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
statGetChild( parent, child )
|
||||||
|
{
|
||||||
|
return self GetPlayerData( parent, child );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
statSetChild( parent, child, value )
|
||||||
|
{
|
||||||
|
if ( !self rankingEnabled() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
self SetPlayerData( parent, child, value );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
statAddChild( parent, child, value )
|
||||||
|
{
|
||||||
|
assert( isDefined( self.bufferedChildStats[ parent ][ child ] ) );
|
||||||
|
|
||||||
|
if ( !self rankingEnabled() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
curValue = self GetPlayerData( parent, child );
|
||||||
|
self SetPlayerData( parent, child, curValue + value );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
statGetChildBuffered( parent, child )
|
||||||
|
{
|
||||||
|
assert( isDefined( self.bufferedChildStats[ parent ][ child ] ) );
|
||||||
|
|
||||||
|
return self.bufferedChildStats[ parent ][ child ];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
statSetChildBuffered( parent, child, value )
|
||||||
|
{
|
||||||
|
assert( isDefined( self.bufferedChildStats[ parent ][ child ] ) );
|
||||||
|
|
||||||
|
if ( !self rankingEnabled() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
self.bufferedChildStats[ parent ][ child ] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
statAddChildBuffered( parent, child, value )
|
||||||
|
{
|
||||||
|
assert( isDefined( self.bufferedChildStats[ parent ][ child ] ) );
|
||||||
|
|
||||||
|
if ( !self rankingEnabled() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
curValue = statGetChildBuffered( parent, child );
|
||||||
|
statSetChildBuffered( parent, child, curValue + value );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
=============
|
||||||
|
statGetBuffered
|
||||||
|
|
||||||
|
Returns the value of the named stat
|
||||||
|
=============
|
||||||
|
*/
|
||||||
|
statGetBuffered( dataName )
|
||||||
|
{
|
||||||
|
assert( isDefined( self.bufferedStats[ dataName ] ) );
|
||||||
|
|
||||||
|
return self.bufferedStats[ dataName ];
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
=============
|
||||||
|
statSet
|
||||||
|
|
||||||
|
Sets the value of the named stat
|
||||||
|
=============
|
||||||
|
*/
|
||||||
|
statSetBuffered( dataName, value )
|
||||||
|
{
|
||||||
|
assert( isDefined( self.bufferedStats[ dataName ] ) );
|
||||||
|
|
||||||
|
if ( !self rankingEnabled() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
self.bufferedStats[ dataName ] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
=============
|
||||||
|
statAdd
|
||||||
|
|
||||||
|
Adds the passed value to the value of the named stat
|
||||||
|
=============
|
||||||
|
*/
|
||||||
|
statAddBuffered( dataName, value )
|
||||||
|
{
|
||||||
|
assert( isDefined( self.bufferedStats[ dataName ] ) );
|
||||||
|
|
||||||
|
if ( !self rankingEnabled() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
curValue = statGetBuffered( dataName );
|
||||||
|
statSetBuffered( dataName, curValue + value );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
updateBufferedStats()
|
||||||
|
{
|
||||||
|
// give the first player time to connect
|
||||||
|
wait ( 0.15 );
|
||||||
|
|
||||||
|
nextToUpdate = 0;
|
||||||
|
while ( !level.gameEnded )
|
||||||
|
{
|
||||||
|
nextToUpdate++;
|
||||||
|
if ( nextToUpdate >= level.players.size )
|
||||||
|
nextToUpdate = 0;
|
||||||
|
|
||||||
|
if ( isDefined( level.players[nextToUpdate] ) )
|
||||||
|
level.players[nextToUpdate] writeBufferedStats();
|
||||||
|
|
||||||
|
wait ( 2.0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ( player in level.players )
|
||||||
|
player writeBufferedStats();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
writeBufferedStats()
|
||||||
|
{
|
||||||
|
if (getDvarInt("developer_script"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach ( statName, statVal in self.bufferedStats )
|
||||||
|
{
|
||||||
|
self setPlayerData( statName, statVal );
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ( statName, statVal in self.bufferedChildStats )
|
||||||
|
{
|
||||||
|
foreach ( childStatName, childStatVal in statVal )
|
||||||
|
self setPlayerData( statName, childStatName, childStatVal );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -1 +1 @@
|
|||||||
start "" "%~dp0iw4x.exe" -nosteam -dump -console -scriptablehttp +set sv_lanonly "1" +set r_fullscreen "0" +set fs_game "mods/dev" +set developer "1" +set developer_script "1" +set cg_drawfps "4" +set cg_drawsnapshot "1" +set thereisacow "1" +set sv_cheats "1" +set bots_manage_add "8" +set drawlagometer "1" +set scr_game_spectatetype "2" +set r_mode "1024x768" +devmap mp_rust
|
start "" "%~dp0iw4x.exe" -nosteam -dump -console -scriptablehttp +set sv_lanonly "1" +set r_fullscreen "0" +set fs_game "mods/dev" +set developer "1" +set developer_script "1" +set cg_drawfps "4" +set cg_drawsnapshot "1" +set thereisacow "1" +set sv_cheats "1" +set bots_manage_add "0" +set drawlagometer "1" +set scr_game_spectatetype "2" +set r_mode "1024x768" +devmap mp_rust
|
Loading…
x
Reference in New Issue
Block a user