Skip to content

Instantly share code, notes, and snippets.

@MinoMino
Last active January 2, 2016 18:21
Show Gist options
  • Save MinoMino/a28545d16fe5cac5d1f8 to your computer and use it in GitHub Desktop.
Save MinoMino/a28545d16fe5cac5d1f8 to your computer and use it in GitHub Desktop.
import minqlx
class bots(minqlx.Plugin):
def __init__(self):
self.add_hook("player_connect", self.handle_player_connect)
self.add_hook("player_disconnect", self.handle_player_disconnect)
self.add_command("addbot", self.cmd_addbot, 0, usage="<thinktime>")
self.set_cvar_once("qlx_bot", "klesk")
self.set_cvar_once("qlx_botSkill", "3")
self.set_cvar_once("qlx_botName", "The Bot")
self.expecting_bot = False
self.current_bot = None
def handle_player_connect(self, player):
if self.expecting_bot:
self.current_bot = player
def handle_player_disconnect(self, player, reason):
if player == self.current_bot:
self.current_bot = None
def cmd_addbot(self, player, msg, channel):
if player.team == "spectator":
return
elif self.current_bot:
player.tell("The bot is already active.")
return minqlx.RET_STOP_ALL
elif len(msg) < 2:
return minqlx.RET_USAGE
try:
thinktime = int(msg[1])
if thinktime < 0:
raise ValueError
except ValueError:
player.tell("Unintelligible thinktime. Use a positive integer.")
return minqlx.RET_STOP_ALL
self.set_cvar("bot_thinktime", thinktime)
teams = self.teams()
team = "b" if len(teams["red"]) > len(teams["blue"]) else "r"
self.expecting_bot = True
minqlx.console_command("addbot {} {} 0 {} \"{}\""
.format(self.get_cvar("qlx_bot"), self.get_cvar("qlx_botSkill"), team, self.get_cvar("qlx_botName")))
self.expecting_bot = False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment