mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-25 17:07:54 -05:00
704 lines
20 KiB
Plaintext
704 lines
20 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\mp\_matchdata.gsc
|
|
* Game: Call of Duty: Modern Warfare 3
|
|
* Platform: PC
|
|
* Function Count: 25
|
|
* Decompile Time: 453 ms
|
|
* Timestamp: 10/27/2023 2:15:05 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init()
|
|
{
|
|
if(!isdefined(game["gamestarted"]))
|
|
{
|
|
setmatchdatadef("mp/matchdata.def");
|
|
setmatchdata("map",level.script);
|
|
if(level.hardcoremode)
|
|
{
|
|
var_00 = level.gametype + " hc";
|
|
setmatchdata("gametype",var_00);
|
|
}
|
|
else
|
|
{
|
|
setmatchdata("gametype",level.gametype);
|
|
}
|
|
|
|
setmatchdata("buildVersion",getbuildversion());
|
|
setmatchdata("buildNumber",getbuildnumber());
|
|
setmatchdata("dateTime",getsystemtime());
|
|
setmatchdataid();
|
|
}
|
|
|
|
level.maxlives = 285;
|
|
level.maxnamelength = 26;
|
|
level.maxevents = 150;
|
|
level.maxkillstreaks = 125;
|
|
level.maxlogclients = 30;
|
|
level.maxnumchallengesperplayer = 10;
|
|
level.maxnumawardsperplayer = 10;
|
|
level thread gameendlistener();
|
|
level thread endofgamesummarylogger();
|
|
}
|
|
|
|
//Function Number: 2
|
|
getmatchdatetime()
|
|
{
|
|
return getmatchdata("dateTime");
|
|
}
|
|
|
|
//Function Number: 3
|
|
logkillstreakevent(param_00,param_01)
|
|
{
|
|
if(!canlogclient(self) || !canlogkillstreak())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_02 = getmatchdata("killstreakCount");
|
|
setmatchdata("killstreakCount",var_02 + 1);
|
|
setmatchdata("killstreaks",var_02,"eventType",param_00);
|
|
setmatchdata("killstreaks",var_02,"player",self.clientid);
|
|
setmatchdata("killstreaks",var_02,"eventTime",gettime());
|
|
setmatchdata("killstreaks",var_02,"eventPos",0,int(param_01[0]));
|
|
setmatchdata("killstreaks",var_02,"eventPos",1,int(param_01[1]));
|
|
setmatchdata("killstreaks",var_02,"eventPos",2,int(param_01[2]));
|
|
}
|
|
|
|
//Function Number: 4
|
|
loggameevent(param_00,param_01)
|
|
{
|
|
if(!canlogclient(self) || !canlogevent())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_02 = getmatchdata("eventCount");
|
|
setmatchdata("eventCount",var_02 + 1);
|
|
setmatchdata("events",var_02,"eventType",param_00);
|
|
setmatchdata("events",var_02,"player",self.clientid);
|
|
setmatchdata("events",var_02,"eventTime",gettime());
|
|
setmatchdata("events",var_02,"eventPos",0,int(param_01[0]));
|
|
setmatchdata("events",var_02,"eventPos",1,int(param_01[1]));
|
|
setmatchdata("events",var_02,"eventPos",2,int(param_01[2]));
|
|
}
|
|
|
|
//Function Number: 5
|
|
logkillevent(param_00,param_01)
|
|
{
|
|
if(!canloglife(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
setmatchdata("lives",param_00,"modifiers",param_01,1);
|
|
}
|
|
|
|
//Function Number: 6
|
|
logmultikill(param_00,param_01)
|
|
{
|
|
if(!canloglife(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
setmatchdata("lives",param_00,"multikill",param_01);
|
|
}
|
|
|
|
//Function Number: 7
|
|
logplayerlife(param_00)
|
|
{
|
|
if(!canlogclient(self) || !canloglife(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
setmatchdata("lives",param_00,"player",self.clientid);
|
|
setmatchdata("lives",param_00,"spawnPos",0,int(self.spawnpos[0]));
|
|
setmatchdata("lives",param_00,"spawnPos",1,int(self.spawnpos[1]));
|
|
setmatchdata("lives",param_00,"spawnPos",2,int(self.spawnpos[2]));
|
|
setmatchdata("lives",param_00,"wasTacticalInsertion",self.wasti);
|
|
setmatchdata("lives",param_00,"team",self.team);
|
|
setmatchdata("lives",param_00,"spawnTime",self.spawntime);
|
|
setmatchdata("lives",param_00,"duration",gettime() - self.spawntime);
|
|
logloadout(param_00);
|
|
}
|
|
|
|
//Function Number: 8
|
|
logplayerxp(param_00,param_01)
|
|
{
|
|
if(!canlogclient(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
setmatchdata("players",self.clientid,param_01,param_00);
|
|
}
|
|
|
|
//Function Number: 9
|
|
logloadout(param_00)
|
|
{
|
|
if(!canlogclient(self) || !canloglife(param_00) || self.curclass == "gamemode")
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = self.curclass;
|
|
if(var_01 == "copycat")
|
|
{
|
|
var_02 = self.pers["copyCatLoadout"];
|
|
var_03 = var_02["loadoutPrimary"];
|
|
var_04 = var_02["loadoutPrimaryAttachment"];
|
|
var_05 = var_02["loadoutPrimaryAttachment2"];
|
|
var_06 = var_02["loadoutPrimaryCamo"];
|
|
var_07 = var_02["loadoutPrimaryBuff"];
|
|
var_08 = var_02["loadoutSecondary"];
|
|
var_09 = var_02["loadoutSecondaryAttachment"];
|
|
var_0A = var_02["loadoutSecondaryAttachment2"];
|
|
var_0B = var_02["loadoutSecondaryCamo"];
|
|
var_0C = var_02["loadoutSecondaryBuff"];
|
|
var_0D = var_02["loadoutEquipment"];
|
|
var_0E = var_02["loadoutPerk1"];
|
|
var_0F = var_02["loadoutPerk2"];
|
|
var_10 = var_02["loadoutPerk3"];
|
|
var_11 = var_02["loadoutOffhand"];
|
|
var_12 = var_02["loadoutDeathstreak"];
|
|
var_13 = var_02["loadoutStreakType"];
|
|
var_14 = var_02["loadoutKillstreak1"];
|
|
var_15 = var_02["loadoutKillstreak2"];
|
|
var_16 = var_02["loadoutKillstreak3"];
|
|
}
|
|
else if(issubstr(var_16,"custom"))
|
|
{
|
|
var_17 = maps\mp\gametypes\_class::getclassindex(var_16);
|
|
var_03 = maps\mp\gametypes\_class::cac_getweapon(var_17,0);
|
|
var_04 = maps\mp\gametypes\_class::cac_getweaponattachment(var_17,0);
|
|
var_05 = maps\mp\gametypes\_class::cac_getweaponattachmenttwo(var_17,0);
|
|
var_08 = maps\mp\gametypes\_class::cac_getweapon(var_17,1);
|
|
var_09 = maps\mp\gametypes\_class::cac_getweaponattachment(var_17,1);
|
|
var_0A = maps\mp\gametypes\_class::cac_getweaponattachmenttwo(var_17,1);
|
|
var_11 = maps\mp\gametypes\_class::cac_getoffhand(var_17);
|
|
var_0D = maps\mp\gametypes\_class::cac_getperk(var_17,0);
|
|
var_0E = maps\mp\gametypes\_class::cac_getperk(var_17,1);
|
|
var_0F = maps\mp\gametypes\_class::cac_getperk(var_17,2);
|
|
var_10 = maps\mp\gametypes\_class::cac_getperk(var_17,3);
|
|
var_13 = maps\mp\gametypes\_class::cac_getperk(var_17,5);
|
|
var_12 = maps\mp\gametypes\_class::cac_getdeathstreak(var_17);
|
|
var_07 = maps\mp\gametypes\_class::cac_getweaponbuff(var_17,0);
|
|
var_0C = maps\mp\gametypes\_class::cac_getweaponbuff(var_17,1);
|
|
var_14 = maps\mp\gametypes\_class::cac_getkillstreak(var_17,var_13,0);
|
|
var_15 = maps\mp\gametypes\_class::cac_getkillstreak(var_17,var_13,1);
|
|
var_16 = maps\mp\gametypes\_class::cac_getkillstreak(var_17,var_13,2);
|
|
}
|
|
else
|
|
{
|
|
var_17 = maps\mp\gametypes\_class::getclassindex(var_17);
|
|
var_03 = maps\mp\gametypes\_class::table_getweapon(level.classtablename,var_17,0);
|
|
var_04 = maps\mp\gametypes\_class::table_getweaponattachment(level.classtablename,var_17,0,0);
|
|
var_05 = maps\mp\gametypes\_class::table_getweaponattachment(level.classtablename,var_17,0,1);
|
|
var_08 = maps\mp\gametypes\_class::table_getweapon(level.classtablename,var_17,1);
|
|
var_09 = maps\mp\gametypes\_class::table_getweaponattachment(level.classtablename,var_17,1,0);
|
|
var_0A = maps\mp\gametypes\_class::table_getweaponattachment(level.classtablename,var_17,1,1);
|
|
var_11 = maps\mp\gametypes\_class::table_getoffhand(level.classtablename,var_17);
|
|
var_0D = maps\mp\gametypes\_class::table_getequipment(level.classtablename,var_17,0);
|
|
var_0E = maps\mp\gametypes\_class::table_getperk(level.classtablename,var_17,1);
|
|
var_0F = maps\mp\gametypes\_class::table_getperk(level.classtablename,var_17,2);
|
|
var_10 = maps\mp\gametypes\_class::table_getperk(level.classtablename,var_17,3);
|
|
var_13 = maps\mp\gametypes\_class::table_getperk(level.classtablename,var_17,5);
|
|
var_12 = maps\mp\gametypes\_class::table_getdeathstreak(level.classtablename,var_17);
|
|
var_07 = maps\mp\gametypes\_class::table_getweaponbuff(level.classtablename,var_17,0);
|
|
var_0C = maps\mp\gametypes\_class::table_getweaponbuff(level.classtablename,var_17,1);
|
|
var_14 = maps\mp\gametypes\_class::table_getkillstreak(level.classtablename,var_17,1);
|
|
var_15 = maps\mp\gametypes\_class::table_getkillstreak(level.classtablename,var_17,2);
|
|
var_16 = maps\mp\gametypes\_class::table_getkillstreak(level.classtablename,var_17,3);
|
|
}
|
|
|
|
var_04 = maps\mp\_utility::validateattachment(var_04);
|
|
var_05 = maps\mp\_utility::validateattachment(var_05);
|
|
var_09 = maps\mp\_utility::validateattachment(var_09);
|
|
var_0A = maps\mp\_utility::validateattachment(var_0A);
|
|
setmatchdata("lives",param_00,"primaryWeapon",var_03);
|
|
setmatchdata("lives",param_00,"primaryAttachments",0,var_04);
|
|
setmatchdata("lives",param_00,"primaryAttachments",1,var_05);
|
|
setmatchdata("lives",param_00,"secondaryWeapon",var_08);
|
|
setmatchdata("lives",param_00,"secondaryAttachments",0,var_09);
|
|
setmatchdata("lives",param_00,"secondaryAttachments",1,var_09);
|
|
setmatchdata("lives",param_00,"offhandWeapon",var_11);
|
|
setmatchdata("lives",param_00,"equipment",var_0D);
|
|
setmatchdata("lives",param_00,"perks",0,var_0E);
|
|
setmatchdata("lives",param_00,"perks",1,var_0F);
|
|
setmatchdata("lives",param_00,"perks",2,var_10);
|
|
setmatchdata("lives",param_00,"strikePackage",var_13);
|
|
setmatchdata("lives",param_00,"deathstreak",var_12);
|
|
setmatchdata("lives",param_00,"weaponBuff",0,var_07);
|
|
setmatchdata("lives",param_00,"weaponBuff",1,var_0C);
|
|
switch(var_13)
|
|
{
|
|
case "streaktype_assault":
|
|
setmatchdata("lives",param_00,"assaultStreaks",0,var_14);
|
|
setmatchdata("lives",param_00,"assaultStreaks",1,var_15);
|
|
setmatchdata("lives",param_00,"assaultStreaks",2,var_16);
|
|
break;
|
|
|
|
case "streaktype_support":
|
|
setmatchdata("lives",param_00,"defenseStreaks",0,var_14);
|
|
setmatchdata("lives",param_00,"defenseStreaks",1,var_15);
|
|
setmatchdata("lives",param_00,"defenseStreaks",2,var_16);
|
|
break;
|
|
|
|
case "streaktype_specialist":
|
|
setmatchdata("lives",param_00,"specialistStreaks",0,var_14);
|
|
setmatchdata("lives",param_00,"specialistStreaks",1,var_15);
|
|
setmatchdata("lives",param_00,"specialistStreaks",2,var_16);
|
|
break;
|
|
|
|
case "none":
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
logplayerdeath(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
|
|
{
|
|
if(!canlogclient(self) || isplayer(param_01) && !canlogclient(param_01) || !canloglife(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(param_00 >= level.maxlives)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(param_04 == "none")
|
|
{
|
|
var_07 = "none";
|
|
var_08 = "none";
|
|
}
|
|
else
|
|
{
|
|
var_07 = weaponinventorytype(param_06);
|
|
var_08 = weaponclass(param_05);
|
|
}
|
|
|
|
if(issubstr(param_04,"destructible"))
|
|
{
|
|
param_04 = "destructible";
|
|
}
|
|
|
|
if(isdefined(var_07) && var_07 == "primary" || var_07 == "altmode" && var_08 == "pistol" || var_08 == "smg" || var_08 == "rifle" || var_08 == "spread" || var_08 == "mg" || var_08 == "grenade" || var_08 == "rocketlauncher" || var_08 == "sniper")
|
|
{
|
|
var_09 = undefined;
|
|
if(var_07 == "altmode")
|
|
{
|
|
var_09 = param_04;
|
|
param_04 = param_05;
|
|
setmatchdata("lives",param_00,"altMode",1);
|
|
}
|
|
|
|
var_0A = strtok(param_04,"_");
|
|
if(var_0A[0] == "iw5")
|
|
{
|
|
var_0F = var_0A[0] + "_" + var_0A[1];
|
|
setmatchdata("lives",param_00,"weapon",var_0F);
|
|
if(isdefined(var_0A[3]) && issubstr(var_0A[3],"scope") && issubstr(var_0A[3],"vz"))
|
|
{
|
|
var_0A[3] = "vzscope";
|
|
}
|
|
|
|
if(isdefined(var_0A[4]) && issubstr(var_0A[4],"scope") && issubstr(var_0A[4],"vz"))
|
|
{
|
|
var_0A[4] = "vzscope";
|
|
}
|
|
|
|
if(isdefined(var_0A[3]) && issubstr(var_0A[3],"scope") && !issubstr(var_0A[3],"vz"))
|
|
{
|
|
var_0A[3] = undefined;
|
|
}
|
|
|
|
if(isdefined(var_0A[4]) && issubstr(var_0A[4],"scope") && !issubstr(var_0A[4],"vz"))
|
|
{
|
|
var_0A[4] = undefined;
|
|
}
|
|
|
|
if(isdefined(var_0A[3]) && maps\mp\_utility::isattachment(var_0A[3]))
|
|
{
|
|
var_10 = maps\mp\_utility::validateattachment(var_0A[3]);
|
|
setmatchdata("lives",param_00,"attachments",0,var_10);
|
|
}
|
|
|
|
if(isdefined(var_0A[4]) && maps\mp\_utility::isattachment(var_0A[4]))
|
|
{
|
|
var_10 = maps\mp\_utility::validateattachment(var_0A[4]);
|
|
setmatchdata("lives",param_00,"attachments",1,var_10);
|
|
}
|
|
}
|
|
else if(var_0A[0] == "alt")
|
|
{
|
|
var_0F = var_0A[1] + "_" + var_0A[2];
|
|
setmatchdata("lives",param_00,"weapon",var_0F);
|
|
if(isdefined(var_0A[4]) && maps\mp\_utility::isattachment(var_0A[4]))
|
|
{
|
|
var_10 = maps\mp\_utility::validateattachment(var_0A[4]);
|
|
setmatchdata("lives",param_00,"attachments",0,var_10);
|
|
}
|
|
|
|
if(isdefined(var_0A[5]) && maps\mp\_utility::isattachment(var_0A[5]))
|
|
{
|
|
var_10 = maps\mp\_utility::validateattachment(var_0A[5]);
|
|
setmatchdata("lives",param_00,"attachments",1,var_10);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_0A[var_0A.size - 1] = undefined;
|
|
setmatchdata("lives",param_00,"weapon",var_0A[0]);
|
|
if(isdefined(var_0A[1]) && var_07 != "altmode")
|
|
{
|
|
var_10 = maps\mp\_utility::validateattachment(var_0A[1]);
|
|
setmatchdata("lives",param_00,"attachments",0,var_10);
|
|
}
|
|
|
|
if(isdefined(var_0A[2]) && var_07 != "altmode")
|
|
{
|
|
var_10 = maps\mp\_utility::validateattachment(var_0A[2]);
|
|
setmatchdata("lives",param_00,"attachments",1,var_10);
|
|
}
|
|
}
|
|
}
|
|
else if(var_07 == "item" || var_07 == "offhand")
|
|
{
|
|
var_11 = maps\mp\_utility::strip_suffix(param_04,"_mp");
|
|
setmatchdata("lives",param_00,"weapon",var_11);
|
|
}
|
|
else
|
|
{
|
|
setmatchdata("lives",param_00,"weapon",param_04);
|
|
}
|
|
|
|
if(maps\mp\_utility::iskillstreakweapon(param_04))
|
|
{
|
|
setmatchdata("lives",param_00,"modifiers","killstreak",1);
|
|
}
|
|
|
|
setmatchdata("lives",param_00,"mod",param_03);
|
|
if(isplayer(param_01))
|
|
{
|
|
setmatchdata("lives",param_00,"attacker",param_01.clientid);
|
|
setmatchdata("lives",param_00,"attackerPos",0,int(param_01.origin[0]));
|
|
setmatchdata("lives",param_00,"attackerPos",1,int(param_01.origin[1]));
|
|
setmatchdata("lives",param_00,"attackerPos",2,int(param_01.origin[2]));
|
|
var_12 = anglestoforward((0,self.angles[1],0));
|
|
var_13 = self.origin - param_01.origin;
|
|
var_13 = vectornormalize((var_13[0],var_13[1],0));
|
|
setmatchdata("lives",param_00,"dotOfDeath",vectordot(var_12,var_13));
|
|
if(param_01 maps\mp\_utility::isjuggernaut())
|
|
{
|
|
setmatchdata("lives",param_00,"attackerIsJuggernaut",1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
setmatchdata("lives",param_00,"attacker",255);
|
|
setmatchdata("lives",param_00,"attackerPos",0,int(self.origin[0]));
|
|
setmatchdata("lives",param_00,"attackerPos",1,int(self.origin[1]));
|
|
setmatchdata("lives",param_00,"attackerPos",2,int(self.origin[2]));
|
|
}
|
|
|
|
setmatchdata("lives",param_00,"player",self.clientid);
|
|
setmatchdata("lives",param_00,"deathPos",0,int(self.origin[0]));
|
|
setmatchdata("lives",param_00,"deathPos",1,int(self.origin[1]));
|
|
setmatchdata("lives",param_00,"deathPos",2,int(self.origin[2]));
|
|
setmatchdata("lives",param_00,"deathAngles",0,int(self.angles[0]));
|
|
setmatchdata("lives",param_00,"deathAngles",1,int(self.angles[1]));
|
|
setmatchdata("lives",param_00,"deathAngles",2,int(self.angles[2]));
|
|
}
|
|
|
|
//Function Number: 11
|
|
logplayerdata()
|
|
{
|
|
if(!canlogclient(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
setmatchdata("players",self.clientid,"score",maps\mp\_utility::getpersstat("score"));
|
|
if(maps\mp\_utility::getpersstat("assists") > 255)
|
|
{
|
|
setmatchdata("players",self.clientid,"assists",255);
|
|
}
|
|
else
|
|
{
|
|
setmatchdata("players",self.clientid,"assists",maps\mp\_utility::getpersstat("assists"));
|
|
}
|
|
|
|
if(maps\mp\_utility::getpersstat("longestStreak") > 255)
|
|
{
|
|
setmatchdata("players",self.clientid,"longestStreak",255);
|
|
return;
|
|
}
|
|
|
|
setmatchdata("players",self.clientid,"longestStreak",maps\mp\_utility::getpersstat("longestStreak"));
|
|
}
|
|
|
|
//Function Number: 12
|
|
endofgamesummarylogger()
|
|
{
|
|
level waittill("game_ended");
|
|
foreach(var_01 in level.players)
|
|
{
|
|
wait 0.05;
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_01.weaponsused))
|
|
{
|
|
var_01 doublebubblesort();
|
|
var_02 = 0;
|
|
if(var_01.weaponsused.size > 3)
|
|
{
|
|
for(var_03 = var_01.weaponsused.size - 1;var_03 > var_01.weaponsused.size - 3;var_03--)
|
|
{
|
|
var_01 setplayerdata("round","weaponsUsed",var_02,var_01.weaponsused[var_03]);
|
|
var_01 setplayerdata("round","weaponXpEarned",var_02,var_01.weaponxpearned[var_03]);
|
|
var_02++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for(var_03 = var_01.weaponsused.size - 1;var_03 >= 0;var_03--)
|
|
{
|
|
var_01 setplayerdata("round","weaponsUsed",var_02,var_01.weaponsused[var_03]);
|
|
var_01 setplayerdata("round","weaponXpEarned",var_02,var_01.weaponxpearned[var_03]);
|
|
var_02++;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_01 setplayerdata("round","weaponsUsed",0,"none");
|
|
var_01 setplayerdata("round","weaponsUsed",1,"none");
|
|
var_01 setplayerdata("round","weaponsUsed",2,"none");
|
|
var_01 setplayerdata("round","weaponXpEarned",0,0);
|
|
var_01 setplayerdata("round","weaponXpEarned",1,0);
|
|
var_01 setplayerdata("round","weaponXpEarned",2,0);
|
|
}
|
|
|
|
if(isdefined(var_01.challengescompleted))
|
|
{
|
|
var_01 setplayerdata("round","challengeNumCompleted",var_01.challengescompleted.size);
|
|
}
|
|
else
|
|
{
|
|
var_01 setplayerdata("round","challengeNumCompleted",0);
|
|
}
|
|
|
|
for(var_03 = 0;var_03 < 20;var_03++)
|
|
{
|
|
if(isdefined(var_01.challengescompleted) && isdefined(var_01.challengescompleted[var_03]) && var_01.challengescompleted[var_03] != "ch_prestige" && !issubstr(var_01.challengescompleted[var_03],"_daily") && !issubstr(var_01.challengescompleted[var_03],"_weekly"))
|
|
{
|
|
var_01 setplayerdata("round","challengesCompleted",var_03,var_01.challengescompleted[var_03]);
|
|
continue;
|
|
}
|
|
|
|
var_01 setplayerdata("round","challengesCompleted",var_03,"");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
doublebubblesort()
|
|
{
|
|
var_00 = self.weaponxpearned;
|
|
var_01 = self.weaponxpearned.size;
|
|
for(var_02 = var_01 - 1;var_02 > 0;var_02--)
|
|
{
|
|
for(var_03 = 1;var_03 <= var_02;var_03++)
|
|
{
|
|
if(var_00[var_03 - 1] < var_00[var_03])
|
|
{
|
|
var_04 = self.weaponsused[var_03];
|
|
self.weaponsused[var_03] = self.weaponsused[var_03 - 1];
|
|
self.weaponsused[var_03 - 1] = var_04;
|
|
var_05 = self.weaponxpearned[var_03];
|
|
self.weaponxpearned[var_03] = self.weaponxpearned[var_03 - 1];
|
|
self.weaponxpearned[var_03 - 1] = var_05;
|
|
var_00 = self.weaponxpearned;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
gameendlistener()
|
|
{
|
|
level waittill("game_ended");
|
|
foreach(var_01 in level.players)
|
|
{
|
|
var_01 logplayerdata();
|
|
if(!isalive(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 = maps\mp\_utility::getnextlifeid();
|
|
var_01 logplayerlife(var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
canlogclient(param_00)
|
|
{
|
|
return param_00.clientid < level.maxlogclients;
|
|
}
|
|
|
|
//Function Number: 16
|
|
canlogevent()
|
|
{
|
|
return getmatchdata("eventCount") < level.maxevents;
|
|
}
|
|
|
|
//Function Number: 17
|
|
canlogkillstreak()
|
|
{
|
|
return getmatchdata("killstreakCount") < level.maxkillstreaks;
|
|
}
|
|
|
|
//Function Number: 18
|
|
canloglife(param_00)
|
|
{
|
|
return getmatchdata("lifeCount") < level.maxlives;
|
|
}
|
|
|
|
//Function Number: 19
|
|
logweaponstat(param_00,param_01,param_02)
|
|
{
|
|
if(!canlogclient(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(maps\mp\_utility::iskillstreakweapon(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_03 = getmatchdata("players",self.clientid,"weaponStats",param_00,param_01);
|
|
if(param_01 == "kills" || param_01 == "deaths" || param_01 == "headShots")
|
|
{
|
|
if(var_03 + param_02 > 255)
|
|
{
|
|
setmatchdata("players",self.clientid,"weaponStats",param_00,param_01,255);
|
|
}
|
|
else
|
|
{
|
|
setmatchdata("players",self.clientid,"weaponStats",param_00,param_01,var_03 + param_02);
|
|
}
|
|
}
|
|
|
|
setmatchdata("players",self.clientid,"weaponStats",param_00,param_01,var_03 + param_02);
|
|
}
|
|
|
|
//Function Number: 20
|
|
logattachmentstat(param_00,param_01,param_02)
|
|
{
|
|
if(!canlogclient(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_03 = getmatchdata("players",self.clientid,"attachmentsStats",param_00,param_01);
|
|
setmatchdata("players",self.clientid,"attachmentsStats",param_00,param_01,var_03 + param_02);
|
|
}
|
|
|
|
//Function Number: 21
|
|
buildbaseweaponlist()
|
|
{
|
|
var_00 = [];
|
|
var_01 = 149;
|
|
for(var_02 = 0;var_02 <= var_01;var_02++)
|
|
{
|
|
var_03 = tablelookup("mp/statstable.csv",0,var_02,4);
|
|
if(var_03 == "")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!issubstr(tablelookup("mp/statsTable.csv",0,var_02,2),"weapon_"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(tablelookup("mp/statsTable.csv",0,var_02,2) == "weapon_other")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00[var_00.size] = var_03;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 22
|
|
logchallenge(param_00,param_01)
|
|
{
|
|
if(!canlogclient(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(issubstr(param_00,"_daily") || issubstr(param_00,"_weekly"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_02 = getmatchdata("players",self.clientid,"challengeCount");
|
|
if(var_02 < level.maxnumchallengesperplayer)
|
|
{
|
|
setmatchdata("players",self.clientid,"challenge",var_02,param_00);
|
|
setmatchdata("players",self.clientid,"tier",var_02,param_01);
|
|
setmatchdata("players",self.clientid,"challengeCount",var_02 + 1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
logaward(param_00)
|
|
{
|
|
if(!canlogclient(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = getmatchdata("players",self.clientid,"awardCount");
|
|
if(var_01 < level.maxnumawardsperplayer)
|
|
{
|
|
setmatchdata("players",self.clientid,"awards",var_01,param_00);
|
|
setmatchdata("players",self.clientid,"awardCount",var_01 + 1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
logkillsconfirmed()
|
|
{
|
|
if(!canlogclient(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
setmatchdata("players",self.clientid,"killsConfirmed",self.pers["confirmed"]);
|
|
}
|
|
|
|
//Function Number: 25
|
|
logkillsdenied()
|
|
{
|
|
if(!canlogclient(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
setmatchdata("players",self.clientid,"killsDenied",self.pers["denied"]);
|
|
} |