mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
3019 lines
70 KiB
Plaintext
3019 lines
70 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3260.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 71
|
|
* Decompile Time: 98 ms
|
|
* Timestamp: 10/27/2023 12:26:31 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
main()
|
|
{
|
|
if(isdefined(level.createfx_enabled) && level.createfx_enabled)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level thread func_B982();
|
|
if(!scripts\common\utility::istrue(level.generic_zombie_agent_func_init_done))
|
|
{
|
|
level.agent_funcs["generic_zombie"]["on_damaged"] = ::func_C5CD;
|
|
level.agent_funcs["generic_zombie"]["gametype_on_damage_finished"] = ::func_C5CE;
|
|
level.agent_funcs["generic_zombie"]["gametype_on_killed"] = ::func_C5D2;
|
|
level.generic_zombie_agent_func_init_done = 1;
|
|
}
|
|
|
|
level.agent_funcs["zombie_brute"]["on_damaged"] = ::func_C5CD;
|
|
level.agent_funcs["zombie_brute"]["gametype_on_damage_finished"] = ::func_C5CE;
|
|
level.agent_funcs["zombie_brute"]["gametype_on_killed"] = ::func_C5D2;
|
|
level.var_3762 = ::func_3759;
|
|
level.agent_funcs["c6"]["on_damaged"] = ::func_C5CD;
|
|
level.agent_funcs["c6"]["gametype_on_damage_finished"] = ::func_C5CE;
|
|
level.agent_funcs["c6"]["gametype_on_killed"] = ::func_C5D2;
|
|
level.agent_funcs["the_hoff"]["on_damaged"] = ::onhoffdamaged;
|
|
level.agent_funcs["the_hoff"]["gametype_on_damage_finished"] = ::func_C5CE;
|
|
level.agent_funcs["the_hoff"]["gametype_on_killed"] = ::func_C5D2;
|
|
level.var_768B = ::func_777C;
|
|
level.var_93A2 = ::scripts\cp\zombies\zombies_spawning::func_9C12;
|
|
level.var_71D7 = ::func_13FA9;
|
|
level.var_BCCE["generic_zombie"] = ::func_E7FD;
|
|
if(!isdefined(level.eligable_for_reward_func))
|
|
{
|
|
level.eligable_for_reward_func = ::base_eligable_for_reward_func;
|
|
}
|
|
|
|
if(!isdefined(level.should_do_damage_check_func))
|
|
{
|
|
level.should_do_damage_check_func = ::base_should_do_damage_check;
|
|
}
|
|
|
|
level.var_A8B4 = gettime();
|
|
level.var_7456 = ::scripts\cp\zombies\zombie_scriptable_states::func_7383;
|
|
level.var_11768 = ::scripts\cp\zombies\zombie_scriptable_states::func_12B9A;
|
|
level thread func_97BA();
|
|
level.var_7089 = ::func_78C1;
|
|
level.var_7088 = ::scripts\cp\_utility::func_78B4;
|
|
level.no_pain_volume = getent("no_pain_volume","targetname");
|
|
}
|
|
|
|
//Function Number: 2
|
|
base_eligable_for_reward_func(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 3
|
|
base_should_do_damage_check(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 4
|
|
onhoffdamaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_C5CD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
var_0C = self;
|
|
if(!isdefined(self.agent_type))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(param_04 != "MOD_SUICIDE")
|
|
{
|
|
if(scripts\mp\_mp_agent::func_9BEA(var_0C,param_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\mp\_mp_agent::func_9BEA(var_0C,param_00))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = self;
|
|
}
|
|
|
|
var_0D = func_FF2E(param_01,param_02,param_04,param_05,param_08,var_0C);
|
|
if(!var_0D)
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_03 = param_03 | 4;
|
|
var_0E = isdefined(var_0C.agent_type) && var_0C.agent_type == "zombie_brute";
|
|
var_0F = isdefined(var_0C.agent_type) && var_0C.agent_type == "zombie_grey";
|
|
var_10 = isdefined(var_0C.agent_type) && var_0C.agent_type == "slasher";
|
|
var_11 = isdefined(var_0C.agent_type) && var_0C.agent_type == "superslasher";
|
|
var_12 = scripts\common\utility::istrue(var_0C.var_9CDD);
|
|
var_13 = param_04 == "MOD_MELEE";
|
|
var_14 = scripts\common\utility::istrue(param_01.inlaststand);
|
|
var_15 = isdefined(self.var_9E0C) && isdefined(param_05) && !scripts\cp\_weapon::func_9E02(param_05) || param_04 == "MOD_MELEE";
|
|
var_16 = scripts\cp\_weapon::func_9D3D(param_05);
|
|
var_17 = scripts\common\utility::func_9D74(param_04) || param_04 == "MOD_EXPLOSIVE_BULLET" && param_08 != "none";
|
|
var_18 = isdefined(param_01) && isplayer(param_01);
|
|
var_19 = var_17 && scripts\cp\_utility::func_9E27(param_05,param_08,param_04,param_01);
|
|
var_1A = (param_01 scripts\cp\_weapon::func_8BD1(param_05,"overclock") || param_01 scripts\cp\_weapon::func_8BD1(param_05,"overclockcp")) && var_17;
|
|
var_1B = scripts\common\utility::istrue(self.var_28E0);
|
|
var_1C = scripts\common\utility::istrue(level.var_9925) && !var_0E && !var_0F;
|
|
var_1D = !var_14 && var_19 && var_17 && param_01 scripts\cp\_utility::func_9BA0("headshot_explosion");
|
|
var_1E = (param_04 == "MOD_EXPLOSIVE_BULLET" && isdefined(param_08) && param_08 == "none") || param_04 == "MOD_EXPLOSIVE" || param_04 == "MOD_GRENADE_SPLASH" || param_04 == "MOD_PROJECTILE" || param_04 == "MOD_PROJECTILE_SPLASH";
|
|
var_1F = var_13 && param_01 scripts\cp\_utility::func_9BA0("increased_melee_damage");
|
|
var_20 = scripts\common\utility::istrue(self.var_9340);
|
|
var_21 = scripts\cp\_utility::func_9D3E(param_05);
|
|
var_22 = var_13 && param_01 scripts\cp\_utility::func_9BA0("shock_melee_upgrade");
|
|
if(isdefined(param_05) && issubstr(param_05,"iw7_gauss_zml"))
|
|
{
|
|
var_23 = 250;
|
|
if(scripts\cp\_utility::func_13C90(param_05,"pap1"))
|
|
{
|
|
var_23 = 470;
|
|
}
|
|
|
|
if(scripts\cp\_utility::func_13C90(param_05,"pap2"))
|
|
{
|
|
var_23 = 734;
|
|
}
|
|
|
|
if(scripts\cp\_utility::func_13C90(param_05,"doubletap"))
|
|
{
|
|
var_23 = 1.33 * var_23;
|
|
}
|
|
|
|
if(param_02 >= var_23)
|
|
{
|
|
self.hitbychargedshot = param_01;
|
|
}
|
|
}
|
|
|
|
if(isplayer(param_01))
|
|
{
|
|
if(scripts\common\utility::istrue(self.marked_shared_fate_fnf))
|
|
{
|
|
param_01 notify("weapon_hit_marked_target",param_01,param_02,param_04,param_05,self);
|
|
}
|
|
|
|
if(issubstr(param_05,"iw7_harpoon2_zm"))
|
|
{
|
|
param_01 notify("zombie_hit_by_ben",param_06,self,self.maxhealth);
|
|
}
|
|
}
|
|
|
|
if(var_18)
|
|
{
|
|
self.damaged_by_player = 1;
|
|
if(scripts\common\utility::istrue(param_01.stimulus_active))
|
|
{
|
|
playfx(level._effect["stimulus_glow_burst"],self gettagorigin("j_spineupper"));
|
|
scripts\common\utility::play_sound_in_space("zmb_fnf_stimulus",self gettagorigin("j_spineupper"));
|
|
foreach(var_25 in level.players)
|
|
{
|
|
if(var_25 == param_01)
|
|
{
|
|
if(distance2dsquared(var_25.origin,self.origin) <= 10000)
|
|
{
|
|
playfx(level._effect["stimulus_glow_burst"],self gettagorigin("j_spineupper"));
|
|
playfx(level._effect["stimulus_shield"],var_25 gettagorigin("tag_eye"),anglestoforward(var_25.angles),anglestoup(var_25.angles),var_25);
|
|
if(param_02 >= self.health)
|
|
{
|
|
if(scripts\common\utility::istrue(var_25.inlaststand))
|
|
{
|
|
lib_0D59::revive_downed_entities(var_25);
|
|
}
|
|
}
|
|
|
|
if(var_25.health + param_02 / level.players.size + 1 >= var_25.maxhealth)
|
|
{
|
|
var_25.health = var_25.maxhealth;
|
|
}
|
|
else
|
|
{
|
|
var_25.health = int(var_25.health + param_02 / level.players.size + 1);
|
|
}
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(distance2dsquared(var_25.origin,self.origin) <= 10000)
|
|
{
|
|
playfx(level._effect["stimulus_glow_burst"],self gettagorigin("j_spineupper"));
|
|
playfx(level._effect["stimulus_shield"],var_25 gettagorigin("tag_eye"));
|
|
if(param_02 >= self.health)
|
|
{
|
|
if(scripts\common\utility::istrue(var_25.inlaststand))
|
|
{
|
|
lib_0D59::revive_downed_entities(var_25);
|
|
}
|
|
}
|
|
|
|
if(int(var_25.health + param_02 / level.players.size + 1) >= var_25.maxhealth)
|
|
{
|
|
var_25.health = var_25.maxhealth;
|
|
continue;
|
|
}
|
|
|
|
var_25.health = int(var_25.health + param_02 / level.players.size + 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_01.deadeye_charge))
|
|
{
|
|
param_02 = param_02 * 1.25;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_01.var_9CEF) && param_01.var_9CEF && param_04 != "MOD_SUICIDE")
|
|
{
|
|
if(var_0E)
|
|
{
|
|
param_02 = int(param_02 * 1.5);
|
|
}
|
|
else
|
|
{
|
|
param_02 = param_01.var_B57A;
|
|
}
|
|
}
|
|
|
|
var_27 = 0;
|
|
if(!var_13 && checkaltmodestatus(param_05) && var_18 && !isdefined(param_01.var_AD2C) && param_01 scripts\cp\_utility::func_9BA0("sniper_soft_upgrade"))
|
|
{
|
|
var_27 = param_01 scripts\cp\_utility::func_4626(param_05) == "weapon_sniper";
|
|
}
|
|
|
|
var_28 = scripts\common\utility::istrue(level.var_69FA) && isdefined(param_04) && param_04 == "MOD_UNKNOWN";
|
|
if(var_28 && var_0F || var_0E)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_29 = !var_0E && !var_0F && var_1B || var_1C || var_22 || var_28 || var_15 || var_1A || var_1D || var_1F || var_27;
|
|
var_2A = isdefined(self.var_9E0C);
|
|
if(scripts\cp\powers\coop_armageddon::func_9DF5(param_05) && !var_0E && !var_0F)
|
|
{
|
|
thread scripts\cp\powers\coop_armageddon::func_6F33(param_00.origin,param_06,param_07);
|
|
return;
|
|
}
|
|
else if(isdefined(param_05) && scripts\cp\_weapon::func_9E02(param_05) && !var_13 && !var_16)
|
|
{
|
|
var_2B = param_01 scripts\cp\_weapon::func_7D62(param_05);
|
|
var_2C = func_800A(self,var_2B);
|
|
if(!var_2A && !var_20 && !var_0E && !var_12)
|
|
{
|
|
var_2D = 10 * level.var_3B0F;
|
|
if(param_01 scripts\cp\_utility::func_9BA0("hit_reward_upgrade"))
|
|
{
|
|
param_01 scripts\cp\_utility::func_C151("hit_reward_upgrade");
|
|
var_2D = var_2D * 2;
|
|
}
|
|
|
|
param_01 scripts\cp\_persistence::func_82F9(var_2D,"large",param_08);
|
|
param_01 notify("weapon_hit_enemy",self,param_01,param_05,param_02,param_08,param_04);
|
|
if(param_05 == "zfreeze_semtex_mp" || isdefined(self.var_7455) && self.var_7455 >= var_2C || var_1C)
|
|
{
|
|
self.var_7455 = undefined;
|
|
self.var_9E0C = 1;
|
|
thread scripts\cp\zombies\zombie_scriptable_states::applyzombiescriptablestate(self);
|
|
}
|
|
else if(isdefined(self.var_7455))
|
|
{
|
|
self.var_7455++;
|
|
if(var_2C > 15 && self.var_7455 >= 8)
|
|
{
|
|
self.allowpain = 1;
|
|
}
|
|
|
|
if(self.var_7455 / var_2C > 0.33)
|
|
{
|
|
self.var_1031A = 1;
|
|
}
|
|
|
|
thread scripts\cp\zombies\zombie_scriptable_states::func_E123(self);
|
|
}
|
|
else
|
|
{
|
|
self.var_7455 = 1;
|
|
thread scripts\cp\zombies\zombie_scriptable_states::func_E123(self);
|
|
thread scripts\cp\zombies\zombie_scriptable_states::applyzombiescriptablestate(self,var_2B);
|
|
}
|
|
}
|
|
else if(var_12)
|
|
{
|
|
if(isdefined(self.var_7455))
|
|
{
|
|
self.var_7455++;
|
|
}
|
|
else
|
|
{
|
|
self.var_7455 = 1;
|
|
}
|
|
|
|
if(self.var_7455 <= var_2C)
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
param_02 = self.maxhealth;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
else if(!var_2A && var_16)
|
|
{
|
|
return;
|
|
}
|
|
else if(var_29 && !var_0E && !var_0F)
|
|
{
|
|
if(var_27)
|
|
{
|
|
param_01 scripts\cp\_utility::func_C151("sniper_soft_upgrade");
|
|
}
|
|
|
|
param_02 = int(self.maxhealth);
|
|
if(var_22)
|
|
{
|
|
if(isdefined(param_06))
|
|
{
|
|
playfx(level._effect["shock_melee_impact"],param_06);
|
|
}
|
|
|
|
param_01 thread scripts\cp\zombies\zombie_damage::func_11193(self geteye(),self,self.maxhealth,"MOD_UNKNOWN",undefined,var_22);
|
|
}
|
|
|
|
if(var_17)
|
|
{
|
|
param_01 notify("weapon_hit_enemy",self,param_01,param_05,param_02,param_08,param_04);
|
|
}
|
|
}
|
|
else if(!var_0F)
|
|
{
|
|
param_08 = func_FE39(param_01,param_04,param_05,param_08);
|
|
var_2E = level.wave_num;
|
|
var_2F = func_9BF7(param_05,param_04);
|
|
var_30 = scripts\common\utility::istrue(self.var_9B81) && !var_17;
|
|
var_31 = var_19 && param_01 scripts\cp\_utility::func_9BA0("sharp_shooter_upgrade");
|
|
var_32 = var_17 && param_01 scripts\cp\_utility::func_9BA0("bonus_damage_on_last_bullets");
|
|
var_33 = var_17 && param_01 scripts\cp\_utility::func_9BA0("damage_booster_upgrade");
|
|
var_34 = var_17 && isdefined(param_01.special_ammo_weapon) && param_01.special_ammo_weapon == param_05;
|
|
var_35 = var_18 && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_boom");
|
|
var_36 = var_18 && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_smack");
|
|
var_37 = func_9B73(param_05);
|
|
var_38 = weaponclass(param_05) == "spread" && param_01 scripts\cp\_weapon::func_8BD1(param_05,"smart");
|
|
var_39 = weaponclass(param_05) == "spread" && !var_38 && param_01 scripts\cp\_weapon::func_8BD1(param_05,"arkpink") || scripts\cp\_weapon::func_8BD1(param_05,"arkyellow");
|
|
var_3A = var_19 && var_17 && param_01 scripts\cp\_weapon::func_8BD1(param_05,"highcal");
|
|
if(var_21 && issubstr(param_05,"+gl"))
|
|
{
|
|
param_02 = scalegldamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
|
}
|
|
|
|
if(var_38)
|
|
{
|
|
param_02 = param_02 * 0.5;
|
|
}
|
|
|
|
if(isdefined(param_02) && isdefined(param_08) && !var_1C && var_17)
|
|
{
|
|
var_3B = lib_0D48::func_D96F(var_0C,param_01,param_02,param_08,param_07);
|
|
if(var_3B <= 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_02 = var_3B;
|
|
}
|
|
|
|
param_02 = func_9830(undefined,param_01,param_02,undefined,param_04,param_05,undefined,undefined,param_08,undefined,undefined,undefined);
|
|
if(var_39)
|
|
{
|
|
param_02 = param_02 * 4;
|
|
}
|
|
|
|
if(var_18)
|
|
{
|
|
if(var_13)
|
|
{
|
|
if(param_01 scripts\cp\_weapon::func_8BD1(param_05,"meleervn"))
|
|
{
|
|
param_02 = param_02 + int(1500 * param_01 scripts\cp\_weapon::func_7D62(param_05));
|
|
}
|
|
|
|
param_02 = int(param_02 * param_01 lib_0CFC::func_CA3A());
|
|
if(isdefined(param_01.passive_melee_kill_damage))
|
|
{
|
|
param_02 = param_02 + param_01.passive_melee_kill_damage;
|
|
}
|
|
|
|
if(var_36)
|
|
{
|
|
param_02 = param_02 + 1500;
|
|
}
|
|
|
|
var_3C = 0;
|
|
if(param_02 >= self.health)
|
|
{
|
|
var_3C = 1;
|
|
}
|
|
|
|
if(isdefined(param_01.increased_melee_damage))
|
|
{
|
|
param_02 = param_02 + param_01.increased_melee_damage;
|
|
}
|
|
|
|
if(var_37 || var_36)
|
|
{
|
|
if(var_37)
|
|
{
|
|
param_01 notify("axe_melee_hit",param_05,self,param_02);
|
|
if(var_3C && !isdefined(self.var_AAA8))
|
|
{
|
|
thread func_AA56(param_01,param_05,var_36);
|
|
return;
|
|
}
|
|
}
|
|
else if(var_3C)
|
|
{
|
|
self.var_102CD = 1;
|
|
}
|
|
}
|
|
else if(var_3C && param_01.var_134FD == "p1_")
|
|
{
|
|
thread func_107E1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
|
}
|
|
}
|
|
|
|
if(var_34)
|
|
{
|
|
param_01 thread scripts\cp\zombies\zombie_damage::func_11193(self geteye(),self,param_02,param_04,128);
|
|
}
|
|
|
|
if(var_35 && var_1E)
|
|
{
|
|
param_02 = int(param_02 * 2);
|
|
}
|
|
}
|
|
|
|
if(var_31)
|
|
{
|
|
param_02 = param_02 * 3;
|
|
}
|
|
|
|
if(var_32)
|
|
{
|
|
var_3D = int(param_01 getweaponammoclip(param_01 getcurrentweapon()) + 1);
|
|
var_3E = weaponclipsize(param_01 getcurrentweapon());
|
|
if(var_3D <= 4)
|
|
{
|
|
param_02 = param_02 * 2;
|
|
}
|
|
}
|
|
|
|
if(var_17 && scripts\common\utility::istrue(param_01.var_DF50))
|
|
{
|
|
param_02 = param_02 * 2;
|
|
}
|
|
|
|
if(var_2F)
|
|
{
|
|
param_02 = param_02 * min(2 + var_2E * 0.5,10);
|
|
}
|
|
|
|
if(var_33)
|
|
{
|
|
param_02 = int(param_02 * 2);
|
|
}
|
|
|
|
if(var_3A)
|
|
{
|
|
param_02 = param_02 * 1.2;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_01.var_CA2F) && param_01.var_CA2F["damagemod"].var_3237 == 2 && var_17)
|
|
{
|
|
param_02 = param_02 * 1.33;
|
|
}
|
|
|
|
if(isdefined(level.var_4D0F))
|
|
{
|
|
if(!scripts\common\utility::flag("start_tracking_dps"))
|
|
{
|
|
scripts\common\utility::flag_set("start_tracking_dps");
|
|
}
|
|
|
|
if(isdefined(level.var_5B0F))
|
|
{
|
|
level.var_5B0F = gettime();
|
|
}
|
|
|
|
if(isdefined(param_01.var_11A22))
|
|
{
|
|
param_01.var_11A22 = param_01.var_11A22 + param_02;
|
|
}
|
|
}
|
|
|
|
param_02 = func_FFBC(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
|
param_02 = func_6BA4(self,param_05,param_02,var_0F,var_0E,var_11,var_10);
|
|
if(var_0E)
|
|
{
|
|
if(isdefined(level.var_3111))
|
|
{
|
|
param_02 = self [[ level.var_3111 ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_05) && issubstr(param_05,"arcane") || issubstr(param_05,"ark"))
|
|
{
|
|
param_02 = param_02 * 1.2;
|
|
}
|
|
|
|
if(isdefined(level.onzombiedamage_func))
|
|
{
|
|
param_02 = [[ level.onzombiedamage_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
|
}
|
|
|
|
if(isdefined(param_01.special_zombie_damage) && var_0E || var_0F || var_12)
|
|
{
|
|
param_02 = param_02 * param_01.special_zombie_damage;
|
|
}
|
|
|
|
if(isplayer(param_01) && scripts\cp\_utility::func_9C42(param_05,1))
|
|
{
|
|
playfx(level._effect["melee_impact"],self gettagorigin("j_neck"),vectortoangles(self.origin - param_01.origin),anglestoup(self.angles),param_01);
|
|
}
|
|
|
|
if(isdefined(self.hitbychargedshot) && !self.health - param_02 < 1)
|
|
{
|
|
self.hitbychargedshot = undefined;
|
|
}
|
|
|
|
param_02 = int(min(param_02,self.maxhealth));
|
|
if(self.health > 0 && self.health - param_02 <= 0)
|
|
{
|
|
if(self.var_54CB)
|
|
{
|
|
self.died_poorly_health = self.health;
|
|
}
|
|
|
|
if(isdefined(self.var_8B66))
|
|
{
|
|
lib_0D5E::func_CB84(self,self.var_8B66,param_01);
|
|
}
|
|
|
|
self method_80BB(0,0);
|
|
}
|
|
|
|
if(isplayer(param_01))
|
|
{
|
|
if(isdefined(level.var_12EDE))
|
|
{
|
|
level thread [[ level.var_12EDE ]](param_01,param_05,self);
|
|
}
|
|
|
|
param_01 notify("weapon_hit_enemy",self,param_01,param_05,param_02,param_08,param_04);
|
|
param_01 thread func_12EC5(getweaponbasename(param_05));
|
|
if(scripts\common\utility::func_9D74(param_04))
|
|
{
|
|
if(!isdefined(param_01.var_154B))
|
|
{
|
|
param_01.var_154B = 1;
|
|
}
|
|
else
|
|
{
|
|
param_01.var_154B++;
|
|
}
|
|
|
|
scripts\cp\_persistence::increment_player_career_shots_on_target(param_01);
|
|
scripts\cp\zombies\zombie_analytics::log_playershotsontarget(1,param_01,param_01.var_154B);
|
|
}
|
|
|
|
if(!isdefined(param_01.var_FF0A[getweaponbasename(param_05)]))
|
|
{
|
|
param_01.var_FF0A[getweaponbasename(param_05)] = 1;
|
|
}
|
|
else
|
|
{
|
|
param_01.var_FF0A[getweaponbasename(param_05)]++;
|
|
}
|
|
}
|
|
|
|
if(var_19 && var_18 && var_2A)
|
|
{
|
|
if(isdefined(self.var_7381))
|
|
{
|
|
self.var_7381 notify("headcutter_cryo_kill",param_01,self);
|
|
}
|
|
}
|
|
|
|
lib_0D5A::func_12D84(param_01,param_02,param_04);
|
|
if(!var_0E)
|
|
{
|
|
scripts\cp\_agent_utils::func_D96D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
|
|
}
|
|
|
|
if(!var_0E)
|
|
{
|
|
scripts\cp\_agent_utils::func_D96B(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
|
|
}
|
|
|
|
scripts\cp\_agent_utils::func_110A4(param_01,param_02);
|
|
scripts\cp\zombies\zmb_zombies_weapons::func_1094D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
|
if(var_18)
|
|
{
|
|
thread func_BF05(param_01);
|
|
}
|
|
|
|
if(var_0F)
|
|
{
|
|
param_02 = greywordamageadjust(param_02,param_05);
|
|
}
|
|
|
|
var_0C [[ level.agent_funcs[var_0C.agent_type]["on_damaged_finished"] ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,0,param_0A,param_0B);
|
|
}
|
|
|
|
//Function Number: 6
|
|
greywordamageadjust(param_00,param_01)
|
|
{
|
|
if(isdefined(param_00) && isdefined(param_01))
|
|
{
|
|
var_02 = getweaponbasename(param_01);
|
|
if(isdefined(var_02))
|
|
{
|
|
if(var_02 == "iw7_headcutter_zm_pap1" || var_02 == "iw7_dischord_zm_pap1" || var_02 == "iw7_facemelter_zm_pap1" || var_02 == "iw7_shredder_zm_pap1")
|
|
{
|
|
param_00 = param_00 * 1.2;
|
|
param_00 = min(param_00,20000);
|
|
}
|
|
}
|
|
}
|
|
|
|
return int(param_00);
|
|
}
|
|
|
|
//Function Number: 7
|
|
scalegldamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
var_0C = param_01 scripts\cp\_weapon::func_7D62(param_05);
|
|
var_0D = param_02 / 110;
|
|
if(!isdefined(var_0C))
|
|
{
|
|
return param_02;
|
|
}
|
|
|
|
if(param_04 != "MOD_GRENADE_SPLASH")
|
|
{
|
|
return param_02;
|
|
}
|
|
|
|
switch(var_0C)
|
|
{
|
|
case 1:
|
|
return 1000 * var_0D;
|
|
|
|
case 2:
|
|
return 1500 * var_0D;
|
|
|
|
case 3:
|
|
return 2000 * var_0D;
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_12EC5(param_00)
|
|
{
|
|
waittillframeend;
|
|
self notify("updateMagShots_" + param_00);
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_800A(param_00,param_01)
|
|
{
|
|
return min(int(param_00.maxhealth / 400 / param_01),10);
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_FFBC(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
if(isdefined(param_01.var_4A9A))
|
|
{
|
|
var_0C = "j_crotch";
|
|
if(isdefined(var_0C))
|
|
{
|
|
var_0D = self gettagorigin(var_0C);
|
|
var_0E = distance(var_0D,param_06);
|
|
var_0F = 10;
|
|
if(var_0E <= var_0F)
|
|
{
|
|
param_02 = param_02 * param_01.var_4A9A;
|
|
}
|
|
}
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_FF2E(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(!isdefined(param_03))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isplayer(param_00) && param_00 method_84D9())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_9B73(param_03) && param_01 < 10)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(![[ level.should_do_damage_check_func ]](param_00,param_01,param_02,param_03,param_04,param_05))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_9BF7(param_00,param_01)
|
|
{
|
|
var_02 = param_01 == "MOD_GRENADE_SPLASH" || param_01 == "MOD````_GRENADE";
|
|
return var_02 && param_00 == "throwingknifec4_mp";
|
|
}
|
|
|
|
//Function Number: 13
|
|
exploding_touch_fx(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
triggerfx(self.var_7542);
|
|
wait(0.5);
|
|
if(isdefined(self.var_7542))
|
|
{
|
|
self.var_7542 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
if(isdefined(self.var_1070B))
|
|
{
|
|
self.var_1070B delete();
|
|
}
|
|
|
|
if(isdefined(self.var_EF89))
|
|
{
|
|
self.var_EF89 delete();
|
|
self.var_EF89 = undefined;
|
|
}
|
|
|
|
if(isplayer(param_01) && param_01 scripts\cp\_utility::func_9BA0("explosive_touch"))
|
|
{
|
|
self.nocorpse = 1;
|
|
self.full_gib = 1;
|
|
if(isdefined(self.var_2C09))
|
|
{
|
|
self.death_by_exp_touch = 1;
|
|
}
|
|
}
|
|
|
|
if(issubstr(param_04,"iw7_knife") && isplayer(param_01) && scripts\cp\_utility::func_9C42(param_04))
|
|
{
|
|
param_01 thread func_F640(param_01);
|
|
}
|
|
else if((param_04 == "iw7_axe_zm" || param_04 == "iw7_axe_zm_pap1" || param_04 == "iw7_axe_zm_pap2") && isplayer(param_01) && scripts\cp\_utility::func_9C42(param_04))
|
|
{
|
|
param_01 thread func_F640(param_01);
|
|
}
|
|
|
|
if(isdefined(self.var_AD2B))
|
|
{
|
|
self.var_AD2B.var_13F0E = undefined;
|
|
self.var_AD2B = undefined;
|
|
}
|
|
|
|
if(!isplayer(param_01))
|
|
{
|
|
if(isdefined(param_01.name))
|
|
{
|
|
if(param_01.name == param_01.var_222.var_A039)
|
|
{
|
|
if(isdefined(param_01.var_222.var_A6C6[param_01.var_222.var_A039]))
|
|
{
|
|
param_01.var_222.var_A6C6[param_01.var_222.var_A039]++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(param_04 == "zmb_imsprojectile_mp")
|
|
{
|
|
for(var_09 = 0;var_09 < level.var_76CD;var_09++)
|
|
{
|
|
if(isdefined(level.var_76CC[var_09]))
|
|
{
|
|
if(level.var_76CC[var_09].var_A039 == "crafted_gascan")
|
|
{
|
|
if(!isdefined(level.var_76CB[level.var_76CC[var_09].name]))
|
|
{
|
|
level.var_76CB[level.var_76CC[var_09].name] = 1;
|
|
continue;
|
|
}
|
|
|
|
level.var_76CB[level.var_76CC[var_09].name]++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(issubstr(param_04,"venomx"))
|
|
{
|
|
if(scripts\common\utility::istrue(self.dot_triggered))
|
|
{
|
|
self.dot_triggered = undefined;
|
|
}
|
|
}
|
|
|
|
if(isplayer(param_01))
|
|
{
|
|
if(!scripts\common\utility::istrue(level.completed_venomx_pap1_challenges))
|
|
{
|
|
if(isdefined(level.cryptidkillswithvenomx))
|
|
{
|
|
if(level.splchosenagent == "cryptids" && self.agent_type == "alien_goon" || self.agent_type == "alien_phantom")
|
|
{
|
|
if(issubstr(param_04,"venomx"))
|
|
{
|
|
level thread scripts\cp\_utility::add_to_notify_queue("venomx_kill",self,self.origin,param_04,param_03);
|
|
level.cryptidkillswithvenomx++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if(isdefined(level.cryptidkillswithvenomxpap2))
|
|
{
|
|
if(level.splchosenagentpap2 == "special.zombies" && self.agent_type == "alien_goon" || self.agent_type == "alien_phantom" || self.agent_type == "zombie_clown" || self.agent_type == "karatemaster")
|
|
{
|
|
if(level.cryptidkillswithvenomxpap2 >= level.chosen_number_for_morse_code_pap2)
|
|
{
|
|
level.cryptidkillswithvenomxpap2 = level.chosen_number_for_morse_code_pap2;
|
|
}
|
|
else if(issubstr(param_04,"venomx"))
|
|
{
|
|
level thread scripts\cp\_utility::add_to_notify_queue("venomx_pap1_kill",self,self.origin,param_04,param_03);
|
|
level.cryptidkillswithvenomxpap2++;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.marked_shared_fate_fnf))
|
|
{
|
|
self.marked_shared_fate_fnf = 0;
|
|
param_01.marked_ents = scripts\common\utility::func_22A9(param_01.marked_ents,self);
|
|
self setscriptablepartstate("shared_fate_fx","inactive",1);
|
|
param_01 notify("weapon_hit_marked_target",param_01,param_02,param_03,param_04,self);
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.sniper_quest_on))
|
|
{
|
|
level notify("kill_near_bino_with_sniper",param_01,param_04,self);
|
|
}
|
|
|
|
if(isdefined(param_01.var_13C37) && param_01.var_13C37 > 1)
|
|
{
|
|
param_01.kill_with_extra_xp_passive = 1;
|
|
}
|
|
|
|
var_0A = (param_03 == "MOD_EXPLOSIVE_BULLET" && isdefined(param_06) && param_06 == "none") || param_03 == "MOD_EXPLOSIVE" || param_03 == "MOD_GRENADE_SPLASH" || param_03 == "MOD_PROJECTILE" || param_03 == "MOD_PROJECTILE_SPLASH";
|
|
if(var_0A)
|
|
{
|
|
if(!isdefined(param_01.explosive_kills))
|
|
{
|
|
param_01.explosive_kills = 1;
|
|
}
|
|
else
|
|
{
|
|
param_01.explosive_kills++;
|
|
}
|
|
|
|
scripts\cp\_persistence::increment_player_career_explosive_kills(param_01);
|
|
}
|
|
|
|
param_01.var_1AB++;
|
|
param_01.var_13C2F = scripts\cp\_utility::func_7DF7(param_04);
|
|
if(!isdefined(param_01.var_190B[param_01.var_13C2F]))
|
|
{
|
|
param_01.var_190B[param_01.var_13C2F] = 1;
|
|
}
|
|
else
|
|
{
|
|
param_01.var_190B[param_01.var_13C2F]++;
|
|
}
|
|
|
|
scripts\cp\zombies\zombie_analytics::func_AF92(1,level.wave_num,param_01,param_04,self.agent_type,self.origin);
|
|
if(scripts\common\utility::func_9D74(param_03) && param_04 != "incendiary_ammo_mp" && param_04 != "slayer_ammo_mp")
|
|
{
|
|
if(isdefined(param_06) && scripts\cp\_utility::func_9E27(param_04,param_06,param_03,param_01))
|
|
{
|
|
self playsoundtoplayer("zmb_player_achieve_headshot",param_01);
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_01.var_A035))
|
|
{
|
|
foreach(var_0C in level.var_D782)
|
|
{
|
|
if(var_0C.var_13CE0 == param_04)
|
|
{
|
|
if(var_0C.var_13CE0 == param_01.var_A035)
|
|
{
|
|
if(isdefined(param_01.var_A034[param_01.var_A035]))
|
|
{
|
|
param_01.var_A034[param_01.var_A035]++;
|
|
continue;
|
|
}
|
|
|
|
param_01.var_A034[param_01.var_A035] = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_01.team))
|
|
{
|
|
if(param_01.team == "allies")
|
|
{
|
|
if(!isplayer(param_01))
|
|
{
|
|
for(var_09 = 0;var_09 < level.var_E4BD;var_09++)
|
|
{
|
|
if(!isdefined(level.var_E4BB[level.var_E4BC[var_09].name]))
|
|
{
|
|
level.var_E4BB[level.var_E4BC[var_09].name] = 1;
|
|
continue;
|
|
}
|
|
|
|
level.var_E4BB[level.var_E4BC[var_09].name]++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scripts\cp\zombies\zombie_scriptable_states::func_1296F(self);
|
|
if(scripts\common\utility::func_6E34("force_drop_max_ammo") && scripts\common\utility::flag("force_drop_max_ammo") && param_03 != "MOD_SUICIDE")
|
|
{
|
|
if(isdefined(level.drop_max_ammo_func))
|
|
{
|
|
level thread [[ level.drop_max_ammo_func ]](self.origin,param_01,"ammo_max");
|
|
}
|
|
|
|
scripts\common\utility::func_6E2A("force_drop_max_ammo");
|
|
}
|
|
|
|
var_0E = isdefined(self.agent_type) && self.agent_type == "zombie_brute";
|
|
var_0F = isdefined(self.agent_type) && self.agent_type == "zombie_grey";
|
|
var_10 = scripts\common\utility::istrue(self.var_9CDD);
|
|
if(isdefined(level.var_12EFF) && isplayer(param_01))
|
|
{
|
|
param_01 thread [[ level.var_12EFF ]](self,param_04);
|
|
}
|
|
|
|
if(scripts\common\utility::func_9D74(param_03) && getweaponbasename(param_04) == "iw7_atomizer_mp" || scripts\common\utility::istrue(self.atomize_me))
|
|
{
|
|
if(!var_10 && !var_0F && !var_0E)
|
|
{
|
|
self playsound("bullet_atomizer_impact_npc");
|
|
if(isdefined(self.var_2C09))
|
|
{
|
|
self.var_2C09 thread func_CEF1();
|
|
self.var_2C09 hide(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isplayer(param_01))
|
|
{
|
|
param_01 notify("zombie_killed",self,self.origin,param_04,param_03);
|
|
}
|
|
|
|
if(!func_9EC6(self))
|
|
{
|
|
func_6563(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
if(isdefined(level.var_C5D3))
|
|
{
|
|
[[ level.var_C5D3 ]](param_01,param_04);
|
|
}
|
|
}
|
|
|
|
param_01 lib_0D59::func_8C9D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,self);
|
|
if(isdefined(level.var_108E1))
|
|
{
|
|
[[ level.var_108E1 ]](param_01,param_04);
|
|
}
|
|
|
|
if(isdefined(self.var_BE77) && !isdefined(self.var_1044D))
|
|
{
|
|
self.var_1044D = 1;
|
|
if(isdefined(param_01.var_A039))
|
|
{
|
|
if(param_01.var_A039 == "crafted_medusa")
|
|
{
|
|
if(!isdefined(param_01.var_A6C6[param_01.var_A039]))
|
|
{
|
|
param_01.var_A6C6[param_01.var_A039] = 1;
|
|
}
|
|
else
|
|
{
|
|
param_01.var_A6C6[param_01.var_A039]++;
|
|
}
|
|
}
|
|
}
|
|
|
|
level thread [[ level.var_B540 ]](self.origin,self.var_BE77,scripts\common\utility::istrue(self.var_565C));
|
|
}
|
|
|
|
if(isdefined(self.var_BE74) && !var_10)
|
|
{
|
|
if(isdefined(level.var_4297))
|
|
{
|
|
var_11 = level [[ level.var_4297 ]](self);
|
|
}
|
|
else
|
|
{
|
|
var_11 = undefined;
|
|
}
|
|
|
|
if(isdefined(var_11))
|
|
{
|
|
if(isdefined(level.var_4ADE))
|
|
{
|
|
thread delayminiufocollection(self.origin,param_04,var_11);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_DB5A))
|
|
{
|
|
level thread [[ level.var_DB5A ]](self);
|
|
}
|
|
|
|
if(isplayer(param_01) && isdefined(level.var_12EE0))
|
|
{
|
|
level thread [[ level.var_12EE0 ]](param_04,param_01,self,param_03,param_06);
|
|
}
|
|
|
|
self method_818B();
|
|
if(isdefined(self.anchor))
|
|
{
|
|
self.anchor delete();
|
|
}
|
|
|
|
if(isdefined(self.var_24CA))
|
|
{
|
|
lib_0D4D::func_DF34(self.var_24CA);
|
|
}
|
|
|
|
self.var_4298 = undefined;
|
|
self.var_24CA = undefined;
|
|
self.var_DD16 = undefined;
|
|
self.head_is_exploding = undefined;
|
|
self.rocket_feet = undefined;
|
|
self.dischord_spin = undefined;
|
|
self.var_12F77 = undefined;
|
|
self.shredder_death = undefined;
|
|
self.var_BE77 = undefined;
|
|
func_D97C(param_00,param_01,self,param_06,param_03,param_04);
|
|
func_D95F(param_01);
|
|
scripts\cp\_weaponrank::func_12861(param_01,param_04,param_06,param_03,self.agent_type);
|
|
if(isdefined(level.death_challenge_update_func))
|
|
{
|
|
[[ level.death_challenge_update_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
}
|
|
else
|
|
{
|
|
scripts\cp\_challenge::func_12DA9(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
}
|
|
|
|
scripts\cp\_merits::func_D95D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
param_01 scripts\cp\_utility::func_316C("kill_event_buffered",param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,self.agent_type);
|
|
scripts\cp\_agent_utils::func_4DDB();
|
|
lib_0D48::func_403E(self);
|
|
level notify("zombie_killed",self.origin,param_04,param_03);
|
|
}
|
|
|
|
//Function Number: 15
|
|
delayminiufocollection(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(param_02.expected_souls))
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_02.expected_souls++;
|
|
if(param_02.expected_souls > 1)
|
|
{
|
|
wait(0.05 * param_02.expected_souls);
|
|
}
|
|
|
|
level notify(level.var_4ADE,param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_F640(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
param_00 endon("disconnect");
|
|
param_00.var_B625 = 1;
|
|
waittillframeend;
|
|
param_00.var_B625 = 0;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_107E1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
if(param_08 != "neck" && param_08 != "head" && param_08 != "torso_upper")
|
|
{
|
|
wait(0.35);
|
|
playsoundatpos(self.origin,"melee_valleygirl_spoon_drop");
|
|
return;
|
|
}
|
|
|
|
if(randomint(100) > 30)
|
|
{
|
|
wait(0.35);
|
|
playsoundatpos(self.origin,"melee_valleygirl_spoon_drop");
|
|
return;
|
|
}
|
|
|
|
if(lib_0C73::func_9DD7(param_01,self.var_B607))
|
|
{
|
|
if(isdefined(self.agent_type) && self.agent_type != "zombie_brute" && self.agent_type != "zombie_grey" && self.agent_type != "zombie_clown")
|
|
{
|
|
self.var_10A57 = 1;
|
|
self setscriptablepartstate("spoon","active",1);
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
wait(0.35);
|
|
playsoundatpos(self.origin,"melee_valleygirl_spoon_drop");
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_CEF1()
|
|
{
|
|
var_00[0][0]["org"] = self gettagorigin("j_spineupper");
|
|
var_00[0][0]["angles"] = self gettagangles("j_spineupper");
|
|
var_00[0][1]["org"] = self gettagorigin("j_spinelower");
|
|
var_00[0][1]["angles"] = self gettagangles("j_spinelower");
|
|
var_01 = level._effect["atomize_body"];
|
|
foreach(var_03 in var_00)
|
|
{
|
|
foreach(var_05 in var_03)
|
|
{
|
|
playfx(var_01,var_05["org"],anglestoforward(var_05["angles"]));
|
|
}
|
|
|
|
wait(0.01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_FFAB(param_00)
|
|
{
|
|
switch(param_00.var_1096F)
|
|
{
|
|
case "zombie_grey":
|
|
return 0;
|
|
|
|
default:
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_D97C(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
func_82A2(param_00,param_01,param_03,param_04,param_05);
|
|
var_06 = scripts\cp\_agent_utils::func_77D7(param_02);
|
|
var_07 = scripts\cp\_utility::func_7844(param_01);
|
|
var_08 = 0;
|
|
var_09 = isdefined(self.var_8B66);
|
|
if(!isdefined(var_06))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_07))
|
|
{
|
|
var_0A = 0;
|
|
var_0B = scripts\cp\_utility::func_9E27(param_05,param_03,param_04,param_01);
|
|
if(var_0B)
|
|
{
|
|
var_0A = 1;
|
|
if(!isdefined(var_07.var_8CA0[scripts\cp\_utility::func_7DF7(param_05)]))
|
|
{
|
|
var_07.var_8CA0[scripts\cp\_utility::func_7DF7(param_05)] = 1;
|
|
var_07 scripts\cp\_persistence::func_666A("headShots",1);
|
|
}
|
|
else
|
|
{
|
|
var_07.var_8CA0[scripts\cp\_utility::func_7DF7(param_05)]++;
|
|
var_07 scripts\cp\_persistence::func_666A("headShots",1);
|
|
}
|
|
|
|
var_07.var_11A25++;
|
|
if(issubstr(param_05,"dischord"))
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_dischord","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else if(issubstr(param_05,"facemelter"))
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_melter","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else if(issubstr(param_05,"shredder"))
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_shredder","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else if(issubstr(param_05,"headcutter"))
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_cutter","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else if(issubstr(param_05,"harpoon"))
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_wonder","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else if(!scripts\cp\_utility::func_9CEB(param_00,param_05,self))
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_headshot","zmb_comment_vo","low",10,0,0,0,10);
|
|
}
|
|
}
|
|
else if(param_05 == "iw7_forgefreeze_zm+forgefreezealtfire" || param_05 == "iw7_forgefreeze_zm" || param_05 == "alt_iw7_forgefreeze_zm+forgefreezealtfire")
|
|
{
|
|
var_0A = 1;
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_freeze","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else if(scripts\cp\_utility::func_7DF7(param_05) == "iw7_cutie")
|
|
{
|
|
if(issubstr(param_05,"cutiecrank") ^ issubstr(param_05,"cutiegrip"))
|
|
{
|
|
if(var_07.var_134FD == "p5_" || var_07.var_134FD == "p6_")
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("ww_1","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_ww_1","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
}
|
|
else if(issubstr(param_05,"cutiegrip") && issubstr(param_05,"cutiecrank"))
|
|
{
|
|
if(var_07.var_134FD == "p5_")
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("ww_2","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_ww_2","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
}
|
|
else if(var_07.var_134FD == "p5_" || var_07.var_134FD == "p6_")
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("ww_1","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_ww_1","zmb_comment_vo","high",10,0,0,0,10);
|
|
}
|
|
}
|
|
|
|
if(var_0A == 0)
|
|
{
|
|
if(randomint(100) > 50)
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
else
|
|
{
|
|
if(isdefined(param_02.var_13550))
|
|
{
|
|
if(param_02.var_13550 == "zmb_vo_clown_")
|
|
{
|
|
level thread lib_0D62::func_CE9C(param_02,"death",1);
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_clown","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
|
|
if(param_02.agent_type == "zombie_cop")
|
|
{
|
|
if(randomint(100) > 60)
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_cop","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else if(param_02.agent_type == "alien_goon")
|
|
{
|
|
if(randomint(100) > 60)
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_cryptid","rave_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else if(param_02.agent_type == "zombie_sasquatch")
|
|
{
|
|
if(randomint(100) > 60)
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_sasquatch","rave_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else if(param_02.agent_type == "lumberjack")
|
|
{
|
|
if(randomint(100) > 60)
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_lumberjack","rave_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else if(param_02.agent_type == "zombie_brute")
|
|
{
|
|
level thread lib_0D62::func_CE9C(param_02,"death",1);
|
|
}
|
|
else if(param_02.agent_type == "crab_mini")
|
|
{
|
|
if(randomint(100) > 60)
|
|
{
|
|
if(var_07.var_134FD == "p2_")
|
|
{
|
|
if(!scripts\common\utility::istrue(var_07.played_vo_goon))
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_crabgoon_first","rave_comment_vo","low",10,0,0,0,20);
|
|
var_07.played_vo_goon = 1;
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_crabgoon","rave_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_crabgoon","rave_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else if(param_02.agent_type == "crab_brute")
|
|
{
|
|
if(randomint(100) > 60)
|
|
{
|
|
if(var_07.var_134FD == "p2_")
|
|
{
|
|
if(!scripts\common\utility::istrue(var_07.played_vo_boss))
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_radactivecrab_first","rave_comment_vo","low",10,0,0,0,20);
|
|
var_07.played_vo_boss = 1;
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm_radactivecrab","rave_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_07 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.is_coaster_zombie))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_07))
|
|
{
|
|
scripts\cp\_persistence::func_DDE9(param_05,param_03,param_04,var_07);
|
|
}
|
|
|
|
if(isdefined(level.var_13F36))
|
|
{
|
|
if([[ level.var_13F36 ]](var_06,self.origin,param_01))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_07))
|
|
{
|
|
if(self isonground())
|
|
{
|
|
var_0E = isdefined(param_02.agent_type) && param_02.agent_type == "zombie_brute" || param_02.agent_type == "zombie_grey";
|
|
if(gettime() < level.var_A8B4 + 5000)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\cp\_utility::func_65F0(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\cp\_utility::too_close_to_other_interactions(self.origin))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!var_09 && !var_0E)
|
|
{
|
|
if(scripts\common\utility::func_6E34("can_drop_coins") && scripts\common\utility::flag("can_drop_coins") && isdefined(level.var_47BE) && scripts\common\utility::istrue([[ level.var_47BE ]](var_06,self.origin,param_01)))
|
|
{
|
|
level.var_A8B4 = gettime();
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level.var_B07A) && scripts\common\utility::func_6E34("zombie_drop_powerups") && scripts\common\utility::flag("zombie_drop_powerups"))
|
|
{
|
|
[[ level.var_B07A ]](var_06,self.origin,param_01);
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_D95F(param_00)
|
|
{
|
|
if(!isdefined(self.var_24DA))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_02 in self.var_24DA)
|
|
{
|
|
if(isdefined(var_02.player))
|
|
{
|
|
if(var_02.player == param_00)
|
|
{
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
var_02.player scripts\cp\_persistence::func_666A("assists",1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_82A2(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_01.team) && self.team == param_01.team)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_05 = scripts\mp\_mp_agent::func_77D7(self);
|
|
var_06 = level.agent_definition[var_05]["reward"];
|
|
var_07 = level.agent_definition[var_05]["xp"];
|
|
var_08 = 0;
|
|
var_09 = scripts\common\utility::istrue(self.var_9CDD);
|
|
var_0A = isdefined(param_04) && param_04 == "incendiary_ammo_mp" || param_04 == "slayer_ammo_mp";
|
|
if(param_01.classname == "trigger_radius")
|
|
{
|
|
if(isdefined(level.var_455C))
|
|
{
|
|
var_0B = var_06 * level.var_3B0F + level.var_455C;
|
|
}
|
|
else
|
|
{
|
|
var_0B = var_07 * level.var_3B0F;
|
|
}
|
|
|
|
foreach(var_0D in level.players)
|
|
{
|
|
if(!var_0D scripts\cp\_utility::is_valid_player())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(level.var_13F56))
|
|
{
|
|
var_0D scripts\cp\_persistence::give_player_xp(int(var_07));
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.var_10942))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0E = "large";
|
|
param_02 = "none";
|
|
if(var_05 == "alien_rhino" || scripts\common\utility::istrue(self.mammoth))
|
|
{
|
|
foreach(var_10 in level.players)
|
|
{
|
|
var_10 scripts\cp\_persistence::func_82F9(var_0B,var_0E,param_02,1,"crafted");
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
var_0D scripts\cp\_persistence::func_82F9(var_0B,var_0E,param_02,1,"crafted");
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isplayer(var_06) && !isdefined(var_06.var_222) || !isplayer(var_06.var_222))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_06.var_222))
|
|
{
|
|
var_06 = var_06.var_222;
|
|
var_0D = 1;
|
|
}
|
|
|
|
if(!var_12 && var_0A == "generic_zombie" || var_0A == "fast_zombie" || var_0A == "zombie_cop")
|
|
{
|
|
if(scripts\cp\_utility::func_9E27(var_09,var_07,var_08,var_06) && !var_0D && scripts\common\utility::func_9D74(var_08) && !var_0E)
|
|
{
|
|
var_0B = int(100);
|
|
var_0C = int(75);
|
|
}
|
|
|
|
if(isdefined(var_08) && var_08 == "MOD_MELEE" && !issubstr(var_09,"axe"))
|
|
{
|
|
var_0B = int(130);
|
|
var_0C = int(100);
|
|
}
|
|
}
|
|
|
|
if(isplayer(var_06))
|
|
{
|
|
var_13 = scripts\cp\_utility::func_7D72(var_06,var_09);
|
|
if(scripts\cp\_utility::ismark2weapon(var_13))
|
|
{
|
|
var_0C = var_0C * 1.15;
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.kill_reward_func))
|
|
{
|
|
var_0B = [[ level.kill_reward_func ]](var_05,var_06,var_07,var_08,var_09,var_0A,var_0B);
|
|
}
|
|
|
|
func_8373(var_05,var_06,var_0B,var_0C,"large",var_07,var_09,var_08,self);
|
|
}
|
|
|
|
//Function Number: 23
|
|
checkaltmodestatus(param_00)
|
|
{
|
|
if(!isdefined(param_00) || param_00 == "none")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = scripts\cp\_utility::func_7DF7(param_00);
|
|
switch(var_01)
|
|
{
|
|
case "iw7_m8":
|
|
case "iw7_longshot":
|
|
if(scripts\cp\_utility::func_9D3E(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_8373(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
if(isdefined(level.var_455C))
|
|
{
|
|
param_02 = param_02 * level.var_3B0F + level.var_455C;
|
|
}
|
|
else
|
|
{
|
|
param_02 = param_02 * level.var_3B0F;
|
|
}
|
|
|
|
param_01 thread giveplayerbonuscash(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
if(isdefined(self.shared_damage_points) || func_13C20(param_06))
|
|
{
|
|
foreach(var_0A in level.players)
|
|
{
|
|
if(!var_0A scripts\cp\_utility::is_valid_player())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.var_10942))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0A scripts\cp\_persistence::func_82F9(param_02,param_04,param_05,1,"crafted");
|
|
}
|
|
}
|
|
else if(func_FF4B(param_00,param_01,param_06,param_08))
|
|
{
|
|
if(self.agent_type == "alien_rhino" || scripts\common\utility::istrue(self.mammoth))
|
|
{
|
|
foreach(var_0D in level.players)
|
|
{
|
|
var_0D scripts\cp\_persistence::func_82F9(param_02,param_04,param_05,1,"crafted");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
param_01 scripts\cp\_persistence::func_82F9(param_02,param_04,param_05,1);
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_13F56))
|
|
{
|
|
param_01 scripts\cp\_persistence::give_player_xp(int(param_03));
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
giveplayerbonuscash(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
if(func_FF4B(param_00,param_01,param_06,param_08))
|
|
{
|
|
if(param_01 scripts\cp\_utility::func_9BA0("extra_sniping_points") && scripts\common\utility::func_9D74(param_07) && param_01 scripts\cp\_utility::func_4626(param_06) == "weapon_sniper" && checkaltmodestatus(param_06))
|
|
{
|
|
var_09 = 300;
|
|
if(param_06 == "iw7_shared_fate_weapon")
|
|
{
|
|
param_01 scripts\cp\_utility::func_C151("extra_sniping_points");
|
|
}
|
|
else
|
|
{
|
|
param_01 scripts\cp\_utility::func_C151("extra_sniping_points");
|
|
param_01 thread delaygivecurrency(var_09,param_04,param_05,"bonus",0.15);
|
|
}
|
|
}
|
|
|
|
if(isplayer(param_01) && isdefined(param_01.var_3B0F))
|
|
{
|
|
if(isdefined(param_01.cash_scalar_weapon) && param_01.cash_scalar_weapon == scripts\cp\_utility::func_80D8(param_06))
|
|
{
|
|
var_0A = int(param_02 * param_01.var_3B0F - param_02);
|
|
param_01 thread delaygivecurrency(var_0A,param_04,param_05,"bonus",0.25);
|
|
}
|
|
|
|
if(isdefined(param_01.cash_scalar_alt_weapon) && param_01.cash_scalar_alt_weapon == scripts\cp\_utility::func_80D8(param_06) && scripts\cp\_utility::isstrstart(param_06,"alt") && scripts\common\utility::istrue(param_01.alt_mode_passive))
|
|
{
|
|
var_0A = int(param_02 * param_01.var_3B0F - param_02);
|
|
param_01 thread delaygivecurrency(var_0A,param_04,param_05,"bonus",0.25);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
delaygivecurrency(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
self endon("disconnect");
|
|
wait(param_04);
|
|
scripts\cp\_persistence::func_82F9(param_00,param_01,param_02,1,param_03);
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_FF4B(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isplayer(param_01) && scripts\cp\_laststand::player_in_laststand(param_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\cp\_utility::func_9CEB(param_00,param_02,param_03))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.var_10942))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_13C20(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return param_00 == "alien_sentry_minigun_4_mp" || param_00 == "zmb_imsprojectile_mp";
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_6563(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
level.var_A97B = self.origin;
|
|
if(isdefined(level.var_D99D))
|
|
{
|
|
self thread [[ level.var_D99D ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,self.origin);
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_9EC6(param_00)
|
|
{
|
|
if(isdefined(param_00.team))
|
|
{
|
|
return param_00.team == level.var_D437;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_FE39(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_00) && isplayer(param_00) && param_01 != "MOD_MELEE" && param_00 scripts\cp\_utility::func_9BA0("sniper_soft_upgrade") && scripts\cp\_utility::func_4626(param_02) == "weapon_sniper")
|
|
{
|
|
return "head";
|
|
}
|
|
|
|
if(isdefined(param_00) && isplayer(param_00) && param_01 != "MOD_MELEE" && param_00 scripts\cp\_utility::func_9BA0("increased_limb_damage") && func_9C38(param_02,param_03,param_01,param_00))
|
|
{
|
|
return "torso_upper";
|
|
}
|
|
|
|
return param_03;
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_FEFA(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(param_00) && isdefined(param_01) && isdefined(param_02) && weaponclass(param_02) == "spread")
|
|
{
|
|
var_03 = "" + gettime();
|
|
if(!isdefined(param_00.var_CA01) || !isdefined(param_00.var_CA01[var_03]))
|
|
{
|
|
param_00.var_CA01 = undefined;
|
|
param_00.var_CA01[var_03] = [];
|
|
}
|
|
|
|
if(!isdefined(param_00.var_CA01[var_03][param_01.var_86BD]))
|
|
{
|
|
param_00.var_CA01[var_03][param_01.var_86BD] = 1;
|
|
scripts\common\utility::func_136F7();
|
|
if(param_01.health > 1)
|
|
{
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_9830(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
if(isdefined(level.initial_weapon_scale_func))
|
|
{
|
|
param_02 = [[ level.initial_weapon_scale_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
|
return param_02;
|
|
}
|
|
|
|
if(!func_3845(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B))
|
|
{
|
|
return param_02;
|
|
}
|
|
|
|
var_0C = isdefined(self.agent_type) && self.agent_type == "zombie_brute" || self.agent_type == "zombie_grey";
|
|
if(isdefined(param_05))
|
|
{
|
|
if(isdefined(param_04) && param_04 == "MOD_MELEE")
|
|
{
|
|
if(isdefined(level.melee_weapons) && scripts\common\utility::func_2286(level.melee_weapons,getweaponbasename(param_05)))
|
|
{
|
|
return param_02;
|
|
}
|
|
else if(issubstr(getweaponbasename(param_05),"rvn"))
|
|
{
|
|
param_02 = min(self.maxhealth,param_02);
|
|
return param_02;
|
|
}
|
|
|
|
if(!func_9B73(param_05) && !is_wyler_dagger(param_05))
|
|
{
|
|
param_02 = 150;
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
else if(param_05 == "alien_sentry_minigun_4_mp")
|
|
{
|
|
if(var_0C)
|
|
{
|
|
param_02 = min(int(self.maxhealth / 5 * randomfloatrange(0.75,1.25)),2500);
|
|
}
|
|
else
|
|
{
|
|
param_02 = int(self.maxhealth / 5 * randomfloatrange(0.75,1.25));
|
|
}
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_6BA4(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
return param_02;
|
|
}
|
|
|
|
var_07 = getweaponbasename(param_01);
|
|
if(isdefined(var_07))
|
|
{
|
|
switch(var_07)
|
|
{
|
|
case "iw7_steeldragon_mp":
|
|
case "iw7_claw_mp":
|
|
if(param_03 || param_05 || param_06 || param_00 scripts\cp\_utility::agentisinstakillimmune())
|
|
{
|
|
param_02 = min(max(param_00.maxhealth * 0.34,300),1000);
|
|
}
|
|
else if(param_04)
|
|
{
|
|
param_02 = min(max(param_00.maxhealth * 0.34,300),1000);
|
|
}
|
|
else
|
|
{
|
|
param_02 = min(max(param_00.maxhealth,700),1000);
|
|
}
|
|
break;
|
|
|
|
case "iw7_blackholegun_mp":
|
|
if(param_05 || param_06 || param_00 scripts\cp\_utility::agentisinstakillimmune())
|
|
{
|
|
param_02 = min(max(param_00.maxhealth * 0.34,300),1000);
|
|
}
|
|
else
|
|
{
|
|
param_02 = min(param_02 * 10,2000);
|
|
}
|
|
break;
|
|
|
|
case "iw7_atomizer_mp":
|
|
case "iw7_penetrationrail_mp":
|
|
if(param_03 || param_05 || param_06 || param_00 scripts\cp\_utility::agentisinstakillimmune())
|
|
{
|
|
param_02 = 2500;
|
|
}
|
|
else if(param_04)
|
|
{
|
|
param_02 = param_00.maxhealth / 10;
|
|
}
|
|
else
|
|
{
|
|
param_02 = param_00.maxhealth;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
return param_02;
|
|
}
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 35
|
|
is_wyler_dagger(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return param_00 == "iw7_wylerdagger_zm";
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_9B73(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = getweaponbasename(param_00);
|
|
if(!isdefined(var_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
switch(var_01)
|
|
{
|
|
case "iw6_cphcmelee_mp":
|
|
case "iw7_axe_zm_pap2":
|
|
case "iw7_axe_zm_pap1":
|
|
case "iw7_axe_zm":
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_EBAC(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
if(func_9C50())
|
|
{
|
|
return param_02;
|
|
}
|
|
|
|
var_0C = scripts\cp\_utility::func_80D8(param_05);
|
|
switch(var_0C)
|
|
{
|
|
case "shredder":
|
|
case "headcutter":
|
|
case "facemelter":
|
|
case "dischord":
|
|
param_02 = 2000;
|
|
break;
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_DDE4(param_00)
|
|
{
|
|
if(!isdefined(self.var_DDEF))
|
|
{
|
|
self.var_DDEF = 1;
|
|
var_01 = self.health;
|
|
wait(param_00);
|
|
var_02 = self.health;
|
|
var_03 = var_01 - var_02;
|
|
iprintln("damage: " + var_03);
|
|
self.var_DDEF = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_3845(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_01.inlaststand))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isplayer(param_01) && !isdefined(param_01.var_C8A2))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(param_04))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_04 == "MOD_SUICIDE")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_04 == "MOD_UNKNOWN")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_F327(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
if(isdefined(param_01))
|
|
{
|
|
if(param_01 == "xm25_mp" && param_00 == "MOD_IMPACT")
|
|
{
|
|
param_02 = 95;
|
|
}
|
|
|
|
if(param_01 == "spider_beam_mp")
|
|
{
|
|
param_02 = param_02 * 15;
|
|
}
|
|
|
|
if(param_01 == "alienthrowingknife_mp" && param_00 == "MOD_IMPACT")
|
|
{
|
|
if(scripts\cp\_damage::func_381F(param_03,0,param_04,param_00,param_01,param_05,param_06,param_07,param_08,param_09))
|
|
{
|
|
param_02 = 20000;
|
|
}
|
|
else if(scripts\cp\_agent_utils::func_77D7(self) != "elite")
|
|
{
|
|
param_02 = 500;
|
|
}
|
|
}
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_6109(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(!isplayer(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(scripts\cp\_laststand::player_in_laststand(param_00)))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_05 < 1)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_04.var_9CDD))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.var_94A4) && scripts\common\utility::func_9D74(param_02))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.var_10942))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_04.agent_type))
|
|
{
|
|
if(param_04.agent_type == "zombie_brute")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_04.agent_type == "alien_rhino")
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_04.agent_type) && param_04.agent_type == "zombie_brute")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\cp\_utility::func_9CEB(param_01,param_03,param_04))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(weaponclass(param_03) == "spread")
|
|
{
|
|
if(!func_FEFA(param_00,param_04,param_03))
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if(param_03 == "incendiary_ammo_mp" || param_03 == "slayer_ammo_mp" || param_03 == "iw7_facemelterdummy_zm" || param_03 == "iw7_scrambler_zm" || param_03 == "iw7_entangler2_zm")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(![[ level.eligable_for_reward_func ]](param_00,param_01,param_02,param_03,param_04,param_05))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
switch(param_02)
|
|
{
|
|
case "MOD_GRENADE":
|
|
case "MOD_GRENADE_SPLASH":
|
|
case "MOD_PISTOL_BULLET":
|
|
case "MOD_RIFLE_BULLET":
|
|
case "MOD_EXPLOSIVE":
|
|
case "MOD_IMPACT":
|
|
case "MOD_MELEE":
|
|
if(param_03 == "gas_grenade_mp" || param_03 == "splash_grenade_zm" || param_03 == "iw7_venomx_zm")
|
|
{
|
|
if(isdefined(param_04.var_6E82))
|
|
{
|
|
if(gettime() > param_04.var_6E82)
|
|
{
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
return 1;
|
|
|
|
case "MOD_UNKNOWN":
|
|
if(scripts\common\utility::istrue(param_04.var_9B81) && isdefined(param_04.var_6E82))
|
|
{
|
|
if(gettime() > param_04.var_6E82)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if(!scripts\common\utility::istrue(param_04.var_9B81))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!scripts\common\utility::istrue(param_04.var_B36E))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_C5CE(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C)
|
|
{
|
|
var_0D = scripts\cp\_utility::func_9CEB(param_00,param_05,self);
|
|
if((isdefined(param_01) && isdefined(param_04) && scripts\common\utility::func_9D74(param_04) || scripts\cp\_utility::func_D0C6(param_01,"combined_ammo") && param_04 == "MOD_EXPLOSIVE_BULLET") || param_05 == "poison_ammo_mp")
|
|
{
|
|
if(isplayer(param_01) || isdefined(param_01.var_222) && isplayer(param_01.var_222))
|
|
{
|
|
if(!var_0D)
|
|
{
|
|
param_01 func_3D9D(self,param_00,param_03,param_05,param_04);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_455C))
|
|
{
|
|
var_0E = 10 * level.var_3B0F + level.var_455C;
|
|
}
|
|
else
|
|
{
|
|
var_0E = 10 * level.var_3B0F;
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
if(func_6109(param_01,param_00,param_04,param_05,self,param_02))
|
|
{
|
|
var_0F = gettime();
|
|
if(var_0F > param_01.var_BF74 && level.var_3B0F > 1 || param_01 scripts\cp\_utility::func_9BA0("hit_reward_upgrade") || isdefined(level.var_455C))
|
|
{
|
|
playfxontagforclients(level._effect["extra_cash_kill"],self,"j_spineupper",param_01);
|
|
param_01.var_BF74 = var_0F + 1000;
|
|
}
|
|
|
|
if(param_01 scripts\cp\_utility::func_9BA0("hit_reward_upgrade"))
|
|
{
|
|
param_01 scripts\cp\_utility::func_C151("hit_reward_upgrade");
|
|
var_10 = int(var_0E * 2 - var_0E);
|
|
param_01 thread delaygivecurrency(var_10,"large",param_08,"bonus",0.2);
|
|
}
|
|
|
|
param_01 scripts\cp\_persistence::func_82F9(var_0E,"large",param_08);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_3D9D(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = param_00 scripts\cp\_utility::func_9CEB(param_01,param_03,param_00);
|
|
var_06 = param_00 func_FF3A(param_03,param_04,self);
|
|
var_07 = scripts\common\utility::istrue(param_00.var_9343);
|
|
if(!isdefined(param_00.var_9B51) && isalive(param_00))
|
|
{
|
|
if(scripts\cp\_utility::func_D0C6(self,"combined_ammo") || param_03 == "slayer_ammo_mp")
|
|
{
|
|
var_08 = min(int(param_00.maxhealth * 0.2),1500);
|
|
param_00 thread scripts\cp\_utility::func_4D0D(param_00,self,5,var_08,param_04,"slayer_ammo_mp",undefined,"combinedArcane");
|
|
}
|
|
}
|
|
|
|
if(!isdefined(param_00.var_9B51) && !isdefined(param_00.var_9B81) && isalive(param_00))
|
|
{
|
|
if(scripts\cp\_utility::func_D0C6(self,"incendiary_ammo") || param_03 == "incendiary_ammo_mp")
|
|
{
|
|
var_08 = min(param_00.maxhealth * 0.1,1000);
|
|
param_00 thread scripts\cp\_utility::func_4D0D(param_00,self,5,var_08,param_04,"incendiary_ammo_mp",undefined,"burning");
|
|
}
|
|
}
|
|
|
|
if(var_06 && !var_05 && !var_07)
|
|
{
|
|
param_00.var_11196 = 1;
|
|
param_00 thread func_75FA();
|
|
param_00 thread scripts\cp\zombies\zombie_scriptable_states::applyzombiescriptablestate(param_00);
|
|
param_02 = param_02 | level.var_92CA;
|
|
}
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_75FA()
|
|
{
|
|
self endon("death");
|
|
wait(1);
|
|
self.var_11196 = undefined;
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_9EDB(param_00)
|
|
{
|
|
return isdefined(self.var_CA08) && self.var_CA08;
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_FF3A(param_00,param_01,param_02)
|
|
{
|
|
if(func_9EDB())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isalive(self))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\cp\_agent_utils::func_77D7(self) == "elite" || scripts\cp\_agent_utils::func_77D7(self) == "elite_boss")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9B81))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_02) && isdefined(param_02.var_3B95) && param_02.var_3B95 == "lightning_tower")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(param_02) && isplayer(param_02) && param_01 != "MOD_MELEE")
|
|
{
|
|
var_03 = isdefined(param_00) && param_00 == param_02 getcurrentprimaryweapon();
|
|
return var_03 && param_02 scripts\cp\_utility::func_8BB0();
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_13FA9()
|
|
{
|
|
if(self.entered_playspace)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_8C35 || isdefined(self.var_126CB))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_13D59))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_7E31()
|
|
{
|
|
while(!isdefined(self.var_4298))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
return self.var_4298;
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_777C()
|
|
{
|
|
self.var_37FD = 0;
|
|
self.var_24CA = undefined;
|
|
self.entered_playspace = 0;
|
|
self.var_B36E = undefined;
|
|
self.var_126A3 = undefined;
|
|
self.var_8C35 = 0;
|
|
self.var_54CB = 0;
|
|
self.var_9E0C = undefined;
|
|
self.flung = undefined;
|
|
self.var_28E0 = undefined;
|
|
self.var_FF78 = undefined;
|
|
self.var_9CDD = undefined;
|
|
self.var_9CA2 = undefined;
|
|
self.is_coaster_zombie = undefined;
|
|
self.var_EF64 = 0;
|
|
self.var_9BB0 = 0;
|
|
self.var_152C = 0;
|
|
self.var_9CEF = 0;
|
|
self.var_B57A = undefined;
|
|
self.var_BC4B = undefined;
|
|
self.var_2BE9 = undefined;
|
|
self.var_FFCF = undefined;
|
|
self.var_B36D = undefined;
|
|
self.var_4D3C = [];
|
|
self.rocket_feet = undefined;
|
|
self.var_E5D0 = undefined;
|
|
self.var_2BF9 = undefined;
|
|
self.var_594C = undefined;
|
|
self.var_1044D = undefined;
|
|
self.var_BF2F = undefined;
|
|
self.var_8B66 = undefined;
|
|
self.var_AAA8 = undefined;
|
|
self.var_102CD = undefined;
|
|
self.var_9B6E = undefined;
|
|
self.var_7387 = undefined;
|
|
self.var_A64E = undefined;
|
|
self.atomize_me = undefined;
|
|
self.shared_damage_points = undefined;
|
|
if(isdefined(self.var_4D7D))
|
|
{
|
|
self.var_4D7D.var_C2CF = 0;
|
|
}
|
|
|
|
self.var_4D7D = undefined;
|
|
thread func_117BE();
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_FF14()
|
|
{
|
|
var_00 = 50;
|
|
self.var_4299 = func_78C1(self);
|
|
if(!isdefined(self.var_4299))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(randomint(100) > var_00)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_101E3()
|
|
{
|
|
var_00 = 55;
|
|
var_01 = self.origin + (0,0,var_00);
|
|
var_02 = self.var_4299.origin + (0,0,var_00);
|
|
return sighttracepassed(var_01,var_02,0,self);
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_78C1(param_00)
|
|
{
|
|
var_01 = scripts\common\utility::func_782F(param_00.origin,level.players)[0];
|
|
var_02 = scripts\common\utility::getclosest(param_00.origin,level.current_interaction_structs);
|
|
if(!func_9C78(var_01,var_02))
|
|
{
|
|
var_01 = undefined;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_9C78(param_00,param_01)
|
|
{
|
|
var_02 = 2304;
|
|
return distancesquared(param_00.origin,param_01.origin) < var_02;
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_24BD()
|
|
{
|
|
if(!isdefined(self.var_24CA))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_FFCF = 1;
|
|
if(isdefined(self.var_24CA.angles))
|
|
{
|
|
self.var_2BE9 = self.var_24CA.angles;
|
|
}
|
|
else
|
|
{
|
|
self.var_2BE9 = (0,0,0);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
self waittill("boardbreak",var_00);
|
|
if(var_00[0] == "hit")
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
self.var_FFCF = 0;
|
|
self.var_2BE9 = undefined;
|
|
var_01 = scripts\common\utility::getclosest(self.origin,level.current_interaction_structs);
|
|
if(func_9C78(self.var_4299,var_01))
|
|
{
|
|
lib_0C73::func_5904(self.var_4299,lib_0C73::func_7AD3(),"MOD_IMPACT");
|
|
}
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_2FB2(param_00)
|
|
{
|
|
if(isdefined(self.var_24CA))
|
|
{
|
|
if(isdefined(self.var_24CA.angles))
|
|
{
|
|
self.var_2BE9 = self.var_24CA.angles;
|
|
}
|
|
else
|
|
{
|
|
self.var_2BE9 = (0,0,0);
|
|
}
|
|
}
|
|
|
|
self.var_FFCF = 1;
|
|
for(;;)
|
|
{
|
|
self waittill("boardbreak",var_01);
|
|
if(var_01[0] == "hit")
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
lib_0D4D::func_DFCB(param_00);
|
|
if(!lib_0D4D::func_664D(param_00))
|
|
{
|
|
self.var_FFCF = 0;
|
|
self.var_4B26 = undefined;
|
|
self.var_180 = 0;
|
|
self.ignoreme = 0;
|
|
lib_0D4D::func_DF34(self.var_24CA);
|
|
self.var_24CA = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_231C()
|
|
{
|
|
self endon("death");
|
|
self notify("asmDebug");
|
|
self endon("asmDebug");
|
|
var_00 = (0,0,72);
|
|
var_01 = (0,0,-8);
|
|
for(;;)
|
|
{
|
|
if(isdefined(self.var_164D))
|
|
{
|
|
var_02 = 0;
|
|
foreach(var_04 in self.var_164D)
|
|
{
|
|
var_05 = var_00 + var_02 * var_01;
|
|
var_02++;
|
|
}
|
|
}
|
|
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_A5F6()
|
|
{
|
|
self endon("death");
|
|
if(!isdefined(level.var_46A1))
|
|
{
|
|
level.var_46A1 = [];
|
|
}
|
|
|
|
if(!isdefined(level.var_46A1["60"]))
|
|
{
|
|
level.var_46A1["60"] = cos(60);
|
|
}
|
|
|
|
var_00 = 0;
|
|
var_01 = self.origin;
|
|
wait(randomintrange(5,8));
|
|
while(!scripts\common\utility::istrue(self.entered_playspace))
|
|
{
|
|
var_02 = var_01;
|
|
var_01 = self.origin;
|
|
var_03 = 0;
|
|
if(distance2dsquared(var_02,var_01) < 100)
|
|
{
|
|
foreach(var_05 in level.players)
|
|
{
|
|
if(distancesquared(var_05.origin,self.origin) < 4000000)
|
|
{
|
|
if(scripts\common\utility::func_13D90(var_05.origin,var_05.angles,self.origin,level.var_46A1["60"]))
|
|
{
|
|
var_06 = var_05 geteye();
|
|
if(scripts\common\trace::func_DCF1(var_06,self.origin + (0,0,40),self))
|
|
{
|
|
var_03 = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(var_03)
|
|
{
|
|
wait(2);
|
|
continue;
|
|
}
|
|
|
|
var_00 = 1;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
wait(2);
|
|
}
|
|
}
|
|
|
|
if(!var_00)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_54CB = 1;
|
|
if(scripts\common\utility::istrue(self.var_B36D) && isdefined(level.var_C20A))
|
|
{
|
|
level.var_C20A--;
|
|
}
|
|
|
|
self dodamage(self.health + 1000,self.origin,self,self,"MOD_SUICIDE");
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_9C38(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_03))
|
|
{
|
|
if(isdefined(param_03.var_222))
|
|
{
|
|
if(param_03.var_9F == "script_vehicle")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_03.var_9F == "misc_turret")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_03.var_9F == "script_model")
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_03.agent_type))
|
|
{
|
|
if(param_03.agent_type == "dog" || param_03.agent_type == "alien")
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
return param_01 == "left_leg_upper" || param_01 == "right_foot" || param_01 == "left_leg_lower" || param_01 == "right_leg_lower" || param_01 == "left_foot" || param_01 == "right_leg_upper" || param_01 == "right_arm_lower" || param_01 == "left_arm_lower" || param_01 == "right_hand" || param_01 == "left_hand";
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_E7FD(param_00)
|
|
{
|
|
if(level.var_5274 - level.var_4B6E == 1)
|
|
{
|
|
if(!isdefined(self.var_E821))
|
|
{
|
|
if(level.wave_num < 4)
|
|
{
|
|
self.var_E821 = gettime() + 80000;
|
|
}
|
|
else
|
|
{
|
|
self.var_E821 = gettime() - 1;
|
|
}
|
|
}
|
|
|
|
if(self.var_E821 < gettime() && isdefined(self.var_2303.var_4B12) && self.var_2303.var_4B12 != "sprint")
|
|
{
|
|
return "run";
|
|
}
|
|
}
|
|
else if(level.wave_num > 19 && isdefined(self.var_2303.var_4B12) && self.var_2303.var_4B12 == "sprint")
|
|
{
|
|
if(randomint(100) < 5)
|
|
{
|
|
if(num_fake_walkers() < 3)
|
|
{
|
|
return "walk";
|
|
}
|
|
}
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 60
|
|
num_fake_walkers()
|
|
{
|
|
var_00 = 0;
|
|
foreach(var_02 in level.spawned_enemies)
|
|
{
|
|
if(isdefined(var_02.var_2303) && isdefined(var_02.var_2303.var_4B12) && var_02.var_2303.var_4B12 == "walk")
|
|
{
|
|
var_00++;
|
|
}
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_9C50()
|
|
{
|
|
return isdefined(self.agent_type) && self.agent_type == "zombie_brute" || self.agent_type == "zombie_grey";
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_97BA()
|
|
{
|
|
function_004E("player1");
|
|
function_004E("player2");
|
|
function_004E("player3");
|
|
function_004E("player4");
|
|
function_004E("player1_enemy");
|
|
function_004E("player2_enemy");
|
|
function_004E("player3_enemy");
|
|
function_004E("player4_enemy");
|
|
function_01D1("player1","player1_enemy",10000);
|
|
function_01D1("player2","player2_enemy",10000);
|
|
function_01D1("player3","player3_enemy",10000);
|
|
function_01D1("player4","player4_enemy",10000);
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_93EC(param_00,param_01)
|
|
{
|
|
param_00 endon("death");
|
|
param_01 endon("death");
|
|
if(issentient(param_01))
|
|
{
|
|
var_02 = param_01 method_8163();
|
|
if(function_0218(var_02 + "_enemy"))
|
|
{
|
|
param_00 method_834E(var_02 + "_enemy");
|
|
}
|
|
|
|
wait(5);
|
|
param_00 method_834E();
|
|
}
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_117BE()
|
|
{
|
|
self endon("death");
|
|
var_00 = 100;
|
|
var_01 = 200;
|
|
var_02 = 200;
|
|
var_03 = var_02 * var_02;
|
|
self.var_11366 = 0;
|
|
self.var_A8A1 = 0;
|
|
self.var_BF04 = undefined;
|
|
for(;;)
|
|
{
|
|
if(isdefined(self.var_10C))
|
|
{
|
|
var_04 = distancesquared(self.origin,self.var_10C.origin);
|
|
if(isdefined(self.var_BF04))
|
|
{
|
|
if(self.var_11366 >= var_01)
|
|
{
|
|
self.var_11366 = 0;
|
|
func_93EC(self,self.var_BF04);
|
|
wait(0.25);
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
var_05 = distancesquared(self.origin,self.var_BF04.origin);
|
|
if(var_05 < var_03 && var_05 < var_04)
|
|
{
|
|
self.var_11366 = self.var_11366 + var_00;
|
|
wait(0.25);
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
self.var_11366 = 0;
|
|
var_06 = scripts\common\utility::func_22A9(level.players,self.var_10C);
|
|
if(var_06.size > 0)
|
|
{
|
|
var_06 = scripts\common\utility::func_22A9(var_06,self.var_BF04);
|
|
}
|
|
|
|
self.var_BF04 = undefined;
|
|
func_3D90(var_04,var_06);
|
|
wait(0.25);
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
self.var_11366 = 0;
|
|
var_06 = scripts\common\utility::func_22A9(level.players,self.var_10C);
|
|
func_3D90(var_04,var_06);
|
|
wait(0.25);
|
|
continue;
|
|
}
|
|
}
|
|
|
|
wait(0.25);
|
|
}
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_3D90(param_00,param_01)
|
|
{
|
|
var_02 = 200;
|
|
var_03 = var_02 * var_02;
|
|
if(param_01.size > 0)
|
|
{
|
|
foreach(var_05 in param_01)
|
|
{
|
|
var_06 = distancesquared(self.origin,var_05.origin);
|
|
if(var_06 < var_03 && var_06 < param_00)
|
|
{
|
|
self.var_BF04 = var_05;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_BF05(param_00)
|
|
{
|
|
if(!isdefined(self.var_A8A1))
|
|
{
|
|
self.var_A8A1 = 0;
|
|
}
|
|
|
|
var_01 = 100;
|
|
if(isdefined(self.var_10C))
|
|
{
|
|
if(param_00 == self.var_10C)
|
|
{
|
|
self.var_A8A1 = gettime();
|
|
return;
|
|
}
|
|
|
|
var_02 = gettime();
|
|
if(var_02 - self.var_A8A1 > 5000)
|
|
{
|
|
if(isdefined(self.var_BF04))
|
|
{
|
|
if(param_00 == self.var_BF04)
|
|
{
|
|
self.var_11366 = self.var_11366 + var_01;
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
self.var_BF04 = param_00;
|
|
self.var_11366 = 0;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_3759(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
thread func_934E(param_00,self,param_01,param_02,param_03,param_04,param_05,param_06,param_07);
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_934E(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
if(isdefined(level.harpoon_impale_additional_func))
|
|
{
|
|
[[ level.harpoon_impale_additional_func ]](param_02,param_00,param_01,param_04,param_05,param_06,param_07,param_08);
|
|
return;
|
|
}
|
|
|
|
param_01 method_839A();
|
|
var_09 = physics_createcontents(["physicscontents_solid","physicscontents_glass","physicscontents_missileclip","physicscontents_vehicle","physicscontents_item"]);
|
|
var_0A = param_04 + param_05 * 4096;
|
|
var_0B = scripts\common\trace::func_DCEE(param_04,var_0A,undefined,var_09,undefined,1);
|
|
var_0A = var_0B["position"] - param_05 * 12;
|
|
var_0C = length(var_0A - param_04);
|
|
var_0D = var_0C / 1250;
|
|
var_0D = clamp(var_0D,0.05,1);
|
|
wait(0.05);
|
|
var_0E = param_05;
|
|
var_0F = anglestoup(param_00.angles);
|
|
var_10 = vectorcross(var_0E,var_0F);
|
|
var_11 = scripts\common\utility::spawn_tag_origin(param_04,axistoangles(var_0E,var_10,var_0F));
|
|
var_11 moveto(var_0A,var_0D);
|
|
var_12 = spawnragdollconstraint(param_01,param_06,param_07,param_08);
|
|
var_12.origin = var_11.origin;
|
|
var_12.angles = var_11.angles;
|
|
var_12 linkto(var_11);
|
|
thread func_934F(param_01,var_11,var_0D + 0.05,var_12);
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_934F(param_00,param_01,param_02,param_03)
|
|
{
|
|
param_00 scripts\common\utility::waittill_any_timeout_1(param_02,"death","disconnect");
|
|
param_03 delete();
|
|
param_01 delete();
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_AA56(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
param_00 endon("disconnect");
|
|
self.do_immediate_ragdoll = 1;
|
|
self.var_4C87 = 1;
|
|
self.disable_armor = 1;
|
|
self.var_AAA8 = 1;
|
|
if(randomint(100) > 50 && !isdefined(self.var_9CDD))
|
|
{
|
|
self.nocorpse = undefined;
|
|
var_03 = 50;
|
|
var_04 = 50;
|
|
if(param_02)
|
|
{
|
|
var_03 = 300;
|
|
var_04 = 150;
|
|
}
|
|
|
|
self setvelocity(vectornormalize(self.origin - param_00.origin) * var_03 + (0,0,var_04));
|
|
wait(0.1);
|
|
}
|
|
else
|
|
{
|
|
self.full_gib = 1;
|
|
self.nocorpse = 1;
|
|
}
|
|
|
|
self dodamage(self.health + 1000,param_00.origin,param_00,param_00,"MOD_MELEE");
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_B982()
|
|
{
|
|
scripts\common\utility::flag_init("player_count_determined");
|
|
var_00 = getdvar("party_partyPlayerCountNum");
|
|
if(var_00 != "1")
|
|
{
|
|
level.only_one_player = 0;
|
|
scripts\common\utility::flag_set("player_count_determined");
|
|
return;
|
|
}
|
|
|
|
level.only_one_player = 1;
|
|
scripts\common\utility::flag_set("player_count_determined");
|
|
while(!isdefined(level.players))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(level.players.size > 1)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
|
|
level.only_one_player = 0;
|
|
level notify("multiple_players");
|
|
} |