mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 10:27:55 -05:00
496 lines
11 KiB
Plaintext
496 lines
11 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\mp\_bulletstorm.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 25
|
|
* Decompile Time: 1580 ms
|
|
* Timestamp: 10/27/2023 12:14:41 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_3258()
|
|
{
|
|
level.var_3257 = [];
|
|
level.var_3257["bubble"] = spawnstruct();
|
|
level.var_3257["bubble"].var_49B3 = ::func_498C;
|
|
level.var_3257["bubble"].var_741D = "prop_mp_bulletstorm";
|
|
level.var_3257["bubble"].var_6564 = "prop_mp_bulletstorm_enemy";
|
|
level.var_3257["section"] = spawnstruct();
|
|
level.var_3257["section"].var_49B3 = ::func_4A0F;
|
|
level.var_3257["section"].var_741D = "prop_mp_bulletstorm_v3";
|
|
level.var_3257["section"].var_6564 = "prop_mp_bulletstorm_v3_enemy";
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_10D76(param_00)
|
|
{
|
|
self.var_D782["power_bulletstorm"].var_19 = 1;
|
|
scripts\common\utility::func_1C76(0);
|
|
self allowcrouch(0);
|
|
self allowprone(0);
|
|
self method_8422(0);
|
|
self method_800E(0);
|
|
self.var_3253 = spawnstruct();
|
|
self.var_3253.var_4C15 = self getcurrentweapon();
|
|
self.var_3253.var_DF66 = self getweaponammoclip(self.var_3253.var_4C15);
|
|
self.var_3253.var_DF67 = self getweaponammostock(self.var_3253.var_4C15);
|
|
scripts\mp\_utility::func_141E(self.var_3253.var_4C15);
|
|
var_01 = func_811B(1);
|
|
var_02 = self [[ level.var_3257[var_01].var_49B3 ]](param_00);
|
|
thread func_139BF(var_01,var_02);
|
|
thread func_139BC();
|
|
self.var_FC99 = 1;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_139BF(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_139BC()
|
|
{
|
|
level endon("game_ended");
|
|
scripts\common\utility::waittill_any_3("death","disconnect");
|
|
self.var_FC99 = undefined;
|
|
self.var_3255 = undefined;
|
|
self.var_3254 = undefined;
|
|
self.var_3256 = undefined;
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_811B(param_00)
|
|
{
|
|
var_01 = undefined;
|
|
switch(param_00)
|
|
{
|
|
case 1:
|
|
var_01 = "bubble";
|
|
break;
|
|
|
|
case 2:
|
|
var_01 = "section";
|
|
break;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_498C(param_00)
|
|
{
|
|
var_01 = self.origin;
|
|
var_02 = spawn("script_model",var_01);
|
|
var_02 setmodel(level.var_3257["bubble"].var_741D);
|
|
var_02.health = 999999;
|
|
var_02.var_AC75 = 4;
|
|
var_02.var_E749 = 720;
|
|
var_02.var_11A33 = 0;
|
|
var_02.var_4D63 = 250;
|
|
var_02.var_28AF = "bulletstorm_device_mp";
|
|
var_02 setcandamage(1);
|
|
var_02 hide();
|
|
var_02.var_249C = [];
|
|
if(isdefined(self.var_3255))
|
|
{
|
|
var_02.var_AC75 = self.var_3255;
|
|
}
|
|
|
|
if(isdefined(self.var_3254))
|
|
{
|
|
var_02.health = self.var_3254;
|
|
}
|
|
|
|
if(isdefined(self.var_3256))
|
|
{
|
|
var_02.var_E749 = self.var_3256;
|
|
}
|
|
|
|
var_03 = spawn("script_model",var_02.origin + (0,0,10));
|
|
var_03 setmodel("tag_origin");
|
|
var_03 thread func_BD2E(self);
|
|
var_03 thread func_13B3A(var_02);
|
|
var_04 = spawn("script_model",var_01);
|
|
var_04 setmodel(level.var_3257["bubble"].var_6564);
|
|
var_04 hide();
|
|
var_04 thread func_BD2E(self);
|
|
var_04 thread func_13B3A(var_02);
|
|
var_02 thread func_BD2E(self);
|
|
var_02 thread func_3259(self,var_03,var_04);
|
|
func_10112(self,var_02,var_04);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_4A0F()
|
|
{
|
|
var_00 = self gettagorigin("j_mainroot");
|
|
var_01 = spawn("script_model",var_00);
|
|
var_01 setmodel("tag_origin");
|
|
var_01 thread func_BD2E(self);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_24AA(param_00,param_01)
|
|
{
|
|
var_02[0] = (50,0,10);
|
|
var_02[1] = (0,50,10);
|
|
var_02[2] = (-50,0,10);
|
|
var_02[3] = (0,-50,10);
|
|
var_03 = 4;
|
|
for(var_04 = 0;var_04 < var_03;var_04++)
|
|
{
|
|
var_05 = spawn("script_model",self.origin + (0,0,50));
|
|
var_05 setmodel(level.var_3257["section"].var_741D);
|
|
var_05 linkto(self,"tag_origin",var_02[var_04],(0,90 * var_04 + 1,0));
|
|
var_05 thread func_13B3A(param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_BD2E(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
param_00 endon("disconnect");
|
|
self endon("shield_lifetime_hit");
|
|
for(;;)
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
if(isdefined(self))
|
|
{
|
|
self.origin = param_00.origin;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_3259(param_00,param_01,param_02)
|
|
{
|
|
self endon("stop_bulletstorm");
|
|
thread func_139B8(param_00);
|
|
thread func_13B61(param_00);
|
|
thread func_139BA(param_00);
|
|
thread func_139BE(param_00);
|
|
var_03 = "hitbulletstorm";
|
|
thread func_10A10(self.var_E749,4,1,1);
|
|
param_01 thread func_10A10(self.var_E749,4,1,1);
|
|
param_02 thread func_10A10(self.var_E749,4,1,1);
|
|
for(;;)
|
|
{
|
|
self waittill("damage",var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D);
|
|
playfx(scripts\common\utility::getfx("bulletstorm_shield_hit"),var_07);
|
|
playsoundatpos(var_07,"bs_shield_impact");
|
|
var_05 scripts\mp\_damagefeedback::func_12E84(var_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_10112(param_00,param_01,param_02)
|
|
{
|
|
foreach(var_04 in level.players)
|
|
{
|
|
if(!isdefined(var_04))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!lib_0DF8::func_9DDF(var_04))
|
|
{
|
|
var_04 func_12E6B(param_00.team,param_01,param_02);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_12E6B(param_00,param_01,param_02)
|
|
{
|
|
var_03 = undefined;
|
|
if(self.team == param_00)
|
|
{
|
|
var_03 = param_01;
|
|
}
|
|
else
|
|
{
|
|
var_03 = param_02;
|
|
}
|
|
|
|
if(isdefined(var_03))
|
|
{
|
|
var_03 showtoplayer(self);
|
|
thread func_139BD(param_00,var_03,param_01,param_02);
|
|
thread func_139BB(param_00,var_03,param_01,param_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_139BD(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
param_01 endon("death");
|
|
self waittill("joined_team");
|
|
param_01 method_8429(self);
|
|
scripts\common\utility::func_136F7();
|
|
func_12E6B(param_00,param_02,param_03);
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_139BB(param_00,param_01,param_02,param_03)
|
|
{
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_139B8(param_00)
|
|
{
|
|
self endon("stop_bulletstorm");
|
|
param_00 scripts\common\utility::waittill_any_3("death","disconnect");
|
|
self notify("stop_bulletstorm",1);
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_13B61(param_00)
|
|
{
|
|
self waittill("stop_bulletstorm",var_01);
|
|
if(isdefined(param_00))
|
|
{
|
|
var_02 = param_00 gettagorigin("j_mainroot");
|
|
func_10D75(param_00,self.var_11A33,var_02,self.var_4D63);
|
|
param_00.var_FC99 = undefined;
|
|
param_00 setclientomnvar("ui_bulletstorm_update",-1);
|
|
param_00.var_3255 = undefined;
|
|
param_00.var_3254 = undefined;
|
|
param_00.var_3256 = undefined;
|
|
param_00.var_D782["power_bulletstorm"].var_19 = 0;
|
|
var_03 = -1;
|
|
if(var_01)
|
|
{
|
|
var_03 = 0;
|
|
}
|
|
|
|
param_00 notify("powers_bulletstorm_update",var_03);
|
|
param_00 scripts\common\utility::func_1C76(1);
|
|
param_00 allowcrouch(1);
|
|
param_00 allowprone(1);
|
|
param_00 method_8422(1);
|
|
param_00 method_800E(1);
|
|
var_04 = param_00.var_3253.var_4C15;
|
|
var_05 = param_00.var_3253.var_DF66;
|
|
var_06 = param_00.var_3253.var_DF67;
|
|
param_00 giveweapon(var_04,0,0,0,1);
|
|
param_00 setweaponammoclip(var_04,var_05);
|
|
param_00 setweaponammostock(var_04,var_06);
|
|
param_00 scripts\mp\_utility::_switchtoweaponimmediate(var_04);
|
|
}
|
|
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_139BE(param_00)
|
|
{
|
|
self endon("stop_bulletstorm");
|
|
for(;;)
|
|
{
|
|
param_00 waittill("multi_use_activated",var_01);
|
|
if(var_01 == "power_bulletstorm")
|
|
{
|
|
self notify("stop_bulletstorm",1);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_139BA(param_00)
|
|
{
|
|
self endon("stop_bulletstorm");
|
|
var_01 = 0.25;
|
|
for(;;)
|
|
{
|
|
if(self.var_AC75 >= 1)
|
|
{
|
|
param_00 setclientomnvar("ui_bulletstorm_update",int(self.var_AC75));
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
if(self.var_AC75 > 1)
|
|
{
|
|
self.var_AC75 = self.var_AC75 - 0.05;
|
|
self notify("powers_bulletstorm_update",self.var_AC75 * var_01);
|
|
}
|
|
}
|
|
|
|
self notify("shield_lifetime_hit");
|
|
self notify("stop_bulletstorm",1);
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_10D75(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(param_01 > 0)
|
|
{
|
|
var_04 = getdvarint("scr_bulletstorm_explosion",1);
|
|
playfx(scripts\common\utility::getfx("bulletstorm_explode"),param_02);
|
|
playfx(scripts\common\utility::getfx("bulletstorm_explode2"),param_02);
|
|
if(var_04 == 1)
|
|
{
|
|
param_00 playlocalsound("bs_shield_explo");
|
|
param_00 playsound("bs_shield_explo_npc");
|
|
}
|
|
else
|
|
{
|
|
param_00 playlocalsound("bs_shield_explo");
|
|
param_00 playsound("bs_shield_explo_npc");
|
|
}
|
|
|
|
param_00 thread scripts\mp\_shellshock::func_858A(undefined,0);
|
|
param_01 = int(clamp(param_01,20,150));
|
|
param_03 = int(clamp(param_03,50,250));
|
|
foreach(var_06 in level.players)
|
|
{
|
|
if(var_06 == param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_06.team == param_00.team)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_07 = func_811A(var_04,param_02,param_03,param_00,var_06,param_01);
|
|
if(var_07.var_38BF)
|
|
{
|
|
if(var_04 == 1)
|
|
{
|
|
if(var_07.var_4D70 >= var_06.health)
|
|
{
|
|
var_06.var_4C87 = 1;
|
|
}
|
|
|
|
var_06 dodamage(var_07.var_4D70,param_02,param_00,self,"MOD_EXPLOSIVE");
|
|
var_06 thread func_139B9(param_02,param_03,1);
|
|
continue;
|
|
}
|
|
|
|
param_00 notify("stun_hit");
|
|
var_06 notify("concussed",param_00);
|
|
var_06 shellshock("concussion_grenade_mp",var_07.var_5FE9);
|
|
var_06.var_44ED = gettime() + var_07.var_5FE9 * 1000;
|
|
param_00 thread scripts\mp\_damagefeedback::func_12E84("stun");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_13B3A(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
param_00 waittill("stop_bulletstorm");
|
|
if(isdefined(self))
|
|
{
|
|
self delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_10A10(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self))
|
|
{
|
|
self rotateyaw(param_00,param_01,param_02,param_03);
|
|
}
|
|
|
|
wait(param_01);
|
|
thread func_10A10(param_00,param_01,param_02,param_03,param_04);
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_5116(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon("game_ended");
|
|
wait(param_00);
|
|
physicsexplosionsphere(param_01,param_02,param_02,param_03);
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_139B9(param_00,param_01,param_02)
|
|
{
|
|
self endon("disconnect");
|
|
self waittill("start_instant_ragdoll",var_03,var_04);
|
|
scripts\common\utility::func_136F7();
|
|
physicsexplosionsphere(param_00,param_01 + 40,param_01 + 20,param_02);
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_5105(param_00,param_01)
|
|
{
|
|
level endon("game_ended");
|
|
wait(param_00);
|
|
if(isdefined(param_01))
|
|
{
|
|
param_01 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_811A(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
var_06 = spawnstruct();
|
|
var_06.var_38BF = 0;
|
|
var_06.var_4D70 = 0;
|
|
var_06.var_5FE9 = 0;
|
|
var_07 = distance(param_01,param_04.origin);
|
|
if(var_07 <= param_02)
|
|
{
|
|
if(var_07 <= 50)
|
|
{
|
|
var_06.var_38BF = 1;
|
|
}
|
|
else
|
|
{
|
|
var_08 = [];
|
|
var_08[var_08.size] = "physicscontents_solid";
|
|
var_08[var_08.size] = "physicscontents_glass";
|
|
var_08[var_08.size] = "physicscontents_vehicle";
|
|
var_09 = physics_createcontents(var_08);
|
|
var_0A = [];
|
|
var_0B = function_0287(param_01,param_04.origin,var_09,var_0A,0,"physicsquery_any");
|
|
if(!var_0B)
|
|
{
|
|
var_06.var_38BF = 1;
|
|
}
|
|
}
|
|
|
|
if(var_06.var_38BF)
|
|
{
|
|
if(param_00 == 1)
|
|
{
|
|
var_06.var_4D70 = param_05 - param_05 / param_02 / var_07;
|
|
}
|
|
else
|
|
{
|
|
var_0C = 1 - var_07 / param_02;
|
|
if(var_0C < 0)
|
|
{
|
|
var_0C = 0;
|
|
}
|
|
|
|
var_0D = 2 + 4 * var_0C;
|
|
var_06.var_5FE9 = scripts\mp\perks\_perkfunctions::func_20E0(param_03,param_04,var_0D);
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_06;
|
|
} |