diff --git a/userraw/maps/mp/bots/_bot.gsc b/userraw/maps/mp/bots/_bot.gsc index 8cd2125..d9ff0fe 100644 --- a/userraw/maps/mp/bots/_bot.gsc +++ b/userraw/maps/mp/bots/_bot.gsc @@ -94,6 +94,8 @@ init() level.botPushOutDist = 30; level.smokeRadius = 255; + + level.bots = []; level.bots_nonfullautoguns = []; level.bots_nonfullautoguns["barrett"] = true; @@ -360,6 +362,16 @@ watchScrabler() } } +/* + When a bot disconnects. +*/ +onDisconnect() +{ + self waittill("disconnect"); + + level.bots = array_remove(level.bots, self); +} + /* Called when a player connects. */ @@ -388,6 +400,9 @@ connected() self thread maps\mp\bots\_bot_internal::connected(); self thread maps\mp\bots\_bot_script::connected(); + level.bots[level.bots.size] = self; + self thread onDisconnect(); + level notify("bot_connected", self); } diff --git a/userraw/maps/mp/bots/_menu.gsc b/userraw/maps/mp/bots/_menu.gsc index d69f472..1f31a9a 100644 --- a/userraw/maps/mp/bots/_menu.gsc +++ b/userraw/maps/mp/bots/_menu.gsc @@ -14,6 +14,9 @@ init() { if (getDvar("bots_main_menu") == "") setDvar("bots_main_menu", true); + + if (!getDvarInt("bots_main_menu")) + return; thread watchPlayers(); } @@ -28,9 +31,6 @@ watchPlayers() { player = level.players[i]; - if (!getDvarInt("bots_main_menu")) - continue; - if (!player is_host()) continue; @@ -107,8 +107,7 @@ doGreetings() wait 1; self iPrintln("Welcome to Bot Warfare "+self.name+"!"); wait 5; - if(getDvarInt("bots_main_menu")) - self iPrintln("Press [{+actionslot 2}] to open menu!"); + self iPrintln("Press [{+actionslot 2}] to open menu!"); } watchPlayerOpenMenu() @@ -122,11 +121,8 @@ watchPlayerOpenMenu() self waittill( "bots_open_menu" ); if(!self.menuOpen) { - if(getdvarint("bots_main_menu")) - { - self playLocalSound( "mouse_click" ); - self thread OpenSub(self.SubMenu); - } + self playLocalSound( "mouse_click" ); + self thread OpenSub(self.SubMenu); } else { @@ -154,7 +150,7 @@ MenuSelect() for(;;) { self waittill( "bots_select" ); - if(self.MenuOpen && getdvarint("bots_main_menu")) + if(self.MenuOpen) { self playLocalSound( "mouse_click" ); if(self.SubMenu == "Main") diff --git a/userraw/scripts/bots_pvb.gsc b/userraw/scripts/bots_pvb.gsc index 44bcdd2..d041897 100644 --- a/userraw/scripts/bots_pvb.gsc +++ b/userraw/scripts/bots_pvb.gsc @@ -41,25 +41,22 @@ watchCheater() continue; // now tell all bots to target - foreach( player in level.players ) + foreach( bot in level.bots ) { - if (!player is_bot()) - continue; - - player SetAttacker(cheater); - player thread BotPressAttack(0.1); - player SetWeaponAmmoClip(player GetCurrentWeapon(), 999); - player.pers["bots"]["skill"]["aim_time"] = 0.05; - player.pers["bots"]["skill"]["init_react_time"] = 0; - player.pers["bots"]["skill"]["reaction_time"] = 0; - player.pers["bots"]["skill"]["no_trace_ads_time"] = 2500; - player.pers["bots"]["skill"]["no_trace_look_time"] = 10000; - player.pers["bots"]["skill"]["remember_time"] = 25000; - player.pers["bots"]["skill"]["fov"] = -1; - player.pers["bots"]["skill"]["dist"] = 100000; - player.pers["bots"]["skill"]["spawn_time"] = 0; - player.pers["bots"]["skill"]["help_dist"] = 10000; - player.pers["bots"]["skill"]["semi_time"] = 0.05; + bot SetAttacker(cheater); + bot thread BotPressAttack(0.1); + bot SetWeaponAmmoClip(bot GetCurrentWeapon(), 999); + bot.pers["bots"]["skill"]["aim_time"] = 0.05; + bot.pers["bots"]["skill"]["init_react_time"] = 0; + bot.pers["bots"]["skill"]["reaction_time"] = 0; + bot.pers["bots"]["skill"]["no_trace_ads_time"] = 2500; + bot.pers["bots"]["skill"]["no_trace_look_time"] = 10000; + bot.pers["bots"]["skill"]["remember_time"] = 25000; + bot.pers["bots"]["skill"]["fov"] = -1; + bot.pers["bots"]["skill"]["dist"] = 100000; + bot.pers["bots"]["skill"]["spawn_time"] = 0; + bot.pers["bots"]["skill"]["help_dist"] = 10000; + bot.pers["bots"]["skill"]["semi_time"] = 0.05; } } }