IL-GSC/WW2/PC/ALL/1357.gsc
2023-10-27 03:49:01 -04:00

2623 lines
52 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1357.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 89
* Decompile Time: 130 ms
* Timestamp: 10/27/2023 3:25:45 AM
*******************************************************************/
//Function Number: 1
func_00D5()
{
while(!isdefined(level.var_947C))
{
waittillframeend;
}
while(!isdefined(level.var_A41))
{
waittillframeend;
}
level.var_4752 = 128;
level.var_4751 = ["weapon_grenade","weapon_projectile","killstreak"];
level.var_A41["zombie"] = level.var_A41["player"];
level.var_A41["zombie"]["onAIConnect"] = ::lib_0547::func_6AB7;
level.var_A41["zombie"]["on_killed"] = ::func_6BD4;
level.var_A41["zombie"]["on_damaged"] = ::func_6BD1;
level.var_A41["zombie"]["on_damaged_finished"] = ::func_6BD3;
level.var_A41["zombie"]["is_hit_weak_point"] = ::func_5714;
level.var_A41["zombie"]["spawn"] = ::func_6BD7;
level.var_A41["zombie"]["think"] = ::lib_0547::func_A58;
level.var_A41["zombie"]["on_mutilate"] = ::func_AC35;
level.var_A41["zombie"]["get_action_params"] = ::func_AC22;
level.var_A41["zombie"]["move_mode"] = ::func_AC6E;
level.var_A41["zombie"]["post_model"] = ::func_AC1E;
level.var_A41["zombie"]["tesla_delayed_dmg"] = ::zombietesladelayeddmg;
createthreatbiasgroup("zombies");
level.var_87D = ["s2","t7","s1"];
maps/mp/agents/_scripted_agent_anim_util::func_5159("zombie_generic");
maps/mp/agents/_scripted_agent_anim_util::func_5159("zombie_boss");
level.var_2775 = 0;
level.var_2FDD = [];
level.var_66BF = 0;
lib_0566::func_D5();
lib_0564::func_D5();
lib_055C::func_D5();
lib_0563::func_D5();
lib_0567::func_D5();
lib_056B::func_D5();
if(isdefined(level.initnewzombietypes))
{
[[ level.initnewzombietypes ]]();
}
if(isdefined(level.var_AC1B))
{
[[ level.var_AC1B ]]();
}
if(isdefined(level.var_AC27))
{
[[ level.var_AC27 ]]();
}
if(isdefined(level.var_AC2F))
{
[[ level.var_AC2F ]]();
}
if(!isdefined(level.var_AC4F))
{
level.var_AC4F = [];
}
level.var_6F43 = 0;
level thread func_6013();
level thread func_63C7();
level thread func_63C1();
level thread func_5DE7();
level thread lib_055A::func_6B3F();
level thread func_63A6();
level thread handlebadmeleevolumes();
animscripts/notetracks_common::func_7BF0();
level thread maps/mp/zombies/_zombies_event_mtx7::func_D5();
}
//Function Number: 2
register_grenadier_immune_zombie_equipment(param_00)
{
if(!isdefined(level.zmb_grenadier_immune_weapons))
{
level.zmb_grenadier_immune_weapons = [];
}
level.zmb_grenadier_immune_weapons = common_scripts\utility::func_F6F(level.zmb_grenadier_immune_weapons,param_00);
}
//Function Number: 3
register_persistent_tactical_zombie_equipment(param_00)
{
if(!isdefined(level.persistent_ammo_tacticals))
{
level.persistent_ammo_tacticals = [];
}
level.persistent_ammo_tacticals = common_scripts\utility::func_F6F(level.persistent_ammo_tacticals,param_00);
}
//Function Number: 4
func_6013()
{
var_00 = getallnodes();
var_01 = 0;
while(var_00.size > 0)
{
var_02 = var_00[var_00.size - 1];
if(isdefined(level.var_AC80))
{
var_03 = lib_055A::func_4562(var_02.var_116);
if(isdefined(var_03))
{
var_02.var_AC66 = var_03;
}
}
var_00[var_00.size - 1] = undefined;
var_01++;
if(var_01 % 20 == 0)
{
wait 0.05;
}
}
level.var_2456 = 1;
}
//Function Number: 5
func_63C7()
{
level endon("game_ended");
if(!isdefined(level.var_AC80))
{
return;
}
var_00 = 0.05;
for(;;)
{
var_01 = 0;
foreach(var_03 in level.var_744A)
{
if(!isalive(var_03))
{
continue;
}
if(var_03.var_178 != "spectator" && var_03.var_178 != "intermission")
{
var_04 = var_03 lib_055A::func_462D();
if(isdefined(var_04) && !lib_0547::func_5565(var_03.var_295A,var_04))
{
var_03 notify("zone_entered",var_04);
}
var_03.var_295A = var_04;
wait(var_00);
var_01 = var_01 + var_00;
}
}
if(var_01 == 0)
{
wait(var_00);
}
}
}
//Function Number: 6
func_63C1()
{
level endon("game_ended");
if(!isdefined(level.var_AC80))
{
return;
}
var_00 = 0.5;
var_01 = getentarray("zombie_ledge_exploit","targetname");
var_02 = [];
foreach(var_08, var_04 in level.var_AC80.var_ACB3)
{
var_02[var_08] = [];
foreach(var_06 in var_01)
{
if(var_06.var_165 == var_08)
{
var_02[var_08][var_02[var_08].size] = var_06;
}
}
}
for(;;)
{
var_09 = 0;
foreach(var_0B in level.var_744A)
{
if(!isalive(var_0B))
{
continue;
}
var_0B.var_571F = 0;
var_0B.var_A27F = 0;
if(var_0B.var_178 != "spectator" && var_0B.var_178 != "intermission")
{
if(isdefined(var_0B.var_295A) && length(var_0B getvelocity()) < 5)
{
var_0B.var_A27F = 1;
foreach(var_06 in var_02[var_0B.var_295A])
{
if(var_0B istouching(var_06))
{
var_0B.var_571F = 1;
break;
}
}
}
}
if(isdefined(level.var_AB3B))
{
var_0B [[ level.var_AB3B ]](var_0B.var_571F,var_0B.var_A27F);
}
wait(var_00);
var_09 = var_09 + var_00;
}
if(var_09 == 0)
{
wait(var_00);
}
}
}
//Function Number: 7
func_5DE7()
{
level endon("game_ended");
self.var_AC67 = 0;
self.var_AC37 = 2;
for(;;)
{
wait 0.05;
self.var_AC67 = 0;
}
}
//Function Number: 8
func_7B4B()
{
var_00 = undefined;
var_01 = 0;
foreach(var_03 in maps/mp/agents/_agent_utility::func_43FD("all"))
{
if(!var_03.var_C29)
{
continue;
}
var_04 = 0;
foreach(var_06 in level.var_744A)
{
var_07 = var_06.var_116 - var_03.var_116;
var_08 = anglestoforward(var_06 geteyeangles());
var_09 = 1 - vectordot(var_08,vectornormalize(var_07)) / 2;
var_0A = common_scripts\utility::func_5D93(length(var_07),100,10000,0,1);
if(var_03 common_scripts\utility::func_3794("zombie_passive"))
{
var_0B = 1;
}
else
{
var_0B = 0;
}
var_04 = var_04 + var_09 + var_0A + var_0B;
}
if(var_04 > var_01)
{
var_00 = var_03;
var_01 = var_04;
}
}
if(isdefined(var_00))
{
var_0E = maps/mp/agents/_agent_utility::func_45BB();
var_00 lib_056D::func_5A86();
return 1;
}
return 0;
}
//Function Number: 9
func_1F70(param_00)
{
return isdefined(maps/mp/agents/_agent_utility::func_3B8C(param_00));
}
//Function Number: 10
func_90BA(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
var_0A = spawnstruct();
thread func_90BB(var_0A,param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
var_0A waittill("spawnZombie_return",var_0B);
return var_0B;
}
//Function Number: 11
func_90BB(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
level.var_6F43 = level.var_6F43 + 1;
wait 0.05;
level.var_6F43 = level.var_6F43 - 1;
if(!isdefined(param_08))
{
param_08 = 0;
}
if(!isdefined(param_09))
{
param_09 = level.var_A980;
}
if(isdefined(level.var_1CC0) && !isdefined(param_02) && isdefined(param_02.ignoreforcedzombietype))
{
param_01 = common_scripts\utility::func_7A33(level.var_1CC0);
}
var_0B = lib_0547::func_A51(param_01);
param_06 = param_06 & !common_scripts\utility::func_562E(var_0B.var_2F9B);
if(isdefined(level.var_1CBF))
{
param_02 = common_scripts\utility::func_7A33(level.var_1CBF);
}
if(isdefined(param_02))
{
var_0C = param_02;
if(isdefined(var_0C.var_AC8A))
{
var_0D = var_0C.var_AC8A;
}
else
{
var_0D = lib_055A::func_4562(var_0D.var_116);
}
}
else
{
var_0C = func_4696(param_03,isdefined(var_0D.var_907C),param_0A);
var_0D = var_0D.var_AC8A;
}
if(!isdefined(var_0C))
{
param_00 notify("spawnZombie_return",undefined);
return;
}
if(isdefined(var_0C.requirenavmesh))
{
param_04 = var_0C.requirenavmesh;
}
if(param_04 && !var_0C func_ABFD(var_0C.var_116,"not spawning because no navmesh"))
{
param_00 notify("spawnZombie_return",undefined);
return;
}
if(!isdefined(var_0B))
{
param_00 notify("spawnZombie_return",undefined);
return;
}
if(!common_scripts\utility::func_3C83("spawn_zombie_lock"))
{
common_scripts\utility::func_3C87("spawn_zombie_lock");
}
common_scripts\utility::func_3CA9("spawn_zombie_lock");
common_scripts\utility::func_3C8F("spawn_zombie_lock");
if(param_05 && !func_1F70(var_0B.var_A4B))
{
if(func_7B4B())
{
var_0E = 0;
while(!func_1F70(var_0B.var_A4B))
{
wait 0.05;
var_0E++;
if(var_0E > 5)
{
break;
}
}
}
}
common_scripts\utility::func_3C7B("spawn_zombie_lock");
if(!func_1F70(var_0B.var_A4B))
{
param_00 notify("spawnZombie_return",undefined);
return;
}
var_0F = gettime();
if(isdefined(var_0B.var_5691) && var_0B.var_5691)
{
var_10 = lib_0547::func_902E(var_0C,var_0B,level.var_3772);
}
else
{
var_10 = lib_0547::func_90A0(var_0D,var_0C,level.var_3772,param_08,param_09,param_0A,var_0F);
}
if(!isdefined(var_10))
{
param_00 notify("spawnZombie_return",undefined);
return;
}
var_10.var_60E2 = var_0B.var_60E2;
var_10.var_FB = maps/mp/gametypes/zombies::func_1E59(var_0B,var_10.var_901F);
if(common_scripts\utility::func_562E(level.zmb_red_skull_mode_activated))
{
level.zmb_global_zombie_health_multiplier = 2.7;
}
if(isdefined(level.zmb_global_zombie_health_multiplier) && isdefined(level.zmb_global_zombie_health_multiplier_wave_start) && level.var_A980 >= level.zmb_global_zombie_health_multiplier_wave_start)
{
var_10.var_FB = int(var_10.var_FB * level.zmb_global_zombie_health_multiplier);
}
if(isdefined(level.zmb_temp_zombie_health_buff))
{
var_10.var_FB = int(var_10.var_FB * level.zmb_temp_zombie_health_buff);
}
if(common_scripts\utility::func_562E(level.zmb_disable_all_hitreacts))
{
var_10.var_66EC = 1;
}
var_10.var_BC = int(var_10.var_FB);
if(isdefined(param_0A))
{
if(isdefined(param_0A.var_6A37))
{
var_10.var_BC = int(clamp(param_0A.var_6A37,0,var_10.var_FB));
}
if(var_10.var_A4B == "zombie_generic")
{
if(isdefined(param_0A.var_3C70))
{
var_10.var_3C70 = param_0A.var_3C70;
}
if(isdefined(param_0A.var_6A3C))
{
var_10.var_6A3C = param_0A.var_6A3C;
}
if(isdefined(param_0A.var_6A3D))
{
var_10.var_6A3D = param_0A.var_6A3D;
}
if(isdefined(param_0A.var_6A3F))
{
var_10.var_6A3F = param_0A.var_6A3F;
}
if(isdefined(param_0A.var_6A2C))
{
foreach(var_12 in param_0A.var_6A2C)
{
var_10.var_1CF1 = param_0A.var_6A2C;
}
}
}
}
var_10.var_6250 = 0;
var_10.var_2FDA = 0;
var_10.var_186 = var_0C;
if(isdefined(var_0C))
{
var_0C func_A0DA();
var_0C.var_AC3D[var_0C.var_AC3D.size] = var_10;
if(common_scripts\utility::func_562E(var_0C.traversalvalidationfailed) || !common_scripts\utility::func_562E(var_0C.validitytestresult))
{
var_10 thread handlebrokenspawnervstraversalplacement();
}
}
var_10.var_2B61 = param_03;
var_10.var_C29 = param_06;
var_10.var_5B89 = [];
var_10 func_A135();
if(function_02BF(var_10) && common_scripts\utility::func_562E(level.var_AC31))
{
setdvar("spawnZombiesWithEyes",1);
var_10 thread lib_0547::func_ABF1("zmb_eye_glow");
}
var_10 setthreatbiasgroup("zombies");
var_10 thread func_3219();
if(function_02BF(var_10))
{
var_14 = common_scripts\utility::func_98E7(isdefined(var_0B.var_AC6D),var_0B.var_AC6D,param_01);
var_10 method_8550(var_14);
}
level notify("zombie_spawned",var_10);
if(isdefined(var_0C.var_8C95))
{
var_15 = undefined;
var_16 = lib_0547::func_4282(var_0C);
var_17 = var_16["height"];
if(isdefined(var_17))
{
var_15 = int(var_17);
}
var_10 thread lib_0540::func_ABA4(var_0C.var_116,var_0C.var_1D,var_15,undefined,var_0C);
}
var_10 thread lib_054E::func_3102("spawn",var_10.var_A4B);
param_00 notify("spawnZombie_return",var_10);
}
//Function Number: 12
func_A0DA()
{
if(!isdefined(self.var_AC3D))
{
self.var_AC3D = [];
}
var_00 = [];
foreach(var_02 in self.var_AC3D)
{
if(!isalive(var_02))
{
continue;
}
if(var_02 lib_0547::func_4B2C())
{
continue;
}
var_00[var_00.size] = var_02;
}
self.var_AC3D = var_00;
}
//Function Number: 13
func_A135()
{
var_00 = 1;
if(maps/mp/agents/humanoid/_humanoid_util::func_56BC())
{
var_00 = 0;
}
self setmeleechargevalid(1);
lib_0542::set_invalid_melee_pairing_reason("crawler",!var_00);
}
//Function Number: 14
func_4696(param_00,param_01,param_02)
{
var_03 = lib_055A::func_4696(param_00,param_01,param_02);
if(isdefined(var_03))
{
return var_03;
}
return func_4650(param_00);
}
//Function Number: 15
func_4650(param_00)
{
var_01 = [];
foreach(var_03 in level.var_AC4F)
{
if(level.var_AC80.var_ACB3[var_03.var_AC8A].var_556E && var_03 lib_055A::func_905C(param_00,0))
{
var_01[var_01.size] = var_03;
}
}
return common_scripts\utility::func_7A33(var_01);
}
//Function Number: 16
func_2AA5()
{
self waittill("death",var_00,var_01,var_02);
if(!isplayer(var_00))
{
return;
}
var_03 = var_00 getcurrentweapon();
var_04 = maps\mp\_utility::func_472A(var_03);
var_05 = distance(var_00.var_116,self.var_116);
if(var_05 < level.var_4752 && var_04 == "weapon_shotgun")
{
func_2AA6(var_00);
return;
}
if(common_scripts\utility::func_F79(level.var_4751,var_04))
{
func_2AAA();
}
}
//Function Number: 17
func_2AA6(param_00)
{
var_01 = self.var_116 + (0,0,32);
playfx(common_scripts\utility::func_44F5("mutant_gib_death"),var_01);
earthquake(0.45,0.35,var_01,350);
if(!isdefined(param_00))
{
return;
}
param_00 setblurforplayer(3.25,0.1);
wait(0.1);
param_00 setblurforplayer(0,0.1);
}
//Function Number: 18
func_2AAA()
{
var_00 = self.var_116 + (0,0,8);
self.var_18A8 startragdoll();
wait(0.1);
physicsexplosionsphere(var_00,128,0,5,0);
}
//Function Number: 19
func_2A9E()
{
self waittill("death");
if(common_scripts\utility::func_24A6())
{
playfx(common_scripts\utility::func_44F5("mutant_blood_pool"),self.var_116);
}
}
//Function Number: 20
func_AC15()
{
thread func_ABCF();
thread func_AB51();
thread func_ABA5();
thread func_ABEB();
thread monitorstuckfortraversal();
thread func_AC04();
}
//Function Number: 21
func_ABCF()
{
if(func_56E1())
{
return;
}
var_00 = 55;
self endon("death");
level endon("game_ended");
var_01 = self.var_116;
var_02 = gettime();
for(;;)
{
wait(5);
if(func_56E1())
{
continue;
}
var_03 = distancesquared(self.var_116,var_01);
var_04 = gettime() - var_02 / 1000;
var_05 = var_03 > 16384;
var_06 = function_02BF(self) && self.var_BA4 == "melee" && isdefined(self.var_28D2) && distancesquared(self.var_28D2.var_116,self.var_116) < 6400;
var_07 = lib_0547::func_4B24();
var_08 = 0;
if(var_05 || var_06 || var_07 || lib_0547::func_585E() || var_08 || common_scripts\utility::func_3794("zombie_passive") || lib_0547::func_5565(self.var_A4B,"zombie_fireman") || isdefined(self.var_8E1) || common_scripts\utility::func_562E(self.var_509A))
{
var_01 = self.var_116;
var_02 = gettime();
}
if(lib_0547::func_5565(self.var_A4B,"zombie_heavy"))
{
if(!maps\mp\_utility::iszombiegameshattermode() || maps\mp\_utility::iszombiegameshattermode() && common_scripts\utility::func_562E(self.var_6816))
{
var_01 = self.var_116;
var_02 = gettime();
}
}
if(var_04 > var_00)
{
break;
}
}
lib_056D::func_5A86();
}
//Function Number: 22
func_ABEB()
{
var_00 = 2;
var_01 = 10;
var_02 = 10;
self endon("death");
level endon("game_ended");
wait(var_01);
wait(randomfloat(var_00));
var_03 = 0;
for(;;)
{
var_04 = common_scripts\utility::func_562E(self.var_C29) && !func_0F0A(self);
if(var_04)
{
var_03 = var_03 + var_00;
}
else
{
var_03 = 0;
}
if(var_03 >= var_02)
{
lib_056D::func_5A86();
}
wait(var_00);
}
}
//Function Number: 23
func_0F0A(param_00)
{
foreach(var_02 in level.var_744A)
{
if(var_02 func_7230(param_00))
{
return 1;
}
}
return 0;
}
//Function Number: 24
func_7230(param_00)
{
if(isdefined(param_00.var_5B89))
{
var_01 = param_00.var_5B89[self getentitynumber()];
if(isdefined(var_01) && gettime() - var_01 < 5000)
{
return 1;
}
}
if(lib_053A::func_AC2B(self))
{
return 1;
}
var_02 = 780;
var_03 = cos(60);
var_04 = cos(20);
var_05 = self geteye();
var_06 = param_00.var_116 + (0,0,48);
var_07 = var_06 - var_05;
if(length(var_07) < var_02)
{
return 1;
}
var_08 = anglestoforward(self getangles());
var_09 = vectordot(vectornormalize(var_07),var_08);
if(var_09 > var_04)
{
return 1;
}
if(var_09 < var_03)
{
return 0;
}
var_0A = sighttracepassed(var_05,var_06,0,self,param_00);
return var_0A;
}
//Function Number: 25
func_ABA5()
{
self endon("death");
var_00 = -300;
if(isdefined(level.var_ABD3))
{
var_00 = level.var_ABD3;
}
wait(1);
var_01 = self.var_116;
for(;;)
{
if(self isonground())
{
var_01 = self.var_116;
}
if(self.var_116[2] < var_00)
{
self.var_1DEB = 1;
lib_056D::func_5A86();
}
wait(1);
}
}
//Function Number: 26
monitorstuckfortraversal()
{
self endon("death");
level endon("game_ended");
var_00 = 30;
if(isdefined(self.stuckfortraversalthreshold))
{
var_01 = self.stuckfortraversalthreshold;
}
else
{
var_01 = 8;
}
var_02 = 1;
var_03 = self.var_116;
for(;;)
{
wait(var_02);
if(self.var_BA4 != "move")
{
continue;
}
var_04 = self method_8198();
if(!isdefined(var_04))
{
continue;
}
var_05 = distance2d(var_03,self.var_116);
var_03 = self.var_116;
if(var_05 > var_01)
{
continue;
}
if(common_scripts\utility::func_562E(var_04.var_54F5))
{
continue;
}
var_06 = distance2d(self.var_116,var_04.var_116);
if(var_06 > var_00)
{
continue;
}
if(isalive(var_04.var_98C3))
{
continue;
}
var_07 = getgroundposition(var_04.var_116,self.var_14F);
if(!isdefined(var_07))
{
var_07 = var_04.var_116;
}
var_04.var_98C3 = self;
self setorigin(var_07,0);
wait(var_02);
if(lib_0547::func_5565(var_04.var_98C3,self))
{
var_04.var_98C3 = undefined;
}
}
}
//Function Number: 27
func_6BD4(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
level notify("onZombieKilled");
lib_0547::tackle_system_handle_zombie_death(self);
if(!lib_0547::func_5767(self))
{
lib_0547::func_376A(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
if(isplayer(param_01))
{
if(isdefined(param_01.var_AC5D[self.var_A4B]))
{
param_01.var_AC5D[self.var_A4B]++;
}
}
if(isdefined(level.var_6BD5))
{
self [[ level.var_6BD5 ]](param_01);
}
if(param_04 == "drag_explosive_zombie_zm")
{
cp_zmb_mutilation_mask_func(param_01,param_00);
}
}
else if(function_01EF(self) && lib_0547::func_5767(self))
{
lib_0547::check_allykilledfuncs(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
var_09 = lib_0547::func_AC4B(self.var_116,"killed");
var_09 lib_0547::func_AC48("agent_type",self.var_A4B);
var_09 lib_0547::func_AC48("sWeapon",param_04);
var_09 lib_0547::func_AC44("iDamage",param_02);
var_09 lib_0547::func_AC48("sMeansOfDeath",param_03);
var_09 lib_0547::func_AC42("recycled",common_scripts\utility::func_562E(self.var_AC10));
var_09 lib_0547::func_AC4D();
thread lib_0541::func_6B4A(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
thread lib_053C::func_6AA4(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
self hudoutlinedisable();
lib_0547::func_6B9E(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
if(lib_0547::should_play_zombie_fx())
{
func_90BC(self.var_8D9,param_03,param_04);
}
if(isdefined(param_01) && lib_0547::func_5767(param_01) && isplayer(param_01))
{
var_0A = spawnstruct();
var_0A.var_721C = param_01;
var_0A.var_ABE6 = level.var_5B95;
var_0A.var_4DCF = param_06;
var_0A.var_60B8 = param_03;
var_0A.var_1D0 = param_04;
lib_0378::func_8D74("onZombieKilled",var_0A);
}
if(isdefined(param_03))
{
if(param_03 == "MOD_MELEE")
{
if(isdefined(param_01.var_7F09))
{
param_01.var_7F09++;
}
}
else if(isexplosivedamagemod(param_03))
{
if(isdefined(param_01.var_394C))
{
param_01.var_394C++;
}
if(param_03 == "MOD_GRENADE" || param_03 == "MOD_GRENADE_SPLASH")
{
if(isdefined(param_01.var_4868))
{
param_01.var_4868++;
}
}
}
}
if(isdefined(param_01.equipmentkills) && isdefined(param_04) && lib_0547::func_585C(param_04))
{
param_01.equipmentkills++;
}
}
//Function Number: 28
func_56E3(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
param_00 = tolower(param_00);
switch(param_00)
{
case "mod_explosive":
case "mod_projectile_splash":
case "mod_projectile":
case "mod_grenade_splash":
case "mod_grenade":
case "splash":
return 1;
default:
return 0;
}
}
//Function Number: 29
cp_zmb_mutilation_mask_func(param_00,param_01)
{
var_02 = undefined;
if(isplayer(param_00))
{
var_02 = param_00;
}
if(isplayer(param_01))
{
var_02 = param_01;
}
if(!isplayer(var_02))
{
return;
}
if(!isdefined(var_02.var_18F2))
{
var_02.var_18F2 = 0;
}
var_03 = gettime();
var_04 = gettime();
if(isdefined(var_02.var_5B77))
{
var_04 = var_02.var_5B77;
}
var_02.var_18F2++;
var_02.var_5B77 = var_03;
if(var_03 - var_04 > 1000)
{
var_02.var_18F2 = 1;
return;
}
if(var_02.var_18F2 >= 10 && maps\mp\_utility::func_4571() == "mp_zombie_nest_01")
{
var_02 maps/mp/gametypes/zombies::func_47C8("ZM_BOMBER_10");
}
}
//Function Number: 30
func_4788(param_00,param_01)
{
if(!isplayer(param_01) || !isdefined(param_00) || !lib_0547::func_5565(param_00.var_A4B,"zombie_heavy"))
{
return;
}
if(isdefined(param_00.var_A4B) && param_00.var_A4B == "zombie_heavy")
{
if(!isdefined(param_00.var_20ED))
{
param_00.var_20ED = 0;
}
param_00.var_20ED++;
if(param_00.var_20ED >= 10 && maps\mp\_utility::func_4571() == "mp_zombie_nest_01")
{
param_01 maps/mp/gametypes/zombies::func_47C8("ZM_CHARGE_10");
}
}
}
//Function Number: 31
func_90BC(param_00,param_01,param_02)
{
if(!isdefined(self.var_18A8))
{
return;
}
if(isdefined(level.var_90BD))
{
var_03 = self [[ level.var_90BD ]](param_01,param_02);
if(var_03)
{
return;
}
}
var_04 = self.var_7AD3;
if(!isdefined(var_04))
{
return;
}
if(lib_0547::func_2696(var_04) >= 3)
{
thread func_9038(param_00);
return;
}
func_90B0(self.var_18A8,var_04,param_00);
}
//Function Number: 32
func_90B0(param_00,param_01,param_02)
{
while(param_01 > 0)
{
var_03 = param_01 & 0 - param_01;
thread func_90AF(param_00,var_03,param_02);
param_01 = param_01 - var_03;
}
}
//Function Number: 33
func_90AF(param_00,param_01,param_02)
{
if(common_scripts\utility::func_562E(param_00 lib_0541::func_4559(param_01,undefined,"noFx")))
{
return;
}
var_03 = param_00 lib_0541::func_4559(param_01,undefined,"torsoFX");
var_04 = param_00 lib_0541::func_4559(param_01,undefined,"fxTagName");
playfxontag(common_scripts\utility::func_44F5(var_03),param_00,var_04);
}
//Function Number: 34
func_9038(param_00)
{
var_01 = 3;
if(isdefined(level.var_910F) && level.var_910F)
{
var_01 = 1;
}
var_02 = level.var_3EFD < var_01;
if(var_02)
{
level.var_3EFD++;
var_03 = common_scripts\utility::func_44F5("gib_full_body");
}
else
{
var_03 = common_scripts\utility::func_44F5("gib_full_body_cheap");
}
var_04 = level.var_2FDE["full"]["fxTagName"];
playfxontag(var_03,self.var_18A8,var_04);
var_05 = lib_0547::func_4495();
playclientsound(level.var_2FDE["full"][var_05],undefined,self.var_18A8.var_116);
wait(3);
if(isdefined(self.var_18A8))
{
stopfxontag(var_03,self.var_18A8,var_04);
}
if(var_02)
{
level.var_3EFD--;
}
}
//Function Number: 35
func_AC35(param_00)
{
lib_053C::func_4F94(param_00);
}
//Function Number: 36
func_5714(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(isdefined(param_08) && param_08 == "head" || param_08 == "helmet")
{
return 1;
}
return 0;
}
//Function Number: 37
func_4136(param_00)
{
if(!isdefined(param_00))
{
return;
}
if(isdefined(param_00.var_116))
{
return param_00.var_116;
}
if(isdefined(param_00.var_117.var_116))
{
return param_00.var_117.var_116;
}
}
//Function Number: 38
func_6BD1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
if(isdefined(self.zombie_shielding_func))
{
self thread [[ self.zombie_shielding_func ]](param_02);
param_02 = 1;
}
if(isplayer(param_01) && !lib_0547::func_5565(param_04,"MOD_MELEE"))
{
self.has_taken_bullet_damage = 1;
}
var_0B = lib_0547::func_AC4B(self.var_116,"damaged");
var_0B lib_0547::func_AC48("agent_type",self.var_A4B);
var_0B lib_0547::func_AC48("sWeapon",param_05);
var_0B lib_0547::func_AC44("iDamage",param_02);
var_0B lib_0547::func_AC48("sMeansOfDeath",param_04);
var_0B lib_0547::func_AC49("inflictor_pos",func_4136(param_00));
var_0B lib_0547::func_AC49("attacker_pos",func_4136(param_01));
var_0B lib_0547::func_AC42("attacker_is_player",isplayer(param_01) || isplayer(param_00));
var_0B lib_0547::func_AC4D();
func_2183(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A);
maps/mp/agents/_agents::func_6A73(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A);
if(isdefined(param_01) && isplayer(param_01))
{
var_0C = spawnstruct();
var_0C.var_721C = param_01;
var_0C.var_ABE6 = self.var_116;
var_0C.var_4DD1 = param_06;
var_0C.var_4DCF = param_08;
var_0C.var_60B8 = param_04;
var_0C.var_1D0 = param_05;
lib_0378::func_8D74("onZombieDamaged",var_0C);
param_01 thread checkhitzombies(param_05,self);
if(maps\mp\_utility::func_4431(param_05) == param_01.var_76D8)
{
param_01.var_A9BA[param_01.var_76D9].var_4DDE = param_01.var_A9BA[param_01.var_76D9].var_4DDE + 1;
return;
}
var_0D = lib_0547::func_4837(param_01,param_05);
if(var_0D == -1)
{
param_01.var_76D8 = "";
param_01.var_76D9 = -1;
return;
}
param_01.var_A9BA[var_0D].var_4DDE = param_01.var_A9BA[var_0D].var_4DDE + 1;
param_01.var_76D8 = maps\mp\_utility::func_4431(param_05);
param_01.var_76D9 = var_0D;
return;
}
}
//Function Number: 39
checkhitzombies(param_00,param_01)
{
self endon("disconnect");
waittillframeend;
if(!isdefined(param_00))
{
return;
}
if(lib_0547::func_5864(param_00) || issubstr(param_00,"turret") || lib_0547::func_5865(param_00) || lib_0547::func_585B(param_00) || lib_0547::func_585C(param_00) || lib_0547::iszombieindirectweapon(param_00))
{
return;
}
if(!isdefined(self.var_5BA9[param_00]))
{
self.var_5BA9[param_00] = 0;
}
if(self.var_5BA9[param_00] == gettime())
{
return;
}
self.var_5BA9[param_00] = gettime();
self.var_8B33++;
}
//Function Number: 40
func_2183(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
if(!isdefined(level.var_6BD2))
{
return;
}
for(var_0B = 0;var_0B < level.var_6BD2.size;var_0B++)
{
self thread [[ level.var_6BD2[var_0B] ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A);
}
}
//Function Number: 41
func_7BC6(param_00)
{
if(!isdefined(level.var_6BD2))
{
level.var_6BD2 = [];
}
level.var_6BD2[level.var_6BD2.size] = param_00;
}
//Function Number: 42
func_2D8D(param_00)
{
if(isdefined(level.var_6BD2))
{
level.var_6BD2 = common_scripts\utility::func_F93(level.var_6BD2,param_00);
}
}
//Function Number: 43
func_8BB0(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
if(common_scripts\utility::func_562E(self.nomutilate) && !common_scripts\utility::func_562E(self.must_gib_head))
{
return 0;
}
var_0B = isdefined(param_01) && self method_864D(param_01) && isdefined(maps/mp/agents/humanoid/_humanoid::func_45FB(param_05,param_01));
if(var_0B)
{
return 0;
}
if(lib_0547::func_AC70())
{
return 0;
}
if(param_04 == "MOD_FALLING")
{
return 0;
}
switch(param_05)
{
case "teslagun_zm_death":
case "zombie_water_trap_mp":
case "repulsor_zombie_mp":
case "zombie_vaporize_mp":
return 0;
}
return 1;
}
//Function Number: 44
int_max(param_00,param_01)
{
var_02 = int(param_00);
var_03 = int(param_01);
if(var_02 > var_03)
{
return var_02;
}
return var_03;
}
//Function Number: 45
func_6BD3(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
var_0B = self.var_BC;
var_0C = 0;
var_0D = func_8BB0(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A);
if(var_0D)
{
if(self.var_BC > 0)
{
var_0E = clamp(param_02 / self.var_BC,0,1);
}
else
{
var_0E = 1;
}
lib_0541::func_9E19(param_07,param_08,param_04);
var_0C = lib_0541::func_9E1D(param_08,param_05,param_04,var_0E,param_01,param_07);
if(var_0C && isdefined(param_01))
{
param_02 = self.var_BC + 1;
}
}
if(isdefined(param_01) && isplayer(param_01) && !isdefined(self.var_94))
{
var_0F = self.var_BA4 != "melee";
var_10 = isdefined(self.var_28D2) && self.var_28D2 == param_01;
var_11 = isdefined(self.var_28D2) && !isplayer(self.var_28D2);
if(var_0F || var_10 || var_11)
{
if(distancesquared(self.var_116,param_01.var_116) <= self.var_29BE)
{
maps/mp/agents/humanoid/_humanoid_util::func_867E(param_01);
thread maps/mp/agents/humanoid/_humanoid::func_A909();
}
}
}
if(isdefined(param_01) && isplayer(param_01))
{
self.var_5B89[param_01 getentitynumber()] = gettime();
self.var_5B88 = gettime();
func_A144(self,param_01,param_00,param_05,param_02,param_06,param_07,param_08,param_09,param_04);
}
if(maps\mp\_utility::func_5697(param_04) && param_05 == "flamethrower_zm" && !common_scripts\utility::func_562E(self.is_flamethrower_immune))
{
if(common_scripts\utility::func_562E(self.is_flamethrower_resistent))
{
self setonfire(self.var_FB * 0.025,1,10,"none",0,param_01,param_05);
}
else
{
self setonfire(self.var_FB * 0.35,1,100,"none",0,param_01,param_05);
}
}
if(maps\mp\_utility::func_5755(param_04))
{
thread lib_0541::func_2CD9();
}
if(!isdefined(self.var_6B53) || self.var_6B53)
{
self.var_6B53 = maps\mp\_utility::func_5755(param_04) || param_04 == "MOD_IMPACT";
}
thread lib_0541::func_6ADD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
thread lib_0537::func_6ADC(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
if(!lib_0547::func_1F4C() && self.var_BC - param_02 <= 0)
{
thread lib_0547::func_AC36(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
param_02 = int_max(0,self.var_BC - 1);
}
if(self.var_90DC == "dog")
{
self [[ level.var_AC1C ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
else
{
func_6ADE(param_02,param_04,param_05);
maps/mp/agents/humanoid/_humanoid::func_6ADB(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
lib_054E::func_3102("pain",self.var_A4B);
level notify("zombie_damaged",self,param_01);
maps/mp/agents/_agents::func_A40(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
if(isalive(self))
{
if(isplayer(param_01) && common_scripts\utility::func_562E(param_01.var_5F5C) && param_01 lib_0547::func_4BA7("specialty_class_suppressive_fire_zm") && maps\mp\_utility::func_5694(param_04))
{
maps\mp\zombies\_zombies_perks::func_F38(param_01);
}
if(var_0C && !lib_0547::func_5774())
{
self suicide();
return;
}
func_A135();
return;
}
if(isdefined(param_01) && isdefined(param_01.var_5F5C) && param_01.var_5F5C)
{
thread lib_0538::func_6BD4(param_01,param_04,param_05,param_06,param_08);
}
}
//Function Number: 46
func_5574(param_00,param_01)
{
return !isdefined(param_00) != isdefined(param_01) || isdefined(param_00) && param_00 != param_01;
}
//Function Number: 47
func_A144(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
var_0A = param_00.var_4DE4;
if(isdefined(param_00.var_6730))
{
return;
}
if(isdefined(var_0A))
{
if(!func_5574(param_01,var_0A.var_E6) || !func_5574(param_02,var_0A.var_5BAE) || gettime() != var_0A.var_5C07 || param_08 != var_0A.var_5BC6 || param_03 != var_0A.var_5C10)
{
var_0A.var_5C++;
}
}
else
{
var_0A = spawnstruct();
var_0A.var_5C = 1;
param_00.var_4DE4 = var_0A;
}
var_0A.var_E6 = param_01;
var_0A.var_5BAE = param_02;
var_0A.var_5C07 = gettime();
var_0A.var_5BC6 = param_08;
var_0A.var_5C10 = param_03;
}
//Function Number: 48
func_2EF2()
{
return isdefined(self.var_4DE4) && self.var_4DE4.var_5C == 1;
}
//Function Number: 49
func_314F(param_00,param_01,param_02)
{
var_03 = 6;
var_04 = 20;
var_05 = squared(30);
var_06 = self method_85D5(param_02.var_F4B);
var_07 = self method_85D5(param_02.var_F4B + var_03) - var_06;
if(var_07 == (0,0,0))
{
return 0;
}
var_08 = abs(angleclamp180(self.var_1D[1] + param_02.var_AAEA - vectortoyaw(var_07)));
if(var_08 > var_04)
{
return 0;
}
var_09 = self localtoworldcoords(param_02.var_64A2);
if(distance2dsquared(var_06,var_09) > var_05 || !function_02E6(var_09,self))
{
return 0;
}
return 1;
}
//Function Number: 50
func_9031(param_00,param_01,param_02)
{
var_03 = spawnstruct();
var_03.var_5811 = 0;
var_04 = maps/mp/agents/_scripted_agent_anim_util::func_87C(param_00,param_01);
if(!isdefined(var_04))
{
return var_03;
}
var_05 = self method_83DB(var_04);
var_06 = maps/mp/agents/_scripted_agent_anim_util::func_4416(param_02,var_05);
var_07 = var_06 == int(var_05 * 0.5);
if(var_07)
{
return var_03;
}
var_08 = self method_83D9(var_04,var_06);
var_09 = self method_83D8(var_04,var_06);
var_0A = 0;
var_0B = 0;
var_0C = 10;
var_0D = 1 / var_0C;
for(var_0E = 0;var_0E < var_0C;var_0E++)
{
var_0F = min(1,var_0B + var_0D);
var_10 = getmovedelta(var_09,var_0B,var_0F);
var_0A = var_0A + length(var_10);
var_0B = var_0F;
}
var_11 = 0;
if(var_05 > 1)
{
var_12 = var_05 - 1;
var_13 = 360 / var_12;
var_11 = -180 + var_06 * var_13;
}
var_03.var_5811 = 1;
var_03.var_873 = param_00;
var_03.var_EE8 = var_04;
var_03.var_688B = var_05;
var_03.var_37E2 = var_06;
var_03.var_37E3 = var_08;
var_03.var_F4B = var_0A;
var_03.var_64A2 = getmovedelta(var_09,0,1);
var_03.var_AAEA = var_11;
return var_03;
}
//Function Number: 51
func_6704()
{
var_00 = 113;
if(isdefined(self.cornerlessturnmindegreeoverride))
{
var_00 = self.cornerlessturnmindegreeoverride;
}
var_01 = self method_83E6();
if(var_01 == (0,0,0))
{
return;
}
var_02 = self.var_1D[1];
var_03 = vectortoyaw(var_01);
var_04 = angleclamp180(var_03 - var_02);
if(abs(var_04) < var_00)
{
return;
}
var_05 = self [[ maps/mp/agents/_agent_utility::func_A59("get_action_params") ]]();
var_06 = "turn_" + self.var_108;
var_07 = maps/mp/agents/_scripted_agent_anim_util::func_87C(var_06,var_05);
if(!isdefined(var_07))
{
return;
}
var_08 = self method_83DB(var_07);
var_09 = maps/mp/agents/_scripted_agent_anim_util::func_4416(var_04,var_08);
var_0A = var_09 == int(var_08 * 0.5);
if(var_0A)
{
return;
}
var_0C = self method_83D8(var_07,var_09);
var_0D = getmovedelta(var_0C);
var_0E = var_04 - getangledelta(var_0C);
var_0F = undefined;
if(getdvarint("scr_zombieProjectedTurnLimiting") || common_scripts\utility::func_562E(self.useprojectedturnlimiting))
{
var_10 = self method_8198();
if(isdefined(var_10))
{
var_11 = 60;
var_12 = distance(self.var_116,var_10.var_116);
if(var_12 <= var_11)
{
return;
}
}
var_0F = self localtoworldcoords(rotatevector(var_0D,(0,var_0E,0)));
var_13 = vectordot(var_01,var_0F - self.var_116);
if(var_13 > 0)
{
var_14 = var_13 - distance(self method_85D5(var_13),self.var_116);
var_15 = 3;
if(var_14 > var_15)
{
return;
}
}
}
else
{
var_16 = length(var_0D);
var_17 = self method_85D5(var_16);
var_18 = distance(self.var_116,var_17);
var_19 = 50;
if(var_16 + var_19 > var_18)
{
return;
}
var_0F = self localtoworldcoords(var_0D);
}
var_1A = function_02E6(var_0F,self) && function_02DE(self.var_116,var_0F,self);
if(!var_1A)
{
return;
}
var_1C = spawnstruct();
var_1C.var_EE8 = var_07;
var_1C.var_873 = var_06;
var_1C.var_EC1 = var_09;
var_1C.var_EC3 = "anim deltas";
var_1C.var_6C37 = "face angle abs";
var_1C.var_6C38 = (self.var_1D[0],self.var_1D[1] + var_0E,self.var_1D[2]);
return var_1C;
}
//Function Number: 52
func_6BD0()
{
var_00 = undefined;
self.var_1E22 = undefined;
var_01 = 0.1;
var_02 = int(var_01 * 20);
for(;;)
{
if(maps/mp/agents/humanoid/_humanoid_move::func_5810())
{
self.var_1E22 = undefined;
}
else
{
var_03 = func_6704();
if(isdefined(var_03))
{
return var_03;
}
var_04 = self method_85D6();
if(!isdefined(var_04))
{
self.var_1E22 = undefined;
}
else
{
var_05 = var_04["position"];
var_06 = var_04["angle"];
var_07 = distance2dsquared(self.var_116,var_05);
if(var_07 > squared(150))
{
}
else
{
var_0A = !isdefined(self.var_1E22) || self.var_1E22.var_266C != var_05 || abs(angleclamp180(self.var_1E22.var_266F - var_06)) > 20;
if(var_0A)
{
if(level.var_AC67 == level.var_AC37)
{
}
else
{
if(var_0A)
{
level.var_AC67++;
self.var_1E22 = spawnstruct();
self.var_1E22.var_266C = var_05;
self.var_1E22.var_266F = var_06;
var_0B = self [[ maps/mp/agents/_agent_utility::func_A59("get_action_params") ]]();
var_0C = "turn_" + self.var_108;
self.var_1E22.var_6748 = func_9031(var_0C,var_0B,var_06);
var_0C = var_0C + "_quick";
self.var_1E22.var_789D = func_9031(var_0C,var_0B,var_06);
}
var_00 = self.var_1E22.var_6748;
if(var_00.var_5811)
{
if(func_314F(var_05,var_06,var_00))
{
break;
}
}
var_00 = self.var_1E22.var_789D;
if(var_00.var_5811)
{
if(func_314F(var_05,var_06,var_00))
{
break;
}
}
}
}
}
}
}
wait(var_01);
}
var_03 = spawnstruct();
var_03.var_EE8 = var_00.var_EE8;
var_03.var_873 = var_00.var_873;
var_03.var_EC1 = var_00.var_37E2;
var_03.var_EC3 = "code_move";
var_03.var_6C37 = "face motion";
return var_03;
}
//Function Number: 53
func_AC04()
{
self endon("death");
if(!isdefined(level.var_AC58))
{
level.var_AC58["walk"] = 100;
level.var_AC58["run"] = 130;
level.var_AC58["sprint"] = 130;
}
for(;;)
{
if(maps/mp/agents/_scripted_agent_anim_util::func_57E2() || self.var_BA4 == "traverse")
{
wait 0.05;
continue;
}
self.var_64C2 = func_4440();
self.var_672D = func_4440();
self.var_9D0D = 1;
self.var_4013 = 1;
self.var_6481 = undefined;
if(isdefined(self.var_297D))
{
self.var_108 = [[ self.var_297D ]]();
}
else if(!maps/mp/agents/humanoid/_humanoid_move::is_passive_exempt() && common_scripts\utility::func_3794("zombie_passive"))
{
self.var_108 = "walk";
}
else
{
self.var_108 = [[ maps/mp/agents/_agent_utility::func_A59("move_mode") ]]();
}
self.horzalign = level.var_AC58[self.var_108];
if(maps/mp/agents/humanoid/_humanoid_util::func_56BC())
{
self.horzalign = 100;
self.var_64C2 = self.var_4013;
}
common_scripts\utility::func_A71A(1,"speed_debuffs_changed");
}
}
//Function Number: 54
func_3219()
{
self endon("death");
for(;;)
{
self waittill("move_loop",var_00);
switch(var_00)
{
case "fx_blood":
func_2773("J_MainRoot","gib_bloodpool");
break;
case "fx_dust":
func_2773("J_MainRoot","crawl_dust");
break;
}
}
}
//Function Number: 55
func_2773(param_00,param_01)
{
var_02 = self gettagorigin(param_00);
var_03 = self gettagangles(param_00);
playfx(common_scripts\utility::func_44F5(param_01),var_02,anglestoforward(var_03),(0,0,1));
}
//Function Number: 56
func_099B(param_00,param_01)
{
self.var_1CF1[param_00] = param_01;
}
//Function Number: 57
func_443F(param_00)
{
if(!isdefined(self.var_1CF1) || !isdefined(self.var_1CF1[param_00]))
{
return undefined;
}
return self.var_1CF1[param_00];
}
//Function Number: 58
func_A0EC(param_00)
{
if(!isdefined(param_00.var_1CF2))
{
return;
}
self [[ param_00.var_1CF2 ]](param_00);
}
//Function Number: 59
removebuffbyname(param_00)
{
if(!isdefined(self.var_1CF1) || !isdefined(self.var_1CF1[param_00]))
{
return;
}
func_7CD3(self.var_1CF1[param_00],param_00);
}
//Function Number: 60
func_7CD3(param_00,param_01)
{
if(!isdefined(param_00.var_1CF0))
{
return;
}
self [[ param_00.var_1CF0 ]](param_00);
self.var_1CF1[param_01] = undefined;
}
//Function Number: 61
func_4441()
{
return 0.1;
}
//Function Number: 62
func_A0EE()
{
self notify("updateBuffs");
self endon("updateBuffs");
self endon("death");
var_00 = func_4441();
var_01 = 0;
for(;;)
{
wait(var_00);
if(!isdefined(self.var_1CF1))
{
continue;
}
foreach(var_04, var_03 in self.var_1CF1)
{
func_A0EC(var_03);
if(!isdefined(var_03.var_5CC8))
{
continue;
}
var_03.var_5CC8 = var_03.var_5CC8 - var_00;
if(var_03.var_5CC8 < 0)
{
func_7CD3(var_03,var_04);
}
}
self.var_1CF1 = lib_0547::func_FBF(self.var_1CF1);
}
}
//Function Number: 63
func_4440()
{
var_00 = 1;
if(!isdefined(self.var_1CF1))
{
return var_00;
}
foreach(var_02 in self.var_1CF1)
{
if(!isdefined(var_02.var_90F0))
{
continue;
}
var_00 = var_00 * var_02.var_90F0;
}
return var_00;
}
//Function Number: 64
func_A146()
{
self notify("updatePainSensor");
self endon("updatePainSensor");
self endon("death");
self.var_6DEA = spawnstruct();
self.var_6DEA.var_5BC8 = gettime();
self.var_6DEA.var_2994 = 0;
var_00 = 0.05;
var_01 = 5 * var_00;
for(;;)
{
wait(var_00);
if(gettime() > self.var_6DEA.var_5BC8 + 2000)
{
self.var_6DEA.var_2994 = self.var_6DEA.var_2994 - var_01;
}
self.var_6DEA.var_2994 = max(self.var_6DEA.var_2994,0);
if(func_5786())
{
self.var_6DEA.var_2994 = 0;
}
}
}
//Function Number: 65
func_6ADE(param_00,param_01,param_02)
{
if(isdefined(self.var_6ADF))
{
[[ self.var_6ADF ]](param_00,param_01,param_02);
}
if(isdefined(param_02) && param_02 == "dna_aoe_grenade_zombie_mp" || param_02 == "trap_zm_mp")
{
return;
}
if(isdefined(param_02) && isdefined(level.nopainweapons[param_02]))
{
return;
}
self.var_6DEA.var_5BC8 = gettime();
self.var_6DEA.var_2994 = self.var_6DEA.var_2994 + param_00;
}
//Function Number: 66
func_4510()
{
var_00 = clamp(level.var_A980 / 15,0,1);
var_01 = lerp(0.1,0.5,1 - var_00);
return var_01 * self.var_FB;
}
//Function Number: 67
func_8B9C()
{
if(lib_0547::func_6720())
{
return 0;
}
if(!isdefined(self.var_6DEA))
{
return 1;
}
if(self.var_6DEA.var_2994 > func_4510())
{
return 1;
}
return 0;
}
//Function Number: 68
func_5786()
{
if(isdefined(self.var_5382) && self.var_5382)
{
return 1;
}
if(isdefined(self.var_5381) && self.var_5381)
{
return 1;
}
return 0;
}
//Function Number: 69
func_AC22()
{
var_00 = [];
var_01 = lib_0547::func_A51(self.var_A4B);
var_00["action_table"] = var_01.var_879;
var_00["dismember_state"] = maps/mp/agents/_scripted_agent_anim_util::func_4156();
var_00["zombie_subtype"] = self.var_A4B;
var_00["source_project"] = level.var_87D[0];
var_00["move_style"] = self.var_648E;
if(common_scripts\utility::func_3794("zombie_passive") && !common_scripts\utility::func_562E(self.ispassiveexempt))
{
var_00["move_speed"] = "passive";
}
else
{
var_00["move_speed"] = self.var_108;
}
return var_00;
}
//Function Number: 70
func_6BD7(param_00,param_01,param_02)
{
lib_0547::func_6BAA(param_00,param_01,param_02);
self.var_220D = ::func_6BD0;
self.var_648E = common_scripts\utility::func_7A33(getarraykeys(level.var_87E["zombie_generic"]["move_style"]));
lib_0378::func_8D74("onZombieSpawn");
thread lib_0547::func_4A58();
var_03 = lib_0547::func_AC4B(self.var_116,"spawn");
var_03 lib_0547::func_AC48("agent_type",self.var_A4B);
var_03 lib_0547::func_AC4D();
if(isdefined(level.var_AC60[self.var_A4B]))
{
level.var_AC60[self.var_A4B]++;
}
thread func_ABE0();
}
//Function Number: 71
func_ABE0()
{
var_00 = 0.2;
self endon("death");
wait(randomfloat(var_00));
for(;;)
{
function_00F6(self.var_116,"script_zombie_enemy_pos: agent_type %s, angles %v, game_time_ms %d",self.var_A4B,self.var_1D,gettime());
wait(var_00);
}
}
//Function Number: 72
func_AC1E()
{
}
//Function Number: 73
zombietesladelayeddmg(param_00,param_01,param_02)
{
if(common_scripts\utility::func_562E(param_01))
{
param_00 = self.var_BC;
}
return param_00;
}
//Function Number: 74
func_AC6E()
{
var_00 = self.var_901F;
if(common_scripts\utility::func_562E(self.var_6941) && isdefined(level.var_ABDD))
{
return level.var_ABDD[level.var_ABDD.size - 1];
}
return func_957E(var_00);
}
//Function Number: 75
func_43ED()
{
return gettime() - self.var_90AB * 0.001;
}
//Function Number: 76
func_4268()
{
if(isdefined(self.var_3C70))
{
return gettime() - self.var_3C70 * 0.001;
}
return gettime() - self.var_90AB * 0.001;
}
//Function Number: 77
func_43D2()
{
var_00 = gettime();
if(isdefined(level.var_A98C))
{
var_00 = var_00 - level.var_A98C;
}
return var_00 * 0.001;
}
//Function Number: 78
custom_solo_zombie_sprint_rule()
{
if(!isdefined(level.custom_solo_zombie_sprint_rule))
{
return 1;
}
return [[ level.custom_solo_zombie_sprint_rule ]]();
}
//Function Number: 79
func_957E(param_00)
{
if(!isdefined(level.var_ABDE))
{
level.var_ABDE = [0,35,70,100];
level.var_ABDD = ["walk","run","sprint"];
}
if(custom_solo_zombie_sprint_rule() && maps/mp/agents/_agent_utility::func_45BB("zombie_generic") == 1 && func_43D2() > 80)
{
self.var_A977 = param_00;
self.var_A975 = "sprint";
self.var_6481 = 1;
return "sprint";
}
var_01 = 3;
if(param_00 > 1)
{
var_02 = param_00 - 1;
}
else
{
var_02 = var_01;
}
var_03 = var_02 * var_01;
if(param_00 < 4)
{
var_03 = 1;
}
if(!isdefined(self.var_6480))
{
self.var_6480 = 1;
}
var_04 = 0;
if(self.var_A4B == "zombie_generic")
{
if(isdefined(level.var_64B6))
{
var_05 = self [[ level.var_64B6 ]](param_00);
if(isdefined(var_05))
{
self.var_6480 = var_05;
var_04 = 1;
}
}
if(isdefined(self.var_6A3D))
{
self.var_A975 = self.var_6A3D;
self.var_6A3D = undefined;
self.var_A977 = param_00;
}
if(isdefined(self.var_6A3C))
{
self.var_6481 = self.var_6A3C;
self.var_6A3C = undefined;
}
if(isdefined(self.var_6A3F))
{
self.var_A978 = self.var_6A3F;
self.var_6A3F = undefined;
}
}
if(!isdefined(self.var_A975) || self.var_A977 != param_00)
{
self.var_A977 = param_00;
self.var_A978 = randomintrange(var_03,var_03 + 35);
if(0)
{
if(self.var_A978 >= 70)
{
self.var_A978 = 69;
}
}
for(var_06 = 0;var_06 < level.var_ABDD.size;var_06++)
{
if(self.var_A978 >= level.var_ABDE[var_06])
{
self.var_A975 = level.var_ABDD[var_06];
self.var_A976 = common_scripts\utility::func_5D93(self.var_A978,level.var_ABDE[var_06],level.var_ABDE[var_06 + 1],0,1);
}
}
}
if(common_scripts\utility::func_562E(var_04))
{
var_04 = 0;
self.var_A978 = self.var_A978 + self.var_6480;
for(var_06 = 0;var_06 < level.var_ABDD.size;var_06++)
{
if(self.var_A978 >= level.var_ABDE[var_06])
{
self.var_A975 = level.var_ABDD[var_06];
self.var_A976 = common_scripts\utility::func_5D93(self.var_A978,level.var_ABDE[var_06],level.var_ABDE[var_06 + 1],0,1);
}
}
}
if(isdefined(self.var_A976) && self.var_A976 == 1)
{
self.var_A976 = self.var_A976 - randomfloatrange(0,0.25);
}
self.var_6481 = self.var_A976;
return self.var_A975;
}
//Function Number: 80
func_ABFD(param_00,param_01,param_02,param_03)
{
var_04 = getclosestpointonnavmesh(param_00);
var_05 = (0,1,1);
if(!lib_0547::func_2436(param_00,var_04,8,64))
{
return 0;
}
if(!isdefined(getgroundposition(param_00,15,64,16,0)))
{
return 0;
}
if(isdefined(param_02))
{
var_07 = level.var_AC80.var_ACB3[param_02];
if(!isdefined(var_07.var_74DC))
{
return 0;
}
var_08 = function_0326(param_00,var_07.var_74DC);
if(!isdefined(var_08) || var_08.size == 0)
{
return 0;
}
if(isdefined(param_03) && param_03 == "closet")
{
var_09 = undefined;
var_0A = [];
var_0B = gettraversalsonpath(param_00,var_07.var_74DC);
var_0C = isdefined(var_0B) && var_0B.size > 0;
while(!isdefined(var_09))
{
var_0B = gettraversalsonpath(param_00,var_07.var_74DC);
var_0A = common_scripts\utility::func_F73(var_0A,var_0B);
foreach(var_0E in var_0B)
{
setnavlinkenabled(var_0E,0);
}
var_08 = function_0326(param_00,var_07.var_74DC);
if(!isdefined(var_08) || var_08.size == 0)
{
var_09 = 1;
continue;
}
if(!isdefined(var_0B) || var_0B.size == 0)
{
var_09 = 0;
}
}
foreach(var_0E in var_0A)
{
setnavlinkenabled(var_0E,1);
}
if(!var_09)
{
self.traversalvalidationfailed = 1;
}
if(!var_0C)
{
return 0;
}
if(!isdefined(self.var_3C5B))
{
self.var_3C5B = var_0A[0];
}
}
}
return 1;
}
//Function Number: 81
func_5D9E(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_02))
{
param_02 = (1,1,1);
}
if(!isdefined(param_03))
{
param_03 = 1;
}
if(!isdefined(param_05))
{
param_05 = 0;
}
}
//Function Number: 82
func_AB51()
{
if(func_56E1())
{
return;
}
var_00 = 1;
var_01 = 200;
self endon("death");
var_02 = undefined;
var_03 = 0;
for(;;)
{
self waittill("bad_path",var_04);
var_05 = gettime() * 0.001;
if(!common_scripts\utility::func_562E(self.var_57C0) && isdefined(var_02) && var_05 - var_02 < var_00 && !common_scripts\utility::func_562E(self.var_5748))
{
var_03++;
}
else
{
var_03 = 0;
}
var_02 = var_05;
if(var_03 > var_01 && !func_56E1())
{
lib_056D::func_5A86();
}
}
}
//Function Number: 83
func_56E1()
{
switch(self.var_A4B)
{
case "zombie_guardian":
case "zombie_bob":
case "zombie_boss_village":
return 1;
}
if(common_scripts\utility::func_562E(self.var_56E1))
{
return 1;
}
var_00 = lib_0547::func_A51(self.var_A4B);
if(isdefined(var_00) && common_scripts\utility::func_562E(var_00.exemptfromfailsafekill))
{
return 1;
}
return 0;
}
//Function Number: 84
func_63A6()
{
setomnvar("ui_zm_last_alive_prompt",0);
for(;;)
{
level common_scripts\utility::knock_off_battery("player_bleedout","player_disconnected","player_revived");
var_00 = 0;
var_01 = 0;
foreach(var_03 in level.var_744A)
{
if(maps\mp\_utility::func_57A0(var_03))
{
var_00++;
}
var_01 = var_01 + var_03.var_6881 - var_03.var_178B;
}
if(var_00 == 1 && var_01 > 0)
{
setomnvar("ui_zm_last_alive_prompt",1);
continue;
}
setomnvar("ui_zm_last_alive_prompt",0);
}
}
//Function Number: 85
giveplayersexp(param_00,param_01)
{
while(!isdefined(level.var_744A) || level.var_744A.size == 0)
{
wait 0.05;
}
if(isdefined(param_01))
{
var_02 = [param_01];
}
else
{
var_02 = level.var_744A;
}
foreach(param_01 in var_02)
{
param_01 maps\mp\zombies\_zombies_rank::func_AC23(param_00);
param_01 lib_0378::func_8D74("objective_complete",param_00);
}
}
//Function Number: 86
handlebrokenspawnervstraversalplacement()
{
var_00 = self;
var_00 endon("death");
wait(10);
if(!var_00 lib_0547::func_4B2C())
{
var_00 lib_0547::func_84CB();
}
}
//Function Number: 87
handlebadmeleevolumes()
{
var_00 = getentarray("bad_melee_volume","targetname");
foreach(var_02 in var_00)
{
var_02 thread badmeleevolumethink();
}
}
//Function Number: 88
badmeleevolumethink()
{
var_00 = self;
for(;;)
{
var_00 waittill("trigger",var_01);
if(function_02BF(var_01) && isalive(var_01))
{
var_01 thread enteredbadmeleevolume();
}
}
}
//Function Number: 89
enteredbadmeleevolume()
{
var_00 = self;
var_00 notify("badMeleeVolume");
var_00 endon("badMeleeVolume");
var_00 endon("death");
if(!common_scripts\utility::func_562E(var_00.badmeleevolume))
{
var_00.badmeleevolume = 1;
var_00.nopairmelee = 1;
var_00 lib_0542::set_invalid_melee_pairing_reason("badMeleeVolume",1);
}
wait 0.05;
waittillframeend;
var_00.badmeleevolume = undefined;
var_00.nopairmelee = undefined;
var_00 lib_0542::set_invalid_melee_pairing_reason("badMeleeVolume",0);
}