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

3499 lines
74 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\perks\_weaponpassives.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 202
* Decompile Time: 9519 ms
* Timestamp: 10/27/2023 12:30:37 AM
*******************************************************************/
//Function Number: 1
func_13CB1()
{
level thread func_13B0C();
level._effect["loot_mo_money_kill"] = loadfx("vfx/iw7/_requests/mp/vfx_mo_money_cash_exp");
level._effect["player_plasma_friendly"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
level._effect["player_plasma_enemy"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
level._effect["player_plasma_friendly"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
level._effect["player_plasma_enemy"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
level._effect["player_plasma_screen_stand"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
level._effect["passive_gore"] = loadfx("vfx/iw7/_requests/mp/vfx_meatbag_large.vfx");
level._effect["passive_gore_robot"] = loadfx("vfx/iw7/core/impact/robot/vfx_mp_c6_melee.vfx");
}
//Function Number: 2
func_13B0C()
{
for(;;)
{
level waittill("player_spawned",var_00);
var_00 thread updatenukepassive();
var_00 thread func_13BA6();
}
}
//Function Number: 3
func_13BA6()
{
self endon("death");
self endon("disconnect");
for(;;)
{
var_00 = self getcurrentweapon();
if(isdefined(var_00) && var_00 != "none")
{
setmodeswitchkillweapon(self,var_00);
func_83BA(var_00);
scripts\mp\_weapons::func_12F5D(var_00);
}
scripts\common\utility::waittill_any_3("weapon_change","giveLoadout");
}
}
//Function Number: 4
func_83BA(param_00)
{
func_41CA();
var_01 = scripts\mp\_loot::func_804C(param_00);
if(isdefined(var_01))
{
foreach(var_03 in var_01)
{
func_8391(var_03);
}
}
self notify("weapon_passives_given");
}
//Function Number: 5
func_8391(param_00)
{
scripts\mp\_utility::func_8387(param_00);
self.var_13CB0[self.var_13CB0.size] = param_00;
}
//Function Number: 6
func_41CA()
{
if(isdefined(self.var_13CB0))
{
foreach(var_01 in self.var_13CB0)
{
scripts\mp\_utility::func_E150(var_01);
}
}
self.var_13CB0 = [];
}
//Function Number: 7
func_72FB()
{
self.var_13CB0 = [];
}
//Function Number: 8
func_50A3(param_00)
{
if(!isdefined(self.var_C949))
{
self.var_C949 = [];
}
if(!isdefined(self.var_C949[param_00]))
{
self.var_C949[param_00] = 0;
}
}
//Function Number: 9
func_804E(param_00)
{
func_50A3(param_00);
return self.var_C949[param_00];
}
//Function Number: 10
func_F7D7(param_00,param_01)
{
func_50A3(param_00);
self.var_C949[param_00] = param_01;
}
//Function Number: 11
func_115E9(param_00,param_01)
{
if(level.teambased)
{
return param_00.team == param_01.team;
}
return param_00 == param_01;
}
//Function Number: 12
func_12F62(param_00,param_01)
{
if(param_00 scripts\mp\_utility::_hasperk("passive_backfire"))
{
param_00 thread func_8978(param_00,param_01);
}
if(param_00 scripts\mp\_utility::_hasperk("passive_sonar"))
{
param_00 thread func_89E5(param_00,param_01);
}
}
//Function Number: 13
func_8978(param_00,param_01)
{
if(isdefined(param_00.var_119DF))
{
var_02 = param_00.var_119DF[param_01];
if(isdefined(var_02) && var_02 != param_00)
{
playfx(scripts\common\utility::getfx("seeker_explosion"),param_00.origin);
param_00 dodamage(9999,var_02.origin,var_02,var_02,"MOD_EXPLOSIVE",param_01);
}
}
}
//Function Number: 14
func_12EB2(param_00)
{
var_01 = weaponclipsize(param_00);
self setweaponammoclip(param_00,var_01);
}
//Function Number: 15
func_12F60(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(param_00 scripts\mp\_utility::_hasperk("passive_infinite_ammo"))
{
param_00 thread func_12EB2(param_00 getcurrentweapon());
}
if(param_01 scripts\mp\_utility::_hasperk("passive_minimap_damage") && isdefined(param_00) && !param_00 scripts\mp\_utility::_hasperk("specialty_gpsjammer"))
{
param_01 thread func_89C5(param_01,param_00);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_fire_damage"))
{
param_01 thread func_89A2(param_01,param_00,param_04);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_cold_damage"))
{
param_01 thread func_8986(param_01,param_00,param_04);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_critical_sequential_damage"))
{
param_01 thread func_898A(param_01,param_00,param_04);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_sonic"))
{
param_01 thread func_89E6(param_01,param_00);
}
}
//Function Number: 16
loadoutweapongiven(param_00)
{
var_01 = scripts\mp\_utility::func_8234(param_00);
checkprestigeextraclassicammo(param_00,var_01);
}
//Function Number: 17
checkprestigeextraclassicammo(param_00,param_01)
{
var_02 = param_01 + "_extra_ammo";
if(isdefined(level.prestigeextras[var_02]))
{
if(self isitemunlocked(var_02,"prestigeExtras",1))
{
var_03 = function_0249(param_00);
var_04 = self getweaponammostock(param_00);
var_05 = var_03 - var_04 * 0.5;
self setweaponammostock(param_00,int(min(var_04 + var_05,var_03)));
}
}
}
//Function Number: 18
func_89C5(param_00,param_01)
{
if(isdefined(param_00) && isdefined(param_01))
{
var_02 = scripts\mp\objidpoolmanager::requestminimapid(10);
if(var_02 == -1)
{
return;
}
scripts\mp\objidpoolmanager::minimap_objective_add(var_02,"active",(0,0,0),"cb_compassping_enemy");
scripts\mp\objidpoolmanager::minimap_objective_onentity(var_02,param_01);
scripts\mp\objidpoolmanager::minimap_objective_team(var_02,param_00.team);
var_03 = 3;
param_01 scripts\common\utility::waittill_any_timeout_1(var_03,"damage_begin","death","disconnect");
scripts\mp\objidpoolmanager::returnminimapid(var_02);
}
}
//Function Number: 19
func_89E5(param_00,param_01)
{
if(!scripts\mp\_utility::isstrstart(param_01,"alt"))
{
return;
}
var_02 = self getweaponammoclip(param_01);
function_02A1(param_00.origin,param_00.team,500,500);
}
//Function Number: 20
func_898A(param_00,param_01,param_02)
{
var_03 = param_00 func_804E("passive_critical_sequential_damage");
param_00 func_F7D7("passive_critical_sequential_damage",var_03 + 1);
}
//Function Number: 21
func_8986(param_00,param_01,param_02)
{
var_03 = scripts\common\utility::func_116D7(weaponclass(param_02) == "sniper" || issubstr(param_02,"iw7_longshot"),-0.2,-0.1);
thread passivecolddamagewatchvictim(param_00,param_01,var_03,1.5);
}
//Function Number: 22
passivecolddamagewatchvictim(param_00,param_01,param_02,param_03,param_04)
{
param_01 endon("death");
param_01 endon("disconnect");
param_01 notify("passiveColdDamageWatchVictim");
param_01 endon("passiveColdDamageWatchVictim");
var_05 = param_00 getentitynumber();
var_06 = gettime() + param_03 * 1000;
var_07 = self.passivecolddamage;
if(!isdefined(var_07))
{
var_07 = spawnstruct();
var_07.curspeedmod = 0;
var_07.speedmods = [];
var_07.endtimes = [];
param_01.passivecolddamage = var_07;
}
var_07.speedmods[var_05] = param_02;
var_07.endtimes[var_05] = var_06;
param_01 setscriptablepartstate(scripts\common\utility::func_116D7(scripts\mp\_utility::func_9FB3(param_04),"weaponPassiveColdGLDamage","weaponPassiveColdDamage"),"active");
var_08 = var_07.curspeedmod;
var_09 = var_08;
for(;;)
{
var_0A = gettime();
foreach(var_0C, param_02 in var_07.speedmods)
{
var_06 = var_07.endtimes[var_0C];
if(var_06 < var_0A)
{
var_07.speedmods[var_0C] = undefined;
var_07.endtimes[var_0C] = undefined;
continue;
}
if(param_02 < var_09)
{
var_09 = param_02;
}
}
var_07.curspeedmod = var_09;
if(var_07.curspeedmod != var_08)
{
param_01 scripts\mp\_weapons::func_12ED5();
}
if(var_07.speedmods.size <= 0)
{
break;
}
scripts\common\utility::func_136F7();
}
passivecolddamageresetdata(param_01);
passivecolddamageresetscriptable(param_01);
}
//Function Number: 23
passivecolddamagegetspeedmod(param_00)
{
if(isdefined(param_00.passivecolddamage))
{
return param_00.passivecolddamage.curspeedmod;
}
return 0;
}
//Function Number: 24
passivecolddamageresetscriptable(param_00)
{
param_00 setscriptablepartstate("weaponPassiveColdDamage","neutral");
}
//Function Number: 25
passivecolddamageresetdata(param_00)
{
param_00.passivecolddamage = undefined;
param_00 scripts\mp\_weapons::func_12ED5();
}
//Function Number: 26
cryogl_watchforexplode(param_00)
{
self waittill("explode",var_01);
var_02 = scripts\mp\_utility::func_807C(var_01,256);
foreach(var_04 in var_02)
{
if(var_04 == param_00)
{
continue;
}
if(!isdefined(var_04))
{
continue;
}
if(!scripts\mp\_utility::func_9F19(var_04))
{
continue;
}
if(!lib_0DF8::func_213D(var_04,self))
{
continue;
}
if(var_04 != param_00 && scripts\mp\_utility::func_9E05(param_00.team,var_04))
{
continue;
}
if(var_04 scripts\mp\_utility::_hasperk("specialty_stun_resistance"))
{
continue;
}
if(scripts\mp\_utility::func_9FB3(var_04.var_9F72))
{
continue;
}
var_04 dodamage(1,param_00.origin,param_00,undefined,"MOD_EXPLOSIVE","gltacburst_regen");
thread passivecolddamagewatchvictim(param_00,var_04,-0.2,2.5,1);
}
}
//Function Number: 27
func_89A2(param_00,param_01,param_02)
{
if(isdefined(param_00) && isdefined(param_01))
{
var_03 = param_01 func_804E("passive_fire_damage");
param_01 setscriptablepartstate("burning","active",0);
var_04 = scripts\common\utility::func_116D7(param_01 scripts\mp\_utility::_hasperk("specialty_blastshield"),2,5);
if(var_03 <= 0)
{
param_01 thread func_10D82(param_02,param_00,var_04,0.5,2.5,"passive_fire_damage");
return;
}
param_01 func_F7D7("passive_fire_damage",2.5);
}
}
//Function Number: 28
func_AD69(param_00,param_01)
{
scripts\common\utility::waittill_any_timeout_1(5,"death","disconnect",param_01);
func_11067(param_01);
}
//Function Number: 29
func_AD68(param_00,param_01)
{
scripts\common\utility::waittill_any_timeout_1(5,"disconnect");
param_00 func_11067(param_01);
}
//Function Number: 30
func_10D9E(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = function_01E1(scripts\common\utility::getfx(param_06),self geteye(),self);
foreach(var_09 in level.players)
{
if(var_09 == self)
{
triggerfx(var_07);
continue;
}
if(isdefined(param_03) && isdefined(param_04))
{
var_0A = scripts\common\utility::func_116D7(func_115E9(self,param_01),param_03,param_04);
playfxontagforclients(scripts\common\utility::getfx(var_0A),self,param_05,var_09);
}
}
self waittill(param_02);
func_11073(param_03,param_04,param_05,var_07);
}
//Function Number: 31
func_11073(param_00,param_01,param_02,param_03)
{
if(isdefined(param_00) && isdefined(param_01))
{
stopfxontag(scripts\common\utility::getfx(param_00),self,param_02);
stopfxontag(scripts\common\utility::getfx(param_01),self,param_02);
}
param_03 delete();
}
//Function Number: 32
func_10D82(param_00,param_01,param_02,param_03,param_04,param_05)
{
func_F7D7(param_05,param_04);
thread func_AD69(param_01,param_05);
param_01 thread func_AD68(self,param_05);
var_06 = "MOD_UNKNOWN";
if(param_03 > param_04)
{
return;
}
if(self.health <= 0)
{
func_11067(param_05);
}
var_07 = param_02;
if(self.health <= var_07)
{
self dodamage(param_02,self.origin,param_01,undefined,var_06,param_00);
}
while(func_804E(param_05) > 0)
{
if(self.health <= 0)
{
func_11067(param_05);
}
if(param_02 > 0)
{
self dodamage(param_02,self.origin,param_01,undefined,var_06,param_00);
}
func_F7D7(param_05,func_804E(param_05) - param_03);
wait(param_03);
}
func_11067(param_05);
}
//Function Number: 33
func_11067(param_00)
{
func_F7D7(param_00,0);
self setscriptablepartstate("burning","neutral",0);
self notify(param_00);
}
//Function Number: 34
func_12F61(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
if(!scripts\mp\_utility::playersareenemies(param_01,param_02))
{
return;
}
if(param_01 scripts\mp\_utility::_hasperk("passive_berserk") || param_01 scripts\mp\_utility::_hasperk("passive_berserk_silent"))
{
param_01 thread quadfeederon();
}
if(param_01 scripts\mp\_utility::_hasperk("passive_headshot_ammo"))
{
param_01 thread func_89AE(param_05,param_01,param_02,param_04,param_06);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_last_shots_ammo") || param_01 scripts\mp\_utility::_hasperk("passive_last_shots_ammo_kbs"))
{
param_01 thread func_89C2(param_05,param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_extra_xp"))
{
param_01 thread func_89A0(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_nuke"))
{
param_01 thread func_89CC(param_01,param_02,param_05);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_streak_ammo"))
{
param_01 thread func_89EB(param_01,param_05);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_move_speed_on_kill"))
{
param_01 thread func_89C8(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_cooldown_on_kill"))
{
param_01 thread func_8988(param_01);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_health_regen_on_kill"))
{
param_01 thread func_89B1(param_01);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_refresh"))
{
param_01 thread func_89DB(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_fire_kill"))
{
param_01 thread func_89A3(param_01,param_02,param_05);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_random_perks"))
{
param_01 thread func_89D9(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_mini_specialist"))
{
param_01 thread handlespecialistpassive(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_headshot_super"))
{
param_01 thread func_89B0(param_05,param_01,param_02,param_04,param_06);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_hitman"))
{
param_01 thread func_89B3(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_scorestreak_pack"))
{
param_01 thread func_89E0(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_sonic"))
{
param_01 thread func_89E7(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_headshot"))
{
param_01 thread func_89AF(param_05,param_01,param_02,param_04,param_06,param_07);
}
if((param_01 scripts\mp\_utility::_hasperk("passive_meleekill") || param_01 scripts\mp\_utility::_hasperk("passive_meleekill_silent")) && param_04 == "MOD_MELEE")
{
param_01 thread func_89AB(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_gore"))
{
param_01 thread func_89AB(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_visor_detonation"))
{
param_01 thread handlevisordetonationpassive(param_05,param_01,param_02,param_04,param_06);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_railgun_overload") || param_01 scripts\mp\_utility::_hasperk("passive_overkill"))
{
param_01 thread handleoverloadpassive(param_05,param_01,param_02,param_04,param_06,param_03);
}
if(ismark2weapon(param_05))
{
param_01 thread handlemark2xpbonus(param_01,param_05);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_double_kill_reload"))
{
param_01 thread handledoublekillreload(param_05);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_jump_super"))
{
thread handlejumpsuperonkillpassive(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_melee_super"))
{
thread handlemeleesuperonkillpassive(param_01,param_02,param_04);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_double_kill_super"))
{
thread handledoublekillsuperpassive(param_01,param_02);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_melee_cone_expl"))
{
thread handlemeleeconeexplodeonkillpassive(param_01,param_02,param_05,param_04);
}
if(param_01 scripts\mp\_utility::_hasperk("passive_leader_kill_score"))
{
thread handleleaderkillscorepassive(param_01,param_02,param_05);
}
thread updatemodeswitchweaponkills(param_01,param_02,param_05);
}
//Function Number: 35
func_F79A()
{
thread func_13AD0();
}
//Function Number: 36
func_12CF0()
{
self notify("remove_minimap_decoys_passive");
}
//Function Number: 37
func_13AD0()
{
self endon("death");
self endon("disconnect");
self endon("remove_minimap_decoys_passive");
for(;;)
{
self waittill("begin_firing");
thread func_49ED();
}
}
//Function Number: 38
func_49ED()
{
self notify("stop_minimap_decoys");
self endon("death");
self endon("disconnect");
self endon("stop_minimap_decoys");
childthread func_B7B0();
for(;;)
{
thread func_49EC(self.origin,scripts\mp\_utility::getotherteam(self.team));
wait(0.25);
}
}
//Function Number: 39
func_B7B0()
{
self endon("death");
self endon("disconnect");
scripts\common\utility::func_137B4("end_firing",1);
self notify("stop_minimap_decoys");
}
//Function Number: 40
func_49EC(param_00,param_01)
{
wait(randomfloatrange(0,0.1));
if(!isdefined(self) || !scripts\mp\_utility::func_9F19(self))
{
return;
}
var_02 = scripts\mp\objidpoolmanager::requestminimapid(10);
if(var_02 == -1)
{
return;
}
var_03 = (randomintrange(-150,150),randomintrange(-150,150),randomintrange(-150,150));
scripts\mp\objidpoolmanager::minimap_objective_add(var_02,"active",self.origin + var_03,"cb_compassping_enemy");
scripts\mp\objidpoolmanager::minimap_objective_team(var_02,param_01);
var_04 = randomfloatrange(0.4,0.65);
scripts\common\utility::waittill_any_timeout_1(var_04,"death","disconnect","stop_minimap_decoys");
scripts\mp\objidpoolmanager::returnminimapid(var_02);
}
//Function Number: 41
func_F73F()
{
}
//Function Number: 42
func_12CCE()
{
}
//Function Number: 43
func_89AE(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_01) || !isdefined(param_00) || !param_01 scripts\mp\_utility::_hasperk("passive_headshot_ammo"))
{
return;
}
if(!scripts\mp\_utility::func_9E27(param_00,param_04,param_03,param_01))
{
return;
}
param_01 func_3E2F("passive_headshot_ammo");
var_05 = weaponclipsize(param_00);
var_06 = var_05 * 1;
var_07 = param_01 getweaponammoclip(param_00);
var_08 = min(var_07 + var_06,var_05);
param_01 setweaponammoclip(param_00,int(var_08));
if(param_01 method_819C())
{
var_07 = param_01 getweaponammoclip(param_00,"left");
var_08 = min(var_07 + var_06,var_05);
param_01 setweaponammoclip(param_00,int(var_08),"left");
}
}
//Function Number: 44
handlevisordetonationpassive(param_00,param_01,param_02,param_03,param_04)
{
param_01 endon("joined_team");
param_01 endon("joined_spectator");
param_01 endon("disconnect");
level endon("game_ended");
if(!isdefined(param_01) || !isdefined(param_00) || !param_01 scripts\mp\_utility::_hasperk("passive_visor_detonation"))
{
return;
}
if(!scripts\mp\_utility::func_9E27(param_00,param_04,param_03,param_01))
{
return;
}
var_05 = param_02 gettagorigin("tag_eye");
var_06 = param_02.angles;
wait(0.1);
thread activatevisordetonationpassive(self,param_00,var_05,var_06);
}
//Function Number: 45
activatevisordetonationpassive(param_00,param_01,param_02,param_03)
{
var_04 = spawn("script_model",param_02);
var_04.angles = param_03;
var_04.var_13C2E = param_01;
var_04 method_831F(param_00);
var_04 method_82DD(param_00);
var_04 setmodel("passive_mp_visorDetonation");
wait(1);
var_04 delete();
}
//Function Number: 46
handleoverloadpassive(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_01 endon("joined_team");
param_01 endon("joined_spectator");
param_01 endon("disconnect");
level endon("game_ended");
if(!isdefined(param_01) || !isdefined(param_00) || !param_01 scripts\mp\_utility::_hasperk("passive_railgun_overload") && !param_01 scripts\mp\_utility::_hasperk("passive_overkill"))
{
return;
}
if(!isdefined(param_02.hitbychargedshot) && param_02.hitbychargedshot == param_01)
{
return;
}
var_06 = param_02 gettagorigin("tag_eye");
var_07 = param_02.angles;
wait(0.1);
param_02.hitbychargedshot = undefined;
thread activateoverloadpassive(self,param_00,var_06,var_07);
param_01 thread func_89AB(param_01,param_02);
}
//Function Number: 47
activateoverloadpassive(param_00,param_01,param_02,param_03)
{
var_04 = spawn("script_model",param_02);
var_04.angles = param_03;
var_04.var_13C2E = param_01;
var_04 method_831F(param_00);
var_04 method_82DD(param_00);
var_04 setmodel("passive_mp_visorDetonation");
wait(1);
var_04 delete();
}
//Function Number: 48
ismark2weapon(param_00)
{
var_01 = function_02C4(param_00);
return isdefined(var_01) && var_01 >= 32;
}
//Function Number: 49
handlemark2xpbonus(param_00,param_01)
{
var_02 = getdvarfloat("mk2_bonus",0.15);
var_03 = scripts\mp\_utility::func_8225(param_01);
var_04 = var_03 + "_mk_ii_bonus";
if(isdefined(level.prestigeextras[var_04]))
{
if(self isitemunlocked(var_04,"prestigeExtras",1))
{
var_02 = getdvarfloat("mk2_extra_bonus",0.3);
}
}
var_05 = scripts\mp\_rank::func_8104("kill");
param_00 scripts\mp\_rank::func_839A("kill",int(var_05 * var_02));
}
//Function Number: 50
func_11751(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = "";
}
var_02 = 0;
var_03 = scripts\mp\_passives::func_8049(param_00);
var_04 = "";
if(isdefined(var_03))
{
var_04 = var_03 + param_01;
var_02 = scripts\mp\_hud_message::func_11750(var_04);
}
if(var_02)
{
}
}
//Function Number: 51
func_3E2F(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = "";
}
var_02 = scripts\mp\_passives::func_8049(param_00);
if(isdefined(var_02))
{
if(isendstr(param_01,"_camo"))
{
var_03 = scripts\mp\_utility::strip_suffix(param_01,"_camo");
param_01 = var_03;
}
scripts\mp\_hud_message::func_1013D(var_02 + param_01);
}
}
//Function Number: 52
func_F82F()
{
thread func_12F0F();
}
//Function Number: 53
func_12D27()
{
self notify("kill_scrambler_passive");
func_4114();
}
//Function Number: 54
func_12F0F()
{
self endon("death");
self endon("disconnect");
self endon("kill_scrambler_passive");
for(;;)
{
self waittill("killed_enemy",var_00,var_01,var_02);
self notify("start_scrambler_passive");
self method_81F4();
thread func_6CE3();
}
}
//Function Number: 55
func_6CE3()
{
self endon("death");
self endon("disconnect");
self endon("kill_scrambler_passive");
self endon("start_scrambler_passive");
wait(1);
func_4114();
}
//Function Number: 56
func_4114()
{
self method_807C();
}
//Function Number: 57
func_F77D()
{
var_00 = self getcurrentweapon();
if(isdefined(var_00))
{
var_01 = weaponclipsize(var_00);
var_02 = func_7F60(var_01);
self setclientomnvar("ui_last_shots_clip_size",var_02);
}
}
//Function Number: 58
func_12CE2()
{
self setclientomnvar("ui_last_shots_clip_size",-1);
}
//Function Number: 59
func_89C2(param_00,param_01,param_02)
{
if(!isdefined(param_01) || !isdefined(param_00) || !param_01 scripts\mp\_utility::_hasperk("passive_last_shots_ammo") && !param_01 scripts\mp\_utility::_hasperk("passive_last_shots_ammo_kbs"))
{
return;
}
var_03 = weaponclipsize(param_00);
var_04 = func_7F60(var_03);
var_05 = 0;
var_05 = func_3E60(param_01,param_00,"right",var_03,var_04);
if(param_01 method_819C())
{
var_05 = func_3E60(param_01,param_00,"left",var_03,var_04) || var_05;
}
if(var_05)
{
param_01 scripts\mp\_hud_message::func_1013D("scavenger");
}
}
//Function Number: 60
func_3E60(param_00,param_01,param_02,param_03,param_04)
{
var_05 = param_00 getweaponammoclip(param_01,param_02);
if(var_05 >= param_04)
{
return 0;
}
var_06 = param_03 * 1;
var_07 = min(var_05 + var_06,param_03);
param_00 setweaponammoclip(param_01,int(var_07),param_02);
return 1;
}
//Function Number: 61
func_7F60(param_00)
{
return int(max(1,param_00 * 0.2));
}
//Function Number: 62
func_F740()
{
var_00 = self getcurrentweapon();
thread func_8CB9(var_00);
}
//Function Number: 63
func_12CCF()
{
self notify("removeHealthOnKillPassive");
}
//Function Number: 64
func_8CB9(param_00)
{
self endon("death");
self endon("disconnect");
self endon("removeHealthOnKillPassive");
for(;;)
{
self waittill("killed_enemy",var_01,var_02,var_03);
if(isalive(self) && var_02 == param_00 && self.health < self.maxhealth)
{
var_04 = int(self.maxhealth * 0.15);
var_05 = self.health + var_04;
if(self.health + var_05 > self.maxhealth)
{
var_05 = self.maxhealth;
}
self.health = var_05;
}
}
}
//Function Number: 65
func_F6D6()
{
}
//Function Number: 66
func_12CA7()
{
}
//Function Number: 67
handledoublekillreload(param_00)
{
var_01 = self.var_DDC2 + 1;
if(var_01 % 2 == 0)
{
scripts\mp\_hud_message::func_1013D("scavenger");
var_02 = weaponclipsize(param_00);
var_03 = self getweaponammostock(param_00);
var_04 = self getweaponammoclip(param_00);
var_05 = min(var_02 - var_04,var_03);
var_06 = min(var_04 + var_05,var_02);
self setweaponammoclip(param_00,int(var_06));
self setweaponammostock(param_00,int(var_03 - var_05));
if(self method_819C())
{
var_03 = self getweaponammostock(param_00);
var_04 = self getweaponammoclip(param_00,"left");
var_05 = min(var_02 - var_04,var_03);
var_06 = min(var_04 + var_05,var_02);
self setweaponammoclip(param_00,int(var_06),"left");
self setweaponammostock(param_00,int(var_03 - var_05));
}
func_3E2F("passive_double_kill_reload");
}
}
//Function Number: 68
func_F6F0()
{
var_00 = self getcurrentweapon();
thread func_6A02(var_00);
}
//Function Number: 69
func_12CB0()
{
self notify("removeExplosiveKillsPassive");
}
//Function Number: 70
func_6A02(param_00)
{
self endon("death");
self endon("disconnect");
self endon("removeExplosiveKillsPassive");
for(;;)
{
self waittill("killed_enemy",var_01,var_02,var_03);
if(var_02 == param_00)
{
if(func_9E84(self,var_02,var_03,self.origin,var_01))
{
thread func_582E(var_01,var_02);
}
}
}
}
//Function Number: 71
func_9E84(param_00,param_01,param_02,param_03,param_04)
{
if(isalive(param_00) && !param_00 scripts\mp\_utility::func_9FC6() && param_02 == "MOD_RIFLE_BULLET" || param_02 == "MOD_PISTOL_BULLET" || param_02 == "MOD_HEAD_SHOT" && !scripts\mp\_utility::func_9E6C(param_01) && !isdefined(param_00.var_23E8))
{
var_05 = scripts\mp\_utility::func_8225(param_01);
switch(var_05)
{
case "weapon_pistol":
var_06 = 800;
break;
case "weapon_beam":
case "weapon_smg":
var_06 = 1200;
break;
case "weapon_lmg":
case "weapon_assault":
case "weapon_dmr":
var_06 = 1500;
break;
case "weapon_rail":
case "weapon_sniper":
var_06 = 2000;
break;
case "weapon_shotgun":
var_06 = 500;
break;
case "weapon_projectile":
default:
var_06 = 1536;
break;
}
var_07 = var_06 * var_06;
if(distancesquared(param_03,param_04.origin) > var_07)
{
return 1;
}
}
return 0;
}
//Function Number: 72
func_582E(param_00,param_01)
{
var_02 = param_00.origin + (0,0,50);
param_00 playsound("detpack_explo_default");
playfx(level.var_B761,var_02);
radiusdamage(var_02,200,140,50,self,"MOD_EXPLOSIVE",param_01);
}
//Function Number: 73
func_F79B()
{
var_00 = self getcurrentweapon();
if(doesshareammo(var_00))
{
var_00 = scripts\mp\_utility::func_E0CF(var_00);
}
thread func_B8D5(var_00);
}
//Function Number: 74
func_12CF1()
{
self notify("removeMissRefundPassive");
}
//Function Number: 75
func_B8D5(param_00)
{
self endon("death");
self endon("disconnect");
self endon("removeMissRefundPassive");
for(;;)
{
self waittill("shot_missed",var_01);
if(var_01 == param_00)
{
if(randomfloat(1) > 0.75)
{
var_02 = self getweaponammostock(param_00);
self setweaponammostock(param_00,var_02 + 1);
}
}
}
}
//Function Number: 76
doesshareammo(param_00)
{
return scripts\mp\_weapons::func_9D3E(param_00) && !issubstr(param_00,"+gl") && !issubstr(param_00,"+shotgun");
}
//Function Number: 77
func_F7AA()
{
self.var_13CB2 = 0.03;
scripts\mp\_weapons::func_12ED5();
}
//Function Number: 78
func_12CF5()
{
self.var_13CB2 = undefined;
scripts\mp\_weapons::func_12ED5();
}
//Function Number: 79
setrechambermovespeedpassive()
{
self.weaponpassivefastrechamberspeedmod = -0.05;
scripts\mp\_weapons::func_12ED5();
}
//Function Number: 80
unsetrechambermovespeedpassive()
{
self.weaponpassivefastrechamberspeedmod = undefined;
scripts\mp\_weapons::func_12ED5();
}
//Function Number: 81
func_F6FD()
{
}
//Function Number: 82
func_12CBA()
{
}
//Function Number: 83
func_89A0(param_00,param_01)
{
if(isdefined(param_01))
{
playfx(scripts\common\utility::getfx("loot_mo_money_kill"),param_01.origin + (0,0,45));
}
param_00 func_3E2F("passive_extra_xp");
scripts\mp\_awards::func_8380("mo_money");
}
//Function Number: 84
getpassivedeathwatching(param_00,param_01)
{
if(!isdefined(param_00.passivedeathwatcher))
{
return 0;
}
if(!isdefined(param_00.passivedeathwatcher[param_01]))
{
return 0;
}
if(param_00.passivedeathwatcher[param_01])
{
return 1;
}
return 0;
}
//Function Number: 85
setpassivedeathwatching(param_00,param_01,param_02)
{
if(!isdefined(param_00.passivedeathwatcher))
{
param_00.passivedeathwatcher = [];
}
param_00.passivedeathwatcher[param_01] = param_02;
}
//Function Number: 86
clearpassivedeathwatching(param_00,param_01)
{
if(!isdefined(param_00.passivedeathwatcher))
{
param_00.passivedeathwatcher = [];
}
param_00.passivedeathwatcher[param_01] = undefined;
}
//Function Number: 87
func_F7BD()
{
}
//Function Number: 88
func_12CF8()
{
}
//Function Number: 89
updatenukepassive(param_00)
{
self endon("death");
self endon("disconnect");
for(;;)
{
self waittill("weapon_passives_given");
if((scripts\mp\_utility::_hasperk("passive_nuke") || hasnukepassiveinloadout() || isdefined(self.pers["passive_nuke_key"]) && self.pers["passive_nuke_key"] > 0) && !getpassivedeathwatching(self,"passive_nuke_key"))
{
thread func_C1C7();
setpassivedeathwatching(self,"passive_nuke_key",1);
}
}
}
//Function Number: 90
hasnukepassiveinloadout()
{
var_00 = 0;
var_01 = self getweaponslistprimaries();
foreach(var_03 in var_01)
{
var_04 = scripts\mp\_loot::func_804C(var_03);
if(isdefined(var_04) && var_04.size > 0)
{
foreach(var_06 in var_04)
{
if(var_06 == "passive_nuke")
{
var_00 = 1;
break;
}
}
if(scripts\mp\_utility::func_9FB3(var_00))
{
break;
}
}
}
return var_00;
}
//Function Number: 91
func_89CC(param_00,param_01,param_02)
{
self endon("disconnect");
if(!isdefined(param_00) || !scripts\mp\_utility::func_9F19(param_00) && !scripts\mp\_utility::issimultaneouskillenabled() || !isdefined(param_02) || !isdefined(param_01))
{
return;
}
var_03 = !scripts\mp\_utility::func_9F19(param_00) && scripts\mp\_utility::issimultaneouskillenabled();
var_04 = undefined;
if(level.gametype == "infect")
{
var_05 = [];
var_05[var_05.size] = "passive_nuke";
}
else
{
var_05 = scripts\mp\_loot::func_804C(var_03);
if(issubstr(param_02,"iw7_vr_mpl_range") && param_00 scripts\mp\_utility::_hasperk("passive_nuke"))
{
var_05[var_05.size] = "passive_nuke";
var_04 = 1;
}
if(!isdefined(var_05) || var_05.size == 0)
{
return;
}
}
var_06 = 0;
foreach(var_08 in var_05)
{
if(var_08 == "passive_nuke")
{
var_06 = 1;
break;
}
}
if(!var_06)
{
return;
}
if(var_03)
{
waittillframeend;
if(!scripts\mp\_utility::func_9FB3(self.simultaneouskill))
{
return;
}
}
if(!isdefined(param_00.pers["passive_nuke_key"]))
{
param_00.pers["passive_nuke_key"] = 1;
}
else
{
param_00.pers["passive_nuke_key"]++;
}
if(isdefined(var_04) && param_00.pers["passive_nuke_key"] == 15)
{
param_00 thread func_C1C8();
}
if(param_00.pers["passive_nuke_key"] >= 25)
{
param_00 func_3E2F("passive_nuke");
param_00 thread scripts\mp\_hud_message::func_10134("nuke");
param_00 scripts\mp\killstreaks\_killstreaks::func_26D4("nuke",param_00);
param_00.pers["passive_nuke_key"] = 0;
param_00 scripts\mp\_missions::func_D991("ch_darkops_nuke");
return;
}
if(param_00.pers["passive_nuke_key"] == 24)
{
param_00 thread scripts\mp\_hud_message::func_10151("nuke_kill_single");
return;
}
if(param_00.pers["passive_nuke_key"] == 2)
{
param_00 thread func_C1C8();
return;
}
if(param_00.pers["passive_nuke_key"] >= 20)
{
param_00 thread func_C1C8();
return;
}
if(param_00.pers["passive_nuke_key"] >= 5)
{
if(param_00.pers["passive_nuke_key"] % 5 == 0)
{
param_00 thread func_C1C8();
return;
}
return;
}
}
//Function Number: 92
func_C1C8()
{
var_00 = 25 - self.pers["passive_nuke_key"];
thread scripts\mp\_hud_message::func_10151("nuke_kill",var_00);
}
//Function Number: 93
func_C1C7()
{
self endon("disconnect");
self waittill("death");
if(scripts\mp\_utility::issimultaneouskillenabled())
{
scripts\common\utility::func_136F7();
}
self.pers["passive_nuke_key"] = undefined;
clearpassivedeathwatching(self,"passive_nuke_key");
}
//Function Number: 94
setquadfeederpassive()
{
}
//Function Number: 95
quadfeederon()
{
if(!scripts\mp\_utility::func_9FB3(self.quadfeeder))
{
self.quadfeeder = 1;
func_F7D7("passive_berserk",1);
scripts\mp\_utility::func_8387("specialty_overcharge");
self method_85C1(65);
var_00 = self method_85C0();
if(var_00 < 0)
{
var_00 = 100;
}
var_00 = max(var_00 - 10,0);
self player_recoilscaleon(int(var_00));
}
self notify("stop_quadFeeder_timer");
thread timeoutquadfeeder(1.5);
}
//Function Number: 96
timeoutquadfeeder(param_00)
{
self endon("end_quadFeederEffect");
self endon("stop_quadFeeder_timer");
self endon("death");
self endon("disconnect");
thread listencancelquadfeeder();
wait(param_00);
unsetquadfeedereffect();
}
//Function Number: 97
listencancelquadfeeder()
{
self endon("end_quadFeederEffect");
self endon("stop_quadFeeder_timer");
self endon("disconnect");
scripts\common\utility::waittill_any_3("death","weapon_change");
unsetquadfeedereffect();
}
//Function Number: 98
unsetquadfeedereffect()
{
if(scripts\mp\_utility::func_9FB3(self.quadfeeder))
{
self.quadfeeder = 0;
func_F7D7("passive_berserk",undefined);
scripts\mp\_utility::func_E150("specialty_overcharge");
self method_85C2();
var_00 = self method_85C0();
var_00 = min(var_00 + 20,100);
self player_recoilscaleon(int(var_00));
self notify("end_quadFeederEffect");
}
}
//Function Number: 99
unsetquadfeederpassive()
{
self notify("end_quadFeederEffect");
self notify("end_quadFeederPassive");
unsetquadfeedereffect();
}
//Function Number: 100
func_F865()
{
}
//Function Number: 101
func_12D3B()
{
}
//Function Number: 102
func_F82A()
{
var_00 = self getcurrentweapon();
scripts\mp\_utility::func_1824("kill",0.1,var_00);
thread func_4112(var_00);
}
//Function Number: 103
func_12D23()
{
self notify("score_bonus_kills_removed");
}
//Function Number: 104
func_4112(param_00)
{
self endon("disconnect");
self waittill("score_bonus_kills_removed");
scripts\mp\_utility::func_E165("kill",0.1,param_00);
}
//Function Number: 105
func_F82B()
{
var_00 = [];
foreach(var_06, var_02 in level.var_EC3A)
{
var_03 = issubstr(var_06,"_mode_");
var_04 = issubstr(var_06,"_score");
var_05 = var_02["value"];
if(var_03 && var_04 && var_05 > 0)
{
var_00[var_00.size] = func_4A0B(var_06,0.2);
}
}
foreach(var_08 in var_00)
{
scripts\mp\_utility::func_1824(var_08.var_67E5,var_08.var_2C80,var_08.var_394);
}
thread func_4113(var_00);
}
//Function Number: 106
func_12D24()
{
self notify("score_bonus_objectives_removed");
}
//Function Number: 107
func_4A0B(param_00,param_01,param_02)
{
var_03 = spawnstruct();
var_03.var_67E5 = param_00;
var_03.var_2C80 = param_01;
var_03.var_394 = param_02;
return var_03;
}
//Function Number: 108
func_4113(param_00)
{
self endon("disconnect");
self waittill("score_bonus_objectives_removed");
foreach(var_02 in param_00)
{
scripts\mp\_utility::func_E165(var_02.var_67E5,var_02.var_2C80,var_02.var_394);
}
}
//Function Number: 109
func_F746()
{
self endon("passive_hivemind_cancel");
func_12EAA(level.players);
thread func_905E();
thread func_905F();
}
//Function Number: 110
func_12CD1()
{
foreach(var_01 in self.var_905B)
{
var_02 = self.var_905A[var_01];
scripts\mp\_utility::func_C78F(var_01,var_02);
}
self.var_905B = undefined;
self.var_905A = undefined;
self notify("passive_hivemind_cancel");
}
//Function Number: 111
func_12EA9(param_00)
{
func_12EAA([param_00]);
}
//Function Number: 112
func_12EAA(param_00)
{
if(!isdefined(self.var_905B))
{
self.var_905B = [];
}
if(!isdefined(self.var_905A))
{
self.var_905A = [];
}
foreach(var_02 in param_00)
{
if(var_02 == self || !isdefined(self) || !isdefined(self.team) || !isdefined(var_02) || !isdefined(var_02.team))
{
continue;
}
var_03 = func_7F04(var_02);
if(level.teambased && self.team == var_02.team && var_02.health > 0)
{
if(var_03 < 0)
{
wait(0.1);
if(!isdefined(var_02))
{
continue;
}
var_04 = scripts\mp\_utility::func_C794(var_02,"cyan",self,0,1,"level_script");
self.var_905B[self.var_905B.size] = var_04;
self.var_905A[var_04] = var_02;
thread func_905D(var_02);
thread func_9060(var_02);
thread func_905C(var_02);
}
continue;
}
if(var_03 >= 0)
{
var_05 = [];
var_06 = [];
scripts\mp\_utility::func_C78F(var_03,var_02);
foreach(var_04 in self.var_905B)
{
var_08 = self.var_905A[var_04];
if(var_08 == var_02)
{
continue;
}
var_05[var_05.size] = var_04;
var_06[var_04] = var_08;
}
self.var_905B = var_05;
self.var_905A = var_06;
var_02 notify("passive_hivemind_listen_cancel");
}
}
}
//Function Number: 113
func_7F04(param_00)
{
if(!isdefined(self.var_905B) || !isdefined(self.var_905A))
{
return -1;
}
foreach(var_02 in self.var_905B)
{
var_03 = self.var_905A[var_02];
if(var_03 == param_00)
{
return var_02;
}
}
return -1;
}
//Function Number: 114
func_905D(param_00)
{
self endon("disconnect");
self endon("passive_hivemind_cancel");
param_00 endon("passive_hivemind_listen_cancel");
param_00 waittill("disconnect");
thread func_12EA9(param_00);
}
//Function Number: 115
func_9060(param_00)
{
self endon("disconnect");
self endon("passive_hivemind_cancel");
param_00 endon("passive_hivemind_listen_cancel");
param_00 waittill("joined_team");
thread func_12EA9(param_00);
}
//Function Number: 116
func_905C(param_00)
{
self endon("disconnect");
self endon("passive_hivemind_cancel");
param_00 endon("passive_hivemind_listen_cancel");
param_00 waittill("death");
thread func_12EA9(param_00);
}
//Function Number: 117
func_905E()
{
self endon("disconnect");
self endon("passive_hivemind_cancel");
for(;;)
{
level waittill("player_spawned",var_00);
thread func_12EA9(var_00);
}
}
//Function Number: 118
func_905F()
{
self endon("disconnect");
self endon("passive_hivemind_cancel");
for(;;)
{
level waittill("joined_spectator",var_00);
thread func_12EA9(var_00);
}
}
//Function Number: 119
func_F74B()
{
self endon("passive_hunter_killer_cancel");
thread func_12EAE(level.players);
thread func_91EA();
foreach(var_01 in level.players)
{
thread func_91EC(var_01);
thread func_91EB(var_01);
}
}
//Function Number: 120
func_12CD4()
{
self notify("passive_hunter_killer_cancel");
foreach(var_01 in self.var_91E9)
{
var_02 = self.var_91E8[var_01];
scripts\mp\_utility::func_C78F(var_01,var_02);
}
self.var_91E9 = undefined;
self.var_91E8 = undefined;
}
//Function Number: 121
func_91EC(param_00)
{
self endon("passive_hunter_killer_cancel");
param_00 waittill("disconnect");
thread func_12EAD(param_00);
}
//Function Number: 122
func_91EB(param_00)
{
self endon("passive_hunter_killer_cancel");
for(;;)
{
param_00 waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A);
thread func_12EAD(param_00);
}
}
//Function Number: 123
func_91ED(param_00)
{
self endon("passive_hunter_killer_cancel");
param_00 endon("passive_hunter_killer_listen_cancel");
for(;;)
{
wait(1);
thread func_12EAD(param_00);
}
}
//Function Number: 124
func_91EA()
{
self endon("passive_hunter_killer_cancel");
for(;;)
{
level waittill("connected",var_00);
thread func_12EAD(var_00);
thread func_91EC(var_00);
thread func_91EB(var_00);
}
}
//Function Number: 125
func_7F09(param_00)
{
if(!isdefined(self.var_91E9) || !isdefined(self.var_91E8))
{
return -1;
}
foreach(var_02 in self.var_91E9)
{
var_03 = self.var_91E8[var_02];
if(!isdefined(var_03))
{
continue;
}
if(var_03 == param_00)
{
return var_02;
}
}
return -1;
}
//Function Number: 126
func_12EAD(param_00)
{
var_01 = [];
var_01[var_01.size] = param_00;
thread func_12EAE(var_01);
}
//Function Number: 127
func_12EAE(param_00)
{
if(!isdefined(self.var_91E9))
{
self.var_91E9 = [];
}
if(!isdefined(self.var_91E8))
{
self.var_91E8 = [];
}
foreach(var_02 in param_00)
{
if(var_02 == self || !isdefined(self) || !isdefined(self.team) || !isdefined(var_02) || !isdefined(var_02.team))
{
continue;
}
var_03 = func_7F09(var_02);
var_04 = var_02.maxhealth / 2;
var_05 = var_02.health;
if(level.teambased && self.team != var_02.team && var_05 <= var_04 && var_05 > 0)
{
if(var_03 < 0 && !var_02 scripts\mp\_utility::_hasperk("specialty_empimmune"))
{
var_06 = scripts\mp\_utility::func_C794(var_02,"red",self,1,0,"level_script");
self.var_91E9[self.var_91E9.size] = var_06;
self.var_91E8[var_06] = var_02;
thread func_91ED(var_02);
}
continue;
}
if(var_03 >= 0)
{
var_07 = [];
var_08 = [];
scripts\mp\_utility::func_C78F(var_03,var_02);
foreach(var_06 in self.var_91E9)
{
var_0A = self.var_91E8[var_06];
if(var_0A == var_02)
{
continue;
}
var_07[var_07.size] = var_06;
var_08[var_06] = var_0A;
}
self.var_91E9 = var_07;
self.var_91E8 = var_08;
var_02 notify("passive_hunter_killer_listen_cancel");
}
}
}
//Function Number: 128
func_F758()
{
}
//Function Number: 129
func_12CD9()
{
}
//Function Number: 130
unsetdoublekillsuperpassive()
{
self notify("unset_passive_double_kill_super");
self.passivedoublekillpending = undefined;
}
//Function Number: 131
setwallrunquieterpassive()
{
self endon("death");
self endon("disconnect");
self endon("unsetWallrunQuieter");
thread wallrunquieterwatchfordeath();
for(;;)
{
if(self method_8446() || !self isonground())
{
if(!scripts\mp\_utility::func_9FB3(func_804E("passive_wallrun_quieter")))
{
func_F7D7("passive_wallrun_quieter",1);
func_3E2F("passive_wallrun_quieter","_start");
scripts\mp\_utility::func_8387("specialty_quieter");
}
}
else if(scripts\mp\_utility::func_9FB3(func_804E("passive_wallrun_quieter")))
{
func_F7D7("passive_wallrun_quieter",undefined);
func_3E2F("passive_wallrun_quieter","_end");
scripts\mp\_utility::func_E150("specialty_quieter");
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 132
wallrunquieterwatchfordeath()
{
self endon("disconnect");
self endon("unsetWallrunQuieter");
self waittill("death");
func_F7D7("passive_wallrun_quieter",undefined);
}
//Function Number: 133
unsetwallrunquieterpassive()
{
self notify("unsetWallrunQuieter");
if(scripts\mp\_utility::func_9FB3(func_804E("passive_wallrun_quieter")))
{
func_F7D7("passive_wallrun_quieter",undefined);
func_3E2F("passive_wallrun_quieter","_end");
scripts\mp\_utility::func_E150("specialty_quieter");
}
}
//Function Number: 134
setslideblastshield()
{
self endon("death");
self endon("disconnect");
self endon("unsetSlideBlastShield");
thread slideblastshieldwatchfordeath();
var_00 = undefined;
for(;;)
{
var_01 = self getstance();
if(self method_81BE() || (var_01 == "crouch" || var_01 == "prone") && self isonground())
{
var_00 = undefined;
if(!scripts\mp\_utility::func_9FB3(func_804E("passive_slide_blastshield")))
{
func_F7D7("passive_slide_blastshield",1);
func_3E2F("passive_slide_blastshield","_start");
scripts\mp\_utility::func_8387("specialty_blastshield");
}
}
else if(!isdefined(var_00))
{
var_00 = gettime() + 250;
}
else if(gettime() >= var_00)
{
if(scripts\mp\_utility::func_9FB3(func_804E("passive_slide_blastshield")))
{
func_F7D7("passive_slide_blastshield",undefined);
func_3E2F("passive_slide_blastshield","_end");
scripts\mp\_utility::func_E150("specialty_blastshield");
}
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 135
slideblastshieldwatchfordeath()
{
self endon("disconnect");
self endon("unsetSlideBlastShield");
self waittill("death");
func_F7D7("passive_slide_blastshield",undefined);
}
//Function Number: 136
unsetslideblastshield()
{
self notify("unsetSlideBlastShield");
if(scripts\mp\_utility::func_9FB3(func_804E("passive_slide_blastshield")))
{
func_F7D7("passive_slide_blastshield",undefined);
func_3E2F("passive_slide_blastshield","_end");
scripts\mp\_utility::func_E150("specialty_blastshield");
}
}
//Function Number: 137
setproneblindeye()
{
self endon("death");
self endon("disconnect");
self endon("unsetProneBlindEye");
thread proneblindeyewatchfordeath();
var_00 = undefined;
for(;;)
{
if(self getstance() == "prone")
{
if(!isdefined(var_00))
{
var_00 = gettime() + 600;
}
else if(gettime() >= var_00)
{
if(!scripts\mp\_utility::func_9FB3(func_804E("passive_prone_blindeye")))
{
func_F7D7("passive_prone_blindeye",1);
func_3E2F("passive_prone_blindeye","_start");
scripts\mp\_utility::func_8387("specialty_blindeye");
}
}
}
else
{
var_00 = undefined;
if(scripts\mp\_utility::func_9FB3(func_804E("passive_prone_blindeye")))
{
func_F7D7("passive_prone_blindeye",undefined);
func_3E2F("passive_prone_blindeye","_end");
scripts\mp\_utility::func_E150("specialty_blindeye");
}
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 138
proneblindeyewatchfordeath()
{
self endon("disconnect");
self endon("unsetProneBlindEye");
self waittill("death");
func_F7D7("passive_prone_blindeye",undefined);
}
//Function Number: 139
unsetproneblindeye()
{
self notify("unsetProneBlindEye");
if(scripts\mp\_utility::func_9FB3(func_804E("passive_prone_blindeye")))
{
func_F7D7("passive_prone_blindeye",undefined);
func_3E2F("passive_prone_blindeye","_end");
scripts\mp\_utility::func_E150("specialty_blindeye");
}
}
//Function Number: 140
setstationaryengineer()
{
self endon("death");
self endon("disconnect");
self endon("unsetStationaryEngineer");
thread stationaryengineerwatchfordeath();
var_00 = undefined;
for(;;)
{
var_01 = self getstance();
if(var_01 == "crouch" || var_01 == "prone" || lengthsquared(self getvelocity()) == 0)
{
if(!isdefined(var_00))
{
var_00 = gettime() + 750;
}
else if(gettime() > var_00)
{
if(!scripts\mp\_utility::func_9FB3(func_804E("passive_stationary_engineer")))
{
func_F7D7("passive_stationary_engineer",1);
func_3E2F("passive_stationary_engineer","_start");
scripts\mp\_utility::func_8387("specialty_engineer");
}
}
}
else
{
var_00 = undefined;
if(scripts\mp\_utility::func_9FB3(func_804E("passive_stationary_engineer")))
{
func_F7D7("passive_stationary_engineer",undefined);
func_3E2F("passive_stationary_engineer","_end");
scripts\mp\_utility::func_E150("specialty_engineer");
}
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 141
unsetstationaryengineer()
{
self notify("unsetStationaryEngineer");
if(scripts\mp\_utility::func_9FB3(func_804E("passive_stationary_engineer")))
{
func_F7D7("passive_stationary_engineer",undefined);
func_3E2F("passive_stationary_engineer","_end");
scripts\mp\_utility::func_E150("specialty_engineer");
}
}
//Function Number: 142
stationaryengineerwatchfordeath()
{
self endon("disconnect");
self endon("unsetStationaryEngineer");
self waittill("death");
func_F7D7("passive_stationary_engineer",undefined);
}
//Function Number: 143
setdoppleganger()
{
self endon("death");
self endon("disconnect");
self endon("unsetDoppleganger");
thread dopplegangerwatchfordeath();
scripts\common\utility::func_136F7();
}
//Function Number: 144
dopplegangerwatchfordeath()
{
self endon("disconnect");
self endon("unsetDoppleganger");
self waittill("death");
func_F7D7("passive_doppleganger",undefined);
}
//Function Number: 145
unsetdoppleganger()
{
self notify("unsetDoppleganger");
if(scripts\mp\_utility::func_9FB3(func_804E("passive_doppleganger")))
{
func_F7D7("passive_doppleganger",undefined);
func_3E2F("passive_doppleganger","_end");
scripts\mp\_utility::func_E150("specialty_doppleganger");
}
}
//Function Number: 146
setcollatstreak()
{
func_F7D7("passive_collat_streak",::collatstreakgive);
}
//Function Number: 147
unsetcollatstreak()
{
self.lastcollattime = undefined;
func_F7D7("passive_collat_streak",undefined);
}
//Function Number: 148
collatstreakgive()
{
if(!isdefined(self.lastcollattime) || self.lastcollattime < gettime())
{
scripts\mp\killstreaks\_killstreaks::func_26D4("venom",self);
scripts\mp\_hud_message::func_10134("venom");
self.lastcollattime = gettime();
}
}
//Function Number: 149
func_F884()
{
}
//Function Number: 150
func_12D48()
{
}
//Function Number: 151
func_F85C(param_00,param_01,param_02,param_03)
{
if(!isdefined(self.var_10B40))
{
self.var_10B40 = [];
}
if(!isdefined(self.var_10B40[param_00]))
{
var_04 = spawnstruct();
var_04.var_92B8 = param_00;
var_04.var_10B3F = param_01;
var_04.var_10B3E = param_02;
var_04.var_4F60 = param_03;
self.var_10B40[param_00] = var_04;
}
}
//Function Number: 152
func_8154(param_00)
{
if(!isdefined(self.var_10B40))
{
return undefined;
}
if(!isdefined(self.var_10B40[param_00]))
{
return undefined;
}
var_01 = self.var_10B40[param_00];
return var_01;
}
//Function Number: 153
func_8152(param_00)
{
var_01 = func_8154(param_00);
if(!isdefined(var_01))
{
return 0;
}
return var_01.var_10B3E;
}
//Function Number: 154
func_182C(param_00,param_01)
{
}
//Function Number: 155
func_89EB(param_00,param_01)
{
var_02 = param_00.var_A684.size + 1;
if(var_02 >= 5)
{
var_03 = weaponclipsize(param_01);
var_04 = int(max(var_03 * 0.2,1));
var_05 = param_00 getweaponammostock(param_01);
param_00 setweaponammostock(param_01,var_05 + var_04);
param_00 scripts\mp\_hud_message::func_1013D("scavenger");
}
}
//Function Number: 156
func_89C8(param_00,param_01)
{
var_02 = "passive_move_speed_on_kill";
param_00 notify(var_02);
param_00 endon(var_02);
if(!isdefined(param_00.var_13CB3) || param_00.var_13CB3 != 0.04)
{
param_00.var_13CB3 = 0.04;
param_00 scripts\mp\_weapons::func_12ED5();
}
param_00 scripts\common\utility::waittill_any_timeout_1(3.5,"death","disconnect");
if(!isdefined(param_00))
{
return;
}
param_00.var_13CB3 = 0;
param_00 scripts\mp\_weapons::func_12ED5();
param_00 func_3E2F("passive_move_speed_on_kill");
}
//Function Number: 157
func_8988(param_00)
{
param_00 scripts\mp\_utility::func_DE39(2.5);
param_00 func_3E2F("passive_cooldown_on_kill");
}
//Function Number: 158
func_89B1(param_00)
{
param_00 notify("force_regeneration");
param_00 func_3E2F("passive_health_regen_on_kill");
}
//Function Number: 159
func_89DB(param_00,param_01)
{
if(!isdefined(param_00) || !scripts\mp\_utility::func_9F19(param_00) || !isdefined(param_01))
{
return;
}
if(!getpassivedeathwatching(param_00,"passive_refresh_key"))
{
param_00 thread func_DE76();
param_00 setpassivedeathwatching(param_00,"passive_refresh_key",1);
}
if(!isdefined(param_00.pers["passive_refresh_key"]))
{
param_00.pers["passive_refresh_key"] = 1;
}
else
{
param_00.pers["passive_refresh_key"]++;
}
if(param_00.pers["passive_refresh_key"] >= 5)
{
param_00 func_3E2F("passive_refresh");
param_00 thread scripts\mp\_hud_message::func_10134("refresh");
param_00 scripts\mp\_powers::func_1813(1);
param_00.pers["passive_refresh_key"] = 0;
return;
}
if(param_00.pers["passive_refresh_key"] == 4)
{
param_00 thread scripts\mp\_hud_message::func_10151("refresh_kill_single");
return;
}
if(param_00.pers["passive_refresh_key"] == 3)
{
param_00 thread func_DE77();
return;
}
}
//Function Number: 160
func_DE77()
{
var_00 = 5 - self.pers["passive_refresh_key"];
thread scripts\mp\_hud_message::func_10151("refresh_kill",var_00);
}
//Function Number: 161
func_DE76()
{
self endon("disconnect");
self waittill("death");
self.pers["passive_refresh_key"] = undefined;
clearpassivedeathwatching(self,"passive_refresh_key");
}
//Function Number: 162
func_89B3(param_00,param_01)
{
if(!isdefined(param_00) || !scripts\mp\_utility::func_9F19(param_00) || !isdefined(param_01))
{
return;
}
var_02 = param_01.name;
if(func_115E9(param_00,param_01))
{
return;
}
if(!isdefined(param_00.var_903C))
{
param_00.var_903C = [];
}
else if(func_903B(param_00,var_02))
{
return;
}
param_00.var_903C[param_00.var_903C.size] = var_02;
var_03 = 0;
var_04 = 0;
foreach(var_06 in level.players)
{
if(func_115E9(param_00,var_06))
{
continue;
}
var_07 = var_06.name;
if(func_903B(param_00,var_07))
{
var_03++;
}
var_04++;
}
var_09 = var_04 - var_03;
if(var_09 <= 3)
{
param_00 func_903E(var_09);
}
if(var_09 <= 0)
{
var_0A = 0;
if(var_04 >= 3)
{
var_0A = 200;
}
else if(var_04 >= 2)
{
var_0A = 100;
}
else
{
var_0A = 75;
}
var_0B = var_0A * var_04;
param_00 func_3E2F("passive_hitman");
param_00 thread scripts\mp\_supers::func_83AA(var_0B);
param_00.var_903C = [];
}
}
//Function Number: 163
func_903B(param_00,param_01)
{
if(!isdefined(param_00.var_903C))
{
return 0;
}
foreach(var_03 in param_00.var_903C)
{
if(var_03 == param_01)
{
return 1;
}
}
return 0;
}
//Function Number: 164
func_903E(param_00)
{
param_00 = int(max(0,param_00));
switch(param_00)
{
case 0:
thread scripts\mp\_hud_message::func_10134("hitman_kill_all");
break;
case 1:
thread scripts\mp\_hud_message::func_10151("hitman_kill_single");
break;
default:
thread scripts\mp\_hud_message::func_10151("hitman_kill",param_00);
break;
}
}
//Function Number: 165
func_903D()
{
self endon("disconnect");
self waittill("death");
self.var_903C = undefined;
}
//Function Number: 166
func_89E0(param_00,param_01)
{
level endon("game_ended");
self endon("disconnect");
param_01 endon("diconnect");
param_00 lib_0D6B::func_49AD(param_00,param_01,"scorestreak");
param_00 func_3E2F("passive_scorestreak_pack");
func_3E2F("passive_scorestreak_pack");
}
//Function Number: 167
func_89AB(param_00,param_01)
{
level endon("game_ended");
self endon("disconnect");
param_01 endon("diconnect");
level thread func_89AA(param_01);
wait(0.05);
var_02 = param_01 method_8113();
if(isdefined(var_02))
{
var_02 hide();
var_02.var_CA6C = 1;
}
func_3E2F("passive_gore");
}
//Function Number: 168
func_89AA(param_00)
{
var_01 = param_00 gettagorigin("j_spine4");
if(param_00.var_AE62 == "archetype_scout")
{
playfx(level._effect["passive_gore_robot"],var_01,(1,0,0));
}
else
{
playfx(level._effect["passive_gore"],var_01,(1,0,0));
}
playsoundatpos(var_01,"gib_fullbody");
scripts\mp\_shellshock::func_1245(0.5,1.5,var_01,120);
}
//Function Number: 169
func_89E7(param_00,param_01)
{
param_00 func_3E2F("passive_pack_scorestreak");
}
//Function Number: 170
func_89E6(param_00,param_01)
{
}
//Function Number: 171
func_89AF(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!scripts\mp\_utility::func_9E27(param_00,param_04,param_03,param_01))
{
}
}
//Function Number: 172
func_89D9(param_00,param_01)
{
if(!isdefined(param_00) || !scripts\mp\_utility::func_9F19(param_00) || !isdefined(param_01))
{
return;
}
if(!getpassivedeathwatching(param_00,"passive_random_perks_key"))
{
param_00 thread func_DCC3();
param_00 setpassivedeathwatching(param_00,"passive_random_perks_key",1);
}
if(!isdefined(param_00.pers["passive_random_perks_key"]))
{
param_00.var_DCC2 = [];
param_00.pers["passive_random_perks_key"] = 1;
}
else
{
if(isdefined(param_00.var_DCC2) && param_00.var_DCC2.size >= 3)
{
return;
}
param_00.pers["passive_random_perks_key"]++;
}
if(!isdefined(param_00.var_DCC2))
{
param_00.var_DCC2 = [];
}
if(param_00.pers["passive_random_perks_key"] >= 3)
{
var_02 = param_00 scripts\mp\perks\_perks::func_7DE8();
if(isdefined(var_02) && var_02.size > 0)
{
var_03 = randomintrange(0,var_02.size - 1);
var_04 = var_02[var_03];
if(!isdefined(var_04))
{
return;
}
param_00 func_3E2F("passive_random_perks","_" + var_04);
param_00 scripts\mp\_utility::func_8387(var_04);
var_05 = scripts\common\utility::func_116D7(isdefined(param_00.var_DCC2),param_00.var_DCC2.size,0);
param_00.var_DCC2[var_05] = var_04;
}
param_00.pers["passive_random_perks_key"] = 0;
}
}
//Function Number: 173
func_11753(param_00)
{
var_01 = param_00 scripts\mp\perks\_perks::func_7DE8();
if(isdefined(var_01) && var_01.size > 0)
{
foreach(var_03 in var_01)
{
func_11751("passive_random_perks","_" + var_03);
}
}
}
//Function Number: 174
func_DCC3()
{
self endon("disconnect");
self waittill("death");
if(isdefined(self.var_DCC2))
{
foreach(var_01 in self.var_DCC2)
{
scripts\mp\_utility::func_E150(var_01);
}
}
self.var_DCC2 = undefined;
self.pers["passive_random_perks_key"] = undefined;
clearpassivedeathwatching(self,"passive_random_perks_key");
}
//Function Number: 175
handlespecialistpassive(param_00,param_01)
{
if(!isdefined(param_00) || !scripts\mp\_utility::func_9F19(param_00) || !isdefined(param_01))
{
return;
}
if(!getpassivedeathwatching(param_00,"passive_mini_specialist_key"))
{
param_00 thread specialistpassivedeathwatcher();
param_00 setpassivedeathwatching(param_00,"passive_mini_specialist_key",1);
}
if(!isdefined(param_00.pers["passive_mini_specialist_key"]))
{
param_00.minispecialistkillperks = [];
param_00.pers["passive_mini_specialist_key"] = 1;
}
else
{
if(isdefined(param_00.minispecialistkillperks) && param_00.minispecialistkillperks.size >= 3)
{
return;
}
param_00.pers["passive_mini_specialist_key"]++;
}
var_02 = scripts\common\utility::func_116D7(param_00 scripts\mp\_utility::_hasperk("specialty_hardline"),1,0);
if(!isdefined(param_00.minispecialistkillperks))
{
param_00.minispecialistkillperks = [];
}
var_03 = undefined;
if(param_00.pers["passive_mini_specialist_key"] >= 14 && !param_00 scripts\mp\_utility::_hasperk("passive_nuke"))
{
param_00 scripts\mp\_utility::func_8387("passive_nuke");
if(isdefined(param_00.pers["passive_nuke_key"]))
{
param_00.pers["passive_nuke_key"] = param_00.pers["passive_nuke_key"] + 14;
}
else
{
param_00.pers["passive_nuke_key"] = 14;
}
}
else if(param_00.pers["passive_mini_specialist_key"] >= 8 - var_02 && !param_00 scripts\mp\_utility::_hasperk("passive_double_kill_reload") && !param_00 scripts\mp\_utility::_hasperk("passive_stationary_engineer") && !param_00 scripts\mp\_utility::_hasperk("passive_jump_super"))
{
param_00 scripts\mp\_utility::func_8387("passive_double_kill_reload");
param_00 scripts\mp\_utility::func_8387("passive_stationary_engineer");
param_00 scripts\mp\_utility::func_8387("passive_jump_super");
param_00 thread scripts\mp\_hud_message::func_10151("specialty_specialist");
}
else if(param_00.pers["passive_mini_specialist_key"] >= 6 - var_02 && !param_00 scripts\mp\_utility::_hasperk("specialty_silentkill"))
{
var_03 = "specialty_silentkill";
param_00 scripts\mp\_utility::func_8387(var_03);
}
else if(param_00.pers["passive_mini_specialist_key"] >= 4 - var_02 && !param_00 scripts\mp\_utility::_hasperk("passive_wallrun_quieter"))
{
var_03 = "passive_wallrun_quieter";
param_00 scripts\mp\_utility::func_8387(var_03);
}
else if(param_00.pers["passive_mini_specialist_key"] >= 2 - var_02 && !param_00 scripts\mp\_utility::_hasperk("passive_move_speed"))
{
var_03 = "passive_move_speed";
param_00 scripts\mp\_utility::func_8387(var_03);
}
if(isdefined(var_03))
{
param_00 func_3E2F("passive_mini_specialist","_" + var_03);
}
}
//Function Number: 176
specialistpassivedeathwatcher()
{
self endon("disconnect");
self waittill("death");
if(isdefined(self.minispecialistkillperks))
{
foreach(var_01 in self.minispecialistkillperks)
{
scripts\mp\_utility::func_E150(var_01);
}
}
self.minispecialistkillperks = undefined;
self.pers["passive_mini_specialist_key"] = undefined;
clearpassivedeathwatching(self,"passive_mini_specialist_key");
}
//Function Number: 177
func_89B0(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_01) || !isdefined(param_00) || !param_01 scripts\mp\_utility::_hasperk("passive_headshot_super"))
{
return;
}
if(!scripts\mp\_utility::func_9E27(param_00,param_04,param_03,param_01))
{
return;
}
param_01 thread scripts\mp\_supers::func_83AA(100);
param_01 func_3E2F("passive_headshot_super");
}
//Function Number: 178
func_89A3(param_00,param_01,param_02)
{
var_03 = spawn("trigger_radius",param_01.origin,0,50,100);
var_03.var_222 = param_00;
scripts\mp\_utility::func_D548(param_00.team,param_01.origin,"player_plasma_friendly","player_plasma_enemy",5);
var_03 thread func_AD70(param_02);
var_03 thread func_AD71();
param_00 func_3E2F("passive_fire_kill");
}
//Function Number: 179
func_AD70(param_00)
{
self endon("passive_fire_kill_delete");
for(;;)
{
self waittill("trigger",var_01);
if(!isdefined(var_01) || !isdefined(self) || !isdefined(self.var_222))
{
break;
}
if(!isplayer(var_01))
{
continue;
}
if(func_115E9(self.var_222,var_01))
{
continue;
}
var_02 = var_01 func_804E("passive_fire_kill");
if(var_02 <= 0)
{
var_01 thread func_10D9E(param_00,self.var_222,"passive_fire_kill","player_plasma_friendly","player_plasma_enemy","j_mainroot","player_plasma_screen_stand");
var_01 thread func_10D82(param_00,self.var_222,5,0.5,4,"passive_fire_kill");
continue;
}
func_F7D7("passive_fire_kill",4);
}
}
//Function Number: 180
func_AD71()
{
wait(5);
if(!isdefined(self))
{
return;
}
self notify("passive_fire_kill_delete");
self delete();
}
//Function Number: 181
func_3E01()
{
if(scripts\mp\_utility::_hasperk("passive_critical_chance_damage"))
{
if(randomintrange(1,10) == 1)
{
scripts\mp\_utility::func_8387("specialty_moredamage");
}
}
if(scripts\mp\_utility::_hasperk("passive_critical_sequential_damage"))
{
if(func_804E("passive_critical_sequential_damage") >= 4)
{
func_F7D7("passive_critical_sequential_damage",-1);
scripts\mp\_utility::func_8387("specialty_moredamage");
}
}
}
//Function Number: 182
func_1174D()
{
var_00 = self geteye();
var_01 = anglestoforward(self getplayerangles());
var_02 = 200;
var_03 = var_01 * var_02;
var_04 = func_11755(var_00,var_00 + var_03);
var_05 = var_04 - var_00;
var_06 = 25;
var_07 = (0,0,0);
var_08 = 100;
var_09 = 0;
var_0A = 1;
var_0B = 0.15;
for(;;)
{
var_09++;
var_0C = var_00 + var_01 * var_06 * var_09;
var_0D = var_0C - var_00;
if(!func_1174A(var_05,var_0D))
{
break;
}
var_0E = var_0C + (0,0,var_08 * -1);
var_0F = func_11755(var_0C,var_0E);
if(var_0F == var_0E)
{
continue;
}
var_10 = var_0A + var_0B * var_09;
scripts\mp\_utility::func_D548(self.team,var_0F,"player_plasma_friendly","player_plasma_enemy",var_10);
}
}
//Function Number: 183
func_1174A(param_00,param_01)
{
if(!func_11749(param_00[0],param_01[0]))
{
return 0;
}
if(!func_11749(param_00[1],param_01[1]))
{
return 0;
}
if(!func_11749(param_00[2],param_01[2]))
{
return 0;
}
return 1;
}
//Function Number: 184
func_11749(param_00,param_01)
{
if(param_00 > 0 && param_01 > param_00)
{
return 0;
}
if(param_00 < 0 && param_01 < param_00)
{
return 0;
}
return 1;
}
//Function Number: 185
func_11755(param_00,param_01)
{
var_02 = scripts\common\trace::func_48BC(0,1,1,1,1,0,0);
var_03 = function_0287(param_00,param_01,var_02,[self],0,"physicsquery_closest");
if(isdefined(var_03) && var_03.size > 0)
{
return var_03[0]["position"];
}
return param_01;
}
//Function Number: 186
func_8974(param_00,param_01)
{
if(!isdefined(param_00) || !scripts\mp\_utility::func_9F19(param_00) || !isdefined(param_01) || param_00.var_2049)
{
return;
}
if(param_00.var_204A == 0 && level.gametype != "infect" && isdefined(level.var_204B) && level.var_204B == 1)
{
param_00.var_204A = 1;
param_00 thread scripts\mp\_hud_message::func_10151("specialty_scavenger");
param_00 scripts\mp\_utility::func_8387("specialty_scavenger");
}
else
{
param_00.var_204A++;
}
if(param_00.var_204A == 3)
{
if(isdefined(level.var_204B) && level.var_204B > 2)
{
param_00 scripts\mp\_utility::func_8387("specialty_scavenger");
}
param_00 thread scripts\mp\_hud_message::func_10151("specialty_quickdraw");
param_00 scripts\mp\_utility::func_8387("specialty_quickdraw");
}
if(param_00.var_204A == 5)
{
param_00 thread scripts\mp\_hud_message::func_10151("specialty_bulletaccuracy");
param_00 scripts\mp\_utility::func_8387("specialty_bulletaccuracy");
}
if(param_00.var_204A == 7)
{
param_00 thread scripts\mp\_hud_message::func_10151("specialty_specialist");
param_00 scripts\mp\_utility::func_8387("specialty_lightweight");
param_00 scripts\mp\_utility::func_8387("specialty_quieter");
param_00 scripts\mp\_utility::func_8387("specialty_selectivehearing");
param_00 scripts\mp\_utility::func_8387("specialty_gung_ho");
param_00.var_2049 = 1;
}
}
//Function Number: 187
handlejumpsuperonkillpassive(param_00,param_01)
{
if(param_00 isonground())
{
return;
}
if(param_00 method_8446())
{
return;
}
param_00 scripts\mp\_supers::func_83AA(100);
param_00 func_3E2F("passive_jump_super");
}
//Function Number: 188
handlemeleesuperonkillpassive(param_00,param_01,param_02)
{
if(param_02 != "MOD_MELEE")
{
return;
}
param_00 scripts\mp\_supers::func_83AA(500);
param_00 func_3E2F("passive_melee_super");
}
//Function Number: 189
handledoublekillsuperpassive(param_00,param_01)
{
param_00 endon("death");
param_00 endon("disconnect");
param_00 endon("unset_passive_double_kill_super");
param_00 notify("watchDoubleKillSuperPassive");
param_00 endon("watchDoubleKillSuperPassive");
if(!scripts\mp\_utility::func_9FB3(param_00.passivedoublekillpending))
{
param_00.passivedoublekillpending = 1;
}
else
{
param_00.passivedoublekillpending = undefined;
param_00 scripts\mp\_supers::func_83AA(200);
param_00 func_3E2F("passive_double_kill_super");
return;
}
wait(4);
param_00.passivedoublekillpending = undefined;
}
//Function Number: 190
setmodeswitchkillweapon(param_00,param_01)
{
if(!scripts\mp\_class::func_13C96(param_01,function_02C4(param_01),"passive_mode_switch_score") || scripts\mp\_class::func_13C96(param_01,function_02C4(param_01),"passive_mode_switch_score_epic"))
{
return;
}
var_02 = param_00.modeswitchkills;
if(!isdefined(var_02))
{
resetmodeswitchkillweapons(param_00);
}
var_03 = getmodeswitchkillweaponkey(param_01);
var_04 = var_02.arr[var_03];
if(!isdefined(var_04))
{
var_04 = spawnstruct();
var_04.var_C234 = 0;
var_04.killinaltmode = undefined;
var_02.arr[var_03] = var_04;
}
}
//Function Number: 191
unsetmodeswitchkillweapon(param_00,param_01)
{
var_02 = param_00.modeswitchkills;
if(!isdefined(var_02))
{
return;
}
var_03 = getmodeswitchkillweaponkey(param_01);
var_02.arr[var_03] = undefined;
}
//Function Number: 192
resetmodeswitchkillweapons(param_00)
{
var_01 = spawnstruct();
var_01.arr = [];
param_00.modeswitchkills = var_01;
thread watchmodeswitchkillweaponsdrop(param_00);
}
//Function Number: 193
watchmodeswitchkillweaponsdrop(param_00)
{
param_00 endon("death");
param_00 endon("disconnect");
param_00 notify("watchModeSwitchKillWeaponsDrop");
param_00 endon("watchModeSwitchKillWeaponsDrop");
var_01 = param_00.modeswitchkills;
for(;;)
{
var_02 = param_00 getweaponslistprimaries();
var_03 = [];
var_04 = [];
for(var_05 = 0;var_05 < var_02.size;var_05++)
{
var_06 = var_02[var_05];
var_03[var_05] = scripts\mp\_utility::func_8234(var_06);
var_04[var_05] = function_02C4(var_06);
}
var_07 = getarraykeys(var_01.arr);
var_08 = [];
var_09 = [];
for(var_05 = 0;var_05 < var_07.size;var_05++)
{
var_0A = var_07[var_05];
var_0B = strtok(var_0A,"_");
var_08[var_05] = var_0B[0];
var_09[var_05] = var_0B[1];
}
for(var_05 = 0;var_05 < var_07.size;var_05++)
{
for(var_0C = 0;var_0C < var_02.size;var_0C++)
{
if(var_08[var_05] != var_03[var_0C])
{
continue;
}
if(var_09[var_05] != var_04[var_0C])
{
continue;
}
unsetmodeswitchkillweapon(param_00,var_02[var_0C]);
break;
}
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 194
updatemodeswitchweaponkills(param_00,param_01,param_02)
{
var_03 = param_00.modeswitchkills;
if(!isdefined(var_03))
{
return;
}
if(scripts\mp\_utility::func_8238(param_02) != "primary")
{
return;
}
var_04 = scripts\mp\_utility::func_8234(param_02);
var_05 = function_02C4(param_02);
if(!isdefined(var_05))
{
return;
}
var_06 = var_04 + "_" + var_05;
var_07 = var_03.arr[var_06];
if(!isdefined(var_07))
{
return;
}
var_08 = param_00 method_8519(param_02);
if(!isdefined(var_07.killinaltmode) || var_07.killinaltmode == var_08)
{
var_07.var_C234++;
if(var_07.var_C234 >= 2)
{
var_09 = var_07.var_C234 - 2;
if(scripts\common\utility::func_B8F8(var_09,2) == 0)
{
param_00 func_3E2F("passive_mode_switch_score");
}
}
}
else
{
var_07.var_C234 = 1;
if(param_00 scripts\mp\_utility::_hasperk("passive_mode_switch_score_epic"))
{
var_0A = "mode_switch_kill_epic";
}
else
{
var_0A = "mode_switch_kill";
}
param_00 thread scripts\mp\_rank::func_EC2D(var_0A);
var_0B = scripts\mp\_rank::func_8104(var_0A);
param_00 thread scripts\mp\_rank::func_EC42(var_0B);
param_00 scripts\mp\killstreaks\_killstreaks::func_83A7(var_0A,var_0B);
}
var_07.killinaltmode = var_08;
}
//Function Number: 195
getmodeswitchkillweaponkey(param_00)
{
return scripts\mp\_utility::func_8234(param_00) + "_" + function_02C4(param_00);
}
//Function Number: 196
handlemeleeconeexplodeonkillpassive(param_00,param_01,param_02,param_03)
{
if(!param_00 method_8519(param_02))
{
return;
}
if(param_03 != "MOD_MELEE")
{
return;
}
var_04 = param_00 gettagorigin("j_spineupper");
var_05 = param_00 getplayerangles();
var_06 = anglestoforward(var_05);
var_07 = anglestoup(var_05);
var_08 = var_04 - var_06 * 128;
var_09 = 453;
thread meleeconeexplodeworldfx(var_04,var_05,param_00);
thread meleeconeexplodeattackerfx(param_00);
param_01 thread scripts\mp\_damage::enqueuecorpsetablefunc("passive_melee_cone_expl",::meleeconeexplodevictimcorpsefx);
foreach(var_0B in level.players)
{
if(var_0B == param_00)
{
continue;
}
if(!scripts\mp\_utility::func_9F19(var_0B))
{
continue;
}
if(!lib_0DF8::func_213D(param_00,var_0B))
{
continue;
}
if(level.var_740A == 0 && !scripts\mp\_utility::func_9FB3(scripts\mp\_utility::playersareenemies(param_00,var_0B)))
{
continue;
}
if(!scripts\mp\_utility::func_D64B(var_0B gettagorigin("tag_eye"),var_08,var_06,var_07,var_09,128,18))
{
if(!scripts\mp\_utility::func_D64B(var_0B gettagorigin("tag_origin"),var_08,var_06,var_07,var_09,128,18))
{
if(!scripts\mp\_utility::func_D64B(var_0B gettagorigin("j_mainroot"),var_08,var_06,var_07,var_09,128,18))
{
continue;
}
}
}
if(var_0B method_808F(var_04,param_00) <= 0)
{
continue;
}
var_0C = min(325,distance(var_04,var_0B geteye()));
var_0D = 1 - var_0C / 325;
var_0E = 80 + var_0D * 60;
var_0B dodamage(var_0E,var_04,param_00,param_00,"MOD_EXPLOSIVE",param_02);
if(scripts\mp\_utility::func_9F19(var_0B))
{
thread meleeconeexplodevictimfx(var_0B);
continue;
}
var_0B thread scripts\mp\_damage::enqueuecorpsetablefunc("passive_melee_cone_expl",::meleeconeexplodevictimcorpsefx);
}
}
//Function Number: 197
meleeconeexplodeworldfx(param_00,param_01,param_02)
{
var_03 = anglestoforward(param_01);
param_00 = param_00 + var_03 * 10;
var_04 = spawn("script_model",param_00);
var_04.angles = param_01;
var_04 method_831F(param_02);
var_04 method_82DD(param_02);
var_04 setmodel("passive_mp_meleeConeExpl");
if(lib_0DF8::func_9DDF(param_02))
{
var_04 setscriptablepartstate("effects","activePhase");
}
else
{
var_04 setscriptablepartstate("effects","active");
}
wait(0.2);
physicsexplosionsphere(param_00,128,0,1);
wait(0.2);
var_04 delete();
}
//Function Number: 198
meleeconeexplodeattackerfx(param_00)
{
param_00 endon("disconnect");
param_00 notify("meleeConeExplodeAttackerVfx");
param_00 endon("meleeConeExplodeAttackerVfx");
param_00 setscriptablepartstate("weaponPassiveMeleeConeExplAttacker","active");
scripts\common\utility::waittill_any_timeout_1(0.2);
param_00 setscriptablepartstate("weaponPassiveMeleeConeExplAttacker","neutral");
}
//Function Number: 199
meleeconeexplodevictimfx(param_00)
{
param_00 endon("disconnect");
param_00 notify("meleeConeExplodeVictimVfx");
param_00 endon("meleeConeExplodeVictimVfx");
param_00 setscriptablepartstate("weaponPassiveMeleeConeExplVictim","active",0);
param_00 scripts\common\utility::waittill_any_timeout_1(2.75);
param_00 setscriptablepartstate("weaponPassiveMeleeConeExplVictim","neutral",0);
}
//Function Number: 200
meleeconeexplodevictimcorpsefx(param_00)
{
param_00 setscriptablepartstate("weaponPassiveMeleeConeExplVictim","active",0);
wait(2.75);
if(isdefined(param_00))
{
param_00 setscriptablepartstate("weaponPassiveMeleeConeExplVictim","neutral",0);
}
}
//Function Number: 201
handleleaderkillscorepassive(param_00,param_01,param_02)
{
if(scripts\mp\_utility::func_821D(param_02) != scripts\mp\_utility::func_821D(param_00 getcurrentprimaryweapon()))
{
return;
}
var_03 = [];
if(!level.teambased)
{
var_03 = scripts\common\utility::func_22A9(level.players,param_00);
}
else
{
var_03 = scripts\mp\_utility::func_81A0(scripts\mp\_utility::getotherteam(param_00.team));
}
var_04 = 1;
foreach(var_06 in var_03)
{
if(param_01.var_278 >= var_06.var_278)
{
continue;
}
var_04 = 0;
break;
}
if(!var_04)
{
return;
}
var_08 = "leader_kill_" + int(min(var_03.size,5));
param_00 thread scripts\mp\_rank::func_EC2D(var_08);
var_09 = scripts\mp\_rank::func_8104(var_08);
param_00 thread scripts\mp\_rank::func_EC42(var_09);
param_00 scripts\mp\killstreaks\_killstreaks::func_83A7(var_08,var_09);
}
//Function Number: 202
handlepowermeleeondamagepassive(param_00,param_01,param_02,param_03)
{
if(param_03 != "MOD_MELEE")
{
return;
}
var_04 = param_00 gettagorigin("j_spineupper");
var_05 = param_00 getplayerangles();
var_06 = anglestoforward(var_05);
var_07 = anglestoup(var_05);
thread meleeconeexplodeattackerfx(param_00);
wait(0.01);
}