diff --git a/maps/mp/bots/_bot_internal.gsc b/maps/mp/bots/_bot_internal.gsc index ccccbed..e7fd1b8 100644 --- a/maps/mp/bots/_bot_internal.gsc +++ b/maps/mp/bots/_bot_internal.gsc @@ -226,7 +226,7 @@ onWeaponChange() self.bot.is_cur_full_auto = WeaponIsFullAuto(newWeapon); self.bot.cur_weap_dist_multi = SetWeaponDistMulti(newWeapon); self.bot.is_cur_sniper = IsWeapSniper(newWeapon); - self.bot.is_cur_akimbo = isSubStr(newWeapon, "_akimbo_"); + self.bot.is_cur_akimbo = isSubStr(newWeapon, "_akimbo"); if (newWeapon == "none") continue; @@ -917,7 +917,7 @@ target() initReactTime = self.pers["bots"]["skill"]["init_react_time"]; hasTarget = isDefined(self.bot.target); usingRemote = self isUsingRemote(); - ignoreSmoke = isSubStr(self GetCurrentWeapon(), "_thermal_"); + ignoreSmoke = isSubStr(self GetCurrentWeapon(), "_thermal"); vehEnt = undefined; adsAmount = self PlayerADS(); adsFovFact = self.pers["bots"]["skill"]["ads_fov_multi"]; @@ -1011,7 +1011,7 @@ target() if (usingRemote) { canTargetPlayer = (bulletTracePassed(myEye, player getTagOrigin( "j_head" ), false, vehEnt) - && !player _hasPerk("specialty_coldblooded")); + && !player _hasPerk("specialty_blindeye")); } else { @@ -1400,8 +1400,6 @@ aim() } knifeDist = level.bots_maxKnifeDistance; - if (self _hasPerk("specialty_extendedmelee")) - knifeDist *= 1.4; if((isplay || target.classname == "misc_turret") && !self.bot.isknifingafter && conedot > 0.9 && dist < knifeDist && trace_time > reaction_time && !usingRemote && getDvarInt("bots_play_knife")) { self clear_bot_after_target(); @@ -1558,7 +1556,7 @@ canFire(curweap) if(curweap == "none") return false; - if (curweap == "riotshield_mp" || curweap == "onemanarmy_mp") + if (curweap == "riotshield_mp") return false; if (self IsUsingRemote()) @@ -1592,7 +1590,7 @@ canAds(dist, curweap) if(weapclass == "spread" || weapclass == "grenade") return false; - if (curweap == "riotshield_mp" || curweap == "onemanarmy_mp") + if (curweap == "riotshield_mp") return false; if (self.bot.is_cur_akimbo) @@ -2361,7 +2359,7 @@ bot_lookat(pos, time) botWeapon(weap) { - setDvar("bot" + self getEntityNumber() + "_weapon", weap); + self switchToWeapon(weap); } botAction(act) @@ -2393,6 +2391,5 @@ botMovement(forward, right) botStop() { setDvar("bot" + self getEntityNumber() + "_movement", "0 0"); - setDvar("bot" + self getEntityNumber() + "_weapon", ""); setDvar("bot" + self getEntityNumber() + "_buttons", 0); } diff --git a/maps/mp/bots/_bot_script.gsc b/maps/mp/bots/_bot_script.gsc index 8447dc0..7ce3d6e 100644 --- a/maps/mp/bots/_bot_script.gsc +++ b/maps/mp/bots/_bot_script.gsc @@ -48,7 +48,6 @@ connected() self thread onSpawned(); self thread onDeath(); - self thread onGiveLoadout(); self thread onKillcam(); } @@ -898,7 +897,7 @@ onDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint if(!isAlive(eAttacker)) return; - if (!isSubStr(sWeapon, "_silencer_")) + if (!isSubStr(sWeapon, "_silencer")) self bot_cry_for_help( eAttacker ); self SetAttacker( eAttacker ); @@ -1393,26 +1392,6 @@ onDeath() } } -/* - Watches when the bot is given a loadout -*/ -onGiveLoadout() -{ - self endon("disconnect"); - - for(;;) - { - self waittill("giveLoadout"); - - class = self.class; - if (isDefined(self.bot_oma_class)) - class = self.bot_oma_class; - - self botGiveLoadout(self.team, class, !isDefined(self.bot_oma_class)); - self.bot_oma_class = undefined; - } -} - /* When the bot spawns. */ @@ -1428,7 +1407,6 @@ onSpawned() self.bot_change_class = undefined; self.bot_lock_goal = false; - self.bot_oma_class = undefined; self.help_time = undefined; self.bot_was_follow_script_update = undefined; self.bot_stuck_on_carepackage = undefined; @@ -1465,36 +1443,33 @@ start_bot_threads() gameFlagWait("prematch_done"); - if (true) return; - // inventory usage - if (getDvarInt("bots_play_killstreak")) - self thread bot_killstreak_think(); + //if (getDvarInt("bots_play_killstreak")) + // self thread bot_killstreak_think(); - self thread bot_weapon_think(); - self thread doReloadCancel(); - self thread bot_perk_think(); + //self thread bot_weapon_think(); + //self thread doReloadCancel(); // script targeting if (getDvarInt("bots_play_target_other")) { - self thread bot_target_vehicle(); - self thread bot_equipment_kill_think(); - self thread bot_turret_think(); + //self thread bot_target_vehicle(); + //self thread bot_equipment_kill_think(); + //self thread bot_turret_think(); } // airdrop if (getDvarInt("bots_play_take_carepackages")) { - self thread bot_watch_stuck_on_crate(); - self thread bot_crate_think(); + //self thread bot_watch_stuck_on_crate(); + //self thread bot_crate_think(); } // awareness - self thread bot_revenge_think(); - self thread bot_uav_think(); - self thread bot_listen_to_steps(); - self thread follow_target(); + //self thread bot_revenge_think(); + //self thread bot_uav_think(); + //self thread bot_listen_to_steps(); + //self thread follow_target(); // camp and follow if (getDvarInt("bots_play_camp")) @@ -1517,7 +1492,7 @@ start_bot_threads() // obj if (getDvarInt("bots_play_obj")) { - self thread bot_dom_def_think(); + /*self thread bot_dom_def_think(); self thread bot_dom_spawn_kill_think(); self thread bot_hq(); @@ -1535,7 +1510,7 @@ start_bot_threads() self thread bot_gtnw(); self thread bot_oneflag(); self thread bot_arena(); - self thread bot_vip(); + self thread bot_vip();*/ } self thread bot_think_revive(); @@ -1975,8 +1950,8 @@ getLockonAmmo() { answer = undefined; - if(self getAmmoCount("at4_mp")) - answer = "at4_mp"; + if(self getAmmoCount("iw5_smaw_mp")) + answer = "iw5_smaw_mp"; if(self getAmmoCount("stinger_mp")) answer = "stinger_mp"; @@ -2266,92 +2241,6 @@ followPlayer(who) self notify("kill_follow_bot"); } -/* - Bots thinking of using one man army and blast shield -*/ -bot_perk_think() -{ - self endon("disconnect"); - self endon("death"); - level endon("game_ended"); - - for (;;) - { - wait randomIntRange(5,7); - - if (self IsUsingRemote()) - continue; - - if(self BotIsFrozen()) - continue; - - if(self isDefusing() || self isPlanting()) - continue; - - for (;self _hasPerk("specialty_blastshield");) - { - if (!self _hasPerk("_specialty_blastshield")) - { - if (randomInt(100) < 65) - break; - - self _setPerk("_specialty_blastshield"); - } - else - { - if (randomInt(100) < 90) - break; - - self _unsetPerk("_specialty_blastshield"); - } - - break; - } - - for (;self _hasPerk("specialty_onemanarmy") && self hasWeapon("onemanarmy_mp");) - { - if (self HasThreat() || self HasBotJavelinLocation()) - break; - - if (self InLastStand() && !self InFinalStand()) - break; - - anyWeapout = false; - weaponsList = self GetWeaponsListAll(); - for (i = 0; i < weaponsList.size; i++) - { - weap = weaponsList[i]; - - if (self getAmmoCount(weap) || weap == "onemanarmy_mp") - continue; - - anyWeapout = true; - } - - if ((!anyWeapout && randomInt(100) < 90) || randomInt(100) < 10) - break; - - class = self chooseRandomClass(); - self.bot_oma_class = class; - - if (!self changeToWeapon("onemanarmy_mp")) - { - self.bot_oma_class = undefined; - break; - } - - self BotFreezeControls(true); - wait 1; - self BotFreezeControls(false); - - self notify ( "menuresponse", game["menu_onemanarmy"], self.bot_oma_class ); - - self waittill_any_timeout ( 10, "changed_kit" ); - break; - } - } -} - /* Bots thinking of using a noobtube */ @@ -2509,6 +2398,14 @@ bot_use_equipment_think() nade = "flare_mp"; if (self GetAmmoCount("c4_mp")) nade = "c4_mp"; + if (self GetAmmoCount("bouncingbetty_mp")) + nade = "bouncingbetty_mp"; + if (self GetAmmoCount("portable_radar_mp")) + nade = "portable_radar_mp"; + if (self GetAmmoCount("scrambler_mp")) + nade = "scrambler_mp"; + if (self GetAmmoCount("trophy_mp")) + nade = "trophy_mp"; if (!isDefined(nade)) continue; @@ -2742,10 +2639,12 @@ bot_watch_think_mw2() tube = self getValidTube(); if (!isDefined(tube)) { - if (self GetAmmoCount("at4_mp")) - tube = "at4_mp"; + if (self GetAmmoCount("iw5_smaw_mp")) + tube = "iw5_smaw_mp"; else if (self GetAmmoCount("rpg_mp")) tube = "rpg_mp"; + else if (self GetAmmoCount("xm25_mp")) + tube = "xm25_mp"; else continue; } @@ -2830,7 +2729,7 @@ bot_watch_riot_weapons() if (!isWeaponPrimary(weapon)) continue; - if(curWeap == weapon || weapon == "none" || weapon == "" || weapon == "javelin_mp" || weapon == "stinger_mp" || weapon == "onemanarmy_mp") + if(curWeap == weapon || weapon == "none" || weapon == "" || weapon == "javelin_mp" || weapon == "stinger_mp") continue; weap = weapon; @@ -3157,7 +3056,7 @@ bot_listen_to_steps() break; } - hasHeartbeat = (isSubStr(self GetCurrentWeapon(), "_heartbeat_") && !self IsEMPed()); + hasHeartbeat = (isSubStr(self GetCurrentWeapon(), "_heartbeat") && !self IsEMPed()); heartbeatDist = 350*350; if(!IsDefined(heard) && hasHeartbeat) @@ -3767,13 +3666,6 @@ bot_weapon_think() continue; } - - if (isDefined(self.bot_oma_class)) - { - if (curWeap != "onemanarmy_mp") - self thread ChangeToWeapon("onemanarmy_mp"); - continue; - } if (first) { @@ -3784,7 +3676,7 @@ bot_weapon_think() } else { - if(curWeap != "none" && self getAmmoCount(curWeap) && curWeap != "stinger_mp" && curWeap != "javelin_mp" && curWeap != "onemanarmy_mp") + if(curWeap != "none" && self getAmmoCount(curWeap) && curWeap != "stinger_mp" && curWeap != "javelin_mp") { if(randomInt(100) > self.pers["bots"]["behavior"]["switch"]) continue; @@ -3807,7 +3699,7 @@ bot_weapon_think() if (!isWeaponPrimary(weapon)) continue; - if(curWeap == weapon || weapon == "none" || weapon == "" || weapon == "javelin_mp" || weapon == "stinger_mp" || weapon == "onemanarmy_mp") + if(curWeap == weapon || weapon == "none" || weapon == "" || weapon == "javelin_mp" || weapon == "stinger_mp") continue; weap = weapon; diff --git a/maps/mp/bots/_bot_utility.gsc b/maps/mp/bots/_bot_utility.gsc index 04d0756..43645c3 100644 --- a/maps/mp/bots/_bot_utility.gsc +++ b/maps/mp/bots/_bot_utility.gsc @@ -432,7 +432,7 @@ getValidTube() if(!self getAmmoCount(weap)) continue; - if ((isSubStr(weap, "gl_") && !isSubStr(weap, "_gl_")) || weap == "m79_mp") + if ((isSubStr(weap, "alt_") && (isSubStr(weap, "_m320") || isSubStr(weap, "_gl") || isSubStr(weap, "_gp25"))) || weap == "m320_mp") return weap; } @@ -451,6 +451,7 @@ getValidGrenade() grenadeTypes[grenadeTypes.size] = "concussion_grenade_mp"; grenadeTypes[grenadeTypes.size] = "semtex_mp"; grenadeTypes[grenadeTypes.size] = "throwingknife_mp"; + grenadeTypes[grenadeTypes.size] = "emp_grenade_mp"; possibles = []; @@ -499,7 +500,7 @@ WeaponIsFullAuto(weap) */ isSecondaryGrenade(gnade) { - return (gnade == "concussion_grenade_mp" || gnade == "flash_grenade_mp" || gnade == "smoke_grenade_mp"); + return (gnade == "concussion_grenade_mp" || gnade == "flash_grenade_mp" || gnade == "smoke_grenade_mp" || gnade == "trophy_mp" || gnade == "emp_grenade_mp" || gnade == "flare_mp" || gnade == "scrambler_mp" || gnade == "portable_radar_mp"); } /* @@ -1710,7 +1711,3 @@ random_normal_distribution( mean, std_deviation, lower_bound, upper_bound ) onUsePlantObjectFix( player ) { } - -botGiveLoadout(team, class, copycat) -{ -}