nx1-gsc-dump/maps/mp/_fantasystats.gsc
2024-09-04 23:46:54 +10:00

177 lines
4.3 KiB
Plaintext

#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include common_scripts\utility;
MIN_TIME_IN_GAME = 0.25; //Min % of total match's length for which the player has to be in the match in order for his stats to be recorded
MIN_NUM_PLAYERS = 5; //Minimum number of players that need to be at the end of the match in order for the fantasy stats to be tracked
processFantasyStats()
{
if( ( matchMakingGame() )
&& ( level._players.size >= MIN_NUM_PLAYERS )
&& ( getDvarInt( "fantasyStatTracking" ) == 1 ) )
{
topscore = 0;
topPlayer = [];
foreach ( player in level._players )
{
if ( player.score >= topscore )
{
topscore = player.score;
topPlayer [ topPlayer.size ] = player;
}
}
foreach ( player in topPlayer )
{
player incPlayerStat ( "topscore", 1 );
}
localPlayerStatsInt = [
"kills",
"deaths",
"killstreak",
"headshots",
"grenadekills",
"uavs",
"mostmultikills",
"multikill",
"knifekills",
"flankkills",
"laststandkills",
"assists",
"c4kills",
"claymorekills",
"fragkills",
"semtexkills",
"explosionssurvived",
"adskills",
"hipfirekills",
"revengekills",
"longestlife",
"throwbacks",
"mostcamperkills",
"fbhits",
"stunhits",
"scopedkills",
"arkills",
"arheadshots",
"lmgkills",
"lmgheadshots",
"sniperkills",
"sniperheadshots",
"shieldblocks",
"shieldkills",
"smgkills",
"smgheadshots",
"shotgunkills",
"shotgunheadshots",
"pistolkills",
"pistolheadshots",
"rocketkills",
"equipmentkills",
"intelCompleted",
"explosivehits",
"machinepistolkills",
"machinepistolheadshots",
"rescues",
"throwingknifekills",
"killswhilepushingugv",
"killsenemywhopushesugv",
"crouchkills",
"pronekills",
"firstblood",
"backstabber",
"flagscaptured",
"flagsreturned",
"flagscarried",
"bombsplanted",
"bombsdefused",
"bombsdefender",
"targetsdestroyed",
"pointscaptured",
"bulletpenkills",
"killstunnedenemy",
"killcookedgrenade",
"killwithstolenweapons",
"gamewinningkill",
"killwithkillstreaks",
"checkpoints",
"killstreakdestroyed",
"killduringenemyairkillstreak",
"topscore",
"dompointscapturedsingular",
"domdefendwithequipment"
];
localPlayerStatsFloat = [ "kdratio" ];
// matchPlayerStatsInt = [
// "scoreXp",
// "matchXp" ];
// "hits",
// "misses",
// "totalShots",
// "accuracy" ];
gameLength = getTimePassed() / 1000; //getTimePassed returns the time in millisecond
foreach ( player in level._players )
{
if ( player.timePlayed["total"] > ( gameLength * MIN_TIME_IN_GAME ))
{
plat = "win";
if( level._xenon )
{
plat = "xen";
}
if( level._ps3 )
{
plat = "ps3";
}
bbString = "fantasy_cod: username %s plat %s ";
actualString = "fantasy_cod: username " + player.gamertag + " plat " + plat + " ";
bbData = [ player.gamertag, plat ];
println( "Fantasy Ints:" );
foreach( stat in localPlayerStatsInt )
{
if( player doesPlayerStatExist ( stat ))
{
data = player getPlayerStat( stat );
}
else
{
data = "0";
}
bbString += stat + " %d ";
actualString += stat + " " + data + " ";
bbData[ bbData.size ] = data;
println( stat + ": " + data );
}
println( "Fantasy floats:" );
foreach( stat in localPlayerStatsFloat )
{
if( player doesPlayerStatExist ( stat ))
{
data = player getPlayerStat( stat );
}
else
{
data = "0";
}
bbString += stat + " %f ";
actualString += stat + " " + data + " ";
bbData[ bbData.size ] = data;
println( stat + ": " + data );
}
// foreach( stat in matchPlayerStatsInt )
// {
// data = player getPlayerData( "round", stat );
// bbString += stat + " %d ";
// bbData[ bbData.size ] = data;
// }
println( bbString );
println( actualString );
bbprint( bbString, bbData, "uid" );
}
}
}
}