mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
720 lines
14 KiB
Plaintext
720 lines
14 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3117.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 47
|
|
* Decompile Time: 18 ms
|
|
* Timestamp: 10/27/2023 12:26:09 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_98E7(param_00)
|
|
{
|
|
self.var_2B0F = 1;
|
|
self.var_1FC6 = 1;
|
|
self.var_4BDC = undefined;
|
|
self.var_4BDB = undefined;
|
|
self method_828A("noclip");
|
|
self method_8287(99999999);
|
|
self method_828B(1);
|
|
func_F722("hover");
|
|
thread lib_0C77::func_13F62();
|
|
return level.var_111AE;
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_8281(param_00)
|
|
{
|
|
if(func_7ED5() == "launched")
|
|
{
|
|
if(func_8285(self))
|
|
{
|
|
func_827B(self,self.var_D04C,func_7ED2());
|
|
}
|
|
|
|
return level.var_E87A;
|
|
}
|
|
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_827A(param_00)
|
|
{
|
|
if(func_7ED5() == "entangled")
|
|
{
|
|
if(isdefined(self.var_D04C) && !scripts\cp\_laststand::player_in_laststand(self.var_D04C) && self.var_D04C attackbuttonpressed())
|
|
{
|
|
var_01 = self.var_D04C;
|
|
var_02 = anglestoforward(self.var_D04C getplayerangles());
|
|
var_03 = var_01.origin + (0,0,5);
|
|
var_04 = var_03 + var_02 * func_79E8();
|
|
var_05 = bullettrace(var_03,var_04,0,var_01)["position"];
|
|
if(distancesquared(self.origin,var_05) < 360000)
|
|
{
|
|
var_06 = var_05;
|
|
}
|
|
else
|
|
{
|
|
var_07 = vectornormalize(var_06 - self.origin);
|
|
var_06 = self.origin + var_07 * 600;
|
|
}
|
|
|
|
self setorigin(var_06,0);
|
|
self.var_8272 = var_01.origin;
|
|
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_12DBA(var_01,self);
|
|
return level.var_111AE;
|
|
}
|
|
else
|
|
{
|
|
func_AAA9(self);
|
|
return level.var_E87A;
|
|
}
|
|
}
|
|
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_79E8()
|
|
{
|
|
return 175;
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_827F(param_00)
|
|
{
|
|
if(func_7ED5() == "hover")
|
|
{
|
|
func_41B5();
|
|
lib_0A1B::func_2968("fly");
|
|
if(!isdefined(self.var_8268))
|
|
{
|
|
self.var_8268 = scripts\common\utility::getclosest(self.origin,level.var_13F29);
|
|
self.var_8272 = self.var_8268.origin;
|
|
return level.var_111AE;
|
|
}
|
|
|
|
if(distancesquared(self.var_8268.origin,self.origin) < 4096)
|
|
{
|
|
self notify("ghost_reached_hover_node");
|
|
var_01 = scripts\common\utility::func_22A9(level.var_13F29,self.var_8268);
|
|
var_02 = func_7DB1();
|
|
if(var_02.size > 0)
|
|
{
|
|
var_03 = scripts\common\utility::random(var_02).origin;
|
|
}
|
|
else
|
|
{
|
|
var_03 = self.origin;
|
|
}
|
|
|
|
self.var_8268 = func_80BB(var_03,var_01);
|
|
self.var_8272 = self.var_8268.origin;
|
|
}
|
|
|
|
return level.var_111AE;
|
|
}
|
|
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_827E(param_00)
|
|
{
|
|
if(func_7ED5() == "hide")
|
|
{
|
|
func_41B7();
|
|
lib_0A1B::func_2968("fly");
|
|
if(!isdefined(self.var_8267))
|
|
{
|
|
self.var_8267 = scripts\common\utility::getclosest(self.origin,level.var_13F28);
|
|
self.var_8272 = self.var_8267.origin;
|
|
return level.var_111AE;
|
|
}
|
|
|
|
if(distancesquared(self.var_8267.origin,self.origin) < 1024)
|
|
{
|
|
self notify("ghost_reached_hide_node");
|
|
self.var_8267 = scripts\common\utility::getstruct(self.var_8267.target,"targetname");
|
|
self.var_8272 = self.var_8267.origin;
|
|
}
|
|
|
|
return level.var_111AE;
|
|
}
|
|
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_3DF0(param_00)
|
|
{
|
|
lib_0A1B::func_2914();
|
|
if(!func_7ED5() == "attack")
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(self.var_180)
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(!isdefined(self.var_13F2C))
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(!scripts\cp\_utility::func_9F19(self.var_13F2C))
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(isdefined(self.var_13F2C.ignoreme) && self.var_13F2C.ignoreme == 1)
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(self.var_1B03 == "melee" || scripts\mp\agents\_scriptedagents::func_9F77())
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(distancesquared(self.var_13F2C.origin,self.origin) > 9216)
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
lib_0A1B::func_2965(self.var_13F2C);
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_3D46(param_00)
|
|
{
|
|
if(!func_7ED5() == "attack")
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(self.var_180)
|
|
{
|
|
self.var_4B26 = undefined;
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(!isdefined(self.var_13F2C))
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(distancesquared(self.var_13F2C.origin,self.origin) > 147456)
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
self.var_8272 = self.var_13F2C.origin;
|
|
func_12871();
|
|
return level.var_111AE;
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_F108(param_00)
|
|
{
|
|
if(!func_7ED5() == "attack")
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(isdefined(self.var_5969))
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
if(!isdefined(self.var_13F2C))
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
self.var_8272 = self.var_13F2C.origin;
|
|
func_12871(1024);
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_8278(param_00)
|
|
{
|
|
var_01 = self;
|
|
var_01 endon("death");
|
|
var_01 endon("ghost_stop_attack");
|
|
level endon("game_ended");
|
|
var_01 func_8279(param_00);
|
|
var_02 = func_7AE1();
|
|
var_03 = func_7AC9();
|
|
var_04 = randomintrange(func_7AE1(),func_7AC9() + 1);
|
|
for(var_05 = 0;var_05 < var_04;var_05++)
|
|
{
|
|
var_01 waittill("ghost_played_melee_anim");
|
|
}
|
|
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00.var_C1F5--;
|
|
}
|
|
|
|
var_01 lib_0A1B::func_2914();
|
|
var_01 func_41B7();
|
|
var_01 func_F722("hover");
|
|
var_01 waittill("ghost_reached_hover_node");
|
|
var_01 func_12EA1(1);
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_7AE1()
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_7AC9()
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_8279(param_00)
|
|
{
|
|
func_F723(param_00);
|
|
func_F722("attack");
|
|
func_12EA1(2.5);
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_F723(param_00)
|
|
{
|
|
self.var_13F2C = param_00;
|
|
self.var_8272 = param_00.origin;
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_7DB1()
|
|
{
|
|
var_00 = [];
|
|
foreach(var_02 in level.players)
|
|
{
|
|
if(var_02.ignoreme || isdefined(var_02.var_222) && var_02.var_222.ignoreme)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(lib_0F74::func_1002C(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isalive(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00[var_00.size] = var_02;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_12871(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 1;
|
|
}
|
|
|
|
if(isdefined(self.var_8272) && distancesquared(self.var_8272,self.origin) > param_00)
|
|
{
|
|
lib_0A1B::func_2968("fly");
|
|
return;
|
|
}
|
|
|
|
lib_0A1B::func_2968("");
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_65FE(param_00,param_01)
|
|
{
|
|
param_00 notify("ghost_stop_attack");
|
|
param_01.ghost_in_entanglement = param_00;
|
|
param_00.var_D04C = param_01;
|
|
param_00 func_F75F(param_00,1);
|
|
param_00 func_F722("entangled");
|
|
param_00 func_41B5();
|
|
param_00 func_41B7();
|
|
param_00 func_12EA1(1);
|
|
param_00 lib_0A1B::func_2968("entangled");
|
|
param_00 lib_0A1B::func_2914();
|
|
param_00 func_F79D("off",param_00);
|
|
if(isdefined(level.fbd) && isdefined(level.fbd.fightstarted) && level.fbd.fightstarted)
|
|
{
|
|
param_00 setscriptablepartstate("soul","captured");
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_673C(param_00)
|
|
{
|
|
param_00 func_12EA1(1);
|
|
param_00 func_F75F(param_00,0);
|
|
param_00 func_F722("hover");
|
|
param_00 lib_0A1B::func_2968("fly");
|
|
param_00 func_F65F("off",param_00);
|
|
param_00 func_F79D("active",param_00);
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_AAA9(param_00)
|
|
{
|
|
level thread func_AAAD(param_00.origin,param_00.angles,param_00.color,param_00.var_D04C);
|
|
param_00.nocorpse = 1;
|
|
param_00 suicide();
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_AAAD(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon("game_ended");
|
|
param_03 endon("disconnect");
|
|
param_03.ghost_in_entanglement = undefined;
|
|
var_04 = spawn("script_model",param_00);
|
|
var_04.angles = vectortoangles(param_01);
|
|
var_04.color = get_fake_ghost_color(param_02);
|
|
var_04 setmodel(get_fake_ghost_model(var_04.color));
|
|
var_04 setscriptablepartstate("animation","on");
|
|
if(isdefined(param_03))
|
|
{
|
|
var_05 = anglestoforward(param_03 getplayerangles());
|
|
}
|
|
else
|
|
{
|
|
var_05 = (0,0,1);
|
|
}
|
|
|
|
var_05 = var_05 * 9000;
|
|
var_04 physicslaunchserver(var_04.origin,var_05);
|
|
var_04 method_84D1();
|
|
if(isdefined(level.fbd) && isdefined(level.fbd.fightstarted) && level.fbd.fightstarted)
|
|
{
|
|
thread [[ level.fbd.soulprojectilemonitorfunc ]](var_04,param_03);
|
|
thread [[ level.fbd.soulprojectiledeathfunc ]](var_04);
|
|
}
|
|
|
|
var_04 thread func_CAFB(var_04,param_03);
|
|
}
|
|
|
|
//Function Number: 21
|
|
get_fake_ghost_color(param_00)
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 22
|
|
get_fake_ghost_model(param_00)
|
|
{
|
|
if(isdefined(level.get_fake_ghost_model_func))
|
|
{
|
|
return [[ level.get_fake_ghost_model_func ]](param_00);
|
|
}
|
|
|
|
return "fake_zombie_ghost_" + param_00;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_CAFB(param_00,param_01)
|
|
{
|
|
param_00 endon("death");
|
|
param_00 waittill("collision",var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09);
|
|
if(isdefined(level.fbd) && isdefined(level.fbd.fightstarted) && level.fbd.fightstarted)
|
|
{
|
|
var_0A = param_00 gettagorigin("j_spine4");
|
|
playfx(level._effect["flying_soul_hit_fail"],var_0A,anglestoforward(param_00.angles),anglestoup(param_00.angles));
|
|
}
|
|
|
|
func_6AEC(param_00,param_01,func_7ED4());
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_6AEC(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(level.fbd) && isdefined(level.fbd.fightstarted) && level.fbd.fightstarted)
|
|
{
|
|
param_00 delete();
|
|
return;
|
|
}
|
|
|
|
func_827D(param_00,param_01,param_02);
|
|
playfx(level._effect["ghost_explosion_death_" + get_exp_vfx_color(param_00.color)],param_00.origin,anglestoforward(param_00.angles),anglestoup(param_00.angles));
|
|
param_00 setscriptablepartstate("animation","off");
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 25
|
|
get_exp_vfx_color(param_00)
|
|
{
|
|
if(issubstr(param_00,"bomb"))
|
|
{
|
|
return strtok(param_00,"_")[0];
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_8285(param_00)
|
|
{
|
|
if(isdefined(param_00.var_D04C) && param_00.var_D04C secondaryoffhandbuttonpressed())
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(gettime() - param_00.var_10BBB > 5000)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_827B(param_00,param_01,param_02)
|
|
{
|
|
func_D48C(param_00);
|
|
func_827D(param_00,param_01,param_02);
|
|
param_00.nocorpse = 1;
|
|
param_00 suicide();
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_827D(param_00,param_01,param_02)
|
|
{
|
|
var_03 = getclosestactivemovingtargetwithinrange(param_00,param_02);
|
|
if(isplayer(param_01))
|
|
{
|
|
if(isdefined(var_03))
|
|
{
|
|
param_01 thread scripts\cp\_damage::func_12E84("hitcritical");
|
|
if([[ level.should_moving_target_explode ]](param_00,var_03))
|
|
{
|
|
if(isdefined(level.process_player_gns_combo_func))
|
|
{
|
|
[[ level.process_player_gns_combo_func ]](param_01,var_03);
|
|
}
|
|
|
|
process_moving_target_hit(var_03,param_01,param_00);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level.hit_wrong_moving_target_func))
|
|
{
|
|
[[ level.hit_wrong_moving_target_func ]](param_01,var_03,param_00);
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level.process_player_gns_combo_func))
|
|
{
|
|
[[ level.process_player_gns_combo_func ]](param_01,var_03);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
process_moving_target_hit(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(level.process_moving_target_hit_func))
|
|
{
|
|
[[ level.process_moving_target_hit_func ]](param_00,param_01,param_02);
|
|
return;
|
|
}
|
|
|
|
remove_moving_target_default(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 30
|
|
remove_moving_target_default(param_00,param_01)
|
|
{
|
|
func_E05A(param_00,param_01);
|
|
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_93F2(param_01);
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_E05A(param_00,param_01)
|
|
{
|
|
param_00 setscriptablepartstate("skull_vfx","off");
|
|
param_00 delete();
|
|
param_01 thread scripts\cp\_vo::try_to_play_vo("killfirm_ghost","zmb_comment_vo","highest",10,0,0,1,10);
|
|
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_DB04();
|
|
}
|
|
|
|
//Function Number: 32
|
|
getclosestactivemovingtargetwithinrange(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_BD43))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_02 = [];
|
|
foreach(var_04 in level.var_BD43)
|
|
{
|
|
foreach(var_06 in var_04)
|
|
{
|
|
if(!isdefined(var_06))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distancesquared(param_00.origin,var_06.origin) < param_01)
|
|
{
|
|
var_02[var_02.size] = var_06;
|
|
}
|
|
}
|
|
}
|
|
|
|
var_09 = sortbydistance(var_02,param_00.origin);
|
|
return var_09[0];
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_7D97(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
foreach(var_04 in level.var_13F2D)
|
|
{
|
|
if(var_04 == param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_9DDD(var_04))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distancesquared(param_00.origin,var_04.origin) < param_01)
|
|
{
|
|
var_02[var_02.size] = var_04;
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_7ED2()
|
|
{
|
|
return -25536;
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_7ED4()
|
|
{
|
|
return 7225;
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_F75F(param_00,param_01)
|
|
{
|
|
param_00.var_9BD4 = param_01;
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_9DDD(param_00)
|
|
{
|
|
return scripts\common\utility::istrue(param_00.var_9BD4);
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_C0B6(param_00)
|
|
{
|
|
return level.var_6AD5;
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_F722(param_00)
|
|
{
|
|
self.var_826C = param_00;
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_7ED5()
|
|
{
|
|
return self.var_826C;
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_41B5()
|
|
{
|
|
self.var_8267 = undefined;
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_41B7()
|
|
{
|
|
self.var_8268 = undefined;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_12EA1(param_00)
|
|
{
|
|
if(!isdefined(self.var_4BDC))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.var_4BDB))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_1FC6 = param_00;
|
|
self method_82AF(self.var_4BDC,self.var_4BDB,self.var_1FC6);
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_F65F(param_00,param_01)
|
|
{
|
|
param_01 setscriptablepartstate("being_entangled",param_00);
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_F79D(param_00,param_01)
|
|
{
|
|
param_01 setscriptablepartstate("mist_trail",param_00);
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_80BB(param_00,param_01)
|
|
{
|
|
var_02 = 4;
|
|
var_03 = sortbydistance(param_01,param_00);
|
|
var_04 = scripts\common\utility::func_116D7(var_03.size > var_02,var_02,var_03.size);
|
|
var_05 = randomint(var_04);
|
|
return var_03[var_05];
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_D48C(param_00)
|
|
{
|
|
var_01 = vectornormalize(param_00.var_381);
|
|
if(var_01 == (0,0,0))
|
|
{
|
|
var_01 = (0,0,1);
|
|
}
|
|
|
|
var_02 = vectortoangles(var_01);
|
|
playfx(level._effect["ghost_explosion_death"],param_00.origin,var_01,anglestoup(var_02));
|
|
} |