def battlefunc(): utils.drawline('BATTLE') bootyns = {} avail_maps = [] for m in userinf.mapstatus: bootyns[m['mapid']] = m['bootyn'] maps = plists.get_plist('map') for m in maps: if m in bootyns: print m + '\t' + maps[m]['groupname'] + ' - ' + maps[m]['mapname'] + ': ' + bootyns[m] avail_maps.append(m) elif maps[m]['needmapid'] == '' or maps[m]['needmapid'] in bootyns: print m + '\t' + maps[m]['groupname'] + ' - ' + maps[m]['mapname'] + ': ?' avail_maps.append(m) mapname = raw_input('Input map id: ') if mapname not in maps: print 'Input error.' return elif mapname not in avail_maps: print 'Map not available.' return sel, sel_group = selectgroup() if sel_group == None: return gotomap(mapname, sel, sel_group)
def itemfunc(): utils.drawline('EQUIPMENT') itemlists = {'1': [], '2': [], '3': [], '4': []} for equip in userinf.userequipments: id = equip['equipmentid'] num = equip['countnumber'] compactequip = { 'equipmentid': id, 'countnumber': num, 'equipmentname': plists.get_plist('equipment')[id]['equipmentname'] } itemlists[plists.get_plist('equipment')[id]['type']].append( compactequip) print 'Weapons:' printitem(itemlists['1']) print 'Armors:' printitem(itemlists['2']) print 'Items:' printitem(itemlists['3']) print 'Materials:' printitem(itemlists['4']) sel = itemmenu() if (sel == 2): return {0: senditem, 1: sellitem}[sel]()
def banquetfunc(): utils.drawline('BANQUET') print userinf.banquetstatus if userinf.banquetstatus['state'] == '2': banquet_type = userinf.banquetstatus['type'] print '筹备中:', plists.get_plist('banquet')[banquet_type]['name'] print '剩余:', userinf.banquetstatus['readyendsecond'] + 's' print 'TODO: 快速筹备' #TODO
def gotomap(mapname, sel, sel_group): utils.drawline('GOTOMAP') bn = dogetmapdata(mapname, 2, sel, sel_group) nextflag = dogetbattledata(bn, sel_group) if nextflag != '0': delaytime = utils.chi2_rand_time() print 'Sleeping: ' + str(delaytime) + 's' utils.drawline(); time.sleep(delaytime) nextflag = dogetbattledata(bn, sel_group)
def cardfunc(): utils.drawline('CARD') cardlist = {} for card in userinf.usercards: cardlist[card['cardid']] = card print card['cardid'] + '\t' + card['cardname'] sel = cardmenu() if (sel == 1): return {0: carddetail}[sel](cardlist)
def sellitem(): utils.drawline('SELL') itemid = raw_input("Input item id: ") if not itemid in plists.get_plist('equipment'): print 'Input error.' return count_str = raw_input("Count: ") if not count_str.isdigit(): print 'Input error.' return count = int(count_str) dosellitem(itemid, count)
def getnews(): utils.drawline('NEWS') url = userinf.dataip + db.news_url param = {'m1': 1} data = {'session': userinf.session} req = requests.post(url, params = param, data = data) status, returnjson = utils.testjson(req.text) if status == False: return print 'Title: ' + returnjson['newsname'] print 'Author: ' + returnjson['actorname'] print returnjson['newscontent']
def editgroup(group): utils.drawline('EDIT GROUP') print '0. 设置位置' print '1. 前进' print '2. 撤退' sel = utils.select(2) if sel == 0: #TODO utils.printjson(group) printgroup(group) return 1 else: return sel
def fengna(): utils.drawline('FENGNA') url = userinf.dataip + db.fengna_url param = {'m1': 1} data = {'session': userinf.session} req = requests.post(url, params = param, data = data) if(req.text == '0'): print '赛钱箱空空如也' return status, returnjson = utils.testjson(req.text) if status == False: return analyze_results(returnjson)
def senditem(): utils.drawline('SEND') itemid = raw_input("Input item id: ") cardid = raw_input("Input char id: ") if (not itemid in plists.get_plist('equipment') or not cardid in plists.get_plist('card')): print 'Input error.' return count_str = raw_input("Count: ") if not count_str.isdigit(): print 'Input error.' return count = int(count_str) dosenditem(cardid, itemid, count)
def carddetail(cardlist): utils.drawline('CARDDETAIL') cardid = raw_input("Input card id:") if not cardid in plists.get_plist('card'): print 'Input error.' return if not cardid in cardlist: print 'You do not possess this card.' return card = cardlist[cardid] print cardid + '\t' + card['cardname'] + ', LV' + card[ 'level'] + ', ' + card['exp'] + '/' + card['upexp'] print 'Loyalty: ' + card['loyalty'] + ', Points: ' + card['feat'] print 'Skinid: ' + card['skinid'] + ', ' + plists.get_plist('skin')[ card['skinid']]['skinname'] + ', HasSkins: ' + card['haveskinids'] print 'HP: ' + card['hp'] + ', Def: ' + card['def'] + ', A.rate: ' + card[ 'avoid'] + ', Luck: ' + card['lucky'] print 'AtkMel: ' + card['atk_mel'] + ', AtkRang: ' + card[ 'atk_rang'] + ', H.rate: ' + card['hitrate'] + ', Crit: ' + card['crit'] print 'Block: ' + card['block'] + ', Speed: ' + card['speed'] if card['equipment_id_wq'] == '': print 'Weapon: None,', else: print 'Weapon: ' + card['equipment_id_wq'] + ' ' + plists.get_plist( 'equipment')[card['equipment_id_wq']]['equipmentname'] + ',', if card['equipment_id_fj'] == '': print 'Armor: None' else: print 'Armor: ' + card['equipment_id_fj'] + ' ' + plists.get_plist( 'equipment')[card['equipment_id_fj']]['equipmentname'] spell_atk = plists.get_plist('spell')[card['spell_card_id_atk']] spell_def = plists.get_plist('spell')[card['spell_card_id_def']] spell_aid = plists.get_plist('spell')[card['spell_card_id_aid']] print 'Spell Atk: ' + card['spell_card_id_atk'] + ' ' + spell_atk[ 'name'] + spell_atk['spell_point'] + ', NeedLevel: ' + spell_atk[ 'need_level'] + ', ' + spell_atk['spell_rate'] + '%' print spell_atk['content'] print 'Spell Def: ' + card['spell_card_id_def'] + ' ' + spell_def[ 'name'] + spell_def['spell_point'] + ', NeedLevel: ' + spell_def[ 'need_level'] + ', ' + spell_def['spell_rate'] + '%' print spell_def['content'] print 'Spell Aid: ' + card['spell_card_id_aid'] + ' ' + spell_aid[ 'name'] + spell_aid['spell_point'] + ', NeedLevel: ' + spell_aid[ 'need_level'] + ', ' + spell_aid['spell_rate'] + '%' print spell_aid['content'] #TODO print 'TODO: 加点,切换装备,咕了'
def selectgroup(): utils.drawline('SELECT GROUP') grouplist = {} # eliminate redundancy for group in userinf.teamlist: if group['groupid'] not in grouplist: grouplist[group['groupid']] = group for groupid in grouplist: printgroup(grouplist[groupid]) print 'Select a group(0 to exit)' sel = utils.select(5) if sel == 0: print 'Back to main menu' return -1, None elif str(sel) not in grouplist: print 'Invalid group.' return -1, None sel_group = grouplist[str(sel)] sel2 = editgroup(sel_group) if sel2 == 1: return sel, sel_group else: return -1, None
def questfunc(): utils.drawline('QUEST') sel = 0 updatequests() while sel != 2: operations = {} questlist = {} for quest in userquests: id = quest['questsid'] questdetail = plists.get_plist('quests')[id] questlist[id] = quest if int(quest['acceptflag']) == 0: print '[未接受]\t', operations[id] = doacceptquest elif quest['complete'] == 'false': print '[进行中]\t', operations[id] = docancelquest else: print '[已完成]\t', operations[id] = dosubmitquest print id + '\t' + questdetail['cyclename'] + questdetail[ 'name'] + ': ' + questdetail['true_content'] # print json.dumps(quest, ensure_ascii=False) sel = questmenu() if (sel != 2): print '============================================' if (sel == 0): updatequests() elif (sel == 1): questid = raw_input('Input questid: ') if questid not in plists.get_plist('quests'): print 'Invalid input' elif questid not in operations: print 'Quest not in list' else: operations[questid](questid, questlist[questid]) general.updatedata()
def cardmenu(): utils.drawline('CARDMENU') print '0. 查看人物' print '1. 返回' return utils.select(1)
def questmenu(): utils.drawline('QUESTMENU') print '0. 刷新任务列表' print '1. 敲击任务' print '2. 返回' return utils.select(2)
def itemmenu(): utils.drawline('ITEMMENU') print '0. 赠送' print '1. 出售' print '2. 返回' return utils.select(2)