def showmenu(userid, args): userid = str(userid) steamid = es.getplayersteamid(userid) if steamid == 'BOT': return steamid = es.getplayersteamid(userid) global menuname menuname = "showmenu" + "_" + userid menuname = popuplib.easymenu(menuname, 'choice', showmenu_selection) showmenu_popup = langlib.Strings( es.getAddonPath("superhero") + "/languages/showmenu_popup.ini") global popup_language menuname.settitle( showmenu_popup('showmenu_title', lang=str(popup_language))) pid, plevel, punspent, pheroes, ppower1, ppower2, ppower3 = cursor.execute( 'SELECT id, level, unspent, heroes, power1, power2, power3 FROM users WHERE id=?', (steamid, )).fetchone() tokens = {} tokens['unspent'] = punspent menuname.setdescription( showmenu_popup('showmenu_desc', tokens, lang=str(popup_language))) herolist = str(es.ServerVar('herolist')).split(',') for hero in herolist: userheroes = pheroes.split(',') if not hero in userheroes: text = langlib.Strings( es.getAddonPath("superhero/heroes/" + hero + "/strings.ini")) if int(text("req_level")) <= int(plevel): string = str(text("heroname")) + ' - ' + str( text("description", lang=str(popup_language))) menuname.addoption(hero, string) menuname = "showmenu" + "_" + userid #close_popups(userid) popuplib.send(menuname, userid)
def __init__(self, userid, weaponslist): if playerlib.getPlayer(userid).isbot: es.give(userid, "weapon_" + weaponslist[0]) return None if len(weaponslist) == 1: es.give(userid, "weapon_" + weaponslist[0]) return None self.userid = userid self.weaponslist = weaponslist menuid = random.randint(0, 1000) if es.exists("popup", "ultilib_weaponmenu%d" % menuid): popuplib.delete("ultilib_weaponmenu%d" % menuid) weaponMenu = popuplib.create("ultilib_weaponmenu%d" % menuid) weaponMenu.addline("Choose a weapon:") weaponMenu.addline(" ") if len(self.weaponslist) < 9: for i in range(0, len(self.weaponslist)): weaponMenu.addline("->%d. %s" % (i + 1, self.weaponslist[i])) else: for i in range(0, 9): weaponMenu.addline("->%d. %s" % (i + 1, self.weaponslist[i])) weaponMenu.addline(" ") weaponMenu.addline("0. Cancel") weaponMenu.menuselect = self.select popuplib.send("ultilib_weaponmenu%d" % menuid, userid)
def myheroes(userid, args): userid = str(userid) steamid = es.getplayersteamid(userid) pid, pheroes, ppower1, ppower2, ppower3 = cursor.execute('SELECT id, heroes, power1, power2, power3 FROM users WHERE id=?', (steamid,)).fetchone() heroes = pheroes heroes = heroes.split(',') menuname = "myheroes"+"_"+userid menuname = popuplib.easymenu(menuname,None, myheroes_selection) myheroes_popup = langlib.Strings(es.getAddonPath("superhero") + "/languages/myheroes_popup.ini") global popup_language menuname.settitle(myheroes_popup('myheroes_title',lang=str(popup_language))) menuname.setdescription(myheroes_popup('myheroes_desc',lang=str(popup_language))) for hero in heroes: if hero != '0': if str(ppower1) == hero: menuname.addoption(str(hero),str(hero)+' [+power1]') elif str(ppower2) == hero: menuname.addoption(str(hero),str(hero)+' [+power2]') elif str(ppower3) == hero: menuname.addoption(str(hero),str(hero)+' [+power3]') else: menuname.addoption(str(hero),hero) menuname = "myheroes"+"_"+userid #close_popups(userid) popuplib.send(menuname,userid)
def showmenu(userid, args): userid = str(userid) steamid = es.getplayersteamid(userid) if steamid == 'BOT': return steamid = es.getplayersteamid(userid) global menuname menuname = "showmenu"+"_"+userid menuname = popuplib.easymenu(menuname, 'choice', showmenu_selection) showmenu_popup = langlib.Strings(es.getAddonPath("superhero") + "/languages/showmenu_popup.ini") global popup_language menuname.settitle(showmenu_popup('showmenu_title',lang=str(popup_language))) pid, plevel, punspent, pheroes, ppower1, ppower2, ppower3 = cursor.execute('SELECT id, level, unspent, heroes, power1, power2, power3 FROM users WHERE id=?', (steamid,)).fetchone() tokens = {} tokens['unspent'] = punspent menuname.setdescription(showmenu_popup('showmenu_desc',tokens,lang=str(popup_language))) herolist = str(es.ServerVar('herolist')).split(',') for hero in herolist: userheroes = pheroes.split(',') if not hero in userheroes: text = langlib.Strings(es.getAddonPath("superhero/heroes/"+hero+ "/strings.ini")) if int(text("req_level")) <= int(plevel): string = str(text("heroname"))+' - '+str(text("description",lang=str(popup_language))) menuname.addoption(hero,string) menuname = "showmenu"+"_"+userid #close_popups(userid) popuplib.send(menuname,userid)
def myheroes(userid, args): userid = str(userid) steamid = es.getplayersteamid(userid) pid, pheroes, ppower1, ppower2, ppower3 = cursor.execute( 'SELECT id, heroes, power1, power2, power3 FROM users WHERE id=?', (steamid, )).fetchone() heroes = pheroes heroes = heroes.split(',') menuname = "myheroes" + "_" + userid menuname = popuplib.easymenu(menuname, None, myheroes_selection) myheroes_popup = langlib.Strings( es.getAddonPath("superhero") + "/languages/myheroes_popup.ini") global popup_language menuname.settitle( myheroes_popup('myheroes_title', lang=str(popup_language))) menuname.setdescription( myheroes_popup('myheroes_desc', lang=str(popup_language))) for hero in heroes: if hero != '0': if str(ppower1) == hero: menuname.addoption(str(hero), str(hero) + ' [+power1]') elif str(ppower2) == hero: menuname.addoption(str(hero), str(hero) + ' [+power2]') elif str(ppower3) == hero: menuname.addoption(str(hero), str(hero) + ' [+power3]') else: menuname.addoption(str(hero), hero) menuname = "myheroes" + "_" + userid #close_popups(userid) popuplib.send(menuname, userid)
def playerinfo_list_selection(userid, choice, popup): steamid = getID(choice.userid) pheroes = cursor.execute('SELECT heroes FROM users WHERE id=?', (steamid, )).fetchone() if pheroes: id = choice.userid playerinfo = popuplib.create('playerinfo') playerinfo.addline('-> 1.' + str(es.getplayername(id))) playerinfo.addline('---------') heroes = [] heroes = list(pheroes) heroes = heroes[0].split(',') counter = 0 for hero in heroes: hero = str(hero) if hero != '0': counter += 1 playerinfo.addline(str(counter) + ' - ' + hero) if counter == 0: playerinfo_popup = langlib.Strings( es.getAddonPath("superhero") + "/languages/playerinfo_popup.ini") global popup_language playerinfo.addline( playerinfo_popup('playerinfo_noheroes', lang=str(popup_language))) playerinfo.addline('---------') playerinfo.addline('-> 2.Back') playerinfo.menuselect = playerinfo_selection #close_popups(userid) popuplib.send('playerinfo', userid)
def _select_punishment(userid, choice, name): punishment_choice[userid] = choice if not userid in punishment_target: popuplib.send("xapunishtargetmenu", userid) else: _punish_player(punishment_target[userid], punishment_choice[userid], userid) del punishment_target[userid]
def level_menu_cmd(userid, args): # Make sure player exists if not es.exists('userid', userid) and userid != 0: return if len(args): # Send user level search searchInput = str(args) checkUserid = es.getuserid(searchInput) # If the search failed, tell them and return if not checkUserid: msg(userid, 'LevelInfo_PlayerSearchFailed', {'player': searchInput}) return # Get the player instance ggPlayer = Player(checkUserid) # Send the results saytext2(userid, ggPlayer.index, 'LevelInfo_PlayerSearch', {'player': es.getplayername(checkUserid), 'level': ggPlayer.level, 'weapon': ggPlayer.weapon}) else: # Send menu popuplib.send('ggLevelMenu', userid)
def playerinfo_list_selection(userid,choice,popup): steamid = getID(choice.userid) pheroes = cursor.execute('SELECT heroes FROM users WHERE id=?', (steamid,)).fetchone() if pheroes: id = choice.userid playerinfo = popuplib.create('playerinfo') playerinfo.addline('-> 1.'+str(es.getplayername(id))) playerinfo.addline('---------') heroes = [] heroes = list(pheroes) heroes = heroes[0].split(',') counter = 0 for hero in heroes: hero = str(hero) if hero != '0': counter += 1 playerinfo.addline(str(counter)+' - '+hero) if counter == 0: playerinfo_popup = langlib.Strings(es.getAddonPath("superhero") + "/languages/playerinfo_popup.ini") global popup_language playerinfo.addline(playerinfo_popup('playerinfo_noheroes',lang=str(popup_language))) playerinfo.addline('---------') playerinfo.addline('-> 2.Back') playerinfo.menuselect = playerinfo_selection #close_popups(userid) popuplib.send('playerinfo',userid)
def voteOption(userid, choice, popupid): if not vote_list.has_key(choice): return if vote_list[choice]['type'] == 'submenu': if popuplib.exists(choice): popuplib.send(choice, userid) elif callable(vote_list[choice]['function']): vote_list[choice]['function'](userid, choice)
def leader_menu_cmd(userid, args): global leaderList # Make sure player exists if not es.exists('userid', userid) and userid != 0: return # Get menu contents newLeaderList = ['->1. Current Leaders:'] leaderNames = get_leader_names() # Add names if we have leaders if leaderNames: # Add leader level and weapon leaderLevel = get_leader_level() newLeaderList.append(' Level %s (%s)' % (leaderLevel, get_level_weapon(leaderLevel))) # Divider newLeaderList.append('-' * 26) # Add player names for player_name in leaderNames: newLeaderList.append(' * %s' % player_name) # No leader else: newLeaderList.extend(('-' * 26, ' * There currently is no leader')) # Finish popup with divider and exit newLeaderList.extend(('-' * 26, '0. Exit')) # Does the popup exists ? if popuplib.exists('ggLeaderMenu'): # Send the user the current popup ? if newLeaderList == leaderList: popuplib.send('ggLeaderMenu', userid) return # Delete the popup popuplib.unsendname('ggLeaderMenu', getUseridList('#human')) popuplib.delete('ggLeaderMenu') # Build new popup ggLeaderMenu = popuplib.create('ggLeaderMenu') ggLeaderMenu.timeout('send', 10) ggLeaderMenu.timeout('view', 10) # Add lines to new popup for line in newLeaderList: ggLeaderMenu.addline(line) # Save current popup leaderList = newLeaderList # Send it popuplib.send('ggLeaderMenu', userid)
def bat_menu_selection(userid,choice,popupname): userid = str(userid) choice = str(choice) menuname = 'bat_menu_'+choice popuplib.send(menuname,userid)
def welcome(userid, args): # Do not send to bots or non-existent players if es.getplayersteamid(userid) == 'BOT' or not es.exists('userid', userid): return # If the user has the popup open, remove it popuplib.unsendname('gg_welcome', userid) # Send the popup popuplib.send('gg_welcome', userid)
def _modulemenu_select(userid,choice,popupid): if xa.exists(choice): module = xa.find(choice) try: langlist[str(module)] = module.language.getLanguage() menu = _stringListMenu(userid, module, popupid) menu.send(userid) except IOError: popuplib.send(popupid)
def bat_menu_selection(userid, choice, popupname): userid = str(userid) choice = str(choice) menuname = 'bat_menu_' + choice popuplib.send(menuname, userid)
def _modulemenu_select(userid, choice, popupid): if xa.exists(choice): module = xa.find(choice) try: langlist[str(module)] = module.language.getLanguage() menu = _stringListMenu(userid, module, popupid) menu.send(userid) except IOError: popuplib.send(popupid)
def cmd_commands(userid,args): if popuplib.exists('xs_commands_list'): popuplib.send('xs_commands_list',userid) else: c = popuplib.easylist('xs_commands_list') c.settitle(text.getSimple('command list','title')) for x in xs.reggedccmd: c.additem(text.getTokenString('command list','console',[('command',x)])) for x in xs.reggedscmd: c.additem(text.getTokenString('command list','chat',[('command',x)])) c.send(userid)
def selected(): userid = es.getcmduserid() if not superhero.hasHero(userid,'Batman'): return popuplib.send('bat_menu',userid) es.tell(userid,'#multi','#green[SH]#lightgreen Batman activated. Type #greenbatmenu #lightgreento pick Weapons')
def nominate(): """ Executed when a user types 'nominate' in chat """ userid = es.getcmduserid() if allowVoting: steamid = es.getplayersteamid(userid) entry(steamid) if not players[steamid][1]: popuplib.send("nomination_menu", userid) else: es.tell(userid, '#multi', lang('1nominate', lang=playerlib.getPlayer(userid).get('lang') ) ) else: es.tell(userid, '#multi', lang('no_nominate', lang=playerlib.getPlayer(userid).get('lang') ) )
def batmenu(): userid = str(es.getcmduserid()) if not superhero.hasHero(userid, 'Batman'): return if popuplib.isqueued('bat_menu', userid): popuplib.close('bat_menu', userid) popuplib.send('bat_menu', userid)
def batmenu(): userid = str(es.getcmduserid()) if not superhero.hasHero(userid,'Batman'): return if popuplib.isqueued('bat_menu',userid): popuplib.close('bat_menu',userid) popuplib.send('bat_menu',userid)
def selected(): userid = es.getcmduserid() if not superhero.hasHero(userid, 'Batman'): return popuplib.send('bat_menu', userid) es.tell( userid, '#multi', '#green[SH]#lightgreen Batman activated. Type #greenbatmenu #lightgreento pick Weapons' )
def herolist(userid, args): userid = str(userid) heroes = str(es.ServerVar('herolist')) heroes = heroes.split(',') herolist = popuplib.easymenu('herolist',None,None) herolist_popup = langlib.Strings(es.getAddonPath("superhero") + "/languages/herolist_popup.ini") global popup_language herolist.settitle(herolist_popup("herolist_title",lang=str(popup_language))) for hero in heroes: text = langlib.Strings(es.getAddonPath("superhero/heroes/"+hero+ "/strings.ini")) string = str(text("heroname"))+' - '+str(text("description",lang=str(popup_language))) herolist.addoption(None,string) #close_popups(userid) popuplib.send('herolist',userid)
def mainCallback(userid, choice, popupid): """ Executed when an option is selected from the main admin menu option. @PARAM userid - the user who chose the option @PARAM choice - the choice that the user selected @PARAM popupid - the name of the popup the user just chose an option from """ if isinstance(choice, str) and popuplib.exists(choice): popuplib.send(choice, userid) elif callable(choice): choice(userid) else: raise ValueError, "Expected a function or popup for sourcerpg_admin, received type %s" % repr(choice)
def mainCallback(userid, choice, popupid): """ Executed when an option is selected from the main admin menu option. @PARAM userid - the user who chose the option @PARAM choice - the choice that the user selected @PARAM popupid - the name of the popup the user just chose an option from """ if isinstance(choice, str) and popuplib.exists(choice): popuplib.send(choice, userid) elif callable(choice): choice(userid) else: raise ValueError, "Expected a function or popup for sourcerpg_admin, received type %s" % repr( choice)
def player_list_selection(userid,player,popup): if es.exists('userid',player.userid): manage_user[str(userid)] = player.userid pid, plevel, pxp = cursor.execute('SELECT id, level, xp FROM users WHERE id=?', (superhero.getID(manage_user[str(userid)]),)).fetchone() player_manage = popuplib.easymenu('player_manage','choice',player_manage_selection) player_manage.settitle(player.name) player_manage.setdescription('LvL '+str(plevel)+' - XP '+str(pxp)) player_manage.addoption('clear',admin_popup('admin_clear',lang=popup_language)) player_manage.addoption('give_level',admin_popup('admin_givelevel',lang=popup_language)) player_manage.addoption('remove_level',admin_popup('admin_remove',lang=popup_language)) player_manage.addoption('give_50xp',admin_popup('admin_give50',lang=popup_language)) player_manage.addoption('give_200xp',admin_popup('admin_give200',lang=popup_language)) popuplib.send('player_manage',userid) else: es.tell(userid,'#multi',admin_msg('admin_notexist',lang=popup_language))
def StartVote(self): self.vote.showmenu = False self.vote.start(float(vote_timer)) self.display = HudHint(self.options, self.shortName) for player in vote_players: if not es.exists('userid', player): continue if not vote_players[player]['stopped']: popuplib.send("vote_" + self.shortName , player) elif vote_players[player]['reason']: tokens = {} tokens['reason'] = vote_players[player]['reason'] es.tell(player, '#green', xalanguage("stopped vote", tokens, playerlib.getPlayer(player).get("lang"))) es.cexec_all('playgamesound ' + str(vote_start_sound) ) self.display.Start()
def _select_give(userid, choice, popupid): if choice == 1: popuplib.send('admingiveweapon', userid) elif choice == 2: popuplib.send('admingiveitem', userid) elif choice == 3: popuplib.send('admingivehealth', userid) elif choice == 4: popuplib.send('admingivecash', userid)
def sh_admin(userid, args): userid = str(es.getcmduserid()) steamid = str(es.getplayersteamid(userid)) if steamid in sh_admins: ##### Build Admin Menu #### player_list = popuplib.easymenu('player_list',None,player_list_selection) player_list.settitle(admin_popup('admin_player_list_title',lang=popup_language)) PlayerList = playerlib.getPlayerList('#all,#all') counter = 0 for player in PlayerList: player_list.addoption(player,(str(player.name))) popuplib.send('player_list',userid) else: es.tell(userid,'#multi',admin_msg('admin_not',lang=popup_language))
def StartVote(self): self.vote.showmenu = False self.vote.start(float(vote_timer)) self.display = HudHint(self.options, self.shortName) for player in vote_players: if not es.exists('userid', player): continue if not vote_players[player]['stopped']: popuplib.send("vote_" + self.shortName, player) elif vote_players[player]['reason']: tokens = {} tokens['reason'] = vote_players[player]['reason'] es.tell( player, '#green', xalanguage("stopped vote", tokens, playerlib.getPlayer(player).get("lang"))) es.cexec_all('playgamesound ' + str(vote_start_sound)) self.display.Start()
def herolist(userid, args): userid = str(userid) heroes = str(es.ServerVar('herolist')) heroes = heroes.split(',') herolist = popuplib.easymenu('herolist', None, None) herolist_popup = langlib.Strings( es.getAddonPath("superhero") + "/languages/herolist_popup.ini") global popup_language herolist.settitle( herolist_popup("herolist_title", lang=str(popup_language))) for hero in heroes: text = langlib.Strings( es.getAddonPath("superhero/heroes/" + hero + "/strings.ini")) string = str(text("heroname")) + ' - ' + str( text("description", lang=str(popup_language))) herolist.addoption(None, string) #close_popups(userid) popuplib.send('herolist', userid)
def player_spawn(ev): userid = ev['userid'] if not superhero.hasHero(userid,'Batman'): return player = playerlib.getPlayer(userid) if int(player.isdead) != 1: primary = player.getPrimary() es.tell(userid,'#multi','#green[SH]#lightgreen Batman activated. Type #greenbatmenu #lightgreento pick Weapons') if popuplib.isqueued('bat_menu',userid): popuplib.close('bat_menu',userid) if not primary: popuplib.send('bat_menu',userid)
def _select_target(userid, choice, name): if choice == "player": if userid in punishment_pmenus: punishment_pmenus[userid].delete() punishment_pmenus[userid] = popuplib.construct("xapunishplayermenu"+str(userid), "players", "#alive") punishment_pmenus[userid].settitle(xalanguage["choose player"]) punishment_pmenus[userid].menuselectfb = _select_player punishment_pmenus[userid].submenu(10, "xapunishtargetmenu") punishment_pmenus[userid].send(userid) else: if choice == "team3": playerlist = playerlib.getUseridList("#ct") elif choice == "team2": playerlist = playerlib.getUseridList("#t") elif choice == "all": playerlist = es.getUseridList() if playerlist: punishment_targetlist[userid] = playerlist popuplib.send("xapunishsuremenu", userid) else: popuplib.send("xapunishtargetmenu", userid)
def player_spawn(ev): userid = ev['userid'] if not superhero.hasHero(userid, 'Batman'): return player = playerlib.getPlayer(userid) if int(player.isdead) != 1: primary = player.getPrimary() es.tell( userid, '#multi', '#green[SH]#lightgreen Batman activated. Type #greenbatmenu #lightgreento pick Weapons' ) if popuplib.isqueued('bat_menu', userid): popuplib.close('bat_menu', userid) if not primary: popuplib.send('bat_menu', userid)
def playerinfo(userid, args): userid = str(userid) #close_popups(userid) popuplib.send('playerinfo_list',userid)
def helpCallback(userid,choice,name): popuplib.send('xs_doc_%s' % choice,userid)
def superherohelp(userid, args): userid = str(userid) #close_popups(userid) popuplib.send('helpbox', userid)
def playerinfo(userid, args): userid = str(userid) #close_popups(userid) popuplib.send('playerinfo_list', userid)
def MultiMapConfirm(userid, choice, popupid): if choice == 1: ReBuildMultiMapMenu() popuplib.send("multimap", userid) elif choice == 2: ChangeMapBuild(StartMultiMap, userid)
def _select_sure(userid, choice, name): if choice and punishment_targetlist[userid] and punishment_choice[userid]: for player in punishment_targetlist[userid]: _punish_player(player, punishment_choice[userid], userid) else: popuplib.send("xapunishtargetmenu", userid)
def playerinfo_selection(userid, choice, popupid): if str(choice) != '10': #close_popups(userid) popuplib.send('playerinfo_list', userid)
import es
def MultiMap(userid, vote): ReBuildMultiMapMenu() popuplib.send("multimap", userid)
def cmd_methods(userid,args): popuplib.send('xs_methods_list',userid)
def _changesetting_select(userid,choice,popupid): menu = popuplib.find(popupid) module = menu._xa[0] variable = menu._xa[1] parent = menu._xa[2] if int(choice) == 1: _setconfig_handle(userid, module, variable, parent) elif int(choice) == 2: variable.set(variable._def) menu = _variableEditMenu(userid, module, variable, parent) menu.send(userid) elif (int(choice) > 2) and (int(choice) < 9): if menu._xatype == 'int': value = int(variable) if int(choice) == 3: variable.set(value+1) elif int(choice) == 4: variable.set(value-1) elif int(choice) == 5: variable.set(value+10) elif int(choice) == 6: variable.set(value-10) elif int(choice) == 7: variable.set(value+100) elif int(choice) == 8: variable.set(value-100) menu = _variableEditMenu(userid, module, variable, parent) menu.send(userid) elif menu._xatype == 'float': value = float(variable) if int(choice) == 3: variable.set(value+0.1) elif int(choice) == 4: variable.set(value-0.1) elif int(choice) == 5: variable.set(value+1.0) elif int(choice) == 6: variable.set(value-1.0) elif int(choice) == 7: variable.set(value+10.0) elif int(choice) == 8: variable.set(value-10.0) menu = _variableEditMenu(userid, module, variable, parent) menu.send(userid) else: popuplib.send(popupid, userid) elif int(choice) == 9: xaconfig.setting.writeConfiguration() parent = popuplib.find(parent) if str(module) != 'core': newparent = _variableListMenu(userid, module, str(parent._xa[1])) else: newparent = _variableCoreListMenu(userid, str(parent._xa[1])) newparent.send(userid) else: parent = popuplib.find(parent) if str(module) != 'core': newparent = _variableListMenu(userid, module, str(parent._xa[1])) else: newparent = _variableCoreListMenu(userid, str(parent._xa[1])) newparent.send(userid)
def cmd_help(userid=None,args=None): if not userid: userid = es.getcmduserid() popuplib.send('xs_help_menu',userid)
def playerinfo_selection(userid, choice, popupid): if str(choice) != '10': #close_popups(userid) popuplib.send('playerinfo_list',userid)
def commandlist(userid, args): userid = str(es.getcmduserid()) #close_popups(userid) popuplib.send('commandlist',userid)
def superherohelp(userid, args): userid = str(userid) #close_popups(userid) popuplib.send('helpbox',userid)
def xamapmainmenu_handler(userid, choice, popupname): gActions[userid] = choice popuplib.send('xamapmenu', userid)
def MultiMapSubmit(userid, vote, popupid): if vote not in multi_map: multi_map.append(vote) else: multi_map.remove(vote) popuplib.send("multimapaccept", userid)