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

393 lines
7.0 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\_weaponrank.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 25
* Decompile Time: 962 ms
* Timestamp: 10/27/2023 12:22:16 AM
*******************************************************************/
//Function Number: 1
init()
{
func_AEB1();
var_00 = getdvarint("online_mp_weapon_xpscale",1);
func_17CB(var_00,"online_mp_weapon_xpscale");
level thread func_C56E();
}
//Function Number: 2
func_C56E()
{
for(;;)
{
level waittill("connected",var_00);
if(!isai(var_00))
{
if(var_00 scripts\mp\_utility::func_DCD5())
{
var_01 = getdvarint("online_mp_party_weapon_xpscale");
var_02 = var_00 method_85BE() > 1;
if(var_02)
{
var_00 func_186A(var_01,"online_mp_party_weapon_xpscale");
}
}
}
}
}
//Function Number: 3
func_AEB1()
{
level.var_13CBD = spawnstruct();
level.var_13CBD.var_DCD4 = [];
var_00 = 0;
for(;;)
{
var_01 = int(tablelookuprownum("mp/weaponRankTable.csv",0,var_00));
if(!isdefined(var_01) || var_01 < 0)
{
break;
}
var_02 = spawnstruct();
level.var_13CBD.var_DCD4[var_00] = var_02;
var_02.var_B7CF = int(tablelookupbyrow("mp/weaponRankTable.csv",var_00,1));
var_02.var_13E29 = int(tablelookupbyrow("mp/weaponRankTable.csv",var_00,2));
var_02.var_B4D6 = int(tablelookupbyrow("mp/weaponRankTable.csv",var_00,3));
var_00++;
}
level.var_13CBD.var_B4C0 = var_00 - 1;
level.var_13CBD.var_B4D4 = [];
var_03 = 1;
for(;;)
{
var_01 = int(tablelookuprownum("mp/statstable.csv",0,var_03));
if(!isdefined(var_01) || var_01 < 0)
{
break;
}
var_04 = tablelookupbyrow("mp/statstable.csv",var_01,4);
var_05 = tablelookupbyrow("mp/statstable.csv",var_01,42);
if(!isdefined(var_04) || var_04 == "" || !isdefined(var_05) || var_05 == "")
{
}
else
{
var_05 = int(var_05);
level.var_13CBD.var_B4D4[var_04] = var_05;
}
var_03++;
}
}
//Function Number: 4
func_8085(param_00)
{
var_01 = func_8086(param_00);
var_02 = func_822C(var_01);
return var_02;
}
//Function Number: 5
func_8086(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = "all";
}
switch(param_01)
{
case "mp":
var_02 = self getplayerdata("common","sharedProgression","weaponLevel",param_00,"mpXP");
return var_02;
case "cp":
var_03 = self getplayerdata("common","sharedProgression","weaponLevel",param_01,"cpXP");
return var_03;
case "all":
var_02 = self getplayerdata("common","sharedProgression","weaponLevel",var_02,"mpXP");
var_03 = self getplayerdata("common","sharedProgression","weaponLevel",param_01,"cpXP");
return var_02 + var_03;
}
}
//Function Number: 6
func_9EFF(param_00)
{
var_01 = func_8086(param_00);
var_02 = func_8227(param_00);
return var_01 >= var_02;
}
//Function Number: 7
func_13CCA(param_00)
{
if(!self isitemunlocked("cac","feature"))
{
return 0;
}
var_01 = scripts\mp\_utility::func_8234(param_00);
return func_13C97(var_01);
}
//Function Number: 8
func_13C97(param_00)
{
if(!isdefined(level.var_13CBD.var_B4D4[param_00]))
{
return 0;
}
return level.var_13CBD.var_B4D4[param_00] > 0;
}
//Function Number: 9
func_8227(param_00)
{
var_01 = func_7FA5(param_00);
return func_822D(var_01);
}
//Function Number: 10
func_822C(param_00)
{
if(param_00 == 0)
{
return 0;
}
for(var_01 = func_7FA4() - 1;var_01 >= 0;var_01--)
{
if(param_00 >= func_822E(var_01))
{
return var_01;
}
}
return var_01;
}
//Function Number: 11
func_7FA6(param_00)
{
var_01 = scripts\mp\_utility::func_8234(param_00);
return func_7FA5(var_01);
}
//Function Number: 12
func_7FA5(param_00)
{
return level.var_13CBD.var_B4D4[param_00];
}
//Function Number: 13
func_7FA4()
{
return level.var_13CBD.var_B4C0;
}
//Function Number: 14
func_822E(param_00)
{
return level.var_13CBD.var_DCD4[param_00].var_B7CF;
}
//Function Number: 15
func_8230(param_00)
{
return level.var_13CBD.var_DCD4[param_00].var_13E29;
}
//Function Number: 16
func_822D(param_00)
{
return level.var_13CBD.var_DCD4[param_00].var_B4D6;
}
//Function Number: 17
func_8394(param_00,param_01,param_02)
{
if(isai(self) || !isplayer(self) || !isdefined(param_02) || param_02 == 0 || !scripts\mp\_utility::func_DCD5())
{
return;
}
var_03 = scripts\mp\_utility::func_8234(param_00);
if(!self isitemunlocked(var_03,"weapon"))
{
return;
}
if(!func_13C97(var_03))
{
return;
}
var_04 = func_DF69(param_01);
if(var_04 != param_01)
{
param_01 = var_04;
param_02 = scripts\mp\_rank::func_8104(param_01);
}
if(param_02 < 0)
{
return;
}
var_05 = param_02;
param_02 = param_02 * func_8233();
param_02 = int(param_02);
if(param_02 > func_8227(var_03))
{
return;
}
var_06 = func_8086(var_03,"mp");
var_07 = func_8086(var_03,"cp");
var_08 = var_06 + var_07;
var_09 = func_822C(var_08);
var_0A = func_8227(var_03);
var_0B = var_0A - var_07;
var_0C = var_06 + param_02;
if(var_0C > var_0B)
{
var_0C = var_0B;
}
var_0D = var_0C + var_07;
var_0E = func_7FA5(var_03);
var_0F = self getplayerdata("common","sharedProgression","weaponLevel",var_03,"prestige");
var_10 = int(min(func_822C(var_0D),var_0E));
scripts\mp\_analyticslog::func_AFA1(param_00,var_0F,var_10,param_02,param_01);
self setplayerdata("common","sharedProgression","weaponLevel",var_03,"mpXP",var_0C);
var_11 = function_02C4(param_00);
scripts\mp\_matchdata::func_AFDC(var_03,"xp",param_02,var_11);
if(var_09 < var_10)
{
scripts\mp\_hud_message::func_10151("ranked_up_weapon_" + var_03,var_10 + 1);
var_12 = "weapon_rank_up_0_4";
if(var_10 >= 15)
{
var_12 = "weapon_rank_up_15_plus";
}
else if(var_10 >= 10)
{
var_12 = "weapon_rank_up_10_14";
}
else if(var_10 >= 5)
{
var_12 = "weapon_rank_up_5_9";
}
var_13 = scripts\mp\_rank::func_8104(var_12);
scripts\mp\_rank::func_839A(var_12,var_13);
}
}
//Function Number: 18
func_DF69(param_00)
{
switch(param_00)
{
case "kill":
param_00 = "kill_weapon";
break;
case "challenge":
param_00 = "weapon_challenge";
break;
}
return param_00;
}
//Function Number: 19
func_17CB(param_00,param_01)
{
level func_186A(param_00,param_01);
}
//Function Number: 20
func_7EDB()
{
return level func_8232();
}
//Function Number: 21
func_186A(param_00,param_01)
{
if(!isdefined(self.var_13CBE))
{
self.var_13CBE = [];
}
if(isdefined(self.var_13CBE[param_01]))
{
self.var_13CBE[param_01] = max(self.var_13CBE[param_01],param_00);
return;
}
self.var_13CBE[param_01] = param_00;
}
//Function Number: 22
func_8232()
{
if(!isdefined(self.var_13CBE))
{
return 1;
}
var_00 = 1;
foreach(var_02 in self.var_13CBE)
{
if(!isdefined(var_02))
{
continue;
}
var_00 = var_00 * var_02;
}
return var_00;
}
//Function Number: 23
func_E126(param_00)
{
level func_E18D(param_00);
}
//Function Number: 24
func_E18D(param_00)
{
if(!isdefined(self.var_13CBE))
{
return;
}
if(!isdefined(self.var_13CBE[param_00]))
{
return;
}
self.var_DCD7[param_00] = undefined;
}
//Function Number: 25
func_8233()
{
var_00 = func_8232();
var_01 = func_7EDB();
return var_00 * var_01;
}