mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
620 lines
12 KiB
Plaintext
620 lines
12 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3187.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 25
|
|
* Decompile Time: 9 ms
|
|
* Timestamp: 10/27/2023 12:26:29 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_138E4(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(lib_0A1B::func_2953())
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_138E0()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_138E1()
|
|
{
|
|
if(!lib_0A1B::func_2955())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(self.var_B629))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_B629 == "run" || self.var_B629 == "sprint")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_10041()
|
|
{
|
|
if(isdefined(self.agent_type) && self.agent_type == "zombie_brute")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self.var_10C) && self.var_10C.health < 91)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(level.wave_num) && level.wave_num < 10)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = lib_0C72::func_9EA5();
|
|
var_01 = lib_0C72::func_9EA4();
|
|
var_02 = !var_01 || var_00;
|
|
var_03 = randomint(100) < 2;
|
|
return var_02 && var_03;
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_3EB9(param_00,param_01,param_02)
|
|
{
|
|
var_03 = lib_0C72::func_9EA5();
|
|
var_04 = lib_0C72::func_9EA4();
|
|
var_05 = var_03 && var_04;
|
|
var_06 = !var_04 || var_03;
|
|
var_07 = self method_8100(param_01);
|
|
if(var_06)
|
|
{
|
|
return randomint(var_07);
|
|
}
|
|
|
|
if(var_05)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_08 = int(var_07 / 2);
|
|
if(var_03)
|
|
{
|
|
return randomint(var_08);
|
|
}
|
|
|
|
return var_08 + randomint(var_08);
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_D4C8(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("death");
|
|
self endon("terminate_ai_threads");
|
|
var_04 = func_81F1(self.var_4B26,1);
|
|
func_57E5(param_00,param_01,self.var_4B26,var_04,1,1,self.var_C081,1);
|
|
lib_0A1A::func_2330(param_01,"end");
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_D4DC(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("death");
|
|
self endon("terminate_ai_threads");
|
|
var_04 = lib_0A1B::func_2925();
|
|
self.var_B629 = undefined;
|
|
var_05 = func_81F1(var_04,1);
|
|
self.var_CA1C = 1;
|
|
self.var_1B03 = "melee";
|
|
func_57E5(param_00,param_01,var_04,var_05,0,1,self.var_C081);
|
|
self.var_1B03 = "move";
|
|
lib_0A1A::func_2330(param_01,"end");
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_D539(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("death");
|
|
self endon("terminate_ai_threads");
|
|
var_04 = lib_0A1B::func_2925();
|
|
var_05 = func_81F1(var_04,1);
|
|
self.var_1B03 = "melee";
|
|
func_57E5(param_00,param_01,var_04,var_05,0,1,self.var_C081);
|
|
self.var_1B03 = "idle";
|
|
lib_0A1A::func_2330(param_01,"end");
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_CC64(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("death");
|
|
self endon("terminate_ai_threads");
|
|
var_04 = lib_0A1B::func_2925();
|
|
var_05 = func_81F1(var_04,1);
|
|
self.var_1B03 = "melee";
|
|
func_57E5(param_00,param_01,var_04,var_05,0,1,self.var_C081,0,1);
|
|
self.var_1B03 = "idle";
|
|
lib_0A1A::func_2330(param_01,"end");
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_2989(param_00,param_01,param_02,param_03)
|
|
{
|
|
return isdefined(self.var_1198.var_3134) && self.var_1198.var_3134;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_138E5()
|
|
{
|
|
if(func_2989())
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_138E6()
|
|
{
|
|
return scripts\common\utility::istrue(self.var_FF78);
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_D543(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("death");
|
|
self endon("terminate_ai_threads");
|
|
self endon(param_01 + "_finished");
|
|
if(isdefined(self.agent_type) && self.agent_type == "skater")
|
|
{
|
|
playsoundatpos(self gettagorigin("tag_eye"),"zmb_skater_pre_explo");
|
|
}
|
|
else
|
|
{
|
|
playsoundatpos(self gettagorigin("tag_eye"),"zmb_clown_pre_explo");
|
|
}
|
|
|
|
var_04 = lib_0A1D::func_2337(param_00,param_01);
|
|
scripts\mp\agents\_scriptedagents::func_CED2(param_01,var_04,2,param_01,"explode");
|
|
if(isdefined(self.agent_type) && self.agent_type != "skater")
|
|
{
|
|
playsoundatpos(self gettagorigin("tag_eye"),"zmb_vo_clown_death");
|
|
}
|
|
|
|
wait(0.25);
|
|
self method_83AD();
|
|
self.nocorpse = 1;
|
|
self suicide();
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_D553(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("death");
|
|
self endon("terminate_ai_threads");
|
|
self endon(param_01 + "_finished");
|
|
self.var_FF78 = undefined;
|
|
var_04 = lib_0A1D::func_2337(param_00,param_01);
|
|
scripts\mp\agents\_scriptedagents::func_CED5(param_01,var_04,param_01);
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_6A6A(param_00,param_01)
|
|
{
|
|
self endon(param_00 + "_finished");
|
|
self notify("stop_melee_face_enemy");
|
|
self endon("stop_melee_face_enemy");
|
|
for(;;)
|
|
{
|
|
if(isdefined(param_01) && isalive(param_01))
|
|
{
|
|
self method_8289("face angle abs",(0,vectortoyaw(param_01.origin - self.origin),0));
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_1106E()
|
|
{
|
|
self notify("stop_melee_face_enemy");
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_57E5(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
self endon(param_01 + "_finished");
|
|
self endon("death");
|
|
self endon("terminate_ai_threads");
|
|
self.var_A9B6 = undefined;
|
|
self.var_A9B7 = undefined;
|
|
if(!isdefined(param_07))
|
|
{
|
|
param_07 = 0;
|
|
}
|
|
|
|
var_09 = lib_0A1D::func_2337(param_00,param_01);
|
|
var_0A = self method_80FD(param_01,var_09);
|
|
var_0B = getanimlength(var_0A);
|
|
var_0C = getnotetracktimes(var_0A,"hit");
|
|
var_0D = var_0B / param_06 * 0.33;
|
|
if(var_0C.size > 0)
|
|
{
|
|
var_0D = var_0B / param_06 * var_0C[0];
|
|
}
|
|
|
|
var_0E = getnotetracktimes(var_0A,"finish");
|
|
var_0F = 0.9;
|
|
if(var_0E.size > 0)
|
|
{
|
|
var_0F = var_0E[0];
|
|
}
|
|
else
|
|
{
|
|
var_0F = 0.9;
|
|
}
|
|
|
|
var_10 = var_0B / param_06 * var_0F;
|
|
self method_828A("gravity");
|
|
if(param_05 && isdefined(self.var_10C))
|
|
{
|
|
thread func_6A6A(param_01,self.var_10C);
|
|
}
|
|
else if(isdefined(param_02))
|
|
{
|
|
self method_8289("face angle abs",(0,vectortoyaw(param_02.origin - self.origin),0));
|
|
}
|
|
else
|
|
{
|
|
self method_8289("face angle abs",self.angles);
|
|
}
|
|
|
|
self method_8281("anim deltas");
|
|
scripts\mp\agents\_scriptedagents::func_F2B1(param_01,var_09,param_06);
|
|
if(param_07)
|
|
{
|
|
var_11 = getnotetracktimes(var_0A,"lunge_start");
|
|
var_12 = 0;
|
|
if(var_11.size > 0)
|
|
{
|
|
var_12 = var_0B / param_06 * var_11[0];
|
|
}
|
|
|
|
var_0D = var_0D - var_12;
|
|
if(var_12 > 0)
|
|
{
|
|
wait(var_12);
|
|
}
|
|
|
|
if(self.var_B0FC)
|
|
{
|
|
var_13 = param_03 - self.origin;
|
|
var_14 = getmovedelta(var_0A,var_11[0],var_0C[0]);
|
|
var_15 = scripts\mp\agents\_scriptedagents::func_7DC9(var_13,var_14);
|
|
param_06 = param_06 * clamp(1 / var_15.var_13E2B,0.5,1);
|
|
var_0D = var_0B / param_06 * var_0C[0] - var_0B / param_06 * var_11[0];
|
|
scripts\mp\agents\_scriptedagents::func_F2B1(param_01 + "_norestart",var_09,param_06);
|
|
}
|
|
}
|
|
|
|
if(param_04)
|
|
{
|
|
self method_8282(0,1);
|
|
self method_827B(self.origin,param_03,var_0D);
|
|
childthread func_12EC0(param_02,var_0D,1,self.var_B101);
|
|
scripts\mp\agents\_scriptedagents::func_F85E(1,"DoAttack");
|
|
}
|
|
else
|
|
{
|
|
self method_8282(1,1);
|
|
}
|
|
|
|
wait(var_0D);
|
|
lib_0A1B::func_2914();
|
|
self notify("cancel_updatelerppos");
|
|
if(param_05 && isdefined(self.var_10C))
|
|
{
|
|
thread func_6A6A(param_01,self.var_10C);
|
|
}
|
|
else
|
|
{
|
|
func_1106E();
|
|
if(isdefined(param_02))
|
|
{
|
|
self method_8289("face angle abs",(0,vectortoyaw(param_02.origin - self.origin),0));
|
|
}
|
|
else
|
|
{
|
|
self method_8289("face angle abs",self.angles);
|
|
}
|
|
}
|
|
|
|
self method_8281("anim deltas");
|
|
self method_8282(1,1);
|
|
if(param_04)
|
|
{
|
|
scripts\mp\agents\_scriptedagents::func_F85E(0,"DoAttack");
|
|
}
|
|
|
|
if(func_252F(param_02))
|
|
{
|
|
self notify("attack_hit",param_02,param_03);
|
|
var_16 = 0;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_16 = func_7AD3();
|
|
}
|
|
|
|
if(isdefined(self.var_B601))
|
|
{
|
|
var_16 = self.var_B601;
|
|
}
|
|
|
|
if(isdefined(param_08))
|
|
{
|
|
thread func_F08D(param_02,param_03,0.5);
|
|
}
|
|
|
|
if(isalive(param_02))
|
|
{
|
|
func_5904(param_02,var_16,"MOD_IMPACT");
|
|
}
|
|
|
|
level notify("attack_hit",self,param_02);
|
|
}
|
|
else
|
|
{
|
|
self notify("attack_miss",param_02,param_03);
|
|
}
|
|
|
|
self.var_A9B9 = self.origin;
|
|
var_17 = var_10 - var_0D;
|
|
if(var_17 > 0)
|
|
{
|
|
scripts\mp\agents\_scriptedagents::func_1384D(param_01,"end",var_17);
|
|
}
|
|
|
|
self.var_A9B8 = gettime();
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_F08D(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
wait(param_02);
|
|
if(func_252F(param_00))
|
|
{
|
|
self notify("attack_hit",param_00,param_01);
|
|
var_03 = 0;
|
|
if(isdefined(param_00))
|
|
{
|
|
var_03 = func_7AD3();
|
|
}
|
|
|
|
if(isdefined(self.var_B601))
|
|
{
|
|
var_03 = self.var_B601;
|
|
}
|
|
|
|
if(isalive(param_00))
|
|
{
|
|
func_5904(param_00,var_03,"MOD_IMPACT");
|
|
}
|
|
|
|
level notify("attack_hit",self,param_00);
|
|
return;
|
|
}
|
|
|
|
self notify("attack_miss",param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_7AD3()
|
|
{
|
|
if(self.agent_type == "zombie_brute")
|
|
{
|
|
return 90;
|
|
}
|
|
|
|
return 45;
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_5904(param_00,param_01,param_02)
|
|
{
|
|
if(scripts\common\utility::func_9F11(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isplayer(param_00))
|
|
{
|
|
if(param_00 scripts\common\utility::func_9F10(self))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
param_00 dodamage(param_01,self.origin,self,self,param_02);
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_12EC0(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("killanimscript");
|
|
self endon("death");
|
|
self endon("cancel_updatelerppos");
|
|
param_00 endon("disconnect");
|
|
param_00 endon("death");
|
|
var_04 = self.origin;
|
|
var_05 = param_01;
|
|
var_06 = 0.05;
|
|
for(;;)
|
|
{
|
|
wait(var_06);
|
|
var_05 = var_05 - var_06;
|
|
if(var_05 <= 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_07 = func_81F1(param_00,param_02);
|
|
if(!isdefined(var_07))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
var_08 = param_03;
|
|
}
|
|
else
|
|
{
|
|
var_08 = lib_0F74::func_7FAE() - self.var_257;
|
|
}
|
|
|
|
var_09 = var_07 - var_04;
|
|
if(lengthsquared(var_09) > var_08 * var_08)
|
|
{
|
|
var_07 = var_04 + vectornormalize(var_09) * var_08;
|
|
}
|
|
|
|
self method_8289("face enemy");
|
|
self method_827B(self.origin,var_07,var_05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_81F1(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!param_01)
|
|
{
|
|
var_02 = scripts\mp\agents\_scriptedagents::func_5D51(param_00.origin);
|
|
return var_02;
|
|
}
|
|
|
|
var_03 = param_01.origin - self.origin;
|
|
var_04 = length(var_03);
|
|
if(var_04 < self.var_252B)
|
|
{
|
|
return self.origin;
|
|
}
|
|
|
|
var_03 = var_03 / var_04;
|
|
var_05 = lib_0F74::func_7FAA(param_01);
|
|
if(lib_0F74::func_38C2(self.origin,var_05.origin))
|
|
{
|
|
return var_05.origin;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_252F(param_00)
|
|
{
|
|
if(!isalive(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!func_13D99())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isplayer(param_00) || isai(param_00))
|
|
{
|
|
if(scripts\common\utility::istrue(self.var_29D2) && !scripts\common\utility::istrue(self.var_565C))
|
|
{
|
|
var_01 = [];
|
|
var_01[0] = self;
|
|
var_02 = self geteye() - (0,0,16);
|
|
var_03 = param_00 geteye() - (0,0,16);
|
|
var_04 = scripts\common\trace::func_109DD(var_02,var_03,4,var_01);
|
|
if(var_04["fraction"] < 1)
|
|
{
|
|
var_05 = var_04["entity"];
|
|
if(isdefined(var_05) && isai(var_05))
|
|
{
|
|
if(isdefined(var_05.team) && var_05.team == self.team)
|
|
{
|
|
if(distance(self.origin,var_05.origin) > 12)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(func_9DD7(param_00,self.var_B607))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(lib_0F74::func_9DE0(param_00))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_9DD7(param_00,param_01)
|
|
{
|
|
var_02 = vectornormalize(param_00.origin - self.origin * (1,1,0));
|
|
var_03 = anglestoforward(self.angles);
|
|
var_04 = vectordot(var_02,var_03);
|
|
return var_04 > param_01;
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_13D99()
|
|
{
|
|
var_00 = self.entered_playspace;
|
|
if(isdefined(self.var_10C) && !ispointonnavmesh(self.var_10C.origin) && !lib_0A1B::func_2955())
|
|
{
|
|
if(lib_0F74::func_DD7C("offmesh",var_00))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if(!lib_0F74::func_DD7C("normal",var_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(lib_0F74::func_7FAE() > self.var_B62E && !lib_0F74::func_13D9B())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
} |