import es, playerlib, popuplib admins = ['STEAM_0:0:XXXXXXXX', 'STEAM_0:0:YYYYYYYY'] ## steamids of admins that have access to admin_botmenu special = ['STEAM_0:0:XXXXXXXX'] ## steamids of admins that have access to bot settings def load(): es.set('bot_auto_balance', '1', "If set to 1, one bot will jin the game or be kicked, to balance the teams") es.set('bot_auto_kill', '1', "If set to 1, all bots will be killed when no human players are alive") es.regclientcmd('admin_botmenu', 'botplugin/botmain') def botmain(): global userid userid = es.getcmduserid() usersteam = es.getplayersteamid(userid) if int(es.server_var['bot_auto_kill']) == 0: botautokill = 'no' elif int(es.server_var['bot_auto_kill']) == 1: botautokill = 'yes' if int(es.server_var['bot_stop']) == 0: botfreeze = 'off' elif int(es.server_var['bot_stop']) == 1: botfreeze = 'on' if usersteam in admins: botmain = popuplib.create('botmain') botmain.addline('Bot Main Menu') botmain.addline('->1. Add one bot') botmain.addline('->2. Remove one bot') botmain.addline('->3. Kill all bots') botmain.addline('->4. Remove all bots') botmain.addline('->5. Bots auto kill: ' + botautokill) botmain.addline('->6. Bots freeze: ' + botfreeze) botmain.addline('->7. Bots join team: ' + es.server_var['bot_join_team']) botmain.addline(' ') botmain.addline('->9. Bot settings') botmain.timeoutview = 20 botmain.menuselect = botmain_menu if popuplib.exists('botmain'): popuplib.close('botmain', userid) popuplib.send('botmain', userid) def botset(): if es.server_var['bot_auto_balance'] == 0: autobalance = 'no' elif es.server_var['bot_auto_balance'] == 1: autobalance = 'yes' if es.server_var['bot_defer_to_human'] == 0: botdefer = 'no' elif es.server_var['bot_defer_to_human'] == 1: botdefer = 'yes' if es.server_var['bot_difficulty'] == 0: botdif = 'easy' elif es.server_var['bot_difficulty'] == 1: botdif = 'normal' elif es.server_var['bot_difficulty'] == 2: botdif = 'hard' elif es.server_var['bot_difficulty'] == 3: botdif = 'expert' botset = popuplib.create('botset') botset.addline('Bot Settings Menu') botset.addline('->1. Bot auto balance: ' + autobalance) botset.addline('->2. Bot chatter: ' + es.server_var['bot_chatter']) botset.addline('->3. Bot defer to human: ' + botdefer) botset.addline('->4. Bot difficulty: ' + botdif) botset.addline('->5. Bot quota mode: ' + es.server_var['bot_quota_mode']) botset.addline(' ') botset.addline('->7. Advanced settings') botset.addline('->8. Weapon settings') botset.addline('->9. Back to main menu') botset.timeoutview = 20 botset.menuselect = botset_menu popuplib.send('botset', userid) def botadv(): if es.server_var['bot_allow_rogues'] == 0: botrogue = 'no' elif es.server_var['bot_allow_rogues'] == 1: botrogue = 'yes' if es.server_var['bot_auto_follow'] == 0: botfollow = 'no' elif es.server_var['bot_auto_follow'] == 1: botfollow = 'yes' if es.server_var['bot_auto_vacate'] == 0: botvacate = 'no' elif es.server_var['bot_auto_vacate'] == 1: botvacate = 'yes' if es.server_var['bot_join_after_player'] == 0: botjoin = 'no' elif es.server_var['bot_join_after_player'] == 1: botjoin = 'yes' if es.server_var['bot_prefix'] == '': botprefix = 'difficulty' elif es.server_var['bot_prefix'] == '': botprefix = 'weapon class' elif es.server_var['bot_prefix'] == '': botprefix = 'skill' else: botprefix = 'none' if es.server_var['bot_walk'] == 0: botwalk = 'no' elif es.server_var['bot_walk'] == 1: botwalk = 'yes' botadv = popuplib.create('botadv') botadv.addline('Advanced Settings') botadv.addline('->1. Bot allow rogues: ' + botrogue) botadv.addline('->2. Bot auto follow: ' + botfollow) botadv.addline('->3. Bot auto vacate: ' + botvacate) botadv.addline('->4. Bot eco limit: ' + es.server_var['bot_eco_limit']) botadv.addline('->5. Bot join after player: ' + botjoin) botadv.addline('->6. Bot prefix: ' + botprefix) botadv.addline('->7. Bot walk only: ' + botwalk) botadv.addline(' ') botadv.addline('->9. Back to settings') botadv.timeoutview = 20 botadv.menuselect = botadv_menu popuplib.send('botadv', userid) def botwep(): botwep = popuplib.create('botwep') botwep.addline('Weapon Settings') botwep.addline('->1. Allow Pistols: ' + es.server_var['bot_allow_pistols']) botwep.addline('->2. Allow Sub Machines: ' + es.server_var['bot_allow_sub_machine_guns']) botwep.addline('->3. Allow Shotguns: ' + es.server_var['bot_allow_shotguns']) botwep.addline('->4. Allow Machine Guns: ' + es.server_var['bot_allow_machine_guns']) botwep.addline('->5. Allow Rifles: ' + es.server_var['bot_allow_rifles']) botwep.addline('->6. Allow Snipers: ' + es.server_var['bot_allow_snipers']) botwep.addline('->7. Allow Grenades: ' + es.server_var['bot_allow_grenades']) botwep.addline(' ') botwep.addline('->9. Back to settings') botwep.timeoutview = 20 botwep.menuselect = botwep_menu popuplib.send('botwep', userid) def botmain_menu(userid, choice, popupid): name = es.getplayername(userid) usersteam = es.getplayersteamid(userid) if choice == 1: es.server_var['bot_quota'] = es.server_var['bot_quota'] + 1 es.msg('#multi', '#defaultAdmin #lightgreen%s#default changed the bot count to %i' % (name, es.server_var['bot_quota'])) botmain() elif choice == 2: es.server_var['bot_quota'] = es.server_var['bot_quota'] - 1 if es.server_var['bot_quota'] < 0: es.server_var['bot_quota'] = 0 es.msg('#multi', '#defaultAdmin #lightgreen%s#default changed the bot count to %i' % (name, es.server_var['bot_quota'])) botmain() elif choice == 3: es.server.cmd('bot_kill') es.msg('#multi', '#defaultAdmin #lightgreen%s#default slayed all bots' % name) botmain() elif choice == 4: es.server.cmd('bot_kick') es.msg('#multi', '#defaultAdmin #lightgreen%s#default removed all bots' % name) botmain() elif choice == 5: if int(es.server_var['bot_auto_kill']) == 0: es.set('bot_auto_kill', '1') es.msg('#multi', '#defaultAdmin #lightgreen%s#default set bots auto kill to ON' % name) else: es.set('bot_auto_kill', '0') es.msg('#multi', '#defaultAdmin #lightgreen%s#default set bots auto kill to OFF' % name) botmain() elif choice == 6: if es.server_var['bot_stop'] == 0: es.server_var['bot_stop'] = 1 es.msg('#multi', '#defaultAdmin #lightgreen%s#default has frozen the bots' % name) else: es.server_var['bot_stop'] = 0 es.msg('#multi', '#defaultAdmin #lightgreen%s#default has unfrozen the bots' % name) botmain() elif choice == 7: if es.server_var['bot_join_team'] == 'any': es.server_var['bot_join_team'] = 't' elif es.server_var['bot_join_team'] == 't': es.server_var['bot_join_team'] = 'ct' else: es.server_var['bot_join_team'] = 'any' es.msg('#multi', '#defaultAdmin #lightgreen%s#default set bots join team to %s' % (name, es.server_var['bot_join_team'])) botmain() elif choice == 9: if usersteam in special: botset() else: es.tell(userid, '#multi', '#defaultYou are not authorized to access the bot settings') else: popuplib.delete('botmain') def botset_menu(userid, choice, popupid): if choice == 1: if es.server_var['bot_auto_balance'] == 0: es.set('bot_auto_balance', '1') else: es.set('bot_auto_balance', '0') botset() elif choice == 2: if es.server_var['bot_chatter'] == 'normal': es.server_var['bot_chatter'] = 'radio' elif es.server_var['bot_chatter'] == 'radio': es.server_var['bot_chatter'] = 'minimal' elif es.server_var['bot_chatter'] == 'minimal': es.server_var['bot_chatter'] = 'off' else: es.server_var['bot_chatter'] = 'normal' botset() elif choice == 3: if es.server_var['bot_defer_to_human'] == 0: es.server_var['bot_defer_to_human'] = 1 else: es.server_var['bot_defer_to_human'] = 0 botset() elif choice == 4: if es.server_var['bot_difficulty'] < 3: es.server_var['bot_difficulty'] = es.server_var['bot_difficulty'] + 1 else: es.server_var['bot_difficulty'] = 0 botset() elif choice == 5: if es.server_var['bot_quota_mode'] == 'normal': es.server_var['bot_quota_mode'] = 'fill' elif es.server_var['bot_quota_mode'] == 'fill': es.server_var['bot_quota_mode'] = 'match' else: es.server_var['bot_quota_mode'] = 'normal' botset() elif choice == 7: botadv() elif choice == 8: botwep() elif choice == 9: botmain() else: popuplib.delete('botset') def botadv_menu(userid, choice, popupid): if choice == 1: if es.server_var['bot_allow_rogues'] == 0: es.server_var['bot_allow_rogues'] = 1 else: es.server_var['bot_allow_rogues'] = 0 botadv() elif choice == 2: if es.server_var['bot_auto_follow'] == 0: es.server_var['bot_auto_follow'] = 1 else: es.server_var['bot_auto_follow'] = 0 botadv() elif choice == 3: if es.server_var['bot_auto_vacate'] == 0: es.server_var['bot_auto_vacate'] = 1 else: es.server_var['bot_auto_vacate'] = 0 botadv() elif choice == 4: if es.server_var['bot_eco_limit'] < 16000: es.server_var['bot_eco_limit'] = es.server_var['bot_eco_limit'] + 500 else: es.server_var['bot_eco_limit'] = 0 botadv() elif choice == 5: if es.server_var['bot_join_after_player'] == 0: es.server_var['bot_join_after_player'] = 1 else: es.server_var['bot_join_after_player'] = 0 botadv() elif choice == 6: if es.server_var['bot_prefix'] == '': es.server_var['bot_prefix'] = '' elif es.server_var['bot_prefix'] == '': es.server_var['bot_prefix'] = '' elif es.server_var['bot_prefix'] == '': es.server_var['bot_prefix'] = '' else: es.server_var['bot_prefix'] = '' botadv() elif choice == 7: if es.server_var['bot_walk'] == 0: es.server_var['bot_walk'] = 1 else: es.server_var['bot_walk'] = 0 botadv() elif choice == 9: botset() else: popuplib.delete('botadv') def botwep_menu(userid, choice, popupid): if choice == 1: if es.server_var['bot_allow_pistols'] == 0: es.server_var['bot_allow_pistols'] = 1 else: es.server_var['bot_allow_pistols'] = 0 botwep() elif choice == 2: if es.server_var['bot_allow_sub_machine_guns'] == 0: es.server_var['bot_allow_sub_machine_guns'] = 1 else: es.server_var['bot_allow_sub_machine_guns'] = 0 botwep() elif choice == 3: if es.server_var['bot_allow_shotguns'] == 0: es.server_var['bot_allow_shotguns'] = 1 else: es.server_var['bot_allow_shotguns'] = 0 botwep() elif choice == 4: if es.server_var['bot_allow_machine_guns'] == 0: es.server_var['bot_allow_machine_guns'] = 1 else: es.server_var['bot_allow_machine_guns'] = 0 botwep() elif choice == 5: if es.server_var['bot_allow_rifles'] == 0: es.server_var['bot_allow_rifles'] = 1 else: es.server_var['bot_allow_rifles'] = 0 botwep() elif choice == 6: if es.server_var['bot_allow_snipers'] == 0: es.server_var['bot_allow_snipers'] = 1 else: es.server_var['bot_allow_snipers'] = 0 botwep() elif choice == 7: if es.server_var['bot_allow_grenades'] == 0: es.server_var['bot_allow_grenades'] = 1 else: es.server_var['bot_allow_grenades'] = 0 botwep() elif choice == 9: botset() else: popuplib.delete('botwep') def player_death(ev): if not len(playerlib.getPlayerList('#human, #alive')): if int(es.server_var['bot_auto_kill']) == 1: es.server.cmd('bot_kill') def player_disconnect(ev): if not len(playerlib.getPlayerList('#human, #alive')): if int(es.server_var['bot_auto_kill']) == 1: es.server.cmd('bot_kill') def round_end(ev): if es.getplayercount(3) != es.getplayercount(2): if int(es.server_var['bot_auto_balance']) == 1: if len(playerlib.getPlayerList('#bot')) > len(playerlib.getPlayerList('#human')): es.server_var['bot_quota'] = es.server_var['bot_quota'] - 1 else: es.server_var['bot_quota'] = es.server_var['bot_quota'] + 1 def unload(): es.unregclientcmd('admin_botmenu')