mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
240 lines
5.1 KiB
Plaintext
240 lines
5.1 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3615.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 4
|
|
* Decompile Time: 3 ms
|
|
* Timestamp: 10/27/2023 12:30:55 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_6137()
|
|
{
|
|
level._effect["impact_shock"] = loadfx("vfx/iw7/core/equipment/emp/vfx_equip_emp_a2_thegreatzapper.vfx");
|
|
level._effect["fuse_shock"] = loadfx("vfx/iw7/core/equipment/emp/vfx_equip_emp_gren_hit_c6_kill.vfx");
|
|
level._effect["battery_explosion"] = loadfx("vfx/iw7/core/equipment/emp/vfx_equip_emp_a2_barrel_model.vfx");
|
|
var_00 = getentarray("phys_battery_destructible","targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_02 thread func_6134();
|
|
}
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_6134()
|
|
{
|
|
self endon("barrel_death");
|
|
self endon("barrel_delete");
|
|
lib_0E1D::func_2840("emp",120,350,9100,15000,80,28);
|
|
thread func_6135();
|
|
var_00 = 3;
|
|
var_01 = 0;
|
|
var_02 = 120;
|
|
var_03 = 0;
|
|
var_04 = 0;
|
|
for(;;)
|
|
{
|
|
self waittill("damage",var_05,var_06,var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D,var_0E);
|
|
if(isdefined(var_06) && isai(var_06))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_06) && isdefined(var_06.var_9D62))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_0E) && scripts\common\utility::func_13C07(var_0E) == "sniper")
|
|
{
|
|
var_05 = 999999;
|
|
var_00 = 0;
|
|
}
|
|
|
|
var_02 = int(var_02 - var_05);
|
|
if(var_02 <= 0 && !isdefined(self.var_C528))
|
|
{
|
|
var_02 = 50;
|
|
}
|
|
|
|
if(var_02 <= 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
self.var_2836 = var_02;
|
|
if(var_02 <= 50)
|
|
{
|
|
if(!var_01)
|
|
{
|
|
if(!var_04)
|
|
{
|
|
var_04 = 1;
|
|
if(soundexists("emp_battery_damaged_warning_lp"))
|
|
{
|
|
thread scripts\sp\_utility::func_CD81("emp_battery_damaged_warning_lp","tag_origin",1,1);
|
|
}
|
|
}
|
|
|
|
playfxontag(scripts\common\utility::getfx("fuse_shock"),self,"tag_origin");
|
|
var_01 = 1;
|
|
self.var_C528 = 1;
|
|
}
|
|
|
|
var_0F = var_02 / 50;
|
|
var_00 = var_00 * var_0F;
|
|
thread lib_0E1D::func_2835(var_00);
|
|
}
|
|
|
|
if(isdefined(var_07))
|
|
{
|
|
var_10 = length(var_07);
|
|
if(var_10 > 20)
|
|
{
|
|
var_11 = vectornormalize(var_07);
|
|
var_12 = 20;
|
|
if(isdefined(var_09) && var_09 == "MOD_IMPACT")
|
|
{
|
|
var_12 = 3;
|
|
}
|
|
|
|
var_07 = var_11 * var_12;
|
|
}
|
|
|
|
self physicslaunchserver(var_08,var_07 * 1000);
|
|
}
|
|
|
|
if(!isdefined(var_09))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_13 = strtok(var_09,"_");
|
|
if(!scripts\common\utility::func_2286(var_13,"BULLET"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_14 = scripts\common\utility::spawn_tag_origin(var_08);
|
|
var_15 = vectornormalize(self.origin - var_08);
|
|
var_16 = vectortoangles(var_15 * -1);
|
|
var_14.angles = scripts\common\utility::func_6EE1(var_16);
|
|
var_14 linkto(self);
|
|
if(!var_03)
|
|
{
|
|
var_03 = 1;
|
|
if(soundexists("emp_battery_damaged_lp"))
|
|
{
|
|
var_14 thread scripts\sp\_utility::func_CD81("emp_battery_damaged_lp","tag_origin",1,1);
|
|
}
|
|
}
|
|
|
|
playfxontag(scripts\common\utility::getfx("impact_shock"),var_14,"tag_origin");
|
|
self.var_109DB = scripts\common\utility::array_add(self.var_109DB,var_14);
|
|
}
|
|
|
|
while(isdefined(self.var_5945))
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
self notify("barrel_death");
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_6135()
|
|
{
|
|
self endon("barrel_delete");
|
|
self waittill("barrel_death");
|
|
physicsexplosionsphere(self.origin,self.var_CAF6,0,2);
|
|
earthquake(0.5,0.8,self.origin,700);
|
|
thread lib_0E25::func_6133(self);
|
|
thread scripts\sp\_detonategrenades::func_DBDB(self.origin);
|
|
var_00 = 0.3;
|
|
var_01 = sortbydistance(level.var_CAF7,self.origin);
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(var_03 == self)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_04 = distance(self.origin,var_03.origin);
|
|
if(var_04 > self.var_CAF6)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 = self.var_CAF6 - var_04;
|
|
var_06 = var_05 / self.var_CAF6;
|
|
var_07 = var_00 * var_06;
|
|
if(var_04 <= self.var_CAF6)
|
|
{
|
|
var_03 thread lib_0E1D::func_2837(self.origin,var_04,var_07);
|
|
}
|
|
|
|
if(var_04 <= 340)
|
|
{
|
|
var_03 thread func_6136(self.origin,var_04,var_07);
|
|
}
|
|
}
|
|
|
|
radiusdamage(self.origin,2,1,0,self);
|
|
scripts\common\utility::func_136F7();
|
|
if(soundexists("emp_battery_explode"))
|
|
{
|
|
thread scripts\common\utility::play_sound_in_space("emp_battery_explode",self.origin);
|
|
}
|
|
|
|
playfx(scripts\common\utility::getfx("battery_explosion"),self.origin);
|
|
foreach(var_0A in self.var_109DB)
|
|
{
|
|
killfxontag(scripts\common\utility::getfx("impact_shock"),var_0A,"tag_origin");
|
|
scripts\common\utility::func_136F7();
|
|
if(isdefined(var_0A))
|
|
{
|
|
var_0A delete();
|
|
}
|
|
}
|
|
|
|
killfxontag(scripts\common\utility::getfx("fuse_shock"),self,"tag_origin");
|
|
scripts\common\utility::func_136F7();
|
|
if(isdefined(self))
|
|
{
|
|
self delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_6136(param_00,param_01,param_02)
|
|
{
|
|
self endon("barrel_death");
|
|
self endon("barrel_delete");
|
|
wait(param_02);
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.var_C528))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_03 = 95;
|
|
var_04 = 340;
|
|
if(param_01 <= 90)
|
|
{
|
|
var_05 = 20;
|
|
var_06 = 90 - param_01 / var_04;
|
|
var_07 = 70 + var_06 * var_05;
|
|
}
|
|
else
|
|
{
|
|
var_06 = var_07 - var_03 / var_07;
|
|
var_07 = var_07 * var_04;
|
|
}
|
|
|
|
self notify("damage",var_07);
|
|
} |