2019-03-12 20:10:12 -04:00
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
// Stats system for classic and base
// Script BY: DarkTiger
// Version 1.0 - Initial release
// Version 2.0 - Code refactor / optimizing / fixes
2020-08-24 18:02:35 -04:00
// Version 3.0 - DM / LCTF added
// Version 4.0 - Code refactor / optimizing / fixes
2021-06-02 13:16:13 -04:00
// Version 5.0 - DuleMod and Arena support / optimizing / fixes / misc stuff
// Version 6.0 - Lan & Bot Support / Leaderboard / Stats Storage Overhaul / Optimization / Fixes
// Version 7.0 - Code refactor / Heavy Optimization / Map Stats / Server Stats / Fixes / Misc other features
// Version 8.0 - More Stats / Fixes / Server Event Log
// Note See bottom of file for full log
2019-03-12 20:10:12 -04:00
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021-06-02 12:55:33 -04:00
2019-03-10 12:58:05 -04:00
//-----------Settings------------
2021-06-02 13:16:13 -04:00
//Notes score ui width is 592
2022-09-24 06:35:14 -04:00
$ dtStats : : version = 9.5 ;
2020-11-19 00:37:03 -05:00
//disable stats system
2020-09-24 12:19:15 -04:00
$ dtStats : : Enable = 1 ;
2019-11-20 14:43:50 -05:00
//Only self client can see his own stats, any stat, unless admin
2021-06-02 13:16:13 -04:00
$ dtStats : : viewSelf = 0 ;
2020-02-28 16:37:29 -05:00
//set max number of individual game to record
//Note only tested to 100 games, hard cap at 300
$ dtStats : : MaxNumOfGames = 100 ;
2021-05-06 15:01:41 -04:00
//number of games for leaderboard averages
2021-01-07 12:07:21 -05:00
$ dtStats : : minTotal = 6 ;
2020-08-24 18:02:35 -04:00
//how high the player has to be off the ground before it will count
$ dtStats : : midAirHeight = 10 ;
2020-02-28 16:37:29 -05:00
// 30 sec min after not making an action reset
$ dtStats : : returnToMenuTimer = ( 30 * 1000 ) ;
2020-08-24 18:02:35 -04:00
2021-06-02 13:16:13 -04:00
//sorting speed
2022-09-24 06:35:14 -04:00
$ dtStats : : sortSpeed = 64 ;
2020-08-24 18:02:35 -04:00
2019-11-20 14:43:50 -05:00
//Load/saving rates to prevent any server hitching
2020-02-28 16:37:29 -05:00
$ dtStats : : slowSaveTime = 100 ;
2022-09-24 06:35:14 -04:00
2020-08-24 18:02:35 -04:00
//This will load player stats after their first game, to reduce any impact on the server.
2021-06-02 13:16:13 -04:00
$ dtStats : : loadAfter = 0 ; //keep 0 not finished
2019-11-20 14:43:50 -05:00
2020-02-28 16:37:29 -05:00
//Leaderboards stuff
//To rebuild the leaderboards manually type lStatsCycle(1) into the console;
//This time marks the end of day and to rebuild the leaderboards, best set this time when the server is normally empty or low numbers
2022-09-24 06:35:14 -04:00
$ dtStats : : buildSetTime = "5\t00\tam" ;
2020-02-28 16:37:29 -05:00
// top 15 players per cat;
$ dtStats : : topAmount = 15 ;
2021-06-02 13:16:13 -04:00
//Set 2 or more to enable, this also contorls how much history you want, best to keep this count low
2020-02-28 16:37:29 -05:00
$ dtStats : : day = 0 ; //-365
$ dtStats : : week = 0 ; //~53
$ dtStats : : month = 3 ; //-12
$ dtStats : : quarter = 0 ; //-4
$ dtStats : : year = 0 ; // number of years
2022-09-24 06:35:14 -04:00
//in days
2021-06-02 13:16:13 -04:00
$ dtStats : : expireMax = 90 ;
2020-09-03 18:44:59 -04:00
$ dtStats : : expireMin = 15 ;
2020-08-24 18:02:35 -04:00
// you gain extra days based on time played extra days = gameCount * expireFactor;
// example being 100 games * factor of 0.596 = will gain you 60 extra days but if its over the 90 day max it will be deleted
$ dtStats : : expireFactor [ "CTFGame" ] = 0.596 ;
$ dtStats : : expireFactor [ "LakRabbitGame" ] = 2 ;
$ dtStats : : expireFactor [ "DMGame" ] = 6 ;
$ dtStats : : expireFactor [ "SCtFGame" ] = 1.2 ;
$ dtStats : : expireFactor [ "ArenaGame" ] = 2 ;
$ dtStats : : expireFactor [ "DuelGame" ] = 10 ;
//File maintainers to deletes old files see $dtStats::expireMax
//deletes player stats files that are x amount days old, only works if $dtStats::sm is enabled
$ dtStats : : sm = 1 ;
//set to 1 to delete old leaderboards files
$ dtStats : : lsm = 1 ;
2020-02-28 16:37:29 -05:00
2021-06-02 13:16:13 -04:00
$ Host : : ShowIngamePlayerScores = 1 ;
2020-12-01 11:14:20 -05:00
2022-09-24 06:35:14 -04:00
$ dtStats : : enableRefresh = 0 ; //auto updates
2021-09-13 16:38:06 -04:00
$ dtStats : : debugEchos = 0 ; // echos function calls
2022-09-24 06:35:14 -04:00
$ dtStats : : eventEchos = 1 ; //enables server monitor echos
2021-06-02 13:16:13 -04:00
2022-09-24 06:35:14 -04:00
//debug stuff
2020-08-24 18:02:35 -04:00
//$dtStats::returnToMenuTimer = (303*1000);
2019-03-10 12:58:05 -04:00
//$pref::NoClearConsole = 1;
2020-02-28 16:37:29 -05:00
//setLogMode(1);
//$AIDisableChat = 1;
2021-06-02 13:16:13 -04:00
//dbgSetParameters(6060,"password");
2019-03-10 12:58:05 -04:00
// colors used
//00dcd4 Darker blue
//0befe7 Lighter blue
//00dc00 Green
//0099FF Blue
//FF9A00 Orange
//05edad Teal
//FF0000 Red
//dcdcdc White
//02d404 T2 Green
2019-03-16 15:39:43 -04:00
//fb3939 Lighter Red
2019-03-10 12:58:05 -04:00
//---------------------------------
// Torque Markup Language - TML
2021-06-02 13:16:13 -04:00
// Reference Tags
2019-03-10 12:58:05 -04:00
//---------------------------------
//<font:name:size>Sets the current font to the indicated name and size. Example: <font:Arial Bold:20>
//<tag:ID>Set a tag to which we can scroll a GuiScrollContentCtrl (parent control of the guiMLTextCtrl)
//<color:RRGGBBAA>Sets text color. Example: <color:dcdcdc> will display red text.
//<linkcolor:RRGGBBAA>Sets the color of a hyperlink.
//<linkcolorHL:RRGGBBAA>Sets the color of a hyperlink that is being clicked.
//<shadow:x:y>Add a shadow to the text, displaced by (x, y).
//<shadowcolor:RRGGBBAA>Sets the color of the text shadow.
//<bitmap:filePath>Displays the bitmap image of the given file. Note this is hard coded in t2 to only look in texticons in textures
//<spush>Saves the current text formatting so that temporary changes to formatting can be made. Used with <spop>.
//<spop>Restores the previously saved text formatting. Used with <spush>.
//<sbreak>Produces line breaks, similarly to <br>. However, while <br> keeps the current flow (for example, when flowing around the image), <sbreak> moves the cursor position to a new line in a more global manner (forces our text to stop flowing around the image, so text is drawn at a new line under the image).
//<just:left>Left justify the text.
//<just:right>Right justify the text.
//<just:center>Center the text.
//<a:URL>content</a>Inserts a hyperlink into the text. This can also be used to call a function class::onURL
//<lmargin:width>Sets the left margin.
//<lmargin%:width>Sets the left margin as a percentage of the full width.
//<rmargin:width>Sets the right margin.
//<clip:width>content</clip>Produces the content, but clipped to the given width.
//<div:bool>Use the profile's fillColorHL to draw a background for the text.
//<tab:##[,##[,##]]>Sets tab stops at the given locations.
//<br>Forced line break.
2020-08-24 18:02:35 -04:00
2020-02-28 16:37:29 -05:00
////////////////////////////////////////////////////////////////////////////////
// Supported Game Types
////////////////////////////////////////////////////////////////////////////////
//Array for processing stats
$ dtStats : : gameType [ 0 ] = "CTFGame" ;
$ dtStats : : gameType [ 1 ] = "LakRabbitGame" ;
$ dtStats : : gameType [ 2 ] = "DMGame" ;
$ dtStats : : gameType [ 3 ] = "SCtFGame" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : gameType [ 4 ] = "ArenaGame" ;
$ dtStats : : gameType [ 5 ] = "DuelGame" ;
2020-08-24 18:02:35 -04:00
//$dtStats::gameType[6] = "SiegeGame";
2020-02-28 16:37:29 -05:00
$ dtStats : : gameTypeCount = 6 ;
2020-03-05 01:51:16 -05:00
//short hand name
$ dtStats : : gtNameShort [ "CTFGame" ] = "CTF" ;
$ dtStats : : gtNameShort [ "LakRabbitGame" ] = "LakRabbit" ;
$ dtStats : : gtNameShort [ "DMGame" ] = "DM" ;
$ dtStats : : gtNameShort [ "SCtFGame" ] = "LCTF" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : gtNameShort [ "ArenaGame" ] = "Arena" ;
$ dtStats : : gtNameShort [ "DuelGame" ] = "Duel" ;
//$dtStats::gtNameShort["SiegeGame"] = "Siege";
//Display name
2020-03-05 01:51:16 -05:00
$ dtStats : : gtNameLong [ "CTFGame" ] = "Capture the Flag" ;
$ dtStats : : gtNameLong [ "LakRabbitGame" ] = "LakRabbit" ;
$ dtStats : : gtNameLong [ "DMGame" ] = "Deathmatch" ;
$ dtStats : : gtNameLong [ "SCtFGame" ] = "Spawn CTF" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : gtNameLong [ "ArenaGame" ] = "Arena" ;
$ dtStats : : gtNameLong [ "DuelGame" ] = "Duel MOD" ;
//$dtStats::gtNameLong["SiegeGame"] = "Siege";
2020-08-24 18:02:35 -04:00
//varTypes
$ dtStats : : varType [ 0 ] = "Game" ; //Game only stat
2021-06-02 13:16:13 -04:00
$ dtStats : : varType [ 1 ] = "TG" ; //Total & Game stat
2020-08-24 18:02:35 -04:00
$ dtStats : : varType [ 2 ] = "TTL" ; //Total only stat
$ dtStats : : varType [ 3 ] = "Max" ; //Largest value
$ dtStats : : varType [ 4 ] = "Min" ; //Smallest value sorted inverse
$ dtStats : : varType [ 5 ] = "Avg" ; //Average value
2021-06-02 13:16:13 -04:00
$ dtStats : : varType [ 6 ] = "AvgI" ; //Average value sorted inverse
2020-08-24 18:02:35 -04:00
$ dtStats : : varTypeCount = 7 ;
function dtStatsResetGobals ( ) {
for ( % v = 0 ; % v < $ dtStats : : varTypeCount ; % v + + ) {
% varType = $ dtStats : : varType [ % v ] ;
$ dtStats : : FC [ % varType ] = 0 ;
for ( % i = 0 ; % i < $ dtStats : : gameTypeCount ; % i + + ) {
% gameType = $ dtStats : : gameType [ % i ] ;
$ dtStats : : uGFC [ % gameType ] = 0 ;
$ dtStats : : FC [ % gameType , % varType ] = 0 ;
$ dtStats : : FCG [ % gameType , % varType ] = 0 ;
}
}
$ dtStats : : unusedCount = 0 ;
} dtStatsResetGobals ( ) ;
2020-02-28 16:37:29 -05:00
2019-03-12 20:10:12 -04:00
///////////////////////////////////////////////////////////////////////////////
2019-11-24 14:34:05 -05:00
// CTF
2019-03-12 20:10:12 -04:00
///////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
//gametype values with in the gametype file CTFGame.cs
2021-06-02 13:16:13 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "score" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "Avg" ] + + , "CTFGame" , "Avg" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "Max" ] + + , "CTFGame" , "Max" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "kills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "deaths" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "suicides" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "teamKills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "flagCaps" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "flagGrabs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "carrierKills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "flagReturns" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "scoreMidAir" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "scoreHeadshot" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "scoreRearshot" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "escortAssists" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "defenseScore" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "offenseScore" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "flagDefends" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "genRepairs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "SensorRepairs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "TurretRepairs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "StationRepairs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "VStationRepairs" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "mpbtstationRepairs" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "solarRepairs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "sentryRepairs" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "depSensorRepairs" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "depInvRepairs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "depTurretRepairs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "tkDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "genDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "sensorDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "turretDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "iStationDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "vstationDestroys" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "mpbtstationDestroys" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "solarDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "sentryDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "depSensorDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "depTurretDestroys" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "depStationDestroys" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "vehicleScore" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "vehicleBonus" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "genDefends" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "turretKills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "mannedTurretKills" ;
/////////////////////////////////////////////////////////////////////////////
//gametype values in this script
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "winCount" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "lossCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "destruction" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Min" ] + + , "CTFGame" , "Min" ] = "heldTimeSec" ;
2020-09-28 11:58:38 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Min" ] + + , "CTFGame" , "Min" ] = "heldTimeSecLow" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "AvgI" ] + + , "CTFGame" , "AvgI" ] = "heldTimeSec" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Max" ] + + , "CTFGame" , "Max" ] = "grabSpeed" ;
2020-09-28 11:58:38 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Max" ] + + , "CTFGame" , "Max" ] = "grabSpeedLow" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Avg" ] + + , "CTFGame" , "Avg" ] = "grabSpeed" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Avg" ] + + , "CTFGame" , "Avg" ] = "capEfficiency" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Avg" ] + + , "CTFGame" , "Avg" ] = "winLostPct" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "wildRK" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "assaultRK" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "mobileBaseRK" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "scoutFlyerRK" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "bomberFlyerRK" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "hapcFlyerRK" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "wildRD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "assaultRD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "mobileBaseRD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "scoutFlyerRD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "bomberFlyerRD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "hapcFlyerRD" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "roadKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "roadDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Game" ] + + , "CTFGame" , "Game" ] = "dtTeam" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "repairs" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "MotionSensorDep" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "PulseSensorDep" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "InventoryDep" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "TurretOutdoorDep" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "TurretIndoorDep" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Game" ] + + , "CTFGame" , "Game" ] = "teamScore" ;
2020-10-05 16:35:31 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "concussFlag" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "depInvyUse" ;
2020-10-20 18:09:49 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "mpbGlitch" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "flagCatch" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "maFlagCatch" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Max" ] + + , "CTFGame" , "Max" ] = "flagCatchSpeed" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Max" ] + + , "CTFGame" , "Max" ] = "maFlagCatchSpeed" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "flagToss" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "flagTossCatch" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "interceptedFlag" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "maInterceptedFlag" ;
2020-11-02 15:02:14 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Max" ] + + , "CTFGame" , "Max" ] = "interceptSpeed" ;
2020-12-01 11:14:20 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Max" ] + + , "CTFGame" , "Max" ] = "interceptFlagSpeed" ;
2020-11-02 15:02:14 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "friendlyFire" ;
2021-05-06 15:01:41 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "timeOnTeamZero" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "timeOnTeamOne" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "timeOnTeamTwo" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "TG" ] + + , "CTFGame" , "TG" ] = "matchRunTime" ;
2021-06-02 12:55:33 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Game" ] + + , "CTFGame" , "Game" ] = "teamOneCapTimes" ;
$ dtStats : : FV [ $ dtStats : : FC [ "CTFGame" , "Game" ] + + , "CTFGame" , "Game" ] = "teamTwoCapTimes" ;
2020-08-24 18:02:35 -04:00
/////////////////////////////////////////////////////////////////////////////
//Unused vars needed for stats back up
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "CTFGame" ] + + , "CTFGame" ] = "returnPts" ;
2020-02-28 16:37:29 -05:00
2019-03-12 20:10:12 -04:00
///////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
// LakRabbit
2019-03-12 20:10:12 -04:00
///////////////////////////////////////////////////////////////////////////////
//Game type values - out of LakRabbitGame.cs
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "Avg" ] + + , "LakRabbitGame" , "Avg" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "Max" ] + + , "LakRabbitGame" , "Max" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "kills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "deaths" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "suicides" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "flagGrabs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "morepoints" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "mas" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "MidairflagGrabs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "MidairflagGrabPoints" ;
$ dtStats : : FV [ $ dtStats : : FC [ "LakRabbitGame" , "TG" ] + + , "LakRabbitGame" , "TG" ] = "flagTimeMin" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "flagTimeMS" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "totalChainAccuracy" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "totalChainHits" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "totalSnipeHits" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "totalSnipes" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "totalSpeed" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "totalDistance" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "totalShockHits" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "LakRabbitGame" ] + + , "LakRabbitGame" ] = "totalShocks" ;
2019-04-01 16:02:48 -04:00
///////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
// DMGame
2019-04-01 16:02:48 -04:00
///////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "DMGame" , "TG" ] + + , "DMGame" , "TG" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DMGame" , "Avg" ] + + , "DMGame" , "Avg" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DMGame" , "Max" ] + + , "DMGame" , "Max" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DMGame" , "TG" ] + + , "DMGame" , "TG" ] = "kills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DMGame" , "TG" ] + + , "DMGame" , "TG" ] = "deaths" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DMGame" , "TG" ] + + , "DMGame" , "TG" ] = "suicides" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DMGame" , "Avg" ] + + , "DMGame" , "Avg" ] = "efficiency" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "DMGame" ] + + , "DMGame" ] = "MidAir" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "DMGame" ] + + , "DMGame" ] = "Bonus" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "DMGame" ] + + , "DMGame" ] = "KillStreakBonus" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "DMGame" ] + + , "DMGame" ] = "killCounter" ;
2019-11-06 11:21:22 -05:00
///////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
// LCTF
2019-11-20 14:43:50 -05:00
///////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "Avg" ] + + , "SCtFGame" , "Avg" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "Max" ] + + , "SCtFGame" , "Max" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "kills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "deaths" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "suicides" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "teamKills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "flagCaps" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "flagGrabs" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "carrierKills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "flagReturns" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "scoreMidAir" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "scoreHeadshot" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "scoreRearshot" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "escortAssists" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "defenseScore" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "offenseScore" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "flagDefends" ;
2021-01-07 12:07:21 -05:00
// in this script only
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "winCount" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "lossCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Min" ] + + , "SCtFGame" , "Min" ] = "heldTimeSec" ;
2020-09-28 11:58:38 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Min" ] + + , "SCtFGame" , "Min" ] = "heldTimeSecLow" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "AvgI" ] + + , "SCtFGame" , "AvgI" ] = "heldTimeSec" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Max" ] + + , "SCtFGame" , "Max" ] = "grabSpeed" ;
2020-09-28 11:58:38 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Max" ] + + , "SCtFGame" , "Max" ] = "grabSpeedLow" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Avg" ] + + , "SCtFGame" , "Avg" ] = "grabSpeed" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Avg" ] + + , "SCtFGame" , "Avg" ] = "capEfficiency" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Avg" ] + + , "SCtFGame" , "Avg" ] = "winLostPct" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Game" ] + + , "SCtFGame" , "Game" ] = "dtTeam" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "destruction" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "repairs" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Game" ] + + , "SCtFGame" , "Game" ] = "teamScore" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "concussFlag" ;
2020-10-20 18:09:49 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "flagCatch" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "maFlagCatch" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Max" ] + + , "SCtFGame" , "Max" ] = "flagCatchSpeed" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Max" ] + + , "SCtFGame" , "Max" ] = "maFlagCatchSpeed" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "flagToss" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "flagTossCatch" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "interceptedFlag" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "maInterceptedFlag" ;
2020-11-02 15:02:14 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Max" ] + + , "SCtFGame" , "Max" ] = "interceptSpeed" ;
2020-12-01 11:14:20 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Max" ] + + , "SCtFGame" , "Max" ] = "interceptFlagSpeed" ;
2020-11-02 15:02:14 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "friendlyFire" ;
2020-02-28 16:37:29 -05:00
////////////////////////////Unused LCTF Vars/////////////////////////////////////
2020-08-24 18:02:35 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "tkDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "genDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "sensorDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "turretDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "iStationDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "vstationDestroys" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "mpbtstationDestroys" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "solarDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "sentryDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "depSensorDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "depTurretDestroys" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "depStationDestroys" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "vehicleScore" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "vehicleBonus" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "genDefends" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "escortAssists" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "turretKills" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "mannedTurretKills" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "genRepairs" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "SensorRepairs" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "TurretRepairs" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "StationRepairs" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "VStationRepairs" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "mpbtstationRepairs" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "solarRepairs" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "sentryRepairs" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "depSensorRepairs" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "depInvRepairs" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "depTurretRepairs" ;
$ dtStats : : uGFV [ $ dtStats : : uGFC [ "SCtFGame" ] + + , "SCtFGame" ] = "returnPts" ;
2020-10-20 18:09:49 -04:00
2021-05-06 15:01:41 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "timeOnTeamZero" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "timeOnTeamOne" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "timeOnTeamTwo" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "TG" ] + + , "SCtFGame" , "TG" ] = "matchRunTime" ;
2021-06-02 12:55:33 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Game" ] + + , "SCtFGame" , "Game" ] = "teamOneCapTimes" ;
$ dtStats : : FV [ $ dtStats : : FC [ "SCtFGame" , "Game" ] + + , "SCtFGame" , "Game" ] = "teamTwoCapTimes" ;
2019-11-20 14:43:50 -05:00
///////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
// DuelGame
2019-11-20 14:43:50 -05:00
///////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "DuelGame" , "TG" ] + + , "DuelGame" , "TG" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DuelGame" , "Avg" ] + + , "DuelGame" , "Avg" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DuelGame" , "Max" ] + + , "DuelGame" , "Max" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DuelGame" , "TG" ] + + , "DuelGame" , "TG" ] = "kills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "DuelGame" , "TG" ] + + , "DuelGame" , "TG" ] = "deaths" ;
2019-11-20 14:43:50 -05:00
///////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
// ArenaGame
2019-11-06 11:21:22 -05:00
///////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "Avg" ] + + , "ArenaGame" , "Avg" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "Max" ] + + , "ArenaGame" , "Max" ] = "score" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "kills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "deaths" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "suicides" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "teamKills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "snipeKills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "roundsWon" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "roundsLost" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "assists" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "roundKills" ;
$ dtStats : : FVG [ $ dtStats : : FCG [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "hatTricks" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "ArenaGame" , "Game" ] + + , "ArenaGame" , "Game" ] = "dtTeam" ;
$ dtStats : : FV [ $ dtStats : : FC [ "ArenaGame" , "Game" ] + + , "ArenaGame" , "Game" ] = "teamScore" ;
2021-05-06 15:01:41 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "timeOnTeamZero" ;
$ dtStats : : FV [ $ dtStats : : FC [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "timeOnTeamOne" ;
$ dtStats : : FV [ $ dtStats : : FC [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "timeOnTeamTwo" ;
$ dtStats : : FV [ $ dtStats : : FC [ "ArenaGame" , "TG" ] + + , "ArenaGame" , "TG" ] = "matchRunTime" ;
2020-08-24 18:02:35 -04:00
///////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
// SiegeGame
2020-08-24 18:02:35 -04:00
///////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "score";
2020-08-24 18:02:35 -04:00
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "kills";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "deaths";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "suicides";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "objScore";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "teamKills";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "turretKills";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "offenseScore";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "defenseScore";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "tkDestroys";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "genDestroys";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "solarDestroys";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "flipFlopDefends";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "genDefends";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "genRepairs";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "solarRepairs";
//$dtStats::FVG[$dtStats::FCG["SiegeGame","TG"]++,"SiegeGame","TG"] = "outOfBounds";
2020-02-28 16:37:29 -05:00
2019-11-20 14:43:50 -05:00
///////////////////////////////////////////////////////////////////////////////
2019-11-24 14:34:05 -05:00
// Weapon/Misc Stats
2019-11-20 14:43:50 -05:00
///////////////////////////////////////////////////////////////////////////////
//these are field values from this script
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "explosionKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "explosionDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "impactKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "impactDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "groundKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "groundDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaTurretKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaTurretDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "aaTurretKills" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "aaTurretDeaths" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "elfTurretKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "elfTurretDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarTurretKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarTurretDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileTurretKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileTurretDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "indoorDepTurretKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "indoorDepTurretDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "outdoorDepTurretKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "outdoorDepTurretDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "sentryTurretKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "sentryTurretDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "outOfBoundKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "outOfBoundDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lavaKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lavaDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shrikeBlasterKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shrikeBlasterDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "bellyTurretKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "bellyTurretDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "bomberBombsKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "bomberBombsDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "tankChaingunKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "tankChaingunDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "tankMortarKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "tankMortarDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lightningKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lightningDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "vehicleSpawnKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "vehicleSpawnDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "forceFieldPowerUpKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "forceFieldPowerUpDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "crashKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "crashDeaths" ;
2020-11-09 16:02:11 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileTK" ;
2020-11-19 00:37:03 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "inventoryKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "inventoryDeaths" ;
2020-12-01 11:14:20 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "repairEnemy" ;
2019-11-20 14:43:50 -05:00
//Damage Stats
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelDmg" ;
2019-11-20 14:43:50 -05:00
//rounds fired
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "elfShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelShotsFired" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelHits" ;
2020-09-25 19:25:33 -04:00
2020-08-24 18:02:35 -04:00
//aoe hits
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDmgHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDmgHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDmgHits" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDmgHits" ;
//misc
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserHeadShot" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockRearShot" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "minePlusDisc" ;
2020-09-02 20:23:52 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "minePlusDiscKill" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shotsFired" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "totalMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "totalTime" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "maHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "maHitHeight" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "maHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "killAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "killGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "deathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "deathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "killAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "killAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "killGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "killGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "deathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "deathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "deathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "deathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "airTime" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "airTime" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "groundTime" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "groundTime" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "EVKills" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "EVDeaths" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lightningMAkills" ;
2020-09-02 20:23:52 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lightningMAHits" ;
2020-09-24 12:19:15 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lightningMAEVHits" ;
2020-09-02 20:23:52 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lightningMAEVKills" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "EVHitWep" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "EVMAHit" ;
2021-06-02 12:55:33 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Game" ] + + , "Game" ] = "startPCT" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Game" ] + + , "Game" ] = "endPCT" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Game" ] + + , "Game" ] = "mapSkip" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Game" ] + + , "Game" ] = "clientQuit" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "totalWepDmg" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "timeTL" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "timeTL" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "killStreak" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "killStreak" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "assist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "maxSpeed" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "avgSpeed" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "comboCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "distMov" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "firstKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lastKill" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "deathKills" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "kdr" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "ctrlKKills" ;
2020-10-05 16:35:31 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "concussHit" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "concussTaken" ;
2020-11-02 15:02:14 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "idleTime" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "idleTime" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "deadDist" ;
2020-08-24 18:02:35 -04:00
2020-11-09 16:02:11 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discReflectHit" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discReflectKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterReflectHit" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterReflectKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "flareKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "flareHit" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discJump" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "killerDiscJump" ;
2020-08-24 18:02:35 -04:00
// nongame
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "leavemissionareaCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "teamkillCount" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "switchteamCount" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "flipflopCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "packpickupCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "weaponpickupCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "repairpackpickupCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "repairpackpickupEnemy" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "invyEatRepairPack" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "chatallCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "chatteamCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "voicebindsallCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "voicebindsteamCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "kickCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "obstimeoutkickCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "spawnobstimeoutCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "voteCount" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "lagSpikes" ;
2020-11-02 15:02:14 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "packetLoss" ;
2020-11-09 16:02:11 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "TTL" ] + + , "TTL" ] = "txStop" ;
2020-08-24 18:02:35 -04:00
2020-10-02 15:01:54 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "lArmorTime" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mArmorTime" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hArmorTime" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorL" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorM" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorH" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorLD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorMD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorHD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorLL" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorLM" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorLH" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorML" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorMM" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorMH" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorHL" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorHM" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorHH" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorLLD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorLMD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorLHD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorMLD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorMMD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorMHD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorHLD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorHMD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "armorHHD" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "doubleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "tripleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "quadrupleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "quintupleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "sextupleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "septupleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "octupleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "nonupleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "decupleKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "nuclearKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "multiKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "doubleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "tripleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "quadrupleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "quintupleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "sextupleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "septupleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "octupleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "nonupleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "decupleChainKill" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "chainKill" ;
//weapon combos
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockCom" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelCom" ;
2021-06-02 13:16:13 -04:00
//source kill velocity - note no mine
2020-09-24 12:19:15 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "cgKillSV" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "discKillSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "grenadeKillSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "laserKillSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mortarKillSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "shockKillSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "plasmaKillSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "blasterKillSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "hGrenadeKillSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "missileKillSV" ;
2021-06-02 13:16:13 -04:00
//source hit velocity - note no mine
2020-09-24 12:19:15 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "cgHitSV" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "discHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "grenadeHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "laserHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mortarHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "shockHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "plasmaHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "blasterHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "hGrenadeHitSV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "missileHitSV" ;
//victim velocity
2020-09-24 12:19:15 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "cgKillVV" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "discKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "grenadeKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "laserKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mortarKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "shockKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "plasmaKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "blasterKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "hGrenadeKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mineKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "missileKillVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "satchelKillVV" ;
//victim velocity
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "cgHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "discHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "grenadeHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "laserHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mortarHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "shockHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "plasmaHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "blasterHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "hGrenadeHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mineHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "missileHitVV" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "satchelHitVV" ;
//midairs
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarAoeMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeAoeMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discAoeMA" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaAoeMA" ;
//ma dist
2020-09-28 11:58:38 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "cgMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "discMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "grenadeMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "laserMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mortarMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "shockMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "plasmaMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "blasterMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "hGrenadeMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "missileMAHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mineMAHitDist" ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "cgHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "discHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "grenadeHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "hGrenadeHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "laserHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mortarHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "missileHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "plasmaHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "blasterHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "shockHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mineHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "satchelHitDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "cgKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "discKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "grenadeKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "hGrenadeKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "laserKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mortarKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "missileKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "plasmaKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "blasterKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "mineKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "satchelKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "shockKillDist" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Max" ] + + , "Max" ] = "weaponHitDist" ;
2019-11-20 14:43:50 -05:00
2021-06-02 13:16:13 -04:00
//conditional see postGame
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "cgACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "discACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "grenadeACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "laserACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "mortarACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "shockACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "plasmaACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "blasterACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "hGrenadeACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "mineACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "satchelACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "missileACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "plasmaDmgACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "discDmgACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "grenadeDmgACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "mortarDmgACC" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "onTargetAcc" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "onTargetHit" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "onFire" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "onFire" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "onInput" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Avg" ] + + , "Avg" ] = "onInput" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hitHead" ;
2020-11-10 17:19:15 -05:00
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenHead";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitHeadFront";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenHeadFront";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitHeadBack";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenHeadBack";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitHeadRight";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenHeadRight";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitHeadLeft";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenHeadLeft";
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hitTorso" ;
2020-11-10 17:19:15 -05:00
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenTorso";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTorsoFrontR";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenTorsoFrontR";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTorsoFrontL";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenTorsoFrontL";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTorsoBackR";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenTorsoBackR";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTorsoBackL";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenTorsoBackL";
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hitLegs" ;
2020-11-10 17:19:15 -05:00
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenLegs";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitLegFrontR";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenLegFrontR";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitLegFrontL";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenLegFrontL";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitLegBackR";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenLegBackR";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitLegBackL";
//$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hitTakenLegBackL";
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgKillAirAir" ; // air to air kill
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelKillAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgDeathAirAir" ; // air to air death
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelDeathAirAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgKillAirGround" ; // air to ground kill
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineKillAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelKillAirGround" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgDeathAirGround" ; // air to ground death
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelDeathAirGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgKillGroundAir" ; // ground to air kill
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterKillGroundAir" ;
2020-08-29 14:36:11 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineKillGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelKillGroundAir" ;
2020-08-24 18:02:35 -04:00
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgDeathGroundAir" ; // ground to air death
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelDeathGroundAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgKillGroundGround" ; // ground to ground kill
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterKillGroundGround" ;
2020-08-29 14:36:11 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineKillGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelKillGroundGround" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgDeathGroundGround" ; // ground to ground death
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelDeathGroundGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgKillAir" ; // air kills
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineKillAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelKillAir" ;
2021-06-02 13:16:13 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgDeathAir" ; // air deaths
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelDeathAir" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgKillGround" ; // ground kills
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "satchelKillGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "cgDeathGround" ; // ground deaths
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "discDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "hGrenadeDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "grenadeDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "laserDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mortarDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "missileDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "shockDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "plasmaDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "blasterDeathGround" ;
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "mineDeathGround" ;
2022-12-06 16:15:26 -05:00
$ dtStats : : FV [ $ dtStats : : FC [ "Game" ] + + , "Game" ] = "skin" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Game" ] + + , "Game" ] = "sex" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Game" ] + + , "Game" ] = "race" ;
$ dtStats : : FV [ $ dtStats : : FC [ "Game" ] + + , "Game" ] = "voice" ;
2020-08-24 18:02:35 -04:00
$ dtStats : : FV [ $ dtStats : : FC [ "TG" ] + + , "TG" ] = "null" ; //rng number
////////////////////////////////////////////////////////////////////////////////
2020-11-02 15:02:14 -05:00
//Unused vars that are not tracked but used for other things and need to be reset
2020-03-15 15:34:27 -04:00
2020-08-24 18:02:35 -04:00
$ dtStats : : unused [ $ dtStats : : unusedCount + + ] = "timeToLive" ;
2020-09-25 19:25:33 -04:00
$ dtStats : : unused [ $ dtStats : : unusedCount + + ] = "ksCounter" ;
2020-08-24 18:02:35 -04:00
////////////////////////////////////////////////////////////////////////////////
2020-02-28 16:37:29 -05:00
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
if ( ! $ dtStats : : Enable ) { return ; } // abort exec
2020-08-24 18:02:35 -04:00
if ( ! isObject ( statsGroup ) ) {
new SimGroup ( statsGroup ) ;
2021-06-02 13:16:13 -04:00
RootGroup . add ( statsGroup ) ;
2020-08-24 18:02:35 -04:00
statsGroup . resetCount = - 1 ;
statsGroup . serverStart = 0 ;
$ dtStats : : leftID + + ;
}
2019-11-20 14:43:50 -05:00
2022-09-03 10:21:03 -04:00
//start compile
function compileStats ( ) {
if ( ! $ dtStats : : building ) {
lStatsCycle ( 1 , 1 ) ;
}
else {
error ( "Stats Already Compiling" ) ;
}
}
2021-06-02 13:16:13 -04:00
function dtAICON ( % client ) {
2020-02-28 16:37:29 -05:00
dtStatsMissionDropReady ( Game . getId ( ) , % client ) ;
}
2019-03-10 12:58:05 -04:00
package dtStats {
2020-02-28 16:37:29 -05:00
function AIConnection : : startMission ( % client ) { // ai support
parent : : startMission ( % client ) ;
if ( $ dtStats : : Enable )
schedule ( 25000 , 0 , "dtAICON" , % client ) ;
}
2020-08-24 18:02:35 -04:00
function GameConnection : : onDrop ( % client , % reason ) {
if ( $ dtStats : : Enable )
dtStatsClientLeaveGame ( % client ) ; //common
parent : : onDrop ( % client , % reason ) ;
}
2019-03-12 20:10:12 -04:00
function CTFGame : : clientMissionDropReady ( % game , % client ) {
2019-03-10 12:58:05 -04:00
parent : : clientMissionDropReady ( % game , % client ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtStatsMissionDropReady ( % game , % client ) ; //common
2019-03-10 12:58:05 -04:00
}
function CTFGame : : gameOver ( % game ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtStatsGameOver ( % game ) ; //common
2020-08-24 18:02:35 -04:00
parent : : gameOver ( % game ) ;
2021-06-02 13:16:13 -04:00
}
2019-03-12 20:10:12 -04:00
function CTFGame : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientKillStats ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ; //for stats collection
2019-03-12 20:10:12 -04:00
parent : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ;
}
2019-11-20 14:43:50 -05:00
function CTFGame : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
else
parent : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
2019-11-20 14:43:50 -05:00
}
2020-08-24 18:02:35 -04:00
function CTFGame : : updateScoreHud ( % game , % client , % tag ) {
if ( $ dtStats : : Enable | | % client . isSuperAdmin )
2020-02-28 16:37:29 -05:00
CTFHud ( % game , % client , % tag ) ;
else
parent : : updateScoreHud ( % game , % client , % tag ) ;
}
2019-11-20 14:43:50 -05:00
////////////////////////////////////////////////////////////////////////////////
2019-03-12 20:10:12 -04:00
function LakRabbitGame : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientKillStats ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ; //for stats collection
2019-03-12 20:10:12 -04:00
parent : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ;
}
function LakRabbitGame : : clientMissionDropReady ( % game , % client ) { // called when client has finished loading
parent : : clientMissionDropReady ( % game , % client ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtStatsMissionDropReady ( % game , % client ) ; //common
2019-03-12 20:10:12 -04:00
}
function LakRabbitGame : : gameOver ( % game ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtStatsGameOver ( % game ) ; //common
2020-08-24 18:02:35 -04:00
parent : : gameOver ( % game ) ;
2020-02-28 16:37:29 -05:00
}
function LakRabbitGame : : recalcScore ( % game , % client ) {
if ( $ missionRunning ) {
parent : : recalcScore ( % game , % client ) ;
}
2019-03-10 12:58:05 -04:00
}
2019-11-20 14:43:50 -05:00
function LakRabbitGame : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
else
parent : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
2019-11-20 14:43:50 -05:00
}
function LakRabbitGame : : updateScoreHud ( % game , % client , % tag ) { // defaultGame/evo
2020-08-24 18:02:35 -04:00
if ( $ dtStats : : Enable | | % client . isSuperAdmin )
2020-02-28 16:37:29 -05:00
LakRabbitHud ( % game , % client , % tag ) ;
else
parent : : updateScoreHud ( % game , % client , % tag ) ;
}
2019-11-20 14:43:50 -05:00
////////////////////////////////////////////////////////////////////////////////
2019-04-01 16:02:48 -04:00
function DMGame : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientKillStats ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ; //for stats collection
2019-04-01 16:02:48 -04:00
parent : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ;
}
function DMGame : : clientMissionDropReady ( % game , % client ) { // called when client has finished loading
parent : : clientMissionDropReady ( % game , % client ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
2020-11-02 15:02:14 -05:00
dtStatsMissionDropReady ( % game , % client ) ;
2019-04-01 16:02:48 -04:00
}
function DMGame : : gameOver ( % game ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
2020-11-02 15:02:14 -05:00
dtStatsGameOver ( % game ) ;
2020-08-24 18:02:35 -04:00
parent : : gameOver ( % game ) ;
2020-02-28 16:37:29 -05:00
}
function DMGame : : recalcScore ( % game , % client ) {
if ( ! $ missionRunning ) {
2021-06-02 13:16:13 -04:00
return ;
2020-02-28 16:37:29 -05:00
}
parent : : recalcScore ( % game , % client ) ;
2019-04-01 16:02:48 -04:00
}
2019-11-20 14:43:50 -05:00
function DMGame : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
else
parent : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
2019-11-20 14:43:50 -05:00
}
function DMGame : : updateScoreHud ( % game , % client , % tag ) { // defaultGame/evo
2020-08-24 18:02:35 -04:00
if ( $ dtStats : : Enable | | % client . isSuperAdmin )
2021-06-02 13:16:13 -04:00
DMHud ( % game , % client , % tag ) ;
2020-02-28 16:37:29 -05:00
else
parent : : updateScoreHud ( % game , % client , % tag ) ;
}
2019-11-20 14:43:50 -05:00
////////////////////////////////////////////////////////////////////////////////
2019-04-01 16:02:48 -04:00
function SCtFGame : : clientMissionDropReady ( % game , % client ) {
parent : : clientMissionDropReady ( % game , % client ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtStatsMissionDropReady ( % game , % client ) ; //common
2019-04-01 16:02:48 -04:00
}
function SCtFGame : : gameOver ( % game ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtStatsGameOver ( % game ) ; //common
2020-08-24 18:02:35 -04:00
parent : : gameOver ( % game ) ;
2019-04-01 16:02:48 -04:00
}
function SCtFGame : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientKillStats ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ; //for stats collection
2019-04-01 16:02:48 -04:00
parent : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ;
}
2019-11-20 14:43:50 -05:00
function SCtFGame : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
else
parent : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
2019-11-20 14:43:50 -05:00
}
function SCtFGame : : updateScoreHud ( % game , % client , % tag ) { // defaultGame/evo
2020-08-24 18:02:35 -04:00
if ( $ dtStats : : Enable | | % client . isSuperAdmin )
2020-02-28 16:37:29 -05:00
CTFHud ( % game , % client , % tag ) ;
else
parent : : updateScoreHud ( % game , % client , % tag ) ;
}
2020-11-02 15:02:14 -05:00
/////////////////////////////////////////////////////////////////////////////////////
2019-11-20 14:43:50 -05:00
function ArenaGame : : clientMissionDropReady ( % game , % client ) {
parent : : clientMissionDropReady ( % game , % client ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
2020-11-02 15:02:14 -05:00
dtStatsMissionDropReady ( % game , % client ) ;
2019-11-20 14:43:50 -05:00
}
function ArenaGame : : gameOver ( % game ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
2020-11-02 15:02:14 -05:00
dtStatsGameOver ( % game ) ;
2020-08-24 18:02:35 -04:00
parent : : gameOver ( % game ) ;
2019-11-20 14:43:50 -05:00
}
function ArenaGame : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientKillStats ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ; //for stats collection
2019-11-20 14:43:50 -05:00
parent : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ;
}
function ArenaGame : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
else
parent : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
2020-08-24 18:02:35 -04:00
}
2019-11-20 14:43:50 -05:00
function ArenaGame : : updateScoreHud ( % game , % client , % tag ) { // defaultGame/evo
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : Enable | | % client . isSuperAdmin )
2020-02-28 16:37:29 -05:00
ArenaHud ( % game , % client , % tag ) ;
else
parent : : updateScoreHud ( % game , % client , % tag ) ;
}
2020-11-02 15:02:14 -05:00
/////////////////////////////////////////////////////////////////////////////
2020-02-28 16:37:29 -05:00
function DuelGame : : clientMissionDropReady ( % game , % client ) {
2019-11-20 14:43:50 -05:00
parent : : clientMissionDropReady ( % game , % client ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
2020-11-02 15:02:14 -05:00
dtStatsMissionDropReady ( % game , % client ) ;
2019-11-20 14:43:50 -05:00
}
function DuelGame : : gameOver ( % game ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
2020-11-02 15:02:14 -05:00
dtStatsGameOver ( % game ) ;
2020-08-24 18:02:35 -04:00
parent : : gameOver ( % game ) ;
2019-11-20 14:43:50 -05:00
}
function DuelGame : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientKillStats ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ; //for stats collection
2019-11-20 14:43:50 -05:00
parent : : onClientKilled ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) ;
}
function DuelGame : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
dtGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
else
parent : : processGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) ;
2021-06-02 13:16:13 -04:00
}
2019-11-20 14:43:50 -05:00
function DuelGame : : updateScoreHud ( % game , % client , % tag ) {
2020-08-24 18:02:35 -04:00
if ( $ dtStats : : Enable | | % client . isSuperAdmin )
2020-02-28 16:37:29 -05:00
DuelHud ( % game , % client , % tag ) ;
else
parent : : updateScoreHud ( % game , % client , % tag ) ;
}
2020-03-16 12:52:20 -04:00
///////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
function DefaultGame : : missionLoadDone ( % game ) {
parent : : missionLoadDone ( % game ) ;
2021-05-06 15:01:41 -04:00
//$dtStats::loadPlayerCount = $HostGamePlayerCount;
2020-08-24 18:02:35 -04:00
if ( $ dtStats : : Enable ) {
dtSaveServerVars ( ) ;
dtScanForRepair ( ) ;
2022-04-10 14:41:30 -04:00
$ mapID : : gameID = formattimestring ( "mddyHHnnss" ) ;
2020-09-02 20:23:52 -04:00
if ( $ dtStats : : debugEchos )
error ( "GAME ID" SPC $ mapID : : gameID SPC "//////////////////////////////" ) ;
2020-08-24 18:02:35 -04:00
}
}
2020-02-28 16:37:29 -05:00
function DefaultGame : : forceObserver ( % game , % client , % reason ) {
parent : : forceObserver ( % game , % client , % reason ) ;
if ( $ dtStats : : Enable ) {
2020-08-24 18:02:35 -04:00
if ( % reason $ = "spawnTimeout" ) {
2021-06-02 13:16:13 -04:00
% client . dtStats . spawnobstimeoutCount + + ;
2020-08-24 18:02:35 -04:00
}
2021-05-06 15:01:41 -04:00
updateTeamTime ( % client . dtStats , % client . dtStats . team ) ;
% client . dtStats . team = 0 ;
2021-06-02 13:16:13 -04:00
% client . gt = % client . at = 0 ; //air time ground time reset
2020-02-28 16:37:29 -05:00
}
}
2019-11-24 14:34:05 -05:00
function serverCmdShowHud ( % client , % tag ) { // to refresh screen when client opens it up
parent : : serverCmdShowHud ( % client , % tag ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable ) {
% tagName = getWord ( % tag , 1 ) ;
% tag = getWord ( % tag , 0 ) ;
if ( % tag $ = ' scoreScreen ' & & % client . viewStats ) {
statsMenu ( % client , Game . class ) ;
}
2019-11-24 14:34:05 -05:00
}
}
2020-08-24 18:02:35 -04:00
function chatMessageAll ( % sender , % msgString , % a1 , % a2 , % a3 , % a4 , % a5 , % a6 , % a7 , % a8 , % a9 , % a10 ) {
parent : : chatMessageAll ( % sender , % msgString , % a1 , % a2 , % a3 , % a4 , % a5 , % a6 , % a7 , % a8 , % a9 , % a10 ) ;
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : Enable ) {
2020-08-24 18:02:35 -04:00
% sender . dtStats . chatallCount + + ;
}
}
function cannedChatMessageAll ( % sender , % msgString , % name , % string , % keys ) {
parent : : cannedChatMessageAll ( % sender , % msgString , % name , % string , % keys ) ;
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : Enable ) {
2020-08-24 18:02:35 -04:00
% sender . dtStats . voicebindsallCount + + ;
}
}
function chatMessageTeam ( % sender , % msgString , % a1 , % a2 , % a3 , % a4 , % a5 , % a6 , % a7 , % a8 , % a9 , % a10 ) {
parent : : chatMessageTeam ( % sender , % msgString , % a1 , % a2 , % a3 , % a4 , % a5 , % a6 , % a7 , % a8 , % a9 , % a10 ) ;
if ( $ dtStats : : Enable ) {
% sender . dtStats . chatteamCount + + ;
}
}
function cannedChatMessageTeam ( % sender , % team , % msgString , % name , % string , % keys ) {
parent : : cannedChatMessageTeam ( % sender , % team , % msgString , % name , % string , % keys ) ;
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : Enable ) {
2020-08-24 18:02:35 -04:00
% sender . dtStats . voicebindsteamCount + + ;
}
}
function kick ( % client , % admin , % guid ) {
if ( $ dtStats : : Enable )
% client . dtStats . kickCount + + ;
parent : : kick ( % client , % admin , % guid ) ;
}
function cmdAutoKickObserver ( % client , % key ) { // Edit GG
parent : : cmdAutoKickObserver ( % client , % key ) ;
if ( $ dtStats : : Enable )
% client . dtStats . obstimeoutkickCount + + ;
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
function CTFGame : : leaveMissionArea ( % game , % playerData , % player ) {
parent : : leaveMissionArea ( % game , % playerData , % player ) ;
if ( $ dtStats : : Enable )
% player . client . dtStats . leavemissionareaCount + + ;
}
function SCtFGame : : leaveMissionArea ( % game , % playerData , % player ) {
parent : : leaveMissionArea ( % game , % playerData , % player ) ;
if ( $ dtStats : : Enable )
% player . client . dtStats . leavemissionareaCount + + ;
}
2021-05-06 15:01:41 -04:00
function DefaultGame : : clientJoinTeam ( % game , % client , % team , % respawn ) {
parent : : clientJoinTeam ( % game , % client , % team , % respawn ) ;
if ( $ dtStats : : Enable ) {
updateTeamTime ( % client . dtStats , 0 ) ;
% client . dtStats . team = % team ;
//error("jointeam" SPC %team);
}
}
2020-08-24 18:02:35 -04:00
function DefaultGame : : clientChangeTeam ( % game , % client , % team , % fromObs , % respawned ) { // z0dd - ZOD, 6/06/02. Don't send a message if player used respawn feature. Added %respawned
2021-05-06 15:01:41 -04:00
if ( $ dtStats : : Enable & & isGameRun ( ) ) {
% client . dtStats . team = % team ;
% client . dtStats . switchteamCount + + ;
//error("clientChagneTeam" SPC %fromObs SPC %team);
if ( % fromObs )
updateTeamTime ( % client . dtStats , 0 ) ;
else
updateTeamTime ( % client . dtStats , % client . team ) ;
}
2020-08-24 18:02:35 -04:00
parent : : clientChangeTeam ( % game , % client , % team , % fromObs , % respawned ) ;
2021-05-06 15:01:41 -04:00
}
function DefaultGame : : assignClientTeam ( % game , % client , % respawn ) {
parent : : assignClientTeam ( % game , % client , % respawn ) ;
if ( $ dtStats : : Enable ) {
updateTeamTime ( % client . dtStats , 0 ) ;
% client . dtStats . team = % client . team ;
}
//error("assignClientTeam" SPC %client.team SPC %respawn);
2020-08-24 18:02:35 -04:00
}
2021-06-02 12:55:33 -04:00
//function DefaultGame::startMatch(%game){
//parent::startMatch(%game);
//if($dtStats::Enable){
//
//}
//}
2020-08-24 18:02:35 -04:00
function RepairPack : : onThrow ( % data , % obj , % shape ) {
parent : : onThrow ( % data , % obj , % shape ) ;
if ( $ dtStats : : Enable ) {
% obj . team = % shape . client . team ;
% player . dtRepairPickup = 0 ;
}
}
function ItemData : : onPickup ( % this , % pack , % player , % amount ) {
parent : : onPickup ( % this , % pack , % player , % amount ) ;
if ( $ dtStats : : Enable ) {
% dtStats = % player . client . dtStats ;
if ( % this . getname ( ) $ = "RepairPack" ) {
if ( % pack . team > 0 & & % pack . team ! = % player . client . team )
% dtStats . repairpackpickupEnemy + + ;
% dtStats . repairpackpickupCount + + ;
% player . dtRepairPickup = 1 ;
}
% dtStats . packpickupCount + + ;
}
}
function stationTrigger : : onLeaveTrigger ( % data , % obj , % colObj ) {
if ( $ dtStats : : Enable ) {
if ( isObject ( % obj . station ) ) {
% name = % obj . station . getDataBlock ( ) . getName ( ) ;
if ( % name $ = "DeployedStationInventory" | | % name $ = "StationInventory" ) {
if ( % colObj . getMountedImage ( 2 ) > 0 ) {
if ( % colObj . getMountedImage ( 2 ) . getName ( ) ! $ = "RepairPackImage" & & % colObj . dtRepairPickup ) {
% colObj . client . dtStats . invyEatRepairPack + + ;
}
}
% player . dtRepairPickup = 0 ;
}
2020-10-05 16:35:31 -04:00
if ( % name $ = "DeployedStationInventory" ) {
% ow = % obj . station . owner ;
if ( isObject ( % ow ) & & % ow ! = % colObj . client )
2021-06-02 13:16:13 -04:00
% ow . dtStats . depInvyUse + + ;
2020-10-05 16:35:31 -04:00
}
2020-08-24 18:02:35 -04:00
}
}
parent : : onLeaveTrigger ( % data , % obj , % colObj ) ;
}
2020-10-02 15:01:54 -04:00
function DefaultGame : : playerSpawned ( % game , % player ) {
parent : : playerSpawned ( % game , % player ) ;
if ( $ dtStats : : Enable )
armorTimer ( % player . client . dtStats , % player . getArmorSize ( ) , 0 ) ;
}
function Player : : setArmor ( % this , % size ) { //for game types that use spawn favs
parent : : setArmor ( % this , % size ) ;
if ( $ dtStats : : Enable )
armorTimer ( % this . client . dtStats , % size , 0 ) ;
}
2020-08-24 18:02:35 -04:00
function Weapon : : onPickup ( % this , % obj , % shape , % amount ) {
parent : : onPickup ( % this , % obj , % shape , % amount ) ;
if ( $ dtStats : : Enable )
% shape . client . dtStats . weaponpickupCount + + ;
}
2020-03-16 12:52:20 -04:00
//////////////////////////////////////////////////////////////////////////////////
2019-11-24 14:34:05 -05:00
function DefaultGame : : activatePackages ( % game ) {
2020-08-24 18:02:35 -04:00
parent : : activatePackages ( % game ) ;
if ( isActivePackage ( dtStatsGame ) ) {
deactivatePackage ( dtStatsGame ) ;
activatePackage ( dtStatsGame ) ;
}
else {
activatePackage ( dtStatsGame ) ;
}
2019-11-24 14:34:05 -05:00
}
function DefaultGame : : deactivatePackages ( % game ) {
2020-08-24 18:02:35 -04:00
parent : : deactivatePackages ( % game ) ;
2019-11-24 14:34:05 -05:00
if ( isActivePackage ( dtStatsGame ) )
deactivatePackage ( dtStatsGame ) ;
}
2020-03-16 12:52:20 -04:00
//////////////////////////////////////////////////////////////////////////////////
// Flag Escort Fixes
2021-06-02 13:16:13 -04:00
function CTFGame : : onClientDamaged ( % game , % clVictim , % clAttacker , % damageType , % implement , % damageLoc ) {
2020-03-16 12:52:20 -04:00
parent : : onClientDamaged ( % game , % clVictim , % clAttacker , % damageType , % implement , % damageLoc ) ;
if ( ( % clVictim . player . holdingFlag ! $ = "" ) & & ( % clVictim . team ! = % clAttacker . team ) )
2021-06-02 13:16:13 -04:00
% clAttacker . dmgdFlagTime = getSimTime ( ) ;
2020-03-16 12:52:20 -04:00
}
function CTFGame : : testEscortAssist ( % game , % victimID , % killerID ) {
2020-09-24 12:19:15 -04:00
if ( ( getSimTime ( ) - % victimID . dmgdFlagTime ) < 5000 & & % killerID . player . holdingFlag $ = "" )
2020-03-16 12:52:20 -04:00
return true ;
return false ;
}
2021-06-02 13:16:13 -04:00
function SCtFGame : : onClientDamaged ( % game , % clVictim , % clAttacker , % damageType , % implement , % damageLoc ) {
2020-03-16 12:52:20 -04:00
parent : : onClientDamaged ( % game , % clVictim , % clAttacker , % damageType , % implement , % damageLoc ) ;
if ( ( % clVictim . player . holdingFlag ! $ = "" ) & & ( % clVictim . team ! = % clAttacker . team ) )
2021-06-02 13:16:13 -04:00
% clAttacker . dmgdFlagTime = getSimTime ( ) ;
2020-03-16 12:52:20 -04:00
}
function SCtFGame : : testEscortAssist ( % game , % victimID , % killerID ) {
2020-09-24 12:19:15 -04:00
if ( ( getSimTime ( ) - % victimID . dmgdFlagTime ) < 5000 & & % killerID . player . holdingFlag $ = "" )
2020-03-16 12:52:20 -04:00
return true ;
return false ;
}
2020-10-20 18:09:49 -04:00
2020-08-24 18:02:35 -04:00
function ProjectileData : : onExplode ( % data , % proj , % pos , % mod ) {
2020-10-20 18:09:49 -04:00
if ( $ dtStats : : Enable ) {
2020-11-09 16:02:11 -05:00
% dataName = % data . getName ( ) ;
% sourceClient = % proj . sourceObject . client ;
switch $ ( % dataName ) {
case "DiscProjectile" :
% vec = vectorNormalize ( vectorSub ( % pos , % proj . initialPosition ) ) ;
% initVec = % proj . initialDirection ;
2020-11-10 17:19:15 -05:00
% ray = containerRayCast ( % proj . initialPosition , VectorAdd ( % proj . initialPosition , VectorScale ( VectorNormalize ( % initVec ) , 5000 ) ) , $ TypeMasks : : WaterObjectType ) ;
if ( % ray ) {
% angleRad = mACos ( vectorDot ( % initVec , "0 0 1" ) ) ;
% angleDeg = mRadToDeg ( % angleRad ) - 90 ;
//echo(%angleDeg);
if ( % angleDeg < = 15 & & % angleDeg > 0 ) {
2020-12-01 11:14:20 -05:00
% wdist = vectorDist ( getWords ( % ray , 1 , 3 ) , % pos ) ;
if ( % wdist > 20 )
2021-06-02 13:16:13 -04:00
% sourceClient . discReflect = getSimTime ( ) ;
//error("disc bounce" SPC %angleDeg SPC %wdist);
2020-11-10 17:19:15 -05:00
}
}
2021-06-02 13:16:13 -04:00
else
2020-11-09 16:02:11 -05:00
% sourceClient . discReflect = 0 ;
2021-06-02 13:16:13 -04:00
2020-11-09 16:02:11 -05:00
if ( vectorDist ( % pos , % proj . sourceObject . getPosition ( ) ) < 4 ) {
2021-06-02 13:16:13 -04:00
% sourceClient . lastDiscJump = getSimTime ( ) ;
2020-11-09 16:02:11 -05:00
}
case "EnergyBolt" :
% vec = vectorNormalize ( vectorSub ( % pos , % proj . initialPosition ) ) ;
% initVec = % proj . initialDirection ;
% angleRad = mACos ( vectorDot ( % vec , % initVec ) ) ;
% angleDeg = mRadToDeg ( % angleRad ) ;
2020-11-10 17:19:15 -05:00
//error(%angleDeg);
if ( % angleDeg > 10 ) {
2020-11-09 16:02:11 -05:00
% sourceClient . blasterReflect = getSimTime ( ) ;
2020-11-10 17:19:15 -05:00
}
2020-11-09 16:02:11 -05:00
else
% sourceClient . blasterReflect = 0 ;
2021-06-02 13:16:13 -04:00
case "ShoulderMissile" :
2020-11-09 16:02:11 -05:00
if ( % proj . lastTargetType $ = "FlareProjectile" ) {
2021-06-02 13:16:13 -04:00
% sourceClient . flareHit = getSimTime ( ) ;
2020-11-10 17:19:15 -05:00
% sourceClient . flareSource = % proj . targetSource . client ;
2020-11-09 16:02:11 -05:00
}
else
% sourceClient . flareHit = 0 ;
}
2021-06-02 13:16:13 -04:00
2020-11-09 16:02:11 -05:00
if ( isObject ( % sourceClient ) ) {
2020-10-20 18:09:49 -04:00
if ( % proj . dtShotSpeed > 0 )
2021-06-02 13:16:13 -04:00
% sourceClient . dtShotSpeed = % proj . dtShotSpeed ;
2020-10-20 18:09:49 -04:00
else
2020-11-09 16:02:11 -05:00
% sourceClient . dtShotSpeed = mFloor ( vectorLen ( % proj . sourceObject . getVelocity ( ) ) * 3.6 ) ;
2021-06-02 13:16:13 -04:00
% sourceClient . lastExp = % data TAB % proj . initialPosition TAB % pos ;
2020-10-20 18:09:49 -04:00
}
}
2020-08-24 18:02:35 -04:00
parent : : onExplode ( % data , % proj , % pos , % mod ) ;
}
//function MineDeployed::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType){
//parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType);
2020-10-20 18:09:49 -04:00
//if(%damageType == $DamageType::Disc && $dtStats::Enable){
//%targetObject.mineDiscHit = 1;
//error("boom" SPC %sourceObject.getClassName());
2020-08-24 18:02:35 -04:00
//}
//}
function ShapeBaseImageData : : onDeploy ( % item , % plyr , % slot ) {
% obj = parent : : onDeploy ( % item , % plyr , % slot ) ;
if ( $ dtStats : : Enable ) {
% dtStats = % plyr . client . dtStats ;
% itemDB = % item . item ;
switch $ ( % itemDB ) {
case "MotionSensorDeployable" :
% dtStats . MotionSensorDep + + ;
case "PulseSensorDeployable" :
% dtStats . PulseSensorDep + + ;
case "InventoryDeployable" :
% dtStats . InventoryDep + + ;
case "TurretOutdoorDeployable" :
% dtStats . TurretOutdoorDep + + ;
case "TurretIndoorDeployable" :
% dtStats . TurretIndoorDep + + ;
}
}
return % obj ;
}
2020-10-05 16:35:31 -04:00
function Armor : : applyConcussion ( % this , % dist , % radius , % sourceObject , % targetObject ) {
2020-10-12 11:35:11 -04:00
if ( $ dtStats : : Enable & & % sourceObject . client . team ! = % targetObject . client . team ) {
% sourceObject . client . dtStats . concussHit + + ;
2021-06-02 13:16:13 -04:00
% targetObject . client . dtStats . concussTaken + + ;
% targetObject . concussBy = % sourceObject . client . dtStats ;
2020-10-05 16:35:31 -04:00
}
parent : : applyConcussion ( % this , % dist , % radius , % sourceObject , % targetObject ) ;
}
function SCtFGame : : applyConcussion ( % game , % player ) {
2021-06-02 13:16:13 -04:00
parent : : applyConcussion ( % game , % player ) ;
2020-10-05 16:35:31 -04:00
if ( $ dtStats : : Enable ) {
% dtStats = % player . concussBy ;
if ( isObject ( % dtStats ) )
2021-06-02 13:16:13 -04:00
% dtStats . concussFlag + + ;
2020-10-05 16:35:31 -04:00
% player . concussBy = - 1 ;
}
}
function CTFGame : : applyConcussion ( % game , % player ) {
parent : : applyConcussion ( % game , % player ) ;
if ( $ dtStats : : Enable ) {
% dtStats = % player . concussBy ;
if ( isObject ( % dtStats ) )
2021-06-02 13:16:13 -04:00
% dtStats . concussFlag + + ;
2020-10-05 16:35:31 -04:00
% player . concussBy = - 1 ;
}
}
2020-10-20 18:09:49 -04:00
function MobileBaseVehicle : : playerMounted ( % data , % obj , % player , % node ) {
if ( $ dtStats : : Enable ) {
% obj . dtStats = % player . client . dtStats ;
}
parent : : playerMounted ( % data , % obj , % player , % node ) ;
}
function MobileBaseVehicle : : onDamage ( % this , % obj ) {
if ( $ dtStats : : Enable ) {
if ( VectorLen ( % obj . getVelocity ( ) ) > 200 ) {
if ( isObject ( % obj . dtStats ) )
% obj . dtStats . mpbGlitch + + ;
}
}
2021-06-02 13:16:13 -04:00
parent : : onDamage ( % this , % obj ) ;
2020-10-20 18:09:49 -04:00
}
2020-08-24 18:02:35 -04:00
//function TurretData::replaceCallback(%this, %turret, %engineer){
//parent::replaceCallback(%this, %turret, %engineer);
//if (%engineer.getMountedImage($BackPackSlot) != 0 && $dtStats::Enable){
//%dtStats = %engineer.client.dtStats;
//%barrel = %engineer.getMountedImage($BackPackSlot).turretBarrel;
//switch$(%barrel){
//case "ELFBarrelPack":
//%dtStats.ELFBarrelDep++;
//case "MortarBarrelPack":
//%dtStats.MortarBarrelDep++;
//case "PlasmaBarrelPack":
//%dtStats.PlasmaBarrelDep++;
//case "AABarrelPack":
//%dtStats.AABarrelDep++;
//case "MissileBarrelPack":
//%dtStats.MissileBarrelDep++;
//}
//}
//}
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
//------------------------------------------------------------------------------
//function CTFGame::sendDebriefing( %game, %client )
//{
//%topScore = "";
//%topCount = 0;
//for ( %team = 1; %team <= %game.numTeams; %team++ )
//{
//if ( %topScore $= "" || $TeamScore[%team] > %topScore )
//{
//%topScore = $TeamScore[%team];
//%firstTeam = %team;
//%topCount = 1;
//}
//else if ( $TeamScore[%team] == %topScore )
//{
//%secondTeam = %team;
//%topCount++;
//}
//}
//
//// Mission result:
//if ( %topCount == 1 )
//messageClient( %client, 'MsgDebriefResult', "", '<just:center>Team %1 wins!', %game.getTeamName(%firstTeam) );
//else if ( %topCount == 2 )
//messageClient( %client, 'MsgDebriefResult', "", '<just:center>Team %1 and Team %2 tie!', %game.getTeamName(%firstTeam), %game.getTeamName(%secondTeam) );
//else
//messageClient( %client, 'MsgDebriefResult', "", '<just:center>The mission ended in a tie.' );
//
//// Team scores:
//messageClient( %client, 'MsgDebriefAddLine', "", '<tab:0, 310><color:00dc00><font:univers condensed:18>TEAM \t SCORE' );
//
//messageClient( %client, 'MsgDebriefAddLine', "", '<tab:0, 200,600,500><color:00dc00><font:univers condensed:18> %1 \t %2', %game.getTeamName(1), $TeamScore[1] , %game.getTeamName(2), $TeamScore[3]);
//
//
//// Player scores:
//messageClient( %client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00><font:univers condensed:18>PLAYER<lmargin%%:40>TEAM<lmargin%%:70>SCORE<lmargin%%:87>KILLS<spop>' );
//for ( %team = 1; %team - 1 < %game.numTeams; %team++ )
//%count[%team] = 0;
//
//%notDone = true;
//while ( %notDone )
//{
//// Get the highest remaining score:
//%highScore = "";
//for ( %team = 1; %team <= %game.numTeams; %team++ )
//{
//if ( %count[%team] < $TeamRank[%team, count] && ( %highScore $= "" || $TeamRank[%team, %count[%team]].score > %highScore ) )
//{
//%highScore = $TeamRank[%team, %count[%team]].score;
//%highTeam = %team;
//}
//}
//
//// Send the debrief line:
//%cl = $TeamRank[%highTeam, %count[%highTeam]];
//%score = %cl.score $= "" ? 0 : %cl.score;
//%kills = %cl.kills $= "" ? 0 : %cl.kills;
//messageClient( %client, 'MsgDebriefAddLine', "", '<lmargin:0><clip%%:40> %1</clip><lmargin%%:40><clip%%:30> %2</clip><lmargin%%:70><clip%%:17> %3</clip><lmargin%%:87><clip%%:13> %4</clip>', %cl.name, %game.getTeamName(%cl.team), %score, %kills );
//
//%count[%highTeam]++;
//%notDone = false;
//for ( %team = 1; %team - 1 < %game.numTeams; %team++ )
//{
//if ( %count[%team] < $TeamRank[%team, count] )
//{
//%notDone = true;
//break;
//}
//}
//}
//
////now go through an list all the observers:
//%count = ClientGroup.getCount();
//%printedHeader = false;
//for (%i = 0; %i < %count; %i++)
//{
//%cl = ClientGroup.getObject(%i);
//if (%cl.team <= 0)
//{
////print the header only if we actually find an observer
//if (!%printedHeader)
//{
//%printedHeader = true;
//messageClient(%client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00><font:univers condensed:18>OBSERVERS<lmargin%%:60>SCORE<spop>');
//}
//
////print out the client
//%score = %cl.score $= "" ? 0 : %cl.score;
//messageClient( %client, 'MsgDebriefAddLine', "", '<lmargin:0><clip%%:60> %1</clip><lmargin%%:60><clip%%:40> %2</clip>', %cl.name, %score);
//}
//}
//}
2019-11-24 14:34:05 -05:00
} ;
//helps with game types that override functions and dont use parent
2021-06-02 13:16:13 -04:00
// that way we get called first then the gametype can do whatever
2020-11-02 15:02:14 -05:00
//function ff(){
//DebriefText.setText( "" );
2021-06-02 13:16:13 -04:00
//DebriefText.addText("<tab:100,300,400><color:00dcd4><font:univers condensed:18>Storm\t400\tInferno\t 23\n",1);
2020-11-02 15:02:14 -05:00
//DebriefText.addText("<tab:100,150,200,300,400,450,500><color:00dc00><font:univers condensed:18>Player\tScore\tKills\tAssists\tPlayer\tScore\tKills\tAssists\n",1);
//for(%i=0; %i < 16; %i++){
//DebriefText.addText("<tab:100,150,200,300,400,450,500><color:3cb4b4><font:univers condensed:15>PetrifiedRoadKill\t100000\t100000\t100000\tPetrifiedRoadKill\t100000\t100000\t100000\n",1);
//}
//}
//function fs(){
//DebriefText.setText( "" );
2021-06-02 13:16:13 -04:00
//DebriefText.addText("<tab:100,300,400><color:00dcd4><font:univers condensed:23>Storm\t400\tInferno\t 23\n",1);
2020-11-02 15:02:14 -05:00
//DebriefText.addText( "<tab:100,150,200,250,300,360,420,480><color:00dc00><font:univers condensed:18>Player\tTeam\tScore\tKills\tAssists\tOff Score\tDef Score\tFlag Grabs\tFlag Caps\n",1);
//for(%i=0; %i < 16; %i++){
//DebriefText.addText("<tab:100,150,200,250,300,360,420,480><color:3cb4b4><font:univers condensed:15>PetrifiedRoadKill\tStorm\t100000\t100000\t100000\t100000\t100000\t100000\t100000\n",1);
//}
//}
2020-11-09 16:02:11 -05:00
function projectileTracker ( % p ) {
if ( isObject ( % p ) ) {
if ( isObject ( % p . getTargetObject ( ) ) ) {
% p . lastTargetType = % p . getTargetObject ( ) . getClassName ( ) ;
2020-11-10 17:19:15 -05:00
% p . targetSource = % p . getTargetObject ( ) . sourceObject ;
2020-11-09 16:02:11 -05:00
//error(%p.lastTargetType);
}
schedule ( 256 , 0 , "projectileTracker" , % p ) ;
}
}
2019-11-24 14:34:05 -05:00
package dtStatsGame {
2020-08-24 18:02:35 -04:00
function FlipFlop : : playerTouch ( % data , % flipflop , % player ) {
parent : : playerTouch ( % data , % flipflop , % player ) ;
if ( $ dtStats : : Enable )
% player . client . dtStats . flipflopCount + + ;
}
function serverCmdStartNewVote ( % client , % typeName , % arg1 , % arg2 , % arg3 , % arg4 , % teamSpecific , % msg ) {
parent : : serverCmdStartNewVote ( % client , % typeName , % arg1 , % arg2 , % arg3 , % arg4 , % teamSpecific , % msg ) ;
2022-05-10 16:20:29 -04:00
if ( $ dtStats : : Enable & & ( ! % client . isAdmin | | ( % client . isAdmin & & % client . ForceVote ) ) ) {
2020-08-24 18:02:35 -04:00
% client . dtStats . voteCount + + ;
if ( % typeName $ = "VoteChangeMission" ) {
% mission = $ HostMissionFile [ % arg3 ] ;
% missionType = $ HostTypeName [ % arg4 ] @ "Game" ;
% map = cleanMapName ( % mission ) ;
$ dtServer : : voteFor [ % map , % missionType ] + + ;
getMapID ( % map , % missionType , 0 , 0 ) ;
}
}
}
2021-06-02 13:16:13 -04:00
function detonateGrenade ( % obj ) { // from lakRabbitGame.cs for grenade tracking
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable ) {
% obj . dtNade = 1 ;
$ dtObjExplode = % obj ;
2020-08-24 18:02:35 -04:00
% obj . sourceObject . client . dtShotSpeed = mFloor ( vectorLen ( % obj . sourceObject . getVelocity ( ) ) * 3.6 ) ;
2020-02-28 16:37:29 -05:00
}
2019-11-24 14:34:05 -05:00
parent : : detonateGrenade ( % obj ) ;
2021-06-02 13:16:13 -04:00
}
2019-11-24 14:34:05 -05:00
function MineDeployed : : onThrow ( % this , % mine , % thrower ) {
parent : : onThrow ( % this , % mine , % thrower ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable ) {
2020-08-24 18:02:35 -04:00
% thrower . client . lastMineThrow = getSimTime ( ) ;
2021-06-02 13:16:13 -04:00
% thrower . client . dtStats . mineShotsFired + + ;
2020-08-24 18:02:35 -04:00
% thrower . client . dtStats . shotsFired + + ;
% thrower . client . dtStats . mineACC = ( % thrower . client . dtStats . mineHits / % thrower . client . dtStats . mineShotsFired ) * 100 ;
}
}
function SatchelChargeTossed : : onThrow ( % this , % sat , % thrower ) {
parent : : onThrow ( % this , % sat , % thrower ) ;
if ( $ dtStats : : Enable ) {
% thrower . client . dtStats . satchelShotsFired + + ;
% thrower . client . dtStats . shotsFired + + ;
% thrower . client . dtStats . satchelACC = ( % thrower . client . dtStats . satchelHits / % thrower . client . dtStats . satchelShotsFired ) * 100 ;
2020-02-28 16:37:29 -05:00
}
2019-11-24 14:34:05 -05:00
}
function GrenadeThrown : : onThrow ( % this , % gren , % thrower ) {
parent : : onThrow ( % this , % gren ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable ) {
2020-08-24 18:02:35 -04:00
% thrower . client . dtStats . hGrenadeShotsFired + + ;
% thrower . client . dtStats . shotsFired + + ;
% thrower . client . dtStats . hGrenadeACC = ( % thrower . client . dtStats . hGrenadeHits / % thrower . client . dtStats . hGrenadeShotsFired ) * 100 ;
2020-02-28 16:37:29 -05:00
}
2019-11-24 14:34:05 -05:00
}
2020-08-24 18:02:35 -04:00
function ShapeBaseImageData : : onFire ( % data , % obj , % slot ) {
2019-11-20 14:43:50 -05:00
% p = parent : : onFire ( % data , % obj , % slot ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable ) {
if ( isObject ( % p ) ) {
clientShotsFired ( % data . projectile , % obj , % p ) ;
}
2019-11-20 14:43:50 -05:00
}
return % p ;
}
2020-10-05 16:35:31 -04:00
2019-11-20 14:43:50 -05:00
function Armor : : damageObject ( % data , % targetObject , % sourceObject , % position , % amount , % damageType , % momVec , % mineSC ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientDmgStats ( % data , % position , % sourceObject , % targetObject , % damageType , % amount ) ;
2019-11-20 14:43:50 -05:00
parent : : damageObject ( % data , % targetObject , % sourceObject , % position , % amount , % damageType , % momVec , % mineSC ) ;
}
2020-08-24 18:02:35 -04:00
//0 Fire 1 ??? 2 jump 3 jet 4 gernade 5 mine
2020-03-07 17:37:54 -05:00
function Armor : : onTrigger ( % data , % player , % triggerNum , % val ) {
parent : : onTrigger ( % data , % player , % triggerNum , % val ) ;
2020-03-15 15:34:27 -04:00
if ( $ dtStats : : Enable ) {
if ( isObject ( % player ) & & ! % player . getObjectMount ( ) ) {
2021-06-02 13:16:13 -04:00
if ( % val ) { //cut the amount of tiggers in half
2020-03-15 15:34:27 -04:00
% client = % player . client ;
2020-08-24 18:02:35 -04:00
% client . dtStats . onInput + + ;
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-08-24 18:02:35 -04:00
if ( % triggerNum = = 0 ) {
% tPos = % player . getMuzzlePoint ( 0 ) ;
2021-06-02 13:16:13 -04:00
% hit = containerRayCast ( % tPos , VectorAdd ( % tPos , VectorScale ( % player . getMuzzleVector ( 0 ) , 5000 ) ) , $ TypeMasks : : PlayerObjectType , % player ) ;
2020-08-24 18:02:35 -04:00
if ( % hit )
2021-06-02 13:16:13 -04:00
% client . dtStats . onTargetHit + + ;
2020-08-24 18:02:35 -04:00
% client . dtStats . onFire + + ;
2020-11-02 15:02:14 -05:00
% client . dtStats . onTargetAcc = ( % client . dtStats . onTargetHit / ( % client . dtStats . onFire ? % client . dtStats . onFire : 1 ) ) * 100 ; //error(%client.dtStats.onTargetAcc SPC %hit);
2021-06-02 13:16:13 -04:00
}
//------------------------------------------------------------------------------
2020-08-24 18:02:35 -04:00
% speed = mFloor ( vectorLen ( % player . getVelocity ( ) ) * 3.6 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % speed > % client . dtStats . maxSpeed ) { % client . dtStats . maxSpeed = % speed ; }
% client . dtStats . avgTSpeed + = % speed ; % client . dtStats . avgSpeedCount + + ;
% client . dtStats . avgSpeed = % client . dtStats . avgTSpeed / % client . dtStats . avgSpeedCount ;
2021-06-02 13:16:13 -04:00
if ( % client . dtStats . avgSpeedCount > = 500 ) { % client . dtStats . avgSpeedCount = % client . dtStats . avgTSpeed = 0 ; }
//------------------------------------------------------------------------------
2020-03-15 15:34:27 -04:00
% xypos = getWords ( % player . getPosition ( ) , 0 , 1 ) SPC 0 ;
2020-08-24 18:02:35 -04:00
if ( % client . lp ! $ = "" ) {
% dis = mFloor ( vectorDist ( % client . lp , % xypos ) ) ;
% client . dtStats . distMov = % client . dtStats . distMov + ( % dis / 1000 ) ;
}
% client . lp = % xypos ;
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-03-15 15:34:27 -04:00
}
2021-06-02 13:16:13 -04:00
if ( % triggerNum = = 3 ) { //jet triggers
2020-03-15 15:34:27 -04:00
if ( % val ) {
if ( isEventPending ( % player . jetTimeTest ) ) {
cancel ( % player . jetTimeTest ) ;
}
% client . jetTrigCount + + ;
if ( % client . ground ) {
if ( % client . gt > 0 ) {
2020-08-24 18:02:35 -04:00
% client . dtStats . groundTime + = ( ( getSimTime ( ) - % client . gt ) / 1000 ) / 60 ;
2020-03-15 15:34:27 -04:00
}
% client . at = getSimTime ( ) ;
2020-03-07 17:37:54 -05:00
}
2020-03-15 15:34:27 -04:00
% client . ground = 0 ;
}
else {
if ( ! isEventPending ( % player . jetTimeTest ) ) {
% mask = $ TypeMasks : : StaticShapeObjectType | $ TypeMasks : : InteriorObjectType | $ TypeMasks : : TerrainObjectType ;
% rayStart = % player . getWorldBoxCenter ( ) ;
% rayEnd = VectorAdd ( % rayStart , "0 0" SPC ( 10000 * - 1 ) ) ;
2021-06-02 13:16:13 -04:00
% raycast = ContainerRayCast ( % rayStart , % rayEnd , % mask , % player ) ;
2020-03-15 15:34:27 -04:00
% groundPos = getWords ( % raycast , 1 , 3 ) ;
% dis = vectorDist ( % player . getPosition ( ) , % groundPos ) ;
% zv = getWord ( % player . getVelocity ( ) , 2 ) ;
2020-08-24 18:02:35 -04:00
% time = ( ( ( % zv + mSqrt ( mPow ( ( % zv ) , 2 ) + 2 * mAbs ( getGravity ( ) ) * % dis ) ) / mAbs ( getGravity ( ) ) ) * 1000 ) ;
2020-03-15 15:34:27 -04:00
% player . jetTimeTest = schedule ( % time , 0 , "chkGrounded" , % player ) ;
2021-06-02 13:16:13 -04:00
}
2020-03-07 17:37:54 -05:00
}
}
}
2020-03-15 15:34:27 -04:00
else {
% client . lp = "" ;
2021-06-02 13:16:13 -04:00
% client . gt = % client . at = 0 ;
2020-03-15 15:34:27 -04:00
}
2020-03-07 17:37:54 -05:00
}
}
2019-11-20 14:43:50 -05:00
function StaticShapeData : : damageObject ( % data , % targetObject , % sourceObject , % position , % amount , % damageType ) {
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientDmgStats ( % data , % position , % sourceObject , % targetObject , % damageType , % amount ) ;
parent : : damageObject ( % data , % targetObject , % sourceObject , % position , % amount , % damageType ) ;
2019-11-20 14:43:50 -05:00
}
function SniperRifleImage : : onFire ( % data , % obj , % slot ) {
if ( ! % obj . hasEnergyPack | | % obj . getEnergyLevel ( ) < % this . minEnergy ) // z0dd - ZOD, 5/22/03. Check for energy too.
{
// siddown Junior, you can't use it
serverPlay3D ( SniperRifleDryFireSound , % obj . getTransform ( ) ) ;
return ;
2019-03-10 12:58:05 -04:00
}
2019-11-20 14:43:50 -05:00
% pct = % obj . getEnergyLevel ( ) / % obj . getDataBlock ( ) . maxEnergy ;
% p = new ( % data . projectileType ) ( ) {
dataBlock = % data . projectile ;
initialDirection = % obj . getMuzzleVector ( % slot ) ;
initialPosition = % obj . getMuzzlePoint ( % slot ) ;
sourceObject = % obj ;
damageFactor = % pct * % pct ;
sourceSlot = % slot ;
} ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
clientShotsFired ( % data . projectile , % obj , % p ) ;
2019-11-20 14:43:50 -05:00
% p . setEnergyPercentage ( % pct ) ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
% obj . lastProjectile = % p ;
MissionCleanup . add ( % p ) ;
serverPlay3D ( SniperRifleFireSound , % obj . getTransform ( ) ) ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
// AI hook
if ( % obj . client )
% obj . client . projectile = % p ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
% obj . setEnergyLevel ( 0 ) ;
if ( $ Host : : ClassicLoadSniperChanges )
% obj . decInventory ( % data . ammo , 1 ) ;
}
function ShockLanceImage : : onFire ( % this , % obj , % slot ) {
% p = parent : : onFire ( % this , % obj , % slot ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable )
2019-11-20 14:43:50 -05:00
clientShotsFired ( ShockLanceImage . projectile , % obj , % p ) ;
return % p ;
}
function Armor : : onMount ( % this , % obj , % vehicle , % node ) {
parent : : onMount ( % this , % obj , % vehicle , % node ) ;
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : Enable ) {
% obj . client . vehDBName = % vehicle . getDataBlock ( ) . getName ( ) ;
% obj . client . gt = % obj . client . at = 0 ; // resets fly/ground time
}
2019-11-20 14:43:50 -05:00
}
2020-12-01 11:14:20 -05:00
function RepairGunImage : : onRepair ( % this , % obj , % slot ) {
Parent : : onRepair ( % this , % obj , % slot ) ;
if ( $ dtStats : : Enable ) {
% target = % obj . repairing ;
if ( % target & & % target . team ! = % obj . team ) {
if ( % target ! = % obj . rpEnemy ) {
% obj . rpEnemy = % target ;
% obj . client . dtStats . repairEnemy + + ;
}
}
}
}
2020-03-17 18:27:09 -04:00
////////////////////////////////////////////////////////////////////////////////
function CTFGame : : playerDroppedFlag ( % game , % player ) {
if ( $ dtStats : : Enable ) {
% flag = % player . holdingFlag ;
2020-08-24 18:02:35 -04:00
% game . dtTotalFlagTime [ % flag ] = 0 ;
2020-10-20 18:09:49 -04:00
if ( % player . getState ( ) ! $ = "Dead" ) {
% player . client . dtStats . flagToss + + ;
% flag . pass = 1 ;
% flag . lastDTStat = % player . client . dtStats ;
}
else {
2021-06-02 13:16:13 -04:00
% flag . pass = 0 ;
2020-10-20 18:09:49 -04:00
}
2020-03-17 18:27:09 -04:00
}
parent : : playerDroppedFlag ( % game , % player ) ;
}
function CTFGame : : boundaryLoseFlag ( % game , % player ) {
if ( $ dtStats : : Enable ) {
% flag = % player . holdingFlag ;
2020-08-24 18:02:35 -04:00
% game . dtTotalFlagTime [ % flag ] = 0 ;
2020-03-17 18:27:09 -04:00
}
2021-06-02 13:16:13 -04:00
parent : : boundaryLoseFlag ( % game , % player ) ;
2020-03-17 18:27:09 -04:00
}
2020-10-20 18:09:49 -04:00
function CTFGame : : updateFlagTransform ( % game , % flag ) {
2021-06-02 13:16:13 -04:00
parent : : updateFlagTransform ( % game , % flag ) ;
2020-10-20 18:09:49 -04:00
if ( $ dtStats : : Enable ) {
% vel = % flag . getVelocity ( ) ;
2021-06-02 13:16:13 -04:00
% flag . speed = vectorLen ( % vel ) ;
2020-10-20 18:09:49 -04:00
//error(%flag.speed);
}
}
2020-03-17 18:27:09 -04:00
function CTFGame : : playerTouchEnemyFlag ( % game , % player , % flag ) {
if ( $ dtStats : : Enable ) {
if ( % flag . isHome ) {
2020-08-24 18:02:35 -04:00
% game . dtTotalFlagTime [ % flag ] = getSimTime ( ) ;
2020-03-17 18:27:09 -04:00
}
2020-10-20 18:09:49 -04:00
if ( ! % player . flagTossWait ) {
if ( % flag . speed > 10 & & % flag . pass & & % player . client . dtStats ! = % flag . lastDTStat ) {
//error("pass" SPC %player.flagStatsWait);
% player . client . dtStats . flagCatch + + ;
2020-11-02 15:02:14 -05:00
% speed = vectorLen ( % player . getVelocity ( ) ) * 3.6 ;
2021-06-02 13:16:13 -04:00
% player . client . dtStats . flagCatchSpeed = ( % player . client . dtStats . flagCatchSpeed > % speed ) ? % player . client . dtStats . flagCatchSpeed : % speed ;
2020-10-20 18:09:49 -04:00
if ( rayTest ( % player , $ dtStats : : midAirHeight ) ) {
% player . client . dtStats . maFlagCatch + + ;
% player . client . dtStats . maFlagCatchSpeed = ( % player . client . dtStats . maFlagCatchSpeed > % speed ) ? % player . client . dtStats . maFlagCatchSpeed : % speed ;
}
if ( isObject ( % flag . lastDTStat ) ) {
2021-06-02 13:16:13 -04:00
% flag . lastDTStat . flagTossCatch + + ;
2020-10-20 18:09:49 -04:00
% flag . lastDTStat = - 1 ;
}
% flag . speed = 0 ;
% flag . pass = 0 ;
2021-06-02 13:16:13 -04:00
2020-10-20 18:09:49 -04:00
}
2020-03-17 18:27:09 -04:00
% grabspeed = mFloor ( VectorLen ( setWord ( % player . getVelocity ( ) , 2 , 0 ) ) * 3.6 ) ;
2020-08-24 18:02:35 -04:00
if ( % grabSpeed > % player . client . dtStats . grabSpeed ) {
2020-09-28 11:58:38 -04:00
if ( $ TeamRank [ 2 , "count" ] > 5 & & $ TeamRank [ 1 , "count" ] > 5 ) {
2020-08-24 18:02:35 -04:00
% player . client . dtStats . grabSpeed = % grabSpeed ;
2020-09-28 11:58:38 -04:00
% player . client . dtStats . grabSpeedLow = % grabSpeed ;
}
else
% player . client . dtStats . grabSpeedLow = % grabSpeed ;
2020-03-17 18:27:09 -04:00
}
2021-06-02 13:16:13 -04:00
}
2020-03-17 18:27:09 -04:00
}
parent : : playerTouchEnemyFlag ( % game , % player , % flag ) ;
}
2021-06-02 13:16:13 -04:00
2020-03-17 18:27:09 -04:00
function CTFGame : : flagCap ( % game , % player ) {
if ( $ dtStats : : Enable ) {
% flag = % player . holdingFlag ;
2021-06-02 12:55:33 -04:00
% clTeam = % player . client . team ;
% dtStats = % player . client . dtStats ;
% time = ( ( getSimTime ( ) - $ missionStartTime ) / 1000 ) / 60 ;
if ( % clTeam = = 1 ) {
2021-06-04 16:43:58 -04:00
$ dtStats : : teamOneCapCount + + ;
if ( $ dtStats : : teamOneCapCount = = 1 )
2021-06-08 13:47:42 -04:00
$ dtStats : : teamOneCapTimes = 0 @ "," @ cropFloat ( % time , 1 ) ;
2021-06-02 12:55:33 -04:00
else
2021-06-03 18:11:38 -04:00
$ dtStats : : teamOneCapTimes = $ dtStats : : teamOneCapTimes @ "," @ cropFloat ( % time , 1 ) ;
2021-06-02 12:55:33 -04:00
}
else {
2021-06-04 16:43:58 -04:00
$ dtStats : : teamTwoCapCount + + ;
if ( $ dtStats : : teamTwoCapCount = = 1 )
2021-06-08 13:47:42 -04:00
$ dtStats : : teamTwoCapTimes = 0 @ "," @ cropFloat ( % time , 1 ) ;
2021-06-02 12:55:33 -04:00
else
2021-06-03 18:11:38 -04:00
$ dtStats : : teamTwoCapTimes = $ dtStats : : teamTwoCapTimes @ "," @ cropFloat ( % time , 1 ) ;
2021-06-02 12:55:33 -04:00
}
2021-06-05 01:26:40 -04:00
//error($dtStats::teamOneCapTimes SPC $dtStats::teamTwoCapTimes);
2020-08-24 18:02:35 -04:00
if ( % game . dtTotalFlagTime [ % flag ] ) {
% heldTime = ( getSimTime ( ) - % game . dtTotalFlagTime [ % flag ] ) / 1000 ;
2021-06-02 12:55:33 -04:00
if ( % heldTime < % dtStats . heldTimeSec | | ! % dtStats . heldTimeSec ) {
2020-10-20 18:09:49 -04:00
if ( $ TeamRank [ 2 , "count" ] > 5 & & $ TeamRank [ 1 , "count" ] > 5 ) {
2021-06-02 12:55:33 -04:00
% dtStats . heldTimeSec = % heldTime ;
% dtStats . heldTimeSecLow = % heldTime ;
2020-10-20 18:09:49 -04:00
}
else
2021-06-02 12:55:33 -04:00
% dtStats . heldTimeSecLow = % heldTime ;
2020-03-17 18:27:09 -04:00
}
}
}
parent : : flagCap ( % game , % player ) ;
}
2021-06-02 13:16:13 -04:00
function CTFGame : : playerTouchOwnFlag ( % game , % player , % flag ) {
2020-10-20 18:09:49 -04:00
if ( $ dtStats : : Enable ) {
if ( ! % flag . isHome ) {
if ( % flag . speed > 10 & & % flag . pass ) {
2020-11-19 00:37:03 -05:00
% player . client . dtStats . interceptedFlag + + ;
% speed = vectorLen ( % player . getVelocity ( ) * 3.6 ) ;
2021-06-02 13:16:13 -04:00
% player . client . dtStats . interceptSpeed = ( % player . client . dtStats . interceptSpeed > % speed ) ? % player . client . dtStats . interceptSpeed : % speed ;
2020-12-01 11:14:20 -05:00
% player . client . dtStats . interceptFlagSpeed = ( % player . client . dtStats . interceptFlagSpeed > % flag . speed ) ? % player . client . dtStats . interceptFlagSpeed : % flag . speed ;
2020-11-19 00:37:03 -05:00
if ( rayTest ( % player , $ dtStats : : midAirHeight ) )
% player . client . dtStats . maInterceptedFlag + + ;
2020-10-20 18:09:49 -04:00
}
}
}
parent : : playerTouchOwnFlag ( % game , % player , % flag ) ;
}
2022-07-10 17:21:26 -04:00
function CTFGame : : awardScoreStalemateReturn ( % game , % cl ) {
if ( $ dtStats : : Enable )
% cl . flagReturns + + ;
parent : : awardScoreStalemateReturn ( % game , % cl ) ;
}
2021-06-02 13:16:13 -04:00
/////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
function SCtFGame : : playerDroppedFlag ( % game , % player ) {
if ( $ dtStats : : Enable ) {
% flag = % player . holdingFlag ;
% game . dtTotalFlagTime [ % flag ] = 0 ;
2020-10-20 18:09:49 -04:00
if ( % player . getState ( ) ! $ = "Dead" ) {
% player . client . dtStats . flagToss + + ;
% flag . pass = 1 ;
% flag . lastDTStat = % player . client . dtStats ;
}
else {
2021-06-02 13:16:13 -04:00
% flag . pass = 0 ;
2020-10-20 18:09:49 -04:00
}
2020-08-24 18:02:35 -04:00
}
parent : : playerDroppedFlag ( % game , % player ) ;
2020-04-07 15:53:33 -04:00
}
2020-08-24 18:02:35 -04:00
function SCtFGame : : boundaryLoseFlag ( % game , % player ) {
if ( $ dtStats : : Enable ) {
% flag = % player . holdingFlag ;
% game . dtTotalFlagTime [ % flag ] = 0 ;
}
2021-06-02 13:16:13 -04:00
parent : : boundaryLoseFlag ( % game , % player ) ;
2020-04-08 18:00:42 -04:00
}
2020-10-20 18:09:49 -04:00
function SCtFGame : : updateFlagTransform ( % game , % flag ) {
2021-06-02 13:16:13 -04:00
parent : : updateFlagTransform ( % game , % flag ) ;
2020-10-20 18:09:49 -04:00
if ( $ dtStats : : Enable ) {
% vel = % flag . getVelocity ( ) ;
2021-06-02 13:16:13 -04:00
% flag . speed = vectorLen ( % vel ) ;
2020-10-20 18:09:49 -04:00
//error(%flag.speed);
}
}
2020-08-24 18:02:35 -04:00
function SCtFGame : : playerTouchEnemyFlag ( % game , % player , % flag ) {
if ( $ dtStats : : Enable ) {
if ( % flag . isHome ) {
% game . dtTotalFlagTime [ % flag ] = getSimTime ( ) ;
}
2020-10-20 18:09:49 -04:00
if ( ! % player . flagTossWait ) {
if ( % flag . speed > 10 & & % flag . pass & & % player . client . dtStats ! = % flag . lastDTStat ) {
//error("pass" SPC %player.flagStatsWait);
% player . client . dtStats . flagCatch + + ;
2020-11-02 15:02:14 -05:00
% speed = vectorLen ( % player . getVelocity ( ) * 3.6 ) ;
2021-06-02 13:16:13 -04:00
% player . client . dtStats . flagCatchSpeed = ( % player . client . dtStats . flagCatchSpeed > % speed ) ? % player . client . dtStats . flagCatchSpeed : % speed ;
2020-10-20 18:09:49 -04:00
if ( rayTest ( % player , $ dtStats : : midAirHeight ) ) {
% player . client . dtStats . maFlagCatch + + ;
% player . client . dtStats . maFlagCatchSpeed = ( % player . client . dtStats . maFlagCatchSpeed > % speed ) ? % player . client . dtStats . maFlagCatchSpeed : % speed ;
}
if ( isObject ( % flag . lastDTStat ) ) {
2021-06-02 13:16:13 -04:00
% flag . lastDTStat . flagTossCatch + + ;
2020-10-20 18:09:49 -04:00
% flag . lastDTStat = - 1 ;
}
% flag . speed = 0 ;
% flag . pass = 0 ;
2021-06-02 13:16:13 -04:00
2020-10-20 18:09:49 -04:00
}
2020-08-24 18:02:35 -04:00
% grabspeed = mFloor ( VectorLen ( setWord ( % player . getVelocity ( ) , 2 , 0 ) ) * 3.6 ) ;
if ( % grabSpeed > % player . client . dtStats . grabSpeed ) {
2020-10-20 18:09:49 -04:00
if ( $ TeamRank [ 2 , "count" ] > 5 & & $ TeamRank [ 1 , "count" ] > 5 ) {
2020-08-24 18:02:35 -04:00
% player . client . dtStats . grabSpeed = % grabSpeed ;
2020-10-20 18:09:49 -04:00
% player . client . dtStats . grabSpeedLow = % grabSpeed ;
}
else
% player . client . dtStats . grabSpeedLow = % grabSpeed ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
}
parent : : playerTouchEnemyFlag ( % game , % player , % flag ) ;
2020-04-10 16:16:41 -04:00
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
function SCtFGame : : flagCap ( % game , % player ) {
if ( $ dtStats : : Enable ) {
% flag = % player . holdingFlag ;
2021-10-03 14:16:59 -04:00
% clTeam = % player . client . team ;
2021-06-02 12:55:33 -04:00
% dtStats = % player . client . dtStats ;
% time = ( ( getSimTime ( ) - $ missionStartTime ) / 1000 ) / 60 ;
2021-06-04 16:43:58 -04:00
if ( % clTeam = = 1 ) {
$ dtStats : : teamOneCapCount + + ;
if ( $ dtStats : : teamOneCapCount = = 1 )
2021-06-08 13:47:42 -04:00
$ dtStats : : teamOneCapTimes = 0 @ "," @ cropFloat ( % time , 1 ) ;
2021-06-02 12:55:33 -04:00
else
2021-06-03 18:11:38 -04:00
$ dtStats : : teamOneCapTimes = $ dtStats : : teamOneCapTimes @ "," @ cropFloat ( % time , 1 ) ;
2021-06-02 12:55:33 -04:00
}
else {
2021-06-04 16:43:58 -04:00
$ dtStats : : teamTwoCapCount + + ;
if ( $ dtStats : : teamTwoCapCount = = 1 )
2021-06-08 13:47:42 -04:00
$ dtStats : : teamTwoCapTimes = 0 @ "," @ cropFloat ( % time , 1 ) ;
2021-06-02 12:55:33 -04:00
else
2021-06-03 18:11:38 -04:00
$ dtStats : : teamTwoCapTimes = $ dtStats : : teamTwoCapTimes @ "," @ cropFloat ( % time , 1 ) ;
2021-06-02 12:55:33 -04:00
}
2020-08-24 18:02:35 -04:00
if ( % game . dtTotalFlagTime [ % flag ] ) {
% heldTime = ( getSimTime ( ) - % game . dtTotalFlagTime [ % flag ] ) / 1000 ;
2021-06-02 12:55:33 -04:00
if ( % heldTime < % dtStats . heldTimeSec | | ! % dtStats . heldTimeSec ) {
2020-10-20 18:09:49 -04:00
if ( $ TeamRank [ 2 , "count" ] > 5 & & $ TeamRank [ 1 , "count" ] > 5 ) {
2021-06-02 12:55:33 -04:00
% dtStats . heldTimeSec = % heldTime ;
% dtStats . heldTimeSecLow = % heldTime ;
2020-10-20 18:09:49 -04:00
}
else
2021-06-02 12:55:33 -04:00
% dtStats . heldTimeSecLow = % heldTime ;
2020-08-24 18:02:35 -04:00
}
}
}
parent : : flagCap ( % game , % player ) ;
2020-04-07 15:53:33 -04:00
}
2021-06-02 13:16:13 -04:00
function SCtFGame : : playerTouchOwnFlag ( % game , % player , % flag ) {
2020-10-20 18:09:49 -04:00
if ( $ dtStats : : Enable ) {
if ( ! % flag . isHome ) {
if ( % flag . speed > 10 & & % flag . pass ) {
2020-11-02 15:02:14 -05:00
% player . client . dtStats . interceptedFlag + + ;
% speed = vectorLen ( % player . getVelocity ( ) * 3.6 ) ;
2021-06-02 13:16:13 -04:00
% player . client . dtStats . interceptSpeed = ( % player . client . dtStats . interceptSpeed > % speed ) ? % player . client . dtStats . interceptSpeed : % speed ;
2020-12-01 11:14:20 -05:00
% player . client . dtStats . interceptFlagSpeed = ( % player . client . dtStats . interceptFlagSpeed > % flag . speed ) ? % player . client . dtStats . interceptFlagSpeed : % flag . speed ;
2020-11-02 15:02:14 -05:00
if ( rayTest ( % player , $ dtStats : : midAirHeight ) )
% player . client . dtStats . maInterceptedFlag + + ;
2020-10-20 18:09:49 -04:00
}
}
}
parent : : playerTouchOwnFlag ( % game , % player , % flag ) ;
}
2022-07-10 17:21:26 -04:00
function SCtFGame : : awardScoreStalemateReturn ( % game , % cl ) {
if ( $ dtStats : : Enable )
% cl . flagReturns + + ;
parent : : awardScoreStalemateReturn ( % game , % cl ) ;
}
2019-11-20 14:43:50 -05:00
} ;
2020-02-28 16:37:29 -05:00
function chkGrounded ( % player ) {
if ( isObject ( % player ) ) {
% client = % player . client ;
if ( ! % client . ground ) {
if ( % client . at > 0 ) {
2020-08-24 18:02:35 -04:00
% client . dtStats . airTime + = ( ( getSimTime ( ) - % client . at ) / 1000 ) / 60 ;
2020-02-28 16:37:29 -05:00
}
% client . gt = getSimTime ( ) ;
}
% client . ground = 1 ;
% player . jetTimeTest = 0 ;
}
// error(%client.airTime SPC %client.groundTime);
}
2020-08-24 18:02:35 -04:00
function dtScanForRepair ( ) {
InitContainerRadiusSearch ( "0 0 0" , 9000 , $ TypeMasks : : ItemObjectType ) ;
while ( ( % itemObj = containerSearchNext ( ) ) ! = 0 ) {
if ( % itemObj . getDatablock ( ) . getName ( ) $ = "RepairPack" ) {
% repairList [ % c + + ] = % itemObj ;
}
}
2021-06-02 13:16:13 -04:00
for ( % i = 1 ; % i < = % c ; % i + + ) {
2020-08-24 18:02:35 -04:00
% itemObj = % repairList [ % i ] ;
InitContainerRadiusSearch ( "0 0 0" , 9000 , $ TypeMasks : : ItemObjectType | $ TypeMasks : : StationObjectType | $ TypeMasks : : SensorObjectType | $ TypeMasks : : GeneratorObjectType | $ TypeMasks : : TurretObjectType ) ; //| $TypeMasks::PlayerObjectType
2021-06-02 13:16:13 -04:00
% disMin = 0 ;
2020-08-24 18:02:35 -04:00
while ( ( % teamObj = containerSearchNext ( ) ) ! = 0 ) {
if ( % teamObj . getType ( ) & $ TypeMasks : : ItemObjectType & & % teamObj . team = = 0 )
continue ;
if ( % teamObj . team > - 1 ) {
% dis = vectorDist ( % itemObj . getPosition ( ) , % teamObj . getPosition ( ) ) ;
if ( % dis < % disMin | | % disMin = = 0 ) {
% disMin = % dis ;
% itemObj . team = % teamObj . team ;
}
}
}
}
}
if ( $ dtStats : : Enable ) {
activatePackage ( dtStats ) ;
}
////////////////////////////////////////////////////////////////////////////////
// Game Type Commons //
////////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
function dtGameLink ( % game , % client , % arg1 , % arg2 , % arg3 , % arg4 , % arg5 ) {
2021-05-06 15:01:41 -04:00
if ( $ dtStats : : debugEchos ) { error ( "dtGameLink" SPC % game SPC % client SPC % arg1 SPC % arg2 SPC % arg3 SPC % arg4 SPC % arg5 ) ; }
2020-08-24 18:02:35 -04:00
if ( % arg1 $ = "S" ) {
2020-03-06 02:45:30 -05:00
% client . viewClient = getCNameToCID ( % arg3 ) ;
if ( % client . viewClient ! = 0 ) {
% client . viewStats = 1 ; // lock out score hud from updateing untill they are done
% client . viewMenu = % arg2 ;
% client . GlArg4 = % arg4 ;
% client . GlArg5 = % arg5 ;
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { error ( "dtGameLink GUID = " SPC % client . guid SPC % arg1 SPC % arg2 SPC % arg3 SPC % arg4 SPC % arg5 ) ; }
2020-03-06 02:45:30 -05:00
statsMenu ( % client , % game . class ) ;
if ( % arg2 ! $ = "Reset" ) {
return ;
}
else {
messageClient ( % client , ' ClearHud ' , "" , ' scoreScreen ' , 0 ) ;
% client . viewStats = 0 ;
Game . updateScoreHud ( % client , ' scoreScreen ' ) ;
}
2019-11-20 14:43:50 -05:00
}
}
if ( % game . class $ = "DuelGame" ) {
switch ( getSubStr ( % arg1 , 0 , 1 ) )
{
case 1 :
% targetClient = getSubStr ( % arg1 , 1 , strlen ( % arg1 ) - 1 ) ;
if ( ( % targetClient . team ! = 0 ) | | ( % client . team ! = 0 ) )
{
serverCmdHideHud ( % client , ' scoreScreen ' ) ;
commandToClient ( % client , ' setHudMode ' , ' Standard ' , "" , 0 ) ;
DefaultGame : : processGameLink ( % game , % client , % targetClient , % arg2 , % arg3 , % arg4 , % arg5 ) ;
}
else
% game . RequestDuel ( % client , % TargetClient ) ;
case 2 :
% game . CancelDuelOffer ( % client ) ;
serverCmdHideHud ( % client , ' scoreScreen ' ) ;
commandToClient ( % client , ' setHudMode ' , ' Standard ' , "" , 0 ) ;
case 3 :
% game . AcceptDuelOffer ( % client . clientDuelRequestedBy ) ;
serverCmdHideHud ( % client , ' scoreScreen ' ) ;
commandToClient ( % client , ' setHudMode ' , ' Standard ' , "" , 0 ) ;
case 4 :
% game . DeclineDuelOffer ( % client . clientDuelRequestedBy ) ;
serverCmdHideHud ( % client , ' scoreScreen ' ) ;
commandToClient ( % client , ' setHudMode ' , ' Standard ' , "" , 0 ) ;
default :
}
}
else {
2019-03-10 12:58:05 -04:00
% targetClient = % arg1 ;
if ( ( % client . team = = 0 ) & & isObject ( % targetClient ) & & ( % targetClient . team ! = 0 ) )
{
% prevObsClient = % client . observeClient ;
2021-06-02 13:16:13 -04:00
2019-03-10 12:58:05 -04:00
// update the observer list for this client
observerFollowUpdate ( % client , % targetClient , % prevObsClient ! $ = "" ) ;
2021-06-02 13:16:13 -04:00
2019-03-10 12:58:05 -04:00
serverCmdObserveClient ( % client , % targetClient ) ;
displayObserverHud ( % client , % targetClient ) ;
2021-06-02 13:16:13 -04:00
2019-03-16 15:19:20 -04:00
if ( % targetClient ! = % prevObsClient )
{
messageClient ( % targetClient , ' Observer ' , ' \ c1 % 1 is now observing you . ' , % client . name ) ;
messageClient ( % prevObsClient , ' ObserverEnd ' , ' \ c1 % 1 is no longer observing you . ' , % client . name ) ;
}
2019-03-10 12:58:05 -04:00
}
}
2019-11-20 14:43:50 -05:00
}
function ArenaHud ( % game , % client , % tag ) {
if ( % client . viewStats & & $ dtStats : : enableRefresh ) {
statsMenu ( % client , % game . class ) ;
return ;
}
else if ( % client . viewStats & & ! $ dtStats : : enableRefresh ) {
return ;
}
% ShowScores = ( $ Host : : TournamentMode | | $ Host : : ShowIngamePlayerScores ) ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
// Clear the HUD
messageClient ( % client , ' ClearHud ' , "" , % tag , 0 ) ;
// Clear the header
messageClient ( % client , ' SetScoreHudHeader ' , "" , "" ) ;
// Send the subheader
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < tab : 15 , 205 , 310 , 390 , 500 > \ tTEAMS / PLAYERS \ tSCORE \ tKILLS \ tWIN / LOSS \ tBONUS ' ) ;
// Tracks the line of the score hud we're writing to
% index = - 1 ;
// For every team in the game..
for ( % iTeam = 1 ; % iTeam < = Game . numTeams ; % iTeam + + )
{
// Send team name
2021-06-02 13:16:13 -04:00
2020-09-24 12:19:15 -04:00
% teamPlayerCountPlural = $ TeamRank [ % iTeam , count ] = = 1 ? "" : "s" ;
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < tab : 10 , 310 > < spush > < font : Univers Condensed : 28 > \ t % 1 ( % 2 ) < font : Univers Condensed : 16 > % 3 Player % 4 < spop > ' , % game . getTeamName ( % iTeam ) , $ TeamScore [ % iTeam ] , % teamPlayerCount , % teamPlayerCountPlural ) ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
// Send team player list
for ( % iPlayer = 0 ; % iPlayer < $ TeamRank [ % iTeam , count ] ; % iPlayer + + )
{
% cl = $ TeamRank [ % iTeam , % iPlayer ] ;
% clScore = % cl . score $ = "" ? 0 : % cl . score ;
% clKills = % cl . kills $ = "" ? 0 : % cl . kills ;
% clBonus = % cl . hatTricks $ = "" ? 0 : % cl . hatTricks ;
% clWins = % cl . roundsWon $ = "" ? 0 : % cl . roundsWon ;
% clLosses = % cl . roundsLost $ = "" ? 0 : % cl . roundsLost ;
% score = % cl . score $ = "" ? 0 : % cl . score ;
if ( % cl = = % client )
if ( % cl . isAlive )
% clStyle = "<color:dcdcdc>" ;
else
% clStyle = "<color:dd7a7a>" ;
else if ( % cl . isAlive )
% clStyle = "" ;
else
% clStyle = "<color:f90202>" ;
// For living players send a simple name
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
if ( % client . team ! = 0 & & % client . isAlive )
2019-03-12 20:10:12 -04:00
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' % 5 < tab : 20 , 450 > \ t < clip : 200 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 250 > < just : right > % 2 < rmargin : 340 > < just : right > % 3 < rmargin : 450 > < just : right > % 4 / % 6 < rmargin : 540 > < just : right > % 7 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clScore , % clKills , % clWins , % clStyle , % clLosses , % clBonus ) ;
2019-03-12 20:10:12 -04:00
}
2019-11-20 14:43:50 -05:00
// For observers, create an anchor around the player name so they can be observed
else
2019-03-12 20:10:12 -04:00
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' % 5 < tab : 20 , 450 > \ t < clip : 200 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 6 > % 1 < / a > < / clip > < rmargin : 250 > < just : right > % 2 < rmargin : 340 > < just : right > % 3 < rmargin : 450 > < just : right > % 4 / % 8 < rmargin : 540 > < just : right > % 7 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clScore , % clKills , % clWins , % clStyle , % cl , % clBonus , % clLosses ) ;
2019-03-10 12:58:05 -04:00
}
}
2019-11-20 14:43:50 -05:00
else {
if ( % cl = = % client ) {
if ( % client . team ! = 0 & & % client . isAlive )
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' % 5 < tab : 20 , 450 > \ t < clip : 200 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 250 > < just : right > % 2 < rmargin : 340 > < just : right > % 3 < rmargin : 450 > < just : right > % 4 / % 6 < rmargin : 540 > < just : right > % 7 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clScore , % clKills , % clWins , % clStyle , % clLosses , % clBonus ) ;
}
// For observers, create an anchor around the player name so they can be observed
2019-03-12 20:10:12 -04:00
else
2019-11-20 14:43:50 -05:00
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' % 5 < tab : 20 , 450 > \ t < clip : 200 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 6 > % 1 < / a > < / clip > < rmargin : 250 > < just : right > % 2 < rmargin : 340 > < just : right > % 3 < rmargin : 450 > < just : right > % 4 / % 8 < rmargin : 540 > < just : right > % 7 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clScore , % clKills , % clWins , % clStyle , % cl , % clBonus , % clLosses ) ;
}
2019-03-10 12:58:05 -04:00
}
2019-11-20 14:43:50 -05:00
else {
if ( % client . team ! = 0 & & % client . isAlive )
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' % 5 < tab : 20 , 450 > \ t < clip : 200 > % 1 < / clip > < rmargin : 250 > < just : right > % 2 < rmargin : 340 > < just : right > % 3 < rmargin : 450 > < just : right > % 4 / % 6 < rmargin : 540 > < just : right > % 7 ' ,
% cl . name , % clScore , % clKills , % clWins , % clStyle , % clLosses , % clBonus ) ;
}
// For observers, create an anchor around the player name so they can be observed
2019-03-12 20:10:12 -04:00
else
2019-11-20 14:43:50 -05:00
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' % 5 < tab : 20 , 450 > \ t < clip : 200 > < a : gamelink \ t % 6 > % 1 < / a > < / clip > < rmargin : 250 > < just : right > % 2 < rmargin : 340 > < just : right > % 3 < rmargin : 450 > < just : right > % 4 / % 8 < rmargin : 540 > < just : right > % 7 ' ,
% cl . name , % clScore , % clKills , % clWins , % clStyle , % cl , % clBonus , % clLosses ) ;
2021-06-02 13:16:13 -04:00
}
2019-03-10 12:58:05 -04:00
}
2019-11-20 14:43:50 -05:00
}
}
// Insert a blank line
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
}
// Tack on the list of observers:
% observerCount = 0 ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
{
% cl = ClientGroup . getObject ( % i ) ;
if ( % cl . team = = 0 )
% observerCount + + ;
}
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
if ( % observerCount > 0 )
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , "" ) ;
% index + + ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 , 310 > < spush > < font : Univers Condensed : 22 > \ tOBSERVERS ( % 1 ) < rmargin : 260 > < just : right > TIME < spop > ' , % observerCount ) ;
% index + + ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
{
% cl = ClientGroup . getObject ( % i ) ;
//if this is an observer
if ( % cl . team = = 0 )
{
% obsTime = getSimTime ( ) - % cl . observerStartTime ;
% obsTimeStr = % game . formatTime ( % obsTime , false ) ;
2020-08-24 18:02:35 -04:00
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 3 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' , % cl . name , % obsTimeStr , % cl ) ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
}
else if ( % cl = = % client ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 3 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' , % cl . name , % obsTimeStr , % cl ) ;
2019-03-10 12:58:05 -04:00
}
else {
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' , % cl . name , % obsTimeStr ) ;
2019-03-10 12:58:05 -04:00
}
2019-03-12 20:10:12 -04:00
% index + + ;
2019-03-10 12:58:05 -04:00
}
}
2019-11-20 14:43:50 -05:00
}
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
//clear the rest of Hud so we don't get old lines hanging around...
messageClient ( % client , ' ClearHud ' , "" , % tag , % index ) ;
}
2019-11-24 14:34:05 -05:00
2019-11-20 14:43:50 -05:00
function DuelHud ( % game , % client , % tag ) {
if ( % client . viewStats & & $ dtStats : : enableRefresh ) {
statsMenu ( % client , % game . class ) ;
return ;
}
else if ( % client . viewStats & & ! $ dtStats : : enableRefresh ) {
return ;
}
// Clear the header:
messageClient ( % client , ' SetScoreHudHeader ' , "" , "" ) ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < lmargin : 10 > < just : left > PLAYER < lmargin : 185 > < just : left > ACCURACY < lmargin : 330 > < just : left > PLAYER < lmargin : 505 > < just : left > ACCURACY ' ) ;
for ( % index = 0 ; % index < ClientGroup . getCount ( ) ; % index + + )
ClientGroup . getObject ( % index ) . WasDisplayed = false ;
% index = 0 ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
{
% col1Client = ClientGroup . getObject ( % i ) ;
% col1ClientRank = "" ;
2021-06-02 13:16:13 -04:00
% col1Style = "<color:00dcdc>" ;
2019-11-20 14:43:50 -05:00
if ( ( % col1Client . clientDuelingWith = = 0 ) | | ( % col1Client . WasDisplayed ) | | ! isObject ( % col1Client . player ) )
continue ;
if ( % col1Client = = % client )
% col1Style = "<color:dcdcdc>" ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
% col2Client = % col1Client . clientDuelingWith ;
% col2Client . WasDisplayed = true ;
% col2ClientRank = "" ;
2021-06-02 13:16:13 -04:00
% col2Style = "<color:00dcdc>" ;
2019-11-20 14:43:50 -05:00
if ( % col2Client = = % client )
2021-06-02 13:16:13 -04:00
% col2Style = "<color:dcdcdc>" ;
2019-11-20 14:43:50 -05:00
//if the client is not an observer, send the message
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
if ( % client . team ! = 0 )
2019-03-12 20:10:12 -04:00
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < lmargin : 10 > < just : left > < clip : 180 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < lmargin : 200 > < just : left > % 2 < rmargin : 305 > < just : right > < color : ff0000 > versus < rmargin : 570 > % 6 < lmargin : 330 > < just : left > < clip : 180 > < a : gamelink \ tS \ tView \ t % 3 > + < / a > % 3 < / clip > < just : right > % 4 ' ,
2019-11-20 14:43:50 -05:00
% col1Client . name , formatDuelScore ( % col1Client . score ) , % col2Client . name , formatDuelScore ( % col2Client . score ) ,
% col1Style , % col2Style ) ;
2019-03-12 20:10:12 -04:00
}
2019-11-20 14:43:50 -05:00
//else for observers, create an anchor around the player name so they can be observed
else
2019-03-12 20:10:12 -04:00
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < lmargin : 10 > < just : left > < clip : 180 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t1 % 7 > % 1 < / a > < / clip > < lmargin : 200 > < just : left > % 2 < rmargin : 305 > < just : right > < color : ff0000 > versus < rmargin : 570 > % 6 < lmargin : 330 > < just : left > < a : gamelink \ tS \ tView \ t % 3 > + < / a > < a : gamelink \ t1 % 8 > < clip : 180 > % 3 < / clip > < / a > < lmargin : 515 > < just : left > % 4 ' ,
2019-11-20 14:43:50 -05:00
% col1Client . name , formatDuelScore ( % col1Client . score ) , % col2Client . name , formatDuelScore ( % col2Client . score ) ,
% col1Style , % col2Style , % col1Client , % col2Client ) ;
}
% index + + ;
}
else {
if ( % client = = % col1Client ) {
if ( % client . team ! = 0 )
2019-03-12 20:10:12 -04:00
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < lmargin : 10 > < just : left > < clip : 180 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < lmargin : 200 > < just : left > % 2 < rmargin : 305 > < just : right > < color : ff0000 > versus < rmargin : 570 > % 6 < lmargin : 330 > < just : left > < clip : 180 > % 3 < / clip > < lmargin : 515 > < just : left > % 4 ' ,
2019-11-20 14:43:50 -05:00
% col1Client . name , formatDuelScore ( % col1Client . score ) , % col2Client . name , formatDuelScore ( % col2Client . score ) ,
% col1Style , % col2Style ) ;
2019-03-10 12:58:05 -04:00
}
2019-11-20 14:43:50 -05:00
//else for observers, create an anchor around the player name so they can be observed
else
2019-03-12 20:10:12 -04:00
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < lmargin : 10 > < just : left > < clip : 180 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t1 % 7 > % 1 < / a > < / clip > < lmargin : 200 > < just : left > % 2 < rmargin : 305 > < just : right > < color : ff0000 > versus < rmargin : 570 > % 6 < lmargin : 330 > < just : left > < a : gamelink \ t1 % 8 > < clip : 180 > % 3 < / clip > < / a > < lmargin : 515 > < just : left > % 4 ' ,
2019-11-20 14:43:50 -05:00
% col1Client . name , formatDuelScore ( % col1Client . score ) , % col2Client . name , formatDuelScore ( % col2Client . score ) ,
% col1Style , % col2Style , % col1Client , % col2Client ) ;
2019-03-12 20:10:12 -04:00
}
2019-11-20 14:43:50 -05:00
% index + + ;
}
else if ( % client = = % col2Client ) {
if ( % client . team ! = 0 )
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < lmargin : 10 > < just : left > < clip : 180 > % 1 < / clip > < lmargin : 200 > < just : left > % 2 < rmargin : 305 > < just : right > < color : ff0000 > versus < rmargin : 570 > % 6 < lmargin : 330 > < just : left > < clip : 180 > < a : gamelink \ tS \ tView \ t % 3 > + < / a > % 3 < / clip > < lmargin : 515 > < just : left > % 4 ' ,
2019-11-20 14:43:50 -05:00
% col1Client . name , formatDuelScore ( % col1Client . score ) , % col2Client . name , formatDuelScore ( % col2Client . score ) ,
% col1Style , % col2Style ) ;
}
//else for observers, create an anchor around the player name so they can be observed
else
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < lmargin : 10 > < just : left > < clip : 180 > < a : gamelink \ t1 % 7 > % 1 < / a > < / clip > < lmargin : 200 > < just : left > % 2 < rmargin : 305 > < just : right > < color : ff0000 > versus < rmargin : 570 > % 6 < lmargin : 330 > < just : left > < a : gamelink \ tS \ tView \ t % 3 > + < / a > < a : gamelink \ t1 % 8 > < clip : 180 > % 3 < / clip > < / a > < lmargin : 515 > < just : left > % 4 ' ,
2019-11-20 14:43:50 -05:00
% col1Client . name , formatDuelScore ( % col1Client . score ) , % col2Client . name , formatDuelScore ( % col2Client . score ) ,
% col1Style , % col2Style , % col1Client , % col2Client ) ;
}
% index + + ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
}
else {
if ( % client . team ! = 0 )
2019-03-12 20:10:12 -04:00
{
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < lmargin : 10 > < just : left > < clip : 180 > % 1 < / clip > < lmargin : 200 > < just : left > % 2 < rmargin : 305 > < just : right > < color : ff0000 > versus < rmargin : 570 > % 6 < lmargin : 330 > < just : left > < clip : 180 > % 3 < / clip > < lmargin : 515 > < just : left > % 4 ' ,
% col1Client . name , formatDuelScore ( % col1Client . score ) , % col2Client . name , formatDuelScore ( % col2Client . score ) ,
% col1Style , % col2Style ) ;
2019-03-12 20:10:12 -04:00
}
//else for observers, create an anchor around the player name so they can be observed
else
{
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < lmargin : 10 > < just : left > < clip : 180 > < a : gamelink \ t1 % 7 > % 1 < / a > < / clip > < lmargin : 200 > < just : left > % 2 < rmargin : 305 > < just : right > < color : ff0000 > versus < rmargin : 570 > % 6 < lmargin : 330 > < just : left > < a : gamelink \ tS \ tView \ t % 3 > + < / a > < a : gamelink \ t1 % 8 > < clip : 180 > % 3 < / clip > < / a > < lmargin : 515 > < just : left > % 4 ' ,
2019-11-20 14:43:50 -05:00
% col1Client . name , formatDuelScore ( % col1Client . score ) , % col2Client . name , formatDuelScore ( % col2Client . score ) ,
% col1Style , % col2Style , % col1Client , % col2Client ) ;
2019-03-10 12:58:05 -04:00
}
2019-11-20 14:43:50 -05:00
% index + + ;
2019-03-10 12:58:05 -04:00
}
}
2019-11-20 14:43:50 -05:00
}
if ( % index = = 0 )
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , "" ) ;
% index + + ;
}
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
ClientGroup . getObject ( % i ) . sorted = false ;
% clientSortCount = 0 ;
while ( true )
{
% maxScore = - 1 ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
2019-03-12 20:10:12 -04:00
{
% cl = ClientGroup . getObject ( % i ) ;
2019-11-20 14:43:50 -05:00
if ( ! % cl . sorted )
2019-03-12 20:10:12 -04:00
{
2019-11-20 14:43:50 -05:00
if ( % cl . score > % maxScore )
2019-03-12 20:10:12 -04:00
{
2019-11-20 14:43:50 -05:00
% clientSort [ % clientSortCount ] = % cl ;
% maxScore = % cl . score ;
2019-03-12 20:10:12 -04:00
}
}
}
2019-11-20 14:43:50 -05:00
if ( % maxScore = = - 1 )
break ;
else
{
% clientSort [ % clientSortCount ] . sorted = true ;
% clientSortCount + + ;
}
}
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , "<just:center>-----------------------------------------------------------------------------------------------------------------" ) ;
% index + + ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 , 310 > < font : Univers Condensed : 22 > \ tClick on a name to duel < rmargin : 315 > < just : right > KILLS < rmargin : 390 > DEATHS < rmargin : 440 > < just : right > ACC < rmargin : 510 > < just : right > RANK < rmargin : 570 > < just : right > TIME ' ) ;
% index + + ;
for ( % i = 0 ; % i < % clientSortCount ; % i + + )
{
% cl = % clientSort [ % i ] ;
% clientTimeStr = "" ;
if ( % cl . observerStartTime ! = 0 )
{
% clientTime = getSimTime ( ) - % cl . observerStartTime ;
% clientTimeStr = % game . formatTime ( % clientTime , false ) ;
}
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
if ( ( % cl ! = % client ) & & ( % cl . team = = 0 ) & & ( % client . team = = 0 ) & & % cl . Initialized )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t1 % 3 > % 1 < / a > < / clip > < just : right > < rmargin : 310 > < color : ffff00 > % 6 < rmargin : 370 > % 7 < rmargin : 450 > < color : ffffff > % 5 < color : 00d cdc > < rmargin : 510 > % 4 < rmargin : 570 > % 2 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clientTimeStr , % cl , "none" , formatDuelScore ( % cl . score ) , % cl . kills , % cl . deaths ) ;
else
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < color : 0000d c > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / a > < / clip > < color : 00d cdc > < just : right > < rmargin : 310 > < color : ffff00 > % 6 < rmargin : 370 > % 7 < rmargin : 450 > < color : ffffff > % 5 < color : 00d cdc > < rmargin : 510 > % 4 < rmargin : 570 > % 2 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clientTimeStr , % cl , "none" , formatDuelScore ( % cl . score ) , % cl . kills , % cl . deaths ) ;
% index + + ;
}
else {
if ( % client = = % cl ) {
if ( ( % cl ! = % client ) & & ( % cl . team = = 0 ) & & ( % client . team = = 0 ) & & % cl . Initialized )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t1 % 3 > % 1 < / a > < / clip > < just : right > < rmargin : 310 > < color : ffff00 > % 6 < rmargin : 370 > % 7 < rmargin : 450 > < color : ffffff > % 5 < color : 00d cdc > < rmargin : 510 > % 4 < rmargin : 570 > % 2 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clientTimeStr , % cl , "none" , formatDuelScore ( % cl . score ) , % cl . kills , % cl . deaths ) ;
else
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < color : 0000d c > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / a > < / clip > < color : 00d cdc > < just : right > < rmargin : 310 > < color : ffff00 > % 6 < rmargin : 370 > % 7 < rmargin : 450 > < color : ffffff > % 5 < color : 00d cdc > < rmargin : 510 > % 4 < rmargin : 570 > % 2 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clientTimeStr , % cl , "none" , formatDuelScore ( % cl . score ) , % cl . kills , % cl . deaths ) ;
% index + + ;
}
else {
if ( ( % cl ! = % client ) & & ( % cl . team = = 0 ) & & ( % client . team = = 0 ) & & % cl . Initialized )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ t1 % 3 > % 1 < / a > < / clip > < just : right > < rmargin : 310 > < color : ffff00 > % 6 < rmargin : 370 > % 7 < rmargin : 450 > < color : ffffff > % 5 < color : 00d cdc > < rmargin : 510 > % 4 < rmargin : 570 > % 2 ' ,
% cl . name , % clientTimeStr , % cl , "none" , formatDuelScore ( % cl . score ) , % cl . kills , % cl . deaths ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < color : 0000d c > % 1 < / a > < / clip > < color : 00d cdc > < just : right > < rmargin : 310 > < color : ffff00 > % 6 < rmargin : 370 > % 7 < rmargin : 450 > < color : ffffff > % 5 < color : 00d cdc > < rmargin : 510 > % 4 < rmargin : 570 > % 2 ' ,
% cl . name , % clientTimeStr , % cl , "none" , formatDuelScore ( % cl . score ) , % cl . kills , % cl . deaths ) ;
2021-06-02 13:16:13 -04:00
% index + + ;
2019-11-20 14:43:50 -05:00
}
}
}
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , "" ) ;
% index + + ;
if ( % client . clientRequestedDuelWith ! = 0 )
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' Your duel request with % 1 is pending ( < a : gamelink \ t2 > CANCEL < / a > ) . ' ,
% client . clientRequestedDuelWith . name ) ;
% index + + ;
}
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
if ( % client . clientDuelRequestedBy ! = 0 )
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' Player % 1 has requested a duel ( < a : gamelink \ t3 > ACCEPT < / a > , < a : gamelink \ t4 > DECLINE < / a > ) . ' ,
% client . clientDuelRequestedBy . name ) ;
% index + + ;
}
//clear the rest of Hud so we don't get old lines hanging around...
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' ClearHud ' , "" , % tag , % index ) ;
2019-11-20 14:43:50 -05:00
}
2021-06-02 13:16:13 -04:00
function DMHud ( % game , % client , % tag ) { // note in this game type the score hud can only display 30 or so players
2019-11-20 14:43:50 -05:00
if ( % client . viewStats & & $ dtStats : : enableRefresh ) {
statsMenu ( % client , % game . class ) ;
return ;
}
else if ( % client . viewStats & & ! $ dtStats : : enableRefresh ) {
return ;
2021-06-02 13:16:13 -04:00
}
2019-11-20 14:43:50 -05:00
// Clear the header:
messageClient ( % client , ' SetScoreHudHeader ' , "" , "" ) ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
// Send the subheader:
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < tab : 15 , 200 , 280 , 360 , 465 > \ tPLAYER \ tRATING \ tKILLS \ tDEATHS \ tBONUS ' ) ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
for ( % index = 0 ; % index < $ TeamRank [ 0 , count ] ; % index + + )
{
//get the client info
% cl = $ TeamRank [ 0 , % index ] ;
2021-06-02 13:16:13 -04:00
//get the score
2019-11-20 14:43:50 -05:00
% clScore = % cl . score ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
% clKills = mFloatLength ( % cl . kills , 0 ) ;
% clDeaths = mFloatLength ( % cl . deaths + % cl . suicides , 0 ) ;
% clBonus = mFloor ( ( % cl . Bonus * % game . SCORE_PER_BONUS ) + ( % cl . MidAir * % game . SCORE_PER_MIDAIR ) + ( % cl . KillStreakBonus * % game . SCORE_PER_KILLSTREAKBONUS ) ) ;
2021-06-02 13:16:13 -04:00
% clStyle = % cl = = % client ? "<color:dcdcdc>" : "" ;
2019-11-20 14:43:50 -05:00
//%BonusValue = %client.Bonus * %game.SCORE_PER_BONUS;
//%MidAirValue = %client.MidAir * %game.SCORE_PER_MIDAIR;
//%KillStreakBonusValue = %client.KillStreakBonus * %game.SCORE_PER_KILLSTREAKBONUS;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
//if the client is not an observer, send the message
if ( % client . team ! = 0 )
2021-06-02 13:16:13 -04:00
{
2019-11-20 14:43:50 -05:00
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) { // <tab:15,235,340,415,500>\%5\%1\%2\%3\tBG'
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < tab : 20 , 450 > \ t < clip : 115 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 225 > < just : right > % 2 < rmargin : 300 > < just : right > % 3 < rmargin : 390 > < just : right > % 4 < rmargin : 490 > % 6 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clScore , % clKills , % clDeaths , % clStyle , % clBonus ) ;
}
else if ( % client . name $ = % cl . name ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < tab : 20 , 450 > \ t < clip : 115 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 225 > < just : right > % 2 < rmargin : 300 > < just : right > % 3 < rmargin : 390 > < just : right > % 4 < rmargin : 490 > % 6 ' ,
2021-06-02 13:16:13 -04:00
% cl . name , % clScore , % clKills , % clDeaths , % clStyle , % clBonus ) ;
2019-11-20 14:43:50 -05:00
}
else {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < tab : 20 , 450 > \ t < clip : 115 > % 1 < / clip > < rmargin : 225 > < just : right > % 2 < rmargin : 300 > < just : right > % 3 < rmargin : 390 > < just : right > % 4 < rmargin : 490 > % 6 ' ,
2021-06-02 13:16:13 -04:00
% cl . name , % clScore , % clKills , % clDeaths , % clStyle , % clBonus ) ;
2019-11-20 14:43:50 -05:00
}
}
//else for observers, create an anchor around the player name so they can be observed
else
{
2021-06-02 13:16:13 -04:00
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < tab : 20 , 450 > \ t < clip : 115 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 6 > % 1 < / a > < / clip > < rmargin : 225 > < just : right > % 2 < rmargin : 300 > < just : right > % 3 < rmargin : 390 > < just : right > % 4 < rmargin : 490 > % 7 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % clScore , % clKills , % clDeaths , % clStyle , % cl , % clBonus ) ;
}
else if ( % client . name $ = % cl . name ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < tab : 20 , 450 > \ t < clip : 115 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 6 > % 1 < / a > < / clip > < rmargin : 225 > < just : right > % 2 < rmargin : 300 > < just : right > % 3 < rmargin : 390 > < just : right > % 4 < rmargin : 490 > % 7 ' ,
2021-06-02 13:16:13 -04:00
% cl . name , % clScore , % clKills , % clDeaths , % clStyle , % cl , % clBonus ) ;
2019-11-20 14:43:50 -05:00
}
else {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' % 5 < tab : 20 , 450 > \ t < clip : 115 > < a : gamelink \ t % 6 > % 1 < / a > < / clip > < rmargin : 225 > < just : right > % 2 < rmargin : 300 > < just : right > % 3 < rmargin : 390 > < just : right > % 4 < rmargin : 490 > % 7 ' ,
2021-06-02 13:16:13 -04:00
% cl . name , % clScore , % clKills , % clDeaths , % clStyle , % cl , % clBonus ) ;
2019-11-20 14:43:50 -05:00
}
}
}
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
// Tack on the list of observers:
% observerCount = 0 ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
{
% cl = ClientGroup . getObject ( % i ) ;
if ( % cl . team = = 0 )
% observerCount + + ;
2019-03-10 12:58:05 -04:00
}
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
if ( % observerCount > 0 )
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , "" ) ;
% index + + ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 , 310 > < spush > < font : Univers Condensed : 22 > \ tOBSERVERS ( % 1 ) < rmargin : 260 > < just : right > TIME < spop > ' , % observerCount ) ;
% index + + ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
2019-03-10 12:58:05 -04:00
{
2019-11-20 14:43:50 -05:00
% cl = ClientGroup . getObject ( % i ) ;
//if this is an observer
if ( % cl . team = = 0 )
2019-03-16 15:19:20 -04:00
{
2019-11-20 14:43:50 -05:00
% obsTime = getSimTime ( ) - % cl . observerStartTime ;
% obsTimeStr = % game . formatTime ( % obsTime , false ) ;
2021-06-02 13:16:13 -04:00
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % obsTimeStr ) ;
}
else if ( % client . name $ = % cl . name ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' ,
2019-11-20 14:43:50 -05:00
% cl . name , % obsTimeStr ) ;
}
else {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' ,
2021-06-02 13:16:13 -04:00
% cl . name , % obsTimeStr ) ;
2019-11-20 14:43:50 -05:00
}
% index + + ;
2019-03-16 15:19:20 -04:00
}
2019-03-10 12:58:05 -04:00
}
}
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
//clear the rest of Hud so we don't get old lines hanging around...
messageClient ( % client , ' ClearHud ' , "" , % tag , % index ) ;
2019-11-24 14:34:05 -05:00
}
2019-11-20 14:43:50 -05:00
function LakRabbitHud ( % game , % client , % tag ) {
2019-03-12 20:10:12 -04:00
if ( % client . viewStats & & $ dtStats : : enableRefresh ) {
statsMenu ( % client , % game . class ) ;
return ;
}
else if ( % client . viewStats & & ! $ dtStats : : enableRefresh ) {
return ;
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
//tricky stuff here... use two columns if we have more than 15 clients...
% numClients = $ TeamRank [ 0 , count ] ;
if ( % numClients > $ ScoreHudMaxVisible )
% numColumns = 2 ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
// Clear the header:
messageClient ( % client , ' SetScoreHudHeader ' , "" , "" ) ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
// Send subheader:
if ( % numColumns = = 2 )
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < tab : 5 , 155 , 225 , 305 , 455 , 525 > \ tPLAYER \ tSCORE \ tTIME \ tPLAYER \ tSCORE \ tTIME ' ) ;
else
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < tab : 15 , 235 , 335 > \ tPLAYER \ tSCORE \ tTIME ' ) ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
//recalc the score for whoever is holding the flag
if ( isObject ( $ AIRabbitFlag . carrier ) )
% game . recalcScore ( $ AIRabbitFlag . carrier . client ) ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
% countMax = % numClients ;
if ( % countMax > ( 2 * $ ScoreHudMaxVisible ) )
2019-03-10 12:58:05 -04:00
{
2019-03-12 20:10:12 -04:00
if ( % countMax & 1 )
% countMax + + ;
% countMax = % countMax / 2 ;
}
else if ( % countMax > $ ScoreHudMaxVisible )
% countMax = $ ScoreHudMaxVisible ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
for ( % index = 0 ; % index < % countMax ; % index + + )
{
//get the client info
% col1Client = $ TeamRank [ 0 , % index ] ;
% col1ClientScore = % col1Client . score $ = "" ? 0 : % col1Client . score ;
% col1Style = "" ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
if ( isObject ( % col1Client . player . holdingFlag ) )
2019-03-10 12:58:05 -04:00
{
2019-03-12 20:10:12 -04:00
% col1ClientTimeMS = % col1Client . flagTimeMS + getSimTime ( ) - % col1Client . startTime ;
% col1Style = "<color:00dc00>" ;
}
else
{
% col1ClientTimeMS = % col1Client . flagTimeMS ;
if ( % col1Client = = % client )
% col1Style = "<color:dcdcdc>" ;
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
if ( % col1ClientTimeMS < = 0 )
% col1ClientTime = "" ;
else
{
% minutes = mFloor ( % col1ClientTimeMS / ( 60 * 1000 ) ) ;
if ( % minutes < = 0 )
% minutes = "0" ;
% seconds = mFloor ( % col1ClientTimeMS / 1000 ) % 60 ;
if ( % seconds < 10 )
% seconds = "0" @ % seconds ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
% col1ClientTime = % minutes @ ":" @ % seconds ;
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
//see if we have two columns
if ( % numColumns = = 2 )
{
% col2Client = "" ;
% col2ClientScore = "" ;
% col2ClientTime = "" ;
% col2Style = "" ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
//get the column 2 client info
% col2Index = % index + % countMax ;
if ( % col2Index < % numClients )
{
% col2Client = $ TeamRank [ 0 , % col2Index ] ;
% col2ClientScore = % col2Client . score $ = "" ? 0 : % col2Client . score ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
if ( isObject ( % col2Client . player . holdingFlag ) )
{
% col2ClientTimeMS = % col2Client . flagTimeMS + getSimTime ( ) - % col2Client . startTime ;
% col2Style = "<color:00dc00>" ;
}
else
{
% col2ClientTimeMS = % col2Client . flagTimeMS ;
if ( % col2Client = = % client )
% col2Style = "<color:dcdcdc>" ;
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
if ( % col2ClientTimeMS < = 0 )
% col2ClientTime = "" ;
else
{
% minutes = mFloor ( % col2ClientTimeMS / ( 60 * 1000 ) ) ;
if ( % minutes < = 0 )
% minutes = "0" ;
% seconds = mFloor ( % col2ClientTimeMS / 1000 ) % 60 ;
if ( % seconds < 10 )
% seconds = "0" @ % seconds ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
% col2ClientTime = % minutes @ ":" @ % seconds ;
}
}
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
//if the client is not an observer, send the message
if ( % client . team ! = 0 )
{
if ( % numColumns = = 2 ) {
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
if ( % col1Client . name ! $ = "" & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > < a : gamelink \ tS \ tView \ t % 4 > + < / a > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2019-03-12 20:10:12 -04:00
else if ( % col1Client . name ! $ = "" & & % col2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2019-03-12 20:10:12 -04:00
else if ( % col1Client . name $ = "" & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > < a : gamelink \ tS \ tView \ t % 4 > + < / a > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2019-03-12 20:10:12 -04:00
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
}
else {
2020-08-24 18:02:35 -04:00
if ( % col1Client . name $ = % client . name & & % col2Client . name ! $ = "" ) //<a:gamelink\tS\tView\t%4>+</a>
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2020-08-24 18:02:35 -04:00
else if ( % col1Client . name ! $ = "" & & % col2Client . name $ = % client . name ) //<a:gamelink\tS\tView\t%4>+</a>
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > < a : gamelink \ tS \ tView \ t % 4 > + < / a > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2019-03-12 20:10:12 -04:00
else if ( % col1Client . name $ = % client . name & & % col2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2019-03-12 20:10:12 -04:00
else if ( % col1Client . name $ = "" & & % col2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > < a : gamelink \ tS \ tView \ t % 4 > + < / a > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2019-03-12 20:10:12 -04:00
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > % 1 < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > % 8 < just : left > % 4 < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col2Client . name , % col2ClientScore , % col2ClientTime , % col1Style , % col2Style ) ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
}
}
else {
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
if ( % col1Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 > % 4 \ t < clip : 200 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 280 > < just : right > % 2 < rmargin : 375 > < just : right > % 3 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col1Style ) ;
2019-03-12 20:10:12 -04:00
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 > % 4 \ t < clip : 200 > % 1 < / clip > < rmargin : 280 > < just : right > % 2 < rmargin : 375 > < just : right > % 3 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col1Style ) ;
2019-03-12 20:10:12 -04:00
}
else {
if ( % col1Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 > % 4 \ t < clip : 200 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 280 > < just : right > % 2 < rmargin : 375 > < just : right > % 3 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col1Style ) ;
2019-03-12 20:10:12 -04:00
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 > % 4 \ t < clip : 200 > % 1 < / clip > < rmargin : 280 > < just : right > % 2 < rmargin : 375 > < just : right > % 3 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col1Style ) ;
2019-03-12 20:10:12 -04:00
}
}
}
//else for observers, create an anchor around the player name so they can be observed
else
{
if ( % numColumns = = 2 )
{
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
//this is really crappy, but I need to save 1 tag - can only pass in up to %9, %10 doesn't work...
2020-08-24 18:02:35 -04:00
if ( % col2Style $ = "<color:00dc00>" ) //<a:gamelink\tS\tView\t%1>+</a>
2019-03-12 20:10:12 -04:00
{
if ( % col1Client . name ! $ = "" & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name ! $ = "" & & % col2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = "" & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
}
else if ( % col2Style $ = "<color:dcdcdc>" )
{
if ( % col1Client . name ! $ = "" & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name ! $ = "" & & % col2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = "" & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
}
else
{
if ( % col1Client . name ! $ = "" & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name ! $ = "" & & % col2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = "" & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
}
}
else { /////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
if ( % col2Style $ = "<color:00dc00>" ) //<a:gamelink\tS\tView\t%1>+</a><a:gamelink\tS\tView\t%4>+</a>
2019-03-12 20:10:12 -04:00
{
if ( % col1Client . name $ = % client . name & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name ! $ = "" & & % col2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = % client . name & & % col2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = "" & & % col2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
}
2020-08-24 18:02:35 -04:00
else if ( % col2Style $ = "<color:dcdcdc>" ) //<a:gamelink\tS\tView\t%4>+</a>
2019-03-12 20:10:12 -04:00
{
if ( % col1Client . name $ = % client . name & & % col2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name ! $ = "" & & % col2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = % client . name & & % col2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = "" & & % col2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < color : 00d c00 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
}
else
{
2020-08-24 18:02:35 -04:00
if ( % col1Client . name $ = % client . name & & % col2Client . name ! $ = "" ) //<a:gamelink\tS\tView\t%4>+</a>
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
2020-08-24 18:02:35 -04:00
else if ( % col1Client . name ! $ = "" & & % col2Client . name $ = % client . name ) //<a:gamelink\tS\tView\t%4>+</a>
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = % client . name & & % col2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else if ( % col1Client . name $ = "" & & % col2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ tS \ tView \ t % 4 > + < / a > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 > < spush > % 7 \ t < clip : 150 > < a : gamelink \ t % 8 > % 1 < / a > < / clip > < rmargin : 205 > < just : right > % 2 < rmargin : 270 > < just : right > % 3 < spop > < rmargin : 505 > < lmargin : 310 > < just : left > < clip : 150 > < a : gamelink \ t % 9 > % 4 < / a > < / clip > < rmargin : 505 > < just : right > % 5 < rmargin : 570 > < just : right > % 6 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime ,
% col2Client . name , % col2ClientScore , % col2ClientTime ,
2019-03-12 20:10:12 -04:00
% col1Style , % col1Client , % col2Client ) ;
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
}
}
else {
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
if ( % col1Client . name ! $ = "" ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 > % 4 \ t < clip : 200 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 5 > % 1 < / a > < / clip > < rmargin : 280 > < just : right > % 2 < rmargin : 375 > < just : right > % 3 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col1Style , % col1Client ) ;
2019-03-12 20:10:12 -04:00
}
else {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 > % 4 \ t < clip : 200 > < a : gamelink \ t % 5 > % 1 < / a > < / clip > < rmargin : 280 > < just : right > % 2 < rmargin : 375 > < just : right > % 3 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col1Style , % col1Client ) ;
2019-03-12 20:10:12 -04:00
}
}
else {
if ( % col1Client . name $ = % client . name ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 > % 4 \ t < clip : 200 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > < a : gamelink \ t % 5 > % 1 < / a > < / clip > < rmargin : 280 > < just : right > % 2 < rmargin : 375 > < just : right > % 3 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col1Style , % col1Client ) ;
2019-03-12 20:10:12 -04:00
}
else {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 > % 4 \ t < clip : 200 > < a : gamelink \ t % 5 > % 1 < / a > < / clip > < rmargin : 280 > < just : right > % 2 < rmargin : 375 > < just : right > % 3 ' ,
2019-03-16 15:19:20 -04:00
% col1Client . name , % col1ClientScore , % col1ClientTime , % col1Style , % col1Client ) ;
2019-03-12 20:10:12 -04:00
}
}
}
}
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
// Tack on the list of observers:
% observerCount = 0 ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
{
% cl = ClientGroup . getObject ( % i ) ;
if ( % cl . team = = 0 )
% observerCount + + ;
}
2021-06-02 13:16:13 -04:00
if ( % observerCount > 0 )
2019-03-12 20:10:12 -04:00
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , "" ) ;
% index + + ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 , 310 > < spush > < font : Univers Condensed : 22 > \ tOBSERVERS ( % 1 ) < rmargin : 260 > < just : right > TIME < spop > ' , % observerCount ) ;
% index + + ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
{
% cl = ClientGroup . getObject ( % i ) ;
//if this is an observer
if ( % cl . team = = 0 )
{
% obsTime = getSimTime ( ) - % cl . observerStartTime ;
2020-08-24 18:02:35 -04:00
% obsTimeStr = % game . formatTime ( % obsTime , false ) ; //<a:gamelink\tS\tView\t%3>+</a>
2019-03-12 20:10:12 -04:00
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' ,
2019-03-16 15:19:20 -04:00
% cl . name , % obsTimeStr ) ;
2019-03-12 20:10:12 -04:00
}
else if ( % client . name $ = % cl . name ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 1 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' ,
2019-03-16 15:19:20 -04:00
% cl . name , % obsTimeStr ) ;
2019-03-12 20:10:12 -04:00
}
else {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' ,
2019-03-16 15:19:20 -04:00
% cl . name , % obsTimeStr ) ;
2019-03-12 20:10:12 -04:00
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
% index + + ;
}
}
}
2021-06-02 13:16:13 -04:00
2019-03-12 20:10:12 -04:00
//clear the rest of Hud so we don't get old lines hanging around...
messageClient ( % client , ' ClearHud ' , "" , % tag , % index ) ;
}
2020-08-24 18:02:35 -04:00
function CTFHud ( % game , % client , % tag ) { // defaultGame/evo
2019-04-01 16:02:48 -04:00
if ( % client . viewStats & & $ dtStats : : enableRefresh ) {
statsMenu ( % client , % game . class ) ;
return ;
2019-03-12 20:10:12 -04:00
}
2019-04-01 16:02:48 -04:00
else if ( % client . viewStats & & ! $ dtStats : : enableRefresh ) {
return ;
2019-03-12 20:10:12 -04:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% ShowScores = ( $ Host : : TournamentMode | | $ Host : : ShowIngamePlayerScores ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( Game . numTeams > 1 )
{
// Send header:
messageClient ( % client , ' SetScoreHudHeader ' , "" , ' < tab : 15 , 315 > \ t % 1 < rmargin : 260 > < just : right > % 2 < rmargin : 560 > < just : left > \ t % 3 < just : right > % 4 ' , % game . getTeamName ( 1 ) , $ TeamScore [ 1 ] , % game . getTeamName ( 2 ) , $ TeamScore [ 2 ] ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( ! $ TeamRank [ 1 , count ] )
{
$ TeamRank [ 1 , count ] = 0 ;
2019-03-12 20:10:12 -04:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( ! $ TeamRank [ 2 , count ] )
{
$ TeamRank [ 2 , count ] = 0 ;
2019-03-12 20:10:12 -04:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
for ( % count = 0 ; % count < = Game . numteams ; % count + + )
{
% Ping [ % count ] = 0 ;
% PingSq [ % count ] = 0 ;
% PingCount [ % count ] = 0 ;
2019-03-12 20:10:12 -04:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
for ( % ClientCount = ClientGroup . getCount ( ) - 1 ; % ClientCount > = 0 ;
% ClientCount - - )
{
% ThisClient = ClientGroup . getObject ( % ClientCount ) ;
% Team = % ThisClient . team ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% PingVal = % ThisClient . getPing ( ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% Ping [ % Team ] + = % PingVal ;
% PingSq [ % Team ] + = ( % PingVal * % PingVal ) ;
% PingCount [ % Team ] + + ;
2019-03-12 20:10:12 -04:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
for ( % count = 0 ; % count < = % game . numteams ; % count + + )
{
if ( % PingCount [ % count ] )
{
% Ping [ % count ] / = % PingCount [ % count ] ;
% PingSq [ % count ] / = % PingCount [ % count ] ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% PingSq [ % count ] = msqrt ( % PingSq [ % count ] - ( % Ping [ % count ] * % Ping [ % count ] ) ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% Ping [ % count ] = mfloor ( % Ping [ % count ] ) ;
% PingSq [ % count ] = mfloor ( % PingSq [ % count ] ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% PingString [ % count ] = "<spush><font:Arial:14>P<font:Arial:12>ING: " @ % Ping [ % count ] @ " +/- " @ % PingSq [ % count ] @ "ms <spop>" ;
}
2019-03-12 20:10:12 -04:00
}
2019-04-01 16:02:48 -04:00
messageClient ( % client , ' SetScoreHudSubheader ' , "" ,
2020-03-15 15:34:27 -04:00
' < tab : 15 , 314 > \ tPLAYERS ( % 1 ) < rmargin : 265 > < clip : 100 > < just : right > % 4 < / clip > % 3 < rmargin : 565 > < just : left > \ tPLAYERS ( % 2 ) < clip : 100 > < just : right > % 5 < / clip > % 3 ' , $ TeamRank [ 1 , count ] , $ TeamRank [ 2 , count ] , ( % ShowScores ? ' SCORE ':' ' ) , % PingString [ 1 ] , % PingString [ 2 ] ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% index = 0 ;
while ( true )
{
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( % index > = $ TeamRank [ 1 , count ] + 2 & & % index > = $ TeamRank [ 2 , count ] + 2 )
break ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
//get the team1 client info
% team1Client = "" ;
% team1ClientScore = "" ;
% col1Style = "" ;
if ( % index < $ TeamRank [ 1 , count ] )
{
% team1Client = $ TeamRank [ 1 , % index ] ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( ! $ Host : : TournamentMode & & ! $ Host : : ShowIngamePlayerScores & & % team1Client . score > = 0 )
% team1ClientScore = 0 ;
else
% team1ClientScore = % team1Client . score $ = "" ? 0 : % team1Client . score ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% col1Style = % team1Client = = % client ? "<color:dcdcdc>" : "" ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( ! $ Host : : TournamentMode & & ! $ Host : : ShowIngamePlayerScores )
% team1playersTotalScore = 0 ;
else
% team1playersTotalScore + = % team1Client . score ;
}
else if ( % index = = $ teamRank [ 1 , count ] & & $ teamRank [ 1 , count ] ! = 0 & & % game . class $ = "CTFGame" )
{
% team1ClientScore = "--------------" ;
}
else if ( % index = = $ teamRank [ 1 , count ] + 1 & & $ teamRank [ 1 , count ] ! = 0 & & % game . class $ = "CTFGame" )
{
if ( ! $ Host : : TournamentMode & & ! $ Host : : ShowIngamePlayerScores )
% team1ClientScore = 0 ;
else
% team1ClientScore = % team1playersTotalScore ! = 0 ? % team1playersTotalScore : 0 ;
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
//get the team2 client info
% team2Client = "" ;
% team2ClientScore = "" ;
% col2Style = "" ;
if ( % index < $ TeamRank [ 2 , count ] )
{
% team2Client = $ TeamRank [ 2 , % index ] ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( ! $ Host : : TournamentMode & & ! $ Host : : ShowIngamePlayerScores & & % team2Client . score > = 0 )
% team2ClientScore = 0 ;
else
% team2ClientScore = % team2Client . score $ = "" ? 0 : % team2Client . score ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% col2Style = % team2Client = = % client ? "<color:dcdcdc>" : "" ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( ! $ Host : : TournamentMode & & ! $ Host : : ShowIngamePlayerScores )
% team2playersTotalScore = 0 ;
else
% team2playersTotalScore + = % team2Client . score ;
}
else if ( % index = = $ teamRank [ 2 , count ] & & $ teamRank [ 2 , count ] ! = 0 & & % game . class $ = "CTFGame" )
{
% team2ClientScore = "--------------" ;
}
else if ( % index = = $ teamRank [ 2 , count ] + 1 & & $ teamRank [ 2 , count ] ! = 0 & & % game . class $ = "CTFGame" )
{
if ( ! $ Host : : TournamentMode & & ! $ Host : : ShowIngamePlayerScores )
% team2ClientScore = 0 ;
else
% team2ClientScore = % team2playersTotalScore ! = 0 ? % team2playersTotalScore : 0 ;
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( ! % ShowScores )
{
% team1ClientScore = ' ' ;
% team2ClientScore = ' ' ;
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
if ( % client . team ! = 0 ) { //if the client is not an observer, send the message
if ( % team1Client . name ! $ = "" & & % team2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ tS \ tView \ t % 7 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ tS \ tView \ t % 8 > + < / a > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name ! $ = "" & & % team2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ tS \ tView \ t % 7 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name $ = "" & & % team2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ tS \ tView \ t % 8 > + < / a > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
}
else { //else for observers, create an anchor around the player name so they can be observed
//messageClient(%client, 'SetLineHud', "", %tag, %index, '<tab:0,300>\t<spush>%5<clip:200><a:gamelink\t%7> %1</a></clip><rmargin:260><just:right>%2<spop><rmargin:560><just:left>\t%6<clip:200><a:gamelink\t%8> %3</a></clip><just:right>%4', %team1Client.name, %team1ClientScore, %team2Client.name, %team2ClientScore, %col1Style, %col2Style, %team1Client, %team2Client);
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( % team1Client . name ! $ = "" & & % team2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ tS \ tView \ t % 7 > + < / a > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ tS \ tView \ t % 8 > + < / a > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name ! $ = "" & & % team2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ tS \ tView \ t % 7 > + < / a > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name $ = "" & & % team2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ tS \ tView \ t % 8 > + < / a > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
}
}
else {
if ( % client . team ! = 0 ) {
if ( % team1Client . name $ = % client . name & & % team2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ tS \ tView \ t % 7 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name ! $ = "" & & % team2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ tS \ tView \ t % 8 > + < / a > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name $ = % client . name & & % team2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ tS \ tView \ t % 7 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name $ = "" & & % team2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ tS \ tView \ t % 8 > + < / a > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > % 3 < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
}
else { //else for observers, create an anchor around the player name so they can be observed
//messageClient(%client, 'SetLineHud', "", %tag, %index, '<tab:0,300>\t<spush>%5<clip:200><a:gamelink\t%7> %1</a></clip><rmargin:260><just:right>%2<spop><rmargin:560><just:left>\t%6<clip:200><a:gamelink\t%8> %3</a></clip><just:right>%4', %team1Client.name, %team1ClientScore, %team2Client.name, %team2ClientScore, %col1Style, %col2Style, %team1Client, %team2Client);
if ( % team1Client . name $ = % client . name & & % team2Client . name ! $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ tS \ tView \ t % 7 > + < / a > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name ! $ = "" & & % team2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
mssageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ tS \ tView \ t % 8 > + < / a > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name $ = % client . name & & % team2Client . name $ = "" )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ tS \ tView \ t % 7 > + < / a > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else if ( % team1Client . name $ = "" & & % team2Client . name $ = % client . name )
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ tS \ tView \ t % 8 > + < / a > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style , % team1Client , % team2Client ) ;
2019-04-01 16:02:48 -04:00
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 0 , 300 > \ t < spush > % 5 < clip : 200 > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 200 > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % team1Client . name , % team1ClientScore , % team2Client . name , % team2ClientScore , % col1Style , % col2Style ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
}
% index + + ;
2019-03-12 20:10:12 -04:00
}
2019-03-10 12:58:05 -04:00
}
2019-04-01 16:02:48 -04:00
else
{
//tricky stuff here... use two columns if we have more than 15 clients...
% numClients = $ TeamRank [ 0 , count ] ;
if ( % numClients > $ ScoreHudMaxVisible )
% numColumns = 2 ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
// Clear header:
messageClient ( % client , ' SetScoreHudHeader ' , "" , "" ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
// Send header:
if ( % numColumns = = 2 )
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < tab : 15 , 315 > \ tPLAYER < rmargin : 270 > < just : right > % 1 < rmargin : 570 > < just : left > \ tPLAYER < just : right > % 1 ' , ( % ShowScores ? ' SCORE ':' ' ) ) ;
else
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < tab : 15 > \ tPLAYER < rmargin : 270 > < just : right > % 1 ' , ( % ShowScores ? ' SCORE ':' ' ) ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% countMax = % numClients ;
if ( % countMax > ( 2 * $ ScoreHudMaxVisible ) )
{
if ( % countMax & 1 )
% countMax + + ;
% countMax = % countMax / 2 ;
2019-03-10 12:58:05 -04:00
}
2019-04-01 16:02:48 -04:00
else if ( % countMax > $ ScoreHudMaxVisible )
% countMax = $ ScoreHudMaxVisible ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
for ( % index = 0 ; % index < % countMax ; % index + + )
{
//get the client info
% col1Client = $ TeamRank [ 0 , % index ] ;
% col1ClientScore = % col1Client . score $ = "" ? 0 : % col1Client . score ;
% col1Style = % col1Client = = % client ? "<color:dcdcdc>" : "" ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
//see if we have two columns
if ( % numColumns = = 2 )
{
% col2Client = "" ;
% col2ClientScore = "" ;
% col2Style = "" ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
//get the column 2 client info
% col2Index = % index + % countMax ;
if ( % col2Index < % numClients )
{
% col2Client = $ TeamRank [ 0 , % col2Index ] ;
% col2ClientScore = % col2Client . score $ = "" ? 0 : % col2Client . score ;
% col2Style = % col2Client = = % client ? "<color:dcdcdc>" : "" ;
}
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( ! % ShowScores )
{
% col1ClientScore = "" ;
% col2ClientScore = "" ;
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
//if the client is not an observer, send the message
if ( % client . team ! = 0 )
{
if ( % numColumns = = 2 )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 25 , 325 > \ t < spush > % 5 < clip : 195 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 195 > % 3 < / clip > < just : right > % 4 ' , % col1Client . name , % col1ClientScore , % col2Client . name , % col2ClientScore , % col1Style , % col2Style ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 25 > \ t % 3 < clip : 195 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' , % col1Client . name , % col1ClientScore , % col1Style ) ;
}
//else for observers, create an anchor around the player name so they can be observed
else
{
if ( % numColumns = = 2 )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 25 , 325 > \ t < spush > % 5 < clip : 195 > < a : gamelink \ t % 7 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 < spop > < rmargin : 560 > < just : left > \ t % 6 < clip : 195 > < a : gamelink \ t % 8 > % 3 < / a > < / clip > < just : right > % 4 ' , % col1Client . name , % col1ClientScore , % col2Client . name , % col2ClientScore , % col1Style , % col2Style , % col1Client , % col2Client ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 25 > \ t % 3 < clip : 195 > < a : gamelink \ t % 4 > % 1 < / a > < / clip > < rmargin : 260 > < just : right > % 2 ' , % col1Client . name , % col1ClientScore , % col1Style , % col1Client ) ;
2019-03-10 12:58:05 -04:00
}
}
2021-06-02 13:16:13 -04:00
2019-03-10 12:58:05 -04:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
// Tack on the list of observers:
% observerCount = 0 ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
{
% cl = ClientGroup . getObject ( % i ) ;
if ( % cl . team = = 0 )
% observerCount + + ;
2019-03-10 12:58:05 -04:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
if ( % observerCount > 0 )
{
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , "" ) ;
% index + + ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 10 , 310 > < spush > < font : Univers Condensed : 22 > \ tOBSERVERS ( % 1 ) < rmargin : 260 > < just : right > TIME < spop > ' , % observerCount ) ;
% index + + ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + )
{
2019-11-20 14:43:50 -05:00
% cl = ClientGroup . getObject ( % i ) ;
//if this is an observer
if ( % cl . team = = 0 )
2019-04-01 16:02:48 -04:00
{
2019-11-20 14:43:50 -05:00
% obsTime = getSimTime ( ) - % cl . observerStartTime ;
% obsTimeStr = % game . formatTime ( % obsTime , false ) ;
if ( % client . isAdmin | | % client . isSuperAdmin | | ! $ dtStats : : viewSelf ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 3 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' , % cl . name , % obsTimeStr , % cl ) ;
2019-04-01 16:02:48 -04:00
}
2019-11-20 14:43:50 -05:00
else if ( % cl = = % client ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > < a : gamelink \ tS \ tView \ t % 3 > + < / a > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' , % cl . name , % obsTimeStr , % cl ) ;
2019-04-01 16:02:48 -04:00
}
2019-11-20 14:43:50 -05:00
else {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index , ' < tab : 20 , 310 > \ t < clip : 150 > % 1 < / clip > < rmargin : 260 > < just : right > % 2 ' , % cl . name , % obsTimeStr ) ;
2019-04-01 16:02:48 -04:00
}
2019-11-20 14:43:50 -05:00
% index + + ;
2019-04-01 16:02:48 -04:00
}
}
2019-03-10 12:58:05 -04:00
}
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
//clear the rest of Hud so we don't get old lines hanging around...
messageClient ( % client , ' ClearHud ' , "" , % tag , % index ) ;
2019-03-10 12:58:05 -04:00
}
2019-04-01 16:02:48 -04:00
function dtStatsMissionDropReady ( % game , % client ) { // called when client has finished loading
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { error ( "dtStatsMissionDropReady GUID = " SPC % client . guid ) ; }
2020-08-24 18:02:35 -04:00
if ( $ HostGamePlayerCount > $ dtServer : : maxPlayers [ cleanMapName ( $ CurrentMission ) , % game . class ] )
$ dtServer : : maxPlayers [ cleanMapName ( $ CurrentMission ) , % game . class ] = $ HostGamePlayerCount ;
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
% client . lp = "" ; //last position for distMove
2020-03-05 01:51:16 -05:00
% client . lgame = % game . class ;
2019-07-08 16:03:39 -04:00
% foundOld = 0 ;
2020-02-28 16:37:29 -05:00
% mrx = setGUIDName ( % client ) ; // make sure we have a guid if not make one
2020-08-24 18:02:35 -04:00
% authInfo = % client . getAuthInfo ( ) ;
% realName = getField ( % authInfo , 0 ) ;
if ( % realName ! $ = "" )
% name = % realName ;
2021-06-02 13:16:13 -04:00
else
2020-12-01 11:14:20 -05:00
% name = stripChars ( detag ( getTaggedString ( % client . name ) ) , "\cp\co\c6\c7\c8\c9\c0" ) ;
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
if ( ! isObject ( % client . dtStats ) ) {
for ( % i = 0 ; % i < statsGroup . getCount ( ) ; % i + + ) { // check to see if my old data is still there
2019-04-01 16:02:48 -04:00
% dtStats = statsGroup . getObject ( % i ) ;
2020-08-24 18:02:35 -04:00
if ( % dtStats . guid = = % client . guid ) {
% foundOld = 1 ;
2019-07-08 16:03:39 -04:00
% client . dtStats = % dtStats ;
% dtStats . client = % client ;
% dtStats . clientLeft = 0 ;
% dtStats . markForDelete = 0 ;
2020-08-24 18:02:35 -04:00
if ( % dtStats . leftID = = $ dtStats : : leftID )
$ dtServer : : mapReconnects [ cleanMapName ( $ CurrentMission ) , % game . class ] + + ;
if ( isGameRun ( ) & & % dtStats . leftID = = $ dtStats : : leftID & & % dtStats . score ! = 0 ) // make sure game is running and we are on the same map
resGameStats ( % client , % game . class ) ; // restore stats;
else
resetDtStats ( % dtStats , % game . class , 1 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % client . score ! = 0 )
2019-07-08 16:03:39 -04:00
messageClient ( % client , ' MsgClient ' , ' \ crWelcome back % 1. Your score has been restored . ~ wfx / misc / rolechange . wav ' , % client . name ) ;
break ;
2019-04-01 16:02:48 -04:00
}
}
2020-02-28 16:37:29 -05:00
if ( ! % foundOld ) {
2019-04-01 16:02:48 -04:00
% dtStats = new scriptObject ( ) ; // object used stats storage
statsGroup . add ( % dtStats ) ;
% client . dtStats = % dtStats ;
% dtStats . client = % client ;
% dtStats . guid = % client . guid ;
% dtStats . clientLeft = 0 ;
% dtStats . markForDelete = 0 ;
2020-08-24 18:02:35 -04:00
% dtStats . name = % name ;
}
}
2021-06-02 13:16:13 -04:00
else
% dtStats = % client . dtStats ;
2021-01-07 12:15:23 -05:00
2022-12-06 16:15:26 -05:00
% dtStats . skin = getTaggedString ( % client . skin ) ;
% dtStats . race = % client . race ;
% dtStats . sex = % client . sex ;
% dtStats . voice = % client . voice ;
2021-06-02 13:16:13 -04:00
% dtStats . joinPCT = ( isGameRun ( ) = = 1 ) ? % game . getGamePct ( ) : 0 ;
2021-05-06 15:01:41 -04:00
updateTeamTime ( % dtStats , - 1 ) ;
% dtStats . team = % client . team ; // should be 0
2020-08-24 18:02:35 -04:00
if ( isObject ( % dtStats ) & & % dtStats . gameData [ % game . class ] ! = 1 ) { // game type change
% dtStats . gameStats [ "totalGames" , "g" , % game . class ] = 0 ;
% dtStats . gameStats [ "statsOverWrite" , "g" , % game . class ] = - 1 ;
% dtStats . gameStats [ "fullSet" , "g" , % game . class ] = 0 ;
resetDtStats ( % dtStats , % game . class , 1 ) ;
if ( ! $ dtStats : : loadAfter | | ! isGameRun ( ) )
loadGameStats ( % dtStats , % game . class ) ;
else
% dtStats . gameData [ % game . class ] = 0 ;
2020-02-28 16:37:29 -05:00
}
2019-03-10 12:58:05 -04:00
}
2020-08-24 18:02:35 -04:00
function dtStatsClientLeaveGame ( % client ) {
2021-06-08 01:18:55 -04:00
$ dtServerVars : : lastPlayerCount = $ HostGamePlayerCount - $ HostGameBotCount ;
2022-04-10 14:41:30 -04:00
2020-09-02 20:23:52 -04:00
if ( isGameRun ( ) ) { // if they dc during game over dont count it
2020-08-24 18:02:35 -04:00
$ dtServer : : mapDisconnects [ cleanMapName ( $ CurrentMission ) , Game . class ] + + ;
if ( % client . score ! = 0 )
$ dtServer : : mapDisconnectsScore [ cleanMapName ( $ CurrentMission ) , Game . class ] + + ;
2021-06-02 13:16:13 -04:00
}
2022-04-10 14:41:30 -04:00
2020-02-28 16:37:29 -05:00
if ( isObject ( % client . dtStats ) ) {
2019-04-01 16:02:48 -04:00
% client . dtStats . clientLeft = 1 ;
2020-08-24 18:02:35 -04:00
% client . dtStats . leftTime = getSimTime ( ) ;
% client . dtStats . leftID = $ dtStats : : leftID ;
2021-06-05 01:26:40 -04:00
% client . dtStats . leftPCT = Game . getGamePct ( ) ;
2020-08-24 18:02:35 -04:00
if ( isObject ( Game ) & & isGameRun ( ) & & % client . score ! = 0 )
bakGameStats ( % client , Game . class ) ; //back up there current game in case they lost connection
2019-03-12 20:10:12 -04:00
}
2019-03-10 12:58:05 -04:00
}
2019-04-01 16:02:48 -04:00
function dtStatsGameOver ( % game ) {
2021-06-02 12:55:33 -04:00
if ( $ dtStats : : debugEchos ) { error ( "dtStatsGameOver" ) ; }
2020-08-24 18:02:35 -04:00
$ dtStats : : serverHang = $ dtStats : : hostHang = 0 ;
2021-06-02 13:16:13 -04:00
$ dtStats : : LastMissionDN = $ MissionDisplayName ;
2020-03-17 18:27:09 -04:00
$ dtStats : : LastMissionCM = $ CurrentMission ;
2020-08-24 18:02:35 -04:00
$ dtStats : : LastGameType = % game . class ;
2021-06-02 12:55:33 -04:00
if ( % game . getGamePct ( ) > 90 ) {
2020-08-24 18:02:35 -04:00
$ dtServer : : playCount [ cleanMapName ( $ CurrentMission ) , % game . class ] + + ;
2020-10-20 18:09:49 -04:00
$ dtServer : : lastPlay [ cleanMapName ( $ CurrentMission ) , % game . class ] = getDayNum ( ) TAB getYear ( ) TAB formattimestring ( "mm/dd/yy hh:nn:a" ) ;
2020-08-24 18:02:35 -04:00
}
else
$ dtServer : : skipCount [ cleanMapName ( $ CurrentMission ) , % game . class ] + + ;
2021-06-02 12:55:33 -04:00
if ( ! $ dtStats : : statsSave ) { //in case of admin skip map and it has not finished saving the old map
$ dtStats : : statsSave = 1 ;
statsGroup . firstKill = 0 ;
if ( $ dtStats : : debugEchos ) { error ( "dtStatsGameOver2" ) ; }
if ( % game . class $ = "CTFGame" | | % game . class $ = "SCtFGame" | | % game . class $ = "ArenaGame" ) {
statsGroup . team [ 1 ] = $ teamScore [ 1 ] ;
2021-06-02 13:16:13 -04:00
statsGroup . team [ 2 ] = $ teamScore [ 2 ] ;
2021-06-02 12:55:33 -04:00
}
% timeNext = 0 ;
% time = 2000 ;
for ( % i = 0 ; % i < statsGroup . getCount ( ) ; % i + + ) { // see if we have any old clients data
% dtStats = statsGroup . getObject ( % i ) ;
if ( % dtStats . clientLeft | | ! isObject ( % dtStats . client ) ) { // find any that left during the match and
% dtStats . markForDelete = 1 ;
2021-06-02 13:16:13 -04:00
% game . postGameStats ( % dtStats ) ; // note bakGame was called when they left
% time + = $ dtStats : : slowSaveTime ;
2021-06-02 12:55:33 -04:00
schedule ( % time , 0 , "incGameStats" , % dtStats , % game . class ) ;
2021-06-02 13:16:13 -04:00
% time + = $ dtStats : : slowSaveTime ;
schedule ( % time , 0 , "saveGameTotalStats" , % dtStats , % game . class ) ;
2021-06-02 12:55:33 -04:00
}
2021-06-02 13:16:13 -04:00
else if ( isObject ( % dtStats . client ) ) { // make sure client is still a thing
2021-06-02 12:55:33 -04:00
% client = % dtStats . client ;
% client . viewMenu = % client . viewClient = % client . viewStats = 0 ; //reset hud
2021-06-02 13:16:13 -04:00
% client . lastPage = 1 ; % client . lgame = % game ;
bakGameStats ( % client , % game . class ) ; // copy over game type values before they reset
% game . postGameStats ( % dtStats ) ;
2020-08-24 18:02:35 -04:00
% time + = $ dtStats : : slowSaveTime ; // this will chain them
2021-06-02 12:55:33 -04:00
schedule ( % time , 0 , "incGameStats" , % dtStats , % game . class ) ; //resetDtStats after incGame
% time + = $ dtStats : : slowSaveTime ;
schedule ( % time , 0 , "saveGameTotalStats" , % dtStats , % game . class ) ; //
}
else {
error ( "Logic issue in dtStatsGameOver" SPC % dtStats SPC % client SPC % game . class ) ;
% dtStats . delete ( ) ;
2020-08-24 18:02:35 -04:00
}
2019-03-10 12:58:05 -04:00
}
2021-06-02 12:55:33 -04:00
% time + = $ dtStats : : slowSaveTime ;
schedule ( % time , 0 , "dtSaveDone" ) ;
2019-03-10 12:58:05 -04:00
}
2020-08-24 18:02:35 -04:00
}
function dtSaveDone ( ) {
2021-06-03 18:11:38 -04:00
$ dtStats : : statsSave = 0 ;
$ dtStats : : leftID + + ;
$ dtStats : : teamOneCapTimes = 0 ;
$ dtStats : : teamTwoCapTimes = 0 ;
2021-06-04 16:43:58 -04:00
$ dtStats : : teamOneCapCount = 0 ;
$ dtStats : : teamTwoCapCount = 0 ;
2019-03-10 12:58:05 -04:00
}
2019-04-01 16:02:48 -04:00
2019-03-12 20:10:12 -04:00
////////////////////////////////////////////////////////////////////////////////
2019-04-01 16:02:48 -04:00
// Supporting Functions //
2019-03-12 20:10:12 -04:00
////////////////////////////////////////////////////////////////////////////////
2021-06-02 13:16:13 -04:00
function DefaultGame : : postGameStats ( % game , % dtStats ) { //stats to add up at the end of the match
if ( $ dtStats : : debugEchos ) { error ( "postGameStats GUID = " SPC % dtStats . guid ) ; }
2020-08-24 18:02:35 -04:00
if ( ! isObject ( % dtStats ) )
return ;
2021-06-02 13:16:13 -04:00
% dtStats . null = getRandom ( 1 , 100 ) ;
2020-09-29 13:15:14 -04:00
% dtStats . kdr = % dtStats . deaths ? ( % dtStats . kills / % dtStats . deaths ) : % dtStats . kills ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% dtStats . lastKill = ( statsGroup . lastKill = = % dtStats ) ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% dtStats . totalTime = ( % dtStats . clientLeft = = 1 ) ? ( ( % dtStats . leftTime - % dtStats . joinTime ) / 1000 ) / 60 : ( ( getSimTime ( ) - % dtStats . joinTime ) / 1000 ) / 60 ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% dtStats . clientQuit = % dtStats . clientLeft = = 1 ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% dtStats . matchRunTime = ( ( getSimTime ( ) - $ missionStartTime ) / 1000 ) / 60 ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% dtStats . startPCT = % dtStats . joinPCT ;
% dtStats . endPCT = ( % dtStats . clientLeft = = 1 ) ? % dtStats . leftPCT : % game . getGamePct ( ) ;
% dtStats . gamePCT = mFloor ( % dtStats . endPCT - % dtStats . startPCT ) ;
2021-06-02 13:16:13 -04:00
% dtStats . mapSkip = ( % game . getGamePct ( ) < 99 ) ;
2021-06-02 12:55:33 -04:00
//error(%dtStats.endPCT SPC %dtStats.startPCT SPC %dtStats.gamePCT SPC %dtStats.mapSkip);
2021-06-02 13:16:13 -04:00
% dtStats . totalMA = % dtStats . discMA +
% dtStats . grenadeMA +
% dtStats . laserMA +
% dtStats . mortarMA +
% dtStats . shockMA +
% dtStats . plasmaMA +
% dtStats . blasterMA +
% dtStats . hGrenadeMA +
2020-08-24 18:02:35 -04:00
% dtStats . mineMA ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% dtStats . EVKills = % dtStats . explosionKills +
2020-08-24 18:02:35 -04:00
% dtStats . groundKills +
% dtStats . outOfBoundKills +
% dtStats . lavaKills +
% dtStats . lightningKills +
% dtStats . vehicleSpawnKills +
% dtStats . forceFieldPowerUpKills +
% dtStats . nexusCampingKills ;
2021-06-02 12:55:33 -04:00
% dtStats . EVDeaths = % dtStats . explosionDeaths +
2020-08-24 18:02:35 -04:00
% dtStats . groundDeaths +
% dtStats . outOfBoundDeaths +
% dtStats . lavaDeaths +
% dtStats . lightningDeaths +
% dtStats . vehicleSpawnDeaths +
% dtStats . forceFieldPowerUpDeaths +
% dtStats . nexusCampingDeaths ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% dtStats . totalWepDmg = % dtStats . cgDmg +
2021-06-02 12:55:33 -04:00
% dtStats . laserDmg +
% dtStats . blasterDmg +
% dtStats . elfDmg +
% dtStats . discDmg +
% dtStats . grenadeDmg +
% dtStats . hGrenadeDmg +
% dtStats . mortarDmg +
% dtStats . missileDmg +
% dtStats . plasmaDmg +
% dtStats . shockDmg +
% dtStats . mineDmg +
% dtStats . SatchelDmg ;
2021-06-02 13:16:13 -04:00
if ( % dtStats . cgShotsFired < 100 )
2020-08-24 18:02:35 -04:00
% dtStats . cgACC = 0 ;
2021-06-02 13:16:13 -04:00
if ( % dtStats . discShotsFired < 15 ) {
2020-08-24 18:02:35 -04:00
% dtStats . discACC = 0 ;
% dtStats . discDmgACC = 0 ;
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % dtStats . grenadeShotsFired < 10 ) {
% dtStats . grenadeACC = 0 ;
% dtStats . grenadeDmgACC = 0 ;
}
2021-06-02 13:16:13 -04:00
2021-01-07 12:07:21 -05:00
if ( % dtStats . laserShotsFired < 10 )
2020-08-24 18:02:35 -04:00
% dtStats . laserACC = 0 ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % dtStats . mortarShotsFired < 10 ) {
% dtStats . mortarACC = 0 ;
% dtStats . mortarDmgACC = 0 ;
}
2021-06-02 13:16:13 -04:00
2021-01-07 12:07:21 -05:00
if ( % dtStats . shockShotsFired < 10 )
2020-08-24 18:02:35 -04:00
% dtStats . shockACC = 0 ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % dtStats . plasmaShotsFired < 10 ) {
% dtStats . plasmaACC = 0 ;
% dtStats . plasmaDmgACC = 0 ;
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % dtStats . blasterShotsFired < 15 )
% dtStats . blasterACC = 0 ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % dtStats . hGrenadeShotsFired < 6 )
% dtStats . hGrenadeACC = 0 ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % dtStats . satchelShotsFired < 5 )
% dtStats . satchelACC = 0 ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % dtStats . missileShotsFired < 10 )
% dtStats . missileACC = 0 ;
2021-06-02 13:16:13 -04:00
2019-04-11 15:30:35 -04:00
if ( % game . class $ = "CTFGame" | | % game . class $ = "SCtFGame" ) {
2021-06-03 18:11:38 -04:00
% dtStats . teamOneCapTimes = $ dtStats : : teamOneCapTimes ;
% dtStats . teamTwoCapTimes = $ dtStats : : teamTwoCapTimes ;
2021-06-02 12:55:33 -04:00
% dtStats . teamScore = $ TeamScore [ % dtStats . dtTeam ] ;
2021-06-02 13:16:13 -04:00
% dtStats . destruction = % dtStats . genDestroys +
% dtStats . solarDestroys +
% dtStats . sensorDestroys +
% dtStats . turretDestroys +
2020-08-24 18:02:35 -04:00
% dtStats . IStationDestroys +
2021-06-02 13:16:13 -04:00
% dtStats . aStationDestroys +
% dtStats . VStationDestroys +
% dtStats . sentryDestroys +
% dtStats . depSensorDestroys +
2020-08-24 18:02:35 -04:00
% dtStats . client . depTurretDestroys +
2021-06-02 13:16:13 -04:00
% dtStats . depStationDestroys +
2020-08-24 18:02:35 -04:00
% dtStats . mpbtstationDestroys ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% dtStats . repairs = % dtStats . genRepairs +
2020-08-24 18:02:35 -04:00
% dtStats . SensorRepairs +
% dtStats . TurretRepairs +
% dtStats . StationRepairs +
% dtStats . VStationRepairs +
2021-06-02 13:16:13 -04:00
% dtStats . mpbtstationRepairs +
2020-08-24 18:02:35 -04:00
% dtStats . solarRepairs +
% dtStats . sentryRepairs +
2021-06-02 13:16:13 -04:00
% dtStats . depSensorRepairs +
2020-08-24 18:02:35 -04:00
% dtStats . depInvRepairs +
% dtStats . depTurretRepairs ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% dtStats . capEfficiency = ( % dtStats . flagGrabs > 0 ) ? ( % dtStats . flagCaps / % dtStats . flagGrabs ) : 0 ;
2021-01-07 12:15:23 -05:00
2020-08-24 18:02:35 -04:00
if ( statsGroup . team [ 1 ] = = statsGroup . team [ 2 ] ) {
% dtStats . winCount = 0 ;
% dtStats . lossCount = 0 ;
}
2021-06-02 12:55:33 -04:00
else if ( statsGroup . team [ 1 ] > statsGroup . team [ 2 ] & & % dtStats . dtTeam = = 1 )
2020-08-24 18:02:35 -04:00
% dtStats . winCount = 1 ;
2021-06-02 12:55:33 -04:00
else if ( statsGroup . team [ 2 ] > statsGroup . team [ 1 ] & & % dtStats . dtTeam = = 2 )
2020-08-24 18:02:35 -04:00
% dtStats . winCount = 1 ;
2021-06-02 12:55:33 -04:00
else if ( % dtStats . dtTeam > 0 )
2020-08-24 18:02:35 -04:00
% dtStats . lossCount = 1 ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% winCount = getField ( % dtStats . gameStats [ "winCountTG" , "t" , % game . class ] , 5 ) + % dtStats . winCount ;
2021-06-02 13:16:13 -04:00
% lostCount = getField ( % dtStats . gameStats [ "lossCountTG" , "t" , % game . class ] , 5 ) + % dtStats . lossCount ;
2020-08-24 18:02:35 -04:00
% lostCount = % lostCount ? % lostCount : 1 ;
% winCount = % winCount ? % winCount : 0 ;
% dtStats . winLostPct = ( % winCount / % lostCount ) ;
}
else if ( % game . class $ = "LakRabbitGame" )
2021-06-02 13:16:13 -04:00
% dtStats . flagTimeMin = ( % dtStats . flagTimeMS / 1000 ) / 60 ;
2020-09-29 13:15:14 -04:00
else if ( % game . class $ = "ArenaGame" )
2021-06-02 12:55:33 -04:00
% dtStats . teamScore = $ TeamScore [ % dtStats . dtTeam ] ;
2019-11-20 14:43:50 -05:00
}
2020-02-28 16:37:29 -05:00
2021-06-02 13:16:13 -04:00
function isGameRun ( ) { //
2020-08-24 18:02:35 -04:00
return ( ( $ MatchStarted + $ missionRunning ) = = 2 ) ? 1 : 0 ;
2019-11-20 14:43:50 -05:00
}
2020-08-24 18:02:35 -04:00
function DefaultGame : : getGamePct ( % game ) {
2021-06-02 12:55:33 -04:00
% curTimeLeftMS = ( ( getSimTime ( ) - $ missionStartTime ) / 1000 ) / 60 ;
% timePct = ( % curTimeLeftMS / $ Host : : TimeLimit ) * 100 ;
% timePct = ( % timePct > 100 ) ? 100 : % timePct ;
return % timePct ;
2020-08-24 18:02:35 -04:00
}
function ArenaGame : : getGamePct ( % game ) {
2021-06-02 12:55:33 -04:00
if ( % game . roundLimit ! = 0 ) {
if ( $ TeamScore [ 1 ] > = $ TeamScore [ 2 ] ) {
% pct = ( $ TeamScore [ 1 ] / % game . roundLimit ) * 100 ;
% pct = ( % pct > 100 ) ? 100 : % pct ;
return % pct ;
}
else if ( $ TeamScore [ 1 ] < = $ TeamScore [ 2 ] ) {
% pct = ( $ TeamScore [ 2 ] / % game . roundLimit ) * 100 ;
% pct = ( % pct > 100 ) ? 100 : % pct ;
return % pct ;
}
2021-06-02 13:16:13 -04:00
}
2019-11-20 14:43:50 -05:00
return 0 ;
2019-04-11 15:30:35 -04:00
}
2020-08-24 18:02:35 -04:00
function CTFGame : : getGamePct ( % game ) {
2021-06-02 12:55:33 -04:00
% curTimeLeftMS = ( ( getSimTime ( ) - $ missionStartTime ) / 1000 ) / 60 ;
2020-08-24 18:02:35 -04:00
% timePct = ( % curTimeLeftMS / $ Host : : TimeLimit ) * 100 ;
2021-06-02 12:55:33 -04:00
% timePct = ( % timePct > 100 ) ? 100 : % timePct ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% scoreLimit = MissionGroup . CTF_scoreLimit * % game . SCORE_PER_TEAM_FLAG_CAP ;
if ( % scoreLimit $ = "" )
% scoreLimit = 5 * % game . SCORE_PER_TEAM_FLAG_CAP ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( $ TeamScore [ 1 ] > $ TeamScore [ 2 ] )
2021-06-02 12:55:33 -04:00
% pct = ( $ TeamScore [ 1 ] / % scoreLimit ) * 100 ;
2020-08-24 18:02:35 -04:00
else
2021-06-02 12:55:33 -04:00
% pct = ( $ TeamScore [ 2 ] / % scoreLimit ) * 100 ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% scorePct = ( % pct > 100 ) ? 100 : % pct ;
2020-08-24 18:02:35 -04:00
if ( % scorePct > % timePct )
return % scorePct ;
else
return % timePct ;
2019-03-10 12:58:05 -04:00
}
2020-08-24 18:02:35 -04:00
function LakRabbitGame : : getGamePct ( % game ) {
2021-06-02 12:55:33 -04:00
% curTimeLeftMS = ( ( getSimTime ( ) - $ missionStartTime ) / 1000 ) / 60 ;
% timePct = ( % curTimeLeftMS / $ Host : : TimeLimit ) * 100 ;
% timePct = ( % timePct > 100 ) ? 100 : % timePct ;
% scoreLimit = MissionGroup . Rabbit_scoreLimit ;
if ( % scoreLimit $ = "" )
% scoreLimit = 2000 ;
% lScore = 0 ;
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + ) {
% client = ClientGroup . getObject ( % i ) ;
if ( % lScore < % client . score ) {
% lScore = % client . score ;
}
}
% pct = ( % lScore / % scoreLimit ) * 100 ;
% scorePct = ( % pct > 100 ) ? 100 : % pct ;
if ( % scorePct > % timePct )
return % scorePct ;
else
return % timePct ;
2019-03-10 12:58:05 -04:00
}
2020-08-24 18:02:35 -04:00
function DMGame : : getGamePct ( % game ) {
2021-06-02 12:55:33 -04:00
% curTimeLeftMS = ( ( getSimTime ( ) - $ missionStartTime ) / 1000 ) / 60 ;
% timePct = ( % curTimeLeftMS / $ Host : : TimeLimit ) * 100 ;
% timePct = ( % timePct > 100 ) ? 100 : % timePct ;
% scoreLimit = MissionGroup . DM_scoreLimit ;
if ( % scoreLimit $ = "" )
% scoreLimit = 25 ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + ) {
% client = ClientGroup . getObject ( % i ) ;
if ( % lScore < % client . score ) {
% lScore = % client . score ;
}
}
% pct = ( % lScore / % scoreLimit ) * 100 ;
% scorePct = ( % pct > 100 ) ? 100 : % pct ;
if ( % scorePct > % timePct )
return % scorePct ;
else
return % timePct ;
2020-08-24 18:02:35 -04:00
}
function SCtFGame : : getGamePct ( % game ) {
2021-06-02 12:55:33 -04:00
% curTimeLeftMS = ( ( getSimTime ( ) - $ missionStartTime ) / 1000 ) / 60 ;
% timePct = ( % curTimeLeftMS / $ Host : : TimeLimit ) * 100 ;
% timePct = ( % timePct > 100 ) ? 100 : % timePct ;
% scoreLimit = MissionGroup . CTF_scoreLimit * % game . SCORE_PER_TEAM_FLAG_CAP ;
if ( % scoreLimit $ = "" )
% scoreLimit = 5 * % game . SCORE_PER_TEAM_FLAG_CAP ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
if ( $ TeamScore [ 1 ] > $ TeamScore [ 2 ] )
% pct = ( $ TeamScore [ 1 ] / % scoreLimit ) * 100 ;
else
% pct = ( $ TeamScore [ 2 ] / % scoreLimit ) * 100 ;
2021-06-02 13:16:13 -04:00
2021-06-02 12:55:33 -04:00
% scorePct = ( % pct > 100 ) ? 100 : % pct ;
if ( % scorePct > % timePct )
return % scorePct ;
else
return % timePct ;
2019-03-10 12:58:05 -04:00
}
2019-11-20 14:43:50 -05:00
function msToMinSec ( % time )
{
% sec = mFloor ( % time / 1000 ) ;
% min = mFloor ( % sec / 60 ) ;
% sec - = % min * 60 ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
// pad it
if ( % min < 10 )
% min = "0" @ % min ;
if ( % sec < 10 )
% sec = "0" @ % sec ;
return ( % min @ ":" @ % sec ) ;
}
2020-02-28 16:37:29 -05:00
function secToMinSec ( % sec ) {
% min = mFloor ( % sec / 60 ) ;
% sec - = % min * 60 ;
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
// pad it
if ( % min < 10 )
% min = "0" @ % min ;
if ( % sec < 10 )
% sec = "0" @ % sec ;
2019-11-20 14:43:50 -05:00
2020-02-28 16:37:29 -05:00
return ( % min @ ":" @ % sec ) ;
}
2020-09-24 12:19:15 -04:00
function dtFormatTime ( % ms )
2020-08-24 18:02:35 -04:00
{
% sec = mFloor ( % ms / 1000 ) ;
% min = mFloor ( % sec / 60 ) ;
% hour = mFloor ( % min / 60 ) ;
% days = mFloor ( % hour / 24 ) ;
% sec - = % min * 60 ;
% min - = % hour * 60 ;
% hour - = % days * 24 ;
// pad it
if ( % day < 10 )
% day = "0" @ % day ;
if ( % hour < 10 )
2021-06-02 13:16:13 -04:00
% hour = "0" @ % hour ;
2020-08-24 18:02:35 -04:00
if ( % min < 10 )
% min = "0" @ % min ;
if ( % sec < 10 )
% sec = "0" @ % sec ;
return ( % days @ ":" @ % hour @ ":" @ % min @ ":" @ % sec ) ;
}
2020-02-28 16:37:29 -05:00
function setDynamicField ( % obj , % field , % value ) {
2019-04-01 16:02:48 -04:00
if ( isObject ( % obj ) ) {
if ( % value $ = "" )
% value = 0 ;
if ( % field $ = "" )
% field = "error" ;
% format = % obj @ "." @ % field @ "=" @ % value @ ";" ;
eval ( % format ) ; //eww
}
}
2020-02-28 16:37:29 -05:00
function getDynamicField ( % obj , % field ) {
2019-04-01 16:02:48 -04:00
if ( isObject ( % obj ) ) {
if ( % field $ = "" )
% field = "error" ;
% format = "%result = " @ % obj @ "." @ % field @ ";" ;
eval ( % format ) ;
return % result ;
2019-03-10 12:58:05 -04:00
}
else {
return 0 ;
}
}
2019-04-01 16:02:48 -04:00
function getCNameToCID ( % name ) {
2020-03-06 02:45:30 -05:00
if ( % name ! $ = "" ) {
2020-09-24 12:19:15 -04:00
if ( isObject ( % name ) ) {
if ( % name . getClassName ( ) $ = "GameConnection" | | % name . getClassName ( ) $ = "AIConnection" )
return % name ; // not a name its a client so return it
2020-03-06 02:45:30 -05:00
}
else {
2020-12-01 11:14:20 -05:00
% name = stripChars ( % name , "\cp\co\c6\c7\c8\c9\c0" ) ;
2020-03-06 02:45:30 -05:00
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + ) {
% client = ClientGroup . getObject ( % i ) ;
2020-12-01 11:14:20 -05:00
if ( stripChars ( getTaggedString ( % client . name ) , "\cp\co\c6\c7\c8\c9\c0" ) $ = % name ) {
2020-03-06 02:45:30 -05:00
return % client ;
}
2019-04-01 16:02:48 -04:00
}
}
2019-03-10 12:58:05 -04:00
}
2019-11-20 14:43:50 -05:00
return 0 ;
2019-03-10 12:58:05 -04:00
}
2020-02-28 16:37:29 -05:00
function cleanName ( % nm ) {
% validChars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ;
% inValid = " !\"#$%&'()*+,-./:;<=>?@[\\]^_'{|}~\t\n\r" ;
for ( % a = 0 ; % a < strlen ( % nm ) ; % a + + ) {
% c = getSubStr ( % nm , % a , 1 ) ;
% vc = strpos ( % validChars , % c ) ;
% iv = strpos ( % inValid , % c ) ;
if ( % vc ! $ = - 1 ) {
% name = % name @ % c ;
}
else if ( % iv ! $ = - 1 ) { // replace invlaid with number
% name = % name @ % iv ;
}
}
return % name ;
}
2020-08-24 18:02:35 -04:00
function cleanMapName ( % nm ) {
if ( $ cleanMapName $ = % nm | | $ cleanMap $ = % nm )
% name = $ cleanMap ;
else {
% validChars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ;
% inValid = " !_\"#$%&'()*+,-./:;<=>?@[\\]^'{|}~\t\n\r" ;
for ( % a = 0 ; % a < strlen ( % nm ) ; % a + + ) {
% c = getSubStr ( % nm , % a , 1 ) ;
% vc = strpos ( % validChars , % c ) ;
% iv = strpos ( % inValid , % c ) ;
if ( % vc ! $ = - 1 ) {
% name = % name @ % c ;
}
else if ( % iv ! $ = - 1 ) { // replace invlaid with number
% name = % name ;
}
}
$ cleanMapName = % nm ;
$ cleanMap = % name ;
}
return % name ;
}
2020-02-28 16:37:29 -05:00
function setGUIDName ( % client ) {
if ( isFile ( "serverStats/genGUIDList.cs" ) & & $ genGUIDList ! = 1 ) {
exec ( "serverStats/genGUIDList.cs" ) ;
2021-06-02 13:16:13 -04:00
$ genGUIDList = 1 ;
2020-02-28 16:37:29 -05:00
}
if ( % client . guid ) {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-02-28 16:37:29 -05:00
}
else {
% name = cleanName ( getTaggedString ( % client . name ) ) ;
if ( $ guidGEN : : ID [ % name ] ) {
% client . guid = $ guidGEN : : ID [ % name ] ;
}
else {
$ guidGEN : : ID [ % name ] = $ guidGEN : : Count - - ;
export ( "$guidGEN::*" , "serverStats/genGUIDList.cs" , false ) ;
% client . guid = $ guidGEN : : ID [ % name ] ;
}
return 1 ;
}
}
2020-08-24 18:02:35 -04:00
function getMapID ( % map , % game , % type , % clean ) {
2021-06-02 13:16:13 -04:00
if ( % clean )
2020-08-24 18:02:35 -04:00
% map = cleanMapName ( % map ) ;
if ( % game ! $ = "" & & % map ! $ = "" ) {
if ( $ mapID : : IDGame [ % map , % game ] & & % type )
return $ mapID : : IDGame [ % map , % game ] ;
else if ( $ mapID : : ID [ % map , % game ] )
return $ mapID : : ID [ % map , % game ] ;
else {
$ mapID : : count + + ;
$ mapID : : countGame [ % game ] + + ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
$ mapID : : ID [ % map , % game ] = $ mapID : : count ;
$ mapID : : IDGame [ % map , % game ] = $ mapID : : countGame [ % game ] ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
$ mapID : : IDNameGame [ $ mapID : : countGame [ % game ] , % game ] = % map ;
$ mapID : : IDName [ $ mapID : : count ] = % map ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
export ( "$mapID::*" , "serverStats/mapIDList.cs" , false ) ;
if ( % type )
return $ mapID : : IDGame [ % map , % game ] ;
else
return $ mapID : : ID [ % map , % game ] ;
}
}
2021-06-02 13:16:13 -04:00
else
2020-08-24 18:02:35 -04:00
error ( "getMapID no %map or %game in function call" ) ;
}
function loadMapIdList ( ) {
2020-03-17 18:27:09 -04:00
if ( isFile ( "serverStats/mapIDList.cs" ) & & $ genMapId ! = 1 ) {
2021-06-02 13:16:13 -04:00
$ genMapId = 1 ;
2020-03-17 18:27:09 -04:00
exec ( "serverStats/mapIDList.cs" ) ;
2021-06-02 13:16:13 -04:00
}
2020-03-17 18:27:09 -04:00
}
2020-02-28 16:37:29 -05:00
function getDayNum ( ) {
% date = formattimestring ( "mm dd yy" ) ;
% m = getWord ( % date , 0 ) ; % d = getWord ( % date , 1 ) ; % y = getWord ( % date , 2 ) ;
% count = 0 ;
if ( % y % 4 < 1 ) { % days [ 2 ] = "29" ; } else { % days [ 2 ] = "28" ; } // leap year
% days [ 1 ] = "31" ; % days [ 3 ] = "31" ;
% days [ 4 ] = "30" ; % days [ 5 ] = "31" ; % days [ 6 ] = "30" ;
% days [ 7 ] = "31" ; % days [ 8 ] = "31" ; % days [ 9 ] = "30" ;
% days [ 10 ] = "31" ; % days [ 11 ] = "30" ; % days [ 12 ] = "31" ;
for ( % i = 1 ; % i < = % m - 1 ; % i + + ) {
% count + = % days [ % i ] ;
}
return % count + % d ;
}
function getWeekNum ( ) {
return mCeil ( getDayNum ( ) / 7 ) ;
}
function getMonthNum ( ) {
return formattimestring ( "mm" ) + 0 ;
}
function getQuarterNum ( ) {
return mCeil ( ( formattimestring ( "mm" ) ) / 3 ) ;
}
function getYear ( ) {
return formattimestring ( "yy" ) + 0 ;
}
function monthString ( % num ) {
% i [ 1 ] = "January" ; % i [ 2 ] = "February" ; % i [ 3 ] = "March" ;
2021-06-02 13:16:13 -04:00
% i [ 4 ] = "April" ; % i [ 5 ] = "May" ; % i [ 6 ] = "June" ;
2020-02-28 16:37:29 -05:00
% i [ 7 ] = "July" ; % i [ 8 ] = "August" ; % i [ 9 ] = "September" ;
% i [ 10 ] = "October" ; % i [ 11 ] = "November" ; % i [ 12 ] = "December" ;
return % i [ % num ] ;
}
2019-04-01 16:02:48 -04:00
////////////////////////////////////////////////////////////////////////////////
// Load Save Management //
////////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
function loadGameStats ( % dtStats , % game ) { // called when client joins server.cs onConnect
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { error ( "loadGameStats GUID = " SPC % dtStats . guid ) ; }
2020-08-24 18:02:35 -04:00
if ( % dtStats . guid ! $ = "" ) {
2019-11-20 14:43:50 -05:00
loadGameTotalStats ( % dtStats , % game ) ;
2020-02-28 16:37:29 -05:00
% filename = "serverStats/stats/" @ % game @ "/" @ % dtStats . guid @ "g.cs" ;
2019-11-20 14:43:50 -05:00
if ( isFile ( % filename ) ) {
% file = new FileObject ( ) ;
2020-08-24 18:02:35 -04:00
RootGroup . add ( % file ) ;
2019-11-20 14:43:50 -05:00
% file . OpenForRead ( % filename ) ;
2021-05-06 15:01:41 -04:00
while ( ! % file . isEOF ( ) ) {
% line = strreplace ( % file . readline ( ) , "%t" , "\t" ) ;
% var = getField ( % line , 0 ) ;
% dtStats . gameStats [ % var , "g" , % game ] = getFields ( % line , 1 , getFieldCount ( % line ) - 1 ) ;
2019-11-20 14:43:50 -05:00
}
2021-05-06 15:01:41 -04:00
% dtStats . gameData [ % game ] = 1 ;
% file . close ( ) ;
2021-06-02 13:16:13 -04:00
% file . delete ( ) ;
2019-11-06 11:21:22 -05:00
}
2020-08-24 18:02:35 -04:00
else
% dtStats . gameData [ % game ] = 1 ;
2019-11-06 11:21:22 -05:00
}
}
function loadGameTotalStats ( % dtStats , % game ) {
2019-11-20 14:43:50 -05:00
if ( $ dtStats : : debugEchos ) { error ( "loadGameTotalStats GUID = " SPC % dtStats . guid ) ; }
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
% filename = "serverStats/stats/" @ % game @ "/" @ % dtStats . guid @ "t.cs" ;
2021-06-02 13:16:13 -04:00
% d = $ dtStats : : curDay ; % w = $ dtStats : : curWeek ; % m = $ dtStats : : curMonth ; % q = $ dtStats : : curQuarter ; % y = $ dtStats : : curYear ;
2020-02-28 16:37:29 -05:00
if ( isFile ( % filename ) ) {
2019-11-20 14:43:50 -05:00
% file = new FileObject ( ) ;
2020-08-24 18:02:35 -04:00
RootGroup . add ( % file ) ;
2020-02-28 16:37:29 -05:00
% file . OpenForRead ( % filename ) ;
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
% day = % week = % month = % quarter = % year = 0 ;
2021-06-02 13:16:13 -04:00
% dateLine = strreplace ( % file . readline ( ) , "%t" , "\t" ) ; // first line should allways be the date line
2020-02-28 16:37:29 -05:00
if ( getField ( % dateLine , 0 ) $ = "days" ) {
if ( getField ( % dateLine , 2 ) ! = % d ) { % day = 1 ; } // see what has changed sence we last played
if ( getField ( % dateLine , 4 ) ! = % w ) { % week = 1 ; }
if ( getField ( % dateLine , 6 ) ! = % m ) { % month = 1 ; }
if ( getField ( % dateLine , 8 ) ! = % q ) { % quarter = 1 ; }
if ( getField ( % dateLine , 10 ) ! = % y ) { % year = 1 ; }
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
% d0 = getField ( % dateLine , 1 ) ; % d1 = getField ( % dateLine , 2 ) ;
% w0 = getField ( % dateLine , 3 ) ; % w1 = getField ( % dateLine , 4 ) ;
% m0 = getField ( % dateLine , 5 ) ; % m1 = getField ( % dateLine , 6 ) ;
% q0 = getField ( % dateLine , 7 ) ; % q1 = getField ( % dateLine , 8 ) ;
% y0 = getField ( % dateLine , 9 ) ; % y1 = getField ( % dateLine , 10 ) ;
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
if ( % day ) { % d0 = % d1 ; % d1 = % d ; } //if there was a change flip new with old and reset new
if ( % week ) { % w0 = % w1 ; % w1 = % w ; }
if ( % month ) { % m0 = % m1 ; % m1 = % m ; }
if ( % quarter ) { % q0 = % q1 ; % q1 = % q ; }
if ( % year ) { % y0 = % y1 ; % y1 = % y ; }
2021-06-02 13:16:13 -04:00
% dtStats . gameStats [ "dwmqy" , "t" , % game ] = % d0 TAB % d1 TAB % w0 TAB % w1 TAB % m0 TAB % m1 TAB % q0 TAB % q1 TAB % y0 TAB % y1 ; // update line
2019-11-06 11:21:22 -05:00
}
2021-05-06 15:01:41 -04:00
while ( ! % file . isEOF ( ) ) {
% line = strreplace ( % file . readline ( ) , "%t" , "\t" ) ;
% var = getField ( % line , 0 ) ;
if ( % var ! $ = "playerName" & & % var ! $ = "versionNum" ) {
% d0 = getField ( % line , 1 ) ; % d1 = getField ( % line , 2 ) ;
% w0 = getField ( % line , 3 ) ; % w1 = getField ( % line , 4 ) ;
% m0 = getField ( % line , 5 ) ; % m1 = getField ( % line , 6 ) ;
% q0 = getField ( % line , 7 ) ; % q1 = getField ( % line , 8 ) ;
% y0 = getField ( % line , 9 ) ; % y1 = getField ( % line , 10 ) ;
2021-06-02 13:16:13 -04:00
2021-05-06 15:01:41 -04:00
if ( % day ) { % d0 = % d1 ; % d1 = 0 ; } //if there was a change flip new with old and reset new
if ( % week ) { % w0 = % w1 ; % w1 = 0 ; }
if ( % month ) { % m0 = % m1 ; % m1 = 0 ; }
if ( % quarter ) { % q0 = % q1 ; % q1 = 0 ; }
if ( % year ) { % y0 = % y1 ; % y1 = 0 ; }
2021-06-02 13:16:13 -04:00
2021-05-06 15:01:41 -04:00
% dtStats . gameStats [ % var , "t" , % game ] = % d0 TAB % d1 TAB % w0 TAB % w1 TAB % m0 TAB % m1 TAB % q0 TAB % q1 TAB % y0 TAB % y1 ;
2019-04-01 16:02:48 -04:00
}
}
2021-05-06 15:01:41 -04:00
% file . close ( ) ;
% file . delete ( ) ;
2020-02-28 16:37:29 -05:00
}
2021-06-02 13:16:13 -04:00
else // must be new person so be sure to set the dates
% dtStats . gameStats [ "dwmqy" , "t" , % game ] = % d TAB % d TAB % w TAB % w TAB % m TAB % m TAB % q TAB % q TAB % y TAB % y ;
2019-03-10 12:58:05 -04:00
}
2020-08-24 18:02:35 -04:00
function saveGameTotalStats ( % dtStats , % game ) {
if ( $ dtStats : : debugEchos ) { error ( "saveGameTotalStats GUID = " SPC % dtStats . guid ) ; }
if ( % dtStats . guid ! $ = "" ) {
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % dtStats . gameStats [ "statsOverWrite" , "g" , % game ] $ = "" ) { % dtStats . gameStats [ "statsOverWrite" , "g" , % game ] = 0 ; }
% fileTotal = new FileObject ( ) ;
RootGroup . add ( % fileTotal ) ;
2021-06-02 13:16:13 -04:00
% fileNameTotal = "serverStats/stats/" @ % game @ "/" @ % dtStats . guid @ "t.cs" ;
2020-08-24 18:02:35 -04:00
% fileTotal . OpenForWrite ( % fileNameTotal ) ;
2021-06-02 13:16:13 -04:00
% fileTotal . writeLine ( "days" @ "%t" @ strreplace ( % dtStats . gameStats [ "dwmqy" , "t" , % game ] , "\t" , "%t" ) ) ;
2020-08-24 18:02:35 -04:00
% fileTotal . writeLine ( "gameCount" @ "%t" @ strreplace ( % dtStats . gameStats [ "gameCount" , "t" , % game ] , "\t" , "%t" ) ) ;
% fileTotal . writeLine ( "playerName" @ "%t" @ % dtStats . name ) ;
% fileTotal . writeLine ( "versionNum" @ "%t" @ $ dtStats : : version ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% fileGame = new FileObject ( ) ;
RootGroup . add ( % fileGame ) ;
% fileNameGame = "serverStats/stats/" @ % game @ "/" @ % dtStats . guid @ "g.cs" ;
% fileGame . OpenForWrite ( % fileNameGame ) ;
% fileGame . writeLine ( "playerName" @ "%t" @ trim ( % dtStats . name ) ) ;
% fileGame . writeLine ( "statsOverWrite" @ "%t" @ % dtStats . gameStats [ "statsOverWrite" , "g" , % game ] ) ;
% fileGame . writeLine ( "totalGames" @ "%t" @ % dtStats . gameStats [ "totalGames" , "g" , % game ] ) ;
% fileGame . writeLine ( "fullSet" @ "%t" @ % dtStats . gameStats [ "fullSet" , "g" , % game ] ) ;
% fileGame . writeLine ( "dayStamp" @ "%t" @ strreplace ( % dtStats . gameStats [ "dayStamp" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "weekStamp" @ "%t" @ strreplace ( % dtStats . gameStats [ "weekStamp" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "monthStamp" @ "%t" @ strreplace ( % dtStats . gameStats [ "monthStamp" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "quarterStamp" @ "%t" @ strreplace ( % dtStats . gameStats [ "quarterStamp" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "yearStamp" @ "%t" @ strreplace ( % dtStats . gameStats [ "yearStamp" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "dateStamp" @ "%t" @ strreplace ( % dtStats . gameStats [ "dateStamp" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "timeDayMonth" @ "%t" @ strreplace ( % dtStats . gameStats [ "timeDayMonth" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "map" @ "%t" @ strreplace ( % dtStats . gameStats [ "map" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "mapID" @ "%t" @ strreplace ( % dtStats . gameStats [ "mapID" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "mapGameID" @ "%t" @ strreplace ( % dtStats . gameStats [ "mapGameID" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "gameID" @ "%t" @ strreplace ( % dtStats . gameStats [ "gameID" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "gamePCT" @ "%t" @ strreplace ( % dtStats . gameStats [ "gamePCT" , "g" , % game ] , "\t" , "%t" ) ) ;
% fileGame . writeLine ( "versionNum" @ "%t" @ strreplace ( % dtStats . gameStats [ "versionNum" , "g" , % game ] , "\t" , "%t" ) ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
for ( % q = 0 ; % q < $ statsVars : : count [ % game ] ; % q + + ) {
% varNameType = $ statsVars : : varNameType [ % q , % game ] ;
2021-06-02 13:16:13 -04:00
% varType = $ statsVars : : varType [ % varNameType , % game ] ;
2020-08-24 18:02:35 -04:00
if ( % varType ! $ = "TTL" ) {
% val = % dtStats . gameStats [ % varNameType , "g" , % game ] ;
% fileGame . writeLine ( % varNameType @ "%t" @ strreplace ( % val , "\t" , "%t" ) ) ;
}
if ( % varType ! $ = "Game" ) {
% val = % dtStats . gameStats [ % varNameType , "t" , % game ] ;
% fileTotal . writeLine ( % varNameType @ "%t" @ strreplace ( % val , "\t" , "%t" ) ) ;
}
2019-11-06 11:21:22 -05:00
}
2020-08-24 18:02:35 -04:00
% fileTotal . close ( ) ;
% fileGame . close ( ) ;
% fileTotal . delete ( ) ;
% fileGame . delete ( ) ;
2019-04-01 16:02:48 -04:00
}
if ( % dtStats . markForDelete ) {
2020-08-24 18:02:35 -04:00
if ( $ dtStats : : debugEchos ) { error ( "Client Left, Deleting Stat Object = " SPC % dtStats SPC % dtStats . guid ) ; }
2019-04-01 16:02:48 -04:00
% dtStats . delete ( ) ;
}
}
2020-08-24 18:02:35 -04:00
function getMapIDName ( % game ) {
% map = cleanMapName ( $ dtStats : : LastMissionCM ) ;
% mid = getMapID ( % map , % game , 0 , 1 ) ;
% gid = getMapID ( % map , % game , 1 , 1 ) ;
2021-06-02 13:16:13 -04:00
% mapNameID = % map @ "-" @ % mid @ "-" @ % gid ;
2020-08-24 18:02:35 -04:00
return % mapNameID ;
2021-06-02 13:16:13 -04:00
}
2022-09-24 06:35:14 -04:00
2020-02-28 16:37:29 -05:00
function incGameStats ( % dtStats , % game ) { // record that games stats and inc by one
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { error ( "incGameStats GUID = " SPC % dtStats . guid ) ; }
if ( ! % dtStats . gameData [ % game ] ) // if not loaded load total stats so we can save
2020-03-05 01:51:16 -05:00
loadGameStats ( % dtStats , % game ) ;
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
% c = % dtStats . gameStats [ "statsOverWrite" , "g" , % game ] + + ;
if ( % dtStats . gameStats [ "statsOverWrite" , "g" , % game ] > $ dtStats : : MaxNumOfGames - 1 | | % dtStats . gameStats [ "statsOverWrite" , "g" , % game ] > 99 ) {
% c = % dtStats . gameStats [ "statsOverWrite" , "g" , % game ] = 0 ;
% dtStats . gameStats [ "fullSet" , "g" , % game ] = 1 ;
2019-04-01 16:02:48 -04:00
}
2020-02-28 16:37:29 -05:00
% dtStats . gameStats [ "totalGames" , "g" , % game ] + + ;
% c1 = getField ( % dtStats . gameStats [ "gameCount" , "t" , % game ] , 1 ) ;
setValueField ( % dtStats , "gameCount" , "t" , % game , 1 , % c1 + + ) ;
% c7 = getField ( % dtStats . gameStats [ "gameCount" , "t" , % game ] , 3 ) ;
setValueField ( % dtStats , "gameCount" , "t" , % game , 3 , % c7 + + ) ;
% c30 = getField ( % dtStats . gameStats [ "gameCount" , "t" , % game ] , 5 ) ;
setValueField ( % dtStats , "gameCount" , "t" , % game , 5 , % c30 + + ) ;
% c90 = getField ( % dtStats . gameStats [ "gameCount" , "t" , % game ] , 7 ) ;
setValueField ( % dtStats , "gameCount" , "t" , % game , 7 , % c90 + + ) ;
% c365 = getField ( % dtStats . gameStats [ "gameCount" , "t" , % game ] , 9 ) ;
setValueField ( % dtStats , "gameCount" , "t" , % game , 9 , % c365 + + ) ;
2021-06-02 13:16:13 -04:00
setValueField ( % dtStats , "dayStamp" , "g" , % game , % c , $ dtStats : : curDay ) ;
setValueField ( % dtStats , "weekStamp" , "g" , % game , % c , $ dtStats : : curWeek ) ;
setValueField ( % dtStats , "monthStamp" , "g" , % game , % c , $ dtStats : : curMonth ) ;
setValueField ( % dtStats , "quarterStamp" , "g" , % game , % c , $ dtStats : : curQuarter ) ;
setValueField ( % dtStats , "yearStamp" , "g" , % game , % c , $ dtStats : : curYear ) ;
setValueField ( % dtStats , "dateStamp" , "g" , % game , % c , formattimestring ( "yy-mm-dd HH:nn:ss" ) ) ;
2020-11-02 15:02:14 -05:00
setValueField ( % dtStats , "timeDayMonth" , "g" , % game , % c , formattimestring ( "hh:nn:a, mm-dd" ) ) ;
2020-03-17 18:27:09 -04:00
setValueField ( % dtStats , "map" , "g" , % game , % c , $ dtStats : : LastMissionDN ) ;
2020-08-24 18:02:35 -04:00
setValueField ( % dtStats , "mapID" , "g" , % game , % c , getMapID ( $ dtStats : : LastMissionCM , % game , 0 , 1 ) ) ;
setValueField ( % dtStats , "mapGameID" , "g" , % game , % c , getMapID ( $ dtStats : : LastMissionCM , % game , 1 , 1 ) ) ;
setValueField ( % dtStats , "gameID" , "g" , % game , % c , $ mapID : : gameID ) ;
setValueField ( % dtStats , "gamePCT" , "g" , % game , % c , % dtStats . gamePCT ) ;
setValueField ( % dtStats , "versionNum" , "g" , % game , % c , $ dtStats : : version ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
for ( % q = 0 ; % q < $ statsVars : : count [ % game ] ; % q + + ) {
% varNameType = $ statsVars : : varNameType [ % q , % game ] ;
2021-06-02 13:16:13 -04:00
% varName = $ statsVars : : varName [ % q , % game ] ;
% varType = $ statsVars : : varType [ % varNameType , % game ] ;
2020-08-24 18:02:35 -04:00
switch $ ( % varType ) {
case "Game" :
% val = getDynamicField ( % dtStats , % varName ) ;
setValueField ( % dtStats , % varNameType , "g" , % game , % c , % val ) ;
case "TG" :
% val = getDynamicField ( % dtStats , % varName ) ;
setValueField ( % dtStats , % varNameType , "g" , % game , % c , % val ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
for ( % x = 1 ; % x < = 9 ; % x + = 2 ) {
% t = getField ( % dtStats . gameStats [ % varNameType , "t" , % game ] , % x ) ;
setValueField ( % dtStats , % varNameType , "t" , % game , % x , addNum ( % t , % val ) ) ;
}
case "TTL" :
% val = getDynamicField ( % dtStats , % varName ) ;
for ( % x = 1 ; % x < = 9 ; % x + = 2 ) {
% t = getField ( % dtStats . gameStats [ % varNameType , "t" , % game ] , % x ) ;
setValueField ( % dtStats , % varNameType , "t" , % game , % x , addNum ( % t , % val ) ) ;
}
case "Max" :
% val = getDynamicField ( % dtStats , % varName ) ;
setValueField ( % dtStats , % varNameType , "g" , % game , % c , % val ) ;
for ( % x = 1 ; % x < = 9 ; % x + = 2 ) {
% t = getField ( % dtStats . gameStats [ % varNameType , "t" , % game ] , % x ) ;
if ( % val > % t ) { setValueField ( % dtStats , % varNameType , "t" , % game , % x , % val ) ; }
else { setValueField ( % dtStats , % varNameType , "t" , % game , % x , % t ) ; }
}
case "Min" :
% val = getDynamicField ( % dtStats , % varName ) ;
setValueField ( % dtStats , % varNameType , "g" , % game , % c , % val ) ;
2022-09-24 06:35:14 -04:00
2021-06-02 13:16:13 -04:00
for ( % x = 1 ; % x < = 9 ; % x + = 2 ) {
2020-08-24 18:02:35 -04:00
% t = getField ( % dtStats . gameStats [ % varNameType , "t" , % game ] , % x ) ;
if ( % val < % t & & % val ! = 0 | | ! % t ) { setValueField ( % dtStats , % varNameType , "t" , % game , % x , % val ) ; }
else { setValueField ( % dtStats , % varNameType , "t" , % game , % x , % t ) ; }
}
case "Avg" or "AvgI" :
% val = getDynamicField ( % dtStats , % varName ) ;
2020-09-25 19:25:33 -04:00
setValueField ( % dtStats , % varNameType , "g" , % game , % c , % val ) ;
2021-06-02 13:16:13 -04:00
for ( % x = 1 ; % x < = 9 ; % x + = 2 ) {
2020-08-24 18:02:35 -04:00
% t = strreplace ( getField ( % dtStats . gameStats [ % varNameType , "t" , % game ] , % x ) , "%a" , "\t" ) ;
if ( % val ! = 0 ) {
% total = getField ( % t , 1 ) + % val ;
if ( % total < 950000 ) {
% gameCount = getField ( % t , 2 ) + 1 ;
% avg = % total / % gameCount ;
}
else {
2021-06-02 13:16:13 -04:00
% total = mFloor ( % total * 0.9 ) ;
2020-08-24 18:02:35 -04:00
% gameCount = mFloor ( ( getField ( % t , 2 ) + 1 ) * 0.9 ) ;
% avg = % total / % gameCount ;
}
}
else {
2021-06-02 13:16:13 -04:00
% avg = getField ( % t , 0 ) ;
2020-08-24 18:02:35 -04:00
% total = getField ( % t , 1 ) ;
% gameCount = getField ( % t , 2 ) ;
}
setValueField ( % dtStats , % varNameType , "t" , % game , % x , hasValue ( % avg ) @ "%a" @ hasValue ( % total ) @ "%a" @ hasValue ( % gameCount ) ) ;
}
}
}
resetDtStats ( % dtStats , % game , 0 ) ; // reset to 0 for next game
}
function cropDec ( % num ) {
% length = strlen ( % num ) ;
% dot = strPos ( % num , "." ) ;
if ( % dot = = - 1 )
return % num @ "x" ;
else
return getSubStr ( % num , 0 , % dot ) @ "x" ;
2020-09-28 11:58:38 -04:00
}
function cropFloat ( % num , % x ) {
% length = strlen ( % num ) ;
% dot = strPos ( % num , "." ) ;
if ( % dot ! = - 1 ) {
% int = getSubStr ( % num , 0 , % dot ) ;
% decLen = % length - strLen ( % int ) - 1 ;
% x = % decLen > = % x ? % x : % decLen ;
2020-12-01 11:14:20 -05:00
//error(%x);
2020-09-28 11:58:38 -04:00
% dec = getSubStr ( % num , % dot , % dot + % x ) ;
return % int @ % dec ;
}
else
return % num ;
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
function addNum ( % a , % b ) {
if ( strPos ( % a , "x" ) = = - 1 & & strPos ( % b , "x" ) = = - 1 ) {
% ab = % a + % b ;
if ( % ab < 999999 ) {
return % ab ;
}
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( strPos ( % a , "x" ) = = - 1 )
% a = cropDec ( % a ) ;
if ( strPos ( % b , "x" ) = = - 1 )
2021-06-02 13:16:13 -04:00
% b = cropDec ( % b ) ;
2020-08-24 18:02:35 -04:00
if ( strPos ( % b , "-" ) = = 0 ) {
% bn = strreplace ( % b , "-" , "" ) ;
if ( xlCompare ( % a , % bn ) $ = "<" ) {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-08-24 18:02:35 -04:00
}
else {
% r = addSubX ( % a , % bn ) ;
if ( strPos ( % r , "-" ) = = 0 )
return 0 ;
return % r ;
}
}
% n1 = strLen ( % a ) ;
2021-06-02 13:16:13 -04:00
% n2 = strLen ( % b ) ;
2020-08-24 18:02:35 -04:00
% cc = ( % n1 > % n2 ) ? % n1 : % n2 ;
for ( % x = 1 ; % x < % cc ; % x + + ) {
% q = ( % x < % n1 ) ? getSubStr ( % a , ( % n1 - % x ) - 1 , 1 ) : 0 ;
% w = ( % x < % n2 ) ? getSubStr ( % b , ( % n2 - % x ) - 1 , 1 ) : 0 ;
% sum = % q + % w + % c ; //18 = 9 + 9 + 0
% newVal = ( % sum % 10 ) @ % newVal ; //8 = 18 % 10
% c = mFloor ( % sum / 10 ) ; //1 = 18/10
}
return % c ? % c @ % newVal : % newVal ;
}
function addSubX ( % a , % b ) { // auto flips so its subing form the largest basicly absolute value
if ( strPos ( % a , "x" ) = = - 1 & & strPos ( % b , "x" ) = = - 1 ) {
% ab = % a - % b ;
if ( % ab < 0 ) {
return 0 ;
}
return % ab ;
}
if ( strPos ( % a , "x" ) = = - 1 )
% a = cropDec ( % a ) ;
if ( strPos ( % b , "x" ) = = - 1 )
% b = cropDec ( % b ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% n1 = strLen ( % a ) ;
2021-06-02 13:16:13 -04:00
% n2 = strLen ( % b ) ;
2020-08-24 18:02:35 -04:00
% cc = ( % n1 > % n2 ) ? % n1 : % n2 ;
% c = 0 ;
for ( % x = 1 ; % x < % cc ; % x + + ) {
% q = ( % x < % n1 ) ? getSubStr ( % a , ( % n1 - % x ) - 1 , 1 ) : 0 ;
% w = ( % x < % n2 ) ? getSubStr ( % b , ( % n2 - % x ) - 1 , 1 ) : 0 ;
% sub = % q - % w - % c ;
if ( % x = = % cc - 1 & & % sub = = 0 )
break ;
2021-06-02 13:16:13 -04:00
if ( % sub > = 0 ) {
2020-08-24 18:02:35 -04:00
% newVal = % sub @ % newVal ;
2021-06-02 13:16:13 -04:00
% c = 0 ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
else {
2020-08-24 18:02:35 -04:00
% newVal = % sub + 10 @ % newVal ;
2021-06-02 13:16:13 -04:00
% c = 1 ;
2020-08-24 18:02:35 -04:00
}
}
return trimZeroLeft ( % newVal ) ;
}
function trimZeroLeft ( % val ) {
% ln = strLen ( % val ) ;
2021-06-02 13:16:13 -04:00
for ( % x = 0 ; % x < % ln ; % x + + ) {
% num = getSubStr ( % val , % x , 1 ) ;
2020-08-24 18:02:35 -04:00
if ( % num ! = 0 )
2021-06-02 13:16:13 -04:00
break ;
2020-08-24 18:02:35 -04:00
}
if ( % x = = % ln )
return 0 ;
return getSubStr ( % val , % x , % ln ) ;
}
function xlCompare ( % a , % b ) {
if ( strPos ( % a , "x" ) = = - 1 & & strPos ( % b , "x" ) = = - 1 ) {
if ( % a > % b )
return ">" ;
else if ( % a < % b )
return "<" ;
else if ( % a $ = % b )
return "=" ;
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( strPos ( % a , "x" ) = = - 1 )
% a = % a @ "x" ;
if ( strPos ( % b , "x" ) = = - 1 )
2021-06-02 13:16:13 -04:00
% b = % b @ "x" ;
% n1 = strLen ( % a ) ;
% n2 = strLen ( % b ) ;
2020-08-24 18:02:35 -04:00
if ( % n1 > % n2 )
2021-06-02 13:16:13 -04:00
return ">" ;
2020-08-24 18:02:35 -04:00
else if ( % n1 < % n2 )
return "<" ;
else {
if ( % a $ = % b )
2021-06-02 13:16:13 -04:00
return "=" ;
2020-08-24 18:02:35 -04:00
% g = % l = 0 ;
for ( % x = 0 ; % x < % n1 - 1 ; % x + + ) {
% q = getSubStr ( % a , % x , 1 ) ;
2021-06-02 13:16:13 -04:00
% w = getSubStr ( % b , % x , 1 ) ;
2020-08-24 18:02:35 -04:00
if ( % q > % w )
return ">" ;
2021-06-02 13:16:13 -04:00
else if ( % q < % w )
2020-08-24 18:02:35 -04:00
return "<" ;
}
}
2020-02-28 16:37:29 -05:00
}
function getTimeDif ( % time ) {
% x = formattimestring ( "hh" ) ;
% y = formattimestring ( "nn" ) ;
% z = formattimestring ( "a" ) ;
% a = getField ( % time , 0 ) ;
% b = getField ( % time , 1 ) ;
% c = getField ( % time , 2 ) ;
2020-08-24 18:02:35 -04:00
if ( % c $ = "pm" & & % a < 12 )
2021-06-02 13:16:13 -04:00
% a + = 12 ;
2020-08-24 18:02:35 -04:00
else if ( % c $ = "am" & & % a = = 12 )
2020-02-28 16:37:29 -05:00
% a = 0 ;
2020-08-24 18:02:35 -04:00
if ( % z $ = "pm" & & % x < 12 )
2021-06-02 13:16:13 -04:00
% x + = 12 ;
2020-08-24 18:02:35 -04:00
else if ( % z $ = "am" & & % x = = 12 )
% x = 0 ;
2020-02-28 16:37:29 -05:00
% v = % a + ( % b / 60 ) ;
% w = % x + ( % y / 60 ) ;
2020-08-24 18:02:35 -04:00
% h = ( % v > % w ) ? ( % h = mabs ( % v - % w ) ) : ( 24 - mabs ( % v - % w ) ) ;
2020-02-28 16:37:29 -05:00
% min = % h - mfloor ( % h ) ;
% ms = mfloor ( % h ) * ( ( 60 * 1000 ) * 60 ) ; // 60 * 1000 1 min * 60 = one hour
2021-06-02 13:16:13 -04:00
% ms + = mFloor ( ( % min * 60 ) + 0.5 ) * ( 60 * 1000 ) ; // %min * 60 to convert back to mins , * 60kms for one min
2020-02-28 16:37:29 -05:00
return mFloor ( % ms ) ;
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
function genBlanks ( ) { // optimization thing saves on haveing to do it with every setValueField
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : MaxNumOfGames > 300 ) {
$ dtStats : : MaxNumOfGames = 300 ; //cap it
}
2020-08-24 18:02:35 -04:00
$ dtStats : : blank [ "g" ] = $ dtStats : : blank [ "t" ] = $ dtStats : : blank [ "m" ] = 0 ;
2020-04-06 20:43:35 -04:00
for ( % i = 0 ; % i < $ dtStats : : MaxNumOfGames - 1 ; % i + + ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : blank [ "g" ] = $ dtStats : : blank [ "g" ] TAB 0 ;
}
2020-11-19 00:37:03 -05:00
for ( % i = 0 ; % i < 125 - 1 ; % i + + ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : blank [ "m" ] = $ dtStats : : blank [ "m" ] TAB 0 ;
2020-08-24 18:02:35 -04:00
}
2020-11-19 00:37:03 -05:00
for ( % i = 0 ; % i < 9 ; % i + + ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : blank [ "t" ] = $ dtStats : : blank [ "t" ] TAB 0 ;
}
2020-08-24 18:02:35 -04:00
}
function setValueField ( % dtStats , % var , % type , % game , % c , % val ) {
2020-02-28 16:37:29 -05:00
if ( % type $ = "g" ) {
2020-08-24 18:02:35 -04:00
% fc = getFieldCount ( % dtStats . gameStats [ % var , % type , % game ] ) ;
if ( % fc < 2 ) {
2021-06-02 13:16:13 -04:00
% dtStats . gameStats [ % var , % type , % game ] = $ dtStats : : blank [ "g" ] ;
2019-04-01 16:02:48 -04:00
}
2021-06-02 13:16:13 -04:00
else if ( % fc > $ dtStats : : MaxNumOfGames ) { // trim it down as it as the MaxNumOfGames have gotten smaller
2020-08-24 18:02:35 -04:00
% dtStats . gameStats [ % var , % type , % game ] = getFields ( % dtStats . gameStats [ % var , % type , % game ] , 0 , $ dtStats : : MaxNumOfGames - 1 ) ;
2019-04-01 16:02:48 -04:00
}
2020-08-24 18:02:35 -04:00
% dtStats . gameStats [ % var , % type , % game ] = setField ( % dtStats . gameStats [ % var , % type , % game ] , % c , hasValue ( % val ) ) ;
2019-04-01 16:02:48 -04:00
}
2020-02-28 16:37:29 -05:00
else if ( % type $ = "t" ) {
2020-08-24 18:02:35 -04:00
% fc = getFieldCount ( % dtStats . gameStats [ % var , % type , % game ] ) ;
if ( % fc < 2 ) {
% dtStats . gameStats [ % var , % type , % game ] = $ dtStats : : blank [ "t" ] ;
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
% dtStats . gameStats [ % var , % type , % game ] = setField ( % dtStats . gameStats [ % var , % type , % game ] , % c , hasValue ( % val ) ) ;
}
2020-02-28 16:37:29 -05:00
}
function hasValue ( % val ) { //make sure we have at least something in the field spot
if ( % val $ = "" ) { return 0 ; }
2021-06-02 13:16:13 -04:00
return % val ;
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
function bakGameStats ( % client , % game ) { //back up clients current stats in case they come back
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { error ( "bakGameStats GUID = " SPC % client . guid ) ; }
2020-08-24 18:02:35 -04:00
% dtStats = % client . dtStats ;
2021-06-02 12:55:33 -04:00
% dtStats . dtTeam = % client . team ;
updateTeamTime ( % client . dtStats , % dtStats . team ) ;
2021-06-02 13:16:13 -04:00
armorTimer ( % dtStats , 0 , 1 ) ;
2020-08-24 18:02:35 -04:00
for ( % v = 0 ; % v < $ dtStats : : varTypeCount ; % v + + ) {
% varType = $ dtStats : : varType [ % v ] ;
for ( % i = 1 ; % i < = $ dtStats : : FCG [ % game , % varType ] ; % i + + ) {
% var = $ dtStats : : FVG [ % i , % game , % varType ] ;
copyDynamicField ( % dtStats , % client , % var ) ;
}
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
for ( % i = 1 ; % i < = $ dtStats : : uGFC [ % game ] ; % i + + ) {
% var = $ dtStats : : uGFV [ % i , % game ] ;
copyDynamicField ( % dtStats , % client , % var ) ;
2020-02-28 16:37:29 -05:00
}
2019-04-01 16:02:48 -04:00
}
2019-11-20 14:43:50 -05:00
function resGameStats ( % client , % game ) { // copy data back over to client
if ( $ dtStats : : debugEchos ) { error ( "resGameStats GUID = " SPC % client . guid ) ; }
2020-08-24 18:02:35 -04:00
% dtStats = % client . dtStats ;
for ( % v = 0 ; % v < $ dtStats : : varTypeCount ; % v + + ) {
% varType = $ dtStats : : varType [ % v ] ;
for ( % i = 1 ; % i < = $ dtStats : : FCG [ % game , % varType ] ; % i + + ) {
% var = $ dtStats : : FVG [ % i , % game , % varType ] ;
copyDynamicField ( % client , % dtStats , % var ) ;
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
}
for ( % i = 1 ; % i < = $ dtStats : : uGFC [ % game ] ; % i + + ) {
% var = $ dtStats : : uGFV [ % i , % game ] ;
copyDynamicField ( % client , % dtStats , % var ) ;
2019-04-01 16:02:48 -04:00
}
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
function copyDynamicField ( % obj , % obj2 , % field ) {
if ( isObject ( % obj ) & & isObject ( % obj2 ) ) {
% format = % obj @ "." @ % field @ "=" @ % obj2 @ "." @ % field @ ";" ;
eval ( % format ) ;
2019-04-01 16:02:48 -04:00
}
}
2020-08-24 18:02:35 -04:00
function resetChain ( % game , % dtStats , % count , % last ) {
2021-06-02 13:16:13 -04:00
//if($dtStats::debugEchos){error("resetChain" SPC %last SPC %count);}
for ( % i = % last ; % i < % count ; % i + + ) {
2020-08-24 18:02:35 -04:00
% var = $ statsVars : : varName [ % i , % game ] ;
setDynamicField ( % dtStats , % var , 0 ) ;
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
}
function resetDtStats ( % dtStats , % game , % slow ) {
if ( $ dtStats : : debugEchos ) { error ( "resetDtStats GUID = " SPC % dtStats . guid ) ; }
if ( isObject ( % dtStats ) ) {
% dtStats . joinTime = getSimTime ( ) ;
2021-06-02 13:16:13 -04:00
if ( % slow ) { // low server impact
2020-08-24 18:02:35 -04:00
% amount = 100 ;
% count = mFloor ( $ statsVars : : count [ % game ] / % amount ) ;
% leftOver = $ statsVars : : count [ % game ] - ( % count * % amount ) ;
for ( % i = 0 ; % i < % count ; % i + + ) {
% x + = % amount ;
schedule ( 32 * % i , 0 , "resetChain" , % game , % dtStats , % x , ( % i * % amount ) ) ;
}
schedule ( 32 * ( % i + 1 ) , 0 , "resetChain" , % game , % dtStats , ( % x + % leftOver ) , ( % i * % amount ) ) ;
2020-09-25 19:25:33 -04:00
for ( % i = 1 ; % i < = $ dtStats : : unusedCount ; % i + + ) { //script unused
% var = $ dtStats : : unused [ % i ] ;
setDynamicField ( % dtStats , % var , 0 ) ;
}
2020-08-24 18:02:35 -04:00
}
else {
for ( % q = 0 ; % q < $ statsVars : : count [ % game ] ; % q + + ) {
% var = $ statsVars : : varName [ % q , % game ] ;
setDynamicField ( % dtStats , % var , 0 ) ;
}
}
for ( % i = 1 ; % i < = $ dtStats : : unusedCount ; % i + + ) { //script unused
% var = $ dtStats : : unused [ % i ] ;
setDynamicField ( % dtStats , % var , 0 ) ;
}
2019-04-01 16:02:48 -04:00
}
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
function buildVarList ( ) {
2020-08-24 18:02:35 -04:00
deleteVariables ( "$statsVars::*" ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
for ( % g = 0 ; % g < $ dtStats : : gameTypeCount ; % g + + ) {
% game = $ dtStats : : gameType [ % g ] ;
$ statsVars : : count [ % game ] = - 1 ;
for ( % v = 0 ; % v < $ dtStats : : varTypeCount ; % v + + ) {
% varType = $ dtStats : : varType [ % v ] ;
for ( % i = 1 ; % i < = $ dtStats : : FCG [ % game , % varType ] ; % i + + ) { // game types
% var = $ dtStats : : FVG [ % i , % game , % varType ] @ % varType ;
if ( $ statsVars : : varType [ % var , % game ] $ = "" ) {
$ statsVars : : varType [ % var , % game ] = % varType ;
$ statsVars : : varNameType [ $ statsVars : : count [ % game ] + + , % game ] = % var ;
$ statsVars : : varName [ $ statsVars : : count [ % game ] , % game ] = $ dtStats : : FVG [ % i , % game , % varType ] ;
}
else {
2021-06-02 13:16:13 -04:00
error ( "Error buildVarList duplicate var:" SPC % var ) ;
2020-08-24 18:02:35 -04:00
}
}
for ( % i = 1 ; % i < = $ dtStats : : FC [ % game , % varType ] ; % i + + ) { // game type script
% var = $ dtStats : : FV [ % i , % game , % varType ] @ % varType ;
if ( $ statsVars : : varType [ % var , % game ] $ = "" ) {
$ statsVars : : varType [ % var , % game ] = % varType ;
$ statsVars : : varNameType [ $ statsVars : : count [ % game ] + + , % game ] = % var ;
$ statsVars : : varName [ $ statsVars : : count [ % game ] , % game ] = $ dtStats : : FV [ % i , % game , % varType ] ;
}
else {
2021-06-02 13:16:13 -04:00
error ( "Error buildVarList duplicate var:" SPC % var ) ;
2020-08-24 18:02:35 -04:00
}
}
for ( % i = 1 ; % i < = $ dtStats : : FC [ % varType ] ; % i + + ) { // script
% var = $ dtStats : : FV [ % i , % varType ] @ % varType ;
2021-06-02 13:16:13 -04:00
if ( $ statsVars : : varType [ % var , % game ] $ = "" ) {
2020-08-24 18:02:35 -04:00
$ statsVars : : varType [ % var , % game ] = % varType ;
$ statsVars : : varNameType [ $ statsVars : : count [ % game ] + + , % game ] = % var ;
$ statsVars : : varName [ $ statsVars : : count [ % game ] , % game ] = $ dtStats : : FV [ % i , % varType ] ;
}
else {
error ( "Error buildVarList duplicate var:" SPC % var ) ;
}
2021-06-02 13:16:13 -04:00
}
2019-04-01 16:02:48 -04:00
}
2020-08-24 18:02:35 -04:00
$ statsVars : : count [ % game ] + = 1 ;
2019-04-01 16:02:48 -04:00
}
}
////////////////////////////////////////////////////////////////////////////////
//Stats Collecting
////////////////////////////////////////////////////////////////////////////////
2020-10-02 15:01:54 -04:00
function armorTimer ( % dtStats , % size , % death ) {
if ( % dtStats . lastArmor $ = "Light" & & % dtStats . ArmorTime [ % dtStats . lastArmor ] > 0 ) {
2021-06-02 13:16:13 -04:00
% dtStats . lArmorTime + = ( ( getSimTime ( ) - % dtStats . ArmorTime [ % dtStats . lastArmor ] ) / 1000 ) / 60 ;
2020-10-02 15:01:54 -04:00
% dtStats . ArmorTime [ % dtStats . lastArmor ] = 0 ;
% dtStats . lastArmor = 0 ;
}
else if ( % dtStats . lastArmor $ = "Medium" & & % dtStats . ArmorTime [ % dtStats . lastArmor ] > 0 ) {
2021-06-02 13:16:13 -04:00
% dtStats . mArmorTime + = ( ( getSimTime ( ) - % dtStats . ArmorTime [ % dtStats . lastArmor ] ) / 1000 ) / 60 ;
2020-10-02 15:01:54 -04:00
% dtStats . ArmorTime [ % dtStats . lastArmor ] = 0 ;
% dtStats . lastArmor = 0 ;
}
else if ( % dtStats . lastArmor $ = "Heavy" & & % dtStats . ArmorTime [ % dtStats . lastArmor ] > 0 ) {
2021-06-02 13:16:13 -04:00
% dtStats . hArmorTime + = ( ( getSimTime ( ) - % dtStats . ArmorTime [ % dtStats . lastArmor ] ) / 1000 ) / 60 ;
2020-10-02 15:01:54 -04:00
% dtStats . ArmorTime [ % dtStats . lastArmor ] = 0 ;
% dtStats . lastArmor = 0 ;
}
if ( ! % death ) {
2021-06-02 13:16:13 -04:00
% dtStats . ArmorTime [ % size ] = getSimTime ( ) ;
% dtStats . lastArmor = % size ;
2020-10-02 15:01:54 -04:00
}
//error(%dtStats.lArmorTime SPC %dtStats.mArmorTime SPC %dtStats.hArmorTime);
}
2021-05-06 15:01:41 -04:00
function updateTeamTime ( % dtStats , % team ) {
if ( Game . numTeams > 1 ) {
% time = getSimTime ( ) - % dtStats . teamTime ;
if ( % team = = 1 ) {
2021-06-02 13:16:13 -04:00
% dtStats . timeOnTeamOne + = ( % time / 1000 ) / 60 ;
% dtStats . teamTime = getSimTime ( ) ;
2021-05-06 15:01:41 -04:00
}
else if ( % team = = 2 ) {
2021-06-02 13:16:13 -04:00
% dtStats . timeOnTeamTwo + = ( % time / 1000 ) / 60 ;
% dtStats . teamTime = getSimTime ( ) ;
}
2021-05-06 15:01:41 -04:00
else if ( % team = = 0 ) {
2021-06-02 13:16:13 -04:00
% dtStats . timeOnTeamZero + = ( % time / 1000 ) / 60 ;
% dtStats . teamTime = getSimTime ( ) ;
2021-05-06 15:01:41 -04:00
}
else {
2021-06-02 13:16:13 -04:00
% dtStats . teamTime = getSimTime ( ) ;
2021-05-06 15:01:41 -04:00
}
}
//error(%team SPC %dtStats.timeOnTeamZero SPC %dtStats.timeOnTeamOne SPC %dtStats.timeOnTeamTwo);
}
2020-11-02 15:02:14 -05:00
function deadDist ( % pos , % pl ) {
if ( isObject ( % pl ) ) {
2021-06-02 13:16:13 -04:00
% dist = vectorDist ( getWords ( % pos , 0 , 1 ) SPC 0 , getWords ( % pl . getPosition ( ) , 0 , 1 ) SPC 0 ) ; // 2d distance
2020-11-19 00:37:03 -05:00
//%dist = vectorDist(%pos,%pl.getPosition());
2020-11-02 15:02:14 -05:00
if ( % dist > % pl . client . dtStats . deadDist )
% pl . client . dtStats . deadDist = % dist ;
}
}
2019-11-20 14:43:50 -05:00
function clientKillStats ( % game , % clVictim , % clKiller , % damageType , % implement , % damageLocation ) {
2020-02-28 16:37:29 -05:00
if ( % damageType = = $ DamageType : : Explosion | | % damageType = = $ DamageType : : Ground | |
% damageType = = $ DamageType : : OutOfBounds | | % damageType = = $ DamageType : : Lava | |
2021-06-02 13:16:13 -04:00
% damageType = = $ DamageType : : VehicleSpawn | | % damageType = = $ DamageType : : ForceFieldPowerup | |
% damageType = = $ DamageType : : Lightning | | % damageType = = $ DamageType : : NexusCamping | |
2020-08-24 18:02:35 -04:00
% damageType = = $ DamageType : : Suicide ) {
if ( ( getSimTime ( ) - % clVictim . lastHitTime ) < 3000 )
% clKiller = % clVictim . lastHitBy ;
2020-09-02 20:23:52 -04:00
% clVictim . lastHitBy = 0 ;
2019-11-20 14:43:50 -05:00
}
2020-02-28 16:37:29 -05:00
else if ( ! isObject ( % clKiller ) & & isObject ( % implement ) ) {
2020-09-28 11:58:38 -04:00
if ( % damageType = = $ DamageType : : IndoorDepTurret | | % damageType = = $ DamageType : : OutdoorDepTurret ) {
2020-08-24 18:02:35 -04:00
% clKiller = % implement . owner ;
}
else
2021-06-02 13:16:13 -04:00
% clKiller = % implement . getControllingClient ( ) ;
2019-11-20 14:43:50 -05:00
}
2020-08-24 18:02:35 -04:00
% killerDT = % clKiller . dtStats ;
% victimDT = % clVictim . dtStats ;
2020-09-28 11:58:38 -04:00
//fail safe in case package is out of order
2020-09-24 12:19:15 -04:00
% victimPlayer = isObject ( % clVictim . player ) ? % clVictim . player : % clVictim . lastPlayer ;
% killerPlayer = isObject ( % clKiller . player ) ? % clKiller . player : % clKiller . lastPlayer ;
2020-02-28 16:37:29 -05:00
% clVictim . lp = "" ; //last position for distMove
2020-10-02 15:01:54 -04:00
armorTimer ( % victimDT , 0 , 1 ) ;
2020-08-24 18:02:35 -04:00
//------------------------------------------------------------------------------
% victimDT . timeToLive + = getSimTime ( ) - % clVictim . spawnTime ;
% victimDT . timeTL = mFloor ( ( % victimDT . timeToLive / ( % clVictim . deaths + % clVictim . suicides ? % clVictim . deaths + % clVictim . suicides : 1 ) ) / 1000 ) ;
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-11-09 16:02:11 -05:00
if ( % clKiller . team = = % clVictim . team & & % clKiller ! = % clVictim ) {
2020-08-24 18:02:35 -04:00
% killerDT . teamkillCount + + ;
2020-11-10 17:19:15 -05:00
if ( % damageType = = $ DamageType : : Missile ) {
2020-11-09 16:02:11 -05:00
% killerDT . missileTK + + ;
2020-11-10 17:19:15 -05:00
if ( getSimTime ( ) - % clKiller . flareHit < 256 ) {
% clKiller . flareSource . dtStats . flareKill + + ;
}
}
2020-11-09 16:02:11 -05:00
}
if ( getSimtime ( ) - % clKiller . lastDiscJump < 256 ) {
if ( % clKiller = = % clVictim ) {
% killerDT . discJump - - ; // we killed are self so remove stat
}
else {
% killerDT . killerDiscJump + + ;
}
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2019-04-01 16:02:48 -04:00
if ( % clKiller . team ! = % clVictim . team ) {
2020-11-02 15:02:14 -05:00
if ( isObject ( % victimPlayer ) & & isObject ( % killerPlayer ) & & % damageType ! = $ DamageType : : IndoorDepTurret & & % damageType ! = $ DamageType : : OutdoorDepTurret ) {
schedule ( $ CorpseTimeoutValue - 2000 , 0 , "deadDist" , % victimPlayer . getPosition ( ) , % victimPlayer ) ;
2020-08-24 18:02:35 -04:00
//------------------------------------------------------------------------------
2020-09-25 19:25:33 -04:00
% killerDT . ksCounter + + ; % victimDT . ksCounter = 0 ;
2020-08-24 18:02:35 -04:00
if ( % clVictim = = % clKiller | | % damageType = = $ DamageType : : Suicide | | % damageType = = $ DamageType : : Lava | | % damageType = = $ DamageType : : OutOfBounds | | % damageType = = $ DamageType : : Ground | | % damageType = = $ DamageType : : Lightning ) {
2020-09-25 19:25:33 -04:00
% victimDT . ksCounter = % killerDT . ksCounter = 0 ;
2020-08-24 18:02:35 -04:00
}
2020-09-25 19:25:33 -04:00
if ( % killerDT . killStreak < % killerDT . ksCounter ) {
% killerDT . killStreak = % killerDT . ksCounter ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-09-24 12:19:15 -04:00
if ( % victimPlayer . hitBy [ % clKiller ] ) {
2020-08-24 18:02:35 -04:00
% killerDT . assist - - ;
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-08-24 18:02:35 -04:00
% isCombo = 0 ;
2020-09-24 12:19:15 -04:00
if ( % killerPlayer . combo [ % victimPlayer ] > 1 ) {
2020-08-24 18:02:35 -04:00
% killerDT . comboCount + + ;
% isCombo = 1 ;
}
//------------------------------------------------------------------------------
if ( ! statsGroup . firstKill & & isGameRun ( ) ) {
statsGroup . firstKill = 1 ;
% killerDT . firstKill = 1 ;
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-08-24 18:02:35 -04:00
statsGroup . lastKill = % killerDT ;
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-09-24 12:19:15 -04:00
if ( % killerPlayer . getState ( ) $ = "Dead" ) {
2020-08-24 18:02:35 -04:00
% killerDT . deathKills + + ;
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-08-24 18:02:35 -04:00
if ( getSimTime ( ) - % clKiller . mKill < 256 ) {
% clKiller . mkCounter + + ;
if ( ! isEventPending ( % clKiller . mkID ) )
% clKiller . mkID = schedule ( 256 , 0 , "multiKillDelayer" , % clKiller , % killerDT ) ;
}
else {
if ( ! isEventPending ( % clKiller . mkID ) )
2021-06-02 13:16:13 -04:00
% clKiller . mkCounter = 1 ;
2020-08-24 18:02:35 -04:00
} % clKiller . mKill = getSimTime ( ) ;
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-08-24 18:02:35 -04:00
if ( getSimTime ( ) - % clKiller . mCKill < 10000 ) {
2020-09-28 11:58:38 -04:00
if ( % clKiller . chainCount + + > 1 )
chainKill ( % killerDT , % clKiller ) ;
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
else {
2021-06-02 13:16:13 -04:00
% clKiller . chainCount = 1 ;
2020-08-24 18:02:35 -04:00
} % clKiller . mCKill = getSimTime ( ) ;
2020-11-19 00:37:03 -05:00
//------------------------------------------------------------------------------
if ( % victimPlayer . inStation ) {
% victimDT . inventoryDeaths + + ;
% killerDT . inventoryKills + + ;
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-09-24 12:19:15 -04:00
if ( rayTest ( % victimPlayer , $ dtStats : : midAirHeight ) ) { % vcAir = 1 ; } else { % vcAir = 2 ; }
if ( rayTest ( % killerPlayer , $ dtStats : : midAirHeight ) ) { % kcAir = 1 ; } else { % kcAir = 2 ; }
2021-06-02 13:16:13 -04:00
2020-09-24 12:19:15 -04:00
switch $ ( % victimPlayer . getArmorSize ( ) ) {
2020-08-24 18:02:35 -04:00
case "Light" : % killerDT . armorL + + ; % victimDT . armorLD + + ;
2020-09-24 12:19:15 -04:00
switch $ ( % killerPlayer . getArmorSize ( ) ) {
2020-08-24 18:02:35 -04:00
case "Light" : % killerDT . armorLL + + ; % victimDT . armorLLD + + ;
case "Medium" : % killerDT . armorML + + ; % victimDT . armorLMD + + ;
case "Heavy" : % killerDT . armorHL + + ; % victimDT . armorLHD + + ;
2019-11-20 14:43:50 -05:00
}
2020-08-24 18:02:35 -04:00
case "Medium" : % killerDT . armorM + + ; % victimDT . armorMD + + ;
2020-09-24 12:19:15 -04:00
switch $ ( % killerPlayer . getArmorSize ( ) ) {
2020-08-24 18:02:35 -04:00
case "Light" : % killerDT . armorLM + + ; % victimDT . armorMLD + + ;
case "Medium" : % killerDT . armorMM + + ; % victimDT . armorMMD + + ;
case "Heavy" : % killerDT . armorHM + + ; % victimDT . armorMHD + + ;
2019-11-20 14:43:50 -05:00
}
2020-08-24 18:02:35 -04:00
case "Heavy" : % killerDT . armorH + + ; % victimDT . armorHD + + ;
2020-09-24 12:19:15 -04:00
switch $ ( % killerPlayer . getArmorSize ( ) ) {
2020-08-24 18:02:35 -04:00
case "Light" : % killerDT . armorLH + + ; % victimDT . armorHLD + + ;
case "Medium" : % killerDT . armorMH + + ; % victimDT . armorHMD + + ;
case "Heavy" : % killerDT . armorHH + + ; % victimDT . armorHHD + + ;
2019-11-20 14:43:50 -05:00
}
2020-11-02 15:02:14 -05:00
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-09-24 12:19:15 -04:00
% dis = vectorDist ( % killerPlayer . getPosition ( ) , % victimPlayer . getPosition ( ) ) ;
% victimVel = mFloor ( vectorLen ( % victimPlayer . getVelocity ( ) ) * 3.6 ) ;
2019-11-20 14:43:50 -05:00
}
2020-02-28 16:37:29 -05:00
else {
2021-06-02 13:16:13 -04:00
% kcAir = % vcAir = 0 ;
2020-09-24 12:19:15 -04:00
% dis = 0 ;
2020-02-28 16:37:29 -05:00
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-09-24 12:19:15 -04:00
if ( % clVictim . EVDamageType & & % clVictim . EVDamageType ! = % damageType & & ( getSimTime ( ) - % clVictim . EVDamagetime ) < 10000 ) { // they were hit by something befor they were killed
2020-08-24 18:02:35 -04:00
% killerDT . EVKillsWep + + ;
% victimDT . EVDeathsWep + + ;
2020-09-24 12:19:15 -04:00
if ( rayTest ( % victimPlayer , $ dtStats : : midAirHeight ) ) {
2020-09-02 20:23:52 -04:00
if ( % clVictim . EVDamageType = = $ DamageType : : Lightning & & ( getSimTime ( ) - % clVictim . EVDamagetime ) < 3000 ) {
2020-08-24 18:02:35 -04:00
% killerDT . lightningMAkills + + ;
2020-09-02 20:23:52 -04:00
% clKiller . dtMessage ( "Lightning MidAir Kill" , "fx/misc/MA2.wav" , 1 ) ;
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
else
% killerDT . EVMA + + ;
2020-02-28 16:37:29 -05:00
}
% clVictim . EVDamageType = 0 ;
}
2021-06-02 13:16:13 -04:00
//------------------------------------------------------------------------------
2020-08-24 18:02:35 -04:00
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . killAir + + ; % victimDT . deathAir + + ; % killerDT . killAirAir + + ; % victimDT . deathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . killAir + + ; % victimDT . deathAir + + ; % killerDT . killGroundAir + + ; % victimDT . deathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . killGround + + ; % victimDT . deathGround + + ; % killerDT . killAirGround + + ; % victimDT . deathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . killGround + + ; % victimDT . deathGround + + ; % killerDT . killGroundGround + + ; % victimDT . deathGroundGround + + ; }
2019-04-01 16:02:48 -04:00
switch $ ( % damageType ) { // list of all damage types to track see damageTypes.cs
case $ DamageType : : Bullet :
2020-08-24 18:02:35 -04:00
% killerDT . cgKills + + ;
% victimDT . cgDeaths + + ;
if ( % killerDT . cgKillDist < % dis ) { % killerDT . cgKillDist = % dis ; }
if ( % killerDT . cgKillVV < % victimVel ) { % killerDT . cgKillVV = % victimVel ; }
if ( % killerDT . cgKillSV < % clKiller . dtShotSpeed ) { % killerDT . cgKillSV = % clKiller . dtShotSpeed ; }
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % isCombo ) { % killerDT . cgCom + + ; }
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . cgKillAir + + ; % victimDT . cgDeathAir + + ; % killerDT . cgKillAirAir + + ; % victimDT . cgDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . cgKillAir + + ; % victimDT . cgDeathAir + + ; % killerDT . cgKillGroundAir + + ; % victimDT . cgDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . cgKillGround + + ; % victimDT . cgDeathGround + + ; % killerDT . cgKillAirGround + + ; % victimDT . cgDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . cgKillGround + + ; % victimDT . cgDeathGround + + ; % killerDT . cgKillGroundGround + + ; % victimDT . cgDeathGroundGround + + ; }
2019-04-01 16:02:48 -04:00
case $ DamageType : : Disc :
2020-08-24 18:02:35 -04:00
% killerDT . discKills + + ;
% victimDT . discDeaths + + ;
if ( % killerDT . discKillDist < % dis ) { % killerDT . discKillDist = % dis ; }
2021-06-02 13:16:13 -04:00
if ( % killerDT . discKillVV < % victimVel ) { % killerDT . discKillVV = % victimVel ; }
2020-08-24 18:02:35 -04:00
if ( % killerDT . discKillSV < % clKiller . dtShotSpeed ) { % killerDT . discKillSV = % clKiller . dtShotSpeed ; }
2020-09-29 15:20:15 -04:00
if ( % isCombo ) { % killerDT . discCom + + ; }
if ( % clKiller . mdHit ) { % killerDT . minePlusDiscKill + + ; }
2020-09-24 12:19:15 -04:00
2020-08-24 18:02:35 -04:00
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . discKillAir + + ; % victimDT . discDeathAir + + ; % killerDT . discKillAirAir + + ; % victimDT . discDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . discKillAir + + ; % victimDT . discDeathAir + + ; % killerDT . discKillGroundAir + + ; % victimDT . discDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . discKillGround + + ; % victimDT . discDeathGround + + ; % killerDT . discKillAirGround + + ; % victimDT . discDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . discKillGround + + ; % victimDT . discDeathGround + + ; % killerDT . discKillGroundGround + + ; % victimDT . discDeathGroundGround + + ; }
2021-06-02 13:16:13 -04:00
2020-11-09 16:02:11 -05:00
if ( getSimTime ( ) - % clKiller . discReflect < 256 ) { % killerDT . discReflectKill + + ; }
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
case $ DamageType : : Grenade :
2019-11-24 14:34:05 -05:00
if ( $ dtObjExplode . dtNade ) {
2020-08-24 18:02:35 -04:00
% killerDT . hGrenadeKills + + ;
% victimDT . hGrenadeDeaths + + ;
if ( % killerDT . hGrenadeKillDist < % dis ) { % killerDT . hGrenadeKillDist = % dis ; }
if ( % killerDT . hGrenadeKillVV < % victimVel ) { % killerDT . hGrenadeKillVV = % victimVel ; }
if ( % killerDT . hGrenadeKillSV < % clKiller . dtShotSpeed ) { % killerDT . hGrenadeKillSV = % clKiller . dtShotSpeed ; }
if ( % isCombo ) { % killerDT . hGrenadeCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . hGrenadeKillAir + + ; % victimDT . hGrenadeDeathAir + + ; % killerDT . hGrenadeKillAirAir + + ; % victimDT . hGrenadeDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . hGrenadeKillAir + + ; % victimDT . hGrenadeDeathAir + + ; % killerDT . hGrenadeKillGroundAir + + ; % victimDT . hGrenadeDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . hGrenadeKillGround + + ; % victimDT . hGrenadeDeathGround + + ; % killerDT . hGrenadeKillAirGround + + ; % victimDT . hGrenadeDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . hGrenadeKillGround + + ; % victimDT . hGrenadeDeathGround + + ; % killerDT . hGrenadeKillGroundGround + + ; % victimDT . hGrenadeDeathGroundGround + + ; }
2019-11-20 14:43:50 -05:00
}
else {
2020-08-24 18:02:35 -04:00
% killerDT . grenadeKills + + ;
% victimDT . grenadeDeaths + + ;
if ( % killerDT . grenadeKillDist < % dis ) { % killerDT . grenadeKillDist = % dis ; }
if ( % killerDT . grenadeKillVV < % victimVel ) { % killerDT . grenadeKillVV = % victimVel ; }
if ( % killerDT . grenadeKillSV < % clKiller . dtShotSpeed ) { % killerDT . grenadeKillSV = % clKiller . dtShotSpeed ; }
if ( % isCombo ) { % killerDT . grenadeCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . grenadeKillAir + + ; % victimDT . grenadeDeathAir + + ; % killerDT . grenadeKillAirAir + + ; % victimDT . grenadeDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . grenadeKillAir + + ; % victimDT . grenadeDeathAir + + ; % killerDT . grenadeKillGroundAir + + ; % victimDT . grenadeDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . grenadeKillGround + + ; % victimDT . grenadeDeathGround + + ; % killerDT . grenadeKillAirGround + + ; % victimDT . grenadeDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . grenadeKillGround + + ; % victimDT . grenadeDeathGround + + ; % killerDT . grenadeKillGroundGround + + ; % victimDT . grenadeDeathGroundGround + + ; }
2019-11-20 14:43:50 -05:00
}
2019-04-01 16:02:48 -04:00
case $ DamageType : : Laser :
2020-08-24 18:02:35 -04:00
% killerDT . laserKills + + ;
% victimDT . laserDeaths + + ;
if ( % killerDT . laserKillDist < % dis ) { % killerDT . laserKillDist = % dis ; }
if ( % killerDT . laserKillVV < % victimVel ) { % killerDT . laserKillVV = % victimVel ; }
if ( % killerDT . laserKillSV < % clKiller . dtShotSpeed ) { % killerDT . laserKillSV = % clKiller . dtShotSpeed ; }
if ( % isCombo ) { % killerDT . laserCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . laserKillAir + + ; % victimDT . laserDeathAir + + ; % killerDT . laserKillAirAir + + ; % victimDT . laserDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . laserKillAir + + ; % victimDT . laserDeathAir + + ; % killerDT . laserKillGroundAir + + ; % victimDT . laserDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . laserKillGround + + ; % victimDT . laserDeathGround + + ; % killerDT . laserKillAirGround + + ; % victimDT . laserDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . laserKillGround + + ; % victimDT . laserDeathGround + + ; % killerDT . laserKillGroundGround + + ; % victimDT . laserDeathGroundGround + + ; }
2019-04-01 16:02:48 -04:00
case $ DamageType : : Mortar :
2020-08-24 18:02:35 -04:00
% killerDT . mortarKills + + ;
% victimDT . mortarDeaths + + ;
if ( % killerDT . mortarKillDist < % dis ) { % killerDT . mortarKillDist = % dis ; }
if ( % killerDT . mortarKillVV < % victimVel ) { % killerDT . mortarKillVV = % victimVel ; }
if ( % killerDT . mortarKillSV < % clKiller . dtShotSpeed ) { % killerDT . mortarKillSV = % clKiller . dtShotSpeed ; }
if ( % isCombo ) { % killerDT . mortarCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . mortarKillAir + + ; % victimDT . mortarDeathAir + + ; % killerDT . mortarKillAirAir + + ; % victimDT . mortarDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . mortarKillAir + + ; % victimDT . mortarDeathAir + + ; % killerDT . mortarKillGroundAir + + ; % victimDT . mortarDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . mortarKillGround + + ; % victimDT . mortarDeathGround + + ; % killerDT . mortarKillAirGround + + ; % victimDT . mortarDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . mortarKillGround + + ; % victimDT . mortarDeathGround + + ; % killerDT . mortarKillGroundGround + + ; % victimDT . mortarDeathGroundGround + + ; }
2019-04-01 16:02:48 -04:00
case $ DamageType : : Missile :
2020-08-24 18:02:35 -04:00
% killerDT . missileKills + + ;
% victimDT . missileDeaths + + ;
if ( % killerDT . missileKillDist < % dis ) { % killerDT . missileKillDist = % dis ; }
if ( % killerDT . missileKillVV < % victimVel ) { % killerDT . missileKillVV = % victimVel ; }
if ( % killerDT . missileKillSV < % clKiller . dtShotSpeed ) { % killerDT . missileKillSV = % clKiller . dtShotSpeed ; }
if ( % isCombo ) { % killerDT . missileCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . missileKillAir + + ; % victimDT . missileDeathAir + + ; % killerDT . missileKillAirAir + + ; % victimDT . missileDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . missileKillAir + + ; % victimDT . missileDeathAir + + ; % killerDT . missileKillGroundAir + + ; % victimDT . missileDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . missileKillGround + + ; % victimDT . missileDeathGround + + ; % killerDT . missileKillAirGround + + ; % victimDT . missileDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . missileKillGround + + ; % victimDT . missileDeathGround + + ; % killerDT . missileKillGroundGround + + ; % victimDT . missileDeathGroundGround + + ; }
2019-04-01 16:02:48 -04:00
case $ DamageType : : ShockLance :
2020-08-24 18:02:35 -04:00
% killerDT . shockKills + + ;
% victimDT . shockDeaths + + ;
if ( % killerDT . shockKillDist < % dis ) { % killerDT . shockKillDist = % dis ; }
if ( % killerDT . shockKillVV < % victimVel ) { % killerDT . shockKillVV = % victimVel ; }
if ( % killerDT . shockKillSV < % clKiller . dtShotSpeed ) { % killerDT . shockKillSV = % clKiller . dtShotSpeed ; }
if ( % isCombo ) { % killerDT . shockCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . shockKillAir + + ; % victimDT . shockDeathAir + + ; % killerDT . shockKillAirAir + + ; % victimDT . shockDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . shockKillAir + + ; % victimDT . shockDeathAir + + ; % killerDT . shockKillGroundAir + + ; % victimDT . shockDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . shockKillGround + + ; % victimDT . shockDeathGround + + ; % killerDT . shockKillAirGround + + ; % victimDT . shockDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . shockKillGround + + ; % victimDT . shockDeathGround + + ; % killerDT . shockKillGroundGround + + ; % victimDT . shockDeathGroundGround + + ; }
2019-04-01 16:02:48 -04:00
case $ DamageType : : Plasma :
2020-08-24 18:02:35 -04:00
% killerDT . plasmaKills + + ;
% victimDT . plasmaDeaths + + ;
if ( % killerDT . plasmaKillDist < % dis ) { % killerDT . plasmaKillDist = % dis ; }
if ( % killerDT . plasmaKillVV < % victimVel ) { % killerDT . plasmaKillVV = % victimVel ; }
if ( % killerDT . plasmaKillSV < % clKiller . dtShotSpeed ) { % killerDT . plasmaKillSV = % clKiller . dtShotSpeed ; }
if ( % isCombo ) { % killerDT . plasmaCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . plasmaKillAir + + ; % victimDT . plasmaDeathAir + + ; % killerDT . plasmaKillAirAir + + ; % victimDT . plasmaDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . plasmaKillAir + + ; % victimDT . plasmaDeathAir + + ; % killerDT . plasmaKillGroundAir + + ; % victimDT . plasmaDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . plasmaKillGround + + ; % victimDT . plasmaDeathGround + + ; % killerDT . plasmaKillAirGround + + ; % victimDT . plasmaDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . plasmaKillGround + + ; % victimDT . plasmaDeathGround + + ; % killerDT . plasmaKillGroundGround + + ; % victimDT . plasmaDeathGroundGround + + ; }
2019-04-01 16:02:48 -04:00
case $ DamageType : : Blaster :
2020-08-24 18:02:35 -04:00
% killerDT . blasterKills + + ;
% victimDT . blasterDeaths + + ;
if ( % killerDT . blasterKillDist < % dis ) { % killerDT . blasterKillDist = % dis ; }
if ( % killerDT . blasterKillVV < % victimVel ) { % killerDT . blasterKillVV = % victimVel ; }
if ( % killerDT . blasterKillSV < % clKiller . dtShotSpeed ) { % killerDT . blasterKillSV = % clKiller . dtShotSpeed ; }
if ( % isCombo ) { % killerDT . blasterCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . blasterKillAir + + ; % victimDT . blasterDeathAir + + ; % killerDT . blasterKillAirAir + + ; % victimDT . blasterDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . blasterKillAir + + ; % victimDT . blasterDeathAir + + ; % killerDT . blasterKillGroundAir + + ; % victimDT . blasterDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . blasterKillGround + + ; % victimDT . blasterDeathGround + + ; % killerDT . blasterKillAirGround + + ; % victimDT . blasterDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . blasterKillGround + + ; % victimDT . blasterDeathGround + + ; % killerDT . blasterKillGroundGround + + ; % victimDT . blasterDeathGroundGround + + ; }
2020-11-09 16:02:11 -05:00
if ( getSimTime ( ) - % clKiller . blasterReflect < 256 ) { % killerDT . blasterReflectKill + + ; }
2019-04-01 16:02:48 -04:00
case $ DamageType : : ELF :
2020-08-24 18:02:35 -04:00
% killerDT . elfKills + + ;
% victimDT . elfDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Mine :
2020-08-24 18:02:35 -04:00
% killerDT . mineKills + + ;
% victimDT . mineDeaths + + ;
if ( % killerDT . mineKillDist < % dis ) { % killerDT . mineKillDist = % dis ; }
if ( % killerDT . mineKillVV < % victimVel ) { % killerDT . mineKillVV = % victimVel ; }
if ( % isCombo ) { % killerDT . mineCom + + ; }
2020-09-29 15:20:15 -04:00
if ( % clKiller . mdHit ) { % killerDT . minePlusDiscKill + + ; }
2020-08-24 18:02:35 -04:00
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . mineKillAir + + ; % victimDT . mineDeathAir + + ; % killerDT . mineKillAirAir + + ; % victimDT . mineDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . mineKillAir + + ; % victimDT . mineDeathAir + + ; % killerDT . mineKillGroundAir + + ; % victimDT . mineDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . mineKillGround + + ; % victimDT . mineDeathGround + + ; % killerDT . mineKillAirGround + + ; % victimDT . mineDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . mineKillGround + + ; % victimDT . mineDeathGround + + ; % killerDT . mineKillGroundGround + + ; % victimDT . mineDeathGroundGround + + ; }
case $ DamageType : : SatchelCharge :
% killerDT . satchelKills + + ;
% victimDT . satchelDeaths + + ;
if ( % killerDT . satchelKillDist < % dis ) { % killerDT . satchelKillDist = % dis ; }
if ( % killerDT . satchelKillVV < % victimVel ) { % killerDT . satchelKillVV = % victimVel ; }
if ( % isCombo ) { % killerDT . satchelCom + + ; }
if ( % kcAir = = 1 & & % vcAir = = 1 ) { % killerDT . satchelKillAir + + ; % victimDT . satchelDeathAir + + ; % killerDT . satchelKillAirAir + + ; % victimDT . satchelDeathAirAir + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 1 ) { % killerDT . satchelKillAir + + ; % victimDT . satchelDeathAir + + ; % killerDT . satchelKillGroundAir + + ; % victimDT . satchelDeathGroundAir + + ; }
else if ( % kcAir = = 1 & & % vcAir = = 2 ) { % killerDT . satchelKillGround + + ; % victimDT . satchelDeathGround + + ; % killerDT . satchelKillAirGround + + ; % victimDT . satchelDeathAirGround + + ; }
else if ( % kcAir = = 2 & & % vcAir = = 2 ) { % killerDT . satchelKillGround + + ; % victimDT . satchelDeathGround + + ; % killerDT . satchelKillGroundGround + + ; % victimDT . satchelDeathGroundGround + + ; }
2019-04-01 16:02:48 -04:00
case $ DamageType : : Explosion :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) { % killerDT . explosionKills + + ; }
2020-08-24 18:02:35 -04:00
% victimDT . explosionDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Impact :
2019-11-20 14:43:50 -05:00
if ( isObject ( % clKiller . vehicleMounted ) ) {
% veh = % clKiller . vehicleMounted . getDataBlock ( ) . getName ( ) ;
2020-08-24 18:02:35 -04:00
% killerDT . roadKills + + ; % victimDT . roadDeaths + + ;
2019-11-20 14:43:50 -05:00
switch $ ( % veh ) {
2020-08-24 18:02:35 -04:00
case "ScoutVehicle" : % killerDT . wildRK + + ; % victimDT . wildRD + + ;
case "AssaultVehicle" : % killerDT . assaultRK + + ; % victimDT . assaultRD + + ;
case "MobileBaseVehicle" : % killerDT . mobileBaseRK + + ; % victimDT . mobileBaseRD + + ;
case "ScoutFlyer" : % killerDT . scoutFlyerRK + + ; % victimDT . scoutFlyerRD + + ;
case "BomberFlyer" : % killerDT . bomberFlyerRK + + ; % victimDT . bomberFlyerRD + + ;
case "HAPCFlyer" : % killerDT . hapcFlyerRK + + ; % victimDT . hapcFlyerRD + + ;
2019-11-20 14:43:50 -05:00
}
}
2020-08-24 18:02:35 -04:00
% killerDT . impactKills + + ;
% victimDT . impactDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Ground :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) { % killerDT . groundKills + + ; }
2020-08-24 18:02:35 -04:00
% victimDT . groundDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : PlasmaTurret :
2020-08-24 18:02:35 -04:00
% killerDT . plasmaTurretKills + + ;
% victimDT . plasmaTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : AATurret :
2020-08-24 18:02:35 -04:00
% killerDT . aaTurretKills + + ;
% victimDT . aaTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : ElfTurret :
2020-08-24 18:02:35 -04:00
% killerDT . elfTurretKills + + ;
% victimDT . elfTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : MortarTurret :
2020-08-24 18:02:35 -04:00
% killerDT . mortarTurretKills + + ;
% victimDT . mortarTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : MissileTurret :
2020-08-24 18:02:35 -04:00
% killerDT . missileTurretKills + + ;
% victimDT . missileTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : IndoorDepTurret :
2020-08-24 18:02:35 -04:00
% killerDT . indoorDepTurretKills + + ;
% victimDT . indoorDepTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : OutdoorDepTurret :
2020-08-24 18:02:35 -04:00
% killerDT . outdoorDepTurretKills + + ;
% victimDT . outdoorDepTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : SentryTurret :
2020-08-24 18:02:35 -04:00
% killerDT . sentryTurretKills + + ;
% victimDT . sentryTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : OutOfBounds :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) { % killerDT . outOfBoundKills + + ; }
2020-08-24 18:02:35 -04:00
% victimDT . outOfBoundDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Lava :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) { % killerDT . lavaKills + + ; }
2020-08-24 18:02:35 -04:00
% victimDT . lavaDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : ShrikeBlaster :
2020-08-24 18:02:35 -04:00
% killerDT . shrikeBlasterKills + + ;
% victimDT . shrikeBlasterDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : BellyTurret :
2020-08-24 18:02:35 -04:00
% killerDT . bellyTurretKills + + ;
% victimDT . bellyTurretDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : BomberBombs :
2020-08-24 18:02:35 -04:00
% killerDT . bomberBombsKills + + ;
% victimDT . bomberBombsDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : TankChaingun :
2020-08-24 18:02:35 -04:00
% killerDT . tankChaingunKills + + ;
% victimDT . tankChaingunDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : TankMortar :
2020-08-24 18:02:35 -04:00
% killerDT . tankMortarKills + + ;
% victimDT . tankMortarDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Lightning :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) {
% killerDT . lightningKills + + ;
if ( % vcAir = = 1 & & ( getSimTime ( ) - % clVictim . lastHitTime ) < 3000 & & % clVictim . lastHitMA ) {
% killerDT . lightningMAEVKills + + ;
% killerDT . lightningMAkills + + ;
% clKiller . dtMessage ( "Lightning MidAir EV Kill" , "fx/misc/MA2.wav" , 1 ) ;
}
}
2020-08-24 18:02:35 -04:00
% victimDT . lightningDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : VehicleSpawn :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) { % killerDT . vehicleSpawnKills + + ; }
2020-08-24 18:02:35 -04:00
% victimDT . vehicleSpawnDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : ForceFieldPowerup :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) { % killerDT . forceFieldPowerUpKills + + ; }
2020-08-24 18:02:35 -04:00
% victimDT . forceFieldPowerUpDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Crash :
2020-08-24 18:02:35 -04:00
% killerDT . crashKills + + ;
% victimDT . crashDeaths + + ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : NexusCamping :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) { % killerDT . nexusCampingKills + + ; }
2020-08-24 18:02:35 -04:00
% victimDT . nexusCampingDeaths + + ;
case $ DamageType : : Suicide :
2020-09-02 20:23:52 -04:00
if ( % clKiller ) { % killerDT . ctrlKKills + + ; }
2020-08-24 18:02:35 -04:00
//%victimDT.ctrlKKills++;
2019-04-01 16:02:48 -04:00
}
}
}
2020-08-24 18:02:35 -04:00
function multiKillDelayer ( % clKiller , % killerDT ) {
switch ( % clKiller . mkCounter ) {
case 2 :
% killerDT . doubleKill + + ;
case 3 :
% killerDT . tripleKill + + ;
case 4 :
% killerDT . quadrupleKill + + ;
case 5 :
% killerDT . quintupleKill + + ;
case 6 :
% killerDT . sextupleKill + + ;
case 7 :
% killerDT . septupleKill + + ;
case 8 :
% killerDT . octupleKill + + ;
case 9 :
% killerDT . nonupleKill + + ;
case 10 :
% killerDT . decupleKill + + ;
default :
if ( % clKiller . mkCounter > 10 )
2020-09-28 11:58:38 -04:00
% killerDT . nuclearKill + + ;
2020-08-24 18:02:35 -04:00
}
% killerDT . multiKill + + ;
% clKiller . mkCounter = 1 ;
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
2020-09-28 11:58:38 -04:00
function chainKill ( % killerDT , % clKiller ) {
% killerDT . chainKill + + ;
2020-08-24 18:02:35 -04:00
switch ( % clKiller . chainCount ) {
case 2 :
% killerDT . doubleChainKill + + ;
case 3 :
% killerDT . tripleChainKill + + ;
case 4 :
% killerDT . quadrupleChainKill + + ;
case 5 :
% killerDT . quintupleChainKill + + ;
case 6 :
% killerDT . sextupleChainKill + + ;
2020-09-28 11:58:38 -04:00
case 7 :
2021-06-02 13:16:13 -04:00
% killerDT . septupleChainKill + + ;
2020-09-28 11:58:38 -04:00
case 8 :
2021-06-02 13:16:13 -04:00
% killerDT . octupleChainKill + + ;
2020-09-28 11:58:38 -04:00
case 9 :
2021-06-02 13:16:13 -04:00
% killerDT . nonupleChainKill + + ;
2020-09-28 11:58:38 -04:00
case 10 :
% killerDT . decupleChainKill + + ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
}
2020-09-02 20:23:52 -04:00
function GameConnection : : dtMessage ( % this , % message , % sfx , % bypass ) {
2020-08-24 18:02:35 -04:00
if ( ! % this . isAIControlled ( ) ) {
% diff = getSimTime ( ) - % this . dtLastMessage ;
2020-09-02 20:23:52 -04:00
if ( % sfx ! $ = "" & & % bypass ) {
% this . dtLastMessage = getSimTime ( ) ;
messageClient ( % this , ' MsgClient ' , "\c2" @ % message @ "~w" @ % sfx ) ;
}
else if ( % sfx ! $ = "" & & % diff > 256 ) { // limits sound spam
2020-08-24 18:02:35 -04:00
% this . dtLastMessage = getSimTime ( ) ;
messageClient ( % this , ' MsgClient ' , "\c2" @ % message @ "~w" @ % sfx ) ;
}
else
messageClient ( % this , ' MsgClient ' , "\c2" @ % message ) ;
2021-06-02 13:16:13 -04:00
BottomPrint ( % this , "\n" @ % message , 2 , 3 ) ;
2020-08-24 18:02:35 -04:00
}
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
2019-11-20 14:43:50 -05:00
function rayTest ( % targetObject , % dis ) {
2020-09-25 19:25:33 -04:00
if ( isObject ( % targetObject ) ) {
2021-04-28 01:17:44 -04:00
% mask = $ TypeMasks : : StaticShapeObjectType | $ TypeMasks : : InteriorObjectType | $ TypeMasks : : TerrainObjectType | $ TypeMasks : : ForceFieldObjectType | $ TypeMasks : : VehicleObjectType ;
2020-09-25 19:25:33 -04:00
% rayStart = % targetObject . getWorldBoxCenter ( ) ;
% rayEnd = VectorAdd ( % rayStart , "0 0" SPC ( ( % dis + 1.15 ) * - 1 ) ) ;
2021-06-02 13:16:13 -04:00
% ground = ! ContainerRayCast ( % rayStart , % rayEnd , % mask , % targetObject ) ;
return % ground ;
2020-09-25 19:25:33 -04:00
}
2020-09-28 11:58:38 -04:00
else
2021-06-02 13:16:13 -04:00
return 0 ;
2019-11-20 14:43:50 -05:00
}
2020-08-24 18:02:35 -04:00
function rayTestDis ( % targetObject ) {
2020-09-25 19:25:33 -04:00
if ( isObject ( % targetObject ) ) {
2021-04-28 01:17:44 -04:00
% mask = $ TypeMasks : : StaticShapeObjectType | $ TypeMasks : : InteriorObjectType | $ TypeMasks : : TerrainObjectType | $ TypeMasks : : ForceFieldObjectType | $ TypeMasks : : VehicleObjectType ;
2020-09-25 19:25:33 -04:00
% rayStart = % targetObject . getWorldBoxCenter ( ) ;
% rayEnd = VectorAdd ( % rayStart , "0 0" SPC - 5000 ) ;
2021-06-02 13:16:13 -04:00
% ray = ContainerRayCast ( % rayStart , % rayEnd , % mask , % targetObject ) ;
2020-09-25 19:25:33 -04:00
if ( ! % ray )
return 0 ;
return vectorDist ( % rayStart , getWords ( % ray , 1 , 3 ) ) - 1.15 ;
}
2020-09-28 11:58:38 -04:00
else
2020-08-24 18:02:35 -04:00
return 0 ;
}
2021-05-06 15:01:41 -04:00
2020-08-24 18:02:35 -04:00
function testHit ( % client ) {
2021-06-02 13:16:13 -04:00
if ( isObject ( % client ) ) {
2020-08-24 18:02:35 -04:00
% field = % client . lastExp ;
% data = getField ( % field , 0 ) ; % sPos = getField ( % field , 1 ) ; % ePos = getField ( % field , 2 ) ;
if ( % data . hasDamageRadius ) {
% mask = $ TypeMasks : : PlayerObjectType ;
% vec = vectorNormalize ( vectorSub ( % ePos , % sPos ) ) ; // some how this vector works
2021-06-02 13:16:13 -04:00
% ray = containerRayCast ( % ePos , VectorAdd ( % ePos , VectorScale ( VectorNormalize ( % vec ) , 5 ) ) , % mask , % client . player ) ;
2020-08-24 18:02:35 -04:00
if ( % ray ) {
2021-05-06 15:01:41 -04:00
//%dmgType = %data.radiusDamageType;
2020-09-28 11:58:38 -04:00
//error(%dmgType);
2020-08-24 18:02:35 -04:00
return 1 ;
2020-09-25 19:25:33 -04:00
}
2019-11-20 14:43:50 -05:00
}
}
2020-08-24 18:02:35 -04:00
return 0 ;
}
2020-11-09 16:02:11 -05:00
function clientDmgStats ( % data , % position , % sourceObject , % targetObject , % damageType , % amount ) {
2020-08-24 18:02:35 -04:00
if ( % damageType = = $ DamageType : : Explosion | | % damageType = = $ DamageType : : Ground | |
% damageType = = $ DamageType : : OutOfBounds | | % damageType = = $ DamageType : : Lava | |
2021-06-02 13:16:13 -04:00
% damageType = = $ DamageType : : VehicleSpawn | | % damageType = = $ DamageType : : ForceFieldPowerup | |
2020-08-24 18:02:35 -04:00
% damageType = = $ DamageType : : Lightning | | % damageType = = $ DamageType : : NexusCamping ) {
2021-06-02 13:16:13 -04:00
if ( isObject ( % targetObject ) ) {
% targetObject . client . EVDamageType = % damageType ;
2020-09-24 12:19:15 -04:00
% targetObject . client . EVDamagetime = getSimTime ( ) ;
}
2021-06-02 13:16:13 -04:00
if ( getSimTime ( ) - % targetClient . lastHitTime < 5000 ) {
2020-09-24 12:19:15 -04:00
% sourceClient = % targetClient . lastHitBy ;
if ( rayTest ( % targetObject , $ dtStats : : midAirHeight ) & & % damageType = = $ DamageType : : Lightning )
% sourceClient . dtStats . lightningMAEVHits + + ;
2020-09-25 19:25:33 -04:00
else
2021-05-06 15:01:41 -04:00
% sourceClient . dtStats . EVMAHit + + ;
2020-09-24 12:19:15 -04:00
}
return ;
2020-09-25 19:25:33 -04:00
}
2020-08-24 18:02:35 -04:00
//------------------------------------------------------------------------------
2020-09-02 20:23:52 -04:00
if ( % amount > 0 & & % damageType > 0 ) {
2021-06-02 13:16:13 -04:00
if ( isObject ( % sourceObject ) ) {
2020-09-02 20:23:52 -04:00
% sourceClass = % sourceObject . getClassName ( ) ;
if ( % sourceClass $ = "Player" ) {
% sourceClient = % sourceObject . client ;
2020-09-24 12:19:15 -04:00
% sourceClient . lastPlayer = % sourceClient . player ;
2020-09-02 20:23:52 -04:00
% sourceDT = % sourceClient . dtStats ;
2020-09-28 11:58:38 -04:00
% directHit = testHit ( % sourceClient ) ;
2020-09-02 20:23:52 -04:00
% sv = mFloor ( vectorLen ( % sourceObject . getVelocity ( ) ) * 3.6 ) ;
}
else if ( % sourceClass $ = "Turret" | | % sourceClass $ = "FlyingVehicle" | | % sourceClass $ = "HoverVehicle" | | % sourceClass $ = "WheeledVehicle" ) {
% sourceClient = % sourceObject . getControllingClient ( ) ;
% sourceDT = % sourceClient . dtStats ;
2020-09-28 11:58:38 -04:00
% directHit = 0 ;
2020-09-02 20:23:52 -04:00
}
else {
2020-09-28 11:58:38 -04:00
% directHit = 0 ;
2020-09-02 20:23:52 -04:00
}
2019-11-20 14:43:50 -05:00
}
2020-08-24 18:02:35 -04:00
if ( isObject ( % targetObject ) ) {
2020-09-02 20:23:52 -04:00
% targetClass = % targetObject . getClassName ( ) ;
if ( % targetClass $ = "Player" ) {
% targetClient = % targetObject . client ;
2021-06-02 13:16:13 -04:00
% targetClient . lastPlayer = % targetClient . player ; //used for when some how client kill is out of order
2020-09-02 20:23:52 -04:00
% targetDT = % targetClient . dtStats ;
2021-06-02 13:16:13 -04:00
% vv = mFloor ( vectorLen ( % targetObject . getVelocity ( ) ) * 3.6 ) ;
2020-11-09 16:02:11 -05:00
if ( % sourceClass $ = "Player" & & % sourceObject = = % targetObject & & % damageType = = $ DamageType : : Disc ) {
if ( getSimtime ( ) - % sourceClient . lastDiscJump < 256 )
% sourceDT . discJump + + ;
}
2020-11-10 17:19:15 -05:00
if ( % sourceClass $ = "Player" & & % targetClient . team = = % sourceClient . team & & % sourceObject ! = % targetObject ) {
2020-11-02 15:02:14 -05:00
% sourceDT . friendlyFire + + ;
2020-11-10 17:19:15 -05:00
if ( getSimTime ( ) - % sourceClient . flareHit < 256 ) { % sourceClient . flareSource . dtStats . flareHit + + ; }
}
2020-09-02 20:23:52 -04:00
if ( % sourceClass $ = "Player" & & % targetClient . team ! = % sourceClient . team & & % sourceObject ! = % targetObject ) {
% dis = vectorDist ( % targetObject . getPosition ( ) , % sourceObject . getPosition ( ) ) ;
if ( ! % targetObject . combo [ % sourceClient , % damageType ] ) {
% targetObject . combo [ % sourceClient , % damageType ] = 1 ;
% sourceClient . player . combo [ % targetObject ] + + ;
2019-11-20 14:43:50 -05:00
}
2021-06-02 13:16:13 -04:00
2020-09-02 20:23:52 -04:00
if ( ! % targetObject . hitBy [ % sourceClient ] ) {
% sourceDT . assist + + ;
2021-06-02 13:16:13 -04:00
% targetObject . hitBy [ % sourceClient ] = 1 ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
2020-09-02 20:23:52 -04:00
% targetClient . lastHitBy = % sourceClient ;
% targetClient . lastHitTime = getSimTime ( ) ;
2021-06-02 13:16:13 -04:00
2020-09-24 12:19:15 -04:00
if ( % targetClient . EVDamageType & & % targetClient . EVDamageType ! = % damageType & & ( getSimTime ( ) - % targetClient . EVDamagetime ) < 3000 ) { // they were hit by something befor they were killed
2020-09-02 20:23:52 -04:00
% sourceDT . EVHitWep + + ;
2020-09-24 12:19:15 -04:00
if ( rayTest ( % targetObject , $ dtStats : : midAirHeight ) & & % damageType ! = $ DamageType : : Bullet ) {
if ( % targetClient . EVDamageType = = $ DamageType : : Lightning ) {
2020-09-02 20:23:52 -04:00
% sourceDT . lightningMAHits + + ;
2020-09-24 12:19:15 -04:00
//%sourceClient.dtMessage("Lightning MidAir Hit","fx/Bonuses/down_perppass3_bunnybump.wav",0);
2020-08-24 18:02:35 -04:00
}
else
2020-09-02 20:23:52 -04:00
% sourceDT . EVMAHit + + ;
2020-08-24 18:02:35 -04:00
}
2020-09-02 20:23:52 -04:00
if ( ( getSimTime ( ) - % targetClient . EVDamagetime ) > 3000 ) {
% targetClient . EVDamageType = 0 ;
2020-08-24 18:02:35 -04:00
}
}
2021-06-02 13:16:13 -04:00
2020-09-02 20:23:52 -04:00
% dmgL = % targetObject . getDamageLocation ( % position ) ;
switch $ ( getWord ( % dmgL , 0 ) ) {
2020-11-10 17:19:15 -05:00
case "legs" : % sourceDT . hitLegs + + ; //%targetDT.hitTakenLegs++;
//switch$(getWord(%dmgL,1)){
//case "front_right":%sourceDT.hitLegFrontR++;%targetDT.hitTakenLegFrontR++;
//case "front_Left":%sourceDT.hitLegFrontL++;%targetDT.hitTakenLegFrontL++;
//case "back_right":%sourceDT.hitLegBackR++;%targetDT.hitTakenLegBackR++;
//case "back_Left":%sourceDT.hitLegBackL++;%targetDT.hitTakenLegBackL++;
//}
case "torso" : % sourceDT . hitTorso + + ; //%targetDT.hitTakenTorso++;
//switch$(getWord(%dmgL,1)){
//case "front_right":%sourceDT.hitTorsoFrontR++;%targetDT.hitTakenTorsoFrontR++;
//case "front_Left":%sourceDT.hitTorsoFrontL++;%targetDT.hitTakenTorsoFrontL++;
//case "back_right":%sourceDT.hitTorsoBackR++;%targetDT.hitTakenTorsoBackR++;
//case "back_Left":%sourceDT.hitTorsoBackL++;%targetDT.hitTakenTorsoBackL++;
//}
case "head" : % sourceDT . hitHead + + ; //%targetDT.hitTakenHead++;
//switch$(getWord(%dmgL,1)){
//case "middle_front":%sourceDT.hitHeadFront++;%targetDT.hitTakenHeadFront++;
//case "middle_back":%sourceDT.hitHeadBack++; %targetDT.hitTakenHeadBack++;
//case "right_middle":%sourceDT.hitHeadRight++;%targetDT.hitTakenHeadRight++;
//case "left_middle":%sourceDT.hitHeadLeft++; %targetDT.hitTakenHeadLeft++;
2021-06-02 13:16:13 -04:00
//}
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
% rayTest = rayTestDis ( % targetObject ) ;
2020-09-02 20:23:52 -04:00
if ( % rayTest > = $ dtStats : : midAirHeight & & % damageType ! = $ DamageType : : Bullet ) {
if ( % sourceDT . maHitDist < % dis ) { % sourceDT . maHitDist = % dis ; }
if ( % sourceDT . maHitHeight < % rayTest ) { % sourceDT . maHitHeight = % rayTest ; }
2021-06-02 13:16:13 -04:00
if ( % sourceDT . maHitSV < % sv ) { % sourceDT . maHitSV = % sv ; }
% targetClient . lastHitMA = 1 ;
}
2020-09-02 20:23:52 -04:00
else {
2021-06-02 13:16:13 -04:00
% targetClient . lastHitMA = 0 ;
2020-08-24 18:02:35 -04:00
}
2020-09-02 20:23:52 -04:00
switch $ ( % damageType ) { // list of all damage types to track see damageTypes.cs
case $ DamageType : : Blaster :
% sourceDT . blasterDmg + = % amount ;
% sourceDT . blasterHits + + ;
% sourceDT . blasterACC = ( % sourceDT . blasterHits / ( % sourceDT . blasterShotsFired ? % sourceDT . blasterShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . blasterHitDist < % dis ) { % sourceDT . blasterHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . blasterMAHitDist < % dis ) { % sourceDT . blasterMAHitDist = % dis ; }
2020-09-02 20:23:52 -04:00
% sourceDT . blasterMA + + ;
2021-06-02 13:16:13 -04:00
}
if ( % sourceDT . blasterHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . blasterHitSV = % sourceObject . client . dtShotSpeed ; }
if ( % sourceDT . blasterHitVV < % vv ) { % sourceDT . blasterHitVV = % vv ; }
if ( getSimTime ( ) - % sourceObject . client . blasterReflect < 256 ) { % sourceDT . blasterReflectHit + + ; }
2020-09-02 20:23:52 -04:00
case $ DamageType : : Plasma :
% sourceDT . plasmaDmg + = % amount ;
2020-09-28 11:58:38 -04:00
if ( % directHit ) { % sourceDT . plasmaHits + + ; % sourceDT . plasmaDmgHits + + ; }
2020-09-02 20:23:52 -04:00
else { % sourceDT . plasmaDmgHits + + ; }
% sourceDT . plasmaACC = ( % sourceDT . plasmaHits / ( % sourceDT . plasmaShotsFired ? % sourceDT . plasmaShotsFired : 1 ) ) * 100 ;
% sourceDT . plasmaDmgACC = ( % sourceDT . plasmaDmgHits / ( % sourceDT . plasmaShotsFired ? % sourceDT . plasmaShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . plasmaHitDist < % dis ) { % sourceDT . plasmaHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . plasmaMAHitDist < % dis ) { % sourceDT . plasmaMAHitDist = % dis ; }
if ( % directHit ) {
2020-09-02 20:23:52 -04:00
% sourceDT . plasmaMA + + ;
% sourceDT . plasmaAoeMA + + ;
}
else
% sourceDT . plasmaAoeMA + + ;
}
2021-06-02 13:16:13 -04:00
if ( % sourceDT . plasmaHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . plasmaHitSV = % sourceObject . client . dtShotSpeed ; }
if ( % sourceDT . plasmaHitVV < % vv ) { % sourceDT . plasmaHitVV = % vv ; }
2020-09-02 20:23:52 -04:00
case $ DamageType : : Bullet :
% sourceDT . cgDmg + = % amount ;
% sourceDT . cgHits + + ;
2021-06-02 13:16:13 -04:00
2020-09-02 20:23:52 -04:00
% sourceDT . cgACC = ( % sourceDT . cgHits / ( % sourceDT . cgShotsFired ? % sourceDT . cgShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . cgHitDist < % dis ) { % sourceDT . cgHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . cgMAHitDist < % dis ) { % sourceDT . cgMAHitDist = % dis ; }
2020-09-02 20:23:52 -04:00
% sourceDT . cgMA + + ;
}
2021-06-02 13:16:13 -04:00
if ( % sourceDT . cgHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . cgHitSV = % sourceObject . client . dtShotSpeed ; }
if ( % sourceDT . cgHitVV < % vv ) { % sourceDT . cgHitVV = % vv ; }
2020-09-02 20:23:52 -04:00
case $ DamageType : : Disc :
% sourceDT . discDmg + = % amount ;
2020-09-28 11:58:38 -04:00
if ( % directHit ) { % sourceDT . discHits + + ; % sourceDT . discDmgHits + + ; }
2021-06-02 13:16:13 -04:00
else { % sourceDT . discDmgHits + + ; }
2020-09-02 20:23:52 -04:00
% sourceDT . discACC = ( % sourceDT . discHits / ( % sourceDT . discShotsFired ? % sourceDT . discShotsFired : 1 ) ) * 100 ;
% sourceDT . discDmgACC = ( % sourceDT . discDmgHits / ( % sourceDT . discShotsFired ? % sourceDT . discShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . discHitDist < % dis ) { % sourceDT . discHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
2020-09-29 15:20:15 -04:00
% sourceClient . mdHit = 0 ;
if ( ( getSimTime ( ) - % targetClient . mdTime1 ) < 256 ) { % sourceDT . minePlusDisc + + ; % sourceClient . mdHit = 1 ; }
2021-06-02 13:16:13 -04:00
% targetClient . mdTime2 = getSimTime ( ) ;
2020-09-02 20:23:52 -04:00
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . discMAHitDist < % dis ) { % sourceDT . discMAHitDist = % dis ; }
if ( % directHit ) {
2020-09-02 20:23:52 -04:00
% sourceDT . discMA + + ;
2021-06-02 13:16:13 -04:00
% sourceDT . discAoeMA + + ;
2020-09-02 20:23:52 -04:00
}
else
2021-06-02 13:16:13 -04:00
% sourceDT . discAoeMA + + ;
}
if ( % sourceDT . discHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . discHitSV = % sourceObject . client . dtShotSpeed ; }
2020-09-02 20:23:52 -04:00
if ( % sourceDT . discHitVV < % vv ) { % sourceDT . discHitVV = % vv ; }
2020-11-09 16:02:11 -05:00
if ( getSimTime ( ) - % sourceObject . client . discReflect < 256 ) { % sourceDT . discReflectHit + + ; }
2020-09-02 20:23:52 -04:00
case $ DamageType : : Grenade :
if ( $ dtObjExplode . dtNade ) {
% sourceDT . hGrenadeDmg + = % amount ;
% sourceDT . hGrenadeHits + + ;
% sourceDT . hGrenadeACC = ( % sourceDT . hGrenadeHits / ( % sourceDT . hGrenadeShotsFired ? % sourceDT . hGrenadeShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . hGrenadeHitDist < % dis ) { % sourceDT . hGrenadeHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . hGrenadeMAHitDist < % dis ) { % sourceDT . hGrenadeMAHitDist = % dis ; }
2020-09-02 20:23:52 -04:00
% sourceDT . hGrenadeMA + + ;
}
2021-06-02 13:16:13 -04:00
if ( % sourceDT . hGrenadeHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . hGrenadeHitSV = % sourceObject . client . dtShotSpeed ; }
2020-09-02 20:23:52 -04:00
if ( % sourceDT . hGrenadeHitVV < % vv ) { % sourceDT . hGrenadeHitVV = % vv ; }
}
else {
% sourceDT . grenadeDmg + = % amount ;
2020-09-28 11:58:38 -04:00
if ( % directHit ) { % sourceDT . grenadeHits + + ; % sourceDT . grenadeDmgHits + + ; }
2021-06-02 13:16:13 -04:00
else { % sourceDT . grenadeDmgHits + + ; }
2020-09-02 20:23:52 -04:00
% sourceDT . grenadeACC = ( % sourceDT . grenadeHits / ( % sourceDT . grenadeShotsFired ? % sourceDT . grenadeShotsFired : 1 ) ) * 100 ;
% sourceDT . grenadeDmgACC = ( % sourceDT . grenadeDmgHits / ( % sourceDT . grenadeShotsFired ? % sourceDT . grenadeShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . grenadeHitDist < % dis ) { % sourceDT . grenadeHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . grenadeMAHitDist < % dis ) { % sourceDT . grenadeMAHitDist = % dis ; }
if ( % directHit ) {
2020-09-02 20:23:52 -04:00
% sourceDT . grenadeMA + + ;
% sourceDT . grenadeAoeMA + + ;
}
else
% sourceDT . grenadeAoeMA + + ;
}
2021-06-02 13:16:13 -04:00
if ( % sourceDT . grenadeHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . grenadeHitSV = % sourceObject . client . dtShotSpeed ; }
2020-09-02 20:23:52 -04:00
if ( % sourceDT . grenadeHitVV < % vv ) { % sourceDT . grenadeHitVV = % vv ; }
2021-06-02 13:16:13 -04:00
}
2020-09-02 20:23:52 -04:00
case $ DamageType : : Laser :
if ( % targetObject . getClassName ( ) $ = "Player" ) {
% damLoc = % targetObject . getDamageLocation ( % position ) ;
if ( getWord ( % damLoc , 0 ) $ = "head" & & % sourceClient . team ! = % targetClient . team ) {
% sourceDT . laserHeadShot + + ;
}
}
% sourceDT . laserDmg + = % amount ;
% sourceDT . laserHits + + ;
% sourceDT . laserACC = ( % sourceDT . laserHits / ( % sourceDT . laserShotsFired ? % sourceDT . laserShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . laserHitDist < % dis ) { % sourceDT . laserHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . laserMAHitDist < % dis ) { % sourceDT . laserMAHitDist = % dis ; }
2020-09-02 20:23:52 -04:00
% sourceDT . laserMA + + ;
}
2021-06-02 13:16:13 -04:00
if ( % sourceDT . laserHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . laserHitSV = % sourceObject . client . dtShotSpeed ; }
2020-09-02 20:23:52 -04:00
if ( % sourceDT . laserHitVV < % vv ) { % sourceDT . laserHitVV = % vv ; }
case $ DamageType : : Mortar :
% sourceDT . mortarDmg + = % amount ;
2020-09-28 11:58:38 -04:00
if ( % directHit ) { % sourceDT . mortarHits + + ; % sourceDT . mortarDmgHits + + ; }
2020-09-02 20:23:52 -04:00
else { % sourceDT . mortarDmgHits + + ; }
% sourceDT . mortarACC = ( % sourceDT . mortarHits / ( % sourceDT . mortarShotsFired ? % sourceDT . mortarShotsFired : 1 ) ) * 100 ;
% sourceDT . mortarDmgACC = ( % sourceDT . mortarDmgHits / ( % sourceDT . mortarShotsFired ? % sourceDT . mortarShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . mortarHitDist < % dis ) { % sourceDT . mortarHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . mortarMAHitDist < % dis ) { % sourceDT . mortarMAHitDist = % dis ; }
if ( % directHit ) {
2020-09-02 20:23:52 -04:00
% sourceDT . mortarMA + + ;
% sourceDT . mortarAoeMA + + ;
}
else
% sourceDT . mortarAoeMA + + ;
}
2021-06-02 13:16:13 -04:00
if ( % sourceDT . mortarHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . mortarHitSV = % sourceObject . client . dtShotSpeed ; }
if ( % sourceDT . mortarHitVV < % vv ) { % sourceDT . mortarHitVV = % vv ; }
2020-09-02 20:23:52 -04:00
case $ DamageType : : Missile :
% sourceDT . missileDmg + = % amount ;
% sourceDT . missileHits + + ;
% sourceDT . missileACC = ( % sourceDT . missileHits / ( % sourceDT . missileShotsFired ? % sourceDT . missileShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . missileHitDist < % dis ) { % sourceDT . missileHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . missileMAHitDist < % dis ) { % sourceDT . missileMAHitDist = % dis ; }
2020-09-02 20:23:52 -04:00
% sourceDT . missileMA + + ;
2021-06-02 13:16:13 -04:00
}
if ( % sourceDT . missileHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . missileHitSV = % sourceObject . client . dtShotSpeed ; }
2020-09-02 20:23:52 -04:00
if ( % sourceDT . missileHitVV < % vv ) { % sourceDT . missileHitVV = % vv ; }
case $ DamageType : : ShockLance :
if ( % targetClient . rearshot ) {
% sourceDT . shockRearShot + + ;
}
% sourceDT . shockDmg + = % amount ;
% sourceDT . shockHits + + ;
% sourceDT . shockACC = ( % sourceDT . shockHits / ( % sourceDT . shockShotsFired ? % sourceDT . shockShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . shockHitDist < % dis ) { % sourceDT . shockHitDist = % dis ; }
if ( % sourceDT . weaponHitDist < % dis ) { % sourceDT . weaponHitDist = % dis ; }
2021-06-02 13:16:13 -04:00
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . shockMAHitDist < % dis ) { % sourceDT . shockMAHitDist = % dis ; }
2020-09-02 20:23:52 -04:00
% sourceDT . shockMA + + ;
}
if ( % sourceDT . shockHitSV < % sourceObject . client . dtShotSpeed ) { % sourceDT . shockHitSV = % sourceObject . client . dtShotSpeed ; }
2021-06-02 13:16:13 -04:00
if ( % sourceDT . shockHitVV < % vv ) { % sourceDT . shockHitVV = % vv ; }
case $ DamageType : : Mine :
2020-09-02 20:23:52 -04:00
% sourceDT . mineDmg + = % amount ;
% sourceDT . mineHits + + ;
% sourceDT . mineACC = ( % sourceDT . mineHits / ( % sourceDT . mineShotsFired ? % sourceDT . mineShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . mineHitDist < % dis ) { % sourceDT . mineHitDist = % dis ; }
2020-09-29 15:20:15 -04:00
% sourceClient . mdHit = 0 ;
if ( ( getSimTime ( ) - % targetClient . mdTime2 ) < 256 ) { % sourceDT . minePlusDisc + + ; % sourceClient . mdHit = 1 ; }
2021-06-02 13:16:13 -04:00
% targetClient . mdTime1 = getSimTime ( ) ;
2020-09-02 20:23:52 -04:00
if ( % rayTest > = $ dtStats : : midAirHeight ) {
2020-09-28 11:58:38 -04:00
if ( % sourceDT . mineMAHitDist < % dis ) { % sourceDT . mineMAHitDist = % dis ; }
2020-09-02 20:23:52 -04:00
% sourceDT . mineMA + + ;
}
2021-06-02 13:16:13 -04:00
if ( % sourceDT . mineHitVV < % vv ) { % sourceDT . mineHitVV = % vv ; }
2020-09-02 20:23:52 -04:00
case $ DamageType : : SatchelCharge :
% sourceDT . satchelDmg + = % amount ;
% sourceDT . satchelHits + + ;
% sourceDT . satchelACC = ( % sourceDT . satchelHits / ( % sourceDT . satchelShotsFired ? % sourceDT . satchelShotsFired : 1 ) ) * 100 ;
if ( % sourceDT . satchelHitDist < % dis ) { % sourceDT . satchelHitDist = % dis ; }
if ( % rayTest > = $ dtStats : : midAirHeight ) { % sourceDT . satchelMA + + ; }
2021-06-02 13:16:13 -04:00
if ( % sourceDT . satchelHitVV < % vv ) { % sourceDT . satchelHitVV = % vv ; }
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
}
2020-09-02 20:23:52 -04:00
}
else if ( % targetClass $ = "Turret" | | % targetClass $ = "FlyingVehicle" | | % targetClass $ = "HoverVehicle" | | % targetClass $ = "WheeledVehicle" ) {
% targetClient = % targetObject . getControllingClient ( ) ;
% targetDT = % targetClient . dtStats ;
if ( % sourceClass $ = "Player" ) {
switch $ ( % damageType ) { // list of all damage types to track see damageTypes.cs
case $ DamageType : : Blaster :
% sourceDT . blasterHits + + ;
% sourceDT . blasterACC = ( % sourceDT . blasterHits / ( % sourceDT . blasterShotsFired ? % sourceDT . blasterShotsFired : 1 ) ) * 100 ;
case $ DamageType : : Plasma :
2020-09-28 11:58:38 -04:00
if ( % directHit ) { % sourceDT . plasmaHits + + ; % sourceDT . plasmaDmgHits + + ; }
2020-09-02 20:23:52 -04:00
else { % sourceDT . plasmaDmgHits + + ; }
% sourceDT . plasmaACC = ( % sourceDT . plasmaHits / ( % sourceDT . plasmaShotsFired ? % sourceDT . plasmaShotsFired : 1 ) ) * 100 ;
% sourceDT . plasmaDmgACC = ( % sourceDT . plasmaDmgHits / ( % sourceDT . plasmaShotsFired ? % sourceDT . plasmaShotsFired : 1 ) ) * 100 ;
case $ DamageType : : Bullet :
2021-06-02 13:16:13 -04:00
% sourceDT . cgHits + + ;
2020-09-02 20:23:52 -04:00
% sourceDT . cgACC = ( % sourceDT . cgHits / ( % sourceDT . cgShotsFired ? % sourceDT . cgShotsFired : 1 ) ) * 100 ;
case $ DamageType : : Disc :
2020-09-28 11:58:38 -04:00
if ( % directHit ) { % sourceDT . discHits + + ; % sourceDT . discDmgHits + + ; }
2021-06-02 13:16:13 -04:00
else { % sourceDT . discDmgHits + + ; }
2020-09-02 20:23:52 -04:00
% sourceDT . discACC = ( % sourceDT . discHits / ( % sourceDT . discShotsFired ? % sourceDT . discShotsFired : 1 ) ) * 100 ;
% sourceDT . discDmgACC = ( % sourceDT . discDmgHits / ( % sourceDT . discShotsFired ? % sourceDT . discShotsFired : 1 ) ) * 100 ;
case $ DamageType : : Grenade :
if ( $ dtObjExplode . dtNade ) {
% sourceDT . hGrenadeHits + + ;
% sourceDT . hGrenadeACC = ( % sourceDT . hGrenadeHits / ( % sourceDT . hGrenadeShotsFired ? % sourceDT . hGrenadeShotsFired : 1 ) ) * 100 ;
}
else {
2020-09-28 11:58:38 -04:00
if ( % directHit ) { % sourceDT . grenadeHits + + ; % sourceDT . grenadeDmgHits + + ; }
2021-06-02 13:16:13 -04:00
else { % sourceDT . grenadeDmgHits + + ; }
2020-09-02 20:23:52 -04:00
% sourceDT . grenadeACC = ( % sourceDT . grenadeHits / ( % sourceDT . grenadeShotsFired ? % sourceDT . grenadeShotsFired : 1 ) ) * 100 ;
% sourceDT . grenadeDmgACC = ( % sourceDT . grenadeDmgHits / ( % sourceDT . grenadeShotsFired ? % sourceDT . grenadeShotsFired : 1 ) ) * 100 ;
2021-06-02 13:16:13 -04:00
}
2020-09-02 20:23:52 -04:00
case $ DamageType : : Laser :
% sourceDT . laserHits + + ;
% sourceDT . laserACC = ( % sourceDT . laserHits / ( % sourceDT . laserShotsFired ? % sourceDT . laserShotsFired : 1 ) ) * 100 ;
case $ DamageType : : Mortar :
2020-09-28 11:58:38 -04:00
if ( % directHit ) { % sourceDT . mortarHits + + ; % sourceDT . mortarDmgHits + + ; }
2020-09-02 20:23:52 -04:00
else { % sourceDT . mortarDmgHits + + ; }
% sourceDT . mortarACC = ( % sourceDT . mortarHits / ( % sourceDT . mortarShotsFired ? % sourceDT . mortarShotsFired : 1 ) ) * 100 ;
% sourceDT . mortarDmgACC = ( % sourceDT . mortarDmgHits / ( % sourceDT . mortarShotsFired ? % sourceDT . mortarShotsFired : 1 ) ) * 100 ;
case $ DamageType : : Missile :
% sourceDT . missileHits + + ;
% sourceDT . missileACC = ( % sourceDT . missileHits / ( % sourceDT . missileShotsFired ? % sourceDT . missileShotsFired : 1 ) ) * 100 ;
case $ DamageType : : ShockLance :
% sourceDT . shockHits + + ;
% sourceDT . shockACC = ( % sourceDT . shockHits / ( % sourceDT . shockShotsFired ? % sourceDT . shockShotsFired : 1 ) ) * 100 ;
case $ DamageType : : Mine :
% sourceDT . mineHits + + ;
% sourceDT . mineACC = ( % sourceDT . mineHits / ( % sourceDT . mineShotsFired ? % sourceDT . mineShotsFired : 1 ) ) * 100 ;
case $ DamageType : : SatchelCharge :
% sourceDT . satchelHits + + ;
% sourceDT . satchelACC = ( % sourceDT . satchelHits / ( % sourceDT . satchelShotsFired ? % sourceDT . satchelShotsFired : 1 ) ) * 100 ;
2020-08-24 18:02:35 -04:00
}
2020-09-02 20:23:52 -04:00
}
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
}
2019-04-01 16:02:48 -04:00
}
}
2021-06-02 13:16:13 -04:00
function clientShotsFired ( % data , % sourceObject , % projectile ) { // could do a fov check to see if we are trying to aim at a player
2020-09-24 12:19:15 -04:00
if ( isObject ( % projectile . sourceObject ) & & isObject ( % sourceObject ) ) {
if ( % projectile . sourceObject . getClassName ( ) ! $ = "Player" ) {
2020-08-24 18:02:35 -04:00
% sourceClient = % projectile . sourceObject . getControllingClient ( ) ;
2020-09-24 12:19:15 -04:00
}
2020-08-24 18:02:35 -04:00
else
% sourceClient = % sourceObject . client ;
2019-04-01 16:02:48 -04:00
}
2020-09-24 12:19:15 -04:00
if ( ! isObject ( % sourceClient . dtStats ) )
return ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% dtStats = % sourceClient . dtStats ;
2020-10-20 18:09:49 -04:00
if ( % data . hasDamageRadius | | % data $ = "BasicShocker" )
2020-09-24 12:19:15 -04:00
% damageType = % data . radiusDamageType ;
else
% damageType = % data . directDamageType ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% dtStats . shotsFired + + ;
% sourceClient . dtShotSpeed = % projectile . dtShotSpeed = mFloor ( vectorLen ( % sourceObject . getVelocity ( ) ) * 3.6 ) ;
2019-04-01 16:02:48 -04:00
switch $ ( % damageType ) { // list of all damage types to track see damageTypes.cs
case $ DamageType : : Bullet :
2020-08-24 18:02:35 -04:00
% dtStats . cgShotsFired + + ;
% dtStats . cgACC = ( % dtStats . cgHits / ( % dtStats . cgShotsFired ? % dtStats . cgShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Disc :
2020-08-24 18:02:35 -04:00
//if(getSimTime() - %sourceClient.lastMineThrow < 5000)
//%dtStats.mineDiscShots++;
% dtStats . discShotsFired + + ;
% dtStats . discACC = ( % dtStats . discHits / ( % dtStats . discShotsFired ? % dtStats . discShotsFired : 1 ) ) * 100 ;
% dtStats . discDmgACC = ( % dtStats . discDmgHits / ( % dtStats . discShotsFired ? % dtStats . discShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Grenade :
2020-08-24 18:02:35 -04:00
% dtStats . grenadeShotsFired + + ;
% dtStats . grenadeACC = ( % dtStats . grenadeHits / ( % dtStats . grenadeShotsFired ? % dtStats . grenadeShotsFired : 1 ) ) * 100 ;
% dtStats . grenadeDmgACC = ( % dtStats . grenadeDmgHits / ( % dtStats . grenadeShotsFired ? % dtStats . grenadeShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Laser :
2020-08-24 18:02:35 -04:00
% dtStats . laserShotsFired + + ;
% dtStats . laserACC = ( % dtStats . laserHits / ( % dtStats . laserShotsFired ? % dtStats . laserShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Mortar :
2020-08-24 18:02:35 -04:00
% dtStats . mortarShotsFired + + ;
% dtStats . mortarACC = ( % dtStats . mortarHits / ( % dtStats . mortarShotsFired ? % dtStats . mortarShotsFired : 1 ) ) * 100 ;
% dtStats . mortarDmgACC = ( % dtStats . mortarDmgHits / ( % dtStats . mortarShotsFired ? % dtStats . mortarShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Missile :
2020-11-09 16:02:11 -05:00
projectileTracker ( % projectile ) ;
2020-08-24 18:02:35 -04:00
% dtStats . missileShotsFired + + ;
% dtStats . missileACC = ( % dtStats . missileHits / ( % dtStats . missileShotsFired ? % dtStats . missileShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : ShockLance :
2020-08-24 18:02:35 -04:00
% dtStats . shockShotsFired + + ;
% dtStats . shockACC = ( % dtStats . shockHits / ( % dtStats . shockShotsFired ? % dtStats . shockShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Plasma :
2020-08-24 18:02:35 -04:00
% dtStats . plasmaShotsFired + + ;
% dtStats . plasmaACC = ( % dtStats . plasmaHits / ( % dtStats . plasmaShotsFired ? % dtStats . plasmaShotsFired : 1 ) ) * 100 ;
2020-11-09 16:02:11 -05:00
% dtStats . plasmaDmgACC = ( % dtStats . plasmaDmgHits / ( % dtStats . plasmaShotsFired ? % dtStats . plasmaShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : Blaster :
2020-08-24 18:02:35 -04:00
% dtStats . blasterShotsFired + + ;
% dtStats . blasterACC = ( % dtStats . blasterHits / ( % dtStats . blasterShotsFired ? % dtStats . blasterShotsFired : 1 ) ) * 100 ;
2019-04-01 16:02:48 -04:00
case $ DamageType : : ELF :
2020-08-24 18:02:35 -04:00
% dtStats . elfShotsFired + + ;
2019-04-01 16:02:48 -04:00
}
}
////////////////////////////////////////////////////////////////////////////////
// Menu Stuff //
////////////////////////////////////////////////////////////////////////////////
2020-08-24 18:02:35 -04:00
function getGameData ( % game , % client , % var , % type , % value ) {
if ( % type $ = "game" ) {
% total = getField ( % client . dtStats . gameStats [ % var , "g" , % game ] , % value ) ;
if ( % total ! $ = "" )
2019-11-20 14:43:50 -05:00
return mFloatLength ( % total , 2 ) + 0 ;
2020-08-24 18:02:35 -04:00
else
2021-06-02 13:16:13 -04:00
error ( "Error getGameData" SPC % game SPC % client SPC % var SPC % type SPC % value ) ;
2019-11-20 14:43:50 -05:00
}
2020-08-24 18:02:35 -04:00
else if ( % type $ = "total" ) {
% total = getField ( % client . dtStats . gameStats [ % var , "t" , % game ] , % value ) ;
if ( strpos ( % total , "%a" ) ! = - 1 ) {
2021-06-02 13:16:13 -04:00
% total = getField ( strreplace ( % total , "%a" , "\t" ) , 0 ) ;
2020-08-24 18:02:35 -04:00
}
if ( % total ! $ = "" )
return numReduce ( % total , 1 ) ;
else
2021-06-02 13:16:13 -04:00
error ( "Error getGameData" SPC % game SPC % client SPC % var SPC % type SPC % value ) ;
2020-08-24 18:02:35 -04:00
}
else if ( % type $ = "avg" ) {
if ( % client . dtStats . gameStats [ "totalGames" , "g" , % game ] ! = 0 ) {
% c = 0 ;
% x = % client . dtStats . gameStats [ "statsOverWrite" , "g" , % game ] ;
for ( % i = 0 ; % i < 16 ; % i + + ) {
% v = % x - % i ;
if ( % v < 0 )
% v = $ dtStats : : MaxNumOfGames + % v ;
% num = getField ( % client . dtStats . gameStats [ % var , "g" , % game ] , % v ) ;
if ( % num $ = "" ) {
2021-06-02 13:16:13 -04:00
error ( "Error getGameData" SPC % game SPC % client SPC % var SPC % type SPC % value ) ;
break ;
2020-08-24 18:02:35 -04:00
}
2020-02-28 16:37:29 -05:00
if ( % num > 0 | | % num < 0 ) {
% val + = % num ;
2019-04-01 16:02:48 -04:00
% c + + ;
2020-08-24 18:02:35 -04:00
if ( % c > = % value )
break ;
2019-04-01 16:02:48 -04:00
}
}
2020-02-28 16:37:29 -05:00
if ( % c > 0 )
2020-08-24 18:02:35 -04:00
return numReduce ( mCeil ( % val / % c ) , 1 ) ;
}
2019-04-01 16:02:48 -04:00
}
2020-08-24 18:02:35 -04:00
return 0 ;
2019-04-01 16:02:48 -04:00
}
2020-02-28 16:37:29 -05:00
2019-11-20 14:43:50 -05:00
function numReduce ( % num , % des ) {
if ( % num ! $ = "" ) {
2020-08-24 18:02:35 -04:00
if ( strPos ( % num , "x" ) = = - 1 ) {
2019-11-20 14:43:50 -05:00
if ( % num > 1000 ) {
2020-08-24 18:02:35 -04:00
% num = % num / 1000 ;
% affix = "K" ;
if ( % num > 1000 ) {
% num = % num / 1000 ;
% affix = "M" ;
if ( % num > 1000 ) {
% num = % num / 1000 ;
% affix = "G" ;
}
2019-11-20 14:43:50 -05:00
}
}
2020-08-24 18:02:35 -04:00
return mFloatLength ( % num , % des ) + 0 @ % affix ;
}
else {
% n1 = strLen ( % num ) ;
% c = 0 ;
for ( % x = 1 ; % x < % n1 ; % x + + ) {
% n = getSubStr ( % num , ( % n1 - % x ) - 1 , 1 ) ;
2021-06-02 13:16:13 -04:00
% seg [ % c ] = % n @ % seg [ % c ] ;
2020-08-24 18:02:35 -04:00
% l + + ;
if ( % x % 3 = = 0 ) {
2021-06-02 13:16:13 -04:00
% c + + ;
% l = 0 ;
2020-08-24 18:02:35 -04:00
}
}
if ( % l > 0 )
% c + + ;
2021-06-02 13:16:13 -04:00
% end [ 2 ] = "K" ; % end [ 3 ] = "M" ; % end [ 4 ] = "G" ;
% end [ 5 ] = "T" ; % end [ 6 ] = "P" ; % end [ 7 ] = "E" ;
% end [ 8 ] = "Z" ; % end [ 9 ] = "Y" ;
2020-08-24 18:02:35 -04:00
if ( % c > 1 & & % c < 10 ) {
% ln2 = strLen ( % seg [ % c - 2 ] ) ;
if ( % ln2 > 2 ) // trim it to kee it with in 7 char
% seg [ % c - 2 ] = getSubStr ( % seg [ % c - 2 ] , 0 , 2 ) ;
if ( % seg [ % c - 2 ] $ = "0" | | % seg [ % c - 2 ] $ = "00" )
return % seg [ % c - 1 ] @ % end [ % c ] ;
else
return % seg [ % c - 1 ] @ "." @ % seg [ % c - 2 ] @ % end [ % c ] ;
}
else
return % num ;
2019-11-20 14:43:50 -05:00
}
2019-04-01 16:02:48 -04:00
}
2021-06-02 13:16:13 -04:00
return 0 ;
2019-04-01 16:02:48 -04:00
}
2020-02-28 16:37:29 -05:00
2019-04-01 16:02:48 -04:00
function menuReset ( % client ) {
% client . viewMenu = 0 ;
% client . viewClient = 0 ;
% client . viewStats = 0 ;
2021-06-02 13:16:13 -04:00
% client . lastPage = 0 ;
2019-04-01 16:02:48 -04:00
}
2020-08-24 18:02:35 -04:00
function clipStr ( % str , % len ) {
% slen = strLen ( % str ) ;
if ( % slen > % len ) {
return getSubStr ( % str , 0 , % len - 2 ) @ ".." ;
}
return % str ;
}
2019-04-01 16:02:48 -04:00
function statsMenu ( % client , % game ) {
2019-11-20 14:43:50 -05:00
//if($dtStats::debugEchos){error("statsMenu GUID = " SPC %client.guid);}
2019-04-01 16:02:48 -04:00
% menu = % client . viewMenu ;
2019-11-20 14:43:50 -05:00
if ( % client . GlArg4 $ = "pin" ) {
2021-06-02 13:16:13 -04:00
cancel ( % client . rtmt ) ;
2019-11-20 14:43:50 -05:00
}
else {
2021-06-02 13:16:13 -04:00
cancel ( % client . rtmt ) ;
% client . rtmt = schedule ( $ dtStats : : returnToMenuTimer , 0 , "menuReset" , % client ) ;
2019-11-20 14:43:50 -05:00
}
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% vClient = % client . viewClient ;
% tag = ' scoreScreen ' ;
2020-02-28 16:37:29 -05:00
% index = - 1 ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
% isTargetSelf = ( % client = = % vClient ) ;
% isAdmin = ( % client . isAdmin | | % client . isSuperAdmin ) ;
2021-06-02 13:16:13 -04:00
2019-04-01 16:02:48 -04:00
messageClient ( % client , ' ClearHud ' , "" , ' scoreScreen ' , 0 ) ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
if ( ! isObject ( % vClient ) ) { // fail safe
% menu = "Reset" ;
}
switch $ ( % menu ) {
2019-04-01 16:02:48 -04:00
case "View" :
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>" @ getTaggedString ( % vClient . name ) @ "'s Stats" ) ;
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tReset \ t % 1 > Back < / a > ' , % vClient ) ;
2019-04-01 16:02:48 -04:00
//messageClient( %client, 'SetLineHud', "", %tag, %index++, "<just:center> Main Options Menu");
2022-09-24 06:35:14 -04:00
if ( % client . isSuperAdmin ) // for testing
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < a : gamelink \ tS \ tLIVE \ t % 1 > + % 2 Testing Menu < / a > ' , % vClient , $ dtStats : : gtNameShort [ % game ] ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
2022-09-24 06:35:14 -04:00
if ( $ dtStats : : day > 1 )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < a : gamelink \ tS \ tLBOARDS \ t % 1 \ tday - % 2 \ t0 > + % 3 Daily Leaderboards < / a > ' , % vClient , % game , $ dtStats : : gtNameShort [ % game ] ) ;
if ( $ dtStats : : week > 1 )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < a : gamelink \ tS \ tLBOARDS \ t % 1 \ tweek - % 2 \ t0 > + % 3 Weekly Leaderboards < / a > ' , % vClient , % game , $ dtStats : : gtNameShort [ % game ] ) ;
if ( $ dtStats : : month > 1 )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < a : gamelink \ tS \ tLBOARDS \ t % 1 \ tmonth - % 2 \ t0 > + % 3 Monthly Leaderboards ' , % vClient , % game , $ dtStats : : gtNameShort [ % game ] ) ;
if ( $ dtStats : : quarter > 1 )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < a : gamelink \ tS \ tLBOARDS \ t % 1 \ tquarter - % 2 \ t0 > + % 3 Quarterly Leaderboards < / a > ' , % vClient , % game , $ dtStats : : gtNameShort [ % game ] ) ;
if ( $ dtStats : : year > 1 )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < a : gamelink \ tS \ tLBOARDS \ t % 1 \ tyear - % 2 \ t0 > + % 3 Yearly Leaderboards < / a > ' , % vClient , % game , $ dtStats : : gtNameShort [ % game ] ) ;
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
if ( % client . isSuperAdmin ) {
% line = ' < a : gamelink \ tS \ tSP \ t % 1 \ t1 \ t % 2 - % 3 > + Server Admin Panel < / a > ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % game , 1 ) ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
for ( % v = % index ; % v < 13 ; % v + + ) { messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ; }
2020-02-28 16:37:29 -05:00
if ( % vClient . dtStats . gameStats [ "totalGames" , "g" , % game . class ] = = 0 )
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < just : center > Stats update at the end of every map . ' ) ;
//messageClient( %client, 'SetLineHud', "", %tag, %index++, "<just:center>Based on the last" SPC %3 SPC "games.");
//%line = '<just:center>Games Played = %3 Running Average = %1/%2 Overwrite Counter = %4';
2020-02-28 16:37:29 -05:00
if ( % vClient . dtStats . gameStats [ "totalGames" , "g" , % game . class ] > 1 ) {
2019-11-20 14:43:50 -05:00
% line = ' < just : center > Based on the last % 1 games played . ' ;
2020-02-28 16:37:29 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient . dtStats . gameStats [ "totalGames" , "g" , % game . class ] ) ;
2019-11-20 14:43:50 -05:00
}
2020-02-28 16:37:29 -05:00
else {
2019-11-06 11:21:22 -05:00
% line = ' < just : center > Based on the last game played . ' ;
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line ) ;
}
2020-08-24 18:02:35 -04:00
case "SP" :
% opt1 = % client . GlArg4 ;
% opt2 = % client . GlArg5 ;
switch $ ( % opt1 ) {
case "buildStats" :
if ( ! $ dtStats : : building ) {
2020-11-19 00:37:03 -05:00
lStatsCycle ( 1 , 0 ) ;
2021-06-02 13:16:13 -04:00
% client . GlArg4 = 0 ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
case "statsEnable" :
2021-06-02 13:16:13 -04:00
if ( % opt2 )
$ dtStats : : Enable = 1 ;
2020-08-24 18:02:35 -04:00
else
2021-06-02 13:16:13 -04:00
$ dtStats : : Enable = 0 ;
2020-08-24 18:02:35 -04:00
% client . GlArg4 = 0 ;
case "reset" :
2021-06-02 13:16:13 -04:00
% client . GlArg4 = 0 ;
}
2020-08-24 18:02:35 -04:00
//------------------------------------------------------------------------------
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>Server Panel" ) ;
2020-11-19 00:37:03 -05:00
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tView \ t % 1 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > < just : right > < a : gamelink \ tS \ tVARLIST \ t % 1 \ t1 > VarList < / a > ' , % vClient ) ;
2020-08-24 18:02:35 -04:00
//------------------------------------------------------------------------------
if ( $ dtStats : : Enable ) {
% line = ' < a : gamelink \ tS \ tSP \ t % 1 \ t % 2 \ t % 3 > + Disable Stats System < / a > - Note this will reset to default with server restart ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , "statsEnable" , 0 ) ;
2020-08-24 18:02:35 -04:00
}
else {
% line = ' < a : gamelink \ tS \ tSP \ t % 1 \ t % 2 \ t % 3 > + Enable Stats System < / a > ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , "statsEnable" , 1 ) ;
2020-08-24 18:02:35 -04:00
}
//------------------------------------------------------------------------------
if ( $ dtStats : : building ) {
% line = ' < color : 00F F00 > + Building Stats ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , "buildStats" , 0 ) ;
2020-08-24 18:02:35 -04:00
}
else {
% time = ( ( $ dtServerVars : : lastBuildTime ! $ = "" ) ? "<color:00FF00>" @ $ dtServerVars : : lastBuildTime : 0 ) ;
% line = ' < a : gamelink \ tS \ tSP \ t % 1 \ t % 2 \ t % 3 > + Force Build Stats < / a > Last Build : % 4 ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , "buildStats" , 0 , % time ) ;
2020-08-24 18:02:35 -04:00
}
//------------------------------------------------------------------------------
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% line = ' < a : gamelink \ tS \ tSV \ t % 1 \ t1 \ t % 2 - % 3 > + Map Play Statistics < / a > ' ;
2020-11-09 16:02:11 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % game , 1 ) ;
% line = ' < a : gamelink \ tS \ tEV \ t % 1 \ t1 \ t0 > + Server Event Viewer - Last Event = % 2 Minutes < / a > ' ;
% evTime = ( ( getSimTime ( ) - $ dtStats : lastEvent ) / 1000 ) / 60 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % evTime ) ;
2020-08-24 18:02:35 -04:00
//------------------------------------------------------------------------------
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
2020-09-24 12:19:15 -04:00
//%line = '<a:gamelink\tS\tSP\t%1\t%2\t%3> + Reset Server Metrics</a>';
2021-06-02 13:16:13 -04:00
//messageClient( %client, 'SetLineHud', "", %tag, %index++, %line,%vClient,"reset",0);
% a1 = ( $ dtServer : : serverHangMap [ cleanMapName ( $ CurrentMission ) , % game ] ? "<color:00FF00>" @ $ dtServer : : serverHangMap [ cleanMapName ( $ CurrentMission ) , % game ] : 0 ) ;
2020-08-24 18:02:35 -04:00
% a2 = ( $ dtServer : : serverHangTotal ? "<color:00FF00>" @ $ dtServer : : serverHangTotal : 0 ) ;
% a3 = ( ( $ dtServer : : serverHangLast ! $ = "" ) ? "<color:00FF00>" @ $ dtServer : : serverHangLast : 0 ) ;
% a4 = ( $ dtServer : : serverHangTime ? "<color:00FF00>" @ $ dtServer : : serverHangTime : 0 ) ;
2021-06-02 13:16:13 -04:00
% b1 = ( $ dtServer : : hostHangMap [ cleanMapName ( $ CurrentMission ) , % game ] ? "<color:00FF00>" @ $ dtServer : : hostHangMap [ cleanMapName ( $ CurrentMission ) , % game ] : 0 ) ;
2020-08-24 18:02:35 -04:00
% b2 = ( $ dtServer : : hostHangTotal ? "<color:00FF00>" @ $ dtServer : : hostHangTotal : 0 ) ;
% b3 = ( ( $ dtServer : : hostHangLast ! $ = "" ) ? "<color:00FF00>" @ $ dtServer : : hostHangLast : 0 ) ;
% b4 = ( $ dtServer : : hostHangTime ? "<color:00FF00>" @ $ dtServer : : hostHangTime : 0 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% line = ' < color : 0 befe7 > Server Hangs - This Map = % 1 < color : 0 befe7 > - All Time = % 2 ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % a1 , % a2 ) ;
2020-08-24 18:02:35 -04:00
% line = ' < color : 0 befe7 > Server Hangs - Time = % 1 < color : 0 befe7 > - Delay Time = % 2 ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % a3 , % a4 ) ;
2020-08-24 18:02:35 -04:00
% line = ' < color : 0 befe7 > Host Hangs - This Map = % 1 < color : 0 befe7 > - All Time = % 2 ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % b1 , % b2 ) ;
2020-08-24 18:02:35 -04:00
% line = ' < color : 0 befe7 > Host Hangs - Time = % 1 < color : 0 befe7 > - Delay Time = % 2 ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % b3 , % b4 ) ;
2020-08-24 18:02:35 -04:00
% id = new scriptObject ( ) ; % id . delete ( ) ;
% line = ' < color : 0 befe7 > ID Count - % 1 out of 2147483647 % 2 % % Up Time - % 3 ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % id , mFloor ( ( % id / 2147483647 ) * 100 ) , dtFormatTime ( getSimTime ( ) ) ) ;
2020-08-24 18:02:35 -04:00
% max = 30 ;
2020-09-24 12:19:15 -04:00
% limit = 6 ;
2020-08-24 18:02:35 -04:00
% v = $ dtServerVars : : upTimeCount - 1 ;
% line = ' < color : 0 befe7 > Server Run Time History ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % limit ) ;
2020-08-24 18:02:35 -04:00
for ( % i = 0 ; % i < % max & & % i < % limit ; % i + + ) {
% upTime = $ dtServerVars : : upTime [ % v ] ;
if ( % upTime ! $ = "" ) {
% line = ' < color : 0 befe7 > % 2 : % 1 ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , strreplace ( % upTime , "-" , " " ) , % i + 1 ) ;
2020-08-24 18:02:35 -04:00
}
else
break ;
if ( % v - - = = - 1 )
2021-06-02 13:16:13 -04:00
% v = % max - 1 ;
2020-08-24 18:02:35 -04:00
}
2020-11-09 16:02:11 -05:00
case "EV" :
% opt1 = % client . GlArg4 ;
2021-06-02 13:16:13 -04:00
% opt2 = % client . GlArg5 ;
2020-11-09 16:02:11 -05:00
% page = % opt1 ;
//------------------------------------------------------------------------------
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>Event Panel" ) ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tSP \ t % 1 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > ' , % vClient ) ;
//------------------------------------------------------------------------------
% perPage = 16 ;
2021-06-02 13:16:13 -04:00
for ( % i = $ dtServer : : eventMax - ( ( % page - 1 ) * % perPage ) ; % i > $ dtServer : : eventMax - ( % page * % perPage ) & & % i > 0 ; % i - - ) {
2020-11-09 16:02:11 -05:00
% v = % i - ( $ dtServer : : eventMax - $ dtServer : : eventLogCount ) ;
% v = ( % v < 0 ) ? ( $ dtServer : : eventMax + % v ) : % v ;
% log = $ dtServer : : eventLog [ % v ] ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % log ) ;
2020-11-09 16:02:11 -05:00
}
if ( $ dtServer : : eventMax > % perPage ) {
if ( % page = = 1 ) {
% line = ' < color : 0 befe7 > < just : center > < a : gamelink \ tS \ tEV \ t % 1 \ t % 2 \ t0 > Next Page - - > < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % page + 1 ) ;
}
else if ( % page * % perPage > = $ dtServer : : eventMax ) {
% line = ' < color : 0 befe7 > < just : center > < a : gamelink \ tS \ tEV \ t % 1 \ t % 2 \ t0 > < - - Back Page < / a > < a : gamelink \ tS \ tEV \ t % 1 \ t1 \ t % 3 - % 4 > < First Page > < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % page - 1 ) ;
}
else if ( % page > 1 ) {
% line = ' < color : 0 befe7 > < just : center > < a : gamelink \ tS \ tEV \ t % 1 \ t % 2 \ t0 > < - - Back Page < a : gamelink \ tS \ tEV \ t % 1 \ t % 3 \ t0 > Next Page - - > < / a > < a : gamelink \ tS \ tEV \ t % 1 \ t1 \ t0 > < First Page > < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % page - 1 , % page + 1 ) ;
}
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
case "SV" : //Server
% vLPage = % client . GlArg4 ;
% field5 = strreplace ( % client . GlArg5 , "-" , "\t" ) ;
% client . lgame = % switch = getField ( % field5 , 0 ) ;
2021-06-02 13:16:13 -04:00
% client . cat = % cat = getField ( % field5 , 1 ) ;
2020-08-24 18:02:35 -04:00
if ( % vLPage = = - 1 )
2021-06-02 13:16:13 -04:00
% vLPage = % client . lastMapPage ;
2020-08-24 18:02:35 -04:00
else
% client . lastMapPage = % vLPage ;
% perPage = 14 ; // num of games listed per page
2021-06-02 13:16:13 -04:00
if ( % cat $ = "R" ) {
2020-08-24 18:02:35 -04:00
for ( % i = 1 ; % i < = $ mapID : : countGame [ % client . lgame ] ; % i + + ) {
% map = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
$ dtServer : : playCount [ % map , % client . lgame ] = 0 ;
$ dtServer : : lastPlay [ % map , % client . lgame ] = 0 ;
$ dtServer : : mapDisconnects [ % map , % client . lgame ] = 0 ;
$ dtServer : : mapDisconnectsScore [ % map , % client . lgame ] = 0 ;
$ dtServer : : mapReconnects [ % map , % client . lgame ] = 0 ;
$ dtServer : : voteFor [ % map , % client . lgame ] = 0 ;
$ dtServer : : skipCount [ % map , % client . lgame ] = 0 ;
$ dtServer : : maxPlayers [ % map , % client . lgame ] = 0 ;
$ dtServer : : serverHangMap [ % map , % client . lgame ] = 0 ;
$ dtServer : : serverHangMapMicro [ % map , % client . lgame ] = 0 ;
$ dtServer : : hostHangMap [ % map , % client . lgame ] = 0 ;
2020-09-24 12:19:15 -04:00
$ dtServerVars : : serverCrash [ % mis , % client . lgame ] = 0 ;
}
2021-06-02 13:16:13 -04:00
$ dtServer : : serverHangTotal = 0 ;
$ dtServer : : serverHangTime = 0 ;
2020-09-24 12:19:15 -04:00
$ dtServer : : serverHangLast = 0 ;
$ dtServer : : hostHang = 0 ;
2021-06-02 13:16:13 -04:00
$ dtServer : : hostTime = 0 ;
2020-09-24 12:19:15 -04:00
$ dtServer : : hostHangLast = 0 ;
2020-08-24 18:02:35 -04:00
% client . cat = % cat = 1 ;
}
else if ( % cat ! $ = "C" ) {
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : sortCat ! = % cat ) {
2020-08-24 18:02:35 -04:00
for ( % i = 1 ; % i < = $ mapID : : countGame [ % client . lgame ] ; % i + + ) {
2021-06-02 13:16:13 -04:00
% maxCount = % i ;
2020-08-24 18:02:35 -04:00
switch $ ( % cat ) {
case 1 :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : playCount [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : playCount [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 1 ;
case 2 :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : skipCount [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : skipCount [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 2 ;
case 3 :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : voteFor [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : voteFor [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 3 ;
case 4 :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : mapDisconnects [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : mapDisconnects [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 4 ;
case 4.5 :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : mapReconnects [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : mapReconnects [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 4.5 ;
case 5 :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : maxPlayers [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : maxPlayers [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 5 ;
case 6 :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : hostHangMap [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : hostHangMap [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 6 ;
case 7 :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : serverHangMap [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : serverHangMap [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 7 ;
default :
2021-06-02 13:16:13 -04:00
for ( % j = % i + 1 ; % j < $ mapID : : countGame [ % client . lgame ] ; % j + + ) {
2020-08-24 18:02:35 -04:00
% pc1 = $ dtServer : : playCount [ $ mapID : : IDNameGame [ % j , % client . lgame ] , % client . lgame ] ;
% pc2 = $ dtServer : : playCount [ $ mapID : : IDNameGame [ % maxCount , % client . lgame ] , % client . lgame ] ;
if ( % pc1 > % pc2 )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
% map1 = $ mapID : : IDNameGame [ % i , % client . lgame ] ;
% map2 = $ mapID : : IDNameGame [ % maxCount , % client . lgame ] ;
$ mapID : : IDNameGame [ % i , % client . lgame ] = % map2 ;
$ mapID : : IDNameGame [ % maxCount , % client . lgame ] = % map1 ;
$ dtStats : : sortCat = 1 ;
}
}
error ( $ dtStats : : sortCat ) ;
}
% client . GlArg5 = % client . lgame @ "-C" ;
}
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>Server Stats" ) ;
2020-08-24 18:02:35 -04:00
% line = ' < a : gamelink \ tS \ tSP \ t % 1 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > < just : right > < a : gamelink \ tS \ tSV \ t % 1 \ t1 \ t % 2 - R > < Reset Stats > < / a > ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetScoreHudSubheader ' , "" , % line , % vClient , % client . lgame ) ;
2020-08-24 18:02:35 -04:00
% line = ' < tab : 114 , 179 , 244 , 309 , 374 , 439 , 504 > < color : 0 befe7 > < font : univers condensed : 18 > % 2 < / a > \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 \ t % 9 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , "Map Name" ,
"<a:gamelink\tS\tSV\t" @ % vClient @ "\t1\t" @ % client . lgame @ "-" @ "1" @ ">Play</a> " ,
"<a:gamelink\tS\tSV\t" @ % vClient @ "\t1\t" @ % client . lgame @ "-" @ "2" @ ">Skips</a>" ,
"<a:gamelink\tS\tSV\t" @ % vClient @ "\t1\t" @ % client . lgame @ "-" @ "3" @ ">Votes</a> " ,
"<a:gamelink\tS\tSV\t" @ % vClient @ "\t1\t" @ % client . lgame @ "-" @ "4" @ ">DC</a> / <a:gamelink\tS\tSV\t" @ % vClient @ "\t1\t" @ % client . lgame @ "-" @ "4.5" @ "> RC</a> " ,
"<a:gamelink\tS\tSV\t" @ % vClient @ "\t1\t" @ % client . lgame @ "-" @ "5" @ ">Max-Plr</a> " ,
"<a:gamelink\tS\tSV\t" @ % vClient @ "\t1\t" @ % client . lgame @ "-" @ "6" @ ">HostHangs</a> " ,
"<a:gamelink\tS\tSV\t" @ % vClient @ "\t1\t" @ % client . lgame @ "-" @ "7" @ ">ServerHang</a> " ) ;
for ( % z = ( % vLPage - 1 ) * % perPage ; % z < % vLPage * % perPage & & % z < $ mapID : : countGame [ % client . lgame ] ; % z + + ) {
% map = $ mapID : : IDNameGame [ % z + 1 , % client . lgame ] ;
% pc = $ dtServer : : playCount [ % map , % client . lgame ] ;
2021-06-02 13:16:13 -04:00
% sc = $ dtServer : : skipCount [ % map , % client . lgame ] ;
2020-08-24 18:02:35 -04:00
% vc = $ dtServer : : voteFor [ % map , % client . lgame ] ;
% dc = $ dtServer : : mapDisconnects [ % map , % client . lgame ] ;
2021-06-02 13:16:13 -04:00
% dcS = $ dtServer : : mapReconnects [ % map , % client . lgame ] ;
2020-08-24 18:02:35 -04:00
% mp = $ dtServer : : maxPlayers [ % map , % client . lgame ] ;
% cr = $ dtServer : : hostHangMap [ % map , % client . lgame ] ;
% sh = $ dtServer : : serverHangMap [ % map , % client . lgame ] ;
2021-06-02 13:16:13 -04:00
% v1 = % pc ? % pc : 0 ;
% v2 = % sc ? % sc : 0 ;
% v3 = % vc ? % vc : 0 ;
% v4 = % dc ? % dc : 0 ; % v44 = % dcS ? % dcS : 0 ;
% v5 = % mp ? % mp : 0 ;
% v6 = % cr ? % cr : 0 ;
% v7 = % sh ? % sh : 0 ;
2020-08-24 18:02:35 -04:00
% line = ' < tab : 114 , 179 , 244 , 309 , 374 , 439 , 504 > < color : 0 befe7 > < font : univers condensed : 18 > < clip : 110 > % 1 % 2 < / clip > \ t < color : 03d 597 > % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 \ t % 9 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % z + 1 , % map , % v1 , % v2 , % v3 , % v4 @ "/" @ % v44 , % v5 , % v6 , % v7 ) ;
}
for ( % i = % index ; % i < 14 ; % i + + )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' ' ) ;
if ( $ mapID : : countGame [ % client . lgame ] > % perPage ) {
if ( % vLPage = = 1 ) {
% line = ' < color : 0 befe7 > < just : center > < a : gamelink \ tS \ tSV \ t % 1 \ t % 2 \ t % 3 - % 4 > Next Page - - > < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % vLPage + 1 , % client . lgame , % cat ) ;
}
else if ( % vLPage * % perPage > = $ mapID : : countGame [ % client . lgame ] ) {
% line = ' < color : 0 befe7 > < just : center > < a : gamelink \ tS \ tSV \ t % 1 \ t % 2 \ t % 3 - % 4 > < - - Back Page < / a > < a : gamelink \ tS \ tSV \ t % 1 \ t1 \ t % 3 - % 4 > < First Page > < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % vLPage - 1 , % client . lgame , % cat ) ;
}
else if ( % vLPage > 1 ) {
% line = ' < color : 0 befe7 > < just : center > < a : gamelink \ tS \ tSV \ t % 1 \ t % 2 \ t % 4 - % 5 > < - - Back Page < a : gamelink \ tS \ tSV \ t % 1 \ t % 3 \ t % 4 - % 5 > Next Page - - > < / a > < a : gamelink \ tS \ tSV \ t % 1 \ t1 \ t % 4 - % 5 > < First Page > < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % vLPage - 1 , % vLPage + 1 , % client . lgame , % cat ) ;
}
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
% hasCount = 0 ; % line = "" ;
for ( % i = 0 ; % i < $ dtStats : : gameTypeCount ; % i + + ) {
if ( $ mapID : : countGame [ $ dtStats : : gameType [ % i ] ] > 0 & & $ dtStats : : gameType [ % i ] ! $ = % client . lgame ) {
2021-06-02 13:16:13 -04:00
% hasCount + + ;
% line = % line @ "<a:gamelink\tS\tSV\t" @ % vClient @ "\t" @ 1 @ "\t" @ $ dtStats : : gameType [ % i ] @ "-" @ % cat @ ">[" @ $ dtStats : : gtNameShort [ $ dtStats : : gameType [ % i ] ] @ "] </a>" ;
2020-08-24 18:02:35 -04:00
}
}
if ( % hasCount > 0 )
2020-11-19 00:37:03 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "<just:center>" SPC % line ) ;
2021-06-02 13:16:13 -04:00
2019-11-20 14:43:50 -05:00
case "LIVE" :
% inc = % client . GlArg4 ;
2021-06-02 13:16:13 -04:00
% cycle = % client . GlArg5 ;
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>Live Stats" ) ;
if ( % inc $ = "pin" ) {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tView \ t % 1 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > - < a : gamelink \ tS \ tLIVE \ t % 1 \ t - 1 > Unpin Screen < / a > - Games Played : % 2 ' , % vClient , % vClient . dtStats . gameStats [ "totalGames" , "g" , % game ] ) ;
2019-11-06 11:21:22 -05:00
}
2019-11-20 14:43:50 -05:00
else {
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tView \ t % 1 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > - < a : gamelink \ tS \ tLIVE \ t % 1 \ tpin > Pin Screen < / a > - Games Played : % 2 ' , % vClient , % vClient . dtStats . gameStats [ "totalGames" , "g" , % game ] ) ;
2019-11-20 14:43:50 -05:00
}
2021-06-02 13:16:13 -04:00
//%i1=%i2=%i3=%i4=%i5=%i6=%i7=%i8=%i9=0;
2019-11-20 14:43:50 -05:00
//%line = '<color:0befe7> PastGames<lmargin:100>%1<lmargin:150>%2<lmargin:200>%3<lmargin:250>%4<lmargin:300>%5<lmargin:350>%6<lmargin:400>%7<lmargin:450>%8<lmargin:500>%9';
2021-06-02 13:16:13 -04:00
//messageClient( %client, 'SetLineHud', "", %tag, %index++, %line,%i1,%i2,%i3,%i4,%i5,%i6,%i7,%i8,%i9);
2020-08-24 18:02:35 -04:00
% dtVClient = % vClient . dtStats ;
2021-06-02 13:16:13 -04:00
% i1 = "<color:0befe7>Score:<color:03d597>" SPC % vClient . score ;
2020-08-24 18:02:35 -04:00
% i2 = "<color:0befe7>Kills:<color:03d597>" SPC % vClient . kills ;
2021-06-02 13:16:13 -04:00
% i3 = "<color:0befe7>Deaths:<color:03d597>" SPC % vClient . deaths ;
2020-08-24 18:02:35 -04:00
% i4 = "<color:0befe7>Assists:<color:03d597>" SPC % dtVClient . assist ;
2021-06-02 13:16:13 -04:00
% line = ' < tab : 0 , 145 , 290 , 435 > < font : univers condensed : 18 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % i1 , % i2 , % i3 , % i4 ) ;
2020-09-28 11:58:38 -04:00
% kdr = % vClient . deaths ? mFloatLength ( % vClient . kills / % vClient . deaths , 2 ) + 0 : % vClient . kills ;
% i1 = "<color:0befe7>KDR:<color:03d597>" SPC % kdr ;
2020-08-24 18:02:35 -04:00
% i2 = "<color:0befe7>KillStreak:<color:03d597>" SPC % dtVClient . killStreak ;
% i3 = "<color:0befe7>MineDisc:<color:03d597>" SPC % dtVClient . minePlusDisc ;
% i4 = % dtVClient . plasmaMA + % dtVClient . discMA + % dtVClient . mineMA + % dtVClient . grenadeMA + % dtVClient . hGrenadeMA + % dtVClient . mortarMA + % dtVClient . shockMA + % dtVClient . laserMA +
% dtVClient . laserHeadShot + % dtVClient . shockRearShot + % dtVClient . comboPT + % dtVClient . assist +
( % dtVClient . plasmaKillDist / 500 ) + ( % dtVClient . discKillDist / 500 ) + ( % dtVClient . mineKillDist / 200 ) + ( % dtVClient . grenadeKillDist / 300 ) + ( % dtVClient . hGrenadeKillDist / 200 ) + ( % dtVClient . mortarKillDist / 200 ) +
( % dtVClient . plasmaKillSV / 100 ) + ( % dtVClient . discKillSV / 100 ) + ( % dtVClient . mineKillVV / 100 ) + ( % dtVClient . grenadeKillSV / 100 ) + ( % dtVClient . hGrenadeKillVV / 100 ) + ( % dtVClient . mortarKillSV / 100 ) + ( % dtVClient . shockKillSV / 50 ) + ( % dtVClient . laserKillSV / 100 ) ;
% i4 = "<color:0befe7>Shot Rating:<color:03d597>" SPC mFloatLength ( % i4 / 26 , 2 ) + 0 ; //
2021-06-02 13:16:13 -04:00
% line = ' < tab : 0 , 145 , 290 , 435 > < font : univers condensed : 18 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 ' ;
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % i1 , % i2 , % i3 , % i4 ) ;
2021-06-02 13:16:13 -04:00
% dmg = % dtVClient . blasterDmg + % dtVClient . plasmaDmg + % dtVClient . grenadeDmg + % dtVClient . hGrenadeDmg + % dtVClient . cgDmg +
2020-08-24 18:02:35 -04:00
% dtVClient . discDmg + % dtVClient . laserDmg + % dtVClient . mortarDmg + % dtVClient . missileDmg + % dtVClient . shockDmg + % dtVClient . mineDmg ;
% i1 = "<color:0befe7>Damage:<color:03d597>" SPC numReduce ( % dmg , 1 ) ;
% i2 = "<color:0befe7>Speed:<color:03d597>" SPC mFloatLength ( % dtVClient . avgSpeed , 1 ) + 0 ;
% i3 = "<color:0befe7>Shots Fired:<color:03d597>" SPC numReduce ( % dtVClient . shotsFired , 2 ) ;
2021-06-02 13:16:13 -04:00
% i4 = "<color:0befe7>Dist Moved KM:<color:03d597>" SPC numReduce ( % dtVClient . distMov , 1 ) ;
% line = ' < tab : 0 , 145 , 290 , 435 > < font : univers condensed : 18 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 ' ;
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % i1 , % i2 , % i3 , % i4 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% i1 = "<color:0befe7>Lt Kills:<color:03d597>" SPC % dtVClient . armorL ;
% i2 = "<color:0befe7>Med Kills:<color:03d597>" SPC % dtVClient . armorM ;
% i3 = "<color:0befe7>Hvy Kills:<color:03d597>" SPC % dtVClient . armorH ;
2021-06-02 13:16:13 -04:00
% i4 = "<color:0befe7>Survival:<color:03d597>" SPC secToMinSec ( % dtVClient . timeTL ) ;
% line = ' < tab : 0 , 145 , 290 , 435 > < font : univers condensed : 18 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 ' ;
2019-11-20 14:43:50 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % i1 , % i2 , % i3 , % i4 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Weapons \ tKills \ tDeaths \ tMidAirs \ tCombos \ tMax Dist \ tAvg Acc \ tSpeed \ tDmg ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . blasterKills ;
% deaths = % dtVClient . blasterDeaths ;
% ma = % dtVClient . blasterMA ;
% com = % dtVClient . blasterCom ;
% maxDist = numReduce ( % dtVClient . blasterKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . blasterACC , 1 ) ;
% speed = numReduce ( % dtVClient . blasterHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . blasterDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Blaster < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . plasmaKills ;
% deaths = % dtVClient . plasmaDeaths ;
% ma = % dtVClient . plasmaMA ;
% com = % dtVClient . plasmaCom ;
% maxDist = numReduce ( % dtVClient . plasmaKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . plasmaACC , 1 ) ;
% speed = numReduce ( % dtVClient . plasmaHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . plasmaDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Plasma Rifle < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . cgKills ;
% deaths = % dtVClient . cgDeaths ;
% ma = % dtVClient . cgMA ;
% com = % dtVClient . cgCom ;
% maxDist = numReduce ( % dtVClient . cgKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . cgACC , 1 ) ;
% speed = numReduce ( % dtVClient . cgHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . cgDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Chaingun < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . discKills ;
% deaths = % dtVClient . discDeaths ;
% ma = % dtVClient . discMA ;
% com = % dtVClient . discCom ;
% maxDist = numReduce ( % dtVClient . discKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . discACC , 1 ) ;
% speed = numReduce ( % dtVClient . discHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . discDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Spinfusor < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . grenadeKills ;
% deaths = % dtVClient . grenadeDeaths ;
% ma = % dtVClient . grenadeMA ;
% com = % dtVClient . grenadeCom ;
% maxDist = numReduce ( % dtVClient . grenadeKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . grenadeDmgACC , 1 ) ;
% speed = numReduce ( % dtVClient . grenadeHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . grenadeDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Grenade Launcher < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . laserKills ;
% deaths = % dtVClient . laserDeaths ;
% ma = % dtVClient . laserMA ;
% com = % dtVClient . laserCom ;
% maxDist = numReduce ( % dtVClient . laserKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . laserACC , 1 ) ;
% speed = numReduce ( % dtVClient . laserHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . laserDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Laser Rifle < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . mortarKills ;
% deaths = % dtVClient . mortarDeaths ;
% ma = % dtVClient . mortarMA ;
% com = % dtVClient . mortarCom ;
% maxDist = numReduce ( % dtVClient . mortarKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . mortarDmgACC , 1 ) ;
% speed = numReduce ( % dtVClient . mortarHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . mortarDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Fusion Mortar < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . missileKills ;
% deaths = % dtVClient . missileDeaths ;
% ma = % dtVClient . missileMA ;
% com = % dtVClient . missileCom ;
% maxDist = numReduce ( % dtVClient . missileKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . missileACC , 1 ) ;
% speed = numReduce ( % dtVClient . missileHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . missileDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Missile Launcher < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . shockKills ;
% deaths = % dtVClient . shockDeaths ;
% ma = % dtVClient . shockMA ;
% com = % dtVClient . shockCom ;
% maxDist = numReduce ( % dtVClient . shockKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . shockACC , 1 ) ;
% speed = numReduce ( % dtVClient . shockHitSV , 1 ) ;
% dmg = numReduce ( % dtVClient . shockDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Shocklance < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . hGrenadeKills ;
% deaths = % dtVClient . hGrenadeDeaths ;
% ma = % dtVClient . hGrenadeMA ;
% com = % dtVClient . hGrenadeCom ;
% maxDist = numReduce ( % dtVClient . hGrenadeKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . hGrenadeACC , 1 ) ;
% speed = numReduce ( % dtVClient . hGrenadeHitVV , 1 ) ;
% dmg = numReduce ( % dtVClient . hGrenadeDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Hand Grenade < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% kills = % dtVClient . mineKills ;
% deaths = % dtVClient . mineDeaths ;
% ma = % dtVClient . mineMA ;
% com = % dtVClient . mineCom ;
% maxDist = numReduce ( % dtVClient . mineKillDist , 1 ) ;
% avgACC = numReduce ( % dtVClient . mineACC , 1 ) ;
% speed = numReduce ( % dtVClient . mineHitVV , 1 ) ;
% dmg = numReduce ( % dtVClient . mineDmg , 1 ) ;
% line = ' < tab : 114 , 171 , 228 , 285 , 342 , 399 , 456 , 513 > < font : univers condensed : 18 > < color : 0 befe7 > Mine < color : 03d 597 > \ t % 1 \ t % 2 \ t % 3 \ t % 4 \ t % 5 \ t % 6 \ t % 7 \ t % 8 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % kills , % deaths , % ma , % com , % maxDist , % avgACC , % speed , % dmg ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
case "LBOARDS" :
2020-03-05 01:51:16 -05:00
% lType = getField ( strreplace ( % client . GlArg4 , "-" , "\t" ) , 0 ) ;
% client . lgame = getField ( strreplace ( % client . GlArg4 , "-" , "\t" ) , 1 ) ;
2020-02-28 16:37:29 -05:00
% page = % client . GlArg5 ;
2020-03-05 01:51:16 -05:00
if ( % client . lgame $ = "" ) {
2021-06-02 13:16:13 -04:00
% client . lgame = % game ;
2020-03-05 01:51:16 -05:00
}
if ( ! % page ) {
2021-06-02 13:16:13 -04:00
% page = 1 ;
2020-03-05 01:51:16 -05:00
}
if ( $ lData : : hasData [ % lType , % client . lgame ] ) { // see if have data
% mon = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 0 ) ;
% year = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 1 ) ;
2020-02-28 16:37:29 -05:00
% client . curMon = % mon ;
% client . curYear = % year ;
2021-06-02 13:16:13 -04:00
% client . curLType = % lType ;
2020-02-28 16:37:29 -05:00
% client . curPage = % page ;
switch $ ( % lType ) {
2021-06-02 13:16:13 -04:00
case "day" :
2020-02-28 16:37:29 -05:00
% lTypeName = "Daily" ;
messageClient ( % client , ' SetScoreHudHeader ' , "" , ' < just : center > % 1 Leaderboards For % 2 ' , % lTypeName , "Day:" @ % mon ) ;
2021-06-02 13:16:13 -04:00
case "week" :
2020-02-28 16:37:29 -05:00
% lTypeName = "Weekly" ;
messageClient ( % client , ' SetScoreHudHeader ' , "" , ' < just : center > % 1 Leaderboards For % 2 ' , % lTypeName , "Week:" @ % mon ) ;
2021-06-02 13:16:13 -04:00
case "month" :
2020-02-28 16:37:29 -05:00
% lTypeName = "Monthly" ;
messageClient ( % client , ' SetScoreHudHeader ' , "" , ' < just : center > % 1 Leaderboards For % 2 ' , % lTypeName , monthString ( % mon ) ) ;
case "quarter" :
% lTypeName = "Quarterly" ;
messageClient ( % client , ' SetScoreHudHeader ' , "" , ' < just : center > % 1 Leaderboards For % 2 ' , % lTypeName , "Q:" @ % mon ) ;
case "year" :
% lTypeName = "Yearly" ;
messageClient ( % client , ' SetScoreHudHeader ' , "" , ' < just : center > % 1 Leaderboards For % 2 ' , % lTypeName , % year ) ;
}
2020-11-19 00:37:03 -05:00
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tView \ t % 1 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > ' , % vClient , % lType ) ;
2021-06-02 13:16:13 -04:00
2021-01-07 12:07:21 -05:00
% header = ' < tab : 0 , 50 , 65 , 200 , 320 , 460 > \ t < color : 0 befe7 > \ t # \ t % 2 \ tScore \ tKills \ tTotal ' ;
2020-03-05 01:51:16 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % header , % vClient , $ dtStats : : gtNameLong [ % client . lgame ] ) ;
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
for ( % i = 0 ; % i < 10 ; % i + + ) {
2020-08-24 18:02:35 -04:00
% scoreName = getField ( $ lData : : name [ "scoreTG" , % client . lgame , % lType , % mon , % year ] , % i ) ;
% gameScore = getField ( $ lData : : data [ "scoreTG" , % client . lgame , % lType , % mon , % year ] , % i ) ;
2021-01-07 12:07:21 -05:00
% wepName = getField ( $ lData : : name [ "killsTG" , % client . lgame , % lType , % mon , % year ] , % i ) ;
% wepScore = getField ( $ lData : : data [ "killsTG" , % client . lgame , % lType , % mon , % year ] , % i ) ;
2020-03-05 01:51:16 -05:00
if ( % gameScore ) {
2020-08-24 18:02:35 -04:00
% line = ' < tab : 0 , 50 , 65 , 200 , 320 , 460 > \ t < font : univers condensed : 18 > \ t % 3. \ t < color : 0 befe7 > < clip : 138 > % 1 < / clip > < color : 03d 597 > \ t % 4 \ t < color : 0 befe7 > < clip : 138 > % 2 < / clip > < color : 03d 597 > \ t % 5 ' ;
2020-03-05 01:51:16 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % scoreName , % wepName , % i + 1 , % gameScore , mFloor ( % wepScore + 0.5 ) ) ;
}
2020-08-24 18:02:35 -04:00
else
2020-03-05 01:51:16 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
2020-02-28 16:37:29 -05:00
}
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% line = ' < just : center > < color : 0 befe7 > < a : gamelink \ tS \ tGLBOARDS \ t % 1 > View More % 2 Categories < / a > ' ;
2020-03-05 01:51:16 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , $ dtStats : : gtNameLong [ % client . lgame ] ) ;
2020-08-24 18:02:35 -04:00
% line = ' < just : center > < color : 0 befe7 > < a : gamelink \ tS \ tWLBOARDS \ t % 1 > View More Weapons Categories < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient ) ;
% line = ' < just : center > < color : 0 befe7 > < a : gamelink \ tS \ tMLBOARDS \ t % 1 > View Miscellaneous Categories < / a > ' ;
2020-02-28 16:37:29 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient ) ;
2020-03-05 01:51:16 -05:00
% hasCount = 0 ; % line = "" ;
for ( % i = 0 ; % i < $ dtStats : : gameTypeCount ; % i + + ) {
if ( $ lData : : hasData [ % lType , $ dtStats : : gameType [ % i ] ] & & $ dtStats : : gameType [ % i ] ! $ = % client . lgame ) {
2021-06-02 13:16:13 -04:00
% hasCount + + ;
% line = % line @ "<a:gamelink\tS\tLBOARDS\t" @ % vClient @ "\t" @ % lType @ "-" @ $ dtStats : : gameType [ % i ] @ "\t0>[" @ $ dtStats : : gtNameShort [ $ dtStats : : gameType [ % i ] ] @ "] </a>" ;
2020-03-05 01:51:16 -05:00
}
}
//error(%client.lgame SPC %game SPC %hasCount );
if ( % hasCount > 0 ) {
2020-11-19 00:37:03 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "<just:center>" SPC % line ) ;
2020-03-05 01:51:16 -05:00
}
else {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
//messageClient( %client, 'SetLineHud', "", %tag, %index++, "");
2020-03-05 01:51:16 -05:00
//error(%mon SPC %page SPC $lData::monCount[%client.lgame,%lType]);
if ( $ lData : : monCount [ % client . lgame , % lType ] > 1 ) {
2020-02-28 16:37:29 -05:00
if ( % page = = 1 ) {
2020-08-24 18:02:35 -04:00
% line = ' < just : center > Click on category to view more < just : right > < color : 0 befe7 > < a : gamelink \ tS \ tLBOARDS \ t % 1 \ t % 2 - % 4 \ t % 3 > Previous < / a > ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % lType , % page + 1 , % client . lgame ) ;
2020-02-28 16:37:29 -05:00
}
2020-03-05 01:51:16 -05:00
else if ( % page > = $ lData : : monCount [ % client . lgame , % lType ] ) {
2020-08-24 18:02:35 -04:00
% line = ' < just : center > Click on top category to view more < just : right > < color : 0 befe7 > < a : gamelink \ tS \ tLBOARDS \ t % 1 \ t % 2 - % 4 \ t % 3 > Next < / a > ' ;
2020-03-05 01:51:16 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % lType , % page - 1 , % client . lgame ) ;
2020-02-28 16:37:29 -05:00
}
else {
2020-08-24 18:02:35 -04:00
% line = ' < just : center > Click on category to view more < just : right > < a : gamelink \ tS \ tLBOARDS \ t % 1 \ t % 2 - % 5 \ t % 3 > Next < / a > | < color : 0 befe7 > < a : gamelink \ tS \ tLBOARDS \ t % 1 \ t % 2 - % 5 \ t % 4 > Previous < / a > ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % lType , % page - 1 , % page + 1 , % client . lgame ) ;
2020-02-28 16:37:29 -05:00
}
}
}
2020-03-05 01:51:16 -05:00
else { //no data for selected game type
2020-02-28 16:37:29 -05:00
% header = ' < color : 0 befe7 > < just : center > No data at this time , check in 24 hours ' ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % header , % i1 , % i2 , % i3 , % i4 + + , % i5 , % i6 , % i7 ) ;
2020-03-05 01:51:16 -05:00
% hasCount = 0 ; % line = "" ;
for ( % i = 0 ; % i < $ dtStats : : gameTypeCount ; % i + + ) {
if ( $ lData : : hasData [ % lType , $ dtStats : : gameType [ % i ] ] & & $ dtStats : : gameType [ % i ] ! $ = % client . lgame ) {
2021-06-02 13:16:13 -04:00
% hasCount + + ;
% line = % line @ "<a:gamelink\tS\tLBOARDS\t" @ % vClient @ "\t" @ % lType @ "-" @ $ dtStats : : gameType [ % i ] @ "\t0>" @ $ dtStats : : gtNameShort [ $ dtStats : : gameType [ % i ] ] @ " </a>" ;
2020-03-05 01:51:16 -05:00
}
2021-06-02 13:16:13 -04:00
}
2020-03-05 01:51:16 -05:00
if ( % hasCount > 0 ) {
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "" ) ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < just : center > View other gametypes ' ) ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "<just:center>" @ % line ) ;
}
2020-02-28 16:37:29 -05:00
}
case "GLBOARDS" :
% lType = % client . curLType ;
% page = % client . curPage ;
2020-03-05 01:51:16 -05:00
% mon = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 0 ) ;
% year = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 1 ) ;
2020-02-28 16:37:29 -05:00
% client . backPage = "GLBOARDS" ;
% NA = "N/A" ;
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>" @ $ dtStats : : gtNameShort [ % client . lgame ] SPC "Greatest Hits" ) ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tLBOARDS \ t % 1 \ t % 3 - % 5 \ t % 4 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > ' , % vClient , $ dtStats : : topAmount , % lType , % page , % client . lgame ) ;
2020-02-28 16:37:29 -05:00
//exec("scripts/autoexec/zDarktigerStats.cs");
2020-08-24 18:02:35 -04:00
% clG = % client . lgame ;
switch $ ( % clG ) {
case "CTFGame" :
% var1 = "scoreTG" ; % var1Title = "Score Total:" ; % var1Name = "Score Total" ; % var1TypeName = "Total" ;
% var2 = "scoreAVG" ; % var2Title = "Score Avg:" ; % var2Name = "Score Average " ; % var2TypeName = "Average" ;
2020-09-02 20:23:52 -04:00
% var3 = "scoreMax" ; % var3Title = "Highest Score:" ; % var3Name = "Highest Score" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-09-02 20:23:52 -04:00
% var1 = "winLostPctAvg" ; % var1Title = "Win Lost Ratio:" ; % var1Name = "Win lost Ratio Average" ; % var1TypeName = "Ratio" ;
2020-08-24 18:02:35 -04:00
% var2 = "defenseScoreTG" ; % var2Title = "Defense Score:" ; % var2Name = "Defense Score" ; % var2TypeName = "Total" ;
% var3 = "offenseScoreTG" ; % var3Title = "Offense Score:" ; % var3Name = "Offense Score" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
% var1 = "flagCapsTG" ; % var1Title = "Flag Caps:" ; % var1Name = "Flag Caps" ; % var1TypeName = "Total" ;
% var2 = "flagGrabsTG" ; % var2Title = "Flag Grabs:" ; % var2Name = "Flag Grabs" ; % var2TypeName = "Total" ;
% var3 = "flagReturnsTG" ; % var3Title = "Flag Returns:" ; % var3Name = "Flag Returns" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "carrierKillsTG" ; % var1Title = "Carrier Kills:" ; % var1Name = "Carrier Kills" ; % var1TypeName = "Total" ;
2020-11-02 15:02:14 -05:00
% var2 = "escortAssistsTG" ; % var2Title = "Flag Assists:" ; % var2Name = "Flag Assists" ; % var2TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var3 = "flagDefendsTG" ; % var3Title = "Flag Defends:" ; % var3Name = "Flag Defends" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "grabSpeedAvg" ; % var1Title = "Grab Speed Avg:" ; % var1Name = "Grab Speed Avg" ; % var1TypeName = "Speed KM/H" ;
% var2 = "heldTimeSecAvgI" ; % var2Title = "Held Time Avg:" ; % var2Name = "Held Time Avg" ; % var2TypeName = "Seconds" ;
% var3 = "capEfficiencyAvg" ; % var3Title = "Cap Efficiency:" ; % var3Name = "Cap Efficiency Caps/Grabs" ; % var3TypeName = "Value" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
% var1 = "killsTG" ; % var1Title = "Kills:" ; % var1Name = "Kills" ; % var1TypeName = "Total" ;
2020-11-02 15:02:14 -05:00
% var2 = "assistTG" ; % var2Title = "Kill Assists:" ; % var2Name = "Kill Assists" ; % var2TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var3 = "teamKillsTG" ; % var3Title = "Team Kills:" ; % var3Name = "Team Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "EVKillsTG" ; % var1Title = "EV Kills:" ; % var1Name = "Environmental Kills" ; % var1TypeName = "Total" ;
% var2 = "killStreakMax" ; % var2Title = "Kill Streak:" ; % var2Name = "Highest Kill Streak" ; % var2TypeName = "Max" ;
% var3 = "kdrAvg" ; % var3Title = "KDR Avg:" ; % var3Name = "Kill / Death Ratio" ; % var3TypeName = "Value" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
% var1 = "airTimeTG" ; % var1Title = "Air Time:" ; % var1Name = "Total Air Time" ; % var1TypeName = "Minutes" ;
% var2 = "groundTimeTG" ; % var2Title = "Ground Time:" ; % var2Name = "Total Ground Time" ; % var2TypeName = "Minutes" ;
% var3 = "distMovTG" ; % var3Title = "Distance Moved:" ; % var3Name = "Distance Moved" ; % var3TypeName = "Total KM" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "killAirTG" ; % var1Title = "Air kills:" ; % var1Name = "Air Kills" ; % var1TypeName = "Total" ;
% var2 = "killGroundTG" ; % var2Title = "Ground Kills:" ; % var2Name = "Ground Kills" ; % var2TypeName = "Total" ;
% var3 = "totalMATG" ; % var3Title = "Total MidAirs:" ; % var3Name = "Total MidAirs" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-09-02 20:23:52 -04:00
% var1 = "roadKillsTG" ; % var1Title = "Road Kills:" ; % var1Name = "Road Kills" ; % var1TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var2 = "shrikeBlasterKillsTG" ; % var2Title = "Shrike Kills:" ; % var2Name = "Shrike Blaster Kills" ; % var2TypeName = "Total" ;
2020-09-02 20:23:52 -04:00
% var3 = "bomberBombsKillsTG" ; % var3Title = "Bomber Kills:" ; % var3Name = "Bomber Bomb Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-09-02 20:23:52 -04:00
% var1 = "destructionTG" ; % var1Title = "Assets Destroyed:" ; % var1Name = "Assets Destroyed" ; % var1TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var2 = "repairsTG" ; % var2Title = "Repairs:" ; % var2Name = "Repairs" ; % var2TypeName = "Total" ;
% var3 = "repairpackpickupCountTTL" ; % var3Title = "Repair Pack Grab:" ; % var3Name = "Repair Pack Pickup" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
% var1 = "depStationDestroysTG" ; % var1Title = "DepStation-Des:" ; % var1Name = "Deployable Station Destroys" ; % var1TypeName = "Total" ;
% var2 = "depTurretDestroysTG" ; % var2Title = "DepTurret-Des:" ; % var2Name = "Deployable Turret Destroys" ; % var2TypeName = "Total" ;
% var3 = "depSensorDestroysTG" ; % var3Title = "DepSensor-Des:" ; % var3Name = "Deployable Sensor Destroys" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
% var1 = "genDefendsTG" ; % var1Title = "Gen Defends:" ; % var1Name = "Generator Defends" ; % var1TypeName = "Total" ;
% var2 = "genDestroysTG" ; % var2Title = "Gen Destroys:" ; % var2Name = "Generator Destroys" ; % var2TypeName = "Total" ;
% var3 = "genRepairsTG" ; % var3Title = "Gen Repairs:" ; % var3Name = "Generator Repairs" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
% var1 = "flagCatchTG" ; % var1Title = "Flag Catch:" ; % var1Name = "Flag Catch" ; % var1TypeName = "Total" ;
% var2 = "flagCatchSpeedMax" ; % var2Title = "Catch Speed:" ; % var2Name = "Max Flag Catch Speed" ; % var2TypeName = "KM/H" ;
% var3 = "flagTossTG" ; % var3Title = "Flag Toss:" ; % var3Name = "Flag Toss" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
% var1 = "maFlagCatchTG" ; % var1Title = "MA Flag Catch:" ; % var1Name = "MidAir Flag Catch" ; % var1TypeName = "Total" ;
% var2 = "maFlagCatchSpeedMax" ; % var2Title = "MA Catch Speed:" ; % var2Name = "MidAir Catch Speed" ; % var2TypeName = "KM/H" ;
% var3 = "flagTossCatchTG" ; % var3Title = "Successful Pass:" ; % var3Name = "Successful Flag Passes" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-10-05 16:35:31 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
% var1 = "interceptedFlagTG" ; % var1Title = "Flag Interception:" ; % var1Name = "Flag Interception" ; % var1TypeName = "Total" ;
% var2 = "maInterceptedFlagTG" ; % var2Title = "MA Interception:" ; % var2Name = "MidAir Flag Interception" ; % var2TypeName = "KM/H" ;
% var3 = "interceptSpeedMax" ; % var3Title = "Intercept Speed:" ; % var3Name = "Successful Flag Passes" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
case "SCtfGame" :
//1
% var1 = "scoreTG" ; % var1Title = "Score Total:" ; % var1Name = "Score Total" ; % var1TypeName = "Total" ;
% var2 = "scoreAVG" ; % var2Title = "Score Avg:" ; % var2Name = "Score Average " ; % var2TypeName = "Average" ;
2020-09-02 20:23:52 -04:00
% var3 = "scoreMax" ; % var3Title = "Highest Score:" ; % var3Name = "Highest Score" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//2
2020-09-02 20:23:52 -04:00
% var1 = "winLostPctAvg" ; % var1Title = "Win Lost Ratio:" ; % var1Name = "Win lost Average" ; % var1TypeName = "Percentage" ;
% var2 = "defenseScoreTG" ; % var2Title = "Defense Score:" ; % var2Name = "Defense Score" ; % var2TypeName = "Total" ;
% var3 = "offenseScoreTG" ; % var3Title = "Offense Score:" ; % var3Name = "Offense Score" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//3
% var1 = "flagCapsTG" ; % var1Title = "Flag Caps:" ; % var1Name = "Flag Caps" ; % var1TypeName = "Total" ;
% var2 = "flagGrabsTG" ; % var2Title = "Flag Grabs:" ; % var2Name = "Flag Grabs" ; % var2TypeName = "Total" ;
% var3 = "flagReturnsTG" ; % var3Title = "Flag Returns:" ; % var3Name = "Flag Returns" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//4
% var1 = "carrierKillsTG" ; % var1Title = "Carrier Kills:" ; % var1Name = "Carrier Kills" ; % var1TypeName = "Total" ;
2020-11-02 15:02:14 -05:00
% var2 = "escortAssistsTG" ; % var2Title = "Flag Assists:" ; % var2Name = "Flag Assists" ; % var2TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var3 = "flagDefendsTG" ; % var3Title = "Flag Defends:" ; % var3Name = "Flag Defends" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//5
% var1 = "grabSpeedAvg" ; % var1Title = "Grab Speed Avg:" ; % var1Name = "Grab Speed Avg" ; % var1TypeName = "Speed KM/H" ;
% var2 = "heldTimeSecAvgI" ; % var2Title = "Held Time Avg:" ; % var2Name = "Held Time Avg" ; % var2TypeName = "Seconds" ;
% var3 = "capEfficiencyAvg" ; % var3Title = "Cap Efficiency:" ; % var3Name = "Cap Efficiency" ; % var3TypeName = "Percentage" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//6
2020-09-02 20:23:52 -04:00
% var1 = "killsTG" ; % var1Title = "Kills:" ; % var1Name = "Kills" ; % var1TypeName = "Total" ;
2020-11-02 15:02:14 -05:00
% var2 = "assistTG" ; % var2Title = "Kill Assists:" ; % var2Name = "Kill Assists" ; % var2TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var3 = "teamKillsTG" ; % var3Title = "Team Kills:" ; % var3Name = "Team Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//7
% var1 = "EVKillsTG" ; % var1Title = "EV Kills:" ; % var1Name = "Environmental Kills" ; % var1TypeName = "Total" ;
% var2 = "killStreakMax" ; % var2Title = "Kill Streak:" ; % var2Name = "Highest Kill Streak" ; % var2TypeName = "Max" ;
% var3 = "kdrAvg" ; % var3Title = "KDR Avg:" ; % var3Name = "Kill / Death Ratio" ; % var3TypeName = "Value" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//8
2020-09-02 20:23:52 -04:00
% var1 = "airTimeTG" ; % var1Title = "Air Time:" ; % var1Name = "Total Air Time" ; % var1TypeName = "Minutes" ;
% var2 = "groundTimeTG" ; % var2Title = "Ground Time:" ; % var2Name = "Total Ground Time" ; % var2TypeName = "Minutes" ;
% var3 = "distMovTG" ; % var3Title = "Distance Moved:" ; % var3Name = "Distance Moved" ; % var3TypeName = "Total KM" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//9
% var1 = "killAirTG" ; % var1Title = "Air kills:" ; % var1Name = "Air Kills" ; % var1TypeName = "Total" ;
% var2 = "killGroundTG" ; % var2Title = "Ground Kills:" ; % var2Name = "Ground Kills" ; % var2TypeName = "Total" ;
% var3 = "totalMATG" ; % var3Title = "Total MidAirs:" ; % var3Name = "Total MidAirs" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//10
% var1 = "multiKillTG" ; % var1Title = "Multi Kills:" ; % var1Name = "Multi Kills" ; % var1TypeName = "Total" ;
% var2 = "chainKillTG" ; % var2Title = "Chain Kills:" ; % var2Name = "Chain Kills" ; % var2TypeName = "Total" ;
% var3 = "deathKillsTG" ; % var3Title = "Death Kills:" ; % var3Name = "Kills While Dead" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//11
% var1 = "doubleKillTG" ; % var1Title = "Double Kills:" ; % var1Name = "Double Kills" ; % var1TypeName = "Total" ;
% var2 = "tripleKillTG" ; % var2Title = "Triple Kill:" ; % var2Name = "Triple Kill" ; % var2TypeName = "Total" ;
% var3 = "quadrupleKillTG" ; % var3Title = "Quad kill:" ; % var3Name = "Quadruple Kill" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//12
% var1 = "doubleChainKillTG" ; % var1Title = "Double Chain Kill:" ; % var1Name = "Double Chain Kill" ; % var1TypeName = "Total" ;
% var2 = "tripleChainKillTG" ; % var2Title = "Triple Chain Kill:" ; % var2Name = "Triple Chain Kill" ; % var2TypeName = "Total" ;
% var3 = "quadrupleChainKillTG" ; % var3Title = "Quad Chain Kill:" ; % var3Name = "Quadruple Chain Kill" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//13
2020-11-02 15:02:14 -05:00
% var1 = "totalTimeTG" ; % var1Title = "Server Time:" ; % var1Name = "Total Server Time" ; % var1TypeName = "Minutes" ;
2020-08-24 18:02:35 -04:00
% var2 = "timeTLAvg" ; % var2Title = "Avg Lifetime:" ; % var2Name = "Average Lifetime" ; % var2TypeName = "Seconds" ;
% var3 = "maxSpeedMax" ; % var3Title = "Max Speed:" ; % var3Name = "Highest Speed" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
% var1 = "flagCatchTG" ; % var1Title = "Flag Catch:" ; % var1Name = "Flag Catch" ; % var1TypeName = "Total" ;
% var2 = "flagCatchSpeedMax" ; % var2Title = "Catch Speed:" ; % var2Name = "Max Flag Catch Speed" ; % var2TypeName = "KM/H" ;
% var3 = "flagTossTG" ; % var3Title = "Flag Toss:" ; % var3Name = "Flag Toss" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
% var1 = "maFlagCatchTG" ; % var1Title = "MA Flag Catch:" ; % var1Name = "MidAir Flag Catch" ; % var1TypeName = "Total" ;
% var2 = "maFlagCatchSpeedMax" ; % var2Title = "MA Catch Speed:" ; % var2Name = "MidAir Catch Speed" ; % var2TypeName = "KM/H" ;
% var3 = "flagTossCatchTG" ; % var3Title = "Successful Pass:" ; % var3Name = "Successful Flag Passes" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//16
% var1 = "interceptedFlagTG" ; % var1Title = "Flag Interception:" ; % var1Name = "Flag Interception" ; % var1TypeName = "Total" ;
% var2 = "maInterceptedFlagTG" ; % var2Title = "MA Interception:" ; % var2Name = "MidAir Flag Interception" ; % var2TypeName = "KM/H" ;
% var3 = "interceptSpeedMax" ; % var3Title = "Intercept Speed:" ; % var3Name = "Successful Flag Passes" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
case "LakRabbitGame" :
//1
2020-08-24 18:02:35 -04:00
% var1 = "flagGrabsTG" ; % var1Title = "Flag Grabs:" ; % var1Name = "Flag Grabs" ; % var1TypeName = "Total" ;
% var2 = "flagTimeMinTG" ; % var2Title = "Flag Time:" ; % var2Name = "Flag Time" ; % var2TypeName = "Minutes" ;
% var3 = "MidairflagGrabsTG" ; % var3Title = "MidAir Grabs:" ; % var3Name = "MidAir Flag Grabs" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//2
% var1 = "scoreTG" ; % var1Title = "Score Total:" ; % var1Name = "Score Total" ; % var1TypeName = "Total" ;
% var2 = "scoreAVG" ; % var2Title = "Score Avg:" ; % var2Name = "Score Average " ; % var2TypeName = "Average" ;
2020-09-02 20:23:52 -04:00
% var3 = "scoreMax" ; % var3Title = "Highest Score:" ; % var3Name = "Highest Score" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//3
2020-09-02 20:23:52 -04:00
% var1 = "killsTG" ; % var1Title = "Kills:" ; % var1Name = "Kills" ; % var1TypeName = "Total" ;
2020-11-02 15:02:14 -05:00
% var2 = "assistTG" ; % var2Title = "Kill Assists:" ; % var2Name = "Kill Assists" ; % var2TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var3 = "teamKillsTG" ; % var3Title = "Team Kills:" ; % var3Name = "Team Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//4
% var1 = "EVKillsTG" ; % var1Title = "EV Kills:" ; % var1Name = "Environmental Kills" ; % var1TypeName = "Total" ;
% var2 = "killStreakMax" ; % var2Title = "Kill Streak:" ; % var2Name = "Highest Kill Streak" ; % var2TypeName = "Max" ;
% var3 = "kdrAvg" ; % var3Title = "KDR Avg:" ; % var3Name = "Kill / Death Ratio" ; % var3TypeName = "Value" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//5
% var1 = "airTimeTG" ; % var1Title = "Air Time:" ; % var1Name = "Total Air Time" ; % var1TypeName = "Minutes" ;
% var2 = "groundTimeTG" ; % var2Title = "Ground Time:" ; % var2Name = "Total Ground Time" ; % var2TypeName = "Minutes" ;
% var3 = "distMovTG" ; % var3Title = "Distance Moved:" ; % var3Name = "Distance Moved" ; % var3TypeName = "Total KM" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//6
2020-11-02 15:02:14 -05:00
% var1 = "totalTimeTG" ; % var1Title = "Server Time:" ; % var1Name = "Total Server Time" ; % var1TypeName = "Minutes" ;
2020-08-24 18:02:35 -04:00
% var2 = "timeTLAvg" ; % var2Title = "Avg Lifetime:" ; % var2Name = "Average Lifetime" ; % var2TypeName = "Seconds" ;
% var3 = "maxSpeedMax" ; % var3Title = "Max Speed:" ; % var3Name = "Highest Speed" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//7
% var1 = "killAirTG" ; % var1Title = "Air kills:" ; % var1Name = "Air Kills" ; % var1TypeName = "Total" ;
% var2 = "killGroundTG" ; % var2Title = "Ground Kills:" ; % var2Name = "Ground Kills" ; % var2TypeName = "Total" ;
% var3 = "totalMATG" ; % var3Title = "Total MidAirs:" ; % var3Name = "Total MidAirs" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//8
% var1 = "multiKillTG" ; % var1Title = "Multi Kills:" ; % var1Name = "Multi Kills" ; % var1TypeName = "Total" ;
% var2 = "chainKillTG" ; % var2Title = "Chain Kills:" ; % var2Name = "Chain Kills" ; % var2TypeName = "Total" ;
% var3 = "deathKillsTG" ; % var3Title = "Death Kills:" ; % var3Name = "Kills While Dead" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//9
% var1 = "doubleKillTG" ; % var1Title = "Double Kills:" ; % var1Name = "Double Kills" ; % var1TypeName = "Total" ;
% var2 = "tripleKillTG" ; % var2Title = "Triple Kill:" ; % var2Name = "Triple Kill" ; % var2TypeName = "Total" ;
% var3 = "quadrupleKillTG" ; % var3Title = "Quad kill:" ; % var3Name = "Quadruple Kill" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//10
% var1 = "killAirTG" ; % var1Title = "Air Kills:" ; % var1Name = "Air Kills" ; % var1TypeName = "Total" ;
% var2 = "killAirGroundTG" ; % var2Title = "Air To Ground:" ; % var2Name = "Air To Ground Kills" ; % var2TypeName = "Total" ;
% var3 = "killAirAirTG" ; % var3Title = "Air To Air:" ; % var3Name = "Air To Air Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//11
2020-09-02 20:23:52 -04:00
% var1 = "killGroundTG" ; % var1Title = "Ground Kills:" ; % var1Name = "Ground Kills" ; % var1TypeName = "Total" ;
% var2 = "killGroundAirTG" ; % var2Title = "Ground To Air:" ; % var2Name = "Ground To Air Kills" ; % var2TypeName = "Total" ;
% var3 = "killGroundGroundTG" ; % var3Title = "Ground To Ground:" ; % var3Name = "Ground To Ground Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//12
% var1 = "maHitDistMax" ; % var1Title = "MidAir Dist:" ; % var1Name = "MidAir Max Distance" ; % var1TypeName = "Meters" ;
% var2 = "maHitHeightMax" ; % var2Title = "MidAir Height:" ; % var2Name = "MidAir Max Height" ; % var2TypeName = "Meters" ;
% var3 = "maHitSVMax" ; % var3Title = "MidAir Speed:" ; % var3Name = "MidAir Max Speed" ; % var3TypeName = "KM/H" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//13
2020-11-02 15:02:14 -05:00
% var1 = "totalTimeTG" ; % var1Title = "Server Time:" ; % var1Name = "Total Server Time" ; % var1TypeName = "Minutes" ;
2020-08-24 18:02:35 -04:00
% var2 = "timeTLAvg" ; % var2Title = "Avg Lifetime:" ; % var2Name = "Average Lifetime" ; % var2TypeName = "Seconds" ;
% var3 = "maxSpeedMax" ; % var3Title = "Max Speed:" ; % var3Name = "Highest Speed" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-09 16:02:11 -05:00
% var1 = "discReflectHitTG" ; % var1Title = "Disc Reflect Hit:" ; % var1Name = "Disc Reflect Hit" ; % var1TypeName = "Total" ;
% var2 = "discReflectKillTG" ; % var2Title = "Disc Reflect Kill:" ; % var2Name = "Disc Reflect Kill" ; % var2TypeName = "Total" ;
% var3 = "killerDiscJumpTG" ; % var3Title = "Disc Jump Kill:" ; % var3Name = "Disc Jump Kill" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-09 16:02:11 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-09 16:02:11 -05:00
% var1 = "blasterReflectHitTG" ; % var1Title = "Blaster Bounce Hit:" ; % var1Name = "Blaster Bounce Hit" ; % var1TypeName = "Total" ;
% var2 = "blasterReflectKillTG" ; % var2Title = "Blaster Bounce Kill:" ; % var2Name = "Blaster Bounce Kill" ; % var2TypeName = "Total" ;
% var3 = "discJumpTG" ; % var3Title = "Disc Jumps:" ; % var3Name = "Disc Jumps" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-09 16:02:11 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-08-24 18:02:35 -04:00
default : // the rest
//1
% var1 = "scoreTG" ; % var1Title = "Score Total:" ; % var1Name = "Score Total" ; % var1TypeName = "Total" ;
% var2 = "scoreAVG" ; % var2Title = "Score Avg:" ; % var2Name = "Score Average " ; % var2TypeName = "Average" ;
2020-09-02 20:23:52 -04:00
% var3 = "scoreMax" ; % var3Title = "Highest Score:" ; % var3Name = "Highest Score" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//2
% var1 = "killsTG" ; % var1Title = "Kills:" ; % var1Name = "Kills" ; % var1TypeName = "Total" ;
2020-11-02 15:02:14 -05:00
% var2 = "assistTG" ; % var2Title = "Kill Assists:" ; % var2Name = "Kill Assists" ; % var2TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var3 = "teamKillsTG" ; % var3Title = "Team Kills:" ; % var3Name = "Team Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//3
% var1 = "EVKillsTG" ; % var1Title = "EV Kills:" ; % var1Name = "Environmental Kills" ; % var1TypeName = "Total" ;
% var2 = "killStreakMax" ; % var2Title = "Kill Streak:" ; % var2Name = "Highest Kill Streak" ; % var2TypeName = "Max" ;
% var3 = "kdrAvg" ; % var3Title = "KDR Avg:" ; % var3Name = "Kill / Death Ratio" ; % var3TypeName = "Value" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//4
% var1 = "airTimeTG" ; % var1Title = "Air Time:" ; % var1Name = "Total Air Time" ; % var1TypeName = "Minutes" ;
% var2 = "groundTimeTG" ; % var2Title = "Ground Time:" ; % var2Name = "Total Ground Time" ; % var2TypeName = "Minutes" ;
% var3 = "distMovTG" ; % var3Title = "Distance Moved:" ; % var3Name = "Distance Moved" ; % var3TypeName = "Total KM" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//5
2020-11-02 15:02:14 -05:00
% var1 = "totalTimeTG" ; % var1Title = "Server Time:" ; % var1Name = "Total Server Time" ; % var1TypeName = "Minutes" ;
2020-08-24 18:02:35 -04:00
% var2 = "timeTLAvg" ; % var2Title = "Avg Lifetime:" ; % var2Name = "Average Lifetime" ; % var2TypeName = "Seconds" ;
% var3 = "maxSpeedMax" ; % var3Title = "Max Speed:" ; % var3Name = "Highest Speed" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//6
% var1 = "killAirTG" ; % var1Title = "Air kills:" ; % var1Name = "Air Kills" ; % var1TypeName = "Total" ;
% var2 = "killGroundTG" ; % var2Title = "Ground Kills:" ; % var2Name = "Ground Kills" ; % var2TypeName = "Total" ;
% var3 = "totalMATG" ; % var3Title = "Total MidAirs:" ; % var3Name = "Total MidAirs" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//7
% var1 = "multiKillTG" ; % var1Title = "Multi Kills:" ; % var1Name = "Multi Kills" ; % var1TypeName = "Total" ;
% var2 = "chainKillTG" ; % var2Title = "Chain Kills:" ; % var2Name = "Chain Kills" ; % var2TypeName = "Total" ;
% var3 = "deathKillsTG" ; % var3Title = "Death Kills:" ; % var3Name = "Kills While Dead" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//8
% var1 = "doubleKillTG" ; % var1Title = "Double Kills:" ; % var1Name = "Double Kills" ; % var1TypeName = "Total" ;
% var2 = "tripleKillTG" ; % var2Title = "Triple Kill:" ; % var2Name = "Triple Kill" ; % var2TypeName = "Total" ;
% var3 = "quadrupleKillTG" ; % var3Title = "Quad kill:" ; % var3Name = "Quadruple Kill" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//9
2020-09-02 20:23:52 -04:00
% var1 = "killAirTG" ; % var1Title = "Air Kills:" ; % var1Name = "Air Kills" ; % var1TypeName = "Total" ;
% var2 = "killAirGroundTG" ; % var2Title = "Air To Ground:" ; % var2Name = "Air To Ground Kills" ; % var2TypeName = "Total" ;
% var3 = "killAirAirTG" ; % var3Title = "Air To Air:" ; % var3Name = "Air To Air Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//10
2020-09-02 20:23:52 -04:00
% var1 = "killGroundTG" ; % var1Title = "Ground Kills:" ; % var1Name = "Ground Kills" ; % var1TypeName = "Total" ;
% var2 = "killGroundAirTG" ; % var2Title = "Ground To Air:" ; % var2Name = "Ground To Air Kills" ; % var2TypeName = "Total" ;
% var3 = "killGroundGroundTG" ; % var3Title = "Ground To Ground:" ; % var3Name = "Ground To Ground Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//11
% var1 = "maHitDistMax" ; % var1Title = "MidAir Distance:" ; % var1Name = "MidAir Max Distance" ; % var1TypeName = "Meters" ;
% var2 = "maHitHeightMax" ; % var2Title = "MidAir Height:" ; % var2Name = "MidAir Max Height" ; % var2TypeName = "Meters" ;
% var3 = "maHitSVMax" ; % var3Title = "MidAir Speed:" ; % var3Name = "MidAir Max Speed" ; % var3TypeName = "KM/H" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//12
2020-11-02 15:02:14 -05:00
% var1 = "totalTimeTG" ; % var1Title = "Server Time:" ; % var1Name = "Total Server Time" ; % var1TypeName = "Minutes" ;
% var2 = "timeTLAvg" ; % var2Title = "Avg Lifetime:" ; % var2Name = "Average Lifetime" ; % var2TypeName = "Seconds" ;
% var3 = "maxSpeedMax" ; % var3Title = "Max Speed:" ; % var3Name = "Highest Speed" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-09 16:02:11 -05:00
% var1 = "lArmorTimeTG" ; % var1Title = "Lt Armor Time:" ; % var1Name = "Scout Armor Time" ; % var1TypeName = "Minutes" ;
% var2 = "mArmorTimeTG" ; % var2Title = "Med Armor Time:" ; % var2Name = "Assault Armor Time" ; % var2TypeName = "Minutes" ;
% var3 = "hArmorTimeTG" ; % var3Title = "Hvy Armor Time:" ; % var3Name = "Juggernaut Armor Time" ; % var3TypeName = "Minutes" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-09 16:02:11 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-09 16:02:11 -05:00
% var1 = "discReflectHitTG" ; % var1Title = "Disc Reflect Hit:" ; % var1Name = "Disc Reflect Hit" ; % var1TypeName = "Total" ;
% var2 = "discReflectKillTG" ; % var2Title = "Disc Reflect Kill:" ; % var2Name = "Disc Reflect Kill" ; % var2TypeName = "Total" ;
% var3 = "killerDiscJumpTG" ; % var3Title = "Disc Jump Kill:" ; % var3Name = "Disc Jump Kill" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-09 16:02:11 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-09 16:02:11 -05:00
//15
% var1 = "blasterReflectHitTG" ; % var1Title = "Blaster Bounce Hit:" ; % var1Name = "Blaster Bounce Hit" ; % var1TypeName = "Total" ;
% var2 = "blasterReflectKillTG" ; % var2Title = "Blaster Bounce Kill:" ; % var2Name = "Blaster Bounce Kill" ; % var2TypeName = "Total" ;
% var3 = "discJumpTG" ; % var3Title = "Disc Jumps:" ; % var3Name = "Disc Jumps" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-09 16:02:11 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-02 15:02:14 -05:00
}
for ( % i = % index ; % i < 15 ; % i + + )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' ' ) ;
2020-11-09 16:02:11 -05:00
if ( % client . lgame $ = "CTFgame" | | % client . lgame $ = "SCtfGame" )
2020-11-02 15:02:14 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < just : center > Click on player name to view the top % 1 players < just : right > < a : gamelink \ tS \ tGLBOARDS2 \ t % 2 > View More < / a > ' , $ dtStats : : topAmount , % vClient ) ;
else
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < just : center > Click on player name to view the top % 1 players ' , $ dtStats : : topAmount , % vClient ) ;
case "GLBOARDS2" :
% lType = % client . curLType ;
% page = % client . curPage ;
% mon = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 0 ) ;
% year = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 1 ) ;
% client . backPage = "GLBOARDS2" ;
% NA = "N/A" ;
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>" @ $ dtStats : : gtNameShort [ % client . lgame ] SPC "Greatest Hits" ) ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tGLBOARDS \ t % 1 \ t % 3 - % 5 \ t % 4 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > ' , % vClient , $ dtStats : : topAmount , % lType , % page , % client . lgame ) ;
//exec("scripts/autoexec/zDarktigerStats.cs");
% clG = % client . lgame ;
switch $ ( % clG ) {
case "CTFGame" :
% var1 = "concussHitTG" ; % var1Title = "Concussion Hits:" ; % var1Name = "Concussion Nade Hits" ; % var1TypeName = "Total" ;
% var2 = "concussFlagTG" ; % var2Title = "Concussion Flags:" ; % var2Name = "Concussion Flags" ; % var2TypeName = "Total" ;
% var3 = "depInvyUseTG" ; % var3Title = "Deploy Invy Use" ; % var3Name = "Deploy Invy Use" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
% var1 = "multiKillTG" ; % var1Title = "Multi Kills:" ; % var1Name = "Multi Kills" ; % var1TypeName = "Total" ;
% var2 = "chainKillTG" ; % var2Title = "Chain Kills:" ; % var2Name = "Chain Kills" ; % var2TypeName = "Total" ;
% var3 = "deathKillsTG" ; % var3Title = "Death Kills:" ; % var3Name = "Kills While Dead" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
% var1 = "totalTimeTG" ; % var1Title = "Server Time:" ; % var1Name = "Total Server Time" ; % var1TypeName = "Minutes" ;
2020-08-24 18:02:35 -04:00
% var2 = "timeTLAvg" ; % var2Title = "Avg Lifetime:" ; % var2Name = "Average Lifetime" ; % var2TypeName = "Seconds" ;
% var3 = "maxSpeedMax" ; % var3Title = "Max Speed:" ; % var3Name = "Highest Speed" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2020-11-02 15:02:14 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
//4
% var1 = "lArmorTimeTG" ; % var1Title = "Lt Armor Time:" ; % var1Name = "Scout Armor Time" ; % var1TypeName = "Minutes" ;
% var2 = "mArmorTimeTG" ; % var2Title = "Med Armor Time:" ; % var2Name = "Assault Armor Time" ; % var2TypeName = "Minutes" ;
% var3 = "hArmorTimeTG" ; % var3Title = "Hvy Armor Time:" ; % var3Name = "Juggernaut Armor Time" ; % var3TypeName = "Minutes" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-19 00:37:03 -05:00
% var1 = "discReflectHitTG" ; % var1Title = "Disc Reflect Hit:" ; % var1Name = "Disc Reflect Hit" ; % var1TypeName = "Total" ;
% var2 = "discReflectKillTG" ; % var2Title = "Disc Reflect Kill:" ; % var2Name = "Disc Reflect Kill" ; % var2TypeName = "Total" ;
% var3 = "killerDiscJumpTG" ; % var3Title = "Disc Jump Kill:" ; % var3Name = "Disc Jump Kill" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-19 00:37:03 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-19 00:37:03 -05:00
% var1 = "blasterReflectHitTG" ; % var1Title = "Blaster Bounce Hit:" ; % var1Name = "Blaster Bounce Hit" ; % var1TypeName = "Total" ;
% var2 = "blasterReflectKillTG" ; % var2Title = "Blaster Bounce Kill:" ; % var2Name = "Blaster Bounce Kill" ; % var2TypeName = "Total" ;
% var3 = "discJumpTG" ; % var3Title = "Disc Jumps:" ; % var3Name = "Disc Jumps" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-19 00:37:03 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-19 00:37:03 -05:00
% var1 = "flareKillTG" ; % var1Title = "Flare Kills:" ; % var1Name = "Flare Kills" ; % var1TypeName = "Total" ;
% var2 = "flareHitTG" ; % var2Title = "Flare Hits:" ; % var2Name = "Flare Hits" ; % var2TypeName = "Total" ;
% var3 = "missileTKTG" ; % var3Title = "Missile TKs:" ; % var3Name = "Missile Team Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-19 00:37:03 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-12-01 11:14:20 -05:00
% var1 = "inventoryKillsTG" ; % var1Title = "Invy Kills:" ; % var1Name = "Inventory Kills" ; % var1TypeName = "Total" ;
% var2 = "inventoryDeathsTG" ; % var2Title = "Invy Deaths:" ; % var2Name = "Inventory Deaths" ; % var2TypeName = "Total" ;
% var3 = "repairEnemyTG" ; % var3Title = "Enemy Repairs:" ; % var3Name = "Enemy Repairs" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-12-01 11:14:20 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-09 16:02:11 -05:00
case "SCtfGame" :
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , "Dont look not done yet :( " , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-19 00:37:03 -05:00
% var1 = "discReflectHitTG" ; % var1Title = "Disc Reflect Hit:" ; % var1Name = "Disc Reflect Hit" ; % var1TypeName = "Total" ;
% var2 = "discReflectKillTG" ; % var2Title = "Disc Reflect Kill:" ; % var2Name = "Disc Reflect Kill" ; % var2TypeName = "Total" ;
% var3 = "killerDiscJumpTG" ; % var3Title = "Disc Jump Kill:" ; % var3Name = "Disc Jump Kill" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-19 00:37:03 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-19 00:37:03 -05:00
% var1 = "blasterReflectHitTG" ; % var1Title = "Blaster Bounce Hit:" ; % var1Name = "Blaster Bounce Hit" ; % var1TypeName = "Total" ;
% var2 = "blasterReflectKillTG" ; % var2Title = "Blaster Bounce Kill:" ; % var2Name = "Blaster Bounce Kill" ; % var2TypeName = "Total" ;
% var3 = "discJumpTG" ; % var3Title = "Disc Jumps:" ; % var3Name = "Disc Jumps" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-19 00:37:03 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-12-01 11:14:20 -05:00
//%var1 = "inventoryKillsTG"; %var1Title = "Invy Kills:"; %var1Name = "Inventory Kills"; %var1TypeName = "Total";
//%var2 = "inventoryDeathsTG"; %var2Title = "Invy Deaths:"; %var2Name = "Inventory Deaths"; %var2TypeName = "Total";
//%var3 = "interceptFlagSpeedMax"; %var3Title = "Intercept Flag Speed:"; %var3Name = "Intercept Flag Speed"; %var3TypeName = "Speed KM/H";
2021-06-02 13:16:13 -04:00
//%i1 = getField($lData::data[%var1,%client.lgame,%lType,%mon,%year],0) ? getField($lData::name[%var1,%client.lgame,%lType,%mon,%year],0) : %NA;
//%i2 = getField($lData::data[%var2,%client.lgame,%lType,%mon,%year],0) ? getField($lData::name[%var2,%client.lgame,%lType,%mon,%year],0) : %NA;
//%i3 = getField($lData::data[%var3,%client.lgame,%lType,%mon,%year],0) ? getField($lData::name[%var3,%client.lgame,%lType,%mon,%year],0) : %NA;
2020-12-01 11:14:20 -05:00
//%client.statsFieldSet[%vsc1 = %f++] = %var1 TAB %var1Name TAB %var1TypeName;
//%client.statsFieldSet[%vsc2 = %f++] = %var2 TAB %var2Name TAB %var2TypeName;
//%client.statsFieldSet[%vsc3 = %f++] = %var3 TAB %var3Name TAB %var3TypeName;
//%line = '<tab:1,198,395><font:univers condensed:18>\t<a:gamelink\tS\tLB\t%1\t%2\t%6><clip:197>%3</clip></a>\t<a:gamelink\tS\tLB\t%1\t%2\t%7><clip:197>%4</clip></a>\t<a:gamelink\tS\tLB\t%1\t%2\t%8><clip:197>%5</clip></a>';
//%nameTitle1 = "<color:0befe7>" @ %var1Title SPC "<color:03d597>" @ %i1;
//%nameTitle2 = "<color:0befe7>" @ %var2Title SPC "<color:03d597>" @ %i2;
//%nameTitle3 = "<color:0befe7>" @ %var3Title SPC "<color:03d597>" @ %i3;
2021-06-02 13:16:13 -04:00
//messageClient( %client, 'SetLineHud', "", %tag, %index++, %line,%vClient,0,%nameTitle1,%nameTitle2,%nameTitle3,%vsc1,%vsc2,%vsc3);
//case "LakRabbitGame":
2020-11-02 15:02:14 -05:00
default : // the rest
//1
% var1 = "scoreTG" ; % var1Title = "Score Total:" ; % var1Name = "Score Total" ; % var1TypeName = "Total" ;
% var2 = "scoreAVG" ; % var2Title = "Score Avg:" ; % var2Name = "Score Average " ; % var2TypeName = "Average" ;
% var3 = "scoreMax" ; % var3Title = "Highest Score:" ; % var3Name = "Highest Score" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
}
for ( % i = % index ; % i < 15 ; % i + + )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' ' ) ;
2020-02-28 16:37:29 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < just : center > Click on player name to view the top % 1 players ' , $ dtStats : : topAmount ) ;
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
case "WLBOARDS" :
% lType = % client . curLType ;
% page = % client . curPage ;
2020-03-05 01:51:16 -05:00
% mon = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 0 ) ;
% year = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 1 ) ;
2020-02-28 16:37:29 -05:00
% client . backPage = "WLBOARDS" ;
2021-06-02 13:16:13 -04:00
% NA = "N/A" ;
2020-02-28 16:37:29 -05:00
messageClient ( % client , ' SetScoreHudHeader ' , "" , ' < just : center > Weapons Greatest Hits ' ) ;
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tLBOARDS \ t % 1 \ t % 3 - % 5 \ t % 4 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > ' , % vClient , $ dtStats : : topAmount , % lType , % page , % client . lgame ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "minePlusDiscTG" ; % var1Title = "Mine + Disc:" ; % var1Name = "Mine Disc Hits" ; % var1TypeName = "Total" ;
% var2 = "discACCAvg" ; % var2Title = "Spinfusor Acc:" ; % var2Name = "Spinfusor Accuracy" ; % var2TypeName = "Percentage" ;
2020-09-28 11:58:38 -04:00
% var3 = "discMAHitDistMax" ; % var3Title = "Disc MA Dist:" ; % var3Name = "Spinfusor MidAir Distance" ; % var3TypeName = "Meters" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
2021-06-02 13:16:13 -04:00
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
2020-08-24 18:02:35 -04:00
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "weaponHitDistMax" ; % var1Title = "Longest Shot:" ; % var1Name = "Longest Shot" ; % var1TypeName = "Meters" ;
% var2 = "maxSpeedMax" ; % var2Title = "Highest Speed:" ; % var2Name = "Highest Speed" ; % var2TypeName = "KM/H" ;
% var3 = "satchelKillsTG" ; % var3Title = "Satchel Kills:" ; % var3Name = "Satchel Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-09-02 20:23:52 -04:00
% var1 = "totalWepDmgTG" ; % var1Title = "Tot Wep Damage:" ; % var1Name = "Total Weapon Damage" ; % var1TypeName = "Total" ;
% var2 = "shotsFiredTG" ; % var2Title = "Rounds Fired:" ; % var2Name = "Rounds Fired" ; % var2TypeName = "Total" ;
% var3 = "elfShotsFiredTG" ; % var3Title = "ELF Usage:" ; % var3Name = "ELF Usage" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "shockRearShotTG" ; % var1Title = "Rearshots:" ; % var1Name = "Rear Shocklance" ; % var1TypeName = "Total" ;
% var2 = "laserHeadShotTG" ; % var2Title = "Headshots:" ; % var2Name = "Laser Rifle Head Shots" ; % var2TypeName = "Total" ;
% var3 = "comboCountTG" ; % var3Title = "Combos:" ; % var3Name = "Weapon Combos" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
% header = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > Weapon \ tKills \ tMidAirs \ tDistance \ tSpeed ' ;
2020-02-28 16:37:29 -05:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % header ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Blaster" ;
% var1 = "blasterKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "blasterMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "blasterHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "blasterHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Plasma Rifle" ;
% var1 = "plasmaKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "plasmaMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "plasmaHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "plasmaHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Chaingun" ;
% var1 = "cgKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "cgMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "cgHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "cgHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Spinfusor" ;
% var1 = "discKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "discMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "discHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "discHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Grenade Launcher" ;
% var1 = "grenadeKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "grenadeMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "grenadeHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "grenadeHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Laser Rifle" ;
% var1 = "laserKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "laserMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "laserHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "laserHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
% wep = "Fusion Mortar" ;
% var1 = "mortarKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "mortarMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "mortarHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "mortarHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Missile Launcher" ;
% var1 = "missileKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "missileMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "missileHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "missileHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Shocklance" ;
% var1 = "shockKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "shockMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "shockHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "shockHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Mine" ;
% var1 = "mineKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "mineMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "mineHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "mineHitVVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% wep = "Hand Grenade" ;
% var1 = "hGrenadeKillsTG" ; % var1Name = % wep SPC "Kills" ; % var1TypeName = "Total" ;
% var2 = "hGrenadeMATG" ; % var2Name = % wep SPC "MidAirs" ; % var2TypeName = "Total" ;
% var3 = "hGrenadeHitDistMax" ; % var3Name = % wep SPC "Distance" ; % var3TypeName = "Meters" ;
% var4 = "hGrenadeHitSVMax" ; % var4Name = % wep SPC "Hit Speed" ; % var4TypeName = "KM/h" ;
% nameTitle1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% nameTitle4 = getField ( $ lData : : data [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var4 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% client . statsFieldSet [ % vsc4 = % f + + ] = % var4 TAB % var4Name TAB % var4TypeName ;
% client . linkSet [ % l + + ] = % vsc1 TAB % vsc2 TAB % vsc3 TAB % vsc4 ;
% line = ' < tab : 114 , 234 , 354 , 474 > < font : univers condensed : 18 > < color : 0 befe7 > % 2 < color : 03d 597 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t0 > % 3 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t1 > % 4 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t2 > % 5 < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 7 \ t3 > % 6 < / a > ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % wep , % nameTitle1 , % nameTitle2 , % nameTitle3 , % nameTitle4 , % l ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < just : center > Click on player name to view the top % 1 players ' , $ dtStats : : topAmount ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
case "MLBOARDS" : //misc
% lType = % client . curLType ;
% page = % client . curPage ;
% mon = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 0 ) ;
% year = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 1 ) ;
% client . backPage = "MLBOARDS" ;
% NA = "N/A" ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>" @ $ dtStats : : gtNameShort [ % client . lgame ] SPC "Misc" ) ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ tLBOARDS \ t % 1 \ t % 3 - % 5 \ t % 4 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > ' , % vClient , $ dtStats : : topAmount , % lType , % page , % client . lgame ) ;
% var1 = "firstKillTG" ; % var1Title = "First Kills:" ; % var1Name = "First Kills" ; % var1TypeName = "Total" ;
% var2 = "lastKillTG" ; % var2Title = "Last Kills:" ; % var2Name = "Last Kills" ; % var2TypeName = "Total" ;
% var3 = "deathKillsTG" ; % var3Title = "Death Kills:" ; % var3Name = "Kills While Dead" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
% var1 = "groundDeathsTG" ; % var1Title = "Ground Deaths:" ; % var1Name = "Ground Deaths" ; % var1TypeName = "Total" ;
% var2 = "groundKillsTG" ; % var2Title = "Ground Kills:" ; % var2Name = "Ground Kills" ; % var2TypeName = "Total" ;
% var3 = "mpbGlitchTG" ; % var3Title = "MPB Glitch:" ; % var3Name = "MPB Terrain Glitch" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-02 15:02:14 -05:00
% var1 = "lavaDeathsTG" ; % var1Title = "Lava Deaths:" ; % var1Name = "Lava Deaths" ; % var1TypeName = "Total" ;
% var2 = "lavaKillsTG" ; % var2Title = "Lava Kills:" ; % var2Name = "Lava Kills" ; % var2TypeName = "Total" ;
% var3 = "idleTimeTG" ; % var3Title = "Idle Time:" ; % var3Name = "Idle Time" ; % var3TypeName = "Seconds" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-08-24 18:02:35 -04:00
% var1 = "chatallCountTTL" ; % var1Title = "Chat All:" ; % var1Name = "Chat All" ; % var1TypeName = "Total" ;
% var2 = "chatteamCountTTL" ; % var2Title = "Chat Team:" ; % var2Name = "Chat Team" ; % var2TypeName = "Total" ;
% var3 = "voteCountTTL" ; % var3Title = "Vote Starts:" ; % var3Name = "Vote Starts" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-08-24 18:02:35 -04:00
% var1 = "voicebindsallCountTTL" ; % var1Title = "Voice Binds All:" ; % var1Name = "Voice Binds All" ; % var1TypeName = "Total" ;
% var2 = "voicebindsteamCountTTL" ; % var2Title = "Voice Binds Team:" ; % var2Name = "Voice Binds Team" ; % var2TypeName = "Total" ;
% var3 = "kickCountTTL" ; % var3Title = "Kick Count:" ; % var3Name = "Kick Count" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "leavemissionareaCountTTL" ; % var1Title = "Leave Mission Area:" ; % var1Name = "Leave Mission Area" ; % var1TypeName = "Total" ;
% var2 = "vehicleSpawnKillsTG" ; % var2Title = "Veh Spawn Kills:" ; % var2Name = "Vehicle Spawn Kills" ; % var2TypeName = "Total" ;
% var3 = "vehicleSpawnDeathsTG" ; % var3Title = "Veh Spawn Deaths:" ; % var3Name = "Vehicle Spawn Deaths" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-09-02 20:23:52 -04:00
% var1 = "switchteamCountTTL" ; % var1Title = "Switch Teams:" ; % var1Name = "Switch Teams" ; % var1TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var2 = "teamkillCountTTL" ; % var2Title = "Team Kills:" ; % var2Name = "Team Kills" ; % var2TypeName = "Average" ;
% var3 = "obstimeoutkickCountTTL" ; % var3Title = "Observer kick:" ; % var3Name = "Observer Timeout Kick" ; % var3TypeName = "Max" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-11-02 15:02:14 -05:00
% var1 = "explosionKillsTG" ; % var1Title = "Explosion Kills:" ; % var1Name = "Explosion Kills" ; % var1TypeName = "Total" ;
% var2 = "explosionDeathsTG" ; % var2Title = "Explosion Deaths:" ; % var2Name = "Explosion Deaths" ; % var2TypeName = "Total" ;
% var3 = "deadDistMax" ; % var3Title = "Dead Distance:" ; % var3Name = "Dead Distance" ; % var3TypeName = "Meters" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-11-02 15:02:14 -05:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-11-02 15:02:14 -05:00
% var1 = "forceFieldPowerUpKillsTG" ; % var1Title = "Forcefield Kills:" ; % var1Name = "Forcefield Kills" ; % var1TypeName = "Total" ;
% var2 = "forceFieldPowerUpDeathsTG" ; % var2Title = "Forcefield Deaths:" ; % var2Name = "Forcefield Deaths" ; % var2TypeName = "Total" ;
% var3 = "ctrlKKillsTG" ; % var3Title = "Suicide Kills:" ; % var3Name = "Suicide Kills" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "spawnobstimeoutCountTTL" ; % var1Title = "Spawn Timeouts:" ; % var1Name = "Spawn Timeouts" ; % var1TypeName = "Total" ;
% var2 = "weaponpickupCountTTL" ; % var2Title = "Weapon Pickups:" ; % var2Name = "Weapon Pickups" ; % var2TypeName = "Total" ;
2020-09-02 20:23:52 -04:00
% var3 = "nullTG" ; % var3Title = "RNG Luck:" ; % var3Name = "Random Number" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
% var1 = "packpickupCountTTL" ; % var1Title = "Pack Pickup:" ; % var1Name = "Pack Pickup" ; % var1TypeName = "Total" ;
% var2 = "flipflopCountTTL" ; % var2Title = "Switch Hits:" ; % var2Name = "Switch Triggers" ; % var2TypeName = "Total" ;
% var3 = "lagSpikesTTL" ; % var3Title = "Lag Spikes:" ; % var3Name = "Lag Spikes" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-09-02 20:23:52 -04:00
% var1 = "repairpackpickupCountTTL" ; % var1Title = "Repair Pickup:" ; % var1Name = "Repair Pickup" ; % var1TypeName = "Total" ;
2020-08-24 18:02:35 -04:00
% var2 = "repairpackpickupEnemyTTL" ; % var2Title = "Pickup Enemy:" ; % var2Name = "Repair Pickup Enemy" ; % var2TypeName = "Total" ;
2020-09-02 20:23:52 -04:00
% var3 = "invyEatRepairPackTTL" ; % var3Title = "Invy Eat:" ; % var3Name = "Repair Packs Eaten" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-08-24 18:02:35 -04:00
% var1 = "hitHeadTG" ; % var1Title = "Head Hits:" ; % var1Name = "Head Hits" ; % var1TypeName = "Total" ;
% var2 = "hitTorsoTG" ; % var2Title = "Torso Hits:" ; % var2Name = "Torso Hits" ; % var2TypeName = "Total" ;
% var3 = "hitLegsTG" ; % var3Title = "Leg Hits:" ; % var3Name = "Leg Hits" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-08-24 18:02:35 -04:00
//12
% var1 = "lightningDeathsTG" ; % var1Title = "Lightning Deaths:" ; % var1Name = "Lightning Deaths" ; % var1TypeName = "Total" ;
% var2 = "lightningKillsTG" ; % var2Title = "Lightning Kills:" ; % var2Name = "Lightning Kills" ; % var2TypeName = "Total" ;
2020-09-24 12:19:15 -04:00
% var3 = "lightningMAkillsTG" ; % var3Title = "Lightning + MA Kills" ; % var3Name = "Lightning MA Kills, Lightning + Wep" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-08-24 18:02:35 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-09-24 12:19:15 -04:00
//13
2020-10-05 16:35:31 -04:00
% var1 = "lightningMAEVKillsTG" ; % var1Title = "MA + Lightning Kills:" ; % var1Name = "MA Lightning Kills, Wep + Lightning" ; % var1TypeName = "Total" ;
% var2 = "lightningMAHitsTG" ; % var2Title = "Lightning + Ma Hits:" ; % var2Name = "Lightning MidAir Hits" ; % var2TypeName = "Total" ;
% var3 = "lightningMAEVHitsTG" ; % var3Title = "Ma Hits + Lightning" ; % var3Name = "MidAir Lightning Hits" ; % var3TypeName = "Total" ;
2021-06-02 13:16:13 -04:00
% i1 = getField ( $ lData : : data [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var1 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i2 = getField ( $ lData : : data [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var2 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
% i3 = getField ( $ lData : : data [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) ? getField ( $ lData : : name [ % var3 , % client . lgame , % lType , % mon , % year ] , 0 ) : % NA ;
2020-10-05 16:35:31 -04:00
% client . statsFieldSet [ % vsc1 = % f + + ] = % var1 TAB % var1Name TAB % var1TypeName ;
% client . statsFieldSet [ % vsc2 = % f + + ] = % var2 TAB % var2Name TAB % var2TypeName ;
% client . statsFieldSet [ % vsc3 = % f + + ] = % var3 TAB % var3Name TAB % var3TypeName ;
% line = ' < tab : 1 , 198 , 395 > < font : univers condensed : 18 > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 6 > < clip : 197 > % 3 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 7 > < clip : 197 > % 4 < / clip > < / a > \ t < a : gamelink \ tS \ tLB \ t % 1 \ t % 2 \ t % 8 > < clip : 197 > % 5 < / clip > < / a > ' ;
% nameTitle1 = "<color:0befe7>" @ % var1Title SPC "<color:03d597>" @ % i1 ;
% nameTitle2 = "<color:0befe7>" @ % var2Title SPC "<color:03d597>" @ % i2 ;
% nameTitle3 = "<color:0befe7>" @ % var3Title SPC "<color:03d597>" @ % i3 ;
2021-06-02 13:16:13 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , 0 , % nameTitle1 , % nameTitle2 , % nameTitle3 , % vsc1 , % vsc2 , % vsc3 ) ;
2020-08-24 18:02:35 -04:00
for ( % i = % index ; % i < 15 ; % i + + )
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' ' ) ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , ' < just : center > Click on player name to view the top % 1 players ' , $ dtStats : : topAmount ) ;
2020-02-28 16:37:29 -05:00
case "LB" : //listBoards
% lType = % client . curLType ;
% page = % client . curPage ;
2020-03-05 01:51:16 -05:00
% mon = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 0 ) ;
% year = getField ( $ lData : : mon [ % lType , % client . lgame , % page ] , 1 ) ;
2021-06-02 13:16:13 -04:00
if ( % client . GlArg4 ! = 0 ) {
% set = % client . linkSet [ % client . GlArg4 ] ; // find the array set
% fi = getField ( % set , % client . GlArg5 ) ; //find the array postion
2020-08-24 18:02:35 -04:00
% fieldSet = % client . statsFieldSet [ % fi ] ;
% field = getField ( % fieldSet , 0 ) ;
% name = getField ( % fieldSet , 1 ) ;
% fieldName = getField ( % fieldSet , 2 ) ;
}
else {
% fieldSet = % client . statsFieldSet [ % client . GlArg5 ] ;
% field = getField ( % fieldSet , 0 ) ;
% name = getField ( % fieldSet , 1 ) ;
% fieldName = getField ( % fieldSet , 2 ) ;
}
messageClient ( % client , ' SetScoreHudHeader ' , "" , ' < just : center > % 2 ( Top % 1 Players ) ' , $ dtStats : : topAmount , % name ) ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , ' < a : gamelink \ tS \ t % 3 \ t % 1 \ t % 2 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > ' , % vClient , % lType , % client . backPage ) ;
2021-06-02 13:16:13 -04:00
2020-09-02 20:23:52 -04:00
% header = ' < tab : 5 , 24 , 225 > < color : 0 befe7 > \ t # . \ t % 1 \ t % 2 ' ;
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % header , % name , % fieldName ) ;
for ( % i = 0 ; % i < getFieldCount ( $ lData : : data [ % field , % client . lgame , % lType , % mon , % year ] ) & & % i < $ dtStats : : topAmount ; % i + + ) {
% scoreName = getField ( $ lData : : name [ % field , % client . lgame , % lType , % mon , % year ] , % i ) ;
% gameScore = getField ( $ lData : : data [ % field , % client . lgame , % lType , % mon , % year ] , % i ) ;
2021-06-02 13:16:13 -04:00
if ( % scoreName ! $ = "NA" ) {
2020-08-24 18:02:35 -04:00
% gameScore = ( strPos ( % gameScore , "x" ) = = - 1 ) ? ( mFloatLength ( % gameScore , 2 ) + 0 ) : % gameScore ;
2020-09-02 20:23:52 -04:00
% line = ' < tab : 5 , 24 , 225 > < font : univers condensed : 18 > < color : 33 CCCC > \ t % 1. \ t % 2 \ t < color : 03d 597 > % 3 ' ;
2020-08-24 18:02:35 -04:00
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % i + 1 , % scoreName , % gameScore ) ;
}
else {
if ( % i = = 0 )
% line = ' < tab : 24 > < color : 0 befe7 > \ tNo data for this stat at this time ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line ) ;
2021-06-02 13:16:13 -04:00
break ;
2020-08-24 18:02:35 -04:00
}
}
2022-09-24 06:35:14 -04:00
case "VARLIST" :
% reset = % client . GlArg5 ;
if ( $ dtStats : : resetList [ % reset ] ) {
$ dtStats : : resetList [ % reset ] = 0 ;
}
else {
$ dtStats : : resetList [ % reset ] = 1 ;
}
if ( ! % client . curPage )
% client . curPage = 1 ;
% client . lgame = % game ;
% pagex = % client . curPage ;
% vLPage = % client . GlArg4 ;
% lType = "month" ;
% mon = getMonthNum ( ) ;
% year = getYear ( ) ;
% client . backPage = "VARLIST" ;
if ( % vLPage = = 0 ) { // back button was hit
% vLPage = % client . GlArg4 = % client . varListPage ; // set it to the last one we were on
}
if ( % vLPage $ = "" | | ! % client . varListPage ) {
% vLPage = 1 ;
}
% client . varListPage = % vLPage ; // update with current page
% perPage = 16 ; // num of games listed per page
messageClient ( % client , ' SetScoreHudHeader ' , "" , "<just:center>Variable List" ) ;
// messageClient( %client, 'SetScoreHudSubheader', "", '<a:gamelink\tS\tLBOARDS\t%1\t%3> Back</a> - <a:gamelink\tS\tReset\t%1>Return To Score Screen</a>',%vClient,$dtStats::topAmount,%lType);
if ( % vLPage = = 1 ) {
% line = ' < a : gamelink \ tS \ tSP \ t % 1 \ t % 3 - % 5 \ t % 4 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > - < a : gamelink \ tS \ tVARLIST \ t % 1 \ t % 2 > Next Page > < / a > ' ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , % line , % vClient , % vLPage + 1 , % lType , % pagex , % client . lgame ) ;
}
else if ( % vLPage * % perPage > $ statsVars : : count [ % client . lgame ] ) {
% line = ' < a : gamelink \ tS \ tSP \ t % 1 \ t % 3 - % 5 \ t % 4 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > - < a : gamelink \ tS \ tVARLIST \ t % 1 \ t % 2 > < Back Page < / a > < a : gamelink \ tS \ tVARLIST \ t % 1 \ t1 > < Reset > < / a > ' ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , % line , % vClient , % vLPage - 1 , % lType , % pagex , % client . lgame ) ;
}
else if ( % vLPage > 1 ) {
% line = ' < a : gamelink \ tS \ tSP \ t % 1 \ t % 4 - % 6 \ t % 5 > Back < / a > - < a : gamelink \ tS \ tReset \ t % 1 > Return To Score Screen < / a > - < a : gamelink \ tS \ tVARLIST \ t % 1 \ t % 2 \ > < Back Page < / a > | < a : gamelink \ tS \ tVARLIST \ t % 1 \ t % 3 > Next Page > < / a > < a : gamelink \ tS \ tVARLIST \ t % 1 \ t1 > < Reset > < / a > ' ;
messageClient ( % client , ' SetScoreHudSubheader ' , "" , % line , % vClient , % vLPage - 1 , % vLPage + 1 , % lType , % pagex , % client . lgame ) ;
}
% line = ' < color : 0 befe7 > < lmargin : 50 > Variable Name < lmargin : 280 > Player Name < lmargin : 450 > Reset Stat ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line ) ;
% gc = $ statsVars : : count [ % client . lgame ] ;
for ( % z = ( % vLPage - 1 ) * % perPage ; % z < % vLPage * % perPage & & % z < = % gc ; % z + + ) {
% var = $ statsVars : : varNameType [ % z , % client . lgame ] ;
% cat = $ statsVars : : varType [ % var , % client . lgame ] ;
if ( % cat ! $ = "Game" ) { // not sorted
% name = getField ( $ lData : : name [ % var , % client . lgame , % lType , % mon , % year ] , 0 ) ;
% client . statsFieldSet [ % f + + ] = % var TAB % var TAB "Value" ;
% line = ' < color : 0 befe7 > < lmargin : 50 > < a : gamelink \ tS \ tLB \ t % 1 \ t0 \ t % 4 > % 2 < / a > < lmargin : 280 > < color : 03d 597 > % 3 < lmargin : 450 > < color : % 6 > < a : gamelink \ tS \ tVARLIST \ t % 1 \ t % 7 \ t % 2 > % 5 < / a > ' ;
if ( $ dtStats : : resetList [ % var ] ) {
% reset = "Undo" ;
% color = "00FF00" ;
}
else {
% reset = "Reset" ;
% color = "FF0000" ;
}
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % var , % name , % f , % reset , % color , % vLPage ) ;
2020-08-24 18:02:35 -04:00
}
2022-09-24 06:35:14 -04:00
else {
% line = ' < color : 0 befe7 > < lmargin : 50 > % 2 < lmargin : 280 > < color : 03d 597 > % 3 ' ;
messageClient ( % client , ' SetLineHud ' , "" , % tag , % index + + , % line , % vClient , % var , "NA" ) ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
}
2022-09-24 06:35:14 -04:00
default :
% client . viewMenu = 0 ;
% client . viewClient = 0 ;
% client . viewStats = 0 ;
% client . lastPage = 1 ;
% client . lgame = % game ;
}
}
2021-06-02 13:16:13 -04:00
2020-02-28 16:37:29 -05:00
////////////////////////////////////////////////////////////////////////////////
// LeaderBoards
////////////////////////////////////////////////////////////////////////////////
2020-11-19 00:37:03 -05:00
function lStatsCycle ( % build , % runReset ) { // starts and manages the build/sort cycle
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : debugEchos ) { error ( "lStatsCycle" SPC $ dtStats : : build [ "day" ] SPC $ dtStats : : week & & ! $ dtStats : : build [ "week" ] SPC
2021-06-02 13:16:13 -04:00
$ dtStats : : build [ "month" ] SPC $ dtStats : : build [ "quarter" ] SPC $ dtStats : : build [ "year" ] SPC $ dtStats : : lCount ) ; }
2020-11-19 00:37:03 -05:00
if ( % runReset ) {
if ( ! $ dtStats : : statsSave ) {
$ dtStats : : statReset = 1 ;
dtStatClear ( ) ;
$ dtStats : : hostTimeLimit = $ Host : : TimeLimit ;
if ( isGameRun ( ) ) { //if for some reason the game is running extend the time limit untill done
Game . voteChangeTimeLimit ( 1 , $ Host : : TimeLimit + 120 ) ;
messageAll ( ' MsgStats ' , ' \ c3Stats build started , adjusting time limit temporarily ' ) ;
$ dtStats : : timeChange = 1 ;
}
}
else {
2021-06-02 13:16:13 -04:00
schedule ( 5000 , 0 , "lStatsCycle" , 1 , 1 ) ; //waiting on other stuff to finish
2020-11-19 00:37:03 -05:00
return ;
}
}
2020-02-28 16:37:29 -05:00
if ( % build ) { //reset
2021-06-02 13:16:13 -04:00
if ( ! $ dtStats : : statsSave & & ! $ dtStats : : statReset ) { // make sure we are not inbetween missions and saveing
2020-08-24 18:02:35 -04:00
$ dtStats : : build [ "day" ] = 0 ;
$ dtStats : : build [ "week" ] = 0 ;
$ dtStats : : build [ "month" ] = 0 ;
$ dtStats : : build [ "quarter" ] = 0 ;
$ dtStats : : build [ "year" ] = 0 ;
$ dtStats : : lCount = 0 ;
$ dtStats : : building = 1 ;
2020-11-19 00:37:03 -05:00
if ( ! $ dtStats : : timeChange ) {
$ dtStats : : hostTimeLimit = $ Host : : TimeLimit ;
if ( isGameRun ( ) ) { //if for some reason the game is running extend the time limit untill done
Game . voteChangeTimeLimit ( 1 , $ Host : : TimeLimit + 120 ) ;
messageAll ( ' MsgStats ' , ' \ c3Stats build started , adjusting time limit temporarily ' ) ;
$ dtStats : : timeChange = 1 ;
}
2020-08-24 18:02:35 -04:00
}
}
else {
2021-06-02 13:16:13 -04:00
schedule ( 5000 , 0 , "lStatsCycle" , 1 , 0 ) ; //waiting on other stuff to finish
2020-08-24 18:02:35 -04:00
return ;
}
2020-02-28 16:37:29 -05:00
}
if ( $ dtStats : : day > 0 & & ! $ dtStats : : build [ "day" ] ) {
% game = $ dtStats : : gameType [ $ dtStats : : lCount ] ;
if ( $ dtStats : : lCount + + > = $ dtStats : : gameTypeCount ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : build [ "day" ] = 1 ; // mark as done
2020-02-28 16:37:29 -05:00
$ dtStats : : lCount = 0 ; // reset
}
preLoadStats ( % game , "day" ) ;
}
else if ( $ dtStats : : week > 0 & & ! $ dtStats : : build [ "week" ] ) {
% game = $ dtStats : : gameType [ $ dtStats : : lCount ] ;
if ( $ dtStats : : lCount + + > = $ dtStats : : gameTypeCount ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : build [ "week" ] = 1 ; // mark as done
2020-02-28 16:37:29 -05:00
$ dtStats : : lCount = 0 ; // reset
}
preLoadStats ( % game , "week" ) ;
}
else if ( $ dtStats : : month > 0 & & ! $ dtStats : : build [ "month" ] ) {
% game = $ dtStats : : gameType [ $ dtStats : : lCount ] ;
if ( $ dtStats : : lCount + + > = $ dtStats : : gameTypeCount ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : build [ "month" ] = 1 ; // mark as done
2020-02-28 16:37:29 -05:00
$ dtStats : : lCount = 0 ; // reset
}
preLoadStats ( % game , "month" ) ;
}
else if ( $ dtStats : : quarter > 0 & & ! $ dtStats : : build [ "quarter" ] ) {
% game = $ dtStats : : gameType [ $ dtStats : : lCount ] ;
if ( $ dtStats : : lCount + + > = $ dtStats : : gameTypeCount ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : build [ "quarter" ] = 1 ; // mark as done
2020-02-28 16:37:29 -05:00
$ dtStats : : lCount = 0 ; // reset
}
preLoadStats ( % game , "quarter" ) ;
}
else if ( $ dtStats : : year > 0 & & ! $ dtStats : : build [ "year" ] ) {
% game = $ dtStats : : gameType [ $ dtStats : : lCount ] ;
if ( $ dtStats : : lCount + + > = $ dtStats : : gameTypeCount ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : build [ "year" ] = 1 ; // mark as done
2020-02-28 16:37:29 -05:00
$ dtStats : : lCount = 0 ; // reset
}
preLoadStats ( % game , "year" ) ;
}
else {
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { error ( "leaderBoards finished building" ) ; }
2022-09-24 06:35:14 -04:00
schedule ( 5000 , 0 , "loadLeaderboards" , 1 ) ; // reset and reload leaderboards
$ dtServerVars : : lastBuildTime = formattimestring ( "hh:nn:a mm-dd-yy" ) ;
dtSaveServerVars ( ) ;
if ( isObject ( Game ) ) {
Game . voteChangeTimeLimit ( 1 , $ dtStats : : hostTimeLimit ) ; //put back to normal
messageAll ( ' MsgStats ' , ' \ c3Stats build complete , reverting time back to normal ' ) ;
$ dtStats : : timeChange = 0 ;
}
2020-02-28 16:37:29 -05:00
}
}
2021-06-02 13:16:13 -04:00
// only load one gameType/leaderboard at at time to reduce memory allocation
2020-02-28 16:37:29 -05:00
function preLoadStats ( % game , % lType ) { //queue up files for processing
if ( $ dtStats : : debugEchos ) { error ( "preLoadStats queuing up files for" SPC % game SPC % lType ) ; }
% folderPath = "serverStats/stats/" @ % game @ "/*t.cs" ;
% count = getFileCount ( % folderPath ) ;
if ( ! % count ) {
2020-11-19 00:37:03 -05:00
lStatsCycle ( 0 , 0 ) ;
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
if ( ! isObject ( serverStats ) ) { new SimGroup ( serverStats ) ; RootGroup . add ( serverStats ) ; }
else { serverStats . delete ( ) ; new SimGroup ( serverStats ) ; RootGroup . add ( serverStats ) ; }
2020-02-28 16:37:29 -05:00
for ( % i = 0 ; % i < % count ; % i + + ) {
% file = findNextfile ( % folderPath ) ;
schedule ( % i * 32 , 0 , "loadStatsData" , % file , % game , % lType , % i , % count ) ;
}
}
function markNewDay ( ) { // updates are dates when the server is ready to cycle over to a new day
$ dtStats : : curDay = getDayNum ( ) ;
$ dtStats : : curWeek = getWeekNum ( ) ;
$ dtStats : : curMonth = getMonthNum ( ) ;
$ dtStats : : curQuarter = getQuarterNum ( ) ;
$ dtStats : : curYear = getYear ( ) ;
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { error ( "MarkNewDay =" SPC $ dtStats : : curDay SPC $ dtStats : : curWeek SPC $ dtStats : : curMonth SPC $ dtStats : : curQuarter SPC $ dtStats : : curYear ) ; }
2020-02-28 16:37:29 -05:00
}
2021-06-02 13:16:13 -04:00
// var old new old new old new old new old new
// var day day week week month month quarter quarter year year
2020-02-28 16:37:29 -05:00
// 0 1 2 3 4 5 6 7 8 9 10
function loadStatsData ( % filepath , % game , % lType , % fileNum , % total ) {
if ( $ dtStats : : debugEchos ) { error ( "loadStatsData" SPC % filePath SPC % fileNum SPC % total ) ; }
switch $ ( % lType ) {
2021-06-02 13:16:13 -04:00
case "day" : % mon = $ dtStats : : curDay ; % fieldOld = 1 ; % fieldNew = 2 ;
case "week" : % mon = $ dtStats : : curWeek ; % fieldOld = 3 ; % fieldNew = 4 ;
case "month" : % mon = $ dtStats : : curMonth ; % fieldOld = 5 ; % fieldNew = 6 ;
case "quarter" : % mon = $ dtStats : : curQuarter ; % fieldOld = 7 ; % fieldNew = 8 ;
case "year" : % mon = $ dtStats : : curYear ; % fieldOld = 9 ; % fieldNew = 10 ;
default : % mon = getMonthNum ( ) ; % fieldOld = 5 ; % fieldNew = 6 ;
2020-02-28 16:37:29 -05:00
}
% file = new FileObject ( ) ;
2020-08-24 18:02:35 -04:00
RootGroup . add ( % file ) ;
2020-02-28 16:37:29 -05:00
% file . OpenForRead ( % filepath ) ;
2020-08-24 18:02:35 -04:00
% day = strreplace ( % file . readline ( ) , "%t" , "\t" ) ;
2020-02-28 16:37:29 -05:00
if ( getFieldCount ( % day ) > = 9 ) {
% guid = getField ( strreplace ( getField ( strreplace ( % filepath , "/" , "\t" ) , 3 ) , "t" , "\t" ) , 0 ) ;
% gameCount = strreplace ( % file . readline ( ) , "%t" , "\t" ) ;
% name = getField ( strreplace ( % file . readline ( ) , "%t" , "\t" ) , 1 ) ;
% monOld = getField ( % day , % fieldOld ) ;
2021-06-02 13:16:13 -04:00
% monNew = getField ( % day , % fieldNew ) ; // should allways be this one
2020-02-28 16:37:29 -05:00
% found = - 1 ;
if ( % monNew = = % mon ) { % found = % fieldNew ; }
else if ( % monold = = % mon ) { % found = % fieldOld ; }
if ( % found > - 1 ) {
% obj = new scriptObject ( ) ;
serverStats . add ( % obj ) ;
% obj . name = % name ;
% obj . gameCount = getField ( % gameCount , % found ) ;
% obj . guid = % guid ;
while ( ! % file . isEOF ( ) ) {
% line = strreplace ( % file . readline ( ) , "%t" , "\t" ) ;
% var = getField ( % line , 0 ) ;
% obj . LStats [ % var , % game ] = getField ( % line , % found ) ;
2021-06-02 13:16:13 -04:00
}
2020-02-28 16:37:29 -05:00
}
}
% file . close ( ) ;
% file . delete ( ) ;
if ( % fileNum > = % total - 1 ) {
2021-06-02 13:16:13 -04:00
if ( serverStats . getCount ( ) ) { // make sure we have data to sort
sortLStats ( 0 , % game , % lType ) ;
2020-02-28 16:37:29 -05:00
}
else {
if ( $ dtStats : : debugEchos ) { error ( "No Valid Data For" SPC % lType SPC % mon ) ; }
2020-11-19 00:37:03 -05:00
lStatsCycle ( 0 , 0 ) ;
2020-02-28 16:37:29 -05:00
}
}
}
2020-08-24 18:02:35 -04:00
function sortLStats ( % c , % game , % lType ) {
if ( $ dtStats : : debugEchos ) { error ( "sortLStats" SPC % c SPC % game SPC % lType ) ; }
% var = $ statsVars : : varNameType [ % c , % game ] ;
% cat = $ statsVars : : varType [ % var , % game ] ;
if ( % cat ! $ = "Game" ) {
% sortCount = 0 ;
if ( ! isObject ( LFData ) ) {
switch $ ( % lType ) {
case "day" : % mon = $ dtStats : : curDay ;
case "week" : % mon = $ dtStats : : curWeek ;
case "month" : % mon = $ dtStats : : curMonth ;
case "quarter" : % mon = $ dtStats : : curQuarter ;
case "year" : % mon = $ dtStats : : curYear ;
default : error ( "ltype is not set" ) ; return ;
}
//%fc = getFileCount("serverStats/LData/-CTFGame*.cs");
new FileObject ( LFData ) ;
RootGroup . add ( LFData ) ;
2021-06-02 13:16:13 -04:00
LFData . openForWrite ( "serverStats/lData/" @ "-" @ % game @ "-" @ % mon @ "-" @ $ dtStats : : curYear @ "-" @ % lType @"-.cs" ) ;
2020-08-24 18:02:35 -04:00
}
% n = % var @ "%tname" ; // name list
2021-06-02 13:16:13 -04:00
% s = % var @ "%tdata" ; // data list
% g = % var @ "%tguid" ; // data list
2020-08-24 18:02:35 -04:00
% statsCount = serverStats . getCount ( ) ;
if ( % cat $ = "AvgI" | | % cat $ = "Min" ) {
% invCount = 0 ;
2021-06-02 13:16:13 -04:00
for ( % i = 0 ; % i < % statsCount ; % i + + ) { //selection sort
% maxCount = % i ;
2020-08-24 18:02:35 -04:00
for ( % j = % i + 1 ; % j < % statsCount ; % j + + ) {
if ( % cat $ = "AvgI" ) {
2021-05-06 15:01:41 -04:00
% aVal = getField ( strreplace ( serverStats . getObject ( % j ) . LStats [ % var , % game ] , "%a" , "\t" ) , 2 ) > = $ dtStats : : minTotal ? getField ( strreplace ( serverStats . getObject ( % j ) . LStats [ % var , % game ] , "%a" , "\t" ) , 0 ) : 0 ;
% bVal = getField ( strreplace ( serverStats . getObject ( % maxCount ) . LStats [ % var , % game ] , "%a" , "\t" ) , 2 ) > = $ dtStats : : minTotal ? getField ( strreplace ( serverStats . getObject ( % maxCount ) . LStats [ % var , % game ] , "%a" , "\t" ) , 0 ) : 0 ;
if ( % aVal < % bVal )
2020-08-24 18:02:35 -04:00
% maxCount = % j ;
}
else {
if ( serverStats . getObject ( % j ) . LStats [ % var , % game ] < serverStats . getObject ( % maxCount ) . LStats [ % var , % game ] )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
}
% obj = serverStats . getObject ( % maxCount ) ;
2021-06-02 13:16:13 -04:00
serverStats . bringToFront ( % obj ) ; // push the ones we have sorted to the front so we dont pass over them again
2020-08-24 18:02:35 -04:00
if ( % cat $ = "AvgI" )
2021-05-06 15:01:41 -04:00
% num = getField ( strreplace ( % obj . LStats [ % var , % game ] , "%a" , "\t" ) , 2 ) > = $ dtStats : : minTotal ? getField ( strreplace ( % obj . LStats [ % var , % game ] , "%a" , "\t" ) , 0 ) : 0 ;
2020-08-24 18:02:35 -04:00
else
% num = % obj . LStats [ % var , % game ] ;
if ( % num ! = 0 ) {
% invCount + + ;
2021-06-02 13:16:13 -04:00
% n = % n @ "%t" @ % obj . name ;
2020-08-24 18:02:35 -04:00
% s = % s @ "%t" @ % num ;
% g = % g @ "%t" @ % obj . guid ;
}
2021-06-02 13:16:13 -04:00
if ( % invCount > = $ dtStats : : topAmount ) {
break ;
2020-08-24 18:02:35 -04:00
}
}
if ( ! % invCount ) {
2021-06-02 13:16:13 -04:00
% n = % n @ "%t" @ "NA" ;
2020-08-24 18:02:35 -04:00
% s = % s @ "%t" @ 0 ;
% g = % g @ "%t" @ 0 ;
}
}
else {
% invCount = 0 ;
2021-06-02 13:16:13 -04:00
for ( % i = 0 ; % i < % statsCount & & % i < $ dtStats : : topAmount ; % i + + ) { //selection sort
% maxCount = % i ;
2020-08-24 18:02:35 -04:00
for ( % j = % i + 1 ; % j < % statsCount ; % j + + ) {
if ( % cat $ = "Avg" ) {
2021-05-06 15:01:41 -04:00
% aVal = getField ( strreplace ( serverStats . getObject ( % j ) . LStats [ % var , % game ] , "%a" , "\t" ) , 2 ) > = $ dtStats : : minTotal ? getField ( strreplace ( serverStats . getObject ( % j ) . LStats [ % var , % game ] , "%a" , "\t" ) , 0 ) : 0 ;
% bVal = getField ( strreplace ( serverStats . getObject ( % maxCount ) . LStats [ % var , % game ] , "%a" , "\t" ) , 2 ) > = $ dtStats : : minTotal ? getField ( strreplace ( serverStats . getObject ( % maxCount ) . LStats [ % var , % game ] , "%a" , "\t" ) , 0 ) : 0 ;
if ( % aVal > % bVal )
2020-08-24 18:02:35 -04:00
% maxCount = % j ;
}
else {
if ( xlCompare ( serverStats . getObject ( % j ) . LStats [ % var , % game ] , serverStats . getObject ( % maxCount ) . LStats [ % var , % game ] ) $ = ">" )
2021-06-02 13:16:13 -04:00
% maxCount = % j ;
2020-08-24 18:02:35 -04:00
}
}
% obj = serverStats . getObject ( % maxCount ) ;
2021-06-02 13:16:13 -04:00
serverStats . bringToFront ( % obj ) ; // push the ones we have sorted to the front so we dont pass over them again
2020-08-24 18:02:35 -04:00
if ( % cat $ = "Avg" )
2021-05-06 15:01:41 -04:00
% num = getField ( strreplace ( % obj . LStats [ % var , % game ] , "%a" , "\t" ) , 2 ) > = $ dtStats : : minTotal ? getField ( strreplace ( % obj . LStats [ % var , % game ] , "%a" , "\t" ) , 0 ) : 0 ;
2020-08-24 18:02:35 -04:00
else
% num = % obj . LStats [ % var , % game ] ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % num ! = 0 ) {
% invCount + + ;
2021-06-02 13:16:13 -04:00
% n = % n @ "%t" @ % obj . name ;
2020-08-24 18:02:35 -04:00
% s = % s @ "%t" @ % num ;
% g = % g @ "%t" @ % obj . guid ;
}
}
if ( ! % invCount ) {
2021-06-02 13:16:13 -04:00
% n = % n @ "%t" @ "NA" ;
2020-08-24 18:02:35 -04:00
% s = % s @ "%t" @ 0 ;
% g = % g @ "%t" @ 0 ;
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
LFData . writeLine ( % n ) ;
2020-08-24 18:02:35 -04:00
LFData . writeLine ( % s ) ;
LFData . writeLine ( % g ) ;
2020-02-28 16:37:29 -05:00
}
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( % c + + < $ statsVars : : count [ % game ] )
schedule ( $ dtStats : : sortSpeed , 0 , "sortLStats" , % c , % game , % lType ) ;
else {
2020-02-28 16:37:29 -05:00
LFData . close ( ) ;
LFData . delete ( ) ;
2021-06-02 13:16:13 -04:00
lStatsCycle ( 0 , 0 ) ; // kick off the next one
2020-02-28 16:37:29 -05:00
}
}
function loadLeaderboards ( % reset ) { // loads up leaderboards
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { error ( "loadLeaderboards reset =" SPC % reset ) ; }
if ( % reset ) { deleteVariables ( "$lData::*" ) ; }
2020-02-28 16:37:29 -05:00
if ( ! $ lData : : load ) { $ lData : : load = 1 ; }
2021-06-02 13:16:13 -04:00
else { return ; } // exit if we have all ready loaded
2020-02-28 16:37:29 -05:00
markNewDay ( ) ; //called when server starts and when build completes
2020-08-24 18:02:35 -04:00
dtCleanUp ( 0 ) ;
if ( ! isEventPending ( $ dtStats : : buildEvent ) )
2022-09-03 10:21:03 -04:00
$ dtStats : : buildEvent = schedule ( getTimeDif ( $ dtStats : : buildSetTime ) , 0 , "compileStats" ) ;
2020-08-24 18:02:35 -04:00
$ dtStats : : building = 0 ;
2020-03-15 15:34:27 -04:00
if ( isFile ( "serverStats/saveVars.cs" ) )
exec ( "serverStats/saveVars.cs" ) ;
2021-06-02 13:16:13 -04:00
% oldFileCount = 0 ;
% file = new FileObject ( ) ;
2020-08-24 18:02:35 -04:00
RootGroup . add ( % file ) ;
2020-02-28 16:37:29 -05:00
% folderPath = "serverStats/LData/*.cs" ;
% count = getFileCount ( % folderPath ) ;
for ( % i = 0 ; % i < % count ; % i + + ) {
% filepath = findNextfile ( % folderPath ) ;
% fieldPath = strreplace ( % filePath , "-" , "\t" ) ;
% game = getField ( % fieldPath , 1 ) ;
% mon = getField ( % fieldPath , 2 ) ; // 0 path / 1 game / 2 mon / 3 year / 4 type / 5 .cs
2021-06-02 13:16:13 -04:00
% year = getField ( % fieldPath , 3 ) ;
2020-02-28 16:37:29 -05:00
% lType = getField ( % fieldPath , 4 ) ;
//echo(isFileExpired(%lType,%mon,%year) SPC %lType SPC %mon SPC %year);
2021-06-02 13:16:13 -04:00
if ( ! isFileExpired ( % lType , % mon , % year ) ) {
2020-02-28 16:37:29 -05:00
$ lData : : mon [ % lType , % game , $ lData : : monCount [ % game , % lType ] + + ] = % mon TAB % year ;
if ( ! $ lData : : hasData [ % lType , % game ] ) {
2021-06-02 13:16:13 -04:00
% sortArray [ % sortCount + + ] = % lType TAB % game ;
2020-02-28 16:37:29 -05:00
}
$ lData : : hasData [ % lType , % game ] = 1 ;
2021-06-02 13:16:13 -04:00
% file . OpenForRead ( % filepath ) ;
2020-02-28 16:37:29 -05:00
while ( ! % file . isEOF ( ) ) {
% line = strreplace ( % file . readline ( ) , "%t" , "\t" ) ;
% var = getField ( % line , 0 ) ;
% stack = getField ( % line , 1 ) ;
2020-08-24 18:02:35 -04:00
if ( % stack $ = "name" ) {
% name = getFields ( % line , 2 , getFieldCount ( % line ) - 1 ) ;
2021-06-02 13:16:13 -04:00
$ lData : : name [ % var , % game , % lType , % mon , % year ] = % name ;
2020-08-24 18:02:35 -04:00
}
else if ( % stack $ = "data" ) {
2020-02-28 16:37:29 -05:00
% data = getFields ( % line , 2 , getFieldCount ( % line ) - 1 ) ;
2021-06-02 13:16:13 -04:00
$ lData : : data [ % var , % game , % lType , % mon , % year ] = % data ;
}
2020-02-28 16:37:29 -05:00
else if ( % stack $ = "guid" ) {
% guid = getFields ( % line , 2 , getFieldCount ( % line ) - 1 ) ;
2021-06-02 13:16:13 -04:00
$ lData : : guid [ % var , % game , % lType , % mon , % year ] = % guid ;
2020-02-28 16:37:29 -05:00
}
}
% file . close ( ) ;
}
else { // not valid any more delete;
if ( $ dtStats : : lsm ) {
if ( $ dtStats : : debugEchos ) { error ( "Deleting old file" SPC % filepath ) ; }
2021-06-02 13:16:13 -04:00
schedule ( ( % i + 1 ) * 256 , 0 , "deleteFile" , % filepath ) ;
2020-02-28 16:37:29 -05:00
}
else {
% oldFileCount + + ;
}
}
}
% file . close ( ) ;
% file . delete ( ) ;
error ( "Found" SPC % oldFileCount SPC "Expired Leaderboard Files" ) ;
2021-06-02 13:16:13 -04:00
if ( % sortCount > 1 ) { // sorts what the data we loaded by date as windows vs linux will return diffrent file orders
2020-02-28 16:37:29 -05:00
for ( % i = 1 ; % i < = % sortCount ; % i + + ) {
sortMon ( getField ( % sortArray [ % i ] , 0 ) , getField ( % sortArray [ % i ] , 1 ) ) ;
}
}
} schedule ( 5000 , 0 , "loadLeaderboards" , 0 ) ; // delay this so supporting functions are exec first
2021-06-02 13:16:13 -04:00
function sortMon ( % lType , % game ) {
2020-02-28 16:37:29 -05:00
% n = $ lData : : monCount [ % game , % lType ] ;
2021-06-02 13:16:13 -04:00
if ( % n > 1 ) { //make sure we have enough elments worth sorting
for ( % i = 1 ; % i < = % n - 1 ; % i + + ) { //sort by %ltype first
% m = % i ;
for ( % j = % i + 1 ; % j < = % n ; % j + + )
if ( getField ( $ lData : : mon [ % lType , % game , % j ] , 0 ) > getField ( $ lData : : mon [ % lType , % game , % m ] , 0 ) )
% m = % j ;
2020-02-28 16:37:29 -05:00
% low = $ lData : : mon [ % lType , % game , % m ] ;
2021-06-02 13:16:13 -04:00
% high = $ lData : : mon [ % lType , % game , % i ] ;
2020-02-28 16:37:29 -05:00
$ lData : : mon [ % lType , % game , % m ] = % high ;
$ lData : : mon [ % lType , % game , % i ] = % low ;
2021-06-02 13:16:13 -04:00
}
for ( % i = 1 ; % i < = % n - 1 ; % i + + ) { // sort by year
% m = % i ;
for ( % j = % i + 1 ; % j < = % n ; % j + + )
if ( getField ( $ lData : : mon [ % lType , % game , % j ] , 1 ) > getField ( $ lData : : mon [ % lType , % game , % m ] , 1 ) )
% m = % j ;
2020-02-28 16:37:29 -05:00
% low = $ lData : : mon [ % lType , % game , % m ] ;
2021-06-02 13:16:13 -04:00
% high = $ lData : : mon [ % lType , % game , % i ] ;
2020-02-28 16:37:29 -05:00
$ lData : : mon [ % lType , % game , % m ] = % high ;
$ lData : : mon [ % lType , % game , % i ] = % low ;
2021-06-02 13:16:13 -04:00
}
2020-02-28 16:37:29 -05:00
}
//debug
//for (%i = 1; %i <= %n; %i++){echo($lData::mon[%lType, %game,%i] SPC %game);}
2021-06-02 13:16:13 -04:00
}
2020-02-28 16:37:29 -05:00
function dtCleanUp ( % force ) {
% filename = "serverStats/stats/*t.cs" ;
% count = getFileCount ( % filename ) ;
% file = new FileObject ( ) ;
2020-08-24 18:02:35 -04:00
RootGroup . add ( % file ) ;
2020-02-28 16:37:29 -05:00
% oldFileCount = 0 ;
for ( % i = 0 ; % i < % count ; % i + + ) {
% filepath = findNextfile ( % filename ) ;
2022-09-24 06:35:14 -04:00
///delete this start///
% mPath = strreplace ( % filepath , "t.cs" , "m.cs" ) ;
if ( isFile ( % mPath ) ) {
schedule ( % v + + * 256 , 0 , "deleteFile" , % mPath ) ;
}
///delete this end///
2021-06-02 13:16:13 -04:00
% file . OpenForRead ( % filepath ) ;
2020-08-24 18:02:35 -04:00
% game = getField ( strreplace ( % filePath , "/" , "\t" ) , 2 ) ;
2020-02-28 16:37:29 -05:00
% dateLine = strreplace ( % file . readline ( ) , "%t" , "\t" ) ;
2020-08-24 18:02:35 -04:00
% gameCountLine = strreplace ( % file . readline ( ) , "%t" , "\t" ) ;
2020-02-28 16:37:29 -05:00
% day = getField ( % dateLine , 2 ) ;
% year = getField ( % dateLine , 10 ) ;
% file . close ( ) ;
//%d0 TAB %d1 TAB %w0 TAB %w1 TAB %m0 TAB %m1 TAB %q0 TAB %q1 TAB %y0 TAB %y1;
2020-08-24 18:02:35 -04:00
% dayCount = isFileExpired ( "getCount" , % day , % year ) ;
2021-06-02 13:16:13 -04:00
if ( % dayCount > $ dtStats : : expireMin ) {
% gcCM = getField ( % gameCountLine , 6 ) ;
2020-08-24 18:02:35 -04:00
% gcPM = getField ( % gameCountLine , 5 ) ;
2021-06-02 13:16:13 -04:00
% gc = ( % gcCM > % gcPM ) ? % gcCM : % gcPM ;
2020-09-29 13:15:14 -04:00
% extraDays = mCeil ( ( % gc * $ dtStats : : expireFactor [ % game ] ) ) ;
2020-09-02 20:23:52 -04:00
//error(%extraDays SPC %dayCount);
2020-08-24 18:02:35 -04:00
if ( % dayCount > % extraDays | | % dayCount > $ dtStats : : expireMax ) {
if ( $ dtStats : : sm | | % force ) {
if ( $ dtStats : : debugEchos ) { error ( "Deleting old file" SPC % dayCount SPC % extraDays SPC % filepath ) ; }
if ( isFile ( % filepath ) ) {
2021-05-06 15:01:41 -04:00
schedule ( % v + + * 256 , 0 , "deleteFile" , % filepath ) ;
2020-08-24 18:02:35 -04:00
% oldFileCount + + ;
}
2020-09-29 13:15:14 -04:00
% gPath = strreplace ( % filepath , "t.cs" , "g.cs" ) ;
2020-08-24 18:02:35 -04:00
if ( isFile ( % gPath ) ) {
2021-05-06 15:01:41 -04:00
schedule ( % v + + * 256 , 0 , "deleteFile" , % gPath ) ;
2020-08-24 18:02:35 -04:00
% oldFileCount + + ;
}
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
else {
% oldFileCount + + ;
2021-06-02 13:16:13 -04:00
}
2020-02-28 16:37:29 -05:00
}
}
}
if ( $ dtStats : : sm | | % force ) {
2021-06-02 13:16:13 -04:00
error ( "Found" SPC % oldFileCount SPC "Expired Player Files" ) ;
2019-03-10 12:58:05 -04:00
}
2020-02-28 16:37:29 -05:00
else {
error ( "Found" SPC % oldFileCount SPC "Expired Player Files, Type dtCleanUp(1) to force clean and delete" ) ;
}
% file . delete ( ) ;
2019-03-10 12:58:05 -04:00
}
2020-02-28 16:37:29 -05:00
function isFileExpired ( % lType , % d , % year ) {
switch $ ( % lType ) {
case "expire" :
2020-08-24 18:02:35 -04:00
if ( $ dtStats : : expireMax > 1 ) {
2020-02-28 16:37:29 -05:00
% dif = $ dtStats : : curYear - % year ;
% days + = 365 * ( % dif - 1 ) ;
% days + = 366 - % d ;
% days + = $ dtStats : : curDay ;
2020-08-24 18:02:35 -04:00
if ( % days > $ dtStats : : expireMax ) {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-02-28 16:37:29 -05:00
}
else {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-02-28 16:37:29 -05:00
}
}
else {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-02-28 16:37:29 -05:00
}
2020-08-24 18:02:35 -04:00
case "getCount" :
if ( $ dtStats : : expireMax > 1 ) {
% dif = $ dtStats : : curYear - % year ;
% days + = 365 * ( % dif - 1 ) ;
% days + = 366 - % d ;
% days + = $ dtStats : : curDay ;
return % days ;
}
else {
2021-06-02 13:16:13 -04:00
return - 1 ;
2020-08-24 18:02:35 -04:00
}
case "mapData" :
% dif = $ dtStats : : curYear - % year ;
% days + = 12 * ( % dif - 1 ) ;
% days + = 13 - % d ;
% days + = $ dtStats : : curMonth ;
//error(%days);
if ( % days > 2 ) {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-08-24 18:02:35 -04:00
}
else {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
case "day" :
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : day > 1 ) {
% dif = $ dtStats : : curYear - % year ;
% days + = 365 * ( % dif - 1 ) ;
% days + = 366 - % d ;
% days + = $ dtStats : : curDay ;
if ( % days > $ dtStats : : day ) {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-02-28 16:37:29 -05:00
}
else {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-02-28 16:37:29 -05:00
}
}
else {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-02-28 16:37:29 -05:00
}
2021-06-02 13:16:13 -04:00
case "week" :
2020-02-28 16:37:29 -05:00
if ( $ dtStats : : week > 1 ) {
% dif = $ dtStats : : curYear - % year ;
% days + = 53 * ( % dif - 1 ) ;
% days + = 54 - % d ;
% days + = $ dtStats : : curWeek ;
if ( % days > $ dtStats : : week ) {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-02-28 16:37:29 -05:00
}
else {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-02-28 16:37:29 -05:00
}
}
else {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-02-28 16:37:29 -05:00
}
case "month" :
if ( $ dtStats : : month > 1 ) {
% dif = $ dtStats : : curYear - % year ;
% days + = 12 * ( % dif - 1 ) ;
% days + = 13 - % d ;
% days + = $ dtStats : : curMonth ;
//error(%days);
if ( % days > $ dtStats : : month ) {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-02-28 16:37:29 -05:00
}
else {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-02-28 16:37:29 -05:00
}
}
else {
2021-06-02 13:16:13 -04:00
return 1 ;
}
2020-02-28 16:37:29 -05:00
case "quarter" :
if ( $ dtStats : : quarter > 1 ) {
% dif = $ dtStats : : curYear - % year ;
% days + = 4 * ( % dif - 1 ) ;
% days + = 5 - % d ;
% days + = $ dtStats : : curQuarter ;
if ( % days > $ dtStats : : quarter ) {
2021-06-02 13:16:13 -04:00
return 1 ;
2020-02-28 16:37:29 -05:00
}
else {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-02-28 16:37:29 -05:00
}
}
else {
2021-06-02 13:16:13 -04:00
return 1 ;
}
case "year" :
2020-11-02 15:02:14 -05:00
% mon = $ dtStats : : curYear - % d ;
2020-02-28 16:37:29 -05:00
if ( % mon < = $ dtStats : : year ) {
2021-06-02 13:16:13 -04:00
return 0 ;
2020-02-28 16:37:29 -05:00
}
}
2021-06-02 13:16:13 -04:00
return 1 ;
2020-08-24 18:02:35 -04:00
}
2021-06-02 13:16:13 -04:00
2020-11-19 00:37:03 -05:00
function dtStatClear ( ) {
% fc = 0 ;
for ( % g = 0 ; % g < $ dtStats : : gameTypeCount ; % g + + ) {
% game = $ dtStats : : gameType [ % g ] ;
for ( % q = 0 ; % q < $ statsVars : : count [ % game ] ; % q + + ) {
% varNameType = $ statsVars : : varNameType [ % q , % game ] ;
if ( $ dtStats : : resetList [ % varNameType ] ) {
% fc + + ;
% stats = ( % fc = = 1 ) ? % varNameType : % stats TAB % varNameType ;
$ dtStats : : resetList [ % varNameType ] = 0 ;
2021-06-02 13:16:13 -04:00
}
2020-11-19 00:37:03 -05:00
}
}
if ( ! % fc ) {
$ dtStats : : statReset = 0 ;
return 0 ;
}
error ( % stats ) ;
% file = new FileObject ( ) ;
RootGroup . add ( % file ) ;
% time = 64 ;
% tcount = getFileCount ( "serverStats/stats/*t.cs" ) ;
% c = - 1 ;
for ( % i = 0 ; % i < % tcount ; % i + + ) {
% filepath = findNextfile ( "serverStats/stats/*t.cs" ) ;
schedule ( % c + + * % time , 0 , "clearStatFile" , % file , % filepath , % i , % tcount , % stats , "t" ) ;
}
% gcount = getFileCount ( "serverStats/stats/*g.cs" ) ;
for ( % i = 0 ; % i < % gcount ; % i + + ) {
% filepath = findNextfile ( "serverStats/stats/*g.cs" ) ;
schedule ( % c + + * % time , 0 , "clearStatFile" , % file , % filepath , % i , % gcount , % stats , "g" ) ;
}
% mcount = getFileCount ( "serverStats/stats/*m.cs" ) ;
for ( % i = 0 ; % i < % mcount ; % i + + ) {
% filepath = findNextfile ( "serverStats/stats/*m.cs" ) ;
schedule ( % c + + * % time , 0 , "clearMapFile" , % file , % filepath , % i , % mcount , % stats ) ;
}
% file . schedule ( % c + + * % time , "delete" ) ;
schedule ( % c + + * % time , 0 , "doneStatClear" ) ;
}
function doneStatClear ( ) {
2021-06-02 13:16:13 -04:00
$ dtStats : : statReset = 0 ;
2020-11-19 00:37:03 -05:00
}
function clearStatFile ( % file , % filepath , % i , % count , % stats , % type ) {
error ( "Clearing Stats" SPC % i SPC % count - 1 SPC % filepath ) ;
2021-06-02 13:16:13 -04:00
% file . OpenForRead ( % filepath ) ;
2020-11-19 00:37:03 -05:00
% lc = - 1 ;
% found = 0 ;
2021-06-02 13:16:13 -04:00
while ( ! % file . isEOF ( ) ) { // load the rest of the file
2020-11-19 00:37:03 -05:00
% line = % file . readline ( ) ;
% field = strreplace ( % line , "%t" , "\t" ) ;
% safe = 1 ;
for ( % f = 0 ; % f < getFieldCount ( % stats ) ; % f + + ) {
if ( getField ( % field , 0 ) $ = getField ( % stats , % f ) ) {
% safe = 0 ;
2021-06-02 13:16:13 -04:00
% found = 1 ;
2020-11-19 00:37:03 -05:00
error ( getField ( % field , 0 ) ) ;
break ;
}
}
if ( % safe )
% line [ % lc + + ] = % line ;
else {
2021-06-02 13:16:13 -04:00
% line [ % lc + + ] = strreplace ( getField ( % field , 0 ) TAB $ dtStats : : blank [ % type ] , "\t" , "%t" ) ;
2020-11-19 00:37:03 -05:00
}
}
% file . close ( ) ;
if ( % found ) {
2021-06-02 13:16:13 -04:00
% file . OpenForWrite ( % filepath ) ;
2020-11-19 00:37:03 -05:00
% lc + + ;
for ( % x = 0 ; % x < % lc ; % x + + ) {
% file . writeLine ( % line [ % x ] ) ;
}
% file . close ( ) ;
2021-06-02 13:16:13 -04:00
}
2020-11-19 00:37:03 -05:00
}
function clearMapFile ( % file , % filepath , % i , % count , % stats ) {
2021-06-02 13:16:13 -04:00
error ( "Clearing Map Stats" SPC % i SPC % count - 1 ) ;
% file . OpenForRead ( % filepath ) ;
2020-11-19 00:37:03 -05:00
% lc = - 1 ;
% foundVarName = 0 ;
% fc = 0 ;
2021-06-02 13:16:13 -04:00
while ( ! % file . isEOF ( ) ) { // load the rest of the file
2020-11-19 00:37:03 -05:00
% line = % file . readline ( ) ;
% field = strreplace ( % line , "%t" , "\t" ) ;
if ( getField ( % field , 0 ) $ = "varName" ) {
% foundVarName = 1 ;
for ( % v = 1 ; % v < getFieldCount ( % field ) ; % v + + ) {
2021-06-02 13:16:13 -04:00
% var = getField ( % field , % v ) ;
for ( % f = 0 ; % f < getFieldCount ( % stats ) ; % f + + ) {
2020-11-19 00:37:03 -05:00
if ( % var $ = getField ( % stats , % f ) ) {
% fc + + ;
% resetFields = ( % fc = = 1 ) ? % v : % resetFields TAB % v ;
}
}
}
2021-06-02 13:16:13 -04:00
% line [ % lc + + ] = % line ;
2020-11-19 00:37:03 -05:00
continue ;
}
if ( % foundVarName ) {
for ( % x = 0 ; % x < getFieldCount ( % resetFields ) ; % x + + ) {
% zeroField = getField ( % resetFields , % x ) ;
% field = setField ( % field , % zeroField , 0 ) ;
}
2021-06-02 13:16:13 -04:00
% line [ % lc + + ] = strreplace ( % field , "\t" , "%t" ) ;
2020-11-19 00:37:03 -05:00
}
else {
2021-06-02 13:16:13 -04:00
% line [ % lc + + ] = % line ;
2020-11-19 00:37:03 -05:00
}
}
% file . close ( ) ;
if ( % fc ) {
2021-06-02 13:16:13 -04:00
% file . OpenForWrite ( % filepath ) ;
2020-11-19 00:37:03 -05:00
% lc + + ;
for ( % z = 0 ; % z < % lc ; % z + + ) {
% file . writeLine ( % line [ % z ] ) ;
}
% file . close ( ) ;
}
}
2020-08-24 18:02:35 -04:00
////////////////////////////////////////////////////////////////////////////////
//Server Stats
////////////////////////////////////////////////////////////////////////////////
2020-09-24 12:19:15 -04:00
2021-06-02 13:16:13 -04:00
$ dtStats : : prefTestTime = 512 ; // the lower the better tracking
2020-08-24 18:02:35 -04:00
$ dtStats : : prefTestIdleTime = 10 * 1000 ; // if no one is playing just run slow
2021-06-02 13:16:13 -04:00
$ dtStats : : prefTolerance = 128 ; //this number is to account for base line preformance and differences between engine simTime and realtime
2020-08-24 18:02:35 -04:00
$ dtStats : : prefLog = 0 ; // enable logging of server hangs
2021-10-26 13:42:28 -04:00
$ dtStats : : eventLockout = 10 * 1000 ; //every 10 sec
2020-08-24 18:02:35 -04:00
function prefTest ( % time , % skip ) {
% real = getRealTime ( ) ;
% plCount = $ HostGamePlayerCount - $ HostGameBotCount ;
2021-06-02 13:16:13 -04:00
if ( isGameRun ( ) & & ! $ dtStats : : building & & % plCount > 1 ) { // only track during run time
% dif = ( % real - % time ) - $ dtStats : : prefTestTime ;
if ( % dif > $ dtStats : : prefTolerance & & ! % skip ) {
2021-01-07 12:07:21 -05:00
% msg = "Server Hang" SPC dtFormatTime ( getSimTime ( ) ) SPC "Delay =" SPC % dif @ "ms" SPC "Player Count =" SPC % plCount SPC $ CurrentMission ;
2020-08-24 18:02:35 -04:00
$ dtServer : : serverHangTotal + + ;
$ dtServer : : serverHangMap [ cleanMapName ( $ CurrentMission ) , Game . class ] + + ;
$ dtServer : : serverHangLast = formattimestring ( "hh:nn:a mm-dd-yy" ) ;
$ dtServer : : serverHangTime = % dif ;
2020-12-01 11:14:20 -05:00
dtEventLog ( % msg , 0 ) ;
2021-06-02 13:16:13 -04:00
% skip = 1 ;
2020-08-24 18:02:35 -04:00
}
else
2020-12-01 11:14:20 -05:00
% skip = 0 ;
2021-06-02 13:16:13 -04:00
dtPingAvg ( ) ;
2020-08-24 18:02:35 -04:00
}
if ( $ dtStats : : prefEnable ) {
2020-11-02 15:02:14 -05:00
if ( isGameRun ( ) & & ! $ dtStats : : building & & % plCount > 1 )
2020-08-24 18:02:35 -04:00
schedule ( $ dtStats : : prefTestTime , 0 , "prefTest" , % real , % skip ) ;
2021-06-02 13:16:13 -04:00
else
2020-08-24 18:02:35 -04:00
schedule ( $ dtStats : : prefTestIdleTime , 0 , "prefTest" , % real , 1 ) ;
}
}
function dtPingAvg ( ) {
2020-12-08 12:01:43 -05:00
% ping = % pingT = % pc = % txStop = % lowAvg = 0 ;
% xPing = % plCount = % hpCount = % lowPing = 0 ;
2020-12-01 11:14:20 -05:00
% min = 100000 ;
% max = - 100000 ;
2020-08-24 18:02:35 -04:00
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + ) {
% cl = ClientGroup . getObject ( % i ) ;
2020-11-02 15:02:14 -05:00
if ( isObject ( % cl . player ) ) {
2021-06-02 13:16:13 -04:00
% tform = % cl . player . getTransform ( ) ;
2020-11-02 15:02:14 -05:00
if ( % tform $ = % cl . tform ) {
% cl . dtStats . idleTime + = ( $ dtStats : : prefTestTime / 1000 ) ;
}
% cl . tform = % tform ;
}
2020-11-09 16:02:11 -05:00
else if ( % cl . team = = 0 )
% cl . dtStats . idleTime + = ( $ dtStats : : prefTestTime / 1000 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
if ( ! % cl . isAIControlled ( ) ) {
2021-06-02 13:16:13 -04:00
% ping = % cl . getPing ( ) ;
2020-12-01 11:14:20 -05:00
% min = ( % ping < % min ) ? % ping : % min ;
% max = ( % ping > % max ) ? % ping : % max ;
2020-11-09 16:02:11 -05:00
if ( % ping = = % cl . lastPing ) {
% cl . lpC + + ;
if ( % cl . lpC > 2 ) {
% cl . dtStats . txStop + + ;
% txStop + + ;
}
}
else
2020-11-10 17:19:15 -05:00
% cl . lpC = 0 ;
2021-06-02 13:16:13 -04:00
2020-11-09 16:02:11 -05:00
% cl . lastPing = % ping ;
2020-12-08 12:01:43 -05:00
if ( % ping > 500 ) {
2020-08-24 18:02:35 -04:00
% cl . dtStats . lagSpikes + + ;
2020-12-08 12:01:43 -05:00
% hpCount + + ;
}
else if ( % ping > 200 ) {
% hpCount + + ;
}
else {
% lowCount + + ;
2021-06-02 13:16:13 -04:00
% lowPing + = % ping ;
2020-12-08 12:01:43 -05:00
}
2020-11-02 15:02:14 -05:00
if ( % cl . getPacketLoss ( ) > 0 ) {
2021-06-02 13:16:13 -04:00
% cl . dtStats . packetLoss + + ;
2020-11-02 15:02:14 -05:00
% plCount + + ;
}
2020-08-24 18:02:35 -04:00
% pc + + ;
2021-06-02 13:16:13 -04:00
% pingT + = % ping ;
2020-08-24 18:02:35 -04:00
}
}
2020-12-08 12:01:43 -05:00
if ( % pc > 3 ) {
% lowAvg = ( % lowCount > 0 ) ? ( % lowPing / % lowCount ) : 0 ;
2020-11-10 17:19:15 -05:00
$ dtStats : : pingAvg = % pingT / % pc ;
2021-10-26 13:42:28 -04:00
if ( % txStop / % pc > 0.5 ) {
2020-11-10 17:19:15 -05:00
if ( getSimTime ( ) - $ dtStats : evTime [ 0 ] > $ dtStats : : eventLockout ) {
2020-12-01 11:14:20 -05:00
% msg = "TX Loss" SPC dtFormatTime ( getSimTime ( ) ) SPC "TX Loss Count =" SPC % txStop SPC "Player Count =" SPC % pc ;
dtEventLog ( % msg , 0 ) ;
2020-11-10 17:19:15 -05:00
$ dtStats : evTime [ 0 ] = getSimTime ( ) ;
}
2020-11-09 16:02:11 -05:00
}
2021-06-02 13:16:13 -04:00
if ( % plCount / % pc > 0.5 ) {
2020-11-10 17:19:15 -05:00
if ( getSimTime ( ) - $ dtStats : evTime [ 1 ] > $ dtStats : : eventLockout ) {
2020-12-01 11:14:20 -05:00
% msg = "Packet Loss" SPC dtFormatTime ( getSimTime ( ) ) SPC "Packet Loss Count =" SPC % plCount SPC "Player Count =" SPC % pc ;
dtEventLog ( % msg , 0 ) ;
2020-11-10 17:19:15 -05:00
$ dtStats : evTime [ 1 ] = getSimTime ( ) ;
}
2020-11-02 15:02:14 -05:00
}
2020-12-08 12:01:43 -05:00
% hpct = ( % hpCount > 0 ) ? ( % hpCount / % pc ) : 0 ;
2021-01-19 16:44:01 -05:00
if ( % hpct > 0.5 ) {
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : pingAvg > 1000 ) { //network issues
2020-12-01 11:14:20 -05:00
if ( getSimTime ( ) - $ dtStats : evTime [ 2 ] > $ dtStats : : eventLockout ) {
2021-01-07 12:07:21 -05:00
% msg = "Host Hang" SPC dtFormatTime ( getSimTime ( ) ) SPC "Avg:" @ $ dtStats : : pingAvg @ "/" @ % lowAvg SPC "Min:" @ % min SPC "Max:" @ % max SPC "Counts =" SPC % hpCount @ "/" @ % pc ;
2020-12-01 11:14:20 -05:00
dtEventLog ( % msg , 0 ) ;
$ dtServer : : hostHangMap [ cleanMapName ( $ CurrentMission ) , Game . class ] + + ;
$ dtServer : : hostHangTotal + + ;
2021-06-02 13:16:13 -04:00
$ dtServer : : hostHangLast = formattimestring ( "hh:nn:a mm-dd-yy" ) ;
2020-12-01 11:14:20 -05:00
$ dtServer : : hostHangTime = % pingT / % pc ;
$ dtStats : evTime [ 2 ] = getSimTime ( ) ;
}
2020-11-10 17:19:15 -05:00
}
2020-12-01 11:14:20 -05:00
else if ( $ dtStats : : pingAvg > 500 ) {
if ( getSimTime ( ) - $ dtStats : evTime [ 3 ] > $ dtStats : : eventLockout ) {
2021-01-07 12:07:21 -05:00
% msg = "500+ Ping" SPC dtFormatTime ( getSimTime ( ) ) SPC "Avg:" @ $ dtStats : : pingAvg @ "/" @ % lowAvg SPC "Min:" @ % min SPC "Max:" @ % max SPC "Counts =" SPC % hpCount @ "/" @ % pc ;
2020-12-01 11:14:20 -05:00
dtEventLog ( % msg , 0 ) ;
$ dtStats : evTime [ 3 ] = getSimTime ( ) ;
}
}
2021-01-07 12:07:21 -05:00
else if ( $ dtStats : : pingAvg > 250 ) {
2020-12-01 11:14:20 -05:00
if ( getSimTime ( ) - $ dtStats : evTime [ 4 ] > $ dtStats : : eventLockout ) {
2021-01-07 12:07:21 -05:00
% msg = "250+ Ping" SPC dtFormatTime ( getSimTime ( ) ) SPC "Avg:" @ $ dtStats : : pingAvg @ "/" @ % lowAvg SPC "Min:" @ % min SPC "Max:" @ % max SPC "Counts =" SPC % hpCount @ "/" @ % pc ;
error ( % msg , 0 ) ;
2020-12-01 11:14:20 -05:00
$ dtStats : evTime [ 4 ] = getSimTime ( ) ;
}
2020-11-10 17:19:15 -05:00
}
2020-10-20 18:09:49 -04:00
}
2020-12-01 11:14:20 -05:00
if ( % min > 200 ) {
if ( getSimTime ( ) - $ dtStats : evTime [ 5 ] > $ dtStats : : eventLockout ) {
2020-12-08 12:01:43 -05:00
% msg = "Ping Min Event" SPC dtFormatTime ( getSimTime ( ) ) SPC "Min:" SPC % min SPC "Max:" SPC % max SPC "Player Count =" SPC % pc ;
2020-12-01 11:14:20 -05:00
dtEventLog ( % msg , 0 ) ;
$ dtStats : evTime [ 5 ] = getSimTime ( ) ;
2020-11-10 17:19:15 -05:00
}
2020-08-24 18:02:35 -04:00
}
}
2021-06-02 13:16:13 -04:00
}
2021-01-07 12:07:21 -05:00
$ dtStats : : eventMax = 100 ;
2020-11-10 17:19:15 -05:00
function dtEventLog ( % log , % save ) {
2020-11-09 16:02:11 -05:00
% count = $ dtServer : : eventLogCount + + ;
if ( $ dtServer : : eventMax < $ dtStats : : eventMax )
$ dtServer : : eventMax + + ;
if ( % count > $ dtStats : : eventMax - 1 )
% count = $ dtServer : : eventLogCount = 0 ;
2021-06-02 13:16:13 -04:00
$ dtServer : : eventLog [ % count ] = % log ;
$ dtStats : lastEvent = getSimTime ( ) ;
2022-09-24 06:35:14 -04:00
if ( $ dtStats : : eventEchos ) {
error ( % log ) ;
}
2020-11-10 17:19:15 -05:00
if ( % save )
2021-06-02 13:16:13 -04:00
export ( "$dtServer::event*" , "serverStats/eventLog.cs" , false ) ;
2020-11-09 16:02:11 -05:00
}
2020-08-24 18:02:35 -04:00
function startMonitor ( ) {
2021-06-02 13:16:13 -04:00
if ( ! $ dtStats : : prefEnable ) { // if we are running dont start again
2020-08-24 18:02:35 -04:00
$ dtStats : : prefEnable = 1 ;
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : prefTestTime < 128 ) { $ dtStats : : prefTestTime = 128 ; }
2020-08-24 18:02:35 -04:00
prefTest ( getRealTime ( ) , 1 ) ;
}
2021-06-02 13:16:13 -04:00
}
2020-08-24 18:02:35 -04:00
2022-04-10 14:41:30 -04:00
function dtSaveServerVars ( ) {
2020-09-24 12:19:15 -04:00
$ dtServerVars : : lastSimTime = getSimTime ( ) ;
$ dtServerVars : : lastDate = formattimestring ( "mm/dd/yy hh:nn:a" ) ;
$ dtServerVars : : lastMission = cleanMapName ( $ CurrentMission ) ;
$ dtServerVars : : lastGameType = Game . class ;
$ dtServerVars : : lastPlayerCount = $ HostGamePlayerCount - $ HostGameBotCount ;
schedule ( 1 , 0 , "export" , "$dtServerVars::*" , "serverStats/serverVars.cs" , false ) ;
schedule ( 1000 , 0 , "export" , "$dtServer::serverHang*" , "serverStats/serverHangs.cs" , false ) ;
schedule ( 2000 , 0 , "export" , "$dtServer::hostHang*" , "serverStats/hostHangs.cs" , false ) ;
schedule ( 3000 , 0 , "export" , "$dtServer::playCount*" , "serverStats/playCount.cs" , false ) ;
schedule ( 3000 , 0 , "export" , "$dtServer::lastPlay*" , "serverStats/lastPlay.cs" , false ) ;
schedule ( 4000 , 0 , "export" , "$dtServer::mapDisconnects*" , "serverStats/mapDisconnects.cs" , false ) ;
schedule ( 5000 , 0 , "export" , "$dtServer::mapReconnects*" , "serverStats/mapReconnects.cs" , false ) ;
schedule ( 6000 , 0 , "export" , "$dtServer::voteFor*" , "serverStats/voteFor.cs" , false ) ;
schedule ( 7000 , 0 , "export" , "$dtServer::skipCount*" , "serverStats/skipCount.cs" , false ) ;
schedule ( 8000 , 0 , "export" , "$dtServer::maxPlayers*" , "serverStats/maxPlayers.cs" , false ) ;
2020-09-28 11:58:38 -04:00
schedule ( 9000 , 0 , "export" , "$mapID::*" , "serverStats/mapIDList.cs" , false ) ;
2020-11-10 17:19:15 -05:00
//schedule(10000,0,"export", "$dtServer::event*", "serverStats/eventLog.cs", false );
2020-09-24 12:19:15 -04:00
}
2020-08-24 18:02:35 -04:00
function dtLoadServerVars ( ) { // keep function at the bottom
if ( $ dtStats : : Enable ) {
if ( ! statsGroup . serverStart ) {
statsGroup . serverStart = 1 ;
2021-06-04 16:43:58 -04:00
$ dtStats : : teamOneCapTimes = 0 ;
$ dtStats : : teamTwoCapTimes = 0 ;
$ dtStats : : teamOneCapCount = 0 ;
$ dtStats : : teamTwoCapCount = 0 ;
2021-06-02 13:16:13 -04:00
$ dtServerVars : : upTimeCount = - 1 ;
2021-06-08 01:18:55 -04:00
2020-08-24 18:02:35 -04:00
if ( isFile ( "serverStats/serverVars.cs" ) ) {
exec ( "serverStats/serverVars.cs" ) ;
% date = $ dtServerVars : : lastDate ;
2021-06-02 13:16:13 -04:00
% upTime = dtFormatTime ( $ dtServerVars : : lastSimTime ) ;
2020-08-24 18:02:35 -04:00
% mis = $ dtServerVars : : lastMission ;
2021-06-02 13:16:13 -04:00
if ( $ dtStats : : debugEchos ) { schedule ( 6000 , 0 , "error" , "last server uptime = " SPC % date @ "-" @ % upTime @ "-" @ % mis ) ; }
2020-09-24 12:19:15 -04:00
$ dtServerVars : : upTime [ $ dtServerVars : : upTimeCount + + ] = % date @ "-" @ % upTime @ "-" @ % mis ;
2021-06-04 16:43:58 -04:00
if ( $ dtServerVars : : lastPlayerCount > 3 ) {
2020-09-24 12:19:15 -04:00
$ dtServerVars : : serverCrash [ % mis , $ dtServerVars : : lastGameType ] + + ;
2021-06-08 01:18:55 -04:00
$ dtServerVars : : crashLog [ $ dtServerVars : : crashLogCount + + ] = % date @ "-" @ % upTime @ "-" @ % mis @ "-" @ $ dtServerVars : : lastGameType @ "-" @ $ dtServerVars : : lastPlayerCount ;
schedule ( 15000 , 0 , "dtEventLog" , "Server Crash" SPC % date SPC "Pl Count =" SPC $ dtServerVars : : lastPlayerCount SPC "Map =" SPC % mis SPC "Up Time =" SPC % upTime , 0 ) ;
2020-09-24 12:19:15 -04:00
}
2020-08-24 18:02:35 -04:00
}
2020-09-24 12:19:15 -04:00
if ( $ dtServerVars : : upTimeCount > = 30 )
$ dtServerVars : : upTimeCount = 0 ;
if ( $ dtServerVars : : crashLogCount > = 15 )
$ dtServerVars : : crashLogCount = 0 ;
2021-06-02 13:16:13 -04:00
2021-06-08 01:18:55 -04:00
$ dtServerVars : : lastPlayerCount = 0 ;
2020-08-24 18:02:35 -04:00
$ dtServerVars : : lastSimTime = getSimTime ( ) ;
$ dtServerVars : : lastDate = formattimestring ( "mm/dd/yy hh:nn:a" ) ;
export ( "$dtServerVars::*" , "serverStats/serverVars.cs" , false ) ;
if ( isFile ( "serverStats/serverHangs.cs" ) )
exec ( "serverStats/serverHangs.cs" ) ;
2021-06-02 13:16:13 -04:00
if ( isFile ( "serverStats/hostHangs.cs" ) )
2020-08-24 18:02:35 -04:00
exec ( "serverStats/hostHangs.cs" ) ;
if ( isFile ( "serverStats/playCount.cs" ) )
exec ( "serverStats/playCount.cs" ) ;
if ( isFile ( "serverStats/lastPlay.cs" ) )
exec ( "serverStats/lastPlay.cs" ) ;
if ( isFile ( "serverStats/mapDisconnects.cs" ) )
exec ( "serverStats/mapDisconnects.cs" ) ;
if ( isFile ( "serverStats/mapReconnects.cs" ) )
exec ( "serverStats/mapReconnects.cs" ) ;
if ( isFile ( "serverStats/voteFor.cs" ) )
exec ( "serverStats/voteFor.cs" ) ;
if ( isFile ( "serverStats/skipCount.cs" ) )
exec ( "serverStats/skipCount.cs" ) ;
if ( isFile ( "serverStats/maxPlayers.cs" ) )
exec ( "serverStats/maxPlayers.cs" ) ;
2020-11-09 16:02:11 -05:00
$ dtServer : : eventLogCount = - 1 ;
2020-11-10 17:19:15 -05:00
//if(isFile("serverStats/eventLog.cs"))
//exec("serverStats/eventLog.cs");
2021-06-02 13:16:13 -04:00
2020-11-10 17:19:15 -05:00
dtEventLog ( "Server Start" SPC formattimestring ( "hh:nn:a mm-dd-yy" ) , 0 ) ;
2021-06-02 13:16:13 -04:00
2020-08-24 18:02:35 -04:00
genBlanks ( ) ;
buildVarList ( ) ;
startMonitor ( ) ;
loadMapIdList ( ) ;
}
}
} dtLoadServerVars ( ) ;
function testVarsRandomAll ( % max ) {
% game = Game . class ;
for ( % q = 0 ; % q < $ statsVars : : count [ % game ] ; % q + + ) {
% varNameType = $ statsVars : : varNameType [ % q , % game ] ;
2021-06-02 13:16:13 -04:00
% varName = $ statsVars : : varName [ % q , % game ] ;
2020-08-24 18:02:35 -04:00
for ( % i = 0 ; % i < ClientGroup . getCount ( ) ; % i + + ) {
% client = ClientGroup . getObject ( % i ) ;
% val = getRandom ( 0 , % max ) ;
setDynamicField ( % client . dtStats , % varName , % val ) ;
setDynamicField ( % client , % varName , % val ) ;
}
2021-06-02 13:16:13 -04:00
}
2020-11-10 17:19:15 -05:00
}
//ChangeLog
// 4.0
// *Removed most redudent/repeating code
// *Menus - removed redudent menus
2021-06-02 13:16:13 -04:00
// *Global arrays - reorganized to get rid of repeating field values
2020-11-10 17:19:15 -05:00
// *Save Load - removed unused functions from the load/save fast methods
// *Stats - condensed the stats handling code by 50%
// *Fixed bug with saveing weapon stats after a person has left
// *Removed $dtStats::fullGames, as it was not necessary becuase $dtStats::fgPercentage gives the same level of contorl
// *Null GUID protection, just to prevent garbage or null data
//
// 5.0
2021-06-02 13:16:13 -04:00
// Rework functions to remove dependencies on other .vl2 this script now works in base, classic, and some variants of the two.
// Arena and Duel Mod Support added
2020-11-10 17:19:15 -05:00
// MA stats across all weapons/items
// Mine Grenades Satchel Turrets Vehicles stats added
2021-06-02 13:16:13 -04:00
// Stats menu clean up and rework, some stuff was not even working
2020-11-10 17:19:15 -05:00
// Remvoed ProjectileData::onCollision hook for stats collection, everything is now under clientDmg
// Make processGameLink into one funciton for all game types
2021-06-02 13:16:13 -04:00
// Added fail safe to getCNameToCID to prevent blank names
// Reduce decimal places and scale down large numbers in the menus
// Added $dtStats::debugEchos for debuging issues
2020-11-10 17:19:15 -05:00
// Fix issue with reset when player joins the game
// Fix issue with back button bricking the score hud, as well as add a fail safe so this cant happen
// Added to options to control whats displayed
// Reworked history to remove redudent menus and to add the ablity to view weapon history, may expand on later
// Cleaned up the field value array removed unused and unnecessary values
2021-06-02 13:16:13 -04:00
// Total stats now reset onces a value has getting near the 32 bit int limit
2020-11-10 17:19:15 -05:00
// Added Live View so players can watch there stats in realtime with the added feature of being able to pin it and keep that window in place
// Added Player/Armror kill stats
//
// 5.5 fixes
2021-06-02 13:16:13 -04:00
// Rework hand grenade stats collection
// Moved commonly overridden functions in its own package and uses DefaultGame-
// -activate/deactivatePackages to correctly postion them on top of gameType
2020-11-10 17:19:15 -05:00
// -overrides this fixes issues with lakRabbitGame overrides
2021-06-02 13:16:13 -04:00
// Reworked some of the values on live screen to be more correct
2020-11-10 17:19:15 -05:00
// Moved resetDtStats to MissionDropReady so that liveStats work in lan game
2021-06-02 13:16:13 -04:00
//
2020-11-10 17:19:15 -05:00
// 6.0
// Full lan/no guid support - function will gen a uid and associate it with the players name
2021-06-02 13:16:13 -04:00
// Overhall of the way we store stats - NOTE this breaks compatibility with older versions so delete serverStats folder
// Leader Board/Best Of System - this info is compled during non peak server hours see $dtStats::buildSetTime
2020-11-10 17:19:15 -05:00
// Rename set/getFieldValue to set/getDynamicField to be less confuseing with the other field functions that deal with strings
2021-06-02 13:16:13 -04:00
// Added setValueField function to handel the new way of stats storage
// Made skip zeros the the only method for running averages there for removed extra code
// Removed timeLimitReached and scoreLimitReached, not sure why i needed them in the first place everything runs threw gameover anyways
// Removed $dtStats::slowLoadTime its not used any more with the new system as theres only 2 files to load vs 11 at a given time
// History menu redone added a page system to allow for larger then 10 game history
2020-11-10 17:19:15 -05:00
// System now self maintains files and will delete when out of date see $dtStats::expireMax
// Removed AI checks and added in ai support for better testing
// Fix some divide by zero issues useing conditional ternary operator example condition ? result1 : result2
2021-06-02 13:16:13 -04:00
// Fix few dynamic fields that were named wrong resulting in stats just showing 0
2020-11-10 17:19:15 -05:00
// Score resetting is handeld in script to better handel end game saving
2021-06-02 13:16:13 -04:00
// Added unused varable array uFV for short, this is only to reset the values we dont track directly or unused gametype values
2020-11-10 17:19:15 -05:00
// Renamed the arrays to keep them shorter, example fieldValue is now FV
// Added max array to allow recording of varables we only want the max of example being longest sniper shot
2021-06-02 13:16:13 -04:00
// Added an averaging array to be able to store current averages, keeps code complexity down on loaderboard stuff, may rework later
// setValueField will now default to 0 is value is ""
// Fixed mine disc code forgot to add %targetClient to the resetCode
2020-11-10 17:19:15 -05:00
// Replaced gameWinStat with postGameStats were custom stuff can added up or handled at the end of the game
2021-06-02 13:16:13 -04:00
// Added Armor::onTrigger to better track stats on player, and to remove duplicate code
2020-11-10 17:19:15 -05:00
// Added a handfull of new varables to track, too many to list.
2021-06-02 13:16:13 -04:00
// Surival time is now acurite also simplified the code
2020-11-10 17:19:15 -05:00
// Removed turrets stats other then kills death
//
// 6.5 Fixes
2021-06-02 13:16:13 -04:00
// Misc fixes from 6.0 additions/changes
// Added option to view the other game types within the leaderboard stuff
2020-11-10 17:19:15 -05:00
// Bumped up distance for mortar midAirs so it's just outside its damage radius something strange is going on there
// Added game type arrays for display and processing
//
// 6.6
2021-06-02 13:16:13 -04:00
// Added game id to track individual games
2020-11-10 17:19:15 -05:00
// Removed misc turret stuff
2021-06-02 13:16:13 -04:00
// Removed vehicle menus
2020-11-10 17:19:15 -05:00
// Misc fixes
2021-06-02 13:16:13 -04:00
//
2020-11-10 17:19:15 -05:00
// 6.7
// Escort fix moved
// Stats now allways save no matter the condition, this should reduce some edge cases problems and to have a more complete data set
2021-06-02 13:16:13 -04:00
// Added gamePCT becuase of the change to always save to track witch maps/games were cut short or joined in the middle of a match
// MapID Gen to track map specific stats
2020-11-10 17:19:15 -05:00
//
// 7.0
// Way to many changes to list so here are the major changes
// Super heavy opmtiation and rework, new changes has improved some areas by 25-75% in terms of speed/impact on the server
2021-06-02 13:16:13 -04:00
// Player Map Stats - like totals but done per map, this is also used to build map based leaderboards
// Server/Map Stats - track whats being played and whats being skipped as well as server health
2020-11-10 17:19:15 -05:00
// Added fail safe options load after and load slow in case the amount of stat tracking grows too large
2021-06-02 13:16:13 -04:00
// Ton of new stat values added
2020-11-10 17:19:15 -05:00
// Score hud UI mostly Reworked
2021-06-02 13:16:13 -04:00
//
2020-11-10 17:19:15 -05:00
// 7.1
2021-06-02 13:16:13 -04:00
// Combined save game and save total into one function
2020-11-10 17:19:15 -05:00
// Switched client leave for onDrop as client leave is tied to game type and does not work in between maps
// changed vote override too serverCmdStartNewVote just so this script works in base and default classic
2021-06-02 13:16:13 -04:00
// Few misc stats fixes
2020-11-10 17:19:15 -05:00
// Vote for map stat now gens an map id, so it will now show on the list
2021-06-02 13:16:13 -04:00
// Renamed var for server hangs and host hangs, as they were not saving
// Removed a few stats that have no relevance
2020-11-10 17:19:15 -05:00
// Typo for ping avg var fix
// Fixed gameID now saves and was moved to MissonLoadDone
2021-06-02 13:16:13 -04:00
// Added mapGameID for parsers
// Fixed chat stats
// Added LeftID to better track what game the client left mainly for stat resetting
2020-11-10 17:19:15 -05:00
// Added deploy stats
2021-06-02 13:16:13 -04:00
// Fixed issue were if a player left during the game over screen and it hasent saved yet, it would delete the stats before saving
// Score restore optimization
//
2020-11-10 17:19:15 -05:00
// 7.2
// Map stats sorting and load optimization
2021-06-02 13:16:13 -04:00
// Added version number global, and saved in player stats
// Added lastPlay, mapReconnects and mapDisconnectsScore for server stats
// Stats ui cleanup
2020-11-10 17:19:15 -05:00
// Fix for onDeploy was missing return %obj;
2021-06-02 13:16:13 -04:00
// incGameStats now has $dtStats::mapStats to completely disable this feature if need be
2020-11-10 17:19:15 -05:00
// Fixed armor vs armor total
// Added a global var to control build/sort speed of stats and set it back to 128
// Few new stats
2021-06-02 13:16:13 -04:00
// Disabled some mine disc stats as they were not accurate, may revisit later
2020-11-10 17:19:15 -05:00
// Fixed Flipflop stat
//
2021-06-02 13:16:13 -04:00
// 7.3
// Stat fixes to do copy paste mistakes
2020-11-10 17:19:15 -05:00
//
// 7.35
2021-06-02 13:16:13 -04:00
// Mine Disc Kill Stat
2020-11-10 17:19:15 -05:00
// Some extra lightning stats
// Stat name and rename fixes
// Fixed pixel margin on LMB and LB page
// clientDmgStats optimization and cleanup
2021-06-02 13:16:13 -04:00
// Score hud bug with viewing last month map stats
// Remove dtTurret stat unused
2020-11-10 17:19:15 -05:00
//
// 7.4
// Fix for mine disc kill stat
// Fix for name to client id function not working in lak
2021-06-02 13:16:13 -04:00
// Reworked a ugly fix for %kPlayer var in clientKillStats
// Lightning stats tweak
// Changed time restriction on flag escort from 3 to 5
2020-11-10 17:19:15 -05:00
// Adjusted clientShotsFired, to fix warnings, still unsure why flyingVehicleObject is getting passed into a onFire?
2021-06-02 13:16:13 -04:00
// Added server crashing tracking, not 100% accurate
2020-11-10 17:19:15 -05:00
//
// 7.5
2021-06-02 13:16:13 -04:00
// Fixed averages was useing the total avg instead of game avg
// Removed distance calc from weapon score on throwables
// Fixed killStreaks
// Fixed unused vars reset
2020-11-10 17:19:15 -05:00
//
// 7.6
2021-06-02 13:16:13 -04:00
// Removed the cross check form mine disc, as the timer cross check is enough
// Converted kdr to decimal to better match website and is less confusing
2020-11-10 17:19:15 -05:00
// Commented out nexusCampingKills/Deaths as we currenlty dont support hunters
// Commented out server stat client crash, it will just echo to the console if it sees any
2021-06-02 13:16:13 -04:00
// Removed lockout schedule on chain kills, left the multi kill one in as its kind of nessaary in how it functions
// Renamed mid air distance vars to know at a glance how its tracking, Ex: instead of cgMaDist renamed to cgMAHitDist
// Fixed land spike turret stats
2020-11-10 17:19:15 -05:00
//
2021-06-02 13:16:13 -04:00
// 7.7
2020-11-10 17:19:15 -05:00
// Added teamScore to player game files for correct team scores
2021-06-02 13:16:13 -04:00
// KDR adjustment
// Adjusted cleanup function
2020-11-10 17:19:15 -05:00
// Mine disc kill fix
//
// 7.8
2021-06-02 13:16:13 -04:00
// Added Armor Timers
2020-11-10 17:19:15 -05:00
// 7.9
// Added Concussion Stats
// Invy use stat
//
// 8.0
// Added check for teams for concuss
2021-06-02 13:16:13 -04:00
// Adjust crash log player count to > 1
2020-11-10 17:19:15 -05:00
//
// 8.1
2021-06-02 13:16:13 -04:00
// Misc stat fixes
2020-11-10 17:19:15 -05:00
// Added mpb glitch stat
// Added flag tossing and catching stats
2021-06-02 13:16:13 -04:00
//
2020-11-10 17:19:15 -05:00
// 8.2
2021-06-02 13:16:13 -04:00
// Misc Fixes and clean up
// Removed beta tags
2020-11-10 17:19:15 -05:00
// Added seconed pages to leaderboards and rearranged them
2021-06-02 13:16:13 -04:00
// Added few new misc stats
// Packet loss and high ping avg added to server monitor
2020-11-10 17:19:15 -05:00
//
// 8.3
// Removed client crash code, does not catch anything
// Added event logs to server panel
2021-06-02 13:16:13 -04:00
// Added server event for tracking when ping stops updateing do to loss of transmission
2020-11-10 17:19:15 -05:00
// Added Projecitle tracking function for wierd edge cases when it comes to stats
// Added second page to lctf stats
2021-06-02 13:16:13 -04:00
// Eight new stats
2020-11-10 17:19:15 -05:00
//
// 8.4
// Stat Fixes
2021-06-02 13:16:13 -04:00
// Tweaks to event logging to be less spammy
2020-11-10 17:19:15 -05:00
// Disabled eventlog saving as its meant to monitor the server on the fly and the console log keeps a record of the events
2021-06-02 13:16:13 -04:00
// Comment out hit locaiton stats
2020-11-19 00:37:03 -05:00
//
// 8.5
// Back button fix in server panel
// Added the ablity to reset stats in varlist
2021-06-02 13:16:13 -04:00
// Moved varlist to server panel
// Added inventory kill death stat
2020-11-19 00:37:03 -05:00
// Fix blank size for total stats it was off by 1
2020-12-01 11:14:20 -05:00
// Fix flag intercept speed on CTF
//
// 8.6
// Stat Fixes
2021-06-02 13:16:13 -04:00
// New Stat enemy repair, flag speed
2020-12-01 11:14:20 -05:00
// Added \c0 to stripChars
2020-12-08 12:01:43 -05:00
// Reworked server monitor
//
// 8.7
2021-06-02 13:16:13 -04:00
// Server monitor fix/tweaks
2021-01-07 12:07:21 -05:00
//
// 8.8
// Removed arbitrary weapon scores replaced with total kills
// Added map name to server hang in case its a map issue we need to keep an eye on
2021-06-02 13:16:13 -04:00
// 200+ server warning now only echos to console
2021-05-06 15:01:41 -04:00
//
// 8.9
// New stats to track time spent on teams and game length
// Sorter now looks at avg count and rejects low counts for better leaderboard avgs
2021-06-02 13:16:13 -04:00
// Misc Stat fixes
2021-05-06 15:01:41 -04:00
// Speed up file delete time
// Removed loadslow in favor for loadafter, less edge cases
2021-06-02 12:55:33 -04:00
//
// 9.0
// Misc Stat Fixes
// Reverted team changes and removed some of the inconsistencies with team tracking
// Added flag capture times
// Capped gamepct do to timeing/score it can go over 100
// Added startPCt and endPct for game progress info
// Added clientQuit to make filtering easier
2021-06-02 13:16:13 -04:00
// Some code cleanup
2021-06-03 18:11:38 -04:00
//
// 9.1
// Stat fixes
2021-06-04 16:43:58 -04:00
// - made cap timers global instead of client... oops
2021-06-03 18:11:38 -04:00
// - fixed endPCt/leftPCT
2021-06-04 16:43:58 -04:00
//
// 9.2
// Added a delay for server crash to be able to report it to the bot on server start
// Fix Cap timers a 3rd time
2021-06-08 13:47:42 -04:00
// Server crash messsage fix
//
// 9.3
2022-09-03 10:21:03 -04:00
// Stat format change for flag cap times, they now start at 0
//
// 9.4
2022-09-24 06:35:14 -04:00
// Added compileStats function and active compile check
//
// 9.5
// Removed Map Stats
// Removed all stat menus other then leaderboard stuff and server panel
// Made Live Stats Admin only its useful for testing stats
2022-12-06 16:15:26 -05:00
// Changed stats compile speed to 64ms with map stats gone
// Extra stats for player model