mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 18:27:57 -05:00
2048 lines
36 KiB
Plaintext
2048 lines
36 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\sp\_mgturret.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 71
|
|
* Decompile Time: 3322 ms
|
|
* Timestamp: 10/27/2023 12:24:47 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_967C()
|
|
{
|
|
level.var_B6C2["easy"]["convergenceTime"] = 2.5;
|
|
level.var_B6C2["easy"]["suppressionTime"] = 3;
|
|
level.var_B6C2["easy"]["accuracy"] = 0.38;
|
|
level.var_B6C2["easy"]["aiSpread"] = 2;
|
|
level.var_B6C2["easy"]["playerSpread"] = 0.5;
|
|
level.var_B6C2["medium"]["convergenceTime"] = 1.5;
|
|
level.var_B6C2["medium"]["suppressionTime"] = 3;
|
|
level.var_B6C2["medium"]["accuracy"] = 0.38;
|
|
level.var_B6C2["medium"]["aiSpread"] = 2;
|
|
level.var_B6C2["medium"]["playerSpread"] = 0.5;
|
|
level.var_B6C2["hard"]["convergenceTime"] = 0.8;
|
|
level.var_B6C2["hard"]["suppressionTime"] = 3;
|
|
level.var_B6C2["hard"]["accuracy"] = 0.38;
|
|
level.var_B6C2["hard"]["aiSpread"] = 2;
|
|
level.var_B6C2["hard"]["playerSpread"] = 0.5;
|
|
level.var_B6C2["fu"]["convergenceTime"] = 0.4;
|
|
level.var_B6C2["fu"]["suppressionTime"] = 3;
|
|
level.var_B6C2["fu"]["accuracy"] = 0.38;
|
|
level.var_B6C2["fu"]["aiSpread"] = 2;
|
|
level.var_B6C2["fu"]["playerSpread"] = 0.5;
|
|
}
|
|
|
|
//Function Number: 2
|
|
main()
|
|
{
|
|
if(getdvar("mg42") == "")
|
|
{
|
|
setdvar("mgTurret","off");
|
|
}
|
|
|
|
level.var_B153 = 24;
|
|
var_00 = getentarray("turretInfo","targetname");
|
|
for(var_01 = 0;var_01 < var_00.size;var_01++)
|
|
{
|
|
var_00[var_01] delete();
|
|
}
|
|
|
|
scripts\common\utility::func_4914("mg42_drones");
|
|
scripts\common\utility::func_4914("mg42_drones_target_trace");
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_D66E()
|
|
{
|
|
self detach("weapon_mg42_carry","tag_origin");
|
|
self endon("death");
|
|
self.var_15C = level.var_4FF6;
|
|
if(isdefined(self.target))
|
|
{
|
|
var_00 = function_00B3(self.target,"targetname");
|
|
if(isdefined(var_00))
|
|
{
|
|
if(isdefined(var_00.var_257))
|
|
{
|
|
self.var_15C = var_00.var_257;
|
|
}
|
|
|
|
self method_82EE(var_00);
|
|
}
|
|
}
|
|
|
|
while(!isdefined(self.var_205))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
var_01 = undefined;
|
|
if(isdefined(self.target))
|
|
{
|
|
var_00 = function_00B3(self.target,"targetname");
|
|
var_01 = var_00;
|
|
}
|
|
|
|
if(!isdefined(var_01))
|
|
{
|
|
var_01 = self.var_205;
|
|
}
|
|
|
|
if(!isdefined(var_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(var_01.type != "Turret")
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_02 = func_8194();
|
|
var_02[self.var_205.origin + ""] = undefined;
|
|
if(isdefined(var_02[var_01.origin + ""]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_03 = var_01.var_129B9;
|
|
if(isdefined(var_03.var_E1CA))
|
|
{
|
|
return;
|
|
}
|
|
|
|
func_E1C9(var_03);
|
|
if(var_03.var_9F46)
|
|
{
|
|
func_AB14(var_03);
|
|
}
|
|
else
|
|
{
|
|
func_E826(var_03);
|
|
}
|
|
|
|
scripts\sp\_mg_penetration::func_8715(var_01.var_129B9);
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_B6AB()
|
|
{
|
|
self waittill("trigger");
|
|
level notify(self.var_336);
|
|
level.var_B6AB[self.var_336] = 1;
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_B6BE(param_00)
|
|
{
|
|
param_00 waittill("trigger");
|
|
var_01 = function_0072("bad_guys");
|
|
for(var_02 = 0;var_02 < var_01.size;var_02++)
|
|
{
|
|
if(isdefined(var_01[var_02].var_EE13) && param_00.var_EE13 == var_01[var_02].var_EE13)
|
|
{
|
|
var_01[var_02] notify("auto_ai");
|
|
}
|
|
}
|
|
|
|
var_03 = function_00C8();
|
|
for(var_02 = 0;var_02 < var_03.size;var_02++)
|
|
{
|
|
if(isdefined(var_03[var_02].var_EE13) && param_00.var_EE13 == var_03[var_02].var_EE13)
|
|
{
|
|
var_03[var_02].var_19C1 = "auto_ai";
|
|
}
|
|
}
|
|
|
|
lib_0B77::func_A622(param_00);
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_B6A8(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("stop_suppressionFire");
|
|
if(!isdefined(self.var_112C7))
|
|
{
|
|
self.var_112C7 = 1;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
while(self.var_112C7)
|
|
{
|
|
self method_8347(param_00[randomint(param_00.size)]);
|
|
wait(2 + randomfloat(2));
|
|
}
|
|
|
|
self method_807E();
|
|
while(!self.var_112C7)
|
|
{
|
|
wait(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_B31A(param_00)
|
|
{
|
|
var_01 = self.origin;
|
|
self waittill("auto_ai");
|
|
param_00 notify("stopfiring");
|
|
param_00 method_830F("auto_ai");
|
|
param_00 method_8347(level.player);
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_32B6(param_00)
|
|
{
|
|
if(param_00 == "delay")
|
|
{
|
|
return 0.2;
|
|
}
|
|
|
|
if(param_00 == "delay_range")
|
|
{
|
|
return 0.5;
|
|
}
|
|
|
|
if(param_00 == "burst")
|
|
{
|
|
return 0.5;
|
|
}
|
|
|
|
if(param_00 == "burst_fire_rate")
|
|
{
|
|
return 0.1;
|
|
}
|
|
|
|
return 1.5;
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_32B7()
|
|
{
|
|
self endon("death");
|
|
self endon("stop_burst_fire_unmanned");
|
|
if(isdefined(self.var_ED50))
|
|
{
|
|
var_00 = self.var_ED50;
|
|
}
|
|
else
|
|
{
|
|
var_00 = func_32B6("delay");
|
|
}
|
|
|
|
if(isdefined(self.var_ED4F))
|
|
{
|
|
var_01 = self.var_ED4F - var_00;
|
|
}
|
|
else
|
|
{
|
|
var_01 = func_32B6("delay_range");
|
|
}
|
|
|
|
if(isdefined(self.var_ED26))
|
|
{
|
|
var_02 = self.var_ED26;
|
|
}
|
|
else
|
|
{
|
|
var_02 = func_32B6("burst");
|
|
}
|
|
|
|
if(isdefined(self.var_ED25))
|
|
{
|
|
var_03 = self.var_ED25 - var_02;
|
|
}
|
|
else
|
|
{
|
|
var_03 = func_32B6("burst_range");
|
|
}
|
|
|
|
if(isdefined(self.var_ED24))
|
|
{
|
|
var_04 = self.var_ED24;
|
|
}
|
|
else
|
|
{
|
|
var_04 = func_32B6("burst_fire_rate");
|
|
}
|
|
|
|
var_05 = gettime();
|
|
var_06 = "start";
|
|
if(isdefined(self.var_FC63))
|
|
{
|
|
thread func_12A2F();
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_07 = var_05 - gettime() * 0.001;
|
|
if(self method_81A0() && var_07 <= 0)
|
|
{
|
|
if(var_06 != "fire")
|
|
{
|
|
var_06 = "fire";
|
|
thread func_5AAA(var_04);
|
|
}
|
|
|
|
var_07 = var_02 + randomfloat(var_03);
|
|
thread func_12A99(var_07);
|
|
self waittill("turretstatechange");
|
|
var_07 = var_00 + randomfloat(var_01);
|
|
var_05 = gettime() + int(var_07 * 1000);
|
|
continue;
|
|
}
|
|
|
|
if(var_06 != "aim")
|
|
{
|
|
var_06 = "aim";
|
|
}
|
|
|
|
thread func_12A99(var_07);
|
|
self waittill("turretstatechange");
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_5AAA(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("turretstatechange");
|
|
var_01 = 0.1;
|
|
if(isdefined(param_00))
|
|
{
|
|
var_01 = param_00;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
self method_837E();
|
|
wait(var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_12A2F()
|
|
{
|
|
self endon("death");
|
|
self endon("stop_burst_fire_unmanned");
|
|
if(isdefined(self.var_FC65))
|
|
{
|
|
self.var_FC66 = 1;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
self waittill("turret_fire");
|
|
playfxontag(self.var_FC63,self,"tag_origin");
|
|
if(isdefined(self.var_FC66) && self.var_FC66)
|
|
{
|
|
thread func_12A30();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_12A30()
|
|
{
|
|
self endon("death");
|
|
self.var_FC66 = 0;
|
|
var_00 = self gettagorigin("tag_origin");
|
|
var_01 = scripts\common\utility::func_5D14(var_00,-30);
|
|
var_02 = var_00[2] - var_01[2];
|
|
var_03 = var_02 / 300;
|
|
wait(var_03);
|
|
function_0178(self.var_FC65,var_01);
|
|
wait(1);
|
|
self.var_FC66 = 1;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_12A99(param_00)
|
|
{
|
|
if(param_00 <= 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self endon("turretstatechange");
|
|
wait(param_00);
|
|
if(isdefined(self))
|
|
{
|
|
self notify("turretstatechange");
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_DC9D(param_00)
|
|
{
|
|
self endon("death");
|
|
self notify("stop random_spread");
|
|
self endon("stop random_spread");
|
|
self endon("stopfiring");
|
|
self method_8347(param_00);
|
|
for(;;)
|
|
{
|
|
if(isplayer(param_00))
|
|
{
|
|
param_00.origin = self.var_B319 getorigin();
|
|
}
|
|
else
|
|
{
|
|
param_00.origin = self.var_B319.origin;
|
|
}
|
|
|
|
param_00.origin = param_00.origin + (20 - randomfloat(40),20 - randomfloat(40),20 - randomfloat(60));
|
|
wait(0.2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_B6A3(param_00)
|
|
{
|
|
self notify("stop_using_built_in_burst_fire");
|
|
self endon("stop_using_built_in_burst_fire");
|
|
param_00 method_83A3();
|
|
for(;;)
|
|
{
|
|
param_00 waittill("startfiring");
|
|
thread func_32B5(param_00);
|
|
param_00 method_8398();
|
|
param_00 waittill("stopfiring");
|
|
param_00 method_83A3();
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_32B5(param_00,param_01)
|
|
{
|
|
param_00 endon("entitydeleted");
|
|
param_00 endon("stopfiring");
|
|
self endon("stop_using_built_in_burst_fire");
|
|
if(isdefined(param_00.var_ED50))
|
|
{
|
|
var_02 = param_00.var_ED50;
|
|
}
|
|
else
|
|
{
|
|
var_02 = func_32B6("delay");
|
|
}
|
|
|
|
if(isdefined(param_00.var_ED4F))
|
|
{
|
|
var_03 = param_00.var_ED4F - var_02;
|
|
}
|
|
else
|
|
{
|
|
var_03 = func_32B6("delay_range");
|
|
}
|
|
|
|
if(isdefined(param_00.var_ED26))
|
|
{
|
|
var_04 = param_00.var_ED26;
|
|
}
|
|
else
|
|
{
|
|
var_04 = func_32B6("burst");
|
|
}
|
|
|
|
if(isdefined(param_00.var_ED25))
|
|
{
|
|
var_05 = param_00.var_ED25 - var_04;
|
|
}
|
|
else
|
|
{
|
|
var_05 = func_32B6("burst_range");
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 method_8398();
|
|
if(isdefined(param_01))
|
|
{
|
|
param_00 thread func_DC9D(param_01);
|
|
}
|
|
|
|
wait(var_04 + randomfloat(var_05));
|
|
param_00 method_83A3();
|
|
wait(var_02 + randomfloat(var_03));
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_140E()
|
|
{
|
|
if(!isdefined(self.var_6E66))
|
|
{
|
|
self.var_6E66 = 0;
|
|
}
|
|
|
|
if(!isdefined(self.var_336))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = function_00B3(self.var_336,"target");
|
|
if(!isdefined(var_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_00.var_EE12))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_00.var_B6A2))
|
|
{
|
|
var_00.var_B6A2 = 1;
|
|
}
|
|
|
|
self.var_EE12 = var_00.var_EE12;
|
|
var_01 = 1;
|
|
for(;;)
|
|
{
|
|
if(var_01)
|
|
{
|
|
var_01 = 0;
|
|
if(isdefined(var_00.var_336) || self.var_6E66)
|
|
{
|
|
self waittill("get new user");
|
|
}
|
|
}
|
|
|
|
if(!var_00.var_B6A2)
|
|
{
|
|
var_00 waittill("enable mg42");
|
|
var_00.var_B6A2 = 1;
|
|
}
|
|
|
|
var_02 = [];
|
|
var_03 = function_0072();
|
|
for(var_04 = 0;var_04 < var_03.size;var_04++)
|
|
{
|
|
var_05 = 1;
|
|
if(isdefined(var_03[var_04].var_EE12) && var_03[var_04].var_EE12 == self.var_EE12)
|
|
{
|
|
var_05 = 0;
|
|
}
|
|
|
|
if(isdefined(var_03[var_04].var_1305C))
|
|
{
|
|
var_05 = 1;
|
|
}
|
|
|
|
if(var_05)
|
|
{
|
|
var_02[var_02.size] = var_03[var_04];
|
|
}
|
|
}
|
|
|
|
if(var_02.size)
|
|
{
|
|
var_03 = scripts\sp\_utility::func_78AB(var_00.origin,undefined,var_02);
|
|
}
|
|
else
|
|
{
|
|
var_03 = scripts\sp\_utility::func_78AA(var_00.origin,undefined);
|
|
}
|
|
|
|
var_02 = undefined;
|
|
if(isdefined(var_03))
|
|
{
|
|
var_03 notify("stop_going_to_node");
|
|
var_03 thread lib_0B77::func_8409(var_00);
|
|
var_03 waittill("death");
|
|
continue;
|
|
}
|
|
|
|
self waittill("get new user");
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_B6AA()
|
|
{
|
|
if(!isdefined(self.var_19C1))
|
|
{
|
|
self.var_19C1 = "manual_ai";
|
|
}
|
|
|
|
var_00 = function_00B3(self.target,"targetname");
|
|
if(!isdefined(var_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = getent(var_00.target,"targetname");
|
|
var_01.var_C6EA = var_00.origin;
|
|
if(isdefined(var_01.target))
|
|
{
|
|
if(!isdefined(level.var_B6AB) || !isdefined(level.var_B6AB[var_01.target]))
|
|
{
|
|
level.var_B6AB[var_01.target] = 0;
|
|
getent(var_01.target,"targetname") thread func_B6AB();
|
|
}
|
|
|
|
var_02 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 0;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(self.var_C1 == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_03 = undefined;
|
|
while(!isdefined(var_03))
|
|
{
|
|
var_03 = self method_80B5();
|
|
wait(1);
|
|
}
|
|
|
|
var_03 thread func_B6A5(var_01,var_02,self.var_19C1);
|
|
var_03 thread func_B6A3(var_01);
|
|
var_03 waittill("death");
|
|
if(isdefined(self.script_delay))
|
|
{
|
|
wait(self.script_delay);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.var_ED50) && isdefined(self.var_ED4F))
|
|
{
|
|
wait(self.var_ED50 + randomfloat(self.var_ED4F - self.var_ED50));
|
|
continue;
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_A5F9(param_00,param_01,param_02,param_03)
|
|
{
|
|
param_00 waittill(param_01);
|
|
if(isdefined(param_02))
|
|
{
|
|
param_02 delete();
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
param_03 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_B6A5(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
if(param_02 == "manual_ai")
|
|
{
|
|
for(;;)
|
|
{
|
|
thread func_B6A4(param_00,param_01);
|
|
self waittill("auto_ai");
|
|
func_BC9D(param_00,"auto_ai");
|
|
self waittill("manual_ai");
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
func_BC9D(param_00,"auto_ai",level.player);
|
|
self waittill("manual_ai");
|
|
thread func_B6A4(param_00,param_01);
|
|
self waittill("auto_ai");
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_D279()
|
|
{
|
|
if(!isdefined(level.var_CFE7))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player getstance() == "prone")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(level.var_CFE8 == "cow" && level.player getstance() == "crouch")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_10B5A()
|
|
{
|
|
if(level.player getstance() == "prone")
|
|
{
|
|
return (0,0,5);
|
|
}
|
|
else if(level.player getstance() == "crouch")
|
|
{
|
|
return (0,0,25);
|
|
}
|
|
|
|
return (0,0,50);
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_B6A4(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("auto_ai");
|
|
self.var_223 = 1;
|
|
self method_82EF(param_00.var_C6EA);
|
|
self.var_15C = level.var_B153;
|
|
self waittill("goal");
|
|
if(param_01)
|
|
{
|
|
if(!level.var_B6AB[param_00.target])
|
|
{
|
|
level waittill(param_00.target);
|
|
}
|
|
}
|
|
|
|
self.var_223 = 0;
|
|
param_00 method_830F("auto_ai");
|
|
param_00 method_807E();
|
|
var_02 = spawn("script_origin",(0,0,0));
|
|
var_03 = spawn("script_model",(0,0,0));
|
|
var_03.var_EB9C = 3;
|
|
if(getdvar("mg42") != "off")
|
|
{
|
|
var_03 setmodel("temp");
|
|
}
|
|
|
|
var_03 thread func_116C2(param_00,var_02);
|
|
level thread func_A5F9(self,"death",var_02,var_03);
|
|
level thread func_A5F9(self,"auto_ai",var_02,var_03);
|
|
param_00.var_D2F7 = 0;
|
|
var_04 = 0;
|
|
var_05 = getentarray("mg42_target","targetname");
|
|
if(var_05.size > 0)
|
|
{
|
|
var_06 = 1;
|
|
var_07 = var_05[randomint(var_05.size)].origin;
|
|
thread func_FE6F(var_05);
|
|
func_BC9D(param_00);
|
|
self.var_11515 = var_02;
|
|
param_00 method_830F("manual_ai");
|
|
param_00 method_8347(var_02);
|
|
param_00 notify("startfiring");
|
|
var_08 = 15;
|
|
var_09 = 0.08;
|
|
var_0A = 0.05;
|
|
var_02.origin = var_05[randomint(var_05.size)].origin;
|
|
var_0B = 0;
|
|
while(!isdefined(level.var_CFE7))
|
|
{
|
|
var_07 = var_02.origin;
|
|
if(distance(var_07,var_05[self.var_86EA].origin) > var_08)
|
|
{
|
|
var_0C = vectornormalize(var_05[self.var_86EA].origin - var_07);
|
|
var_0C = var_0C * var_08;
|
|
var_07 = var_07 + var_0C;
|
|
}
|
|
else
|
|
{
|
|
self notify("next_target");
|
|
}
|
|
|
|
var_02.origin = var_07;
|
|
wait(0.1);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
for(var_0D = 0;var_0D < 1;var_0D = var_0D + var_0A)
|
|
{
|
|
var_02.origin = var_07 * 1 - var_0D + level.player getorigin() + func_10B5A() * var_0D;
|
|
if(func_D279())
|
|
{
|
|
var_0D = 2;
|
|
}
|
|
|
|
wait(var_09);
|
|
}
|
|
|
|
var_0E = level.player getorigin();
|
|
while(!func_D279())
|
|
{
|
|
var_02.origin = level.player getorigin();
|
|
var_0F = var_02.origin - var_0E;
|
|
var_02.origin = var_02.origin + var_0F + func_10B5A();
|
|
var_0E = level.player getorigin();
|
|
wait(0.1);
|
|
}
|
|
|
|
if(func_D279())
|
|
{
|
|
var_0B = gettime() + 1500 + randomfloat(4000);
|
|
while(func_D279() && isdefined(level.var_CFE7.target) && gettime() < var_0B)
|
|
{
|
|
var_10 = getentarray(level.var_CFE7.target,"targetname");
|
|
var_10 = var_10[randomint(var_10.size)];
|
|
var_02.origin = var_10.origin + (randomfloat(30) - 15,randomfloat(30) - 15,randomfloat(40) - 60);
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
self notify("next_target");
|
|
while(func_D279())
|
|
{
|
|
var_07 = var_02.origin;
|
|
if(distance(var_07,var_05[self.var_86EA].origin) > var_08)
|
|
{
|
|
var_0C = vectornormalize(var_05[self.var_86EA].origin - var_07);
|
|
var_0C = var_0C * var_08;
|
|
var_07 = var_07 + var_0C;
|
|
}
|
|
else
|
|
{
|
|
self notify("next_target");
|
|
}
|
|
|
|
var_02.origin = var_07;
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
func_BC9D(param_00);
|
|
while(!isdefined(level.var_CFE7))
|
|
{
|
|
if(!param_00.var_D2F7)
|
|
{
|
|
param_00 method_8347(level.player);
|
|
param_00.var_D2F7 = 1;
|
|
var_03.var_114F2 = level.player;
|
|
}
|
|
|
|
wait(0.2);
|
|
}
|
|
|
|
param_00 method_830F("manual_ai");
|
|
func_BC9D(param_00);
|
|
param_00 notify("startfiring");
|
|
var_0B = gettime() + 1500 + randomfloat(4000);
|
|
while(var_0B > gettime())
|
|
{
|
|
if(isdefined(level.var_CFE7))
|
|
{
|
|
var_10 = getentarray(level.var_CFE7.target,"targetname");
|
|
var_10 = var_10[randomint(var_10.size)];
|
|
var_02.origin = var_10.origin + (randomfloat(30) - 15,randomfloat(30) - 15,randomfloat(40) - 60);
|
|
param_00 method_8347(var_02);
|
|
var_03.var_114F2 = var_02;
|
|
wait(randomfloat(1));
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
param_00 notify("stopfiring");
|
|
func_BC9D(param_00);
|
|
if(param_00.var_D2F7)
|
|
{
|
|
param_00 method_830F("auto_ai");
|
|
param_00 method_807E();
|
|
param_00.var_D2F7 = 0;
|
|
var_03.var_114F2 = var_03;
|
|
var_03.origin = (0,0,0);
|
|
}
|
|
|
|
while(isdefined(level.var_CFE7))
|
|
{
|
|
wait(0.2);
|
|
}
|
|
|
|
wait(0.75 + randomfloat(0.2));
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_FE6F(param_00)
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
var_01 = [];
|
|
for(var_02 = 0;var_02 < param_00.size;var_02++)
|
|
{
|
|
var_01[var_02] = 0;
|
|
}
|
|
|
|
for(var_02 = 0;var_02 < param_00.size;var_02++)
|
|
{
|
|
self.var_86EA = randomint(param_00.size);
|
|
self waittill("next_target");
|
|
while(var_01[self.var_86EA])
|
|
{
|
|
self.var_86EA++;
|
|
if(self.var_86EA >= param_00.size)
|
|
{
|
|
self.var_86EA = 0;
|
|
}
|
|
}
|
|
|
|
var_01[self.var_86EA] = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_BC9D(param_00,param_01,param_02)
|
|
{
|
|
self method_82EF(param_00.var_C6EA);
|
|
self.var_15C = level.var_B153;
|
|
self waittill("goal");
|
|
if(isdefined(param_01) && param_01 == "auto_ai")
|
|
{
|
|
param_00 method_830F("auto_ai");
|
|
if(isdefined(param_02))
|
|
{
|
|
param_00 method_8347(param_02);
|
|
}
|
|
else
|
|
{
|
|
param_00 method_807E();
|
|
}
|
|
}
|
|
|
|
self method_83D7(param_00);
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_116C2(param_00,param_01)
|
|
{
|
|
if(getdvar("mg42") == "off")
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_114F2 = self;
|
|
for(;;)
|
|
{
|
|
self.origin = param_01.origin;
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_12A42(param_00)
|
|
{
|
|
var_01 = getent(param_00.var_263A,"targetname");
|
|
var_02 = 0.5;
|
|
if(isdefined(var_01.var_EEF6))
|
|
{
|
|
var_02 = var_01.var_EEF6;
|
|
}
|
|
|
|
var_03 = 2;
|
|
if(isdefined(var_01.var_EEF5))
|
|
{
|
|
var_02 = var_01.var_EEF5;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_01 waittill("turret_deactivate");
|
|
wait(var_02 + randomfloat(var_03 - var_02));
|
|
while(!function_011B(var_01))
|
|
{
|
|
func_129EA(param_00,var_01);
|
|
wait(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_129EA(param_00,param_01)
|
|
{
|
|
var_02 = function_0072();
|
|
for(var_03 = 0;var_03 < var_02.size;var_03++)
|
|
{
|
|
if(var_02[var_03] method_81A5(param_00.origin) && var_02[var_03] method_8063(param_01))
|
|
{
|
|
var_04 = var_02[var_03].var_1A4;
|
|
var_02[var_03].var_1A4 = 0;
|
|
if(!var_02[var_03] method_83D4(param_00))
|
|
{
|
|
var_02[var_03].var_1A4 = var_04;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_F6C3()
|
|
{
|
|
func_967C();
|
|
var_00 = getentarray("misc_turret","code_classname");
|
|
var_01 = scripts\sp\_utility::func_7E72();
|
|
for(var_02 = 0;var_02 < var_00.size;var_02++)
|
|
{
|
|
if(isdefined(var_00[var_02].var_EEAB))
|
|
{
|
|
switch(var_00[var_02].var_EEAB)
|
|
{
|
|
case "easy":
|
|
var_01 = "easy";
|
|
break;
|
|
|
|
case "medium":
|
|
var_01 = "medium";
|
|
break;
|
|
|
|
case "hard":
|
|
var_01 = "hard";
|
|
break;
|
|
|
|
case "fu":
|
|
var_01 = "fu";
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
func_B6A7(var_00[var_02],var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_B6A7(param_00,param_01)
|
|
{
|
|
param_00.var_C0 = level.var_B6C2[param_01]["convergenceTime"];
|
|
param_00.var_112CF = level.var_B6C2[param_01]["suppressionTime"];
|
|
param_00.accuracy = level.var_B6C2[param_01]["accuracy"];
|
|
param_00.var_1B02 = level.var_B6C2[param_01]["aiSpread"];
|
|
param_00.var_D427 = level.var_B6C2[param_01]["playerSpread"];
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_B6A9(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 0.88;
|
|
}
|
|
|
|
self endon("death");
|
|
self notify("stop_mg42_target_drones");
|
|
self endon("stop_mg42_target_drones");
|
|
self.var_5CAD = 0;
|
|
if(!isdefined(self.var_ED98))
|
|
{
|
|
self.var_ED98 = 0;
|
|
}
|
|
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 0;
|
|
}
|
|
|
|
self method_830F("manual_ai");
|
|
var_03 = scripts\sp\_utility::func_7E72();
|
|
if(!isdefined(level.var_5CC3))
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_04 = 0;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(var_04)
|
|
{
|
|
if(isdefined(self.var_5CC6))
|
|
{
|
|
self method_830F(self.var_5041);
|
|
}
|
|
else if(param_00)
|
|
{
|
|
self method_830F("auto_nonai");
|
|
}
|
|
else
|
|
{
|
|
self method_830F("auto_ai");
|
|
}
|
|
|
|
level waittill("new_drone");
|
|
}
|
|
|
|
if(!isdefined(self.var_C3EA))
|
|
{
|
|
self.var_C3EA = self.var_C0;
|
|
}
|
|
|
|
self.var_C0 = 2;
|
|
if(!param_00)
|
|
{
|
|
var_05 = self method_8165();
|
|
if(!isalive(var_05) || isplayer(var_05))
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
param_01 = var_05.team;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_05 = undefined;
|
|
}
|
|
|
|
if(param_01 == "allies")
|
|
{
|
|
var_06 = "axis";
|
|
}
|
|
else
|
|
{
|
|
var_06 = "allies";
|
|
}
|
|
|
|
while(level.var_5CC3[var_06].var_A9A1)
|
|
{
|
|
scripts\common\utility::func_AED4("mg42_drones");
|
|
if(!level.var_5CC3[var_06].var_A9A1)
|
|
{
|
|
scripts\common\utility::func_12BD1("mg42_drones");
|
|
break;
|
|
}
|
|
|
|
var_07 = func_7868(var_06,param_02);
|
|
scripts\common\utility::func_12BD1("mg42_drones");
|
|
if(!isdefined(self.var_ED98) || !self.var_ED98)
|
|
{
|
|
wait(0.05);
|
|
break;
|
|
}
|
|
|
|
if(!isdefined(var_07))
|
|
{
|
|
wait(0.05);
|
|
break;
|
|
}
|
|
|
|
if(isdefined(self.var_1F5F))
|
|
{
|
|
[[ self.var_1F5F ]]();
|
|
}
|
|
|
|
if(param_00)
|
|
{
|
|
self method_830F("manual");
|
|
}
|
|
else
|
|
{
|
|
self method_830F("manual_ai");
|
|
}
|
|
|
|
self method_8347(var_07,(0,0,32));
|
|
func_5C88(var_07,1,param_02);
|
|
self method_807E();
|
|
self method_83A3();
|
|
if(!param_00 && !isdefined(self method_8165()) && self method_8165() == var_05)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
self.var_C0 = self.var_C3EA;
|
|
self.var_C3EA = undefined;
|
|
self method_807E();
|
|
self method_83A3();
|
|
if(level.var_5CC3[var_06].var_A9A1)
|
|
{
|
|
var_04 = 0;
|
|
continue;
|
|
}
|
|
|
|
var_04 = 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_5C88(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
param_00 endon("death");
|
|
var_03 = gettime() + param_01 * 1000;
|
|
var_04 = 0;
|
|
while(var_03 > gettime() || var_04)
|
|
{
|
|
scripts\common\utility::func_AED4("mg42_drones_target_trace");
|
|
var_05 = self method_8166(1);
|
|
if(!bullettracepassed(self gettagorigin("tag_flash"),param_00.origin + (0,0,40),0,param_00))
|
|
{
|
|
scripts\common\utility::func_12BD1("mg42_drones_target_trace");
|
|
break;
|
|
}
|
|
else if(isdefined(var_05) && distance(var_05.origin,self.origin) < distance(self.origin,param_00.origin))
|
|
{
|
|
scripts\common\utility::func_12BD1("mg42_drones_target_trace");
|
|
break;
|
|
}
|
|
|
|
if(!var_04)
|
|
{
|
|
self method_8398();
|
|
var_04 = 1;
|
|
}
|
|
|
|
scripts\sp\_utility::func_12BDD("mg42_drones_target_trace");
|
|
}
|
|
|
|
self method_83A3();
|
|
scripts\sp\_utility::func_11165(level.var_5CC3[param_00.team],1);
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_7868(param_00,param_01)
|
|
{
|
|
if(level.var_5CC3[param_00].var_A9A1 < 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_02 = undefined;
|
|
var_03 = anglestoforward(self.angles);
|
|
for(var_04 = 0;var_04 < level.var_5CC3[param_00].var_A9A1;var_04++)
|
|
{
|
|
if(!isdefined(level.var_5CC3[param_00].var_2274[var_04]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 = vectortoangles(level.var_5CC3[param_00].var_2274[var_04].origin - self.origin);
|
|
var_06 = anglestoforward(var_05);
|
|
if(vectordot(var_03,var_06) < param_01)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 = level.var_5CC3[param_00].var_2274[var_04];
|
|
if(!bullettracepassed(self gettagorigin("tag_flash"),var_02 method_810C(),0,var_02))
|
|
{
|
|
var_02 = undefined;
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
var_07 = self method_8166(1);
|
|
if(!isdefined(self.var_D836))
|
|
{
|
|
if(isdefined(var_02) && isdefined(var_07) && distancesquared(self.origin,var_07.origin) < distancesquared(self.origin,var_02.origin))
|
|
{
|
|
var_02 = undefined;
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_EB7D()
|
|
{
|
|
var_00 = getentarray("misc_turret","code_classname");
|
|
var_01 = [];
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(isdefined(var_03.var_336))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03.var_EEF4) && var_03.var_EEF4)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03.var_9FF0))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
|
|
if(!var_01.size)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_05 = var_01;
|
|
foreach(var_07 in var_01)
|
|
{
|
|
foreach(var_09 in getnodesinradius(var_07.origin,50,0))
|
|
{
|
|
if(var_09.type == "Path")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_09.type == "Begin")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_09.type == "End")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0A = anglestoforward((0,var_09.angles[1],0));
|
|
var_0B = anglestoforward((0,var_07.angles[1],0));
|
|
var_0C = vectordot(var_0A,var_0B);
|
|
if(var_0C < 0.9)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 = scripts\common\utility::func_22A9(var_05,var_07);
|
|
var_09.var_12A72 = spawn("script_origin",var_07.origin);
|
|
var_09.var_12A72.angles = var_07.angles;
|
|
var_09.var_12A72.var_205 = var_09;
|
|
var_09.var_12A72.var_1B8 = 45;
|
|
var_09.var_12A72.var_269 = 45;
|
|
var_09.var_12A72.var_349 = 15;
|
|
var_09.var_12A72.var_6B = 15;
|
|
if(isdefined(var_07.var_1B8))
|
|
{
|
|
var_09.var_12A72.var_1B8 = min(var_07.var_1B8,45);
|
|
}
|
|
|
|
if(isdefined(var_07.var_269))
|
|
{
|
|
var_09.var_12A72.var_269 = min(var_07.var_269,45);
|
|
}
|
|
|
|
if(isdefined(var_07.var_349))
|
|
{
|
|
var_09.var_12A72.var_349 = min(var_07.var_349,15);
|
|
}
|
|
|
|
if(isdefined(var_07.var_6B))
|
|
{
|
|
var_09.var_12A72.var_6B = min(var_07.var_6B,15);
|
|
}
|
|
|
|
var_07 delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_263B()
|
|
{
|
|
var_00 = getentarray("misc_turret","code_classname");
|
|
var_01 = [];
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(!isdefined(var_03.var_336) || tolower(var_03.var_336) != "auto_mgturret")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_03.var_6A0B))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_03.var_ED69))
|
|
{
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
}
|
|
|
|
if(!var_01.size)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_05 = var_01;
|
|
foreach(var_07 in var_01)
|
|
{
|
|
foreach(var_09 in getnodesinradius(var_07.origin,70))
|
|
{
|
|
if(var_09.type == "Path")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_09.type == "Begin")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_09.type == "End")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0A = anglestoforward((0,var_09.angles[1],0));
|
|
var_0B = anglestoforward((0,var_07.angles[1],0));
|
|
var_0C = vectordot(var_0A,var_0B);
|
|
if(var_0C < 0.9)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 = scripts\common\utility::func_22A9(var_05,var_07);
|
|
var_09.var_129B9 = var_07;
|
|
var_07.var_205 = var_09;
|
|
var_07.var_9F46 = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_EB66()
|
|
{
|
|
self.var_FC5E = [];
|
|
self.var_FC5E["connected"] = [];
|
|
self.var_FC5E["ambush"] = [];
|
|
if(!isdefined(self.var_6A0B))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.var_FC5D))
|
|
{
|
|
level.var_FC5D = [];
|
|
}
|
|
|
|
level.var_FC5D[self.var_6A0B] = self;
|
|
if(isdefined(self.var_EEF7))
|
|
{
|
|
var_00 = strtok(self.var_EEF7," ");
|
|
for(var_01 = 0;var_01 < var_00.size;var_01++)
|
|
{
|
|
self.var_FC5E["connected"][var_00[var_01]] = 1;
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_EEF3))
|
|
{
|
|
var_00 = strtok(self.var_EEF3," ");
|
|
for(var_01 = 0;var_01 < var_00.size;var_01++)
|
|
{
|
|
self.var_FC5E["ambush"][var_00[var_01]] = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_E2DA()
|
|
{
|
|
self notify("gun_placed_again");
|
|
self endon("gun_placed_again");
|
|
self waittill("restore_default_drop_pitch");
|
|
wait(1);
|
|
self method_8264();
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_5EEF()
|
|
{
|
|
thread func_5EF0();
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_5EF0()
|
|
{
|
|
var_00 = spawn("script_model",(0,0,0));
|
|
var_00.origin = self gettagorigin(level.var_D66F);
|
|
var_00.angles = self gettagangles(level.var_D66F);
|
|
var_00 setmodel(self.var_12A78);
|
|
var_01 = anglestoforward(self.angles);
|
|
var_01 = var_01 * 100;
|
|
var_00 movegravity(var_01,0.5);
|
|
self detach(self.var_12A78,level.var_D66F);
|
|
self.var_12A78 = undefined;
|
|
wait(0.7);
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_12A60()
|
|
{
|
|
self endon("kill_turret_detach_thread");
|
|
self endon("dropped_gun");
|
|
self waittill("death");
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
func_5EEF();
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_12A61()
|
|
{
|
|
self endon("death");
|
|
self endon("kill_turret_detach_thread");
|
|
self waittill("dropped_gun");
|
|
self detach(self.var_12A78,level.var_D66F);
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_E2DB()
|
|
{
|
|
self.var_E80C = undefined;
|
|
scripts\sp\_utility::func_F2A4(::scripts\anim\init::func_104);
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_E2E2()
|
|
{
|
|
self waittill("turret_deactivate");
|
|
self method_8264();
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_12DB9(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("end_mg_behavior");
|
|
self endon("stop_updating_enemy_target_pos");
|
|
for(;;)
|
|
{
|
|
self waittill("saw_enemy");
|
|
param_00.origin = self.var_A8BB;
|
|
}
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_BC78(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("end_mg_behavior");
|
|
self endon("stop_updating_enemy_target_pos");
|
|
var_02 = self.var_129B9.origin + (0,0,16);
|
|
var_03 = param_01.origin + (0,0,16);
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
if(sighttracepassed(param_00.origin,var_03,0,undefined))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_04 = vectortoangles(var_02 - param_00.origin);
|
|
var_05 = anglestoforward(var_04);
|
|
var_05 = var_05 * 8;
|
|
param_00.origin = param_00.origin + var_05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_DDE3(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("end_mg_behavior");
|
|
self endon("stop_updating_enemy_target_pos");
|
|
param_00.var_2FAE = [];
|
|
for(;;)
|
|
{
|
|
param_00.var_2FAE[param_00.var_2FAE.size] = self.origin + (0,0,50);
|
|
wait(0.35);
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_1A30(param_00,param_01)
|
|
{
|
|
if(!isalive(self.var_4B6D) && self method_805F(self.var_4B6D))
|
|
{
|
|
param_01.origin = self.var_A8BB;
|
|
return;
|
|
}
|
|
|
|
var_02 = anglestoforward(param_00.angles);
|
|
for(var_03 = param_01.var_2FAE.size - 3;var_03 >= 0;var_03--)
|
|
{
|
|
var_04 = param_01.var_2FAE[var_03];
|
|
var_05 = vectornormalize(var_04 - param_00.origin);
|
|
var_06 = vectordot(var_02,var_05);
|
|
if(var_06 < 0.75)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
param_01.origin = var_04;
|
|
if(sighttracepassed(param_00.origin,var_04,0,undefined))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_6C73(param_00)
|
|
{
|
|
var_01 = func_7BC7(param_00);
|
|
var_02 = var_01["spot"];
|
|
var_03 = var_01["type"];
|
|
if(!isdefined(var_02))
|
|
{
|
|
return;
|
|
}
|
|
|
|
func_E1C9(var_02);
|
|
thread func_12DB9(param_00);
|
|
thread func_BC78(param_00,var_02);
|
|
if(var_03 == "ambush")
|
|
{
|
|
thread func_DDE3(param_00);
|
|
}
|
|
|
|
if(var_02.var_9F46)
|
|
{
|
|
func_AB14(var_02);
|
|
}
|
|
else
|
|
{
|
|
func_CB35(var_02);
|
|
func_E826(var_02);
|
|
}
|
|
|
|
self notify("stop_updating_enemy_target_pos");
|
|
if(var_03 == "ambush")
|
|
{
|
|
func_1A30(var_02,param_00);
|
|
}
|
|
|
|
var_02 method_8347(param_00);
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_10389(param_00)
|
|
{
|
|
param_00 method_830F("manual");
|
|
wait(0.5);
|
|
param_00 method_830F("manual_ai");
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_AB14(param_00)
|
|
{
|
|
self method_83AF();
|
|
scripts\anim\shared::func_CC2C(self.var_D8E1,"none");
|
|
var_01 = func_7D25(param_00);
|
|
var_02 = function_00CE(param_00.origin,param_00.angles,var_01);
|
|
self method_8331(var_02);
|
|
self waittill("runto_arrived");
|
|
func_13030(param_00);
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_CB35(param_00)
|
|
{
|
|
self method_83AF();
|
|
self.var_129B9 func_8EAE();
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_7D25(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_01["saw_bipod_stand"] = level.var_B6B0["bipod_stand_setup"];
|
|
var_01["saw_bipod_crouch"] = level.var_B6B0["bipod_crouch_setup"];
|
|
var_01["saw_bipod_prone"] = level.var_B6B0["bipod_prone_setup"];
|
|
return var_01[param_00.var_39B];
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_E826(param_00)
|
|
{
|
|
var_01 = self.health;
|
|
param_00 endon("turret_deactivate");
|
|
self.var_B6A1 = param_00;
|
|
self endon("death");
|
|
self endon("dropped_gun");
|
|
var_02 = func_7D25(param_00);
|
|
self.var_12A78 = "weapon_mg42_carry";
|
|
self notify("kill_get_gun_back_on_killanimscript_thread");
|
|
scripts\anim\shared::func_CC2C(self.var_394,"none");
|
|
if(self method_8198())
|
|
{
|
|
self.health = 1;
|
|
}
|
|
|
|
self attach(self.var_12A78,level.var_D66F);
|
|
thread func_12A60();
|
|
var_03 = function_00CE(param_00.origin,param_00.angles,var_02);
|
|
self method_8331(var_03);
|
|
wait(0.05);
|
|
scripts\sp\_utility::func_F2A4(::scripts\anim\combat::func_68C7);
|
|
scripts\common\utility::func_414E("move");
|
|
scripts\sp\_utility::func_F398("cover_crouch",::func_906E);
|
|
while(distance(self.origin,var_03) > 16)
|
|
{
|
|
self method_8331(var_03);
|
|
wait(0.05);
|
|
}
|
|
|
|
self notify("kill_turret_detach_thread");
|
|
if(self method_8198())
|
|
{
|
|
self.health = var_01;
|
|
}
|
|
|
|
if(soundexists("weapon_setup"))
|
|
{
|
|
function_0178("weapon_setup",self.origin);
|
|
}
|
|
|
|
self method_8018("setup_done",param_00.origin,param_00.angles,var_02);
|
|
func_E2DB();
|
|
self waittillmatch("end","setup_done");
|
|
param_00 notify("restore_default_drop_pitch");
|
|
param_00 func_10106();
|
|
scripts\anim\shared::func_CC2C(self.var_D8E1,"right");
|
|
func_13030(param_00);
|
|
self detach(self.var_12A78,level.var_D66F);
|
|
scripts\sp\_utility::func_F2A4(::scripts\anim\init::func_104);
|
|
self notify("bcs_portable_turret_setup");
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_BC92()
|
|
{
|
|
self method_8331(self.var_E894);
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_906E()
|
|
{
|
|
self endon("killanimscript");
|
|
self waittill("death");
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_130FD()
|
|
{
|
|
if(!isdefined(self.var_129B9))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return self.var_129B9.var_222 == self;
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_12A4E()
|
|
{
|
|
if(!func_130FD())
|
|
{
|
|
scripts\common\utility::func_414E("move");
|
|
return;
|
|
}
|
|
|
|
var_00 = func_6C84("connected");
|
|
var_01 = var_00["spots"];
|
|
if(!var_01.size)
|
|
{
|
|
scripts\common\utility::func_414E("move");
|
|
return;
|
|
}
|
|
|
|
var_02 = self.var_205;
|
|
if(!isdefined(var_02) || !scripts\common\utility::func_2286(var_01,var_02))
|
|
{
|
|
var_03 = func_8194();
|
|
for(var_04 = 0;var_04 < var_01.size;var_04++)
|
|
{
|
|
var_02 = scripts\common\utility::random(var_01);
|
|
if(isdefined(var_03[var_02.origin + ""]))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
var_05 = var_02.var_129B9;
|
|
if(isdefined(var_05.var_E1CA))
|
|
{
|
|
return;
|
|
}
|
|
|
|
func_E1C9(var_05);
|
|
if(var_05.var_9F46)
|
|
{
|
|
func_AB14(var_05);
|
|
}
|
|
else
|
|
{
|
|
func_E826(var_05);
|
|
}
|
|
|
|
scripts\sp\_mg_penetration::func_8715(var_02.var_129B9);
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_13030(param_00)
|
|
{
|
|
var_01 = self method_83D7(param_00);
|
|
if(var_01)
|
|
{
|
|
scripts\sp\_utility::func_F398("move",::func_12A4E);
|
|
self.var_129B9 = param_00;
|
|
thread func_B6A3(param_00);
|
|
param_00 method_830F("manual_ai");
|
|
param_00 thread func_E2E2();
|
|
self.var_129B9 = param_00;
|
|
param_00.var_222 = self;
|
|
return 1;
|
|
}
|
|
|
|
param_00 method_8264();
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_7BC7(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_01[var_01.size] = ::func_6C8D;
|
|
var_01[var_01.size] = ::func_6C90;
|
|
var_01 = scripts\common\utility::array_randomize(var_01);
|
|
for(var_02 = 0;var_02 < var_01.size;var_02++)
|
|
{
|
|
var_03 = [[ var_01[var_02] ]](param_00);
|
|
if(!isdefined(var_03["spots"]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03["spot"] = scripts\common\utility::random(var_03["spots"]);
|
|
return var_03;
|
|
}
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_8194()
|
|
{
|
|
var_00 = [];
|
|
var_01 = function_0072();
|
|
for(var_02 = 0;var_02 < var_01.size;var_02++)
|
|
{
|
|
if(!isdefined(var_01[var_02].var_205))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00[var_01[var_02].var_205.origin + ""] = 1;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_6C84(param_00)
|
|
{
|
|
var_01 = level.var_FC5D;
|
|
var_02 = [];
|
|
var_03 = getarraykeys(var_01);
|
|
var_04 = func_8194();
|
|
var_04[self.var_205.origin + ""] = undefined;
|
|
for(var_05 = 0;var_05 < var_03.size;var_05++)
|
|
{
|
|
var_06 = var_03[var_05];
|
|
if(var_01[var_06] == self.var_129B9)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_07 = getarraykeys(self.var_129B9.var_FC5E[param_00]);
|
|
for(var_08 = 0;var_08 < var_07.size;var_08++)
|
|
{
|
|
if(var_01[var_06].var_6A0B + "" != var_07[var_08])
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_01[var_06].var_E1CA))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_04[var_01[var_06].var_205.origin + ""]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distance(self.var_15B,var_01[var_06].origin) > self.var_15C)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02[var_02.size] = var_01[var_06];
|
|
}
|
|
}
|
|
|
|
var_09 = [];
|
|
var_09["type"] = param_00;
|
|
var_09["spots"] = var_02;
|
|
return var_09;
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_6C90(param_00)
|
|
{
|
|
return func_6C84("ambush");
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_6C8D(param_00)
|
|
{
|
|
var_01 = func_6C84("connected");
|
|
var_02 = var_01["spots"];
|
|
if(!var_02.size)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_03 = [];
|
|
for(var_04 = 0;var_04 < var_02.size;var_04++)
|
|
{
|
|
if(!scripts\common\utility::func_13D90(var_02[var_04].origin,var_02[var_04].angles,param_00.origin,0.75))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!sighttracepassed(param_00.origin,var_02[var_04].origin + (0,0,16),0,undefined))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03[var_03.size] = var_02[var_04];
|
|
}
|
|
|
|
var_01["spots"] = var_03;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_D670()
|
|
{
|
|
func_EB66();
|
|
var_00 = 1;
|
|
self.var_9F46 = 1;
|
|
self.var_E1CA = undefined;
|
|
if(isdefined(self.var_9FF0))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(self.var_2AF & var_00)
|
|
{
|
|
return;
|
|
}
|
|
|
|
func_8EAE();
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_8EAE()
|
|
{
|
|
self notify("stop_checking_for_flanking");
|
|
self.var_9F46 = 0;
|
|
self hide();
|
|
self.var_103FB = 0;
|
|
self makeunusable();
|
|
self method_82D1(0);
|
|
thread func_E2DA();
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_10106()
|
|
{
|
|
self show();
|
|
self.var_103FB = 1;
|
|
self makeusable();
|
|
self.var_9F46 = 1;
|
|
thread func_1101D();
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_1101D()
|
|
{
|
|
self endon("stop_checking_for_flanking");
|
|
self waittill("turret_deactivate");
|
|
if(isalive(self.var_222))
|
|
{
|
|
self.var_222 notify("end_mg_behavior");
|
|
}
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_12A05(param_00)
|
|
{
|
|
var_01 = param_00 method_8165();
|
|
if(!isdefined(var_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return var_01 == self;
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_6304(param_00)
|
|
{
|
|
func_13818(param_00);
|
|
param_00.var_E1CA = undefined;
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_13818(param_00)
|
|
{
|
|
param_00 endon("turret_deactivate");
|
|
self endon("death");
|
|
self waittill("end_mg_behavior");
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_E1C9(param_00)
|
|
{
|
|
param_00.var_E1CA = self;
|
|
thread func_6304(param_00);
|
|
} |