mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-01 11:57:51 -05:00
2134 lines
37 KiB
Plaintext
2134 lines
37 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\mp\killstreaks\_tank.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 78
|
|
* Decompile Time: 3709 ms
|
|
* Timestamp: 10/27/2023 12:29:45 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init()
|
|
{
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_1082D(param_00,param_01,param_02)
|
|
{
|
|
var_03 = self method_83DA("tank",param_00);
|
|
var_03.health = 3000;
|
|
var_03.var_11568 = 1;
|
|
var_03.team = param_00.team;
|
|
var_03.pers["team"] = var_03.team;
|
|
var_03.var_222 = param_00;
|
|
var_03 setcandamage(1);
|
|
var_03.var_10B68 = 12;
|
|
var_03 thread func_51CB();
|
|
var_03 func_185E();
|
|
var_03.var_4D2E = ::func_3758;
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_51CB()
|
|
{
|
|
self endon("death");
|
|
var_00 = self.origin[2];
|
|
for(;;)
|
|
{
|
|
if(var_00 - self.origin[2] > 2048)
|
|
{
|
|
self.health = 0;
|
|
self notify("death");
|
|
return;
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_130E4(param_00)
|
|
{
|
|
return func_12907();
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_12907()
|
|
{
|
|
if(isdefined(level.var_114E2) && level.var_114E2)
|
|
{
|
|
self iprintlnbold("Armor support unavailable.");
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(getvehiclenode("startnode","targetname")))
|
|
{
|
|
self iprintlnbold("Tank is currently not supported in this level, bug your friendly neighborhood LD.");
|
|
return 0;
|
|
}
|
|
|
|
if(!vehicle_getspawnerarray().size)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.team == "allies")
|
|
{
|
|
var_00 = level.var_114E5["allies"] func_1082D(self,"vehicle_bradley");
|
|
}
|
|
else
|
|
{
|
|
var_00 = level.var_114E5["axis"] func_1082D(self,"vehicle_bmp");
|
|
}
|
|
|
|
var_00 func_10DF8();
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_10DF8(param_00)
|
|
{
|
|
var_01 = getvehiclenode("startnode","targetname");
|
|
var_02 = getvehiclenode("waitnode","targetname");
|
|
self.var_C053 = getvehiclenodearray("info_vehicle_node","classname");
|
|
level.var_114E2 = 1;
|
|
thread func_114E9(var_01,var_02);
|
|
thread func_114D9();
|
|
level.var_114B1 = self;
|
|
if(level.teambased)
|
|
{
|
|
var_03 = scripts\mp\objidpoolmanager::requestminimapid(1);
|
|
if(var_03 != -1)
|
|
{
|
|
scripts\mp\objidpoolmanager::minimap_objective_add(var_03,"invisible",(0,0,0));
|
|
scripts\mp\objidpoolmanager::minimap_objective_team(var_03,"allies");
|
|
}
|
|
|
|
level.var_114B1.var_C2B5["allies"] = var_03;
|
|
var_04 = scripts\mp\objidpoolmanager::requestminimapid(1);
|
|
if(var_04 != -1)
|
|
{
|
|
scripts\mp\objidpoolmanager::minimap_objective_add(var_04,"invisible",(0,0,0));
|
|
scripts\mp\objidpoolmanager::minimap_objective_team(var_04,"axis");
|
|
}
|
|
|
|
level.var_114B1.var_C2B5["axis"] = var_04;
|
|
var_05 = self.team;
|
|
level.var_114B1.team = var_05;
|
|
level.var_114B1.pers["team"] = var_05;
|
|
}
|
|
|
|
var_06 = spawnturret("misc_turret",self.origin,"abrams_minigun_mp");
|
|
var_06 linkto(self,"tag_engine_left",(0,0,-20),(0,0,0));
|
|
var_06 setmodel("sentry_minigun");
|
|
var_06.angles = self.angles;
|
|
var_06.var_222 = self.var_222;
|
|
var_06 method_81F5();
|
|
self.var_B6BD = var_06;
|
|
self.var_B6BD method_82D1(0);
|
|
var_07 = self.angles;
|
|
self.angles = (0,0,0);
|
|
var_08 = self gettagorigin("tag_flash");
|
|
self.angles = var_07;
|
|
var_09 = var_08 - self.origin;
|
|
thread func_136B0();
|
|
thread func_136B8();
|
|
self.var_118F3 = gettime();
|
|
var_0A = spawn("script_origin",self gettagorigin("tag_flash"));
|
|
var_0A linkto(self,"tag_origin",var_09,(0,0,0));
|
|
var_0A hide();
|
|
self.var_BEF5 = var_0A;
|
|
thread func_114E1();
|
|
thread func_5329();
|
|
thread func_114DF();
|
|
thread func_3E02();
|
|
thread func_13A78();
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_136B0()
|
|
{
|
|
self endon("death");
|
|
self.var_222 endon("disconnect");
|
|
self.var_222 waittill("joined_team");
|
|
self.health = 0;
|
|
self notify("death");
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_136B8()
|
|
{
|
|
self endon("death");
|
|
self.var_222 waittill("disconnect");
|
|
self.health = 0;
|
|
self notify("death");
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_F6C4(param_00)
|
|
{
|
|
if(self.var_376 != param_00)
|
|
{
|
|
if(param_00 == "forward")
|
|
{
|
|
func_11096();
|
|
return;
|
|
}
|
|
|
|
func_11097();
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_F6E3()
|
|
{
|
|
self endon("death");
|
|
self notify("path_abandoned");
|
|
while(isdefined(self.var_3C61))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
var_00 = 2;
|
|
self method_83E5(var_00,10,10);
|
|
self.var_109C6 = "engage";
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_F799()
|
|
{
|
|
self endon("death");
|
|
self notify("path_abandoned");
|
|
while(isdefined(self.var_3C61))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
var_00 = 2;
|
|
self method_83E5(var_00,10,10);
|
|
self.var_109C6 = "engage";
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_F85D()
|
|
{
|
|
self endon("death");
|
|
while(isdefined(self.var_3C61))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
self method_83E5(self.var_10B68,10,10);
|
|
self.var_109C6 = "standard";
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_F6ED()
|
|
{
|
|
self endon("death");
|
|
while(isdefined(self.var_3C61))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
self method_83E5(15,15,15);
|
|
self.var_109C6 = "evade";
|
|
wait(1.5);
|
|
self method_83E5(self.var_10B68,10,10);
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_F6B0()
|
|
{
|
|
self endon("death");
|
|
while(isdefined(self.var_3C61))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
self method_83E5(5,5,5);
|
|
self.var_109C6 = "danger";
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_11097()
|
|
{
|
|
func_4F52("tank changing direction at " + gettime());
|
|
self method_83E5(0,5,6);
|
|
self.var_3C61 = 1;
|
|
while(self.var_37A > 0)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
wait(0.25);
|
|
self.var_3C61 = undefined;
|
|
func_4F52("tank done changing direction");
|
|
self.var_37D = "reverse";
|
|
self.var_376 = "reverse";
|
|
self method_83E5(self.var_10B68,5,6);
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_11096()
|
|
{
|
|
func_4F52("tank changing direction at " + gettime());
|
|
self method_83E5(0,5,6);
|
|
self.var_3C61 = 1;
|
|
while(self.var_37A > 0)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
wait(0.25);
|
|
self.var_3C61 = undefined;
|
|
func_4F52("tank done changing direction");
|
|
self.var_37D = "forward";
|
|
self.var_376 = "forward";
|
|
self method_83E5(self.var_10B68,5,6);
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_3E02()
|
|
{
|
|
self endon("death");
|
|
var_00 = [];
|
|
var_01 = level.players;
|
|
self.var_C225 = 0;
|
|
for(;;)
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_03.team == self.team)
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
var_04 = distance2d(var_03.origin,self.origin);
|
|
if(var_04 < 2048)
|
|
{
|
|
self.var_C225++;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
if(isdefined(self.var_109C6) && self.var_109C6 == "evade" || self.var_109C6 == "engage")
|
|
{
|
|
self.var_C225 = 0;
|
|
continue;
|
|
}
|
|
|
|
if(self.var_C225 > 1)
|
|
{
|
|
thread func_F6B0();
|
|
}
|
|
else
|
|
{
|
|
thread func_F85D();
|
|
}
|
|
|
|
self.var_C225 = 0;
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_114E9(param_00,param_01)
|
|
{
|
|
self endon("tankDestroyed");
|
|
self endon("death");
|
|
if(!isdefined(level.var_848E))
|
|
{
|
|
self startpath(param_00);
|
|
return;
|
|
}
|
|
|
|
self attachpath(param_00);
|
|
self startpath(param_00);
|
|
param_00 notify("trigger",self,1);
|
|
wait(0.05);
|
|
for(;;)
|
|
{
|
|
while(isdefined(self.var_3C61))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
var_02 = func_7FFB();
|
|
if(isdefined(var_02))
|
|
{
|
|
self.var_6366 = var_02;
|
|
}
|
|
else
|
|
{
|
|
self.var_6366 = undefined;
|
|
}
|
|
|
|
wait(0.65);
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_3758(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
if((param_01 == self || param_01 == self.var_B6BD || isdefined(param_01.pers) && param_01.pers["team"] == self.team) && param_01 != self.var_222 || param_04 == "MOD_MELEE")
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_0C = func_B938(param_04,param_02,param_01);
|
|
self method_83DB(param_00,param_01,var_0C,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_114D9()
|
|
{
|
|
self endon("death");
|
|
self.var_E1 = 0;
|
|
var_00 = self method_83DD();
|
|
var_01 = self.health;
|
|
var_02 = 0;
|
|
var_03 = 0;
|
|
var_04 = 0;
|
|
for(;;)
|
|
{
|
|
self waittill("damage",var_05,var_06,var_07,var_08,var_09);
|
|
if(isdefined(var_06.classname) && var_06.classname == "script_vehicle")
|
|
{
|
|
if(isdefined(self.var_2A9A) && self.var_2A9A != var_06)
|
|
{
|
|
self.var_72B8 = var_06;
|
|
thread func_698D();
|
|
}
|
|
}
|
|
else if(isplayer(var_06))
|
|
{
|
|
var_06 scripts\mp\_damagefeedback::func_12E84("hitHelicopter");
|
|
if(var_06 scripts\mp\_utility::_hasperk("specialty_armorpiercing"))
|
|
{
|
|
var_0A = var_05 * level.var_218B;
|
|
self.health = self.health - int(var_0A);
|
|
}
|
|
}
|
|
|
|
if(self.health <= 0)
|
|
{
|
|
self notify("death");
|
|
return;
|
|
}
|
|
else if(self.health < var_01 / 4 && var_04 == 0)
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
else if(self.health < var_01 / 2 && var_03 == 0)
|
|
{
|
|
var_03 = 1;
|
|
}
|
|
else if(self.health < var_01 / 1.5 && var_02 == 0)
|
|
{
|
|
var_02 = 1;
|
|
}
|
|
|
|
if(var_05 > 1000)
|
|
{
|
|
func_89F2(var_06);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_89F2(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = randomint(100);
|
|
if(isdefined(self.var_2A9A) && self.var_2A9A != param_00 && var_01 > 30)
|
|
{
|
|
var_02 = [];
|
|
var_02[0] = self.var_2A9A;
|
|
func_698D(1,self.var_2A9A);
|
|
thread func_1572(var_02);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.var_2A9A) && var_01 > 30)
|
|
{
|
|
var_02 = [];
|
|
var_02[0] = param_00;
|
|
thread func_1572(var_02);
|
|
return;
|
|
}
|
|
|
|
if(var_01 < 30)
|
|
{
|
|
playfx(level.var_114D8,self.origin);
|
|
thread func_F6ED();
|
|
return;
|
|
}
|
|
|
|
self method_80EB();
|
|
self playsound("bmp_fire");
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_89D4(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = func_DF30(param_00);
|
|
var_02 = distance(self.origin,param_00.origin);
|
|
if(randomint(4) < 3)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(var_01 == "front" && var_02 < 768)
|
|
{
|
|
thread func_F6ED();
|
|
return;
|
|
}
|
|
|
|
if(var_01 == "rear_side" || var_01 == "rear" && var_02 >= 768)
|
|
{
|
|
playfx(level.var_114D8,self.origin);
|
|
thread func_F6ED();
|
|
return;
|
|
}
|
|
|
|
if(var_01 == "rear" && var_02 < 768)
|
|
{
|
|
func_11097();
|
|
func_F6ED();
|
|
wait(4);
|
|
func_11096();
|
|
return;
|
|
}
|
|
|
|
if(var_01 == "front_side" || var_01 == "front")
|
|
{
|
|
playfx(level.var_114D8,self.origin);
|
|
func_11097();
|
|
func_F6ED();
|
|
wait(8);
|
|
func_11096();
|
|
return;
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_DF30(param_00)
|
|
{
|
|
self endon("death");
|
|
param_00 endon("death");
|
|
param_00 endon("disconnect");
|
|
var_01 = anglestoforward(self.angles);
|
|
var_02 = param_00.origin - self.origin;
|
|
var_01 = var_01 * (1,1,0);
|
|
var_02 = var_02 * (1,1,0);
|
|
var_02 = vectornormalize(var_02);
|
|
var_01 = vectornormalize(var_01);
|
|
var_03 = vectordot(var_02,var_01);
|
|
if(var_03 > 0)
|
|
{
|
|
if(var_03 > 0.9)
|
|
{
|
|
return "front";
|
|
}
|
|
else
|
|
{
|
|
return "front_side";
|
|
}
|
|
}
|
|
else if(var_03 < -0.9)
|
|
{
|
|
return "rear";
|
|
}
|
|
else
|
|
{
|
|
return "rear_side";
|
|
}
|
|
|
|
param_00 iprintlnbold(var_03);
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_13A78()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
var_00 = [];
|
|
var_01 = level.players;
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
if(!func_9F97(var_03))
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
var_04 = var_03 getcurrentweapon();
|
|
if(issubstr(var_04,"at4") || issubstr(var_04,"stinger") || issubstr(var_04,"javelin"))
|
|
{
|
|
thread func_89D4(var_03);
|
|
wait(8);
|
|
}
|
|
|
|
wait(0.15);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_3E2E()
|
|
{
|
|
if(!isdefined(self.var_222) || !isdefined(self.var_222.pers["team"]) || self.var_222.pers["team"] != self.team)
|
|
{
|
|
self notify("abandoned");
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_B938(param_00,param_01,param_02)
|
|
{
|
|
if(param_00 == "MOD_RIFLE_BULLET")
|
|
{
|
|
return param_01;
|
|
}
|
|
|
|
if(param_00 == "MOD_PISTOL_BULLET")
|
|
{
|
|
return param_01;
|
|
}
|
|
|
|
if(param_00 == "MOD_IMPACT")
|
|
{
|
|
return param_01;
|
|
}
|
|
|
|
if(param_00 == "MOD_MELEE")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_00 == "MOD_EXPLOSIVE_BULLET")
|
|
{
|
|
return param_01;
|
|
}
|
|
|
|
if(param_00 == "MOD_GRENADE")
|
|
{
|
|
return param_01 * 5;
|
|
}
|
|
|
|
if(param_00 == "MOD_GRENADE_SPLASH")
|
|
{
|
|
return param_01 * 5;
|
|
}
|
|
|
|
return param_01 * 10;
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_5329()
|
|
{
|
|
self waittill("death");
|
|
if(level.teambased)
|
|
{
|
|
var_00 = level.var_114B1.team;
|
|
if(level.var_114B1.var_C2B5[var_00] != -1)
|
|
{
|
|
scripts\mp\objidpoolmanager::minimap_objective_state(level.var_114B1.var_C2B5[var_00],"invisible");
|
|
}
|
|
|
|
if(level.var_114B1.var_C2B5[level.var_C74B[var_00]] != -1)
|
|
{
|
|
scripts\mp\objidpoolmanager::minimap_objective_state(level.var_114B1.var_C2B5[level.var_C74B[var_00]],"invisible");
|
|
}
|
|
}
|
|
|
|
self notify("tankDestroyed");
|
|
self method_83E5(0,10,10);
|
|
level.var_114E2 = 0;
|
|
playfx(level.var_10888,self.origin);
|
|
playfx(level.var_114DD,self.origin);
|
|
func_E11C();
|
|
var_01 = spawn("script_model",self.origin);
|
|
var_01 setmodel("vehicle_m1a1_abrams_d_static");
|
|
var_01.angles = self.angles;
|
|
self.var_B6BD delete();
|
|
self delete();
|
|
wait(4);
|
|
var_01 delete();
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_C53C()
|
|
{
|
|
self notify("onTargOrTimeOut");
|
|
self endon("onTargOrTimeOut");
|
|
self endon("turret_on_target");
|
|
self waittill("turret_pitch_clamped");
|
|
thread func_698D(0,self.var_2A9A);
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_6D7A()
|
|
{
|
|
self endon("abandonedTarget");
|
|
self endon("killedTarget");
|
|
self endon("death");
|
|
self endon("targetRemoved");
|
|
self endon("lostLOS");
|
|
for(;;)
|
|
{
|
|
func_C53C();
|
|
if(!isdefined(self.var_2A9A))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00 = self gettagorigin("tag_flash");
|
|
var_01 = bullettrace(self.origin,var_00,0,self);
|
|
if(var_01["position"] != var_00)
|
|
{
|
|
thread func_698D(0,self.var_2A9A);
|
|
}
|
|
|
|
var_01 = bullettrace(var_00,self.var_2A9A.origin,1,self);
|
|
var_02 = distance(self.origin,var_01["position"]);
|
|
var_03 = distance(self.var_2A9A.origin,self.origin);
|
|
if(var_02 < 384 || var_02 + 256 < var_03)
|
|
{
|
|
wait(0.5);
|
|
if(var_02 > 384)
|
|
{
|
|
func_136F4();
|
|
self method_80EB();
|
|
self playsound("bmp_fire");
|
|
self.var_118F3 = gettime();
|
|
}
|
|
|
|
var_04 = func_DF30(self.var_2A9A);
|
|
thread func_698D(0,self.var_2A9A);
|
|
return;
|
|
}
|
|
|
|
func_136F4();
|
|
self method_80EB();
|
|
self playsound("bmp_fire");
|
|
self.var_118F3 = gettime();
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_136F4()
|
|
{
|
|
self endon("abandonedTarget");
|
|
self endon("killedTarget");
|
|
self endon("death");
|
|
self endon("targetRemoved");
|
|
self endon("lostLOS");
|
|
var_00 = gettime() - self.var_118F3;
|
|
if(var_00 < 1499)
|
|
{
|
|
wait(1.5 - var_00 / 1000);
|
|
}
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_114E1(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("leaving");
|
|
var_01 = [];
|
|
for(;;)
|
|
{
|
|
var_01 = [];
|
|
var_02 = level.players;
|
|
if(isdefined(self.var_72B8))
|
|
{
|
|
var_01 = [];
|
|
var_01[0] = self.var_72B8;
|
|
func_1572(var_01);
|
|
self.var_72B8 = undefined;
|
|
}
|
|
|
|
if(isdefined(level.var_8B55) && level.var_8B55.team != self.team && isalive(level.var_8B55))
|
|
{
|
|
if(func_9FF1(level.var_114B1))
|
|
{
|
|
var_01[var_01.size] = level.var_114B1;
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_3F14) && level.var_3F14.team != self.team && isalive(level.var_3F14))
|
|
{
|
|
if(func_9FF1(level.var_3F14))
|
|
{
|
|
var_01[var_01.size] = level.var_3F14;
|
|
}
|
|
}
|
|
|
|
foreach(var_04 in var_02)
|
|
{
|
|
if(!isdefined(var_04))
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(param_00) && var_04 == param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_9F97(var_04))
|
|
{
|
|
if(isdefined(var_04))
|
|
{
|
|
var_01[var_01.size] = var_04;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(var_01.size > 0)
|
|
{
|
|
func_1572(var_01);
|
|
continue;
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_1572(param_00)
|
|
{
|
|
self endon("death");
|
|
if(param_00.size == 1)
|
|
{
|
|
self.var_2A9A = param_00[0];
|
|
}
|
|
else
|
|
{
|
|
self.var_2A9A = func_7E05(param_00);
|
|
}
|
|
|
|
thread func_F6E3();
|
|
thread func_13B74(param_00);
|
|
self method_835C(self.var_2A9A);
|
|
func_6D7A();
|
|
thread func_F7B8();
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_F7B8()
|
|
{
|
|
self endon("death");
|
|
func_F85D();
|
|
func_E17A();
|
|
self method_835C(self.var_BEF5);
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_7E05(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = self gettagorigin("tag_flash");
|
|
var_02 = self.origin;
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
var_05 = 0;
|
|
foreach(var_07 in param_00)
|
|
{
|
|
var_08 = abs(vectortoangles(var_07.origin - self.origin)[1]);
|
|
var_09 = abs(self gettagangles("tag_flash")[1]);
|
|
var_08 = abs(var_08 - var_09);
|
|
if(isdefined(level.var_3F14) && var_07 == level.var_3F14)
|
|
{
|
|
return var_07;
|
|
}
|
|
|
|
if(isdefined(level.var_8B55) && var_07 == level.var_8B55)
|
|
{
|
|
return var_07;
|
|
}
|
|
|
|
var_0A = var_07 getweaponslistitems();
|
|
foreach(var_0C in var_0A)
|
|
{
|
|
if(issubstr(var_0C,"at4") || issubstr(var_0C,"jav") || issubstr(var_0C,"c4"))
|
|
{
|
|
var_08 = var_08 - 40;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(var_03))
|
|
{
|
|
var_03 = var_08;
|
|
var_04 = var_07;
|
|
continue;
|
|
}
|
|
|
|
if(var_03 > var_08)
|
|
{
|
|
var_03 = var_08;
|
|
var_04 = var_07;
|
|
}
|
|
}
|
|
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_13B74(param_00)
|
|
{
|
|
self endon("abandonedTarget");
|
|
self endon("lostLOS");
|
|
self endon("death");
|
|
self endon("targetRemoved");
|
|
var_01 = self.var_2A9A;
|
|
var_01 endon("disconnect");
|
|
var_01 waittill("death");
|
|
self notify("killedTarget");
|
|
func_E17A();
|
|
func_F85D();
|
|
thread func_F7B8();
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_698D(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self notify("abandonedTarget");
|
|
func_F85D();
|
|
thread func_F7B8();
|
|
func_E17A();
|
|
if(isdefined(param_01))
|
|
{
|
|
self.var_275E = param_01;
|
|
func_275F();
|
|
}
|
|
|
|
if(isdefined(param_00) && param_00)
|
|
{
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_275F()
|
|
{
|
|
self endon("death");
|
|
wait(1.5);
|
|
self.var_275E = undefined;
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_E17A()
|
|
{
|
|
self notify("targetRemoved");
|
|
self.var_2A9A = undefined;
|
|
self.var_A9AF = undefined;
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_9FF1(param_00)
|
|
{
|
|
if(distance2d(param_00.origin,self.origin) > 4096)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(distance(param_00.origin,self.origin) < 512)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return func_12A8F(param_00,0);
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_9F97(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = distancesquared(param_00.origin,self.origin);
|
|
if(!level.teambased && isdefined(self.var_222) && param_00 == self.var_222)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isalive(param_00) || param_00.sessionstate != "playing")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(var_01 > 16777216)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(var_01 < 262144)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(param_00.pers["team"]))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_00 == self.var_222)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.teambased && param_00.pers["team"] == self.team)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_00.pers["team"] == "spectator")
|
|
{
|
|
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;
|
|
}
|
|
|
|
return self method_83D9(param_00.origin,1,self);
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_12A8F(param_00,param_01)
|
|
{
|
|
var_02 = param_00 method_838A(self gettagorigin("tag_turret"),self);
|
|
if(var_02 < 0.7)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_01) && param_01)
|
|
{
|
|
thread scripts\mp\_utility::drawline(param_00.origin,self gettagorigin("tag_turret"),10,(1,0,0));
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_9EA1(param_00)
|
|
{
|
|
self endon("death");
|
|
if(!isalive(param_00) || param_00.sessionstate != "playing")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(param_00.pers["team"]))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_00 == self.var_222)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(distancesquared(param_00.origin,self.origin) > 1048576)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.teambased && param_00.pers["team"] == self.team)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_00.pers["team"] == "spectator")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_00.var_10916) && gettime() - param_00.var_10916 / 1000 <= 5)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self))
|
|
{
|
|
var_01 = self.var_B6BD.origin + (0,0,64);
|
|
var_02 = param_00 method_838A(var_01,self);
|
|
if(var_02 < 1)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_114DF()
|
|
{
|
|
self endon("death");
|
|
self endon("leaving");
|
|
var_00 = [];
|
|
for(;;)
|
|
{
|
|
var_00 = [];
|
|
var_01 = level.players;
|
|
for(var_02 = 0;var_02 <= var_01.size;var_02++)
|
|
{
|
|
if(func_9EA1(var_01[var_02]))
|
|
{
|
|
if(isdefined(var_01[var_02]))
|
|
{
|
|
var_00[var_00.size] = var_01[var_02];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
continue;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
if(var_00.size > 0)
|
|
{
|
|
func_1571(var_00);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
wait(0.5);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_7DFD(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = self.origin;
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
foreach(var_05 in param_00)
|
|
{
|
|
var_06 = distance(self.origin,var_05.origin);
|
|
var_07 = var_05 getcurrentweapon();
|
|
if(issubstr(var_07,"at4") || issubstr(var_07,"jav") || issubstr(var_07,"c4") || issubstr(var_07,"smart") || issubstr(var_07,"grenade"))
|
|
{
|
|
var_06 = var_06 - 200;
|
|
}
|
|
|
|
if(!isdefined(var_02))
|
|
{
|
|
var_02 = var_06;
|
|
var_03 = var_05;
|
|
continue;
|
|
}
|
|
|
|
if(var_02 > var_06)
|
|
{
|
|
var_02 = var_06;
|
|
var_03 = var_05;
|
|
}
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_1571(param_00)
|
|
{
|
|
self endon("death");
|
|
if(param_00.size == 1)
|
|
{
|
|
self.var_2A97 = param_00[0];
|
|
}
|
|
else
|
|
{
|
|
self.var_2A97 = func_7DFD(param_00);
|
|
}
|
|
|
|
if(distance2d(self.origin,self.var_2A97.origin) > 768)
|
|
{
|
|
thread func_F799();
|
|
}
|
|
|
|
self notify("acquiringMiniTarget");
|
|
self.var_B6BD method_8347(self.var_2A97,(0,0,64));
|
|
wait(0.15);
|
|
thread func_6D74();
|
|
thread func_13AD1(param_00);
|
|
thread func_13AD2(param_00);
|
|
thread func_13AD3(self.var_2A97);
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_6D74()
|
|
{
|
|
self endon("death");
|
|
self endon("abandonedMiniTarget");
|
|
self endon("killedMiniTarget");
|
|
var_00 = undefined;
|
|
var_01 = gettime();
|
|
if(!isdefined(self.var_2A97))
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(!isdefined(self.var_B6BD method_8166(1)))
|
|
{
|
|
if(!isdefined(var_00))
|
|
{
|
|
var_00 = gettime();
|
|
}
|
|
|
|
var_02 = gettime();
|
|
if(var_00 - var_02 > 1)
|
|
{
|
|
var_00 = undefined;
|
|
thread func_698C();
|
|
return;
|
|
}
|
|
|
|
wait(0.5);
|
|
continue;
|
|
}
|
|
|
|
if(gettime() > var_01 + 1000 && !isdefined(self.var_2A9A))
|
|
{
|
|
if(distance2d(self.origin,self.var_2A97.origin) > 768)
|
|
{
|
|
var_01[0] = self.var_2A97;
|
|
func_1572(var_05);
|
|
}
|
|
}
|
|
|
|
var_04 = randomintrange(10,16);
|
|
for(var_05 = 0;var_05 < var_04;var_05++)
|
|
{
|
|
self.var_B6BD method_837E();
|
|
wait(0.1);
|
|
}
|
|
|
|
wait(randomfloatrange(0.5,3));
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_13AD1(param_00)
|
|
{
|
|
self endon("abandonedMiniTarget");
|
|
self endon("death");
|
|
if(!isdefined(self.var_2A97))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_2A97 waittill("death");
|
|
self notify("killedMiniTarget");
|
|
self.var_2A97 = undefined;
|
|
self.var_B6BD method_807E();
|
|
func_114DF();
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_13AD2(param_00)
|
|
{
|
|
self endon("abandonedMiniTarget");
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
if(!isdefined(self.var_2A97))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = bullettrace(self.var_B6BD.origin,self.var_2A97.origin,0,self);
|
|
var_02 = distance(self.origin,var_01["position"]);
|
|
if(var_02 > 1024)
|
|
{
|
|
thread func_698C();
|
|
return;
|
|
}
|
|
|
|
wait(2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_13AD3(param_00)
|
|
{
|
|
self endon("abandonedMiniTarget");
|
|
self endon("death");
|
|
self endon("killedMiniTarget");
|
|
for(;;)
|
|
{
|
|
var_01 = [];
|
|
var_02 = level.players;
|
|
for(var_03 = 0;var_03 <= var_02.size;var_03++)
|
|
{
|
|
if(func_9EA1(var_02[var_03]))
|
|
{
|
|
if(!isdefined(var_02[var_03]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_04 = distance(self.origin,param_00.origin);
|
|
var_05 = distance(self.origin,var_02[var_03].origin);
|
|
if(var_05 < var_04)
|
|
{
|
|
thread func_698C();
|
|
return;
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
wait(0.25);
|
|
}
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_698C(param_00)
|
|
{
|
|
self notify("abandonedMiniTarget");
|
|
self.var_2A97 = undefined;
|
|
self.var_B6BD method_807E();
|
|
if(isdefined(param_00) && param_00)
|
|
{
|
|
return;
|
|
}
|
|
|
|
thread func_114DF();
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_185E()
|
|
{
|
|
level.var_114E3[self getentitynumber()] = self;
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_E11C()
|
|
{
|
|
level.var_114E3[self getentitynumber()] = undefined;
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_7FFB()
|
|
{
|
|
var_00 = [];
|
|
foreach(var_02 in level.players)
|
|
{
|
|
if(var_02.team == "spectator")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_02.team == self.team)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isalive(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02.var_56E8 = 0;
|
|
var_00[var_00.size] = var_02;
|
|
}
|
|
|
|
if(!var_00.size)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
for(var_04 = 0;var_04 < var_00.size;var_04++)
|
|
{
|
|
for(var_05 = var_04 + 1;var_05 < var_00.size;var_05++)
|
|
{
|
|
var_06 = distancesquared(var_00[var_04].origin,var_00[var_05].origin);
|
|
var_00[var_04].var_56E8 = var_00[var_04].var_56E8 + var_06;
|
|
var_00[var_05].var_56E8 = var_00[var_05].var_56E8 + var_06;
|
|
}
|
|
}
|
|
|
|
var_07 = var_00[0];
|
|
foreach(var_02 in var_00)
|
|
{
|
|
if(var_02.var_56E8 < var_07.var_56E8)
|
|
{
|
|
var_07 = var_02;
|
|
}
|
|
}
|
|
|
|
var_0A = var_07.origin;
|
|
var_0B = sortbydistance(level.var_848E,var_0A);
|
|
return var_0B[0];
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_FAD8()
|
|
{
|
|
var_00 = [];
|
|
var_01 = [];
|
|
var_02 = [];
|
|
var_03 = [];
|
|
var_04 = getvehiclenode("startnode","targetname");
|
|
var_00[var_00.size] = var_04;
|
|
var_01[var_01.size] = var_04;
|
|
while(isdefined(var_04.target))
|
|
{
|
|
var_05 = var_04;
|
|
var_04 = getvehiclenode(var_04.target,"targetname");
|
|
var_04.var_D886 = var_05;
|
|
if(var_04 == var_00[0])
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_00[var_00.size] = var_04;
|
|
if(!isdefined(var_04.target))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
var_00[0].var_2F45 = [];
|
|
var_00[0] thread func_897F("forward");
|
|
var_03[var_03.size] = var_00[0];
|
|
var_06 = getvehiclenodearray("branchnode","targetname");
|
|
foreach(var_08 in var_06)
|
|
{
|
|
var_04 = var_08;
|
|
var_00[var_00.size] = var_04;
|
|
var_01[var_01.size] = var_04;
|
|
while(isdefined(var_04.target))
|
|
{
|
|
var_05 = var_04;
|
|
var_04 = getvehiclenode(var_04.target,"targetname");
|
|
var_00[var_00.size] = var_04;
|
|
var_04.var_D886 = var_05;
|
|
if(!isdefined(var_04.target))
|
|
{
|
|
var_02[var_02.size] = var_04;
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach(var_04 in var_00)
|
|
{
|
|
var_0B = 0;
|
|
foreach(var_0D in var_01)
|
|
{
|
|
if(var_0D == var_04)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_0D.target == var_04.var_336)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_04.target) && var_04.target == var_0D.var_336)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distance2d(var_04.origin,var_0D.origin) > 80)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0D thread func_8982(var_04,"reverse");
|
|
var_0D.var_D886 = var_04;
|
|
if(!isdefined(var_04.var_2F45))
|
|
{
|
|
var_04.var_2F45 = [];
|
|
}
|
|
|
|
var_04.var_2F45[var_04.var_2F45.size] = var_0D;
|
|
var_0B = 1;
|
|
}
|
|
|
|
if(var_0B)
|
|
{
|
|
var_04 thread func_897F("forward");
|
|
}
|
|
|
|
var_0F = 0;
|
|
foreach(var_11 in var_02)
|
|
{
|
|
if(var_11 == var_04)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_04.target))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_04.target == var_11.var_336)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_11.target) && var_11.target == var_04.var_336)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distance2d(var_04.origin,var_11.origin) > 80)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_11 thread func_8982(var_04,"forward");
|
|
var_11.var_BF2E = getvehiclenode(var_04.var_336,"targetname");
|
|
var_11.var_AB5D = distance(var_11.origin,var_04.origin);
|
|
if(!isdefined(var_04.var_2F45))
|
|
{
|
|
var_04.var_2F45 = [];
|
|
}
|
|
|
|
var_04.var_2F45[var_04.var_2F45.size] = var_11;
|
|
var_0F = 1;
|
|
}
|
|
|
|
if(var_0F)
|
|
{
|
|
var_04 thread func_897F("reverse");
|
|
}
|
|
|
|
if(var_0F || var_0B)
|
|
{
|
|
var_03[var_03.size] = var_04;
|
|
}
|
|
}
|
|
|
|
if(var_03.size < 3)
|
|
{
|
|
level notify("end_tankPathHandling");
|
|
return;
|
|
}
|
|
|
|
var_14 = [];
|
|
foreach(var_04 in var_00)
|
|
{
|
|
if(!isdefined(var_04.var_2F45))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_14[var_14.size] = var_04;
|
|
}
|
|
|
|
foreach(var_18 in var_14)
|
|
{
|
|
var_04 = var_18;
|
|
var_19 = 0;
|
|
while(isdefined(var_04.target))
|
|
{
|
|
var_1A = var_04;
|
|
var_04 = getvehiclenode(var_04.target,"targetname");
|
|
var_19 = var_19 + distance(var_04.origin,var_1A.origin);
|
|
if(var_04 == var_18)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(isdefined(var_04.var_2F45))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(var_19 > 1000)
|
|
{
|
|
var_04 = var_18;
|
|
var_1B = 0;
|
|
while(isdefined(var_04.target))
|
|
{
|
|
var_1A = var_04;
|
|
var_04 = getvehiclenode(var_04.target,"targetname");
|
|
var_1B = var_1B + distance(var_04.origin,var_1A.origin);
|
|
if(var_1B < var_19 / 2)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_04.var_2F45 = [];
|
|
var_04 thread func_897F("forward");
|
|
var_03[var_03.size] = var_04;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
level.var_848E = func_98A6(var_03);
|
|
foreach(var_04 in var_00)
|
|
{
|
|
if(!isdefined(var_04.var_848D))
|
|
{
|
|
var_04 thread func_C059();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_80B4(param_00)
|
|
{
|
|
var_01 = [];
|
|
foreach(var_04, var_03 in self.var_AD40)
|
|
{
|
|
if(self.var_AD17[var_04] != param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
|
|
return var_01[randomint(var_01.size)];
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_7FE9(param_00,param_01)
|
|
{
|
|
var_02 = level.var_848E[self.var_848D];
|
|
var_03 = func_7732(var_02,param_00,undefined,param_01);
|
|
var_04 = var_03[0].var_7646;
|
|
var_05 = func_7732(var_02,param_00,undefined,level.var_C74A[param_01]);
|
|
var_06 = var_05[0].var_7646;
|
|
if(!getdvarint("tankDebug"))
|
|
{
|
|
var_06 = 9999999;
|
|
}
|
|
|
|
if(var_04 <= var_06)
|
|
{
|
|
return var_03[1];
|
|
}
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_897F(param_00)
|
|
{
|
|
level endon("end_tankPathHandling");
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_01,var_02);
|
|
var_03 = level.var_848E[self.var_848D];
|
|
var_01.var_205 = self;
|
|
var_04 = undefined;
|
|
if(isdefined(var_01.var_6366) && var_01.var_6366 != var_03)
|
|
{
|
|
var_04 = func_7FE9(var_01.var_6366,var_01.var_376);
|
|
if(!isdefined(var_04))
|
|
{
|
|
var_01 thread func_F6C4(level.var_C74A[var_01.var_376]);
|
|
}
|
|
}
|
|
|
|
if(!isdefined(var_04) || var_04 == var_03)
|
|
{
|
|
var_04 = var_03 func_80B4(var_01.var_376);
|
|
}
|
|
|
|
var_05 = var_03.var_AD41[var_04.var_848D];
|
|
if(var_01.var_376 == "forward")
|
|
{
|
|
var_06 = func_7FE8();
|
|
}
|
|
else
|
|
{
|
|
var_06 = func_809A();
|
|
}
|
|
|
|
if(var_06 != var_05)
|
|
{
|
|
var_01 startpath(var_05);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_8982(param_00,param_01)
|
|
{
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_02);
|
|
if(var_02.var_376 != param_01)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
func_4F52("tank starting path at join node: " + param_00.var_848D);
|
|
var_02 startpath(param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_C059()
|
|
{
|
|
self.var_7334 = func_7EC4().var_848D;
|
|
self.var_E492 = func_80EF().var_848D;
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_00,var_01);
|
|
var_00.var_205 = self;
|
|
var_00.var_7334 = self.var_7334;
|
|
var_00.var_E492 = self.var_E492;
|
|
if(!isdefined(self.target) || self.var_336 == "branchnode")
|
|
{
|
|
var_02 = "TRANS";
|
|
}
|
|
else
|
|
{
|
|
var_02 = "NODE";
|
|
}
|
|
|
|
if(isdefined(var_01))
|
|
{
|
|
func_4F50(self.origin,var_02,(1,0.5,0),1,2,100);
|
|
continue;
|
|
}
|
|
|
|
func_4F50(self.origin,var_02,(0,1,0),1,2,100);
|
|
}
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_72EA(param_00,param_01,param_02)
|
|
{
|
|
param_01 endon("trigger");
|
|
param_00 endon("trigger");
|
|
param_02 endon("death");
|
|
var_03 = distancesquared(param_02.origin,param_01.origin);
|
|
var_04 = param_02.var_376;
|
|
func_4F50(param_00.origin + (0,0,30),"LAST",(0,0,1),0.5,1,100);
|
|
func_4F50(param_01.origin + (0,0,60),"NEXT",(0,1,0),0.5,1,100);
|
|
var_05 = 0;
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
if(var_04 != param_02.var_376)
|
|
{
|
|
func_4F52("tank missed node: reversing direction");
|
|
param_02 thread func_72EA(param_01,param_00,param_02);
|
|
return;
|
|
}
|
|
|
|
if(var_05)
|
|
{
|
|
func_4F52("... sending notify.");
|
|
param_01 notify("trigger",param_02,1);
|
|
return;
|
|
}
|
|
|
|
var_06 = distancesquared(param_02.origin,param_01.origin);
|
|
if(var_06 > var_03)
|
|
{
|
|
var_05 = 1;
|
|
func_4F52("tank missed node: forcing notify in one frame...");
|
|
}
|
|
|
|
var_03 = var_06;
|
|
}
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_7EC4()
|
|
{
|
|
for(var_00 = self;!isdefined(var_00.var_848D);var_00 = var_00 func_7FE8())
|
|
{
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_80EF()
|
|
{
|
|
for(var_00 = self;!isdefined(var_00.var_848D);var_00 = var_00 func_809A())
|
|
{
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_7FE8()
|
|
{
|
|
if(isdefined(self.target))
|
|
{
|
|
return getvehiclenode(self.target,"targetname");
|
|
}
|
|
|
|
return self.var_BF2E;
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_809A()
|
|
{
|
|
return self.var_D886;
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_98A6(param_00)
|
|
{
|
|
var_01 = [];
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_04 = spawnstruct();
|
|
var_04.var_AD35 = [];
|
|
var_04.var_AD40 = [];
|
|
var_04.var_AD36 = [];
|
|
var_04.var_AD17 = [];
|
|
var_04.var_AD41 = [];
|
|
var_04.var_205 = var_03;
|
|
var_04.origin = var_03.origin;
|
|
var_04.var_848D = var_01.size;
|
|
var_03.var_848D = var_01.size;
|
|
func_4F50(var_04.origin + (0,0,80),var_04.var_848D,(1,1,1),0.65,2,100000);
|
|
var_01[var_01.size] = var_04;
|
|
}
|
|
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_07 = var_03.var_848D;
|
|
var_08 = getvehiclenode(var_03.target,"targetname");
|
|
var_09 = distance(var_03.origin,var_08.origin);
|
|
var_0A = var_08;
|
|
while(!isdefined(var_08.var_848D))
|
|
{
|
|
var_09 = var_09 + distance(var_08.origin,var_08.var_D886.origin);
|
|
if(isdefined(var_08.target))
|
|
{
|
|
var_08 = getvehiclenode(var_08.target,"targetname");
|
|
continue;
|
|
}
|
|
|
|
var_08 = var_08.var_BF2E;
|
|
}
|
|
|
|
var_01[var_07] func_17EC(var_01[var_08.var_848D],var_09,"forward",var_0A);
|
|
var_08 = var_03.var_D886;
|
|
var_09 = distance(var_03.origin,var_08.origin);
|
|
var_0A = var_08;
|
|
while(!isdefined(var_08.var_848D))
|
|
{
|
|
var_09 = var_09 + distance(var_08.origin,var_08.var_D886.origin);
|
|
var_08 = var_08.var_D886;
|
|
}
|
|
|
|
var_01[var_07] func_17EC(var_01[var_08.var_848D],var_09,"reverse",var_0A);
|
|
foreach(var_0C in var_03.var_2F45)
|
|
{
|
|
var_08 = var_0C;
|
|
var_09 = distance(var_03.origin,var_08.origin);
|
|
var_0A = var_08;
|
|
if(var_08.var_336 == "branchnode")
|
|
{
|
|
while(!isdefined(var_08.var_848D))
|
|
{
|
|
if(isdefined(var_08.target))
|
|
{
|
|
var_0D = getvehiclenode(var_08.target,"targetname");
|
|
}
|
|
else
|
|
{
|
|
var_0D = var_08.var_BF2E;
|
|
}
|
|
|
|
var_09 = var_09 + distance(var_08.origin,var_0D.origin);
|
|
var_08 = var_0D;
|
|
}
|
|
|
|
var_01[var_07] func_17EC(var_01[var_08.var_848D],var_09,"forward",var_0A);
|
|
continue;
|
|
}
|
|
|
|
while(!isdefined(var_08.var_848D))
|
|
{
|
|
var_09 = var_09 + distance(var_08.origin,var_08.var_D886.origin);
|
|
var_08 = var_08.var_D886;
|
|
}
|
|
|
|
var_01[var_07] func_17EC(var_01[var_08.var_848D],var_09,"reverse",var_0A);
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_17EC(param_00,param_01,param_02,param_03)
|
|
{
|
|
self.var_AD40[param_00.var_848D] = param_00;
|
|
self.var_AD36[param_00.var_848D] = param_01;
|
|
self.var_AD17[param_00.var_848D] = param_02;
|
|
self.var_AD41[param_00.var_848D] = param_03;
|
|
var_04 = spawnstruct();
|
|
var_04.var_119D3 = param_00;
|
|
var_04.var_119D2 = param_00.var_848D;
|
|
var_04.var_AB5D = param_01;
|
|
var_04.var_F2 = param_02;
|
|
var_04.var_10DCD = param_03;
|
|
self.var_AD35[param_00.var_848D] = var_04;
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_7732(param_00,param_01,param_02,param_03)
|
|
{
|
|
level.var_C62D = [];
|
|
level.var_428F = [];
|
|
var_04 = 0;
|
|
var_05 = [];
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = [];
|
|
}
|
|
|
|
param_01.var_7646 = 0;
|
|
param_01.var_877B = func_7F0A(param_01,param_00);
|
|
param_01.var_6A62 = param_01.var_7646 + param_01.var_877B;
|
|
func_184C(param_01);
|
|
var_06 = param_01;
|
|
for(;;)
|
|
{
|
|
foreach(var_08 in var_06.var_AD40)
|
|
{
|
|
if(scripts\common\utility::func_2286(param_02,var_08))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::func_2286(level.var_428F,var_08))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(param_03) && var_08.var_AD17[var_06.var_848D] != param_03)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!scripts\common\utility::func_2286(level.var_C62D,var_08))
|
|
{
|
|
func_1854(var_08);
|
|
var_08.var_C8F6 = var_06;
|
|
var_08.var_7646 = func_7EED(var_08,var_06);
|
|
var_08.var_877B = func_7F0A(var_08,param_00);
|
|
var_08.var_6A62 = var_08.var_7646 + var_08.var_877B;
|
|
if(var_08 == param_00)
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(var_08.var_7646 < func_7EED(var_06,var_08))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_08.var_C8F6 = var_06;
|
|
var_08.var_7646 = func_7EED(var_08,var_06);
|
|
var_08.var_6A62 = var_08.var_7646 + var_08.var_877B;
|
|
}
|
|
|
|
if(var_04)
|
|
{
|
|
break;
|
|
}
|
|
|
|
func_184C(var_06);
|
|
var_0A = level.var_C62D[0];
|
|
foreach(var_0C in level.var_C62D)
|
|
{
|
|
if(var_0C.var_6A62 > var_0A.var_6A62)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0A = var_0C;
|
|
}
|
|
|
|
func_184C(var_0A);
|
|
var_06 = var_0A;
|
|
}
|
|
|
|
var_06 = param_00;
|
|
while(var_06 != param_01)
|
|
{
|
|
var_05[var_05.size] = var_06;
|
|
var_06 = var_06.var_C8F6;
|
|
}
|
|
|
|
var_05[var_05.size] = var_06;
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_1854(param_00)
|
|
{
|
|
param_00.var_C62E = level.var_C62D.size;
|
|
level.var_C62D[level.var_C62D.size] = param_00;
|
|
param_00.var_4290 = undefined;
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_184C(param_00)
|
|
{
|
|
if(isdefined(param_00.var_4290))
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_00.var_4290 = level.var_428F.size;
|
|
level.var_428F[level.var_428F.size] = param_00;
|
|
if(!scripts\common\utility::func_2286(level.var_C62D,param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_C62D[param_00.var_C62E] = level.var_C62D[level.var_C62D.size - 1];
|
|
level.var_C62D[param_00.var_C62E].var_C62E = param_00.var_C62E;
|
|
level.var_C62D[level.var_C62D.size - 1] = undefined;
|
|
param_00.var_C62E = undefined;
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_7F0A(param_00,param_01)
|
|
{
|
|
return distance(param_00.var_205.origin,param_01.var_205.origin);
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_7EED(param_00,param_01)
|
|
{
|
|
return param_00.var_C8F6.var_7646 + param_00.var_AD36[param_01.var_848D];
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_5B83(param_00)
|
|
{
|
|
for(var_01 = 1;var_01 < param_00.size;var_01++)
|
|
{
|
|
var_02 = param_00[var_01 - 1];
|
|
var_03 = param_00[var_01];
|
|
if(var_02.var_AD17[var_03.var_848D] == "reverse")
|
|
{
|
|
level thread func_5B7C(var_02.var_205.origin,var_03.var_205.origin,(1,0,0));
|
|
}
|
|
else
|
|
{
|
|
level thread func_5B7C(var_02.var_205.origin,var_03.var_205.origin,(0,1,0));
|
|
}
|
|
|
|
var_04 = var_02.var_AD41[var_03.var_848D];
|
|
level thread func_5B7C(var_02.var_205.origin + (0,0,4),var_04.origin + (0,0,4),(0,0,1));
|
|
if(var_02.var_AD17[var_03.var_848D] == "reverse")
|
|
{
|
|
while(!isdefined(var_04.var_848D))
|
|
{
|
|
var_05 = var_04;
|
|
var_04 = var_04.var_D886;
|
|
level thread func_5B7C(var_05.origin + (0,0,4),var_04.origin + (0,0,4),(0,1,1));
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
while(!isdefined(var_04.var_848D))
|
|
{
|
|
var_05 = var_04;
|
|
if(isdefined(var_04.target))
|
|
{
|
|
var_04 = getvehiclenode(var_04.target,"targetname");
|
|
continue;
|
|
}
|
|
|
|
var_04 = var_04.var_BF2E;
|
|
level thread func_5B7C(var_05.origin + (0,0,4),var_04.origin + (0,0,4),(0,1,1));
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_5B79(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 74
|
|
func_5B7C(param_00,param_01,param_02)
|
|
{
|
|
level endon("endpath");
|
|
wait(0.05);
|
|
}
|
|
|
|
//Function Number: 75
|
|
func_4F52(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 76
|
|
func_4F51(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 77
|
|
func_4F50(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
}
|
|
|
|
//Function Number: 78
|
|
func_5B8B()
|
|
{
|
|
} |