Files
IL-GSC/IW/PC/ALL/scripts/mp/bots/_bots_loadout.gsc
2023-10-27 03:49:01 -04:00

1512 lines
34 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\bots\_bots_loadout.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 40
* Decompile Time: 1927 ms
* Timestamp: 10/27/2023 12:27:39 AM
*******************************************************************/
//Function Number: 1
init()
{
func_9779();
func_9579();
func_96D0();
func_955A();
func_9555();
func_9556();
func_9554();
level.var_2E14 = 1;
}
//Function Number: 2
func_9579()
{
var_00 = "mp/botClassTable.csv";
level.var_2EE7 = [];
var_01 = func_2E07();
var_02 = 0;
for(;;)
{
var_02++;
var_03 = tablelookup(var_00,0,"botArchetype",var_02);
var_04 = tablelookup(var_00,0,"botPersonalities",var_02);
var_05 = tablelookup(var_00,0,"botDifficulties",var_02);
if(!isdefined(var_03) || var_03 == "")
{
break;
}
if(!isdefined(var_04) || var_04 == "")
{
break;
}
if(!isdefined(var_05) || var_05 == "")
{
break;
}
var_06 = [];
foreach(var_08 in var_01)
{
var_06[var_08] = tablelookup(var_00,0,var_08,var_02);
}
var_0A = strtok(var_03,"|");
var_0B = strtok(var_04,"| ");
var_0C = strtok(var_05,"| ");
foreach(var_0E in var_0A)
{
var_0E = "archetype_" + var_0E;
var_06["loadoutArchetype"] = var_0E;
foreach(var_10 in var_0B)
{
foreach(var_12 in var_0C)
{
var_13 = func_2E0E(var_0E,var_10,var_12,1);
var_14 = spawnstruct();
var_14.var_AEAC = var_06;
var_13.var_AE93[var_13.var_AE93.size] = var_14;
}
}
}
}
}
//Function Number: 3
func_9779()
{
var_00 = "mp/botTemplateTable.csv";
level.var_2EE8 = [];
var_01 = func_2E07();
var_02 = 0;
for(;;)
{
var_02++;
var_03 = tablelookup(var_00,0,"template_",var_02);
if(!isdefined(var_03) || var_03 == "")
{
break;
}
var_04 = "template_" + var_03;
level.var_2EE8[var_04] = [];
foreach(var_06 in var_01)
{
var_07 = tablelookup(var_00,0,var_06,var_02);
if(isdefined(var_07) && var_07 != "")
{
level.var_2EE8[var_04][var_06] = var_07;
}
}
}
}
//Function Number: 4
func_9554()
{
level.var_2ED9 = [];
level.var_2ED9["cqb"] = ["archetype_assault","archetype_scout","archetype_assassin","archetype_heavy","archetype_engineer"];
level.var_2ED9["run_and_gun"] = ["archetype_assault","archetype_scout","archetype_heavy","archetype_engineer"];
level.var_2ED9["camper"] = ["archetype_assassin","archetype_heavy","archetype_sniper"];
level.var_2ED9["default"] = ["archetype_assault"];
}
//Function Number: 5
func_2E0A(param_00,param_01,param_02)
{
if(!function_011C())
{
return 1;
}
if(!getmatchrulesdata("commonOption","allowCustomClasses"))
{
return 1;
}
if(param_01 == "specialty_null")
{
return 1;
}
if(param_01 == "none")
{
return 1;
}
if(param_00 == "equipment")
{
if(getmatchrulesdata("commonOption","perkRestricted",param_01))
{
return 0;
}
param_00 = "weapon";
}
var_03 = param_00 + "Restricted";
var_04 = param_00 + "ClassRestricted";
var_05 = "";
switch(param_00)
{
case "weapon":
var_05 = scripts\mp\_utility::func_8225(param_01);
break;
case "attachment":
var_05 = scripts\mp\_utility::getattachmenttype(param_01);
break;
case "killstreak":
var_05 = param_02;
break;
case "perk":
var_05 = "ability_" + level.var_2E41[param_01];
break;
default:
return 0;
}
if(getmatchrulesdata("commonOption",var_03,param_01))
{
return 0;
}
if(getmatchrulesdata("commonOption",var_04,var_05))
{
return 0;
}
return 1;
}
//Function Number: 6
func_2DFD(param_00)
{
var_01 = "none";
var_02 = ["veteran","hardened","regular","recruit"];
var_02 = scripts\common\utility::array_randomize(var_02);
foreach(var_04 in var_02)
{
var_01 = func_2E03("weap_statstable",param_00,"loadoutPrimary",self.var_2ED8,self.var_CA79,var_04);
if(var_01 != "none")
{
return var_01;
}
}
if(isdefined(level.var_2E45))
{
var_06 = scripts\common\utility::array_randomize(level.var_2E45);
foreach(var_08 in var_06)
{
foreach(var_04 in var_02)
{
var_01 = func_2E03("weap_statstable",param_00,"loadoutPrimary",param_00["loadoutArchetype"],var_08,var_04);
if(var_01 != "none")
{
self.var_2D6F = var_08;
return var_01;
}
}
}
}
if(function_011C())
{
for(var_0C = 0;var_0C < 6 && !isdefined(var_01) || var_01 == "none" || var_01 == "";var_0C++)
{
if(scripts\mp\_utility::func_7F91("defaultClasses",self.team,var_0C,"class","inUse"))
{
var_01 = scripts\mp\_utility::func_7F91("defaultClasses",self.team,var_0C,"class","weaponSetups",0,"weapon");
if(var_01 != "none")
{
self.var_2D6F = "weapon";
return var_01;
}
}
}
}
self.var_2D6F = "weapon";
return level.var_2D70;
}
//Function Number: 7
func_2E48(param_00)
{
if(isdefined(param_00))
{
var_01 = level.var_2ED5[param_00];
if(isdefined(var_01))
{
var_02 = strtok(var_01,"| ");
if(var_02.size > 0)
{
scripts\mp\bots\_bots_util::func_2E83(scripts\common\utility::random(var_02));
return;
}
}
}
}
//Function Number: 8
func_2E07()
{
var_00 = [];
var_00[var_00.size] = "loadoutPrimary";
var_00[var_00.size] = "loadoutPrimaryAttachment";
var_00[var_00.size] = "loadoutPrimaryAttachment2";
var_00[var_00.size] = "loadoutPrimaryCamo";
var_00[var_00.size] = "loadoutPrimaryReticle";
var_00[var_00.size] = "loadoutSecondary";
var_00[var_00.size] = "loadoutSecondaryAttachment";
var_00[var_00.size] = "loadoutSecondaryAttachment2";
var_00[var_00.size] = "loadoutSecondaryCamo";
var_00[var_00.size] = "loadoutSecondaryReticle";
var_00[var_00.size] = "loadoutStreakType";
var_00[var_00.size] = "loadoutStreak1";
var_00[var_00.size] = "loadoutStreak2";
var_00[var_00.size] = "loadoutStreak3";
var_00[var_00.size] = "loadoutPowerPrimary";
var_00[var_00.size] = "loadoutPowerSecondary";
var_00[var_00.size] = "loadoutPerk1";
var_00[var_00.size] = "loadoutPerk2";
var_00[var_00.size] = "loadoutPerk3";
return var_00;
}
//Function Number: 9
func_2E0E(param_00,param_01,param_02,param_03)
{
var_04 = func_2E0B(param_00,param_01,param_02);
if(!isdefined(level.var_2EE7))
{
level.var_2EE7 = [];
}
if(!isdefined(level.var_2EE7[var_04]) && param_03)
{
level.var_2EE7[var_04] = spawnstruct();
level.var_2EE7[var_04].var_AE93 = [];
}
if(isdefined(level.var_2EE7[var_04]))
{
return level.var_2EE7[var_04];
}
}
//Function Number: 10
func_2E0D(param_00,param_01,param_02)
{
var_03 = func_2E0E(param_00,param_01,param_02,0);
if(isdefined(var_03) && isdefined(var_03.var_AE93) && var_03.var_AE93.size > 0)
{
var_04 = randomint(var_03.var_AE93.size);
return var_03.var_AE93[var_04].var_AEAC;
}
}
//Function Number: 11
func_2EC2(param_00,param_01,param_02,param_03)
{
var_04 = scripts\mp\_utility::func_8217(param_00);
if(isdefined(param_01) && param_01 != "none" && !func_2E0A("attachment",param_01))
{
return 0;
}
if(isdefined(param_02) && param_02 != "none" && !func_2E0A("attachment",param_02))
{
return 0;
}
if(isdefined(param_03) && param_03 != "none" && !func_2E0A("attachment",param_03))
{
return 0;
}
if(param_01 != "none" && !scripts\common\utility::func_2286(var_04,param_01))
{
return 0;
}
if(param_02 != "none" && !scripts\common\utility::func_2286(var_04,param_02))
{
return 0;
}
if(isdefined(param_03) && param_03 != "none" && !scripts\common\utility::func_2286(var_04,param_03))
{
return 0;
}
if((param_01 == "none" || param_02 == "none") && !isdefined(param_03) || param_03 == "none")
{
return 1;
}
if(!isdefined(level.var_2DD2))
{
level.var_2DD2 = [];
level.var_1C77 = [];
var_05 = "mp/attachmentcombos.csv";
var_06 = 0;
for(;;)
{
var_06++;
var_07 = tablelookupbyrow(var_05,0,var_06);
if(var_07 == "")
{
break;
}
var_08 = 0;
for(;;)
{
var_08++;
var_09 = tablelookupbyrow(var_05,var_08,0);
if(var_09 == "")
{
break;
}
if(var_09 == var_07)
{
if(tablelookupbyrow(var_05,var_08,var_06) != "no")
{
level.var_1C77[var_09] = 1;
}
continue;
}
if(tablelookupbyrow(var_05,var_08,var_06) == "no")
{
level.var_2DD2[var_07][var_09] = 1;
}
}
}
}
if(param_01 == param_02 && !isdefined(level.var_1C77[param_01]))
{
return 0;
}
if(isdefined(param_03))
{
if(param_02 == param_03 && !isdefined(level.var_1C77[param_02]))
{
return 0;
}
if(param_01 == param_03 && !isdefined(level.var_1C77[param_01]))
{
return 0;
}
if(param_03 != "none" && param_01 == param_03 && param_02 == param_03)
{
return 0;
}
if(isdefined(level.var_2DD2[param_02]) && isdefined(level.var_2DD2[param_02][param_03]))
{
return 0;
}
if(isdefined(level.var_2DD2[param_01]) && isdefined(level.var_2DD2[param_01][param_03]))
{
return 0;
}
}
return !isdefined(level.var_2DD2[param_01]) && isdefined(level.var_2DD2[param_01][param_02]);
}
//Function Number: 12
func_2EC1(param_00,param_01,param_02)
{
if(isdefined(param_01[param_00 + "Attachment"]) && isdefined(level.var_2D0D[param_01[param_00 + "Attachment"]]))
{
return 1;
}
if(isdefined(param_01[param_00 + "Attachment2"]) && isdefined(level.var_2D0D[param_01[param_00 + "Attachment2"]]))
{
return 1;
}
if(isdefined(param_01[param_00 + "Attachment3"]) && isdefined(level.var_2D0D[param_01[param_00 + "Attachment3"]]))
{
return 1;
}
return 0;
}
//Function Number: 13
func_2E3E(param_00)
{
return level.var_CA65[param_00];
}
//Function Number: 14
func_CA64(param_00,param_01)
{
if(func_2E3E(param_00) > 0)
{
var_02 = [];
var_02["type"] = param_01;
var_02["name"] = param_00;
level.var_2E3F[level.var_2E3F.size] = var_02;
level.var_2E41[param_00] = param_01;
}
}
//Function Number: 15
func_96D0()
{
level.var_CA65 = [];
var_00 = 1;
for(;;)
{
var_01 = tablelookupbyrow("mp/perktable.csv",var_00,1);
if(var_01 == "")
{
break;
}
level.var_CA65[var_01] = int(tablelookupbyrow("mp/perktable.csv",var_00,10));
var_00++;
}
level.var_CA65["none"] = 0;
level.var_CA65["specialty_null"] = 0;
level.var_2E3F = [];
level.var_2E41 = [];
var_00 = 1;
var_02 = "ability_null";
while(isdefined(var_02) && var_02 != "")
{
var_02 = getsubstr(var_02,8);
for(var_03 = 4;var_03 <= 13;var_03++)
{
var_01 = tablelookupbyrow("mp/cacabilitytable.csv",var_00,var_03);
if(var_01 != "")
{
func_CA64(var_01,var_02);
}
}
var_00++;
var_02 = tablelookupbyrow("mp/cacabilitytable.csv",var_00,1);
}
}
//Function Number: 16
func_955A()
{
var_00 = "mp/statstable.csv";
var_01 = 4;
var_02 = 38;
var_03 = 39;
var_04 = 40;
level.var_2ED6 = [];
level.var_2ED5 = [];
var_05 = 1;
for(;;)
{
var_06 = tablelookupbyrow(var_00,var_05,var_01);
if(var_06 == "specialty_null")
{
break;
}
var_07 = tablelookupbyrow(var_00,var_05,var_02);
var_08 = tablelookupbyrow(var_00,var_05,var_04);
var_09 = tablelookupbyrow(var_00,var_05,var_03);
if(var_06 != "" && var_09 != "")
{
level.var_2ED5[var_06] = var_09;
}
if(var_08 != "" && var_06 != "" && var_09 != "" && var_07 != "")
{
var_0A = "loadoutPrimary";
if(scripts\mp\_utility::func_9D79(var_06))
{
var_0A = "loadoutSecondary";
}
else if(!scripts\mp\_utility::func_9D78(var_06))
{
var_05++;
continue;
}
if(!isdefined(level.var_2ED6[var_0A]))
{
level.var_2ED6[var_0A] = [];
}
var_0B = strtok(var_07,"|");
var_0C = strtok(var_09,"| ");
var_0D = strtok(var_08,"| ");
foreach(var_0F in var_0B)
{
var_0F = "archetype_" + var_0F;
foreach(var_11 in var_0C)
{
foreach(var_13 in var_0D)
{
var_14 = func_2E0B(var_0F,var_11,var_13);
if(!isdefined(level.var_2ED6[var_0A][var_14]))
{
level.var_2ED6[var_0A][var_14] = [];
}
var_15 = level.var_2ED6[var_0A][var_14].size;
level.var_2ED6[var_0A][var_14][var_15] = var_06;
}
}
}
}
var_05++;
}
}
//Function Number: 17
func_2E03(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = "specialty_null";
if(param_02 == "loadoutPrimary")
{
var_06 = "iw7_ar57";
}
else if(param_02 == "loadoutSecondary")
{
var_06 = "iw7_revolver";
}
if(param_04 == "default")
{
param_04 = "run_and_gun";
}
if(param_02 == "loadoutSecondary" && scripts\common\utility::func_2286(param_01,"specialty_twoprimaries"))
{
param_02 = "loadoutPrimary";
}
if(!isdefined(level.var_2ED6))
{
return var_06;
}
if(!isdefined(level.var_2ED6[param_02]))
{
return var_06;
}
var_07 = func_2E0B(param_03,param_04,param_05);
if(!isdefined(level.var_2ED6[param_02][var_07]))
{
return var_06;
}
var_06 = func_2E02(level.var_2ED6[param_02][var_07],param_00,param_01,param_02);
return var_06;
}
//Function Number: 18
func_2E01(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = "specialty_null";
if(!isdefined(level.var_2E3F))
{
return var_06;
}
if(!isdefined(level.var_2E40))
{
level.var_2E40 = [];
}
if(!isdefined(level.var_2E40[param_00]))
{
var_07 = strtok(param_00,"_");
var_07[0] = "";
var_08 = 0;
if(scripts\common\utility::func_2286(var_07,"any"))
{
var_08 = 1;
}
var_09 = [];
foreach(var_0B in level.var_2E3F)
{
if(var_08 || scripts\common\utility::func_2286(var_07,var_0B["type"]))
{
var_09[var_09.size] = var_0B["name"];
}
}
level.var_2E40[param_00] = var_09;
}
if(level.var_2E40[param_00].size > 0)
{
var_06 = func_2E02(level.var_2E40[param_00],param_01,param_02,param_03);
}
return var_06;
}
//Function Number: 19
func_2EC0(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = param_04 - param_03 + 1;
if(isdefined(param_05))
{
var_06 = param_05;
}
var_07 = 0;
var_08 = int(getsubstr(param_01,11));
if(param_00 == "specialty_twoprimaries")
{
return 0;
}
if(param_00 == "specialty_extra_attachment")
{
return 0;
}
if(!func_2E0A("perk",param_00))
{
return 0;
}
for(var_09 = var_08 - 1;var_09 > 0;var_09--)
{
var_0A = "loadoutPerk" + var_09;
if(param_02[var_0A] == "none" || param_02[var_0A] == "specialty_null")
{
continue;
}
if(param_00 == param_02[var_0A])
{
return 0;
}
if(var_09 >= param_03 && var_09 <= param_04)
{
var_07 = var_07 + func_2E3E(param_02[var_0A]);
}
}
if(var_07 + func_2E3E(param_00) > var_06)
{
return 0;
}
return 1;
}
//Function Number: 20
func_2E00(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = int(getsubstr(param_00,5,6)) - 1;
switch(param_03)
{
case "loadoutPrimary":
return scripts\mp\_class::func_113C0(level.var_4010,var_06,0);
case "loadoutPrimaryAttachment":
return scripts\mp\_class::func_113C1(level.var_4010,var_06,0,0);
case "loadoutPrimaryAttachment2":
return scripts\mp\_class::func_113C1(level.var_4010,var_06,0,1);
case "loadoutPrimaryCamo":
return scripts\mp\_class::func_113C3(level.var_4010,var_06,0);
case "loadoutPrimaryReticle":
return scripts\mp\_class::func_113C4(level.var_4010,var_06,0);
case "loadoutSecondary":
return scripts\mp\_class::func_113C0(level.var_4010,var_06,1);
case "loadoutSecondaryAttachment":
return scripts\mp\_class::func_113C1(level.var_4010,var_06,1,0);
case "loadoutSecondaryAttachment2":
return scripts\mp\_class::func_113C1(level.var_4010,var_06,1,1);
case "loadoutSecondaryCamo":
return scripts\mp\_class::func_113C3(level.var_4010,var_06,1);
case "loadoutSecondaryReticle":
return scripts\mp\_class::func_113C4(level.var_4010,var_06,1);
case "loadoutStreak1":
return scripts\mp\_class::func_113B9(level.var_4010,var_06,0);
case "loadoutStreak2":
return scripts\mp\_class::func_113B9(level.var_4010,var_06,1);
case "loadoutStreak3":
return scripts\mp\_class::func_113B9(level.var_4010,var_06,2);
case "loadoutPerk6":
case "loadoutPerk5":
case "loadoutPerk4":
case "loadoutPerk3":
case "loadoutPerk2":
case "loadoutPerk1":
var_07 = int(getsubstr(param_03,11));
var_08 = scripts\mp\_class::func_113BB(level.var_4010,var_06,var_07);
if(var_08 == "")
{
return "specialty_null";
}
var_09 = int(getsubstr(var_08,0,1));
var_0A = int(getsubstr(var_08,1,2));
var_0B = tablelookupbyrow("mp/cacabilitytable.csv",var_09 + 1,var_0A + 3);
return var_0B;
}
return param_05;
}
//Function Number: 21
func_9555()
{
var_00 = "mp/attachmenttable.csv";
var_01 = 5;
var_02 = 19;
var_03 = 11;
level.var_2D0E = [];
level.var_2D0D = [];
var_04 = 1;
for(;;)
{
var_05 = tablelookupbyrow(var_00,var_04,var_01);
if(var_05 == "done")
{
break;
}
var_06 = tablelookupbyrow(var_00,var_04,var_02);
if(var_05 != "" && var_06 != "")
{
var_07 = tablelookupbyrow(var_00,var_04,var_03);
if(var_07 == "TRUE")
{
level.var_2D0D[var_05] = 1;
}
var_08 = strtok(var_06,"| ");
foreach(var_0A in var_08)
{
if(!isdefined(level.var_2D0E[var_0A]))
{
level.var_2D0E[var_0A] = [];
}
if(!scripts\common\utility::func_2286(level.var_2D0E[var_0A],var_05))
{
var_0B = level.var_2D0E[var_0A].size;
level.var_2D0E[var_0A][var_0B] = var_05;
}
}
}
var_04++;
}
}
//Function Number: 22
func_2DFE(param_00,param_01,param_02,param_03,param_04)
{
var_05 = "none";
if(!isdefined(level.var_2D0E))
{
return var_05;
}
if(!isdefined(level.var_2D0E[param_04]))
{
return var_05;
}
var_05 = func_2E02(level.var_2D0E[param_04],param_00,param_01,param_02);
return var_05;
}
//Function Number: 23
func_9556()
{
var_00 = "mp/camotable.csv";
level.var_2D1E = [];
var_01 = 0;
for(;;)
{
var_02 = tablelookupbyrow(var_00,var_01,scripts\common\utility::getcamotablecolumnindex("ref"));
if(!isdefined(var_02) || var_02 == "")
{
break;
}
var_03 = tablelookupbyrow(var_00,var_01,scripts\common\utility::getcamotablecolumnindex("bot_valid"));
if(isdefined(var_03) && int(var_03))
{
level.var_2D1E[level.var_2D1E.size] = var_02;
}
var_01++;
}
}
//Function Number: 24
func_2DFF(param_00,param_01,param_02,param_03,param_04)
{
var_05 = "none";
return var_05;
}
//Function Number: 25
func_2E0C(param_00)
{
var_01 = 8;
if(isdefined(param_00["loadoutPrimary"]) && param_00["loadoutPrimary"] == "none")
{
var_01 = var_01 + 1;
}
if(isdefined(param_00["loadoutSecondary"]) && param_00["loadoutSecondary"] == "none")
{
var_01 = var_01 + 1;
}
if(isdefined(param_00["loadoutPowerPrimary"]) && param_00["loadoutPowerPrimary"] == "none")
{
var_01 = var_01 + 1;
}
if(isdefined(param_00["loadoutPowerSecondary"]) && param_00["loadoutPowerSecondary"] == "none")
{
var_01 = var_01 + 1;
}
return var_01;
}
//Function Number: 26
func_2E13(param_00,param_01,param_02,param_03)
{
var_04 = 1;
switch(param_02)
{
case "loadoutPrimary":
var_04 = func_2E0A("weapon",param_03);
break;
case "loadoutPowerSecondary":
case "loadoutPowerPrimary":
var_04 = func_2E0A("equipment",param_03);
break;
case "loadoutPrimaryAttachment":
var_04 = func_2EC2(param_01["loadoutPrimary"],param_03,"none");
break;
case "loadoutPrimaryAttachment2":
var_04 = func_2EC2(param_01["loadoutPrimary"],param_01["loadoutPrimaryAttachment"],param_03);
break;
case "loadoutPrimaryAttachment3":
var_04 = func_2EC2(param_01["loadoutPrimary"],param_01["loadoutPrimaryAttachment"],param_01["loadoutPrimaryAttachment2"],param_03);
break;
case "loadoutPrimaryReticle":
var_04 = func_2EC1("loadoutPrimary",param_01,param_03);
break;
case "loadoutPrimaryCamo":
var_04 = !isdefined(self.var_2EE6) || param_03 == self.var_2EE6;
break;
case "loadoutSecondary":
var_04 = param_03 != param_01["loadoutPrimary"];
var_04 = var_04 && func_2E0A("weapon",param_03);
break;
case "loadoutSecondaryAttachment":
var_04 = func_2EC2(param_01["loadoutSecondary"],param_03,"none");
break;
case "loadoutSecondaryAttachment2":
var_04 = func_2EC2(param_01["loadoutSecondary"],param_01["loadoutSecondaryAttachment"],param_03);
break;
case "loadoutSecondaryAttachment3":
var_04 = func_2EC2(param_01["loadoutSecondary"],param_01["loadoutSecondaryAttachment"],param_01["loadoutSecondaryAttachment2"],param_03);
break;
case "loadoutSecondaryReticle":
var_04 = func_2EC1("loadoutSecondary",param_01,param_03);
break;
case "loadoutSecondaryCamo":
var_04 = !isdefined(self.var_2EE6) || param_03 == self.var_2EE6;
break;
case "loadoutStreak3":
case "loadoutStreak2":
case "loadoutStreak1":
var_04 = scripts\mp\bots\_bots_killstreaks::func_2DEE(param_03,"bots",undefined,param_01["loadoutStreakType"]);
var_04 = var_04 && func_2E0A("killstreak",param_03,param_01["loadoutStreakType"]);
break;
case "loadoutPerk12":
case "loadoutPerk11":
case "loadoutPerk10":
case "loadoutPerk9":
case "loadoutPerk8":
case "loadoutPerk7":
case "loadoutPerk6":
case "loadoutPerk5":
case "loadoutPerk4":
case "loadoutPerk3":
case "loadoutPerk2":
case "loadoutPerk1":
var_04 = func_2EC0(param_03,param_02,param_01,1,12,func_2E0C(param_01));
break;
case "loadoutPerk15":
case "loadoutPerk14":
case "loadoutPerk13":
if(param_01["loadoutStreakType"] != "streaktype_specialist")
{
var_04 = 0;
}
else
{
var_04 = func_2EC0(param_03,param_02,param_01,-1,-1);
}
break;
case "loadoutPerk23":
case "loadoutPerk22":
case "loadoutPerk21":
case "loadoutPerk20":
case "loadoutPerk19":
case "loadoutPerk18":
case "loadoutPerk17":
case "loadoutPerk16":
if(param_01["loadoutStreakType"] != "streaktype_specialist")
{
var_04 = 0;
}
else
{
var_04 = func_2EC0(param_03,param_02,param_01,16,23,8);
}
break;
}
return var_04;
}
//Function Number: 27
func_2E02(param_00,param_01,param_02,param_03,param_04)
{
var_05 = "none";
var_06 = undefined;
var_07 = 0;
if(scripts\common\utility::func_2286(param_00,"specialty_null"))
{
var_05 = "specialty_null";
}
foreach(var_09 in param_00)
{
var_0A = undefined;
if(getsubstr(var_09,0,9) == "template_")
{
var_0A = var_09;
var_0B = level.var_2EE8[var_09][param_03];
var_09 = func_2E02(strtok(var_0B,"| "),param_01,param_02,param_03,1);
if(isdefined(var_0A) && isdefined(self.var_3F29[var_0A]))
{
return var_09;
}
}
if(var_09 == "attachmenttable")
{
return func_2DFE(param_01,param_02,param_03,self.var_CA79,self.var_54CF);
}
if(var_09 == "weap_statstable")
{
return func_2E03(param_01,param_02,param_03,self.var_2ED8,self.var_CA79,self.var_54CF);
}
if(var_09 == "camotable")
{
return func_2DFF(param_01,param_02,param_03,self.var_CA79,self.var_54CF);
}
if(getsubstr(var_09,0,5) == "class" && int(getsubstr(var_09,5,6)) > 0)
{
var_09 = func_2E00(var_09,param_01,param_02,param_03,self.var_CA79,self.var_54CF);
}
if(isdefined(level.var_2E3F) && getsubstr(var_09,0,10) == "perktable_")
{
return func_2E01(var_09,param_01,param_02,param_03,self.var_CA79,self.var_54CF);
}
if(func_2E13(param_01,param_02,param_03,var_09))
{
var_07 = var_07 + 1;
if(randomfloat(1) <= 1 / var_07)
{
var_05 = var_09;
var_06 = var_0A;
}
}
}
if(isdefined(var_06))
{
self.var_3F29[var_06] = 1;
}
return var_05;
}
//Function Number: 28
func_2E04(param_00)
{
self.var_3F29 = [];
foreach(var_06, var_02 in param_00)
{
var_03 = strtok(var_02,"| ");
var_04 = func_2E02(var_03,var_02,param_00,var_06);
param_00[var_06] = var_04;
}
return param_00;
}
//Function Number: 29
func_2E09()
{
var_00 = "regular";
var_00 = self botgetdifficulty();
if(var_00 == "default")
{
scripts\mp\bots\_bots_util::func_2E81("default");
var_00 = self botgetdifficulty();
}
return var_00;
}
//Function Number: 30
func_2E08()
{
if(!isdefined(self.var_2ED8))
{
var_00 = self method_8035();
var_01 = level.var_2ED9[var_00];
var_02 = randomint(var_01.size);
self.var_2ED8 = var_01[var_02];
}
return self.var_2ED8;
}
//Function Number: 31
func_2E05()
{
while(!isdefined(level.var_2E14))
{
wait(0.05);
}
while(!isdefined(self.var_CA79))
{
wait(0.05);
}
var_00 = [];
var_01 = func_2E09();
self.var_54CF = var_01;
var_02 = self method_8035();
var_03 = func_2E08();
if(isdefined(self.var_2EE3))
{
var_04 = self.var_2EE4 == var_01;
var_05 = self.var_2EE5 == var_02;
if(var_04 && var_05 && !isdefined(self.var_8BE2) || self.var_8BE2 && !isdefined(self.var_E293))
{
return self.var_2EE3;
}
}
var_00 = func_2E0D(var_03,var_02,var_01);
var_00 = func_2E04(var_00);
if(isdefined(level.var_2D9E["gametype_loadout_modify"]))
{
var_00 = self [[ level.var_2D9E["gametype_loadout_modify"] ]](var_00);
}
if(var_00["loadoutPrimary"] == "none")
{
self.var_2D6F = undefined;
var_00["loadoutPrimary"] = func_2DFD(var_00);
var_00["loadoutPrimaryCamo"] = "none";
var_00["loadoutPrimaryAttachment"] = "none";
var_00["loadoutPrimaryAttachment2"] = "none";
var_00["loadoutPrimaryAttachment3"] = "none";
var_00["loadoutPrimaryReticle"] = "none";
if(isdefined(self.var_2D6F))
{
if(self.var_2D6F == "weapon")
{
func_2E48(var_00["loadoutPrimary"]);
}
else
{
scripts\mp\bots\_bots_util::func_2E83(self.var_2D6F);
}
var_02 = self.var_CA79;
self.var_2D6F = undefined;
}
}
self.var_2EE3 = var_00;
self.var_2EE4 = var_01;
self.var_2EE5 = var_02;
if(isdefined(var_00["loadoutPrimaryCamo"]) && var_00["loadoutPrimaryCamo"] != "none")
{
self.var_2EE6 = var_00["loadoutPrimaryCamo"];
}
if(isdefined(self.var_E293))
{
if(isdefined(level.var_2E66) && func_2E0A("weapon",level.var_2E66))
{
var_00["loadoutSecondary"] = level.var_2E66;
var_00["loadoutSecondaryAttachment"] = "none";
var_00["loadoutSecondaryAttachment2"] = "none";
self.var_2EE3 = undefined;
}
self.var_E293 = undefined;
}
var_00 = func_2E0F(var_00);
if(scripts\mp\_utility::func_2DE2())
{
if(scripts\common\utility::func_2286(self.pers["loadoutPerks"],"specialty_twoprimaries"))
{
var_06 = func_2E0D("cqb",var_01);
var_00["loadoutSecondary"] = var_06["loadoutPrimary"];
var_00["loadoutSecondaryAttachment"] = var_06["loadoutPrimaryAttachment"];
var_00["loadoutSecondaryAttachment2"] = var_06["loadoutPrimaryAttachment2"];
var_00 = func_2E04(var_00);
var_00 = func_2E0F(var_00);
}
if(scripts\common\utility::func_2286(self.pers["loadoutPerks"],"specialty_extra_attachment"))
{
var_07 = func_2E0D(var_02,var_01);
var_00["loadoutPrimaryAttachment3"] = var_07["loadoutPrimaryAttachment2"];
if(scripts\common\utility::func_2286(self.pers["loadoutPerks"],"specialty_twoprimaries"))
{
var_00["loadoutSecondaryAttachment2"] = var_07["loadoutPrimaryAttachment2"];
}
else
{
var_00["loadoutSecondaryAttachment2"] = var_07["loadoutSecondaryAttachment2"];
}
var_00 = func_2E04(var_00);
var_00 = func_2E0F(var_00);
}
else
{
var_00["loadoutSecondaryAttachment2"] = "none";
if(!func_2EC1("loadoutSecondary",var_00,var_00["loadoutSecondaryReticle"]))
{
var_00["loadoutSecondaryReticle"] = "none";
}
}
}
return var_00;
}
//Function Number: 32
func_2E0F(param_00)
{
self.pers["loadoutPerks"] = [];
self.pers["specialistBonusStreaks"] = [];
self.pers["specialistStreaks"] = [];
self.pers["specialistStreakKills"] = [];
var_01 = 0;
var_02 = isdefined(param_00["loadoutStreakType"]) && param_00["loadoutStreakType"] == "streaktype_specialist";
if(var_02)
{
param_00["loadoutStreak1"] = "none";
param_00["loadoutStreak2"] = "none";
param_00["loadoutStreak3"] = "none";
}
foreach(var_08, var_04 in param_00)
{
if(var_04 == "specialty_null" || var_04 == "none")
{
continue;
}
if(getsubstr(var_08,0,11) == "loadoutPerk")
{
var_05 = int(getsubstr(var_08,11));
if(!var_02 && var_05 > 12)
{
continue;
}
var_06 = scripts\mp\_utility::func_7DF6(var_04);
if(var_05 <= 12)
{
self.pers["loadoutPerks"][self.pers["loadoutPerks"].size] = var_06;
}
else if(var_05 <= 15)
{
param_00["loadoutStreak" + var_01 + 1] = var_06 + "_ks";
self.pers["specialistStreaks"][self.pers["specialistStreaks"].size] = var_06 + "_ks";
var_07 = 0;
if(var_01 > 0)
{
var_07 = self.pers["specialistStreakKills"][self.pers["specialistStreakKills"].size - 1];
}
self.pers["specialistStreakKills"][self.pers["specialistStreakKills"].size] = var_07 + func_2E3E(var_06) + 2;
var_01++;
}
else
{
self.pers["specialistBonusStreaks"][self.pers["specialistBonusStreaks"].size] = var_06;
}
}
}
if(var_02 && !isdefined(self.pers["specialistStreakKills"][0]))
{
self.pers["specialistStreakKills"][0] = 0;
self.pers["specialistStreaks"][0] = "specialty_null";
}
if(var_02 && !isdefined(self.pers["specialistStreakKills"][1]))
{
self.pers["specialistStreakKills"][1] = self.pers["specialistStreakKills"][0];
self.pers["specialistStreaks"][1] = "specialty_null";
}
if(var_02 && !isdefined(self.pers["specialistStreakKills"][2]))
{
self.pers["specialistStreakKills"][2] = self.pers["specialistStreakKills"][1];
self.pers["specialistStreaks"][2] = "specialty_null";
}
return param_00;
}
//Function Number: 33
func_2E89()
{
var_00 = func_2E08();
var_01 = self method_8035();
var_02 = func_2E09();
var_03 = func_2E0E(var_00,var_01,var_02,0);
if(isdefined(var_03) && isdefined(var_03.var_AE93) && var_03.var_AE93.size > 0)
{
self.var_4009 = ::func_2E05;
return 1;
}
var_04 = getsubstr(self.name,0,self.name.size - 10);
self.var_4009 = undefined;
return 0;
}
//Function Number: 34
func_2E9C(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(isdefined(param_06))
{
return param_00 getplayerdata("privateloadouts","squadMembers","loadouts",param_02,param_03,param_04,param_05,param_06);
}
if(isdefined(param_05))
{
return param_00 getplayerdata("privateloadouts","squadMembers","loadouts",param_02,param_03,param_04,param_05);
}
if(isdefined(param_04))
{
return param_00 getplayerdata("privateloadouts","squadMembers","loadouts",param_02,param_03,param_04);
}
return param_00 getplayerdata("privateloadouts","squadMembers","loadouts",param_02,param_03);
}
//Function Number: 35
func_2E9D(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(isdefined(param_06))
{
return param_00 getplayerdata("rankedloadouts","squadMembers","loadouts",param_02,param_03,param_04,param_05,param_06);
}
if(isdefined(param_05))
{
return param_00 getplayerdata("rankedloadouts","squadMembers","loadouts",param_02,param_03,param_04,param_05);
}
if(isdefined(param_04))
{
return param_00 getplayerdata("rankedloadouts","squadMembers","loadouts",param_02,param_03,param_04);
}
return param_00 getplayerdata("rankedloadouts","squadMembers","loadouts",param_02,param_03);
}
//Function Number: 36
func_2E9B(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(isdefined(param_06))
{
return function_0096("squadMembers","loadouts",param_02,param_03,param_04,param_05,param_06);
}
if(isdefined(param_05))
{
return function_0096("squadMembers","loadouts",param_02,param_03,param_04,param_05);
}
if(isdefined(param_04))
{
return function_0096("squadMembers","loadouts",param_02,param_03,param_04);
}
return function_0096("squadMembers","loadouts",param_02,param_03);
}
//Function Number: 37
func_2E9A(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = ::func_2E9D;
if(getdvar("squad_match") == "1" && self.team == "axis")
{
var_07 = ::func_2E9B;
}
else if(!scripts\mp\_utility::func_B3EC())
{
var_07 = ::func_2E9C;
}
return self [[ var_07 ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06);
}
//Function Number: 38
func_2E9E(param_00,param_01,param_02)
{
if(getdvar("squad_match") == "1" && self.team == "axis")
{
return function_0096("squadMembers",param_01,param_02);
}
if(!scripts\mp\_utility::func_B3EC())
{
return param_00 getplayerdata("privateloadouts","squadMembers",param_02);
}
return param_00 getplayerdata("rankedloadouts","squadMembers",param_02);
}
//Function Number: 39
func_2E06(param_00,param_01,param_02,param_03)
{
param_00["loadoutPrimary"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",0,"weapon");
param_00["loadoutPrimaryAttachment"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",0,"attachment",0);
param_00["loadoutPrimaryAttachment2"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",0,"attachment",1);
param_00["loadoutPrimaryAttachment3"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",0,"attachment",2);
param_00["loadoutPrimaryCamo"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",0,"camo");
param_00["loadoutPrimaryReticle"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",0,"reticle");
param_00["loadoutSecondary"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",1,"weapon");
param_00["loadoutSecondaryAttachment"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",1,"attachment",0);
param_00["loadoutSecondaryAttachment2"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",1,"attachment",1);
param_00["loadoutSecondaryCamo"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",1,"camo");
param_00["loadoutSecondaryReticle"] = func_2E9A(param_01,param_02,param_03,"weaponSetups",1,"reticle");
param_00["loadoutPowerPrimary"] = func_2E9A(param_01,param_02,param_03,"perks",0);
param_00["loadoutPowerSecondary"] = func_2E9A(param_01,param_02,param_03,"perks",1);
param_00["loadoutStreak1"] = "none";
param_00["loadoutStreak2"] = "none";
param_00["loadoutStreak3"] = "none";
var_04 = func_2E9A(param_01,param_02,param_03,"perks",5);
if(isdefined(var_04))
{
param_00["loadoutStreakType"] = var_04;
if(var_04 == "streaktype_assault")
{
param_00["loadoutStreak1"] = func_2E9A(param_01,param_02,param_03,"assaultStreaks",0);
param_00["loadoutStreak2"] = func_2E9A(param_01,param_02,param_03,"assaultStreaks",1);
param_00["loadoutStreak3"] = func_2E9A(param_01,param_02,param_03,"assaultStreaks",2);
}
else if(var_04 == "streaktype_support")
{
param_00["loadoutStreak1"] = func_2E9A(param_01,param_02,param_03,"supportStreaks",0);
param_00["loadoutStreak2"] = func_2E9A(param_01,param_02,param_03,"supportStreaks",1);
param_00["loadoutStreak3"] = func_2E9A(param_01,param_02,param_03,"supportStreaks",2);
}
else if(var_04 == "streaktype_specialist")
{
param_00["loadoutPerk13"] = func_2E9A(param_01,param_02,param_03,"specialistStreaks",0);
param_00["loadoutPerk14"] = func_2E9A(param_01,param_02,param_03,"specialistStreaks",1);
param_00["loadoutPerk15"] = func_2E9A(param_01,param_02,param_03,"specialistStreaks",2);
}
}
param_00["loadoutCharacterType"] = func_2E9A(param_01,param_02,param_03,"type");
func_2E48(param_00["loadoutPrimary"]);
self.var_240 = func_2E9E(param_01,param_02,"patch");
self.var_23F = func_2E9E(param_01,param_02,"background");
return param_00;
}
//Function Number: 40
func_2E0B(param_00,param_01,param_02)
{
return param_00 + "_" + param_01 + "_" + param_02;
}