mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-04 21:27:51 -05:00
3499 lines
74 KiB
Plaintext
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);
|
|
} |