mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
451 lines
10 KiB
Plaintext
451 lines
10 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 1383.gsc
|
|
* Game: Call of Duty: WWII
|
|
* Platform: PC
|
|
* Function Count: 21
|
|
* Decompile Time: 23 ms
|
|
* Timestamp: 10/27/2023 3:25:56 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_00D5()
|
|
{
|
|
level.var_A41["zombie_heavy"] = level.var_A41["zombie"];
|
|
level.var_A41["zombie_heavy"]["think"] = ::func_ABC8;
|
|
level.var_A41["zombie_heavy"]["on_damaged"] = ::func_ABC4;
|
|
level.var_A41["zombie_heavy"]["on_damaged_finished"] = ::func_ABC5;
|
|
level.var_A41["zombie_heavy"]["move_mode"] = ::func_ABC3;
|
|
level.var_A41["zombie_heavy"]["ragdoll_overrides"] = ::func_ABC6;
|
|
level.var_A41["zombie_heavy"]["is_hit_weak_point"] = ::func_ABC0;
|
|
level.var_A41["zombie_heavy"]["tesla_delayed_dmg"] = ::zombie_heavy_tesla_delayed_dmg;
|
|
var_00 = "default look";
|
|
var_01 = spawnstruct();
|
|
var_01.var_A4B = "zombie_heavy";
|
|
var_01.var_EAE = "zombie_animclass";
|
|
var_01.var_879 = "zombie_generic";
|
|
var_01.var_5ED2[var_00]["whole_body"] = "zom_follower_base";
|
|
var_01.var_4C12 = 10;
|
|
var_01.var_60E2 = 65;
|
|
var_01.var_2F9B = 1;
|
|
var_01.var_8302 = 75;
|
|
var_01.var_8303 = 15;
|
|
var_01.parenttype = "zombie_generic";
|
|
var_01.suppressive_fire_speed_multiplier = 0.5;
|
|
var_01.tacklebycharge = 1;
|
|
var_01.knockbyravensword = 1;
|
|
var_01.energyhold = 1;
|
|
var_01.energyholdsecondary = 0;
|
|
var_01.energyholdpain = 4;
|
|
var_01.throwable = 0;
|
|
if(isdefined(level.var_62AB))
|
|
{
|
|
var_01 = [[ level.var_62AB ]](var_01);
|
|
}
|
|
|
|
lib_0547::func_A52(var_01,"zombie_heavy");
|
|
lib_0547::func_7BD0("heavy_charge",::lib_0547::zombie_charge_run,undefined,2.5,::lib_0547::zombie_charge_cleanup);
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_408E()
|
|
{
|
|
return lib_0547::func_4090("zombie_heavy");
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_4305()
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_ABC2()
|
|
{
|
|
self endon("death");
|
|
self endon("stalk_change");
|
|
childthread lib_0547::zombie_monitor_ignored_stalkee(self.var_915D);
|
|
var_00 = self.var_915D common_scripts\utility::func_A715("death","bleedout","disconnect","shouldBeIgnored");
|
|
self.var_915D = undefined;
|
|
func_ABBE();
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_ABC7(param_00)
|
|
{
|
|
if(lib_0547::func_5565(param_00,self.var_915D))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self notify("stalk_change");
|
|
wait 0.05;
|
|
self.var_915D = param_00;
|
|
self agentsetfavoriteenemy(param_00);
|
|
if(isdefined(param_00))
|
|
{
|
|
thread func_ABC2();
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_ABDB()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
var_00 = common_scripts\utility::func_A717("attack_hit","attack_miss");
|
|
level notify("follower swing",self gettagorigin("J_Wrist_RI"),64);
|
|
var_01 = spawnstruct();
|
|
var_01.var_2434 = 37;
|
|
var_01.var_60C1 = 55;
|
|
var_01.var_3A20 = 82;
|
|
var_01.var_1B70 = 160;
|
|
foreach(var_03 in lib_0547::func_408F())
|
|
{
|
|
var_04 = lib_0547::func_A51(var_03.var_A4B);
|
|
var_05 = isdefined(var_04) && common_scripts\utility::func_562E(var_04.tacklebymelee);
|
|
if(var_03 == self || !var_05 || !maps/mp/agents/humanoid/_humanoid_melee::func_11AF(var_03) || var_03 maps/mp/agents/humanoid/_humanoid_util::func_56BC())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_06 = var_03 lib_0547::func_43EF(var_01,distance(self.var_116,var_03.var_116));
|
|
lib_0547::func_7D1B(self,var_03,var_06);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_ABBE()
|
|
{
|
|
lib_0547::func_84CB();
|
|
if(isdefined(self.var_3043))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_66AC = 10;
|
|
common_scripts\utility::func_379A("zombie_passive");
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_ABC6()
|
|
{
|
|
return 0.3;
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_ABC8()
|
|
{
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
self endon("owner_disconnect");
|
|
self method_85A1("zombie_heavy");
|
|
if(!common_scripts\utility::func_562E(level.iszombiesshotgun))
|
|
{
|
|
self.var_6816 = 1;
|
|
}
|
|
|
|
self.var_2FA4 = 0;
|
|
self.var_915D = undefined;
|
|
self.var_6EB0 = 350;
|
|
self.var_78D7 = 0;
|
|
self.var_6099 = self.var_FB / 4;
|
|
self.var_60E4 = 1.5;
|
|
self.var_5542 = 0;
|
|
self.var_55AB = 1;
|
|
lib_0566::func_ABB5();
|
|
thread func_ABDB();
|
|
thread zombie_heavy_grudge_think();
|
|
lib_0547::func_86C8(100);
|
|
lib_0547::func_86C7(100);
|
|
var_00 = 0;
|
|
for(;;)
|
|
{
|
|
wait(var_00);
|
|
var_00 = 0.2;
|
|
if(!self.var_5542)
|
|
{
|
|
if(lib_053C::func_4F8C())
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.custom_think_mode))
|
|
{
|
|
self [[ self.custom_think_mode ]]();
|
|
continue;
|
|
}
|
|
|
|
if(common_scripts\utility::func_562E(self.var_57C0))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(self.var_5542)
|
|
{
|
|
lib_0547::zombie_charge_cleanup(self.var_645E);
|
|
}
|
|
|
|
if(lib_053C::func_4F84())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!lib_0547::func_4B2C() && lib_053C::func_4F9A())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
var_04 = lib_053C::func_4F88();
|
|
if(var_04.size)
|
|
{
|
|
var_02 = var_04[0];
|
|
var_03 = distance(self.var_116,var_02.var_116);
|
|
}
|
|
|
|
if(isdefined(self.var_915D))
|
|
{
|
|
if(lib_0547::func_577E(self.var_915D))
|
|
{
|
|
self.var_28D2 = undefined;
|
|
func_ABBE();
|
|
continue;
|
|
}
|
|
else if(isdefined(var_02) && var_03 < 300 && var_03 + 100 < distance(self.var_116,self.var_915D.var_116))
|
|
{
|
|
func_ABC7(var_02);
|
|
continue;
|
|
}
|
|
}
|
|
else if(isdefined(var_02))
|
|
{
|
|
func_ABC7(var_02);
|
|
continue;
|
|
}
|
|
|
|
if(lib_053C::func_4F9B(1))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(lib_053C::func_4F9A())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
lib_053C::func_647();
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_ABBF(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
if(!isdefined(param_05) || !isdefined(param_06) || !isdefined(param_07))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_07 != "torso_upper" && param_07 != "torso_lower")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_09 = self gettagangles("j_spineupper");
|
|
var_0A = anglestoright(var_09);
|
|
return vectordot(var_0A,param_06) > 0;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_ABC4(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
|
|
{
|
|
if(param_08 == "right_hand")
|
|
{
|
|
param_02 = 0;
|
|
}
|
|
|
|
if(func_ABBF(param_00,param_01,param_02,param_04,param_05,param_06,param_07,param_08,param_0A))
|
|
{
|
|
if(isdefined(param_04) && param_04 != "MOD_MELEE")
|
|
{
|
|
param_02 = param_02 * 4;
|
|
}
|
|
else
|
|
{
|
|
self.var_14EB = 1;
|
|
}
|
|
}
|
|
else if(param_08 == "head" && param_05 != "panzerschreck_zm" && !issubstr(param_05,"fliegerfaust") && !issubstr(param_05,"tesla") && param_05 != "raven_sword_zm" && !issubstr(param_05,"razergun") && !issubstr(param_05,"throwingknife"))
|
|
{
|
|
param_02 = param_02 * 0.8;
|
|
}
|
|
else if(param_05 != "panzerschreck_zm" && !issubstr(param_05,"fliegerfaust") && !issubstr(param_05,"tesla") && param_05 != "raven_sword_zm" && !issubstr(param_05,"razergun") && !issubstr(param_05,"throwingknife"))
|
|
{
|
|
param_02 = param_02 * 0.6;
|
|
}
|
|
|
|
if(param_05 == "bazooka_zm")
|
|
{
|
|
param_02 = self.var_FB;
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
//Function Number: 12
|
|
zombie_heavy_set_grudge(param_00)
|
|
{
|
|
zombie_heavy_interrupt_grudge();
|
|
self endon("death");
|
|
self endon("grudge_started");
|
|
self.grudgetarget = param_00;
|
|
common_scripts\utility::func_A70D(14,param_00,"death",param_00,"disconnect");
|
|
self.grudgetarget = undefined;
|
|
}
|
|
|
|
//Function Number: 13
|
|
zombie_heavy_interrupt_grudge()
|
|
{
|
|
self notify("grudge_end");
|
|
self.grudgetarget = undefined;
|
|
}
|
|
|
|
//Function Number: 14
|
|
zombie_heavy_grudge_think()
|
|
{
|
|
for(;;)
|
|
{
|
|
wait(0.5);
|
|
if(!isdefined(self.grudgetarget))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(lib_0547::is_in_scripted_state("heavy_charge"))
|
|
{
|
|
zombie_heavy_interrupt_grudge();
|
|
continue;
|
|
}
|
|
|
|
if(!zombie_heavy_charge_allowed())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(lib_0547::has_scripted_state_queued("heavy_charge"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(zombie_heavy_valid_charge_target(self.grudgetarget))
|
|
{
|
|
func_ABB7(self.grudgetarget);
|
|
level.var_5B1B = gettime();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
zombie_heavy_valid_charge_target(param_00)
|
|
{
|
|
if(isplayer(param_00) && issentient(param_00) && self agentcanseesentient(param_00) && lib_0547::func_1F5B(self.var_116,param_00.var_116) && common_scripts\utility::func_F79(lib_053C::func_4F88(),param_00))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 16
|
|
zombie_heavy_charge_allowed()
|
|
{
|
|
return !isdefined(level.var_5B1B) || gettime() - level.var_5B1B > 700;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_ABC5(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
|
|
{
|
|
if(self.var_78D7 < self.var_6099)
|
|
{
|
|
self.var_78D7 = self.var_78D7 + param_02;
|
|
}
|
|
|
|
if(self.var_78D7 >= self.var_6099 && zombie_heavy_charge_allowed() && zombie_heavy_valid_charge_target(param_01) && (!isdefined(self.var_3043) || !maps/mp/agents/humanoid/_humanoid_util::func_8BAE()) && !isdefined(self.var_1927) && (!lib_053C::func_5686() || !common_scripts\utility::func_F79(self.var_983C,param_01)) && !common_scripts\utility::func_562E(self.var_57C0))
|
|
{
|
|
func_ABB7(param_01);
|
|
self.var_78D7 = 0;
|
|
level.var_5B1B = gettime();
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_ABC3()
|
|
{
|
|
if(!isdefined(self.var_64C4))
|
|
{
|
|
self.var_64C4 = 1;
|
|
}
|
|
|
|
self.var_64C2 = self.var_64C4 * lib_054D::func_4440();
|
|
return "walk";
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_ABB7(param_00)
|
|
{
|
|
var_01 = spawnstruct();
|
|
var_01.var_721C = param_00;
|
|
var_01.var_7462 = param_00.var_116;
|
|
var_01.end_notify = "heavy_end_charge";
|
|
var_01.scripted_state = "heavy_charge";
|
|
var_01.stop_run_state_name = "fol_attack_charge";
|
|
var_01.react_state_name = "fol_pain_charge_react";
|
|
var_01.run_state_name = "fol_run_charge";
|
|
var_01.react_anim_rate = 1;
|
|
var_01.extra_lunge_radius = 100;
|
|
var_01.trigger_lerp_deg = 25;
|
|
var_01.trigger_nolerp_deg = 50;
|
|
var_01.var_9DAA = 202;
|
|
var_01.turn_smoothing_thread = ::lib_0547::zombie_charge_turn_smoothing_thread;
|
|
var_01.initial_turn_deg = 200;
|
|
var_01.initial_turn_secs = 0.1;
|
|
var_01.initial_turn_speed = 0.169;
|
|
var_01.var_2434 = 37;
|
|
var_01.var_60C1 = 55;
|
|
var_01.var_3A20 = 82;
|
|
var_01.var_1B70 = 160;
|
|
thread lib_0547::func_7D1A("heavy_charge",[var_01],0.5);
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_ABC0(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
if(func_ABBF(param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 21
|
|
zombie_heavy_tesla_delayed_dmg(param_00,param_01,param_02)
|
|
{
|
|
if(common_scripts\utility::func_562E(param_01))
|
|
{
|
|
param_00 = maps/mp/gametypes/zombies::func_1E59();
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
param_00 = param_02;
|
|
}
|
|
|
|
return param_00;
|
|
} |