mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 18:27:57 -05:00
837 lines
18 KiB
Plaintext
837 lines
18 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 1379.gsc
|
|
* Game: Call of Duty: WWII
|
|
* Platform: PC
|
|
* Function Count: 39
|
|
* Decompile Time: 42 ms
|
|
* Timestamp: 10/27/2023 3:25:54 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_00D5()
|
|
{
|
|
level.var_A41["zombie_exploder"] = level.var_A41["zombie"];
|
|
level.var_A41["zombie_exploder"]["think"] = ::func_ABA0;
|
|
level.var_A41["zombie_exploder"]["spawn"] = ::func_AB9F;
|
|
level.var_A41["zombie_exploder"]["on_damaged_finished"] = ::func_AB99;
|
|
level.var_A41["zombie_exploder"]["is_hit_weak_point"] = ::func_AB95;
|
|
level.var_A41["zombie_exploder"]["on_killed"] = ::func_AB9A;
|
|
level.var_A41["zombie_exploder"]["get_action_params"] = ::func_AB91;
|
|
level.var_A41["zombie_exploder"]["move_mode"] = ::func_AB97;
|
|
level.var_A41["zombie_exploder"]["on_damaged"] = ::func_AB9B;
|
|
level.var_62B3["drag_explosive_zm"] = ::func_62A2;
|
|
level.var_ABA1 = spawn("script_origin",(0,0,0));
|
|
level.var_ABA1.var_1A7 = "allies";
|
|
var_00 = spawnstruct();
|
|
var_00.var_A4B = "zombie_exploder";
|
|
var_00.var_EAE = "zombie_animclass";
|
|
var_00.var_E88 = "zombie_generic";
|
|
var_00.var_879 = "zombie_generic";
|
|
var_00.var_5ED2["bomber"]["whole_body"] = "zom_bomber_base";
|
|
var_00.var_5ED2["bomber"]["drag_weapons"] = ["zom_bomb"];
|
|
var_00.var_4C12 = 2;
|
|
var_00.var_60E2 = 20;
|
|
var_00.var_8302 = 65;
|
|
var_00.var_8303 = 15;
|
|
var_00.parenttype = "zombie_generic";
|
|
var_00.suppressive_fire_speed_multiplier = 0.3;
|
|
var_00.tacklebymelee = 1;
|
|
var_00.tacklebycharge = 1;
|
|
var_00.knockbyravensword = 1;
|
|
var_00.shockbyteslablood = 1;
|
|
var_00.energyhold = 1;
|
|
var_00.energyslowsecondary = 1;
|
|
var_00.throwable = 1;
|
|
if(isdefined(level.var_62AB))
|
|
{
|
|
var_00 = [[ level.var_62AB ]](var_00);
|
|
}
|
|
|
|
lib_0547::func_A52(var_00,"zombie_exploder");
|
|
level.var_393E = [];
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_AB94(param_00)
|
|
{
|
|
if(!isdefined(self.var_4BF4))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_02 in self.var_4BF4)
|
|
{
|
|
if(var_02.var_95A6 == param_00)
|
|
{
|
|
return var_02;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_AB9F(param_00,param_01,param_02)
|
|
{
|
|
lib_054D::func_6BD7(param_00,param_01,param_02);
|
|
self.var_4BF4 = [];
|
|
self method_85A1("zombie_exploder");
|
|
foreach(var_04 in ["j_headb"])
|
|
{
|
|
var_05 = spawnstruct();
|
|
var_05.var_95A6 = var_04;
|
|
var_05.var_FB = 0.3 * self.var_FB;
|
|
var_05.var_BC = var_05.var_FB;
|
|
self.var_4BF4 = common_scripts\utility::func_F6F(self.var_4BF4,var_05);
|
|
}
|
|
|
|
self.var_4B34 = 0;
|
|
self.var_A99D = "TAG_WEAPON_CHEST";
|
|
thread func_51C4();
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_ABA0()
|
|
{
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
self endon("owner_disconnect");
|
|
lib_0566::func_ABB5();
|
|
var_00 = 1;
|
|
for(;;)
|
|
{
|
|
if(var_00)
|
|
{
|
|
var_01 = randomfloat(0.2);
|
|
var_00 = 0;
|
|
}
|
|
else
|
|
{
|
|
var_01 = 0.2;
|
|
}
|
|
|
|
wait(var_01);
|
|
if(lib_053C::func_4F8C())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(lib_053C::func_4F84())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(lib_053C::func_4F9B())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(lib_053C::func_4F9A())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
lib_053C::func_647();
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_51C4()
|
|
{
|
|
self endon("death");
|
|
waittillframeend;
|
|
var_00 = lib_0547::func_A51("zombie_exploder");
|
|
self.var_3391 = common_scripts\utility::func_7A33(var_00.var_5ED2[self.var_18B0]["drag_weapons"]);
|
|
var_01 = spawnstruct();
|
|
self attach(self.var_3391,self.var_A99D);
|
|
self.var_3937 = var_01;
|
|
var_02 = maps/mp/gametypes/zombies::func_1E59(lib_0547::func_A51("zombie_exploder"),self.var_901F);
|
|
var_01.var_6280 = self;
|
|
var_01.var_3935 = int(0.2 * var_02);
|
|
var_01.var_3F22 = 0;
|
|
var_01.var_117 = self;
|
|
var_01.var_72A1 = 0;
|
|
var_01.var_5B3C = 0;
|
|
self.var_392C = 1;
|
|
self.var_1723 = 1;
|
|
thread func_AB96();
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_AB9A(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
if(common_scripts\utility::func_562E(self.var_392C))
|
|
{
|
|
if(common_scripts\utility::func_562E(self.var_6734))
|
|
{
|
|
self.var_3937 func_3940();
|
|
}
|
|
else
|
|
{
|
|
thread func_AB90();
|
|
}
|
|
|
|
if(isplayer(param_01) && issubstr(param_04,"shovel") && maps\mp\_utility::func_4571() == "mp_zombie_nest_01")
|
|
{
|
|
param_01 maps/mp/gametypes/zombies::func_47C8("ZM_SHOVEL");
|
|
}
|
|
}
|
|
|
|
level notify("zombie_exploder_killed");
|
|
self setmodel("zom_bomber_base");
|
|
lib_054D::func_6BD4(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_AB99(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.exploder_godmode) && lib_0547::func_5565(param_0A,tolower("TAG_WEAPON")))
|
|
{
|
|
if(common_scripts\utility::func_562E(self.var_392C))
|
|
{
|
|
if(isdefined(param_05) && isdefined(param_08) && isdefined(param_01) && isplayer(param_01))
|
|
{
|
|
var_0B = param_01 method_850B(param_05,param_08);
|
|
if(var_0B != 0)
|
|
{
|
|
param_02 = int(param_02 / var_0B);
|
|
}
|
|
}
|
|
|
|
self.var_3937 func_3943(param_02,param_01,param_05,param_04);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(common_scripts\utility::func_562E(self.sgvip) && func_AB95(self,param_00,param_01,param_02,param_04,param_05,param_06,param_07,param_08,param_0A))
|
|
{
|
|
param_02 = int(param_02 * 1.1);
|
|
}
|
|
|
|
if(!common_scripts\utility::func_562E(self.exploder_godmode) && !self.var_4B34)
|
|
{
|
|
var_0C = func_AB94(param_0A);
|
|
if(isdefined(var_0C) && var_0C.var_BC > 0)
|
|
{
|
|
var_0C.var_BC = var_0C.var_BC - param_02;
|
|
if(var_0C.var_BC <= 0)
|
|
{
|
|
var_0C.var_BC = 0;
|
|
self.var_4B34 = 1;
|
|
self notify(func_40E3(var_0C.var_95A6));
|
|
var_0D = var_0C.var_95A6 + " taken out";
|
|
switch(var_0C.var_95A6)
|
|
{
|
|
case "j_head":
|
|
var_0D = "\nExploder can\'t melee";
|
|
self.var_1723 = 1;
|
|
break;
|
|
|
|
case "j_headb":
|
|
self.var_1723 = undefined;
|
|
if(common_scripts\utility::func_562E(self.var_392C) && !common_scripts\utility::func_562E(self.escort_zombie))
|
|
{
|
|
var_0D = "\nExploder dropped bomb";
|
|
func_AB90();
|
|
if(isplayer(param_01) && !lib_0547::func_577E(param_01))
|
|
{
|
|
param_01 thread lib_054E::func_18EC();
|
|
}
|
|
|
|
self.var_6CC4 = "scripted_pain_drop_bomb";
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
lib_054D::func_6BD3(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A);
|
|
self.var_6CC4 = undefined;
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_AB95(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
param_00 = self;
|
|
if(common_scripts\utility::func_562E(self.var_392C) && lib_0547::func_5565(param_09,tolower("TAG_WEAPON")))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(common_scripts\utility::func_562E(self.sgvip) && zombie_vib_exploder_is_weak_point(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return lib_054D::func_5714(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
|
}
|
|
|
|
//Function Number: 9
|
|
zombie_vib_exploder_is_weak_point(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
var_0A = 0;
|
|
var_0B = "";
|
|
switch(param_08)
|
|
{
|
|
case "j_headb":
|
|
case "neck":
|
|
case "helmet":
|
|
case "j_head":
|
|
case "head":
|
|
var_0A = 1;
|
|
break;
|
|
}
|
|
|
|
return var_0A;
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_AB9D()
|
|
{
|
|
self method_802E(self.var_3391,self.var_A99D);
|
|
self.var_3937.var_117 = undefined;
|
|
self.var_3937 = undefined;
|
|
self.var_392C = 0;
|
|
var_00 = func_AB94("j_headb");
|
|
if(var_00.var_BC > 0)
|
|
{
|
|
var_00.var_BC = 0;
|
|
self.var_4B34 = 1;
|
|
self setmodel("zom_bomber_base_dead_phys");
|
|
}
|
|
|
|
self.var_1723 = 0;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_5F07()
|
|
{
|
|
self.var_6280 delete();
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_AB90()
|
|
{
|
|
self notify("dropped_explosive");
|
|
self.var_349C = spawn("script_model",(0,0,0));
|
|
self.var_349C setmodel(self.var_3391);
|
|
self.var_349C.var_A99D = "TAG_WEAPON";
|
|
func_0BBF(self.var_349C,self.var_349C.var_A99D,self,self.var_A99D);
|
|
self.var_349C lib_0547::init_damageable_script_model();
|
|
self.var_349C setcanradiusdamage(1);
|
|
self.var_349C.var_BC = self.var_3937.var_3935;
|
|
self.var_349C.var_3937 = self.var_3937;
|
|
self.var_3937.var_6280 = self.var_349C;
|
|
func_AB9D();
|
|
self.var_349C physicslaunchserver();
|
|
self.var_349C thread func_A88A();
|
|
self.var_349C thread func_6282();
|
|
self setmodel("zom_bomber_base_dead_phys");
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_3940()
|
|
{
|
|
self notify("exploder_shutdown");
|
|
if(isdefined(self.var_117) && common_scripts\utility::func_562E(self.var_117.var_392C))
|
|
{
|
|
self.var_117 func_AB9D();
|
|
return;
|
|
}
|
|
|
|
func_5F07();
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_3943(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_02) && param_02 == "drag_explosive_zm")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_03) && param_03 == "MOD_MELEE")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isplayer(param_01) && param_03 != "MOD_EXPLOSIVE" && self.var_5B3C != gettime())
|
|
{
|
|
self.var_72A1++;
|
|
self.var_5B3C = gettime();
|
|
}
|
|
|
|
self.var_3935 = self.var_3935 - param_00;
|
|
if(self.var_3935 <= 0 || self.var_72A1 >= 4)
|
|
{
|
|
thread func_0893(param_01,param_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
zombie_exploder_attempt_detonate(param_00,param_01)
|
|
{
|
|
var_02 = self;
|
|
if(common_scripts\utility::func_562E(self.var_392C))
|
|
{
|
|
self.var_3937 thread func_0893(param_00,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_A88A()
|
|
{
|
|
self endon("entitydeleted");
|
|
self.var_3937 endon("detonate");
|
|
self.var_3937 endon("exploder_shutdown");
|
|
for(;;)
|
|
{
|
|
self waittill("damage",var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09);
|
|
self.var_3937 func_3943(var_00,var_01,var_09,var_04);
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_4183()
|
|
{
|
|
var_00 = self;
|
|
var_01 = var_00.var_6280 gettagorigin(var_00.var_6280.var_A99D);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_0893(param_00,param_01)
|
|
{
|
|
self notify("detonate");
|
|
var_02 = func_4183();
|
|
func_AB98(var_02);
|
|
var_03 = spawn("script_origin",var_02);
|
|
if(isdefined(param_00))
|
|
{
|
|
var_03.var_9DBF = param_01;
|
|
var_03 detonateusingweapon("drag_explosive_zm",param_00);
|
|
}
|
|
else
|
|
{
|
|
var_03 detonateusingweapon("drag_explosive_zm");
|
|
}
|
|
|
|
var_04 = level.var_ABA1;
|
|
if(isdefined(param_00) && isplayer(param_00))
|
|
{
|
|
var_04.var_117 = param_00;
|
|
var_04.var_9DBF = param_01;
|
|
}
|
|
else
|
|
{
|
|
var_04 = undefined;
|
|
}
|
|
|
|
if(isdefined(self.var_117) && common_scripts\utility::func_562E(self.var_117.var_392C))
|
|
{
|
|
self.var_117 thread zombie_exploder_ensure_die_from_attached_explosion(var_04);
|
|
}
|
|
|
|
func_3940();
|
|
func_AB9C(var_02,var_04);
|
|
func_AB9E(var_02);
|
|
wait(5);
|
|
var_03 delete();
|
|
}
|
|
|
|
//Function Number: 19
|
|
zombie_exploder_ensure_die_from_attached_explosion(param_00)
|
|
{
|
|
var_01 = self;
|
|
var_01 endon("death");
|
|
wait 0.05;
|
|
if(isdefined(param_00) && !isplayer(param_00.var_117))
|
|
{
|
|
param_00 = undefined;
|
|
}
|
|
|
|
if(isalive(var_01))
|
|
{
|
|
var_01 dodamage(var_01.var_FB + 666,var_01.var_116,param_00,undefined,"MOD_EXPLOSIVE","drag_explosive_zombie_zm");
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_AB9C(param_00,param_01)
|
|
{
|
|
var_02 = maps/mp/gametypes/zombies::func_1E59(lib_0547::func_A51("zombie_exploder"),level.var_A980);
|
|
var_03 = int(1.1 * var_02);
|
|
var_04 = int(0.5 * var_02);
|
|
radiusdamage(param_00,92,var_03,var_04,param_01,"MOD_EXPLOSIVE","drag_explosive_zombie_zm");
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_AB9E(param_00)
|
|
{
|
|
if(!isdefined(level.var_744A))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_02 in level.var_744A)
|
|
{
|
|
if(distance(param_00,var_02.var_116) <= 92)
|
|
{
|
|
var_02 shellshock("ear_ring_mp",1.25,0,0);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_AB97()
|
|
{
|
|
var_00 = "walk";
|
|
var_01 = 1;
|
|
var_02 = func_AB94("j_headb");
|
|
if(isdefined(var_02) && var_02.var_BC <= 0)
|
|
{
|
|
var_01 = 1;
|
|
var_00 = [[ level.var_A41["zombie"]["move_mode"] ]]();
|
|
if(var_00 == "walk")
|
|
{
|
|
var_00 = "run";
|
|
}
|
|
}
|
|
|
|
self.var_64C2 = var_01 * lib_054D::func_4440();
|
|
self.var_2FA4 = var_00 != "walk";
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_AB91()
|
|
{
|
|
var_00 = lib_054D::func_AC22();
|
|
if(common_scripts\utility::func_562E(self.var_392C))
|
|
{
|
|
if(self.var_3937.var_3F22 == 1)
|
|
{
|
|
var_00["script_var"] = "tick_bomb";
|
|
}
|
|
else
|
|
{
|
|
var_00["script_var"] = "held_bomb";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_00["script_var"] = "drop_bomb";
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_40E3(param_00)
|
|
{
|
|
return param_00 + "_braindead";
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_AB96()
|
|
{
|
|
self endon("death");
|
|
self endon("dropped_explosive");
|
|
self endon(func_40E3("j_headb"));
|
|
self.var_3937 endon("short_fuse");
|
|
self.var_3937 endon("detonate");
|
|
wait 0.05;
|
|
thread func_6309(self,self.var_3937);
|
|
for(;;)
|
|
{
|
|
wait(1);
|
|
if(lib_0547::is_zombie_stunned())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(self.var_3937.var_3F22 == 1)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(common_scripts\utility::func_562E(self.escort_zombie))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00 = lib_053C::func_4F88()[0];
|
|
if(!isdefined(var_00))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01 = distancesquared(self.var_116,var_00.var_116);
|
|
if(var_01 > squared(func_AB92()))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!lib_0547::func_4B2C())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isplayer(var_00) && !self agentcanseesentient(var_00))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
self.var_3937 thread func_3942();
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_3932()
|
|
{
|
|
var_00 = self;
|
|
if(!common_scripts\utility::func_562E(var_00.var_5759))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 notify("killanimscript");
|
|
var_00 thread maps/mp/agents/humanoid/_humanoid_move::func_2603();
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_3942()
|
|
{
|
|
self notify("short_fuse");
|
|
self endon("detonate");
|
|
self endon("exploder_shutdown");
|
|
self endon("exploder_interrupt");
|
|
var_00 = self.var_117;
|
|
var_00 endon("death");
|
|
var_00 endon("dropped_explosive");
|
|
self.var_3F22 = 1;
|
|
self.var_3F23 = gettime();
|
|
var_00 func_3932();
|
|
var_01 = var_00 lib_053C::func_4F88()[0];
|
|
if(isdefined(var_01))
|
|
{
|
|
var_02 = 1 - distance(var_01.var_116,var_00.var_116) / func_AB92();
|
|
if(var_02 > 0.2)
|
|
{
|
|
var_03 = 2.3 * var_02;
|
|
wait(var_03);
|
|
}
|
|
}
|
|
|
|
wait(1.25);
|
|
for(;;)
|
|
{
|
|
var_04 = level.var_744A;
|
|
if(common_scripts\utility::func_562E(var_00.ismooncontrolled))
|
|
{
|
|
var_04 = var_00 lib_053C::func_4F88();
|
|
}
|
|
|
|
if(var_00 should_explode(self,var_04))
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
|
|
thread func_0893();
|
|
}
|
|
|
|
//Function Number: 28
|
|
should_explode(param_00,param_01)
|
|
{
|
|
if(lib_0547::func_5565(self.var_BA4,"traverse"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(lib_0547::func_5565(self.var_BA4,"scripted"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(common_scripts\utility::func_4461(param_00 func_4183(),param_01,92)))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_630A(param_00)
|
|
{
|
|
param_00 endon("exploder_interrupt");
|
|
var_01 = self;
|
|
for(;;)
|
|
{
|
|
wait(1);
|
|
var_02 = lib_053C::func_4F88();
|
|
if(var_02.size == 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_03 = var_02[0];
|
|
var_04 = distance(var_01.var_116,var_03.var_116);
|
|
if(var_04 > func_AB93())
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_01 notify("player_dist_reset");
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_6309(param_00,param_01)
|
|
{
|
|
param_01 endon("exploder_shutdown");
|
|
param_01 endon("death");
|
|
param_01 endon("detonate");
|
|
param_00 endon("death");
|
|
param_00 endon("dropped_explosive");
|
|
param_01 waittill("short_fuse");
|
|
param_00 childthread func_630A(param_01);
|
|
var_02 = param_00 common_scripts\utility::func_A715("stun_burst","player_dist_reset","dropped_explosive","zombie_stunned");
|
|
param_01 notify("exploder_interrupt");
|
|
param_01.var_3F22 = 0;
|
|
param_00 func_3932();
|
|
param_00 thread func_AB96();
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_0BBF(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = param_00 gettagorigin(param_01);
|
|
var_05 = param_00 gettagangles(param_01);
|
|
var_06 = param_02 gettagorigin(param_03);
|
|
var_07 = param_02 gettagangles(param_03);
|
|
var_08 = transformmove(var_06,var_07,var_04,var_05,param_00.var_116,param_00.var_1D);
|
|
param_00.var_116 = var_08["origin"];
|
|
param_00.var_1D = var_08["angles"];
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_2AD8(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
self endon(param_04);
|
|
var_05 = [];
|
|
var_05["forward"] = (1,0,0);
|
|
var_05["up"] = (0,0,1);
|
|
var_05["right"] = (0,1,0);
|
|
var_06 = anglestoaxis(param_01);
|
|
foreach(var_09, var_08 in var_06)
|
|
{
|
|
var_06[var_09] = var_08 * param_02 * 0.5;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
foreach(var_09, var_08 in var_06)
|
|
{
|
|
thread maps\mp\_utility::func_33D8(param_00,param_00 + var_08,1,param_03);
|
|
thread maps\mp\_utility::func_33D8(param_00 + var_08,param_00 + var_08 * 2,1,var_05[var_09]);
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_62A2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_6282()
|
|
{
|
|
level.var_393E = common_scripts\utility::func_F6F(level.var_393E,self);
|
|
thread func_6281();
|
|
waittillframeend;
|
|
if(level.var_393E.size > 12)
|
|
{
|
|
var_00 = level.var_393E.size - 12;
|
|
var_01 = [];
|
|
for(var_02 = 0;var_02 < var_00;var_02++)
|
|
{
|
|
var_01[var_02] = level.var_393E[var_02];
|
|
}
|
|
|
|
foreach(var_04 in var_01)
|
|
{
|
|
var_04.var_3937 func_3940();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_6281()
|
|
{
|
|
self waittill("entitydeleted");
|
|
level.var_393E = common_scripts\utility::func_F93(level.var_393E,self);
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_AB92()
|
|
{
|
|
if(common_scripts\utility::func_562E(level.zmb_exploder_always_chases))
|
|
{
|
|
return 99999;
|
|
}
|
|
|
|
return 350;
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_AB93()
|
|
{
|
|
if(common_scripts\utility::func_562E(level.zmb_exploder_always_chases))
|
|
{
|
|
return 999990;
|
|
}
|
|
|
|
return 450;
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_AB98(param_00)
|
|
{
|
|
level notify("objective_zombie_exploder_detonation",param_00,92);
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_AB9B(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.var_55AB) && param_05 == "panzerschreck_zm") || param_05 == "bazooka_zm")
|
|
{
|
|
if(common_scripts\utility::func_562E(self.sgvip))
|
|
{
|
|
param_02 = int(self.var_FB / 5);
|
|
}
|
|
else
|
|
{
|
|
param_02 = self.var_FB;
|
|
}
|
|
}
|
|
|
|
if(common_scripts\utility::func_562E(self.sgvip) && isdefined(level.zmb_boss_damage_reduction_func))
|
|
{
|
|
param_02 = [[ level.zmb_boss_damage_reduction_func ]](param_05,param_02);
|
|
}
|
|
|
|
if(isdefined(self.on_took_damage_func))
|
|
{
|
|
self thread [[ self.on_took_damage_func ]](anglestoforward(self.var_1D),param_08,param_05,param_04,param_02,param_00,param_01);
|
|
}
|
|
|
|
lib_054D::func_6BD1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A);
|
|
} |