mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-06 05:47:51 -05:00
1947 lines
40 KiB
Plaintext
1947 lines
40 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\mp\killstreaks\_helicopter.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 73
|
|
* Decompile Time: 3314 ms
|
|
* Timestamp: 10/27/2023 12:28:40 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init()
|
|
{
|
|
var_00 = getentarray("heli_start","targetname");
|
|
var_01 = getentarray("heli_loop_start","targetname");
|
|
if(!var_00.size && !var_01.size)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_3F14 = undefined;
|
|
level.var_8D96 = getentarray("heli_start","targetname");
|
|
level.var_8D6F = getentarray("heli_loop_start","targetname");
|
|
level.var_110D1 = scripts\common\utility::getstructarray("strafe_path","targetname");
|
|
level.var_8D67 = getentarray("heli_leave","targetname");
|
|
level.var_8D3E = getentarray("heli_crash_start","targetname");
|
|
level.var_8D75 = 5;
|
|
level.var_8D73 = 2000;
|
|
level.var_8D43 = 0;
|
|
level.var_8D9A = 0.5;
|
|
level.var_8D9F = 1.5;
|
|
level.var_8D9E = 60;
|
|
level.var_8DA2 = 3700;
|
|
level.var_8D98 = 5;
|
|
level.var_8D97 = 0.5;
|
|
level.var_8D74 = 256;
|
|
level.var_8D76 = 0.3;
|
|
level.var_8D2C = 0.3;
|
|
level.var_8D2E = 1000;
|
|
level.var_8D2D = 4096;
|
|
level.var_8D2B = 90;
|
|
level.var_8D56 = 0;
|
|
level func_D80F();
|
|
level.var_3F19["damage"]["light_smoke"] = loadfx("vfx/core/smktrail/smoke_trail_white_heli_emitter");
|
|
level.var_3F19["damage"]["heavy_smoke"] = loadfx("vfx/core/mp/killstreaks/vfx_helo_damage.vfx");
|
|
level.var_3F19["damage"]["on_fire"] = loadfx("vfx/core/expl/fire_smoke_trail_l_emitter");
|
|
level.var_3F19["light"]["left"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
|
|
level.var_3F19["light"]["right"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
|
|
level.var_3F19["light"]["belly"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
|
|
level.var_3F19["light"]["tail"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
|
|
level.var_3F19["explode"]["medium"] = loadfx("vfx/core/expl/aerial_explosion");
|
|
level.var_3F19["explode"]["large"] = loadfx("vfx/core/expl/helicopter_explosion_secondary_small");
|
|
level.var_3F19["smoke"]["trail"] = loadfx("vfx/core/smktrail/smoke_trail_white_heli");
|
|
level.var_3F19["explode"]["death"] = [];
|
|
level.var_3F19["explode"]["death"]["apache"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
|
|
level.var_3F19["explode"]["air_death"]["apache"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
|
|
level.var_ACB5["apache"] = ::func_503F;
|
|
level.var_ACB5["cobra"] = ::func_503F;
|
|
level.var_3F19["explode"]["death"]["littlebird"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
|
|
level.var_3F19["explode"]["air_death"]["littlebird"] = loadfx("vfx/iw7/_requests/mp/vfx_debug_warning.vfx");
|
|
level.var_ACB5["littlebird"] = ::func_503F;
|
|
level._effect["vehicle_flares"] = loadfx("vfx/iw7/core/mp/killstreaks/vfx_warden_em_flares.vfx");
|
|
level.var_3F19["fire"]["trail"]["medium"] = loadfx("vfx/core/expl/fire_smoke_trail_l_emitter");
|
|
scripts\mp\killstreaks\_killstreaks::func_DEFB("helicopter",::func_13090);
|
|
level.var_8DB6["tracking"][0] = "ac130_fco_moreenemy";
|
|
level.var_8DB6["tracking"][1] = "ac130_fco_getthatguy";
|
|
level.var_8DB6["tracking"][2] = "ac130_fco_guyrunnin";
|
|
level.var_8DB6["tracking"][3] = "ac130_fco_gotarunner";
|
|
level.var_8DB6["tracking"][4] = "ac130_fco_personnelthere";
|
|
level.var_8DB6["tracking"][5] = "ac130_fco_rightthere";
|
|
level.var_8DB6["tracking"][6] = "ac130_fco_tracking";
|
|
level.var_8DB6["locked"][0] = "ac130_fco_lightemup";
|
|
level.var_8DB6["locked"][1] = "ac130_fco_takehimout";
|
|
level.var_8DB6["locked"][2] = "ac130_fco_nailthoseguys";
|
|
level.var_A99A = 0;
|
|
level.var_8DA6 = [];
|
|
var_02 = spawnstruct();
|
|
var_02.var_EC44 = "destroyed_helicopter";
|
|
var_02.var_3774 = "callout_destroyed_helicopter";
|
|
var_02.var_EB11 = 0.09;
|
|
var_02.var_65D0 = "tag_engine_left";
|
|
level.var_8DA6["helicopter"] = var_02;
|
|
var_02 = spawnstruct();
|
|
var_02.var_EC44 = "destroyed_little_bird";
|
|
var_02.var_3774 = "callout_destroyed_little_bird";
|
|
var_02.var_EB11 = 0.09;
|
|
var_02.var_65D0 = "tag_engine_left";
|
|
level.var_8DA6["airdrop"] = var_02;
|
|
var_02 = spawnstruct();
|
|
var_02.var_EC44 = "destroyed_dronedrop";
|
|
var_02.var_52DA = "dronedrop_destroyed";
|
|
var_02.var_3774 = "callout_destroyed_dronedrop";
|
|
level.var_8DA6["dronedrop"] = var_02;
|
|
var_02 = spawnstruct();
|
|
var_02.var_EC44 = "destroyed_pavelow";
|
|
var_02.var_3774 = "callout_destroyed_helicopter_flares";
|
|
var_02.var_EB11 = 0.07;
|
|
var_02.var_65D0 = "tag_engine_left";
|
|
level.var_8DA6["flares"] = var_02;
|
|
scripts\mp\_utility::func_DB8D("helicopter");
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_B2A8(param_00,param_01,param_02)
|
|
{
|
|
level.var_3F19["explode"]["death"][param_00] = loadfx(param_01);
|
|
level.var_ACB5[param_00] = param_02;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_179D(param_00,param_01)
|
|
{
|
|
level.var_3F19["explode"]["air_death"][param_00] = loadfx(param_01);
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_503F()
|
|
{
|
|
playfxontag(level.var_3F19["light"]["left"],self,"tag_light_L_wing");
|
|
wait(0.05);
|
|
playfxontag(level.var_3F19["light"]["right"],self,"tag_light_R_wing");
|
|
wait(0.05);
|
|
playfxontag(level.var_3F19["light"]["belly"],self,"tag_light_belly");
|
|
wait(0.05);
|
|
playfxontag(level.var_3F19["light"]["tail"],self,"tag_light_tail");
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_13090(param_00,param_01)
|
|
{
|
|
return func_128E6(param_00,"helicopter");
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_128E6(param_00,param_01)
|
|
{
|
|
var_02 = 1;
|
|
if(isdefined(level.var_3F14))
|
|
{
|
|
var_03 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_03 = 0;
|
|
}
|
|
|
|
if(isdefined(level.var_3F14) && var_03)
|
|
{
|
|
self iprintlnbold(&"KILLSTREAKS_HELI_IN_QUEUE");
|
|
if(isdefined(param_01) && param_01 != "helicopter")
|
|
{
|
|
var_04 = "helicopter_" + param_01;
|
|
}
|
|
else
|
|
{
|
|
var_04 = "helicopter";
|
|
}
|
|
|
|
var_05 = spawn("script_origin",(0,0,0));
|
|
var_05 hide();
|
|
var_05 thread func_51C2(self,"disconnect");
|
|
var_05.player = self;
|
|
var_05.var_AC68 = param_00;
|
|
var_05.var_8DD9 = param_01;
|
|
var_05.var_110EA = var_04;
|
|
scripts\mp\_utility::func_DB8B("helicopter",var_05);
|
|
var_06 = undefined;
|
|
if(!self hasweapon(scripts\common\utility::getlastweapon()))
|
|
{
|
|
var_06 = scripts\mp\killstreaks\_utility::func_7EB7();
|
|
}
|
|
else
|
|
{
|
|
var_06 = scripts\common\utility::getlastweapon();
|
|
}
|
|
|
|
var_07 = scripts\mp\_utility::func_7F55("helicopter");
|
|
return 0;
|
|
}
|
|
else if(scripts\mp\_utility::func_4BD7() >= scripts\mp\_utility::func_B4D2() || level.var_6BAA + var_06 >= scripts\mp\_utility::func_B4D2())
|
|
{
|
|
self iprintlnbold(&"KILLSTREAKS_TOO_MANY_VEHICLES");
|
|
return 0;
|
|
}
|
|
|
|
var_06 = 1;
|
|
func_10DA2(var_04,var_05);
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_51C2(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
param_00 waittill(param_01);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_10DA2(param_00,param_01)
|
|
{
|
|
scripts\mp\_utility::func_93FA();
|
|
var_02 = undefined;
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = "";
|
|
}
|
|
|
|
var_03 = "helicopter";
|
|
var_04 = self.pers["team"];
|
|
var_02 = level.var_8D96[randomint(level.var_8D96.size)];
|
|
scripts\mp\_matchdata::func_AFC9(var_03,self.origin);
|
|
thread func_8D9B(param_00,self,var_02,self.pers["team"],param_01);
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_D80F()
|
|
{
|
|
level.var_8D8A["allies"]["hit"] = "cobra_helicopter_hit";
|
|
level.var_8D8A["allies"]["hitsecondary"] = "cobra_helicopter_secondary_exp";
|
|
level.var_8D8A["allies"]["damaged"] = "cobra_helicopter_damaged";
|
|
level.var_8D8A["allies"]["spinloop"] = "cobra_helicopter_dying_loop";
|
|
level.var_8D8A["allies"]["spinstart"] = "cobra_helicopter_dying_layer";
|
|
level.var_8D8A["allies"]["crash"] = "exp_helicopter_fuel";
|
|
level.var_8D8A["allies"]["missilefire"] = "weap_cobra_missile_fire";
|
|
level.var_8D8A["axis"]["hit"] = "cobra_helicopter_hit";
|
|
level.var_8D8A["axis"]["hitsecondary"] = "cobra_helicopter_secondary_exp";
|
|
level.var_8D8A["axis"]["damaged"] = "cobra_helicopter_damaged";
|
|
level.var_8D8A["axis"]["spinloop"] = "cobra_helicopter_dying_loop";
|
|
level.var_8D8A["axis"]["spinstart"] = "cobra_helicopter_dying_layer";
|
|
level.var_8D8A["axis"]["crash"] = "exp_helicopter_fuel";
|
|
level.var_8D8A["axis"]["missilefire"] = "weap_cobra_missile_fire";
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_8D5C()
|
|
{
|
|
var_00 = self.team;
|
|
if(level.multiteambased)
|
|
{
|
|
var_00 = "axis";
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_1072E(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = spawnhelicopter(param_00,param_01,param_02,param_03,param_04);
|
|
if(!isdefined(var_05))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(param_04 == "vehicle_battle_hind")
|
|
{
|
|
var_05.var_8DA0 = "cobra";
|
|
}
|
|
else
|
|
{
|
|
var_05.var_8DA0 = level.var_8DA1[param_04];
|
|
}
|
|
|
|
var_05 thread [[ level.var_ACB5[var_05.var_8DA0] ]]();
|
|
var_05 func_184E();
|
|
var_05.var_13F0A = (0,0,var_05 gettagorigin("tag_origin")[2] - var_05 gettagorigin("tag_ground")[2]);
|
|
var_05.var_2550 = missile_createattractorent(var_05,level.var_8D2E,level.var_8D2D);
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_8DB6(param_00)
|
|
{
|
|
if(gettime() - level.var_A99A < 6000)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_A99A = gettime();
|
|
var_01 = randomint(level.var_8DB6[param_00].size);
|
|
var_02 = level.var_8DB6[param_00][var_01];
|
|
var_03 = scripts\mp\_teams::func_81BC(self.team) + var_02;
|
|
self playlocalsound(var_03);
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_12E60(param_00)
|
|
{
|
|
var_01 = [];
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_03.var_1314F = [];
|
|
var_03.var_C056 = 0;
|
|
}
|
|
|
|
foreach(var_06 in level.players)
|
|
{
|
|
if(!isalive(var_06))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_06.team == self.team)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
foreach(var_03 in param_00)
|
|
{
|
|
if(distancesquared(var_06.origin,var_03.origin) > 1048576)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03.var_1314F[var_03.var_1314F.size] = var_06;
|
|
}
|
|
}
|
|
|
|
var_0A = param_00[0];
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_0C = getent(var_03.target,"targetname");
|
|
foreach(var_06 in var_03.var_1314F)
|
|
{
|
|
var_03.var_C056 = var_03.var_C056 + 1;
|
|
if(bullettracepassed(var_06.origin + (0,0,32),var_0C.origin,0,var_06))
|
|
{
|
|
var_03.var_C056 = var_03.var_C056 + 3;
|
|
}
|
|
}
|
|
|
|
if(var_03.var_C056 > var_0A.var_C056)
|
|
{
|
|
var_0A = var_03;
|
|
}
|
|
}
|
|
|
|
return getent(var_0A.target,"targetname");
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_8D9B(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = param_02.origin;
|
|
var_06 = param_02.angles;
|
|
var_07 = "cobra_mp";
|
|
var_08 = "vehicle_battle_hind";
|
|
var_09 = func_1072E(param_01,var_05,var_06,var_07,var_08);
|
|
if(!isdefined(var_09))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_3F14 = var_09;
|
|
if(param_03 == "allies")
|
|
{
|
|
level.var_1C29 = var_09;
|
|
}
|
|
else
|
|
{
|
|
level.var_26F5 = var_09;
|
|
}
|
|
|
|
var_09.var_8DD9 = param_04;
|
|
var_09.var_AC68 = param_00;
|
|
var_09.team = param_03;
|
|
var_09.pers["team"] = param_03;
|
|
var_09.var_222 = param_01;
|
|
var_09 method_831F(param_01);
|
|
var_09.var_10DCD = param_02;
|
|
var_09.maxhealth = level.var_8D73;
|
|
var_09.var_11568 = level.var_8D9A;
|
|
var_09.var_D8DF = undefined;
|
|
var_09.var_F0C3 = undefined;
|
|
var_09.var_4F = undefined;
|
|
var_09.var_4C07 = "ok";
|
|
var_09 scripts\mp\sentientpoolmanager::registersentient("Killstreak_Air",param_01);
|
|
var_09.var_61A3 = 0;
|
|
if(param_04 == "flares" || param_04 == "minigun")
|
|
{
|
|
var_09 thread scripts\mp\killstreaks\_flares::func_6EAD(1);
|
|
}
|
|
|
|
var_09 thread func_8D69(param_01);
|
|
var_09 thread func_8D68(param_01);
|
|
var_09 thread func_8D6A(param_01);
|
|
var_09 thread func_8D40(param_04);
|
|
var_09 thread func_8DA5();
|
|
var_09 thread func_8DA4();
|
|
var_09 thread func_8D49();
|
|
var_09 endon("helicopter_done");
|
|
var_09 endon("crashing");
|
|
var_09 endon("leaving");
|
|
var_09 endon("death");
|
|
var_0A = getentarray("heli_attack_area","targetname");
|
|
var_0B = undefined;
|
|
var_0B = level.var_8D6F[randomint(level.var_8D6F.size)];
|
|
var_09 func_8D53(param_02);
|
|
var_09 thread func_8D99();
|
|
var_09 thread func_8D6D(60);
|
|
var_09 thread func_8D52(var_0B);
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_8D49()
|
|
{
|
|
var_00 = self getentitynumber();
|
|
scripts\common\utility::waittill_any_3("death","crashing","leaving");
|
|
func_E109(var_00);
|
|
self notify("helicopter_done");
|
|
self notify("helicopter_removed");
|
|
var_01 = undefined;
|
|
var_02 = scripts\mp\_utility::func_DB94("helicopter");
|
|
if(!isdefined(var_02))
|
|
{
|
|
level.var_3F14 = undefined;
|
|
return;
|
|
}
|
|
|
|
var_01 = var_02.player;
|
|
var_03 = var_02.var_AC68;
|
|
var_04 = var_02.var_110EA;
|
|
var_05 = var_02.var_8DD9;
|
|
var_02 delete();
|
|
if(isdefined(var_01) && var_01.sessionstate == "playing" || var_01.sessionstate == "dead")
|
|
{
|
|
var_01 func_10DA2(var_03,var_05);
|
|
return;
|
|
}
|
|
|
|
level.var_3F14 = undefined;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_8D99()
|
|
{
|
|
self notify("heli_targeting");
|
|
self endon("heli_targeting");
|
|
self endon("death");
|
|
self endon("helicopter_done");
|
|
for(;;)
|
|
{
|
|
var_00 = [];
|
|
self.var_D8DF = undefined;
|
|
self.var_F0C3 = undefined;
|
|
foreach(var_02 in level.var_3CB5)
|
|
{
|
|
wait(0.05);
|
|
if(!func_3922(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00[var_00.size] = var_02;
|
|
}
|
|
|
|
if(var_00.size)
|
|
{
|
|
for(var_04 = func_7E00(var_00);!isdefined(var_04);var_04 = func_7E00(var_00))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
self.var_D8DF = var_04;
|
|
self notify("primary acquired");
|
|
}
|
|
|
|
if(isdefined(self.var_D8DF))
|
|
{
|
|
func_6D7A(self.var_D8DF);
|
|
continue;
|
|
}
|
|
|
|
wait(0.25);
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_3922(param_00)
|
|
{
|
|
var_01 = 1;
|
|
if(!isalive(param_00) || isdefined(param_00.sessionstate) && param_00.sessionstate != "playing")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_8DD9 == "remote_mortar")
|
|
{
|
|
if(param_00 method_838A(self.origin,self) < 1)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if(distance(param_00.origin,self.origin) > level.var_8DA2)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!self.var_222 scripts\mp\_utility::func_9DD6(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_00.var_10916) && gettime() - param_00.var_10916 / 1000 <= 5)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_00 scripts\mp\_utility::_hasperk("specialty_blindeye"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_02 = self.origin + (0,0,-160);
|
|
var_03 = anglestoforward(self.angles);
|
|
var_04 = var_02 + 144 * var_03;
|
|
if(param_00 method_838A(var_04,self) < level.var_8D97)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_7E00(param_00)
|
|
{
|
|
foreach(var_02 in param_00)
|
|
{
|
|
if(!isdefined(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
func_12E10(var_02);
|
|
}
|
|
|
|
var_04 = 0;
|
|
var_05 = undefined;
|
|
var_06 = getentarray("minimap_corner","targetname");
|
|
foreach(var_02 in param_00)
|
|
{
|
|
if(!isdefined(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_06.size == 2)
|
|
{
|
|
var_08 = var_06[0].origin;
|
|
var_09 = var_06[0].origin;
|
|
if(var_06[1].origin[0] > var_09[0])
|
|
{
|
|
var_09 = (var_06[1].origin[0],var_09[1],var_09[2]);
|
|
}
|
|
else
|
|
{
|
|
var_08 = (var_06[1].origin[0],var_08[1],var_08[2]);
|
|
}
|
|
|
|
if(var_06[1].origin[1] > var_09[1])
|
|
{
|
|
var_09 = (var_09[0],var_06[1].origin[1],var_09[2]);
|
|
}
|
|
else
|
|
{
|
|
var_08 = (var_08[0],var_06[1].origin[1],var_08[2]);
|
|
}
|
|
|
|
if(var_02.origin[0] < var_08[0] || var_02.origin[0] > var_09[0] || var_02.origin[1] < var_08[1] || var_02.origin[1] > var_09[1])
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if(var_02.var_117E9 < var_04)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!bullettracepassed(var_02.origin + (0,0,32),self.origin,0,self))
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
var_04 = var_02.var_117E9;
|
|
var_05 = var_02;
|
|
}
|
|
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_12E10(param_00)
|
|
{
|
|
param_00.var_117E9 = 0;
|
|
var_01 = distance(param_00.origin,self.origin);
|
|
param_00.var_117E9 = param_00.var_117E9 + level.var_8DA2 - var_01 / level.var_8DA2 * 100;
|
|
if(isdefined(self.var_4F) && param_00 == self.var_4F)
|
|
{
|
|
param_00.var_117E9 = param_00.var_117E9 + 100;
|
|
}
|
|
|
|
if(isplayer(param_00))
|
|
{
|
|
param_00.var_117E9 = param_00.var_117E9 + param_00.var_278 * 4;
|
|
}
|
|
|
|
if(isdefined(param_00.var_202C))
|
|
{
|
|
param_00.var_117E9 = param_00.var_117E9 - param_00.var_202C;
|
|
}
|
|
|
|
if(param_00.var_117E9 <= 0)
|
|
{
|
|
param_00.var_117E9 = 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_8D82()
|
|
{
|
|
self method_807F();
|
|
self method_8075();
|
|
self method_83E5(80,35);
|
|
self method_8378(75,45,45);
|
|
self method_830A(30,30);
|
|
self method_8316(256);
|
|
self method_8354(0.9);
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_181D(param_00)
|
|
{
|
|
self endon("death");
|
|
self.var_DDBF = self.var_DDBF + param_00;
|
|
wait(4);
|
|
self.var_DDBF = self.var_DDBF - param_00;
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_B938(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
if((isdefined(self.var_222) && param_00 == self.var_222 && self.var_110EA == "heli_sniper") || isdefined(param_00.var_4004) && param_00.var_4004 == "worldspawn" || param_00 == self)
|
|
{
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
var_05 = param_03;
|
|
var_06 = 2;
|
|
var_07 = 3;
|
|
var_08 = 4;
|
|
if(isdefined(self.var_8DD9) && self.var_8DD9 == "dronedrop")
|
|
{
|
|
var_06 = 1;
|
|
var_07 = 1;
|
|
var_08 = 2;
|
|
}
|
|
|
|
var_05 = scripts\mp\killstreaks\_utility::func_7FBD(param_00,param_01,param_02,var_05,self.maxhealth,var_06,var_07,var_08);
|
|
thread func_181D(var_05);
|
|
self notify("heli_damage_fx");
|
|
if(lib_0DF8::func_9DDF(param_00))
|
|
{
|
|
var_05 = 0;
|
|
}
|
|
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_898F(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
var_04 = level.var_8DA6[self.var_110EA];
|
|
var_05 = "";
|
|
if(isdefined(self.var_110E8))
|
|
{
|
|
var_05 = scripts\mp\_killstreak_loot::getrarityforlootitem(self.var_110E8.var_1318B);
|
|
}
|
|
|
|
var_06 = var_04.var_3774;
|
|
if(var_05 != "")
|
|
{
|
|
var_06 = var_06 + "_" + var_05;
|
|
}
|
|
|
|
var_07 = scripts\mp\_damage::func_C548(self.var_110EA,param_00,param_01,param_02,param_03,var_04.var_EC44,var_04.var_52DA,var_06);
|
|
if(var_07)
|
|
{
|
|
param_00 notify("destroyed_helicopter");
|
|
self.var_A667 = param_00;
|
|
}
|
|
|
|
if(param_01 == "heli_pilot_turret_mp")
|
|
{
|
|
param_00 scripts\mp\_missions::func_D992("ch_enemy_down");
|
|
}
|
|
|
|
scripts\mp\_missions::func_3DE3(param_00,self,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_8D40(param_00,param_01,param_02)
|
|
{
|
|
self endon("crashing");
|
|
self endon("leaving");
|
|
self.var_110EA = param_00;
|
|
self.var_DDBF = 0;
|
|
if(!scripts\mp\_utility::func_9FB3(param_02))
|
|
{
|
|
thread func_8D61();
|
|
}
|
|
|
|
scripts\mp\_damage::func_B9C6(self.maxhealth,"helicopter",::func_898F,::func_B938,1,param_01);
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_8DA5()
|
|
{
|
|
self endon("death");
|
|
self endon("leaving");
|
|
self endon("crashing");
|
|
self.var_222 endon("disconnect");
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
self waittill("emp_damage",var_00,var_01);
|
|
self.var_61A3 = 1;
|
|
if(isdefined(self.var_B6C0))
|
|
{
|
|
self.var_B6C0 notify("stop_shooting");
|
|
}
|
|
|
|
if(isdefined(self.var_B6C1))
|
|
{
|
|
self.var_B6C1 notify("stop_shooting");
|
|
}
|
|
|
|
wait(var_01);
|
|
self.var_61A3 = 0;
|
|
if(isdefined(self.var_B6C0))
|
|
{
|
|
self.var_B6C0 notify("turretstatechange");
|
|
}
|
|
|
|
if(isdefined(self.var_B6C1))
|
|
{
|
|
self.var_B6C1 notify("turretstatechange");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_8D61()
|
|
{
|
|
self endon("leaving");
|
|
self endon("crashing");
|
|
self.var_4C07 = "ok";
|
|
self.var_AA1B = "ok";
|
|
self method_82CE(3);
|
|
var_00 = 3;
|
|
self method_82CE(var_00);
|
|
var_01 = level.var_8DA6[self.var_110EA];
|
|
for(;;)
|
|
{
|
|
self waittill("heli_damage_fx");
|
|
if(var_00 > 0 && self.var_E1 >= self.maxhealth)
|
|
{
|
|
var_00 = 0;
|
|
self method_82CE(var_00);
|
|
stopfxontag(level.var_3F19["damage"]["heavy_smoke"],self,var_01.var_65D0);
|
|
self notify("death");
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
if(var_00 > 1 && self.var_E1 >= self.maxhealth * 0.66)
|
|
{
|
|
var_00 = 1;
|
|
self method_82CE(var_00);
|
|
self.var_4C07 = "heavy smoke";
|
|
stopfxontag(level.var_3F19["damage"]["light_smoke"],self,var_01.var_65D0);
|
|
playfxontag(level.var_3F19["damage"]["heavy_smoke"],self,var_01.var_65D0);
|
|
continue;
|
|
}
|
|
|
|
if(var_00 > 2 && self.var_E1 >= self.maxhealth * 0.33)
|
|
{
|
|
var_00 = 2;
|
|
self method_82CE(var_00);
|
|
self.var_4C07 = "light smoke";
|
|
playfxontag(level.var_3F19["damage"]["light_smoke"],self,var_01.var_65D0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_8DA4()
|
|
{
|
|
level endon("game_ended");
|
|
self endon("gone");
|
|
self waittill("death");
|
|
if(isdefined(self.var_A859) && self.var_A859)
|
|
{
|
|
thread func_8D4C(1);
|
|
return;
|
|
}
|
|
|
|
var_00 = level.var_8DA6[self.var_110EA];
|
|
playfxontag(level.var_3F19["damage"]["on_fire"],self,var_00.var_65D0);
|
|
thread func_8D33();
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_8D33()
|
|
{
|
|
self notify("crashing");
|
|
self method_8076();
|
|
var_00 = level.var_8D3E[randomint(level.var_8D3E.size)];
|
|
if(isdefined(self.var_B6C0))
|
|
{
|
|
self.var_B6C0 notify("stop_shooting");
|
|
}
|
|
|
|
if(isdefined(self.var_B6C1))
|
|
{
|
|
self.var_B6C1 notify("stop_shooting");
|
|
}
|
|
|
|
thread func_8D8B(180);
|
|
thread func_8D83();
|
|
func_8D53(var_00);
|
|
thread func_8D4C();
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_8D83()
|
|
{
|
|
var_00 = func_8D5C();
|
|
var_01 = level.var_8DA6[self.var_110EA];
|
|
playfxontag(level.var_3F19["explode"]["large"],self,var_01.var_65D0);
|
|
self playsound(level.var_8D8A[var_00]["hitsecondary"]);
|
|
wait(3);
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
playfxontag(level.var_3F19["explode"]["large"],self,var_01.var_65D0);
|
|
self playsound(level.var_8D8A[var_00]["hitsecondary"]);
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_8D8B(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = func_8D5C();
|
|
self playsound(level.var_8D8A[var_01]["hit"]);
|
|
thread func_10A11();
|
|
self method_8378(param_00,param_00,param_00);
|
|
while(isdefined(self))
|
|
{
|
|
self method_8348(self.angles[1] + param_00 * 0.9);
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_10A11()
|
|
{
|
|
self endon("death");
|
|
wait(0.25);
|
|
var_00 = func_8D5C();
|
|
self stoploopsound();
|
|
wait(0.05);
|
|
self playloopsound(level.var_8D8A[var_00]["spinloop"]);
|
|
wait(0.05);
|
|
self playloopsound(level.var_8D8A[var_00]["spinstart"]);
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_8D4C(param_00)
|
|
{
|
|
self notify("death");
|
|
if(isdefined(param_00) && isdefined(level.var_3F19["explode"]["air_death"][self.var_8DA0]))
|
|
{
|
|
var_01 = self gettagangles("tag_deathfx");
|
|
playfx(level.var_3F19["explode"]["air_death"][self.var_8DA0],self gettagorigin("tag_deathfx"),anglestoforward(var_01),anglestoup(var_01));
|
|
}
|
|
else
|
|
{
|
|
var_02 = self.origin;
|
|
var_03 = self.origin + (0,0,1) - self.origin;
|
|
playfx(level.var_3F19["explode"]["death"][self.var_8DA0],var_02,var_03);
|
|
}
|
|
|
|
var_04 = func_8D5C();
|
|
self playsound(level.var_8D8A[var_04]["crash"]);
|
|
wait(0.05);
|
|
if(isdefined(self.var_A63A))
|
|
{
|
|
self.var_A63A delete();
|
|
}
|
|
|
|
scripts\mp\_utility::func_4FC1();
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_3DBF()
|
|
{
|
|
if(!isdefined(self.var_222) || !isdefined(self.var_222.pers["team"]) || self.var_222.pers["team"] != self.team)
|
|
{
|
|
thread func_8D66();
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_8D69(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("helicopter_done");
|
|
param_00 waittill("disconnect");
|
|
thread func_8D66();
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_8D68(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("helicopter_done");
|
|
if(scripts\mp\_utility::func_2DD9())
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_00 scripts\common\utility::waittill_any_3("joined_team","joined_spectators");
|
|
thread func_8D66();
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_8D6C(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("helicopter_done");
|
|
param_00 waittill("spawned");
|
|
thread func_8D66();
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_8D6A(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("helicopter_done");
|
|
level waittill("game_ended");
|
|
thread func_8D66();
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_8D6D(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("helicopter_done");
|
|
scripts\mp\_hostmigration::func_13708(param_00);
|
|
thread func_8D66();
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_6D7A(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("crashing");
|
|
self endon("leaving");
|
|
var_01 = 15;
|
|
var_02 = 0;
|
|
var_03 = 0;
|
|
foreach(var_05 in level.var_8D6F)
|
|
{
|
|
var_02++;
|
|
var_03 = var_03 + var_05.origin[2];
|
|
}
|
|
|
|
var_07 = var_03 / var_02;
|
|
self notify("newTarget");
|
|
if(isdefined(self.var_F0C3) && self.var_F0C3.var_E1 < self.var_F0C3.maxhealth)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.var_9EDC) && self.var_9EDC)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_08 = self.var_D8DF;
|
|
var_08.var_202C = 0;
|
|
var_09 = self.var_D8DF.origin * (1,1,0);
|
|
var_0A = self.origin * (0,0,1);
|
|
var_0B = var_09 + var_0A;
|
|
var_0C = distance2d(self.origin,var_08.origin);
|
|
if(var_0C < 1000)
|
|
{
|
|
var_01 = 600;
|
|
}
|
|
|
|
var_0D = anglestoforward(var_08.angles);
|
|
var_0D = var_0D * (1,1,0);
|
|
var_0E = var_0B + var_01 * var_0D;
|
|
var_0F = var_0E - var_0B;
|
|
var_10 = vectortoangles(var_0F);
|
|
var_10 = var_10 * (1,1,0);
|
|
thread func_2513(var_08);
|
|
self method_83E5(80);
|
|
if(distance2d(self.origin,var_0E) < 1000)
|
|
{
|
|
var_0E = var_0E * 1.5;
|
|
}
|
|
|
|
var_0E = var_0E * (1,1,0);
|
|
var_0E = var_0E + (0,0,var_07);
|
|
func_13E0(var_0E,1,1);
|
|
self waittill("near_goal");
|
|
if(!isdefined(var_08) || !isalive(var_08))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self method_8305(var_08);
|
|
thread func_9DEC(10,var_08);
|
|
scripts\common\utility::waittill_any_timeout_1(4,"facing");
|
|
if(!isdefined(var_08) || !isalive(var_08))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self method_8076();
|
|
var_11 = var_0B + var_01 * anglestoforward(var_10);
|
|
self method_830A(40,30);
|
|
func_13E0(var_11,1,1);
|
|
self method_830A(30,30);
|
|
if(isdefined(var_08) && isalive(var_08))
|
|
{
|
|
if(isdefined(var_08.var_202C))
|
|
{
|
|
var_08.var_202C = var_08.var_202C + 100;
|
|
}
|
|
else
|
|
{
|
|
var_08.var_202C = 100;
|
|
}
|
|
}
|
|
|
|
scripts\common\utility::waittill_any_timeout_1(3,"near_goal");
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_2513(param_00)
|
|
{
|
|
self notify("attackGroundTarget");
|
|
self endon("attackGroundTarget");
|
|
self stoploopsound();
|
|
self.var_9D5A = 1;
|
|
self method_835C(param_00);
|
|
func_1370A(param_00,3);
|
|
if(!isalive(param_00))
|
|
{
|
|
self.var_9D5A = 0;
|
|
return;
|
|
}
|
|
|
|
var_01 = distance2dsquared(self.origin,param_00.origin);
|
|
if(var_01 < 640000)
|
|
{
|
|
thread func_5D24(param_00);
|
|
self.var_9D5A = 0;
|
|
return;
|
|
}
|
|
|
|
if(func_3E21(50,param_00) && scripts\common\utility::func_4347())
|
|
{
|
|
thread func_6D75(param_00);
|
|
self.var_9D5A = 0;
|
|
return;
|
|
}
|
|
|
|
var_02 = function_0240("cobra_20mm_mp");
|
|
var_03 = 0;
|
|
var_04 = 0;
|
|
for(var_05 = 0;var_05 < level.var_8D9E;var_05++)
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(self.var_61A3)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(!isdefined(param_00))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(!isalive(param_00))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(self.var_E1 >= self.maxhealth)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!func_3E21(55,param_00))
|
|
{
|
|
self stoploopsound();
|
|
var_04 = 0;
|
|
wait(var_02);
|
|
var_05--;
|
|
continue;
|
|
}
|
|
|
|
if(var_05 < level.var_8D9E - 1)
|
|
{
|
|
wait(var_02);
|
|
}
|
|
|
|
if(!isdefined(param_00) || !isalive(param_00))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(!var_04)
|
|
{
|
|
self playloopsound("weap_hind_20mm_fire_npc");
|
|
var_04 = 1;
|
|
}
|
|
|
|
self method_8365("cobra_20mm_mp");
|
|
self method_80EB("tag_flash",param_00);
|
|
}
|
|
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self stoploopsound();
|
|
var_04 = 0;
|
|
self.var_9D5A = 0;
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_3E21(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("leaving");
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 10;
|
|
}
|
|
|
|
var_02 = anglestoforward(self.angles);
|
|
var_03 = param_01.origin - self.origin;
|
|
var_02 = var_02 * (1,1,0);
|
|
var_03 = var_03 * (1,1,0);
|
|
var_03 = vectornormalize(var_03);
|
|
var_02 = vectornormalize(var_02);
|
|
var_04 = vectordot(var_03,var_02);
|
|
var_05 = cos(param_00);
|
|
if(var_04 >= var_05)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_9DEC(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("leaving");
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 10;
|
|
}
|
|
|
|
while(isalive(param_01))
|
|
{
|
|
var_02 = anglestoforward(self.angles);
|
|
var_03 = param_01.origin - self.origin;
|
|
var_02 = var_02 * (1,1,0);
|
|
var_03 = var_03 * (1,1,0);
|
|
var_03 = vectornormalize(var_03);
|
|
var_02 = vectornormalize(var_02);
|
|
var_04 = vectordot(var_03,var_02);
|
|
var_05 = cos(param_00);
|
|
if(var_04 >= var_05)
|
|
{
|
|
self notify("facing");
|
|
break;
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_1370A(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("helicopter_done");
|
|
param_00 endon("death");
|
|
param_00 endon("disconnect");
|
|
scripts\common\utility::waittill_notify_or_timeout("turret_on_target",param_01);
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_6D75(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("crashing");
|
|
self endon("leaving");
|
|
if(level.var_DADB)
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_01 = 2;
|
|
}
|
|
|
|
for(var_02 = 0;var_02 < var_01;var_02++)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\common\utility::func_4347())
|
|
{
|
|
var_03 = scripts\mp\_utility::func_1309("hind_missile_mp",self gettagorigin("tag_missile_right") - (0,0,64),param_00.origin,self.var_222);
|
|
var_03.var_131D8 = self;
|
|
}
|
|
else
|
|
{
|
|
var_03 = scripts\mp\_utility::func_1309("hind_missile_mp",self gettagorigin("tag_missile_left") - (0,0,64),param_00.origin,self.var_222);
|
|
var_03.var_131D8 = self;
|
|
}
|
|
|
|
var_03 missile_settargetent(param_00);
|
|
var_03.var_222 = self;
|
|
var_03 missile_setflightmodedirect();
|
|
wait(0.5 / var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_5D24(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("crashing");
|
|
self endon("leaving");
|
|
if(!isdefined(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(var_01 = 0;var_01 < randomintrange(2,5);var_01++)
|
|
{
|
|
if(scripts\common\utility::func_4347())
|
|
{
|
|
var_02 = scripts\mp\_utility::func_1309("hind_bomb_mp",self gettagorigin("tag_missile_left") - (0,0,45),param_00.origin,self.var_222);
|
|
var_02.var_131D8 = self;
|
|
}
|
|
else
|
|
{
|
|
var_02 = scripts\mp\_utility::func_1309("hind_bomb_mp",self gettagorigin("tag_missile_right") - (0,0,45),param_00.origin,self.var_222);
|
|
var_02.var_131D8 = self;
|
|
}
|
|
|
|
wait(randomfloatrange(0.35,0.65));
|
|
}
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_8025(param_00)
|
|
{
|
|
var_01 = self.origin;
|
|
var_02 = param_00.origin;
|
|
var_03 = 0;
|
|
var_04 = 40;
|
|
var_05 = (0,0,-196);
|
|
for(var_06 = bullettrace(var_01 + var_05,var_02 + var_05,0,self);distancesquared(var_06["position"],var_02 + var_05) > 10 && var_03 < var_04;var_06 = bullettrace(var_01 + var_05,var_02 + var_05,0,self))
|
|
{
|
|
if(var_01[2] < var_02[2])
|
|
{
|
|
var_01 = var_01 + (0,0,128);
|
|
}
|
|
else if(var_01[2] > var_02[2])
|
|
{
|
|
var_02 = var_02 + (0,0,128);
|
|
}
|
|
else
|
|
{
|
|
var_01 = var_01 + (0,0,128);
|
|
var_02 = var_02 + (0,0,128);
|
|
}
|
|
|
|
var_03++;
|
|
}
|
|
|
|
var_07 = [];
|
|
var_07["start"] = var_01;
|
|
var_07["end"] = var_02;
|
|
return var_07;
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_126C2(param_00)
|
|
{
|
|
var_01 = func_8025(param_00);
|
|
if(var_01["start"] != self.origin)
|
|
{
|
|
self method_83E5(75,35);
|
|
func_13E0(var_01["start"] + (0,0,30),0);
|
|
self method_82F2(param_00.angles[1] + level.var_8D2B);
|
|
self waittill("goal");
|
|
}
|
|
|
|
if(var_01["end"] != param_00.origin)
|
|
{
|
|
if(isdefined(param_00.var_ECEA) && isdefined(param_00.var_ECE2))
|
|
{
|
|
var_02 = param_00.var_ECEA;
|
|
var_03 = param_00.var_ECE2;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 30 + randomint(20);
|
|
var_03 = 15 + randomint(15);
|
|
}
|
|
|
|
self method_83E5(75,35);
|
|
func_13E0(var_01["end"] + (0,0,30),0);
|
|
self method_82F2(param_00.angles[1] + level.var_8D2B);
|
|
self waittill("goal");
|
|
}
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_13E0(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 0;
|
|
}
|
|
|
|
param_02 = 0;
|
|
if(param_02)
|
|
{
|
|
thread func_13E2(param_00,param_01);
|
|
return;
|
|
}
|
|
|
|
self method_8362(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_13E2(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("leaving");
|
|
self endon("crashing");
|
|
var_02 = param_00;
|
|
for(;;)
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\common\utility::func_56F4(self.origin,var_02) < 65536)
|
|
{
|
|
self method_8362(var_02,param_01);
|
|
break;
|
|
}
|
|
|
|
var_03 = vectortoangles(var_02 - self.origin);
|
|
var_04 = anglestoforward(var_03);
|
|
var_05 = self.origin + var_04 * (1,1,0) * 250;
|
|
var_06 = (0,0,2500);
|
|
var_07 = var_05 + scripts\mp\_utility::func_7EF9() + var_06;
|
|
var_08 = var_05 + scripts\mp\_utility::func_7EF9() - var_06;
|
|
var_09 = bullettrace(var_07,var_08,0,self,0,0,1);
|
|
var_0A = var_09;
|
|
if(isdefined(var_09["entity"]) && var_09["entity"] == self && var_09["normal"][2] > 0.1)
|
|
{
|
|
var_0B = var_09["position"][2] - 4400;
|
|
var_0C = var_0B - self.origin[2];
|
|
if(var_0C > 256)
|
|
{
|
|
var_09["position"] = var_09["position"] * (1,1,0);
|
|
var_09["position"] = var_09["position"] + (0,0,self.origin[2] + 256);
|
|
}
|
|
else if(var_0C < -256)
|
|
{
|
|
var_09["position"] = var_09["position"] * (1,1,0);
|
|
var_09["position"] = var_09["position"] + (0,0,self.origin[2] - 256);
|
|
}
|
|
|
|
var_0A = var_09["position"] - scripts\mp\_utility::func_7EF9() + (0,0,600);
|
|
}
|
|
else
|
|
{
|
|
var_0A = var_02;
|
|
}
|
|
|
|
self method_8362(var_0A,0);
|
|
wait(0.15);
|
|
}
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_8D53(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("leaving");
|
|
self notify("flying");
|
|
self endon("flying");
|
|
func_8D82();
|
|
for(var_01 = param_00;isdefined(var_01.target);var_01 = var_02)
|
|
{
|
|
var_02 = getent(var_01.target,"targetname");
|
|
if(isdefined(var_01.var_ECEA) && isdefined(var_01.var_ECE2))
|
|
{
|
|
var_03 = var_01.var_ECEA;
|
|
var_04 = var_01.var_ECE2;
|
|
}
|
|
else
|
|
{
|
|
var_03 = 30 + randomint(20);
|
|
var_04 = 15 + randomint(15);
|
|
}
|
|
|
|
if(isdefined(self.var_9D5A) && self.var_9D5A)
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.var_9EDC) && self.var_9EDC)
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
self method_83E5(75,35);
|
|
if(!isdefined(var_02.target))
|
|
{
|
|
func_13E0(var_02.origin + self.var_13F0A,1);
|
|
self waittill("near_goal");
|
|
continue;
|
|
}
|
|
|
|
func_13E0(var_02.origin + self.var_13F0A,0);
|
|
self waittill("near_goal");
|
|
self method_82F2(var_02.angles[1]);
|
|
self waittillmatch("goal");
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_8D52(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("crashing");
|
|
self endon("leaving");
|
|
self notify("flying");
|
|
self endon("flying");
|
|
func_8D82();
|
|
thread func_8D71(param_00);
|
|
for(var_01 = param_00;isdefined(var_01.target);var_01 = var_02)
|
|
{
|
|
var_02 = getent(var_01.target,"targetname");
|
|
if(isdefined(self.var_9EDC) && self.var_9EDC)
|
|
{
|
|
wait(0.25);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.var_9D5A) && self.var_9D5A)
|
|
{
|
|
wait(0.1);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_01.var_ECEA) && isdefined(var_01.var_ECE2))
|
|
{
|
|
self.var_5275 = var_01.var_ECEA;
|
|
self.var_526F = var_01.var_ECE2;
|
|
}
|
|
else
|
|
{
|
|
self.var_5275 = 30 + randomint(20);
|
|
self.var_526F = 15 + randomint(15);
|
|
}
|
|
|
|
if(self.var_8DD9 == "flares")
|
|
{
|
|
self.var_5275 = self.var_5275 * 0.5;
|
|
self.var_526F = self.var_526F * 0.5;
|
|
}
|
|
|
|
if(isdefined(var_02.script_delay) && isdefined(self.var_D8DF) && !func_8D64())
|
|
{
|
|
func_13E0(var_02.origin + self.var_13F0A,1,1);
|
|
self waittill("near_goal");
|
|
wait(var_02.script_delay);
|
|
continue;
|
|
}
|
|
|
|
func_13E0(var_02.origin + self.var_13F0A,0,1);
|
|
self waittill("near_goal");
|
|
self method_82F2(var_02.angles[1]);
|
|
self waittillmatch("goal");
|
|
}
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_8D71(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("crashing");
|
|
self endon("leaving");
|
|
if(isdefined(param_00.var_ECEA) && isdefined(param_00.var_ECE2))
|
|
{
|
|
self.var_5275 = param_00.var_ECEA;
|
|
self.var_526F = param_00.var_ECE2;
|
|
}
|
|
else
|
|
{
|
|
self.var_5275 = 30 + randomint(20);
|
|
self.var_526F = 15 + randomint(15);
|
|
}
|
|
|
|
var_01 = 0;
|
|
var_02 = 0;
|
|
for(;;)
|
|
{
|
|
var_03 = self.var_5275;
|
|
var_04 = self.var_526F;
|
|
if(isdefined(self.var_9D5A) && self.var_9D5A)
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
if(self.var_8DD9 != "flares" && isdefined(self.var_D8DF) && !func_8D64())
|
|
{
|
|
var_03 = var_03 * 0.25;
|
|
}
|
|
|
|
if(var_01 != var_03 || var_02 != var_04)
|
|
{
|
|
self method_83E5(75,35);
|
|
var_01 = var_03;
|
|
var_02 = var_04;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_8D64()
|
|
{
|
|
if(self.var_DDBF > 50)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(self.var_4C07 == "heavy smoke")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_8D55(param_00)
|
|
{
|
|
self notify("flying");
|
|
self endon("flying");
|
|
self endon("death");
|
|
self endon("crashing");
|
|
self endon("leaving");
|
|
for(;;)
|
|
{
|
|
if(isdefined(self.var_9D5A) && self.var_9D5A)
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
var_01 = func_785E(param_00);
|
|
func_126C2(var_01);
|
|
if(isdefined(var_01.var_ECEA) && isdefined(var_01.var_ECE2))
|
|
{
|
|
var_02 = var_01.var_ECEA;
|
|
var_03 = var_01.var_ECE2;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 30 + randomint(20);
|
|
var_03 = 15 + randomint(15);
|
|
}
|
|
|
|
self method_83E5(75,35);
|
|
func_13E0(var_01.origin + self.var_13F0A,1);
|
|
self method_82F2(var_01.angles[1] + level.var_8D2B);
|
|
if(level.var_8D56 != 0)
|
|
{
|
|
self waittill("near_goal");
|
|
wait(level.var_8D56);
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_01.script_delay))
|
|
{
|
|
self waittill("near_goal");
|
|
wait(5 + randomint(5));
|
|
continue;
|
|
}
|
|
|
|
self waittillmatch("goal");
|
|
wait(var_01.script_delay);
|
|
}
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_785E(param_00)
|
|
{
|
|
return func_12E60(param_00);
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_8D66(param_00)
|
|
{
|
|
self notify("leaving");
|
|
self method_8076();
|
|
if(isdefined(self.var_8DD9) && self.var_8DD9 == "osprey" && isdefined(self.var_C96C))
|
|
{
|
|
func_13E0(self.var_C96C,1);
|
|
scripts\common\utility::waittill_any_timeout_1(5,"goal");
|
|
}
|
|
|
|
if(!isdefined(param_00))
|
|
{
|
|
var_01 = level.var_8D67[randomint(level.var_8D67.size)];
|
|
param_00 = var_01.origin;
|
|
}
|
|
|
|
var_02 = spawn("script_origin",param_00);
|
|
if(isdefined(var_02))
|
|
{
|
|
self method_8305(var_02);
|
|
var_02 thread func_13589(3);
|
|
}
|
|
|
|
var_03 = param_00 - self.origin * 2000;
|
|
func_8D82();
|
|
self method_83E5(180,45);
|
|
func_13E0(var_03,1);
|
|
scripts\common\utility::waittill_any_timeout_1(12,"goal");
|
|
self notify("gone");
|
|
self notify("death");
|
|
wait(0.05);
|
|
if(isdefined(self.var_A63A))
|
|
{
|
|
self.var_A63A delete();
|
|
}
|
|
|
|
scripts\mp\_utility::func_4FC1();
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_13589(param_00)
|
|
{
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_4F09(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(isdefined(level.var_8D43) && level.var_8D43 == 1)
|
|
{
|
|
thread func_5B64(param_00,param_01,param_02,param_03,param_04);
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_4F0A(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(level.var_8D43) && level.var_8D43 == 1)
|
|
{
|
|
if(isdefined(param_03))
|
|
{
|
|
thread func_5B64(param_00,(0.8,0.8,0.8),param_01,param_02,param_03);
|
|
return;
|
|
}
|
|
|
|
thread func_5B64(param_00,(0.8,0.8,0.8),param_01,param_02,0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_4EEE(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(level.var_8D43) && level.var_8D43 == 1 && !isdefined(param_03))
|
|
{
|
|
thread func_5B4A(param_00,param_01,param_02);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level.var_8D43) && level.var_8D43 == 1)
|
|
{
|
|
thread func_5B4A(param_00,param_01,param_02,param_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_5B64(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(param_04 == 0)
|
|
{
|
|
while(isdefined(param_02))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
for(var_05 = 0;var_05 < param_04;var_05++)
|
|
{
|
|
if(!isdefined(param_02))
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_5B4A(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_03))
|
|
{
|
|
for(var_04 = 0;var_04 < param_03;var_04++)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_184E()
|
|
{
|
|
level.var_8DD3[self getentitynumber()] = self;
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_E109(param_00)
|
|
{
|
|
level.var_8DD3[param_00] = undefined;
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_1852(param_00)
|
|
{
|
|
if(isdefined(param_00) && param_00 == "lbSniper")
|
|
{
|
|
level.var_AAC8 = self;
|
|
}
|
|
|
|
level.var_AD8B[self getentitynumber()] = self;
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_E111(param_00)
|
|
{
|
|
var_01 = self getentitynumber();
|
|
self waittill("death");
|
|
if(isdefined(param_00) && param_00 == "lbSniper")
|
|
{
|
|
level.var_AAC8 = undefined;
|
|
}
|
|
|
|
level.var_AD8B[var_01] = undefined;
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_68C3(param_00)
|
|
{
|
|
if(level.var_AD8B.size >= 4 || level.var_AD8B.size >= 2 && param_00 == "littlebird_flock")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_C9D8()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self playlocalsound(game["voice"][self.team] + "KS_hqr_pavelow");
|
|
wait(3.5);
|
|
self playlocalsound(game["voice"][self.team] + "KS_pvl_inbound");
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_AAC7()
|
|
{
|
|
self endon("gone");
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self notify("crashing");
|
|
if(isdefined(self.var_A859) && self.var_A859)
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
else
|
|
{
|
|
self method_83E5(25,5);
|
|
thread func_AAC9(randomintrange(180,220));
|
|
wait(randomfloatrange(1,2));
|
|
}
|
|
|
|
func_AAC6();
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_AAC9(param_00)
|
|
{
|
|
self endon("explode");
|
|
playfxontag(level.var_3F19["explode"]["medium"],self,"tail_rotor_jnt");
|
|
thread func_11B0F(level.var_3F19["smoke"]["trail"],"tail_rotor_jnt","stop tail smoke");
|
|
self method_8378(param_00,param_00,param_00);
|
|
while(isdefined(self))
|
|
{
|
|
self method_8348(self.angles[1] + param_00 * 0.9);
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_AAC6()
|
|
{
|
|
var_00 = self.origin + (0,0,1) - self.origin;
|
|
var_01 = self gettagangles("tag_deathfx");
|
|
playfx(level.var_3F19["explode"]["air_death"]["littlebird"],self gettagorigin("tag_deathfx"),anglestoforward(var_01),anglestoup(var_01));
|
|
self playsound("exp_helicopter_fuel");
|
|
self notify("explode");
|
|
func_E139();
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_11B0F(param_00,param_01,param_02)
|
|
{
|
|
self notify(param_02);
|
|
self endon(param_02);
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
playfxontag(param_00,self,param_01);
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_E139()
|
|
{
|
|
if(isdefined(self.var_B6C0))
|
|
{
|
|
if(isdefined(self.var_B6C0.var_A63A))
|
|
{
|
|
self.var_B6C0.var_A63A delete();
|
|
}
|
|
|
|
self.var_B6C0 delete();
|
|
}
|
|
|
|
if(isdefined(self.var_B6C1))
|
|
{
|
|
if(isdefined(self.var_B6C1.var_A63A))
|
|
{
|
|
self.var_B6C1.var_A63A delete();
|
|
}
|
|
|
|
self.var_B6C1 delete();
|
|
}
|
|
|
|
if(isdefined(self.var_B377))
|
|
{
|
|
self.var_B377 delete();
|
|
}
|
|
|
|
if(isdefined(level.var_8D79[self.team]) && level.var_8D79[self.team] == self)
|
|
{
|
|
level.var_8D79[self.team] = undefined;
|
|
}
|
|
|
|
scripts\mp\_utility::func_4FC1();
|
|
self delete();
|
|
} |