/******************************************************************* * 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); }