mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
1309 lines
29 KiB
Plaintext
1309 lines
29 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3617.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 45
|
|
* Decompile Time: 27 ms
|
|
* Timestamp: 10/27/2023 12:30:56 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_9527()
|
|
{
|
|
precacheitem("antigrav");
|
|
precachemodel("anti_grav_border_wm");
|
|
level._effect["antigrav_detonate_dud"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate_dud.vfx");
|
|
level._effect["antigrav_caltrop_trail"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_trail.vfx");
|
|
level._effect["antigrav_detonate"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate.vfx");
|
|
level._effect["antigrav_detonate_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate_cheap.vfx");
|
|
level._effect["antigrav_caltrop_barrier"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_caltrop_barrier.vfx");
|
|
level._effect["antigrav_caltrop_barrier_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_caltrop_barrier_cheap.vfx");
|
|
level._effect["antigrav_area_small"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_area_small.vfx");
|
|
level._effect["antigrav_area_small_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_area_small_cheap.vfx");
|
|
level._effect["antigrav_detonate_up"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate_upgrade.vfx");
|
|
level._effect["antigrav_detonate_up_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate_upgrade_cheap.vfx");
|
|
level._effect["antigrav_caltrop_barrier_up"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_caltrop_barrier_upgrade.vfx");
|
|
level._effect["antigrav_caltrop_barrier_up_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_caltrop_barrier_upgrade_cheap.vfx");
|
|
level._effect["antigrav_area_small_up"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_area_small_upgrade.vfx");
|
|
level._effect["antigrav_area_small_up_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_area_small_upgrade_cheap.vfx");
|
|
scripts\common\utility::flag_init("antigrav_force_delete");
|
|
level.player.var_D363 = [];
|
|
level.player thread func_D0EB();
|
|
level thread func_365A();
|
|
level.var_2006 = spawnstruct();
|
|
level.var_2006.var_A8C6 = undefined;
|
|
level.var_2006.var_522B = [];
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_2013(param_00)
|
|
{
|
|
var_01 = self;
|
|
var_02 = scripts\common\utility::spawn_tag_origin();
|
|
var_02.origin = param_00.origin;
|
|
var_02.var_15F = param_00;
|
|
var_02 linkto(var_02.var_15F);
|
|
level.var_2006.var_522B[level.var_2006.var_522B.size] = var_02;
|
|
var_03 = var_02.var_15F func_201A();
|
|
if(!isdefined(var_02.var_15F))
|
|
{
|
|
var_02 thread func_DFC5();
|
|
return;
|
|
}
|
|
|
|
var_02 func_E057();
|
|
var_02.var_85D2 = var_01 func_1294();
|
|
var_02.var_5F36 = var_01 func_1293();
|
|
var_02.var_112DF = var_03;
|
|
if(isdefined(var_01) && isdefined(var_01.var_202A) && var_01.var_202A == 1)
|
|
{
|
|
var_02.var_5F37 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_02.var_5F37 = 0;
|
|
}
|
|
|
|
if(isdefined(var_01) && isdefined(level.player) && var_01 == level.player)
|
|
{
|
|
var_02.var_D43A = 1;
|
|
}
|
|
else
|
|
{
|
|
var_02.var_D43A = 0;
|
|
}
|
|
|
|
var_02 thread func_200F();
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_201A()
|
|
{
|
|
self endon("entitydeleted");
|
|
self endon("death");
|
|
self waittill("missile_stuck",var_00,var_01,var_02);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_FF4F(param_00,param_01)
|
|
{
|
|
if(param_00 scripts\sp\_utility::isactorwallrunning())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_3CB0(param_00,param_01))
|
|
{
|
|
if(isdefined(param_00.var_1C78))
|
|
{
|
|
return param_00.var_1C78;
|
|
}
|
|
|
|
if(param_00 method_81A6())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_200B()
|
|
{
|
|
var_00 = scripts\common\utility::spawn_tag_origin();
|
|
var_00.origin = self.origin;
|
|
level.var_2006.var_522B[level.var_2006.var_522B.size] = var_00;
|
|
var_00.var_85D2 = 156;
|
|
var_00.var_5F36 = 7;
|
|
var_00 thread func_200F();
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_2017()
|
|
{
|
|
self playsurfacesound("gravity_explode_default",self.var_112DF);
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_200F()
|
|
{
|
|
if(!isdefined(self.var_5F37))
|
|
{
|
|
self.var_5F37 = 0;
|
|
}
|
|
|
|
if(!isdefined(self.var_112DF))
|
|
{
|
|
self.var_112DF = "default";
|
|
}
|
|
|
|
self.angles = (0,0,0);
|
|
self.var_132AA = [];
|
|
thread func_2017();
|
|
if(!self.var_5F37)
|
|
{
|
|
if(level.var_2006.var_522B.size > 1)
|
|
{
|
|
var_00 = "antigrav_detonate_cheap";
|
|
}
|
|
else
|
|
{
|
|
var_00 = "antigrav_detonate";
|
|
}
|
|
}
|
|
else if(level.var_2006.var_522B.size > 1)
|
|
{
|
|
var_00 = "antigrav_detonate_up_cheap";
|
|
}
|
|
else
|
|
{
|
|
var_00 = "antigrav_detonate_up";
|
|
}
|
|
|
|
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
|
|
{
|
|
var_01 = spawnfx(level._effect[var_00],self.origin,(1,0,0),(0,0,1));
|
|
triggerfx(var_01);
|
|
self.var_132AA[self.var_132AA.size] = var_01;
|
|
}
|
|
else
|
|
{
|
|
playfx(level._effect[var_00],self.origin,(1,0,0),(0,0,1));
|
|
}
|
|
|
|
func_36E1();
|
|
func_1066C();
|
|
lib_0F18::func_10E8A("broadcast","attack",self.origin,1000);
|
|
level scripts\common\utility::func_6E59("antigrav_force_delete",0.55);
|
|
var_02 = [];
|
|
foreach(var_04 in function_0072())
|
|
{
|
|
if(func_FF4F(var_04,self))
|
|
{
|
|
var_02[var_02.size] = var_04;
|
|
}
|
|
}
|
|
|
|
thread scripts\common\utility::func_CD7F("gravity_field_lp");
|
|
self.var_CB13 = func_4933();
|
|
var_06 = 0;
|
|
var_07 = 0;
|
|
foreach(var_09 in self.var_378E)
|
|
{
|
|
if(var_09.var_5F15 == 1)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(self.origin[2] - var_09.origin[2] > var_06)
|
|
{
|
|
var_06 = self.origin[2] - var_09.origin[2];
|
|
}
|
|
|
|
if(var_09.origin[2] - self.origin[2] > var_07)
|
|
{
|
|
var_07 = var_09.origin[2] - self.origin[2];
|
|
}
|
|
}
|
|
|
|
var_0B = self.origin[2] - var_06 - 24;
|
|
var_0C = self.origin[2] + var_07 + 72;
|
|
var_0D = var_0C + var_0B * 0.5;
|
|
if(var_0D < self.origin[2])
|
|
{
|
|
var_0E = self.origin;
|
|
var_0F = self.origin[2] - var_0B;
|
|
}
|
|
else
|
|
{
|
|
var_0E = (self.origin[0],self.origin[1],var_0F);
|
|
var_0F = var_0D - var_0C * 0.5;
|
|
}
|
|
|
|
func_4926(var_0E,var_0F);
|
|
scripts\common\utility::array_thread(var_02,::func_197D,self);
|
|
func_CF45();
|
|
thread func_FB3E();
|
|
level scripts\common\utility::func_6E59("antigrav_force_delete",self.var_5F36);
|
|
thread func_DFC5();
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_4926(param_00,param_01)
|
|
{
|
|
var_02 = ["axis","allies","team3","neutral","bad_guys"];
|
|
if(!isdefined(level.var_2006.var_5602) || level.var_2006.var_5602.size == 0)
|
|
{
|
|
self.var_C2CA = function_0315(param_00,(self.var_85D2,self.var_85D2,param_01),(0,0,0));
|
|
function_0277("antigrav" + self getentitynumber(),-1,param_00,self.var_85D2,1);
|
|
return;
|
|
}
|
|
|
|
if(level.var_2006.var_5602.size > 0)
|
|
{
|
|
if(level.var_2006.var_5602[0] == "all")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\common\utility::func_2286(level.var_2006.var_5602,"allies") && scripts\common\utility::func_2286(level.var_2006.var_5602,"axis"))
|
|
{
|
|
self.var_C2CA = function_0315(param_00,(self.var_85D2,self.var_85D2,param_01),(0,0,0),"team3","neutral","bad_guys");
|
|
function_0277("antigrav" + self getentitynumber(),-1,param_00,self.var_85D2,0,"team3","neutral","bad_guys");
|
|
return;
|
|
}
|
|
|
|
if(scripts\common\utility::func_2286(level.var_2006.var_5602,"allies"))
|
|
{
|
|
self.var_C2CA = function_0315(param_00,(self.var_85D2,self.var_85D2,param_01),(0,0,0),"axis","team3","neutral","bad_guys");
|
|
function_0277("antigrav" + self getentitynumber(),-1,param_00,self.var_85D2,0,"team3","neutral","bad_guys");
|
|
return;
|
|
}
|
|
|
|
if(scripts\common\utility::func_2286(level.var_2006.var_5602,"axis"))
|
|
{
|
|
self.var_C2CA = function_0315(param_00,(self.var_85D2,self.var_85D2,param_01),(0,0,0),"allies","team3","neutral","bad_guys");
|
|
function_0277("antigrav" + self getentitynumber(),-1,param_00,self.var_85D2,0,"team3","neutral","bad_guys");
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_FB3E()
|
|
{
|
|
level scripts\common\utility::func_6E59("antigrav_force_delete",self.var_5F36 - 0.4);
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.var_15F))
|
|
{
|
|
thread scripts\sp\_utility::func_CE2F("gravity_field_off");
|
|
}
|
|
|
|
thread scripts\common\utility::func_11018("gravity_field_lp");
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_DFC5()
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level notify("antigrav_done");
|
|
thread func_E057();
|
|
if(scripts\common\utility::flag("antigrav_force_delete"))
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
thread scripts\common\utility::func_11018("gravity_field_lp");
|
|
if(isdefined(self.var_BEFC))
|
|
{
|
|
func_D25C();
|
|
}
|
|
|
|
if(isdefined(self.var_CB13))
|
|
{
|
|
func_52B3(self.var_CB13);
|
|
}
|
|
|
|
if(isdefined(self.var_C2CA))
|
|
{
|
|
destroynavobstacle(self.var_C2CA);
|
|
function_0278("antigrav" + self getentitynumber());
|
|
}
|
|
|
|
if(isdefined(self.var_132AA))
|
|
{
|
|
foreach(var_01 in self.var_132AA)
|
|
{
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_378D))
|
|
{
|
|
var_03 = self.var_378D;
|
|
foreach(var_05 in var_03)
|
|
{
|
|
func_DFC4(var_05);
|
|
}
|
|
}
|
|
|
|
level.var_2006.var_522B = scripts\common\utility::func_22A9(level.var_2006.var_522B,self);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_E057()
|
|
{
|
|
if(isdefined(self.var_15F))
|
|
{
|
|
level.var_2006.var_A8C6 = self.var_15F.origin;
|
|
self unlink();
|
|
self.var_15F delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_DFC4(param_00)
|
|
{
|
|
if(isdefined(param_00.var_132AA))
|
|
{
|
|
foreach(var_02 in param_00.var_132AA)
|
|
{
|
|
var_02 delete();
|
|
}
|
|
}
|
|
|
|
killfxontag(level._effect["antigrav_caltrop_trail"],param_00,"tag_origin");
|
|
self.var_378D = scripts\common\utility::func_22A9(self.var_378D,param_00);
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_DFBA()
|
|
{
|
|
level notify("removing_all_antigravs_instantly");
|
|
level endon("removing_all_antigravs_instantly");
|
|
scripts\common\utility::flag_set("antigrav_force_delete");
|
|
foreach(var_01 in level.var_2006.var_522B)
|
|
{
|
|
var_01 thread func_E057();
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(level.var_2006.var_522B.size > 0)
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
scripts\common\utility::func_6E2A("antigrav_force_delete");
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_197D(param_00)
|
|
{
|
|
if(!isdefined(self) || !isalive(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.var_1491) && isdefined(self.var_1491.var_58DA))
|
|
{
|
|
self method_81D0();
|
|
return;
|
|
}
|
|
|
|
if(self.var_12BA4 == "c12")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(lib_0A1B::func_2938())
|
|
{
|
|
self method_83A1();
|
|
}
|
|
|
|
if(!isdefined(self.var_2023))
|
|
{
|
|
func_1978(param_00);
|
|
lib_0A1A::func_237C("antigrav_rise");
|
|
return;
|
|
}
|
|
|
|
if(self.var_2023 == "rise" || self.var_2023 == "float_idle")
|
|
{
|
|
self.var_201D = gettime() + param_00.var_5F36 + randomfloat(0.25) * 1000;
|
|
return;
|
|
}
|
|
|
|
if(self.var_2023 == "fall")
|
|
{
|
|
self.var_201D = gettime() + param_00.var_5F36 + randomfloat(0.25) * 1000;
|
|
self.var_2020 = 1;
|
|
return;
|
|
}
|
|
|
|
func_1978(param_00);
|
|
self.var_2020 = 1;
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_1978(param_00)
|
|
{
|
|
self.var_2022 = gettime();
|
|
self.var_201D = self.var_2022 + param_00.var_5F36 + randomfloat(0.25) * 1000;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_CF45()
|
|
{
|
|
self.var_BEFC = 1;
|
|
level.player.var_D363[level.player.var_D363.size] = self;
|
|
level.player notify("new_antigrav_gren_active");
|
|
thread func_CF46();
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_CF46()
|
|
{
|
|
scripts\common\utility::func_6E59("antigrav_force_delete",0.1);
|
|
self.var_BEFC = 0;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_D25C()
|
|
{
|
|
level.player.var_D363 = scripts\common\utility::func_22A9(level.player.var_D363,self);
|
|
level.player notify("removed_antigrav_gren");
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_365A()
|
|
{
|
|
for(;;)
|
|
{
|
|
waittillframeend;
|
|
level.player.var_D363 = scripts\common\utility::func_22BC(level.player.var_D363);
|
|
var_00 = function_0075("all","C12");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
if(!isalive(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_02.var_93B5))
|
|
{
|
|
var_02.var_93B5 = 0;
|
|
}
|
|
|
|
var_03 = 0;
|
|
foreach(var_05 in level.player.var_D363)
|
|
{
|
|
if(func_3CB0(var_02,var_05))
|
|
{
|
|
var_03 = 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(var_03)
|
|
{
|
|
if(!var_02.var_93B5)
|
|
{
|
|
var_02.var_2015 = var_02.var_BCD6;
|
|
var_02.var_BCD6 = 0.2;
|
|
var_02.var_93B5 = 1;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(var_02.var_93B5)
|
|
{
|
|
var_02.var_BCD6 = var_02.var_2015;
|
|
var_02.var_2015 = undefined;
|
|
var_02.var_93B5 = 0;
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_D0EB()
|
|
{
|
|
self endon("death");
|
|
self.var_93B5 = 0;
|
|
for(;;)
|
|
{
|
|
waittillframeend;
|
|
level.player.var_D363 = scripts\common\utility::func_22BC(level.player.var_D363);
|
|
if(self.var_D363.size == 0)
|
|
{
|
|
if(self.var_93B5)
|
|
{
|
|
func_5567();
|
|
self.var_93B5 = 0;
|
|
}
|
|
|
|
self waittill("new_antigrav_gren_active");
|
|
}
|
|
|
|
var_00 = 0;
|
|
var_01 = 0;
|
|
self.var_4B16 = undefined;
|
|
if(!level.player scripts\sp\_utility::func_65DF("disable_antigrav_float") || !level.player scripts\sp\_utility::func_65DB("disable_antigrav_float"))
|
|
{
|
|
foreach(var_03 in self.var_D363)
|
|
{
|
|
if(func_3CB0(self,var_03))
|
|
{
|
|
var_00 = 1;
|
|
self.var_4B16 = var_03;
|
|
if(var_03.var_BEFC == 1)
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!self.var_93B5 && var_00)
|
|
{
|
|
thread func_6228();
|
|
self.var_93B5 = 1;
|
|
}
|
|
else if(self.var_93B5 && !var_00)
|
|
{
|
|
thread func_5567();
|
|
self.var_93B5 = 0;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_6228()
|
|
{
|
|
level.player notify("enable_player_antigrav_gren");
|
|
level.player endon("disable_player_antigrav_gren");
|
|
if(!isdefined(level.player.var_2028))
|
|
{
|
|
lib_0E4F::func_9755();
|
|
level.player.var_2028 = 1;
|
|
level.player.var_2024 = level.player getstance();
|
|
if(level.player.var_2024 == "crouch")
|
|
{
|
|
function_01C5("player_spaceViewHeight",40);
|
|
function_01C5("player_spaceCapsuleHeight",50);
|
|
}
|
|
else if(level.player.var_2024 == "prone")
|
|
{
|
|
function_01C5("player_spaceViewHeight",11);
|
|
function_01C5("player_spaceCapsuleHeight",30);
|
|
}
|
|
else
|
|
{
|
|
function_01C5("player_spaceViewHeight",60);
|
|
function_01C5("player_spaceCapsuleHeight",70);
|
|
}
|
|
}
|
|
|
|
level.player scripts\common\utility::func_1C6E(0);
|
|
level.player.var_C37D = getdvarint("player_death_animated",1);
|
|
setdvar("player_death_animated",0);
|
|
if(level.player scripts\sp\_utility::func_65DB("player_space_override_off"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(level.player scripts\sp\_utility::func_9F59())
|
|
{
|
|
level.player notify("cancel_sliding");
|
|
level.player scripts\sp\_utility::func_6389();
|
|
}
|
|
|
|
if(level.player isonground())
|
|
{
|
|
level.player playgestureviewmodel("ges_antigrav_reaction");
|
|
level.player.var_D4AB = 1;
|
|
thread func_CF65();
|
|
}
|
|
else
|
|
{
|
|
level.player playgestureviewmodel("ges_antigrav_reaction");
|
|
level.player.var_D4AB = 1;
|
|
thread func_CF65();
|
|
}
|
|
|
|
level.player.var_2A6.var_6F43 = 1;
|
|
level.player scripts\sp\_utility::func_65E1("player_gravity_off");
|
|
level.player thread func_CF64();
|
|
level.player thread func_CF67();
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_5567()
|
|
{
|
|
level.player notify("disable_player_antigrav_gren");
|
|
if(level.player scripts\sp\_utility::func_65DF("player_gravity_off"))
|
|
{
|
|
level.player scripts\sp\_utility::func_65DD("player_gravity_off");
|
|
}
|
|
|
|
level.player.var_D4AB = undefined;
|
|
level.player scripts\common\utility::func_1C6E(1);
|
|
setdvar("player_death_animated",level.player.var_C37D);
|
|
level.player.var_C37D = undefined;
|
|
thread func_5568();
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_5568()
|
|
{
|
|
level.player endon("enable_player_antigrav_gren");
|
|
for(;;)
|
|
{
|
|
if(getdvarint("player_spaceEnabled") == 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
level.player setstance(level.player.var_2024);
|
|
if(level.player getstance() == level.player.var_2024)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
level.player.var_2028 = undefined;
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_CF64()
|
|
{
|
|
self endon("death");
|
|
self notify("crawlmeleegrab_antigrav");
|
|
waittillframeend;
|
|
self.var_2A6.var_6F43 = 1;
|
|
self method_80D8(0.8,0.8);
|
|
lib_0E4F::func_6251();
|
|
lib_0E4F::func_621C();
|
|
while(lib_0E4F::func_9C7B())
|
|
{
|
|
if(!isdefined(self.var_4B16))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(!level.player.var_D4AB)
|
|
{
|
|
level.player playgestureviewmodel("ges_antigrav_idle");
|
|
}
|
|
|
|
var_00 = level.player.origin[2] - self.var_4B16.origin[2];
|
|
var_01 = clamp(100 - var_00 / 100,0,1);
|
|
var_02 = 50 * var_01;
|
|
var_03 = self getvelocity();
|
|
var_04 = (0,0,1);
|
|
var_05 = var_03 + var_04 * var_02;
|
|
self setvelocity(var_05);
|
|
wait(0.05);
|
|
}
|
|
|
|
level.player stopgestureviewmodel("ges_antigrav_reaction");
|
|
level.player stopgestureviewmodel("ges_antigrav_idle");
|
|
lib_0E4F::func_40A6();
|
|
if(isdefined(level.player.var_9BF5))
|
|
{
|
|
while(level.player.var_9BF5 == 1)
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_CF65()
|
|
{
|
|
thread func_CF66();
|
|
self endon("antigrav_reaction_think_timeout");
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
level.player waittill("gesture_stopped",var_00);
|
|
if(var_00 == "ges_antigrav_reaction")
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_D4AB))
|
|
{
|
|
self.var_D4AB = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_CF66()
|
|
{
|
|
self endon("death");
|
|
wait(5);
|
|
self notify("antigrav_reaction_think_timeout");
|
|
if(isdefined(self.var_D4AB))
|
|
{
|
|
self.var_D4AB = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_CF67()
|
|
{
|
|
level.player endon("death");
|
|
level.player endon("disable_player_antigrav_gren");
|
|
for(;;)
|
|
{
|
|
level waittill("ai_killed",var_00,var_01);
|
|
if(isdefined(level.player.var_4B16) && isdefined(level.player.var_4B16.var_D43A) && level.player.var_4B16.var_D43A == 1)
|
|
{
|
|
if(isdefined(var_00) && isdefined(var_00.team) && var_00.team == "axis")
|
|
{
|
|
if(isdefined(var_01) && var_01 == level.player)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scripts\sp\_utility::func_834F("ANTI_GRAV_KILL");
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_36E1()
|
|
{
|
|
var_00 = self.origin;
|
|
self.var_378E = [];
|
|
for(var_01 = 0;var_01 < 12;var_01++)
|
|
{
|
|
var_02 = 30 * var_01;
|
|
var_03 = self.var_85D2;
|
|
var_04 = func_378C(var_00,var_02,var_03);
|
|
if(isdefined(var_04))
|
|
{
|
|
var_05 = spawnstruct();
|
|
var_05.origin = var_04;
|
|
var_05.var_5F15 = 0;
|
|
if(var_04[2] + 256 < var_00[2])
|
|
{
|
|
var_05.var_5F15 = 1;
|
|
}
|
|
|
|
self.var_378E[self.var_378E.size] = var_05;
|
|
}
|
|
}
|
|
|
|
return self.var_378E;
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_1066C(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 0;
|
|
}
|
|
|
|
var_01 = self.origin;
|
|
var_02 = [];
|
|
self.var_378D = [];
|
|
for(var_03 = 0;var_03 < self.var_378E.size;var_03++)
|
|
{
|
|
var_04 = 0;
|
|
var_05 = 0;
|
|
if(var_03 > 0)
|
|
{
|
|
var_05 = var_03 - 1;
|
|
}
|
|
else
|
|
{
|
|
var_05 = self.var_378E.size - 1;
|
|
}
|
|
|
|
if(var_03 < self.var_378E.size - 1)
|
|
{
|
|
var_04 = var_03 + 1;
|
|
}
|
|
else
|
|
{
|
|
var_04 = 0;
|
|
}
|
|
|
|
var_06 = self.var_378E[var_04].origin;
|
|
var_07 = self.var_378E[var_05].origin;
|
|
var_08 = scripts\common\utility::func_6EE6(vectornormalize(var_07 - var_06));
|
|
var_09 = rotatevector(var_08,(0,-90,0));
|
|
if(length(var_09) == 0)
|
|
{
|
|
var_09 = vectornormalize(var_01 - self.var_378E[var_03].origin);
|
|
if(length(var_09) == 0)
|
|
{
|
|
var_09 = (0,0,1);
|
|
}
|
|
}
|
|
|
|
if(param_00)
|
|
{
|
|
self.var_378E[var_03].var_5F15 = 1;
|
|
}
|
|
|
|
self.var_378D[self.var_378D.size] = func_1066B(var_01,self.var_378E[var_03].origin,var_09,self.var_378E[var_03].var_5F15);
|
|
}
|
|
|
|
if(!param_00)
|
|
{
|
|
if(!self.var_5F37)
|
|
{
|
|
if(level.var_2006.var_522B.size > 1)
|
|
{
|
|
var_0A = "antigrav_area_small_cheap";
|
|
}
|
|
else
|
|
{
|
|
var_0A = "antigrav_area_small";
|
|
}
|
|
}
|
|
else if(level.var_2006.var_522B.size > 1)
|
|
{
|
|
var_0A = "antigrav_area_small_up_cheap";
|
|
}
|
|
else
|
|
{
|
|
var_0A = "antigrav_area_small_up";
|
|
}
|
|
|
|
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
|
|
{
|
|
var_0B = spawnfx(level._effect[var_0A],var_01,(1,0,0),(0,0,1));
|
|
func_C0A7(0.55,::triggerfx,var_0B);
|
|
self.var_132AA[self.var_132AA.size] = var_0B;
|
|
}
|
|
else
|
|
{
|
|
func_C0A7(0.55,::playfx,level._effect[var_0A],var_01,(1,0,0),(0,0,1));
|
|
}
|
|
|
|
var_0C = self.var_85D2 * 0.4;
|
|
var_0D = 0;
|
|
for(var_03 = 0;var_03 < self.var_378E.size;var_03++)
|
|
{
|
|
if(self.var_378E[var_03].var_5F15)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0E = distance(self.var_378E[var_03].origin,var_01);
|
|
var_0F = vectornormalize(self.var_378E[var_03].origin - var_01);
|
|
if(self.var_378E[var_03].origin[2] < var_01[2])
|
|
{
|
|
var_0F = scripts\common\utility::func_6EE6(var_0F);
|
|
}
|
|
|
|
var_10 = anglestoright(vectortoangles(var_0F));
|
|
var_11 = var_0C;
|
|
var_12 = [];
|
|
var_13 = 0;
|
|
while(var_11 < var_0E)
|
|
{
|
|
if(var_13 == 0 && !var_0D)
|
|
{
|
|
var_14 = 0;
|
|
var_12[var_12.size] = scripts\common\utility::func_5D14(var_01 + rotatevector(var_0F,(0,var_14,0)) * var_11,12,-1000);
|
|
}
|
|
else if(var_13 == 1)
|
|
{
|
|
var_14 = 0;
|
|
var_12[var_12.size] = scripts\common\utility::func_5D14(var_01 + rotatevector(var_0F,(0,var_14,0)) * var_11,12,-1000);
|
|
}
|
|
|
|
var_13++;
|
|
var_11 = var_11 + var_0C;
|
|
}
|
|
|
|
foreach(var_16 in var_12)
|
|
{
|
|
var_17 = [0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4];
|
|
var_18 = randomint(8);
|
|
var_19 = 0.35 + var_17[var_18];
|
|
var_1A = rotatevector((1,0,0),(0,randomfloat(360),0));
|
|
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
|
|
{
|
|
var_0B = spawnfx(level._effect[var_0A],var_16 + (0,0,6),var_1A,(0,0,1));
|
|
func_C0A7(var_19,::triggerfx,var_0B);
|
|
self.var_132AA[self.var_132AA.size] = var_0B;
|
|
continue;
|
|
}
|
|
|
|
func_C0A7(var_19,::playfx,level._effect[var_0A],var_16 + (0,0,6),var_1A,(0,0,1));
|
|
}
|
|
|
|
var_0D = !var_0D;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_378A(param_00,param_01,param_02)
|
|
{
|
|
var_03 = anglestoforward((0,param_01,0));
|
|
var_04 = scripts\common\trace::func_DCF1(param_00 + (0,0,48),param_00 + (0,0,48) + var_03 * param_02,undefined,scripts\common\trace::func_497D());
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_378C(param_00,param_01,param_02)
|
|
{
|
|
var_03 = anglestoforward((0,param_01,0));
|
|
var_04 = scripts\common\trace::func_DCED(param_00 + (0,0,48),param_00 + (0,0,48) + var_03 * param_02,undefined,scripts\common\trace::func_497D());
|
|
if(var_04["fraction"] > 0.5)
|
|
{
|
|
var_05 = param_02 * var_04["fraction"] - 12;
|
|
var_06 = param_00 + var_03 * var_05;
|
|
var_07 = scripts\common\utility::func_5D14(var_06,50,-1000);
|
|
return var_07;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_1066B(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = 0;
|
|
}
|
|
|
|
var_04 = vectornormalize(param_01 - param_00);
|
|
var_05 = param_01;
|
|
var_06 = param_00 + (0,0,2);
|
|
var_07 = spawn("script_model",var_06);
|
|
var_07.angles = (0,0,0);
|
|
var_07.var_132AA = [];
|
|
var_07 setmodel("anti_grav_border_wm");
|
|
var_07 method_83D0(#animtree);
|
|
playfxontag(level._effect["antigrav_caltrop_trail"],var_07,"tag_origin");
|
|
var_08 = randomfloatrange(0.3,0.65);
|
|
thread func_3789(var_07,var_06,var_05,var_08);
|
|
if(!param_03)
|
|
{
|
|
if(!self.var_5F37)
|
|
{
|
|
if(level.var_2006.var_522B.size > 1)
|
|
{
|
|
var_09 = "antigrav_caltrop_barrier_cheap";
|
|
}
|
|
else
|
|
{
|
|
var_09 = "antigrav_caltrop_barrier";
|
|
}
|
|
}
|
|
else if(level.var_2006.var_522B.size > 1)
|
|
{
|
|
var_09 = "antigrav_caltrop_barrier_up_cheap";
|
|
}
|
|
else
|
|
{
|
|
var_09 = "antigrav_caltrop_barrier_up";
|
|
}
|
|
|
|
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
|
|
{
|
|
var_0A = spawnfx(level._effect[var_09],param_01,param_02,(0,0,1));
|
|
func_C0A7(var_08,::triggerfx,var_0A);
|
|
var_07.var_132AA[var_07.var_132AA.size] = var_0A;
|
|
}
|
|
else
|
|
{
|
|
func_C0A7(var_08,::playfx,level._effect[var_09],param_01,param_02,(0,0,1));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level func_5128(var_08,::func_378B,var_07,param_01,param_02);
|
|
}
|
|
|
|
return var_07;
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_378B(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
|
|
{
|
|
var_03 = spawnfx(scripts\common\utility::getfx("antigrav_detonate_dud"),param_01,param_02,(0,0,1));
|
|
triggerfx(var_03);
|
|
param_00.var_132AA[param_00.var_132AA.size] = var_03;
|
|
return;
|
|
}
|
|
|
|
playfx(scripts\common\utility::getfx("antigrav_detonate_dud"),param_01,param_02,(0,0,1));
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_3789(param_00,param_01,param_02,param_03)
|
|
{
|
|
param_00 endon("death");
|
|
var_04 = vectornormalize(param_02 - param_01);
|
|
var_05 = distance(param_02,param_01);
|
|
var_06 = param_01 + var_04 * var_05;
|
|
var_07 = randomfloatrange(30,70);
|
|
var_08 = param_01 + var_04 * var_05 * 0.15 + (0,0,var_07 * 0.75);
|
|
var_09 = param_01 + var_04 * var_05 * 0.5 + (0,0,var_07);
|
|
var_0A = param_01 + var_04 * var_05 * 0.85 + (0,0,var_07 * 0.75);
|
|
var_0B = param_02;
|
|
var_0C = 0;
|
|
if(param_02[2] < param_01[2] - 50)
|
|
{
|
|
var_0C = 1;
|
|
}
|
|
|
|
param_00 method_8269((randomfloatrange(360,900),0,randomfloatrange(360,900)),param_03 - 0.05);
|
|
param_00 moveto(var_08,param_03 / 4,0,0);
|
|
wait(param_03 / 4);
|
|
param_00 moveto(var_09,param_03 / 4,0,0);
|
|
wait(param_03 / 4);
|
|
param_00 moveto(var_0A,param_03 / 4,0,0);
|
|
wait(param_03 / 4);
|
|
param_00 moveto(var_0B,param_03 / 4,0,0);
|
|
wait(param_03 / 4);
|
|
var_0D = 0.2;
|
|
var_0E = randomfloat(5);
|
|
param_00 method_8269((randomfloatrange(-40,40),0,randomfloatrange(-40,40)),var_0D - 0.05);
|
|
param_00 moveto(var_0B + var_04 * var_0E / 2 + (0,0,var_0E),var_0D / 2,0,var_0D / 2);
|
|
wait(var_0D / 2);
|
|
param_00 moveto(var_0B + var_04 * var_0E,var_0D / 2,var_0D / 2,0);
|
|
wait(var_0D / 2);
|
|
func_DFC4(param_00);
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_3CB0(param_00,param_01)
|
|
{
|
|
if(distance2d(param_00.origin,param_01.origin) <= param_01.var_85D2)
|
|
{
|
|
if(param_00.origin[2] + 256 > param_01.origin[2] && param_00.origin[2] - param_01.origin[2] <= 180)
|
|
{
|
|
var_02 = 48;
|
|
var_03 = 24;
|
|
var_04 = scripts\common\trace::func_DCF1(param_01.origin + (0,0,var_02),param_00.origin + (0,0,var_02),undefined,scripts\common\trace::func_497D());
|
|
if(var_04)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
var_04 = scripts\common\trace::func_DCF1(param_01.origin + (0,0,var_03),param_00.origin + (0,0,var_03),undefined,scripts\common\trace::func_497D());
|
|
if(var_04)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
var_05 = param_00.origin - param_01.origin;
|
|
var_05 = (var_05[0],var_05[1],0);
|
|
var_06 = param_01.origin + (0,0,var_02) + var_05;
|
|
var_04 = scripts\common\trace::func_DCF1(param_01.origin + (0,0,var_02),var_06,undefined,scripts\common\trace::func_497D());
|
|
if(var_04)
|
|
{
|
|
var_04 = scripts\common\trace::func_DCF1(var_06,param_00.origin + (0,0,var_02),undefined,scripts\common\trace::func_497D());
|
|
if(var_04)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
var_05 = param_00.origin - param_01.origin;
|
|
var_05 = (var_05[0],var_05[1],0);
|
|
var_06 = param_01.origin + (0,0,var_03) + var_05;
|
|
var_04 = scripts\common\trace::func_DCF1(param_01.origin + (0,0,var_03),var_06,undefined,scripts\common\trace::func_497D());
|
|
if(var_04)
|
|
{
|
|
var_04 = scripts\common\trace::func_DCF1(var_06,param_00.origin + (0,0,var_03),undefined,scripts\common\trace::func_497D());
|
|
if(var_04)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_4933()
|
|
{
|
|
var_00 = physics_volumecreate(self.origin,self.var_85D2,180);
|
|
var_00 method_8527(0);
|
|
var_00 method_8529(1);
|
|
var_00 method_8526(1);
|
|
thread func_CB0A(var_00);
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_CB0A(param_00)
|
|
{
|
|
param_00 endon("destroy_volume");
|
|
var_01 = -0.15;
|
|
param_00 method_852A(1,var_01);
|
|
wait(0.2);
|
|
param_00 method_852A(1,0);
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_52B3(param_00)
|
|
{
|
|
param_00 notify("destroy_volume");
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_1293()
|
|
{
|
|
if(isdefined(self) && isdefined(self.var_202A))
|
|
{
|
|
return 11;
|
|
}
|
|
|
|
return 7;
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_1294()
|
|
{
|
|
if(isdefined(self) && isdefined(self.var_202B))
|
|
{
|
|
return 196;
|
|
}
|
|
|
|
return 148;
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_C0A7(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
thread func_C0A8(param_01,param_00,param_02,param_03,param_04,param_05);
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_C0A8(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
scripts\common\utility::func_6E59("antigrav_force_delete",param_01);
|
|
if(isdefined(param_05))
|
|
{
|
|
[[ param_00 ]](param_02,param_03,param_04,param_05);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
[[ param_00 ]](param_02,param_03,param_04);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
[[ param_00 ]](param_02,param_03);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
[[ param_00 ]](param_02);
|
|
return;
|
|
}
|
|
|
|
[[ param_00 ]]();
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_5128(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
thread scripts\common\utility::func_512D(param_01,param_00,param_02,param_03,param_04,param_05,param_06,param_07);
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_5129(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
self endon("death");
|
|
self endon("stop_delay_thread");
|
|
scripts\common\utility::func_6E59("antigrav_force_delete",param_01);
|
|
if(isdefined(param_07))
|
|
{
|
|
thread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_06))
|
|
{
|
|
thread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
thread [[ param_00 ]](param_02,param_03,param_04,param_05);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
thread [[ param_00 ]](param_02,param_03,param_04);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
thread [[ param_00 ]](param_02,param_03);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
thread [[ param_00 ]](param_02);
|
|
return;
|
|
}
|
|
|
|
thread [[ param_00 ]]();
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_CE2E(param_00)
|
|
{
|
|
if(scripts\sp\_utility::func_9BB2())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = spawn("script_origin",self.origin);
|
|
var_01.origin = self.origin;
|
|
var_01.angles = self.angles;
|
|
var_01 linkto(self);
|
|
var_01 playsound(param_00,"sounddone");
|
|
var_01 scripts\common\utility::waittill_any_3("sounddone","antigrav_force_delete");
|
|
var_01 delete();
|
|
} |