mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-10 07:27:55 -05:00
2098 lines
36 KiB
Plaintext
2098 lines
36 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\mp\bots\_bots_util.gsc
|
|
* Game: Call of Duty: WWII
|
|
* Platform: PC
|
|
* Function Count: 82
|
|
* Decompile Time: 1426 ms
|
|
* Timestamp: 10/27/2023 3:10:06 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_19FA(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = getnodesinradius(self.var_116,param_01,param_00);
|
|
var_05 = [];
|
|
var_06 = self getnearestnode();
|
|
var_07 = anglestoforward(self getangles());
|
|
var_08 = vectornormalize(var_07 * (1,1,0));
|
|
foreach(var_0A in var_04)
|
|
{
|
|
var_0B = vectornormalize(var_0A.var_116 - self.var_116 * (1,1,0));
|
|
var_0C = vectordot(var_0B,var_08);
|
|
if(var_0C > param_02)
|
|
{
|
|
if(!param_03 || isdefined(var_06) && function_01F4(var_0A,var_06,1))
|
|
{
|
|
var_05[var_05.size] = var_0A;
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_1A0B(param_00,param_01)
|
|
{
|
|
if(param_00 == "none")
|
|
{
|
|
return param_01 == "none";
|
|
}
|
|
else if(param_00 == "hunt")
|
|
{
|
|
return param_01 == "hunt" || param_01 == "none";
|
|
}
|
|
else if(param_00 == "guard")
|
|
{
|
|
return param_01 == "guard" || param_01 == "hunt" || param_01 == "none";
|
|
}
|
|
else if(param_00 == "objective")
|
|
{
|
|
return param_01 == "objective" || param_01 == "guard" || param_01 == "hunt" || param_01 == "none";
|
|
}
|
|
else if(param_00 == "critical")
|
|
{
|
|
return param_01 == "critical" || param_01 == "objective" || param_01 == "guard" || param_01 == "hunt" || param_01 == "none";
|
|
}
|
|
else if(param_00 == "tactical")
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_1AD5(param_00)
|
|
{
|
|
self botsetpersonality(param_00);
|
|
maps/mp/bots/_bots_personality::func_1939();
|
|
self method_8358();
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_1AD3(param_00,param_01)
|
|
{
|
|
if(param_00 == "default")
|
|
{
|
|
param_00 = func_1974();
|
|
}
|
|
|
|
var_03 = self botgetdifficulty();
|
|
self botsetdifficulty(param_00);
|
|
if(isplayer(self) && var_03 != param_00)
|
|
{
|
|
maps\mp\_utility::func_8568();
|
|
var_04 = maps\mp\gametypes\_rank::func_4653(maps\mp\gametypes\_rank::func_46EC());
|
|
self.var_12C["rank"] = var_04;
|
|
var_05 = self.var_12C["prestige"];
|
|
self setrank(var_04,var_05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_1974()
|
|
{
|
|
if(!isdefined(level.var_19AE))
|
|
{
|
|
level.var_19AE = [];
|
|
level.var_19AE[level.var_19AE.size] = "easy";
|
|
level.var_19AE[level.var_19AE.size] = "normal";
|
|
level.var_19AE[level.var_19AE.size] = "hard";
|
|
}
|
|
|
|
if(!isdefined(level.var_1A86))
|
|
{
|
|
level.var_1A86 = [];
|
|
}
|
|
|
|
if(!isdefined(level.var_1A86["allies"]))
|
|
{
|
|
level.var_1A86["allies"] = 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_1A86["axis"]))
|
|
{
|
|
level.var_1A86["axis"] = 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_1A86["all"]))
|
|
{
|
|
level.var_1A86["all"] = 0;
|
|
}
|
|
|
|
if(!isdefined(self.var_12C["bot_chosen_difficulty"]))
|
|
{
|
|
var_00 = undefined;
|
|
if(level.var_984D)
|
|
{
|
|
var_01 = self.var_1A7;
|
|
if(!isdefined(var_01))
|
|
{
|
|
var_01 = self.var_1AFA;
|
|
}
|
|
|
|
if(!isdefined(var_01))
|
|
{
|
|
var_01 = self.var_12C["team"];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_01 = "all";
|
|
}
|
|
|
|
var_00 = level.var_1A86[var_01];
|
|
var_02 = level.var_19AE[var_00];
|
|
self.var_12C["bot_chosen_difficulty"] = func_4151(var_02);
|
|
level.var_1A86[var_01] = level.var_1A86[var_01] + 1 % level.var_19AE.size;
|
|
}
|
|
|
|
return self.var_12C["bot_chosen_difficulty"];
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_4151(param_00)
|
|
{
|
|
if(param_00 == "easy")
|
|
{
|
|
return "recruit";
|
|
}
|
|
|
|
if(param_00 == "normal")
|
|
{
|
|
return "regular";
|
|
}
|
|
|
|
if(param_00 == "hard")
|
|
{
|
|
return common_scripts\utility::func_7A33(["hardened","veteran"]);
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_1A28()
|
|
{
|
|
if(func_1A2D())
|
|
{
|
|
if(self.var_19AC == "capture" || self.var_19AC == "capture_zone")
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_1A32()
|
|
{
|
|
if(func_1A2D())
|
|
{
|
|
if(self.var_19AC == "patrol")
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_1A33()
|
|
{
|
|
if(func_1A2D())
|
|
{
|
|
if(self.var_19AC == "protect" || self.var_19AC == "protect_zone")
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_1A27()
|
|
{
|
|
if(func_1A2D())
|
|
{
|
|
if(self.var_19AC == "bodyguard")
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_1A2D()
|
|
{
|
|
return isdefined(self.var_19A6);
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_1A2E(param_00)
|
|
{
|
|
if(func_1A2D())
|
|
{
|
|
if(func_1B1C(self.var_19A7,param_00))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_1A30(param_00)
|
|
{
|
|
if(func_1A27() && self.var_19A1 == param_00)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_37DF(param_00,param_01,param_02)
|
|
{
|
|
var_03 = (0,0,11);
|
|
var_04 = (0,0,40);
|
|
var_05 = undefined;
|
|
if(param_02 == "stand")
|
|
{
|
|
return 1;
|
|
}
|
|
else if(param_02 == "crouch")
|
|
{
|
|
var_05 = var_04;
|
|
}
|
|
else if(param_02 == "prone")
|
|
{
|
|
var_05 = var_03;
|
|
}
|
|
|
|
return sighttracepassed(param_01 + var_05,param_00 + var_05,0,undefined);
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_4187(param_00,param_01)
|
|
{
|
|
var_02 = func_3F07(param_00,param_01);
|
|
if(isdefined(var_02))
|
|
{
|
|
var_02 = func_7C84(var_02);
|
|
var_02 = func_4084(var_02);
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_3F08(param_00,param_01)
|
|
{
|
|
return getpathdist(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_3F07(param_00,param_01)
|
|
{
|
|
return getnodesonpath(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_3F03(param_00,param_01,param_02)
|
|
{
|
|
return botgetclosestnavigablepoint(param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_670D(param_00,param_01)
|
|
{
|
|
if(!isdefined(self.var_6AA8))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self.var_6AA8[param_00]) && isdefined(self.var_6AA8[param_00][param_01]) && self.var_6AA8[param_00][param_01])
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(self.var_6AA8[param_01]) && isdefined(self.var_6AA8[param_01][param_00]) && self.var_6AA8[param_01][param_00])
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_4084(param_00)
|
|
{
|
|
var_01 = param_00;
|
|
for(var_02 = 0;var_02 < param_00.size;var_02++)
|
|
{
|
|
var_03 = function_0204(param_00[var_02]);
|
|
for(var_04 = 0;var_04 < var_03.size;var_04++)
|
|
{
|
|
if(!common_scripts\utility::func_F79(var_01,var_03[var_04]))
|
|
{
|
|
var_01 = common_scripts\utility::func_F6F(var_01,var_03[var_04]);
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_43CA(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
foreach(var_04 in param_00)
|
|
{
|
|
if(function_01F4(var_04,param_01,1))
|
|
{
|
|
var_02 = common_scripts\utility::func_F6F(var_02,var_04);
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_7C84(param_00)
|
|
{
|
|
param_00[param_00.size - 1] = undefined;
|
|
param_00[0] = undefined;
|
|
return common_scripts\utility::func_FA0(param_00);
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_1B20(param_00)
|
|
{
|
|
while(!func_194B(param_00))
|
|
{
|
|
wait(0.5);
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_194B(param_00)
|
|
{
|
|
if(botautoconnectenabled() != "off")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(level.var_AA1) && level.var_AA1)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(func_1B3C(param_00))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_1B22(param_00)
|
|
{
|
|
var_01 = gettime();
|
|
for(;;)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
if(gettime() > var_01 + param_00)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(self.var_88))
|
|
{
|
|
return;
|
|
}
|
|
else if(!func_1A1C())
|
|
{
|
|
return;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_1A1C(param_00)
|
|
{
|
|
if(self.var_5B21 == 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = gettime() - self.var_5B21;
|
|
var_02 = level.var_1A8C;
|
|
if(isdefined(param_00))
|
|
{
|
|
var_02 = param_00;
|
|
}
|
|
|
|
return var_01 < var_02;
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_1B21(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(!isdefined(param_01) && isdefined(param_02))
|
|
{
|
|
}
|
|
|
|
if((!isdefined(param_01) || !isdefined(param_02)) && isdefined(param_03))
|
|
{
|
|
}
|
|
|
|
var_04 = ["goal","bad_path","no_path","node_relinquished","script_goal_changed"];
|
|
if(isdefined(param_01))
|
|
{
|
|
var_04[var_04.size] = param_01;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
var_04[var_04.size] = param_02;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
var_04[var_04.size] = param_03;
|
|
}
|
|
|
|
if(isdefined(param_00))
|
|
{
|
|
var_05 = common_scripts\utility::func_A710(var_04,param_00);
|
|
}
|
|
else
|
|
{
|
|
var_05 = common_scripts\utility::func_A712(var_05);
|
|
}
|
|
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_1B16(param_00,param_01,param_02)
|
|
{
|
|
level endon("game_ended");
|
|
childthread func_A1DA();
|
|
var_03 = common_scripts\utility::func_A71A(param_00,param_01,param_02,"use_button_no_longer_pressed","finished_use");
|
|
self notify("stop_usebutton_watcher");
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_A1DA(param_00,param_01)
|
|
{
|
|
self endon("stop_usebutton_watcher");
|
|
wait 0.05;
|
|
while(self usebuttonpressed())
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
self notify("use_button_no_longer_pressed");
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_1B3C(param_00)
|
|
{
|
|
foreach(var_02 in level.var_6E97)
|
|
{
|
|
if(isai(var_02))
|
|
{
|
|
if(isdefined(param_00) && param_00)
|
|
{
|
|
if(!maps\mp\_utility::func_5800(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_19F1(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(level.var_37DD))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(isarray(param_01))
|
|
{
|
|
if(isdefined(param_02) && param_02)
|
|
{
|
|
var_03 = undefined;
|
|
var_04 = 999999999;
|
|
foreach(var_06 in param_01)
|
|
{
|
|
var_07 = common_scripts\utility::func_F7E(level.var_37DA,var_06);
|
|
var_08 = level.var_37DB[var_07];
|
|
var_09 = distancesquared(self.var_116,var_08);
|
|
if(var_09 < var_04)
|
|
{
|
|
var_03 = var_06;
|
|
var_04 = var_09;
|
|
}
|
|
}
|
|
|
|
param_01 = var_03;
|
|
}
|
|
else
|
|
{
|
|
param_01 = common_scripts\utility::func_7A33(param_01);
|
|
}
|
|
}
|
|
|
|
var_0B = level.var_37DC[param_01];
|
|
if(!isdefined(param_00) || param_00 == "stand")
|
|
{
|
|
return var_0B;
|
|
}
|
|
else if(param_00 == "crouch")
|
|
{
|
|
var_0C = [];
|
|
foreach(var_0E in var_0B)
|
|
{
|
|
if(var_0E.var_2864[param_01])
|
|
{
|
|
var_0C = common_scripts\utility::func_F6F(var_0C,var_0E);
|
|
}
|
|
}
|
|
|
|
return var_0C;
|
|
}
|
|
else if(var_0C == "prone")
|
|
{
|
|
var_0C = [];
|
|
foreach(var_10 in var_0E)
|
|
{
|
|
if(var_10.var_7779[var_0B])
|
|
{
|
|
var_0E = common_scripts\utility::func_F6F(var_0E,var_10);
|
|
}
|
|
}
|
|
|
|
return var_0E;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_19CE(param_00,param_01,param_02)
|
|
{
|
|
var_03 = undefined;
|
|
var_04 = self.var_19A1 getvelocity();
|
|
if(lengthsquared(var_04) > 100)
|
|
{
|
|
var_05 = getnodesinradius(param_00,param_01 * 1.75,param_01 * 0.5,500);
|
|
var_06 = [];
|
|
var_07 = vectornormalize(var_04);
|
|
for(var_08 = 0;var_08 < var_05.size;var_08++)
|
|
{
|
|
var_09 = vectornormalize(var_05[var_08].var_116 - self.var_19A1.var_116);
|
|
if(vectordot(var_09,var_07) > 0.1)
|
|
{
|
|
var_06[var_06.size] = var_05[var_08];
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_06 = getnodesinradius(param_01,param_02,0,500);
|
|
}
|
|
|
|
if(isdefined(param_02) && param_02)
|
|
{
|
|
var_0A = vectornormalize(self.var_19A1.var_116 - self.var_116);
|
|
var_0B = var_06;
|
|
var_06 = [];
|
|
foreach(var_0D in var_0B)
|
|
{
|
|
var_09 = vectornormalize(var_0D.var_116 - self.var_19A1.var_116);
|
|
if(vectordot(var_0A,var_09) > 0.2)
|
|
{
|
|
var_06[var_06.size] = var_0D;
|
|
}
|
|
}
|
|
}
|
|
|
|
var_0F = [];
|
|
var_10 = [];
|
|
var_11 = [];
|
|
for(var_08 = 0;var_08 < var_06.size;var_08++)
|
|
{
|
|
var_12 = distancesquared(var_06[var_08].var_116,param_00) > 10000;
|
|
var_13 = abs(var_06[var_08].var_116[2] - self.var_19A1.var_116[2]) < 50;
|
|
if(var_12)
|
|
{
|
|
var_0F[var_0F.size] = var_06[var_08];
|
|
}
|
|
|
|
if(var_13)
|
|
{
|
|
var_10[var_10.size] = var_06[var_08];
|
|
}
|
|
|
|
if(var_12 && var_13)
|
|
{
|
|
var_11[var_11.size] = var_06[var_08];
|
|
}
|
|
|
|
if(var_08 % 100 == 99)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
if(var_11.size > 0)
|
|
{
|
|
var_03 = self method_8366(var_11,var_11.size * 0.15,"node_capture",param_00,undefined,self.var_2C89);
|
|
}
|
|
|
|
if(!isdefined(var_03))
|
|
{
|
|
wait 0.05;
|
|
if(var_10.size > 0)
|
|
{
|
|
var_03 = self method_8366(var_10,var_10.size * 0.15,"node_capture",param_00,undefined,self.var_2C89);
|
|
}
|
|
|
|
if(!isdefined(var_03) && var_0F.size > 0)
|
|
{
|
|
wait 0.05;
|
|
var_03 = self method_8366(var_0F,var_0F.size * 0.15,"node_capture",param_00,undefined,self.var_2C89);
|
|
}
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_19CC(param_00,param_01,param_02)
|
|
{
|
|
var_03 = undefined;
|
|
var_04 = getnodesinradius(param_00,param_01,0,500);
|
|
if(var_04.size > 0)
|
|
{
|
|
var_03 = self method_8366(var_04,var_04.size * 0.15,"node_capture",param_00,param_02,self.var_2C89);
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_19CD(param_00,param_01)
|
|
{
|
|
var_02 = undefined;
|
|
if(param_00.size > 0)
|
|
{
|
|
var_02 = self method_8366(param_00,param_00.size * 0.15,"node_capture",undefined,param_01,self.var_2C89);
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_19CF(param_00,param_01)
|
|
{
|
|
var_02 = undefined;
|
|
if(param_00.size > 0)
|
|
{
|
|
var_02 = self method_8366(param_00,param_00.size * 0.25,"node_capture",param_01,undefined,self.var_2C89);
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_19CB(param_00,param_01)
|
|
{
|
|
var_02 = undefined;
|
|
var_03 = getnodesinradius(param_00,param_01,0,500);
|
|
if(var_03.size > 0)
|
|
{
|
|
var_02 = self method_8366(var_03,var_03.size * 0.15,"node_protect",param_00,self.var_2C89);
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_1A99(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = undefined;
|
|
var_06 = getnodesinradius(param_00,param_01,0,500);
|
|
if(isdefined(var_06) && var_06.size >= 2)
|
|
{
|
|
var_05 = func_19D0(var_06,param_02);
|
|
}
|
|
|
|
if(!isdefined(var_05))
|
|
{
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = 0;
|
|
}
|
|
|
|
if(!isdefined(param_04))
|
|
{
|
|
param_04 = 1;
|
|
}
|
|
|
|
var_07 = randomfloatrange(self.var_19AA * param_03,self.var_19AA * param_04);
|
|
var_08 = anglestoforward((0,randomint(360),0));
|
|
var_05 = param_00 + var_08 * var_07;
|
|
}
|
|
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_1A98(param_00,param_01,param_02)
|
|
{
|
|
var_03 = undefined;
|
|
if(param_01.size >= 2)
|
|
{
|
|
var_03 = func_19D0(param_01,param_02);
|
|
}
|
|
|
|
if(!isdefined(var_03))
|
|
{
|
|
var_04 = common_scripts\utility::func_7A33(param_01);
|
|
var_05 = var_04.var_116 - param_00;
|
|
var_03 = param_00 + vectornormalize(var_05) * length(var_05) * randomfloat(1);
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_19D0(param_00,param_01)
|
|
{
|
|
var_02 = undefined;
|
|
var_03 = common_scripts\utility::func_F92(param_00);
|
|
for(var_04 = 0;var_04 < var_03.size;var_04++)
|
|
{
|
|
for(var_05 = var_04 + 1;var_05 < var_03.size;var_05++)
|
|
{
|
|
var_06 = var_03[var_04];
|
|
var_07 = var_03[var_05];
|
|
if(function_01F4(var_06,var_07,1))
|
|
{
|
|
var_02 = (var_06.var_116[0] + var_07.var_116[0] * 0.5,var_06.var_116[1] + var_07.var_116[1] * 0.5,var_06.var_116[2] + var_07.var_116[2] * 0.5);
|
|
if(isdefined(param_01) && self [[ param_01 ]](var_02) == 1)
|
|
{
|
|
return var_02;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_2C6C()
|
|
{
|
|
if(isdefined(self.var_19A9))
|
|
{
|
|
return self.var_19A9.var_116;
|
|
}
|
|
else if(isdefined(self.var_19A7))
|
|
{
|
|
return self.var_19A7;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_1937()
|
|
{
|
|
if(!maps\mp\_utility::func_F5C())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(maps\mp\_utility::func_573D())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_1A36())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self isusingturret())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(level.var_685D) || isdefined(level.nukecoolingdown))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(level.nobotscorestreaks))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self.var_A019) && self.var_A019)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self.var_260C) && self.var_260C)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!self method_85EB())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self method_846C())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(maps\mp\_utility::func_44FC() > 0)
|
|
{
|
|
var_00 = 1;
|
|
foreach(var_02 in level.var_6E97)
|
|
{
|
|
if(isalive(var_02) && !isalliedsentient(self,var_02))
|
|
{
|
|
var_00 = 0;
|
|
}
|
|
}
|
|
|
|
if(var_00)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if(common_scripts\utility::func_562E(self.var_1B2F))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!func_1A1C(500))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isalive(self.var_88))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_1AB2()
|
|
{
|
|
var_00 = undefined;
|
|
var_01 = botmemoryflags("investigated","killer_died");
|
|
var_02 = botmemoryflags("investigated");
|
|
var_03 = common_scripts\utility::func_7A33(botgetmemoryevents(0,gettime() - 10000,1,"death",var_01,self));
|
|
if(isdefined(var_03))
|
|
{
|
|
var_00 = var_03;
|
|
self.var_1A7C = 10000;
|
|
}
|
|
else
|
|
{
|
|
var_04 = undefined;
|
|
if(self method_835F() != "none")
|
|
{
|
|
var_04 = self method_835C();
|
|
}
|
|
|
|
var_05 = botgetmemoryevents(0,gettime() - -20536,1,"kill",var_02,self);
|
|
var_06 = botgetmemoryevents(0,gettime() - -20536,1,"death",var_01,self);
|
|
var_03 = common_scripts\utility::func_7A33(common_scripts\utility::func_F73(var_05,var_06));
|
|
if(isdefined(var_03) > 0 && !isdefined(var_04) || distancesquared(var_04,var_03) > 1000000)
|
|
{
|
|
var_00 = var_03;
|
|
self.var_1A7C = -20536;
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_00))
|
|
{
|
|
var_07 = getzonenearest(var_00);
|
|
var_08 = getzonenearest(self.var_116);
|
|
if(isdefined(var_07) && isdefined(var_08) && var_08 != var_07)
|
|
{
|
|
var_09 = botzonegetcount(var_07,self.var_1A7,"ally") + botzonegetcount(var_07,self.var_1A7,"path_ally");
|
|
if(var_09 > 1)
|
|
{
|
|
var_00 = undefined;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_00))
|
|
{
|
|
self.var_1A7B = var_00;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_193A()
|
|
{
|
|
if(self method_8367())
|
|
{
|
|
var_00 = self method_835C();
|
|
if(distancesquared(self.var_116,var_00) < 256)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_19B9(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_19BA(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_19B8(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_1A07()
|
|
{
|
|
var_00 = 0;
|
|
var_01 = self getweaponslistprimaries();
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_00 = var_00 + self getweaponammoclip(var_03);
|
|
var_00 = var_00 + self getweaponammostock(var_03);
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_1A8B()
|
|
{
|
|
var_00 = self getweaponslistprimaries();
|
|
foreach(var_02 in var_00)
|
|
{
|
|
if(self getweaponammoclip(var_02) > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self getweaponammostock(var_02) > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_19F2()
|
|
{
|
|
var_00 = 0;
|
|
var_01 = self getweaponslistoffhands();
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_00 = var_00 + self getweaponammostock(var_03);
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_1A3A(param_00,param_01)
|
|
{
|
|
switch(param_00)
|
|
{
|
|
case "trap_directional":
|
|
switch(param_01)
|
|
{
|
|
case "claymore_mp":
|
|
return 1;
|
|
}
|
|
break;
|
|
|
|
case "trap":
|
|
switch(param_01)
|
|
{
|
|
case "motion_sensor_mp":
|
|
case "proximity_explosive_mp":
|
|
case "trophy_mp":
|
|
return 1;
|
|
}
|
|
break;
|
|
|
|
case "trap_follower":
|
|
switch(param_01)
|
|
{
|
|
case "tracking_drone_mp":
|
|
return 1;
|
|
}
|
|
break;
|
|
|
|
case "c4":
|
|
switch(param_01)
|
|
{
|
|
case "c4_mp":
|
|
return 1;
|
|
}
|
|
break;
|
|
|
|
case "tacticalinsertion":
|
|
switch(param_01)
|
|
{
|
|
case "s2_tactical_insertion_device_mp":
|
|
return 1;
|
|
}
|
|
break;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_1B2A(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
self notify("bot_watch_nodes");
|
|
self endon("bot_watch_nodes");
|
|
self endon("bot_watch_nodes_stop");
|
|
self endon("using_remote");
|
|
self endon("disconnect");
|
|
self endon("death");
|
|
if(isdefined(param_04))
|
|
{
|
|
self endon(param_04);
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
self endon(param_05);
|
|
}
|
|
|
|
if(isdefined(param_06))
|
|
{
|
|
self endon(param_06);
|
|
}
|
|
|
|
if(isdefined(param_07))
|
|
{
|
|
self endon(param_07);
|
|
}
|
|
|
|
wait(0.5);
|
|
var_08 = 1;
|
|
if(self isusingturret())
|
|
{
|
|
var_08 = 0;
|
|
}
|
|
|
|
var_09 = squared(self method_835D());
|
|
while(var_08)
|
|
{
|
|
if(self method_8367() && self method_8377())
|
|
{
|
|
if(distancesquared(self method_835C(),self.var_116) < var_09)
|
|
{
|
|
if(length(self getvelocity()) <= 1)
|
|
{
|
|
var_08 = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(var_08)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
var_0A = self.var_116;
|
|
var_0B = (0,0,self getviewheight());
|
|
if(isdefined(param_00))
|
|
{
|
|
self.var_A8C9 = [];
|
|
foreach(var_11, var_0D in param_00)
|
|
{
|
|
var_0E = 0;
|
|
if(distance2dsquared(self.var_116,var_0D.var_116) <= 40)
|
|
{
|
|
var_0E = 1;
|
|
}
|
|
|
|
var_0F = self geteye();
|
|
var_10 = vectordot((0,0,1),vectornormalize(var_0D.var_116 + var_0B - var_0F));
|
|
if(abs(var_10) > 0.92)
|
|
{
|
|
var_0E = 1;
|
|
}
|
|
|
|
if(!var_0E)
|
|
{
|
|
self.var_A8C9[self.var_A8C9.size] = var_0D;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!isdefined(self.var_A8C9))
|
|
{
|
|
return;
|
|
}
|
|
|
|
thread func_A8CA();
|
|
self.var_A8C9 = common_scripts\utility::func_F92(self.var_A8C9);
|
|
foreach(var_0D in self.var_A8C9)
|
|
{
|
|
var_0D.last_ground_fx_time[self.var_37CD] = 1;
|
|
var_0D.var_A8C6[self.var_37CD] = 1;
|
|
}
|
|
|
|
var_14 = [];
|
|
for(var_15 = 0;var_15 < self.var_A8C9.size;var_15++)
|
|
{
|
|
var_14[var_15] = [];
|
|
var_16 = vectornormalize(self.var_A8C9[var_15].var_116 - self.var_116);
|
|
for(var_17 = 0;var_17 < self.var_A8C9.size;var_17++)
|
|
{
|
|
if(var_15 == var_17)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_18 = vectornormalize(self.var_A8C9[var_17].var_116 - self.var_116);
|
|
var_19 = vectordot(var_16,var_18);
|
|
if(var_19 > 0.94)
|
|
{
|
|
var_14[var_15] = common_scripts\utility::func_F6F(var_14[var_15],var_17);
|
|
}
|
|
}
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_1A = -1;
|
|
var_1B = 0;
|
|
for(var_15 = 0;var_15 < self.var_A8C9.size;var_15++)
|
|
{
|
|
if(var_14[var_15].size > var_1B)
|
|
{
|
|
var_1A = var_15;
|
|
var_1B = var_14[var_15].size;
|
|
}
|
|
}
|
|
|
|
if(var_1A == -1)
|
|
{
|
|
break;
|
|
}
|
|
|
|
self.var_A8C9[var_1A].last_ground_fx_time[self.var_37CD] = 0.5;
|
|
self.var_A8C9[var_1A].var_A8C6[self.var_37CD] = 0.5;
|
|
var_14[var_1A] = [];
|
|
for(var_15 = 0;var_15 < var_14.size;var_15++)
|
|
{
|
|
if(common_scripts\utility::func_F79(var_14[var_15],var_1A))
|
|
{
|
|
var_14[var_15] = common_scripts\utility::func_F93(var_14[var_15],var_1A);
|
|
}
|
|
}
|
|
}
|
|
|
|
var_1C = gettime();
|
|
var_1D = var_1C;
|
|
var_1E = [];
|
|
var_1F = undefined;
|
|
if(isdefined(param_01))
|
|
{
|
|
var_1F = (0,param_01,0);
|
|
}
|
|
|
|
var_20 = isdefined(var_1F) && isdefined(param_02);
|
|
var_21 = undefined;
|
|
var_22 = undefined;
|
|
wait(0.1);
|
|
for(;;)
|
|
{
|
|
var_23 = gettime();
|
|
self notify("still_watching_nodes");
|
|
var_24 = self method_8375();
|
|
if(isdefined(param_03) && var_23 >= param_03)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(maps/mp/bots/_bots_strategy::func_1A14())
|
|
{
|
|
self botlookatpoint(undefined);
|
|
wait(0.2);
|
|
continue;
|
|
}
|
|
|
|
if(!self method_8367() || !self method_8377())
|
|
{
|
|
wait(0.2);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_22) && var_22.last_ground_fx_time[self.var_37CD] == 0)
|
|
{
|
|
var_1D = var_23;
|
|
}
|
|
|
|
if(self.var_A8C9.size > 0)
|
|
{
|
|
var_25 = 0;
|
|
if(isdefined(self.var_88))
|
|
{
|
|
var_26 = self lastknownpos(self.var_88);
|
|
var_27 = self lastknowntime(self.var_88);
|
|
if(var_27 && var_23 - var_27 < 5000)
|
|
{
|
|
var_28 = vectornormalize(var_26 - self.var_116);
|
|
var_29 = 0;
|
|
for(var_15 = 0;var_15 < self.var_A8C9.size;var_15++)
|
|
{
|
|
var_2A = vectornormalize(self.var_A8C9[var_15].var_116 - self.var_116);
|
|
var_19 = vectordot(var_28,var_2A);
|
|
if(var_19 > var_29)
|
|
{
|
|
var_29 = var_19;
|
|
var_22 = self.var_A8C9[var_15];
|
|
var_25 = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!var_25 && var_23 >= var_1D)
|
|
{
|
|
var_2B = [];
|
|
for(var_15 = 0;var_15 < self.var_A8C9.size;var_15++)
|
|
{
|
|
var_0D = self.var_A8C9[var_15];
|
|
var_2C = var_0D getnodenumber();
|
|
if(var_20 && !common_scripts\utility::func_AA4A(self.var_116,var_1F,var_0D.var_116,param_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distance2dsquared(self.var_116,var_0D.var_116) <= 10)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_1E[var_2C]))
|
|
{
|
|
var_1E[var_2C] = 0;
|
|
}
|
|
|
|
if(common_scripts\utility::func_AA4A(self.var_116,self getangles(),var_0D.var_116,var_24))
|
|
{
|
|
var_1E[var_2C] = var_23;
|
|
}
|
|
|
|
for(var_2D = 0;var_2D < var_2B.size;var_2D++)
|
|
{
|
|
if(var_1E[var_2B[var_2D] getnodenumber()] > var_1E[var_2C])
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_2B = common_scripts\utility::func_F86(var_2B,var_0D,var_2D);
|
|
}
|
|
|
|
var_21 = var_22;
|
|
var_22 = undefined;
|
|
if(var_2B.size == 1)
|
|
{
|
|
var_22 = var_2B[0];
|
|
}
|
|
else if(var_2B.size > 1)
|
|
{
|
|
var_2E = [];
|
|
var_2F = 0;
|
|
for(var_15 = 0;var_15 < var_2B.size;var_15++)
|
|
{
|
|
var_30 = 1 - var_15 / var_2B.size - 1 * 0.5;
|
|
var_31 = [var_2B[var_15],var_2B[var_15].last_ground_fx_time[self.var_37CD] * var_30];
|
|
var_2E[var_2E.size] = var_31;
|
|
var_2F = var_2F + var_31[1];
|
|
}
|
|
|
|
var_32 = randomfloat(var_2F);
|
|
for(var_15 = 0;var_15 < var_2E.size;var_15++)
|
|
{
|
|
if(var_32 < var_2E[var_15][1])
|
|
{
|
|
var_22 = var_2E[var_15][0];
|
|
break;
|
|
}
|
|
|
|
var_32 = var_32 - var_2E[var_15][1];
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_22))
|
|
{
|
|
var_1D = var_23 + randomintrange(3000,5000);
|
|
var_33 = !isdefined(var_21) || var_21 != var_22;
|
|
if(var_33 && common_scripts\utility::func_562E(self.var_1957))
|
|
{
|
|
childthread func_1A10(var_22);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_22))
|
|
{
|
|
var_34 = var_22.var_116 + var_0B;
|
|
if(distance2dsquared(self.var_116,var_34) <= 10)
|
|
{
|
|
self botlookatpoint(undefined);
|
|
var_22 = undefined;
|
|
var_1D = 0;
|
|
}
|
|
else
|
|
{
|
|
self botlookatpoint(var_34,0.4,"script_search");
|
|
}
|
|
}
|
|
}
|
|
|
|
wait(0.2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_1A10(param_00)
|
|
{
|
|
if(isdefined(self.var_28C8))
|
|
{
|
|
var_01 = self.var_28C8;
|
|
if(var_01 == "prone" && self getstance() == "prone")
|
|
{
|
|
self botsetstance("crouch");
|
|
wait(1);
|
|
}
|
|
|
|
if(var_01 == "prone")
|
|
{
|
|
if(func_A8CD(self getnearestnode(),param_00))
|
|
{
|
|
self botsetstance("prone");
|
|
}
|
|
else
|
|
{
|
|
var_01 = "crouch";
|
|
}
|
|
}
|
|
|
|
if(var_01 == "crouch")
|
|
{
|
|
if(func_A8CC(self getnearestnode(),param_00))
|
|
{
|
|
self botsetstance("crouch");
|
|
}
|
|
else
|
|
{
|
|
var_01 = "stand";
|
|
}
|
|
}
|
|
|
|
if(var_01 == "stand")
|
|
{
|
|
self botsetstance("stand");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_A8CD(param_00,param_01)
|
|
{
|
|
var_02 = param_01 getnodenumber();
|
|
if(!isdefined(param_00.var_777C) || !isdefined(param_00.var_777C[var_02]))
|
|
{
|
|
var_03 = sighttracepassed(param_00.var_116 + (0,0,11),param_01.var_116 + (0,0,11),0,undefined);
|
|
param_00.var_777C[var_02] = var_03;
|
|
}
|
|
|
|
return param_00.var_777C[var_02];
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_A8CC(param_00,param_01)
|
|
{
|
|
var_02 = param_01 getnodenumber();
|
|
if(!isdefined(param_00.var_777C) || !isdefined(param_00.var_777C[var_02]))
|
|
{
|
|
var_03 = sighttracepassed(param_00.var_116 + (0,0,40),param_01.var_116 + (0,0,11),0,undefined);
|
|
param_00.var_777C[var_02] = var_03;
|
|
}
|
|
|
|
return param_00.var_777C[var_02];
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_A8CB()
|
|
{
|
|
self notify("bot_watch_nodes_stop");
|
|
if(isdefined(self.var_A8C9))
|
|
{
|
|
foreach(var_01 in self.var_A8C9)
|
|
{
|
|
func_A8C8(var_01);
|
|
}
|
|
}
|
|
|
|
self.var_A8C9 = undefined;
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_A8C8(param_00)
|
|
{
|
|
param_00.last_ground_fx_time[self.var_37CD] = undefined;
|
|
param_00.var_A8C6[self.var_37CD] = undefined;
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_A8CA()
|
|
{
|
|
self notify("watch_nodes_aborted");
|
|
self endon("watch_nodes_aborted");
|
|
self endon("bot_watch_nodes_stop");
|
|
self endon("disconnect");
|
|
for(;;)
|
|
{
|
|
var_00 = common_scripts\utility::func_A71A(0.5,"still_watching_nodes");
|
|
if(!isdefined(var_00) || var_00 != "still_watching_nodes")
|
|
{
|
|
func_A8CB();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_1A59(param_00,param_01)
|
|
{
|
|
if(isdefined(param_01) && param_01 != (0,0,0))
|
|
{
|
|
if(!common_scripts\utility::func_AA4A(self.var_116,self getangles(),param_01,self method_8375()))
|
|
{
|
|
var_02 = self botpredictseepoint(param_01);
|
|
if(isdefined(var_02))
|
|
{
|
|
self botlookatpoint(var_02 + (0,0,40),1,"script_seek");
|
|
}
|
|
}
|
|
|
|
self botmemoryevent("known_enemy",undefined,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_19F7(param_00,param_01)
|
|
{
|
|
if(isdefined(param_01) && isdefined(param_01.var_3A))
|
|
{
|
|
if(param_01.var_3A == "grenade")
|
|
{
|
|
if(isdefined(param_00) && param_00.var_3A == "worldspawn")
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!func_19C0(param_01))
|
|
{
|
|
return param_00;
|
|
}
|
|
}
|
|
else if(param_01.var_3A == "rocket")
|
|
{
|
|
if(isdefined(param_01.var_A319))
|
|
{
|
|
return param_01.var_A319;
|
|
}
|
|
|
|
if(isdefined(param_01.var_1B9) && param_01.var_1B9 == "remote" || param_01.var_1B9 == "odin")
|
|
{
|
|
return param_01;
|
|
}
|
|
|
|
if(maps\mp\_utility::func_579B())
|
|
{
|
|
if(isdefined(param_01.var_117) && param_01.var_117.var_3A == "worldspawn")
|
|
{
|
|
return undefined;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_01.var_117))
|
|
{
|
|
return param_01.var_117;
|
|
}
|
|
}
|
|
else if(param_01.var_3A == "worldspawn" || param_01.var_3A == "trigger_hurt")
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
return param_01;
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_19C0(param_00)
|
|
{
|
|
var_01 = param_00.var_A9AB;
|
|
if(!isdefined(var_01))
|
|
{
|
|
var_01 = param_00.var_A9E0;
|
|
}
|
|
|
|
if(!isdefined(var_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(issubstr(var_01,"c4_mp"))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(issubstr(var_01,"claymore_mp"))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(issubstr(var_01,"proximity_explosive_mp"))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_1B1C(param_00,param_01)
|
|
{
|
|
return param_00[0] == param_01[0] && param_00[1] == param_01[1] && param_00[2] == param_01[2];
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_1931(param_00)
|
|
{
|
|
param_00.var_4D3C = [];
|
|
if(param_00.var_1A23 == "use")
|
|
{
|
|
func_1932(param_00);
|
|
return;
|
|
}
|
|
|
|
if(param_00.var_1A23 == "damage")
|
|
{
|
|
func_1930(param_00);
|
|
return;
|
|
}
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_1AB4(param_00)
|
|
{
|
|
param_00.var_CA3 = 1;
|
|
level.var_5CB7 = common_scripts\utility::func_F93(level.var_5CB7,param_00);
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_1932(param_00)
|
|
{
|
|
if(!issubstr(param_00.var_3B,"trigger_use"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_00.var_1A2))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_00.var_1AF7))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_00.var_A1F5))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = getnodearray(param_00.var_1A2,"targetname");
|
|
if(var_01.size != 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_00.var_1AF7 = var_01[0];
|
|
if(!isdefined(level.var_5CB7))
|
|
{
|
|
level.var_5CB7 = [];
|
|
}
|
|
|
|
level.var_5CB7 = common_scripts\utility::func_F6F(level.var_5CB7,param_00);
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_1930(param_00)
|
|
{
|
|
if(!issubstr(param_00.var_3B,"trigger_damage"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = getnodearray(param_00.var_1A2,"targetname");
|
|
if(var_01.size != 2)
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_00.var_1AF9 = var_01;
|
|
if(!isdefined(level.var_5CB7))
|
|
{
|
|
level.var_5CB7 = [];
|
|
}
|
|
|
|
level.var_5CB7 = common_scripts\utility::func_F6F(level.var_5CB7,param_00);
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_1A01(param_00,param_01)
|
|
{
|
|
var_02 = 0;
|
|
foreach(var_05, var_04 in param_00)
|
|
{
|
|
if(var_02 == param_01)
|
|
{
|
|
return var_05;
|
|
}
|
|
|
|
var_02++;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_1A09(param_00,param_01)
|
|
{
|
|
for(var_02 = 0;var_02 < level.var_AC9C;var_02++)
|
|
{
|
|
var_03 = getzonenodeforindex(var_02);
|
|
var_03.var_A571 = 0;
|
|
}
|
|
|
|
var_04 = getzonenodeforindex(param_00);
|
|
return func_1A0A(var_04,param_01);
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_1A0A(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
var_02[0] = getnodezone(param_00);
|
|
param_00.var_A571 = 1;
|
|
var_03 = function_0204(param_00);
|
|
foreach(var_05 in var_03)
|
|
{
|
|
if(!var_05.var_A571)
|
|
{
|
|
var_06 = distance(param_00.var_116,var_05.var_116);
|
|
if(var_06 < param_01)
|
|
{
|
|
var_07 = func_1A0A(var_05,param_01 - var_06);
|
|
var_02 = common_scripts\utility::func_F73(var_07,var_02);
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_1981(param_00)
|
|
{
|
|
return isdefined(param_00) && isdefined(param_00.var_253C) && param_00.var_253C;
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_19F9(param_00)
|
|
{
|
|
return level.var_1A79[param_00];
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_1A02()
|
|
{
|
|
return int(func_19EE() / 2);
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_19EE()
|
|
{
|
|
var_00 = function_0364();
|
|
var_00 = max(var_00,getdvarint("5321",0));
|
|
if(var_00 > level.var_6079)
|
|
{
|
|
return level.var_6079;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_1AA9()
|
|
{
|
|
self notify("bot_queued_process_level_thread");
|
|
self endon("bot_queued_process_level_thread");
|
|
wait 0.05;
|
|
for(;;)
|
|
{
|
|
if(isdefined(level.var_1AAB) && level.var_1AAB.size > 0)
|
|
{
|
|
var_00 = level.var_1AAB[0];
|
|
if(isdefined(var_00) && isdefined(var_00.var_117))
|
|
{
|
|
var_01 = undefined;
|
|
if(isdefined(var_00.var_6E85))
|
|
{
|
|
var_01 = var_00.var_117 [[ var_00.var_3F02 ]](var_00.var_6E82,var_00.var_6E83,var_00.var_6E84,var_00.var_6E85);
|
|
}
|
|
else if(isdefined(var_00.var_6E84))
|
|
{
|
|
var_01 = var_00.var_117 [[ var_00.var_3F02 ]](var_00.var_6E82,var_00.var_6E83,var_00.var_6E84);
|
|
}
|
|
else if(isdefined(var_00.var_6E83))
|
|
{
|
|
var_01 = var_00.var_117 [[ var_00.var_3F02 ]](var_00.var_6E82,var_00.var_6E83);
|
|
}
|
|
else if(isdefined(var_00.var_6E82))
|
|
{
|
|
var_01 = var_00.var_117 [[ var_00.var_3F02 ]](var_00.var_6E82);
|
|
}
|
|
else
|
|
{
|
|
var_01 = var_00.var_117 [[ var_00.var_3F02 ]]();
|
|
}
|
|
|
|
var_00.var_117 notify(var_00.var_6602,var_01);
|
|
}
|
|
|
|
var_02 = [];
|
|
for(var_03 = 1;var_03 < level.var_1AAB.size;var_03++)
|
|
{
|
|
var_02[var_03 - 1] = level.var_1AAB[var_03];
|
|
}
|
|
|
|
level.var_1AAB = var_02;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 74
|
|
func_1AA8(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(!isdefined(level.var_1AAB))
|
|
{
|
|
level.var_1AAB = [];
|
|
}
|
|
|
|
foreach(var_08, var_07 in level.var_1AAB)
|
|
{
|
|
if(var_07.var_117 == self && var_07.var_109 == param_00)
|
|
{
|
|
self notify(var_07.var_109);
|
|
level.var_1AAB[var_08] = undefined;
|
|
}
|
|
}
|
|
|
|
var_07 = spawnstruct();
|
|
var_07.var_117 = self;
|
|
var_07.var_109 = param_00;
|
|
var_07.var_6602 = var_07.var_109 + "_done";
|
|
var_07.var_3F02 = param_01;
|
|
var_07.var_6E82 = param_02;
|
|
var_07.var_6E83 = param_03;
|
|
var_07.var_6E84 = param_04;
|
|
var_07.var_6E85 = param_05;
|
|
level.var_1AAB[level.var_1AAB.size] = var_07;
|
|
if(!isdefined(level.var_1AAA))
|
|
{
|
|
level.var_1AAA = 1;
|
|
level thread func_1AA9();
|
|
}
|
|
|
|
self waittill(var_07.var_6602,var_09);
|
|
return var_09;
|
|
}
|
|
|
|
//Function Number: 75
|
|
func_1A36()
|
|
{
|
|
return maps\mp\_utility::func_581D() || self islinked();
|
|
}
|
|
|
|
//Function Number: 76
|
|
func_19F8(param_00)
|
|
{
|
|
var_01 = self getweaponslistprimaries();
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_04 = weaponclipsize(var_03);
|
|
var_05 = self getweaponammostock(var_03);
|
|
if(var_05 <= var_04)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(self getfractionmaxammo(var_03) <= param_00)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 77
|
|
func_1A9D(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 256;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 50;
|
|
}
|
|
|
|
var_03 = getnodesinradiussorted(param_00,param_01,0,param_02,"Path");
|
|
foreach(var_05 in var_03)
|
|
{
|
|
var_06 = param_00 + (0,0,30);
|
|
var_07 = var_05.var_116 + (0,0,30);
|
|
var_08 = physicstrace(var_06,var_07);
|
|
if(func_1B1C(var_08,var_07))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 78
|
|
func_1A80(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
self notify("bot_monitor_enemy_camp_spots");
|
|
self endon("bot_monitor_enemy_camp_spots");
|
|
level.var_3716 = [];
|
|
level.var_3715 = [];
|
|
level.var_3714 = [];
|
|
for(;;)
|
|
{
|
|
wait(1);
|
|
var_01 = [];
|
|
if(!isdefined(param_00))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
foreach(var_03 in level.var_6E97)
|
|
{
|
|
if(!isdefined(var_03.var_1A7))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_03 [[ param_00 ]]() && !isdefined(var_01[var_03.var_1A7]))
|
|
{
|
|
level.var_3714[var_03.var_1A7] = undefined;
|
|
level.var_3716[var_03.var_1A7] = var_03 method_843B(1);
|
|
if(isdefined(level.var_3716[var_03.var_1A7]))
|
|
{
|
|
if(!isdefined(level.var_3715[var_03.var_1A7]) || !common_scripts\utility::func_F79(level.var_3716[var_03.var_1A7],level.var_3715[var_03.var_1A7]))
|
|
{
|
|
level.var_3715[var_03.var_1A7] = common_scripts\utility::func_7A33(level.var_3716[var_03.var_1A7]);
|
|
}
|
|
|
|
if(isdefined(level.var_3715[var_03.var_1A7]))
|
|
{
|
|
var_04 = [];
|
|
foreach(var_06 in level.var_6E97)
|
|
{
|
|
if(!isdefined(var_06.var_1A7))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_06 [[ param_00 ]]() && var_06.var_1A7 == var_03.var_1A7)
|
|
{
|
|
var_04[var_04.size] = var_06;
|
|
}
|
|
}
|
|
|
|
var_04 = function_01AC(var_04,level.var_3715[var_03.var_1A7]);
|
|
if(var_04.size > 0)
|
|
{
|
|
level.var_3714[var_03.var_1A7] = var_04[0];
|
|
}
|
|
}
|
|
}
|
|
|
|
var_01[var_03.var_1A7] = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 79
|
|
func_1B17()
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isai(self))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(self.var_1A7))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_1A7 == "spectator")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isalive(self))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!maps\mp\_utility::func_566A(self))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(self.var_6F7D) || self.var_6F7D == "camper")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 80
|
|
func_1B13()
|
|
{
|
|
if(!isdefined(level.var_3714))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.var_3714[self.var_1A7]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(level.var_3714[self.var_1A7] == self)
|
|
{
|
|
maps/mp/bots/_bots_strategy::func_19A3();
|
|
self botsetscriptgoal(level.var_3715[self.var_1A7],128,"objective",undefined,256);
|
|
func_1B21();
|
|
}
|
|
}
|
|
|
|
//Function Number: 81
|
|
func_19D4(param_00,param_01)
|
|
{
|
|
self notify("bot_force_stance_for_time");
|
|
self endon("bot_force_stance_for_time");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self botsetstance(param_00);
|
|
wait(param_01);
|
|
self botsetstance("none");
|
|
}
|
|
|
|
//Function Number: 82
|
|
func_19AF(param_00)
|
|
{
|
|
self notify("bot_disable_movement_for_time");
|
|
self endon("bot_disable_movement_for_time");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self botsetflag("disable_movement",1);
|
|
wait(param_00);
|
|
self botsetflag("disable_movement",0);
|
|
} |