IL-GSC/IW/PC/ALL/3599.gsc
2023-10-27 03:49:01 -04:00

392 lines
8.2 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3599.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 20
* Decompile Time: 9 ms
* Timestamp: 10/27/2023 12:30:52 AM
*******************************************************************/
//Function Number: 1
init()
{
level.var_2ABE = [];
}
//Function Number: 2
func_2A7B()
{
return 1;
}
//Function Number: 3
func_1109A()
{
}
//Function Number: 4
func_B8B1(param_00,param_01)
{
self endon("disconnect");
var_02 = scripts\common\trace::func_48BC(0,1,1,1,1,0,0);
var_03 = param_01.origin;
var_04 = anglestoforward(param_01.angles);
var_05 = var_03 + var_04 * 1920;
var_06 = function_0287(var_03,var_05,var_02,param_01,1,"physicsquery_closest");
var_07 = isdefined(var_06) && var_06.size > 0;
if(var_07)
{
var_08 = var_06[0]["position"];
var_09 = distance(var_08,var_03);
var_0A = vectornormalize(var_03 - var_08);
var_0B = var_08 + var_0A * 80;
}
else
{
var_09 = 1920;
var_0A = anglestoforward(var_03.angles);
var_0B = var_06;
var_08 = undefined;
}
var_0C = distance(var_0B,var_03);
if(var_0C < 90)
{
var_0D = 1;
wait(0.3);
if(isdefined(param_01))
{
param_01 delete();
return;
}
return;
}
var_0E = max(var_0C / 980,1.05);
var_0F = spawn("script_model",var_03);
var_0F setmodel("prop_mp_super_blackholegun_projectile");
var_0F method_831F(self);
var_0F moveto(var_0B,var_0E,0.1,0.95);
var_0F.var_222 = param_01.var_222;
var_0F setscriptmoverkillcam("rocket");
var_10 = var_0F.var_222 scripts\mp\_utility::func_1302("blackholegun_indicator_mp",self.origin,(0,0,0));
var_10.var_13C2E = "blackholegun_indicator_mp";
var_10 linkto(var_0F);
var_0F thread func_13A38(var_10,var_02);
var_0F thread func_BA0A(var_0E,self,var_10,var_02);
var_0F setscriptablepartstate("projectile","on",0);
waittillframeend;
if(isdefined(param_01))
{
param_01 delete();
}
}
//Function Number: 5
func_BA0A(param_00,param_01,param_02,param_03)
{
self endon("blackhole_projectile_impact");
self endon("death");
thread func_DA5F(param_01,param_02);
wait(param_00);
self notify("blackhole_projectile_arrive");
thread func_DA5E(param_02,param_03);
}
//Function Number: 6
func_DA5E(param_00,param_01)
{
self endon("death");
self notify("projectile_arrived");
func_410E();
var_02 = function_0287(self.origin,self.origin - (0,0,42),param_01,undefined,1,"physicsquery_closest");
var_03 = isdefined(var_02) && var_02.size > 0;
if(var_03)
{
var_04 = var_02[0]["position"];
self.origin = var_04 + (0,0,42);
}
var_05 = func_B29C(param_01);
self setscriptablepartstate("singularity","singularity",0);
var_06 = func_10833(2750);
thread func_13A45(var_05);
thread func_10213();
thread func_10211(var_05,self.var_222,var_06,param_00);
wait(2);
thread func_10212(self.var_222,var_05,var_06,param_00);
}
//Function Number: 7
func_C836(param_00)
{
self endon("death");
param_00 waittill("disconnect");
self delete();
}
//Function Number: 8
func_B29C(param_00)
{
var_01 = function_02AF(self.var_222,"bhgunfield_mp",self.origin);
var_01 linkto(self);
return var_01;
}
//Function Number: 9
func_10213()
{
self endon("death");
var_00 = 0.4;
var_01 = 0.0466;
for(var_02 = 0;var_02 < 5;var_02++)
{
scripts\mp\_shellshock::func_1245(var_02 + 1 * var_01,var_00 * 2,self.origin,800);
wait(var_00);
}
}
//Function Number: 10
func_12896(param_00,param_01,param_02,param_03)
{
var_04 = function_0287(self.origin,param_01,param_03,self,0,"physicsquery_closest");
var_05 = !isdefined(var_04) && var_04.size > 0;
if(var_05)
{
param_00 dodamage(param_02,self.origin,self.var_222,self,"MOD_EXPLOSIVE","iw7_blackholegun_mp");
}
}
//Function Number: 11
func_13A45(param_00)
{
self endon("death");
self endon("blackhole_die");
self.var_222 endon("disconnect");
var_01 = scripts\common\trace::func_48BC(0,1,1,0,1,0);
var_02 = 5898.24;
for(;;)
{
foreach(var_04 in level.players)
{
if(!isdefined(var_04))
{
continue;
}
if(!scripts\mp\_utility::func_9F19(var_04))
{
continue;
}
if(!lib_0DF8::func_213D(self,var_04))
{
continue;
}
if(!level.var_740A && var_04 != self.var_222 && !scripts\mp\_utility::func_9FB3(scripts\mp\_utility::playersareenemies(var_04,self.var_222)))
{
continue;
}
if(distancesquared(var_04 geteye(),self.origin) > var_02)
{
continue;
}
func_12896(var_04,var_04 geteye(),1000,var_01);
}
var_06 = scripts\mp\_weapons::func_7E8C(self.origin,76.8,0);
foreach(var_08 in var_06)
{
if(!isdefined(var_08) || !isdefined(var_08.var_222) || isplayer(var_08))
{
continue;
}
if(!lib_0DF8::func_213D(self,var_08))
{
continue;
}
if(!level.var_740A && var_08.var_222 != self.var_222 && !scripts\mp\_utility::func_9FB3(scripts\mp\_utility::playersareenemies(var_08.var_222,self.var_222)))
{
continue;
}
if(distancesquared(var_08.origin,self.origin) > var_02)
{
continue;
}
var_08 dodamage(18.18182,self.origin,self.var_222,self,"MOD_EXPLOSIVE","iw7_blackholegun_mp");
}
wait(0.2);
}
}
//Function Number: 12
func_13A38(param_00,param_01)
{
self endon("death");
self endon("blackhole_projectile_arrive");
self.var_222 endon("disconnect");
wait(0.1);
var_02 = spawn("trigger_radius",self.origin - (0,0,32),0,24,64);
var_02 enablelinkto();
var_02 linkto(self);
var_02 thread func_411E(self);
for(;;)
{
var_02 waittill("trigger",var_03);
if(var_03 == self.var_222)
{
continue;
}
if(!isplayer(var_03) && !isagent(var_03))
{
continue;
}
if(!scripts\mp\_utility::func_9F19(var_03))
{
continue;
}
if(!lib_0DF8::func_213D(self,var_03))
{
continue;
}
var_04 = var_03;
if(scripts\mp\_utility::func_9F22(var_03) || scripts\mp\_utility::func_9F72(var_03))
{
var_04 = var_03.var_222;
}
if(!level.var_740A && var_04 != self.var_222 && !scripts\mp\_utility::func_9FB3(scripts\mp\_utility::playersareenemies(var_04,self.var_222)))
{
continue;
}
self notify("blackhole_projectile_impact");
var_03 dodamage(135,self.origin,self.var_222,self,"MOD_EXPLOSIVE","iw7_blackholegun_mp");
self moveto(self.origin,0.05,0,0);
thread func_DA5E(param_00,param_01);
break;
}
}
//Function Number: 13
func_10212(param_00,param_01,param_02,param_03)
{
self setscriptablepartstate("singularity","explosion",0);
self radiusdamage(self.origin,235,200,100,self.var_222,"MOD_EXPLOSIVE","iw7_blackholegun_mp");
self notify("singularity_explode");
self notify("blackhole_die");
thread func_4118(param_01,param_02,param_03);
}
//Function Number: 14
func_10833(param_00)
{
var_01 = physics_volumecreate(self.origin,384);
var_01 method_852C(1,self.origin,param_00);
var_01 method_8526(1);
var_01.time = gettime();
level.var_2ABE scripts\common\utility::func_22BC(level.var_2ABE);
var_02 = undefined;
var_03 = 0;
for(var_04 = 0;var_04 < 3;var_04++)
{
var_05 = level.var_2ABE[var_04];
if(!isdefined(var_05))
{
var_03 = var_04;
break;
}
else if(!isdefined(var_02) || isdefined(var_02) && var_02.time > var_05.time)
{
var_02 = var_05;
var_03 = var_04;
}
}
if(isdefined(var_02))
{
var_02 delete();
}
level.var_2ABE[var_03] = var_01;
var_01 thread func_2B42();
return var_01;
}
//Function Number: 15
func_2B42()
{
self endon("death");
self method_8529(1);
scripts\common\utility::func_136F7();
self method_8529(0);
}
//Function Number: 16
func_411E(param_00)
{
param_00 scripts\common\utility::waittill_any_3("death","blackhole_projectile_arrive","blackhole_projectile_impact");
self delete();
}
//Function Number: 17
func_4118(param_00,param_01,param_02)
{
if(isdefined(param_01))
{
param_01 delete();
}
param_00 delete();
if(isdefined(param_02))
{
param_02 delete();
}
wait(3);
self setscriptablepartstate("singularity","off",0);
self delete();
}
//Function Number: 18
func_DA5F(param_00,param_01)
{
self endon("death");
self endon("projectile_arrived");
param_00 waittill("disconnect");
func_410E();
if(isdefined(param_01))
{
param_01 delete();
}
self delete();
}
//Function Number: 19
func_410E()
{
self setscriptablepartstate("projectile","off",0);
}
//Function Number: 20
func_10211(param_00,param_01,param_02,param_03)
{
self endon("death");
param_01 waittill("disconnect");
thread func_4118(param_00,param_02,param_03);
}