def garcha_skill10(usr): """ 求技能10次 """ gameConf = config.getConfig('game') goldCost = gameConf['garcha_skill_10_price']['gold'] gemCost = gameConf['garcha_skill_10_price']['gem'] if usr.gold < goldCost: return {'msg':'gold_not_enough'} if usr.gem < gemCost: return {'msg':'gem_not_enough'} awd = {} awd = drop.open(usr, gameConf['garcha_skill_10_dropid1'], awd) for i in range(9): awd = drop.open(usr, gameConf['garcha_skill_10_dropid2'], awd) data = drop.makeData(awd, {}) usr.gold = usr.gold - goldCost usr.gem = usr.gem - gemCost usr.save() data['gold'] = usr.gold data['gem'] = usr.gem return data
def garcha_skill10(usr): """ 求技能10次 """ gameConf = config.getConfig('game') goldCost = gameConf['garcha_skill_10_price']['gold'] gemCost = gameConf['garcha_skill_10_price']['gem'] if usr.gold < goldCost: return {'msg': 'gold_not_enough'} if usr.gem < gemCost: return {'msg': 'gem_not_enough'} awd = {} awd = drop.open(usr, gameConf['garcha_skill_10_dropid1'], awd) for i in range(9): awd = drop.open(usr, gameConf['garcha_skill_10_dropid2'], awd) data = drop.makeData(awd, {}) usr.gold = usr.gold - goldCost usr.gem = usr.gem - gemCost usr.save() data['gold'] = usr.gold data['gem'] = usr.gem return data
def inviteAward(usr, inviteCount): """ 邀请领奖 """ if inviteCount > len(usr.invite['invite']): return {'msg': 'invite_count_not_enough'} while len(usr.invite['invite_award']) < (inviteCount + 1): usr.invite['invite_award'].append('') if usr.invite['invite_award'][inviteCount]: return {'msg': 'invite_award_already_have'} inviteConf = config.getConfig('invite') dropid = inviteConf['invite_award'][inviteCount - 1] if not dropid: return {'msg': 'invite_not_have_award'} usr.invite['invite_award'][inviteCount] = dropid awd = {} awd = drop.open(usr, dropid, awd) data = drop.makeData(awd, {}) #data.update(invite.getClientData(usr)) usr.save() data['invite_award'] = [] for (i, di) in enumerate(usr.invite['invite_award']): if di: data['invite_award'].append(i + 1) return data
def finishQuest(self, questid): """ 完成任务 """ if not self.current.has_key(questid): return {'msg':'quest_not_exist'} q = self.current[questid] usr = self.user questConf = config.getConfig('quest') questInfo = questConf[questid] if (not quest.isFinish(questid, q)) and (questInfo['finishType'] != 'talk_npc_id'): return {'msg':'quest_not_finish'} q['count'] = q['count'] + 1 del self.current[questid] self.finish[questid] = q newQuest = self.acceptNextQuest(questid, questInfo, questConf) data = {} data['finish_quest'] = questid if newQuest: data['accept_quest'] = newQuest if questInfo['dropid']: data = drop.open(usr, questInfo['dropid'], data) self.save() return data
def garcha_skill(usr, nature): """ 求技能 """ gameConf = config.getConfig('game') if (nature > len(gameConf['garcha_skill_dropid'])) or (nature < 0): return {'msg': 'parameter_bad'} goldCost = gameConf['garcha_skill_price'][nature - 1]['gold'] gemCost = gameConf['garcha_skill_price'][nature - 1]['gem'] if int(goldCost) == 0 and int(gemCost) == 0: return {'msg': 'parameter_bad'} if usr.gold < goldCost: return {'msg': 'gold_not_enough'} if usr.gem < gemCost: return {'msg': 'gem_not_enough'} awd = {} awd = drop.open(usr, gameConf['garcha_skill_dropid'][nature - 1], awd) data = drop.makeData(awd, {}) usr.gold = usr.gold - goldCost usr.gem = usr.gem - gemCost data['gold'] = usr.gold data['gem'] = usr.gem return data
def draw_award(usr, position): """ 开服奖励 """ openAwardConf = config.getConfig('open_award') drawidx = [] for t in usr.signin['draw_award_time']: if is_same_day(t, currentTime()): return {'msg':'open_award_already_get'} for idx, ad in enumerate(openAwardConf['draw_award']): if len(usr.signin['draw_award_time']) > idx and not usr.signin['draw_award_time'][idx]: continue if ad['day'] > len(usr.signin['draw_award_time']): continue drawidx.append(idx) if not drawidx: return {'msg':'open_award_already_get'} adidx = random.sample(drawidx, 1)[0] ad = openAwardConf['draw_award'][adidx] awd = {} awd = drop.open(usr, ad['dropid'], awd) while len(usr.signin['draw_award_time']) <= adidx: usr.signin['draw_award_time'].append({}) usr.signin['draw_award_time'][adidx] = {'time':currentTime(), 'position': position} usr.save() data = drop.makeData(awd, {}) return data
def inviteAward(usr, inviteCount): """ 邀请领奖 """ if inviteCount > len(usr.invite['invite']): return {'msg':'invite_count_not_enough'} while len(usr.invite['invite_award']) < (inviteCount + 1): usr.invite['invite_award'].append('') if usr.invite['invite_award'][inviteCount]: return {'msg':'invite_award_already_have'} inviteConf = config.getConfig('invite') dropid = inviteConf['invite_award'][inviteCount - 1] if not dropid: return {'msg': 'invite_not_have_award'} usr.invite['invite_award'][inviteCount] = dropid awd = {} awd = drop.open(usr, dropid, awd) data = drop.makeData(awd, {}) #data.update(invite.getClientData(usr)) usr.save() data['invite_award'] = [] for (i, di) in enumerate(usr.invite['invite_award']): if di: data['invite_award'].append(i + 1) return data
def emailOpen(self, id): """ 打开邮件 """ if not self.email.has_key(id): return {'msg':'email_not_exist'} if self.email[id]['open']: return {'msg':'email_already_open'} usr = self.user emailConf = config.getConfig('email') emailInfo = emailConf[self.email[id]['emailid']] if emailInfo: awd = {} awd = drop.open(usr, emailInfo['dropid'], awd) awd = drop.makeData(awd, {}) self.email[id]['open'] = True self.save() data = awd data['email_update'] = self.email[id] return data
def emailOpen(self, id): """ 打开邮件 """ if not self.email.has_key(id): return {'msg': 'email_not_exist'} if self.email[id]['open']: return {'msg': 'email_already_open'} usr = self.user emailConf = config.getConfig('email') emailInfo = emailConf[self.email[id]['emailid']] if emailInfo: awd = {} awd = drop.open(usr, emailInfo['dropid'], awd) awd = drop.makeData(awd, {}) self.email[id]['open'] = True self.save() data = awd data['email_update'] = self.email[id] return data
def garcha_skill(usr, nature): """ 求技能 """ gameConf = config.getConfig('game') if (nature > len(gameConf['garcha_skill_dropid'])) or (nature < 0): return {'msg':'parameter_bad'} goldCost = gameConf['garcha_skill_price'][nature - 1]['gold'] gemCost = gameConf['garcha_skill_price'][nature - 1]['gem'] if int(goldCost) == 0 and int(gemCost) == 0: return {'msg':'parameter_bad'} if usr.gold < goldCost: return {'msg':'gold_not_enough'} if usr.gem < gemCost: return {'msg':'gem_not_enough'} awd = {} awd = drop.open(usr, gameConf['garcha_skill_dropid'][nature - 1], awd) data = drop.makeData(awd, {}) usr.gold = usr.gold - goldCost usr.gem = usr.gem - gemCost data['gold'] = usr.gold data['gem'] = usr.gem return data
def battle_award(usr, battleRoleid, create_time): """ 战斗奖励 """ res = infection.BattleAward(usr, battleRoleid, create_time) if res.has_key('msg'): return res awd = {} if res.has_key('call_dropid'): awd = drop.open(usr, res['call_dropid'], awd) if res.has_key('last_hit_dropid'): awd = drop.open(usr, res['last_hit_dropid'], awd) if res.has_key('hit_dropid'): awd = drop.open(usr, res['hit_dropid'], awd) data = drop.makeData(awd, {}) return data
def end(request): """ 结束地下城 """ battleId = request.GET['battle_id'] fieldId = request.GET['field_id'] star = request.GET['star'] star = int(star) usr = request.user dun = usr.getDungeon() dunConf = config.getConfig('dungeon') if dun.curren_field['battleid'] != battleId or fieldId != dun.curren_field[ 'fieldid']: return {'msg': 'dungeon_finished'} for battleConf in dunConf: if battleConf['battleId'] == battleId: for fieldConf in battleConf['field']: if fieldConf['fieldId'] == fieldId: gameConf = config.getConfig('game') exp = fieldConf['exp'] if dun.daily_recored[battleId][fieldId]['vip_reset']: exp = int(exp * gameConf['dungeon_reset_benefit']) usr.gainExp(exp) data = {} if fieldConf['dropid']: awd = {} awd = drop.open(usr, fieldConf['dropid'], awd) data = dun.award() data = drop.makeData(awd, data) data['exp'] = usr.exp data['level'] = usr.level data['gold'] = usr.gold infectionBattle = infection.dungeon_encounter(usr) if infectionBattle: if not infectionBattle.has_key('msg'): data['infection_battle'] = infectionBattle #if dun.curren_field['battleid'] == dun.last_dungeon['battleid'] and dun.curren_field['fieldid'] == dun.last_dungeon['fieldid']: # dun.nextField() dun.curren_field = {'battleid': '', 'fieldid': ''} dun.normalRecordEnd(battleId, fieldId, star) #data['last_dungeon'] = dun.last_dungeon qt = usr.getQuest() qt.updateDungeonCountQuest() qt.updateFinishDungeonQuest(battleId, fieldId) dun.save() return data return {'msg': 'field_not_exist'}
def end(request): """ 结束地下城 """ battleId = request.GET['battle_id'] fieldId = request.GET['field_id'] star = request.GET['star'] star = int(star) usr = request.user dun = usr.getDungeon() dunConf = config.getConfig('dungeon') if dun.curren_field['battleid'] != battleId or fieldId != dun.curren_field['fieldid']: return {'msg':'dungeon_finished'} for battleConf in dunConf: if battleConf['battleId'] == battleId: for fieldConf in battleConf['field']: if fieldConf['fieldId'] == fieldId: gameConf = config.getConfig('game') exp = fieldConf['exp'] if dun.daily_recored[battleId][fieldId]['vip_reset']: exp = int(exp * gameConf['dungeon_reset_benefit']) usr.gainExp(exp) data = {} if fieldConf['dropid']: awd = {} awd = drop.open(usr, fieldConf['dropid'], awd) data = dun.award() data = drop.makeData(awd, data) data['exp'] = usr.exp data['level'] = usr.level data['gold'] = usr.gold infectionBattle = infection.dungeon_encounter(usr) if infectionBattle: if not infectionBattle.has_key('msg'): data['infection_battle'] = infectionBattle #if dun.curren_field['battleid'] == dun.last_dungeon['battleid'] and dun.curren_field['fieldid'] == dun.last_dungeon['fieldid']: # dun.nextField() dun.curren_field = {'battleid':'', 'fieldid':''} dun.normalRecordEnd(battleId, fieldId, star) #data['last_dungeon'] = dun.last_dungeon qt = usr.getQuest() qt.updateDungeonCountQuest() qt.updateFinishDungeonQuest(battleId, fieldId) dun.save() return data return {'msg':'field_not_exist'}
def prestige_award(usr): """ 声望奖励 """ res = infection.PrestigeAward(usr) if res.has_key('msg'): return res awd = {} for dropid in res['award']: awd = drop.open(usr, dropid, awd) data = drop.makeData(awd, {}) return data
def do_signin(usr): """ 是否签名 """ now = currentTime() if signin.have_signin(usr, now): return {'msg': 'signin_already_have'} signinConf = config.getConfig('signin') signin_index = (usr.signin['login_count'] - 1) % len(signinConf) signinAward = signinConf[signin_index] awd = {} awd = drop.open(usr, signinAward['dropid'], awd) awd = drop.makeData(awd, {}) usr.signin['last_signin_time'] = now usr.save() return awd
def do_signin(usr): """ 是否签名 """ now = currentTime() if signin.have_signin(usr, now): return {'msg':'signin_already_have'} signinConf = config.getConfig('signin') signin_index = (usr.signin['login_count'] - 1) % len(signinConf) signinAward = signinConf[signin_index] awd = {} awd = drop.open(usr, signinAward['dropid'], awd) awd = drop.makeData(awd, {}) usr.signin['last_signin_time'] = now usr.save() return awd
def enterInviteCode(usr, invite_code): """ 输入邀请码 """ gameConf = config.getConfig('game') accountid = inviteU.reverseCode(invite_code) now = currentTime() if now - usr.invite['open_time'] > gameConf['invite_open_duration']: return {'msg':'invite_not_available'} invAccount = usr.getAccountCls().get(accountid) if not invAccount: return {'msg':'invite_code_bad'} if usr.accountid == accountid: return {'msg': 'invite_can_not_self'} invUsr = invAccount.getUser() if len(invUsr.invite['invite']) >= gameConf['invite_max_count']: return {'msg': 'invitee_max_count'} if str(usr.roleid) in invUsr.invite['invite']: return {'msg':'invite_code_already_use'} invUsr.invite['invite'].append(str(usr.roleid)) if str(invUsr.roleid) in usr.invite['invitee']: return {'msg':'invite_code_already_use'} usr.invite['invitee'].append(str(invUsr.roleid)) inviteConf = config.getConfig('invite') dropid = inviteConf['invitee_award'] awd = {} data = {} if dropid: awd = drop.open(usr, dropid, awd) data = drop.makeData(awd, {}) invUsr.save() usr.save() return data
def enterInviteCode(usr, invite_code): """ 输入邀请码 """ gameConf = config.getConfig('game') accountid = inviteU.reverseCode(invite_code) now = currentTime() if now - usr.invite['open_time'] > gameConf['invite_open_duration']: return {'msg': 'invite_not_available'} invAccount = usr.getAccountCls().get(accountid) if not invAccount: return {'msg': 'invite_code_bad'} if usr.accountid == accountid: return {'msg': 'invite_can_not_self'} invUsr = invAccount.getUser() if len(invUsr.invite['invite']) >= gameConf['invite_max_count']: return {'msg': 'invitee_max_count'} if str(usr.roleid) in invUsr.invite['invite']: return {'msg': 'invite_code_already_use'} invUsr.invite['invite'].append(str(usr.roleid)) if str(invUsr.roleid) in usr.invite['invitee']: return {'msg': 'invite_code_already_use'} usr.invite['invitee'].append(str(invUsr.roleid)) inviteConf = config.getConfig('invite') dropid = inviteConf['invitee_award'] awd = {} data = {} if dropid: awd = drop.open(usr, dropid, awd) data = drop.makeData(awd, {}) invUsr.save() usr.save() return data
def rank_award(usr, rk): """ 排名奖励 """ if not usr.arena['rank_award'].has_key(rk): return {'msg': 'arena_rank_award_not_exist'} if not usr.arena['rank_award'][rk]: return {'msg': 'arena_rank_award_already_have'} gameConf = config.getConfig('game') for item in gameConf['arena_rank_award']: if item['rank'] == int(rk): #res = arena.award_score(usr.roleid, item['point']) data = {} awd = drop.open(usr, item['drop'], {}) data = drop.makeData(awd, {}) usr.arena['rank_award'][rk] = False usr.save() return data return {'msg': 'arena_rank_award_not_exist'}
def rank_award(usr, rk): """ 排名奖励 """ if not usr.arena['rank_award'].has_key(rk): return {'msg':'arena_rank_award_not_exist'} if not usr.arena['rank_award'][rk]: return {'msg':'arena_rank_award_already_have'} gameConf = config.getConfig('game') for item in gameConf['arena_rank_award']: if item['rank'] == int(rk): #res = arena.award_score(usr.roleid, item['point']) data = {} awd = drop.open(usr, item['drop'], {}) data = drop.makeData(awd, {}) usr.arena['rank_award'][rk] = False usr.save() return data return {'msg':'arena_rank_award_not_exist'}
def award(usr, level): """ 升级奖励 """ if usr.level < level: return {'msg':'level_required'} if level in usr.levelup['record']: return {'msg':'levelup_award_already_have'} levelupConf = config.getConfig('levelup') levelKey = str(level) if not levelupConf.has_key(levelKey): return {'msg':'levelup_award_not_exist'} dropid = levelupConf[levelKey] awd = {} awd = drop.open(usr, dropid, awd) usr.levelup['record'].append(level) data = drop.makeData(awd, {}) usr.save() return data
def award(usr, level): """ 升级奖励 """ if usr.level < level: return {'msg': 'level_required'} if level in usr.levelup['record']: return {'msg': 'levelup_award_already_have'} levelupConf = config.getConfig('levelup') levelKey = str(level) if not levelupConf.has_key(levelKey): return {'msg': 'levelup_award_not_exist'} dropid = levelupConf[levelKey] awd = {} awd = drop.open(usr, dropid, awd) usr.levelup['record'].append(level) data = drop.makeData(awd, {}) usr.save() return data
def draw_award(usr, position): """ 开服奖励 """ openAwardConf = config.getConfig('open_award') drawidx = [] for t in usr.signin['draw_award_time']: if is_same_day(t, currentTime()): return {'msg': 'open_award_already_get'} for idx, ad in enumerate(openAwardConf['draw_award']): if len(usr.signin['draw_award_time'] ) > idx and not usr.signin['draw_award_time'][idx]: continue if ad['day'] > len(usr.signin['draw_award_time']): continue drawidx.append(idx) if not drawidx: return {'msg': 'open_award_already_get'} adidx = random.sample(drawidx, 1)[0] ad = openAwardConf['draw_award'][adidx] awd = {} awd = drop.open(usr, ad['dropid'], awd) while len(usr.signin['draw_award_time']) <= adidx: usr.signin['draw_award_time'].append({}) usr.signin['draw_award_time'][adidx] = { 'time': currentTime(), 'position': position } usr.save() data = drop.makeData(awd, {}) return data
def sweep(self, battleid, fieldid, cnt): """ 扫荡 """ if not self.normal_recored.has_key(battleid): return {'msg': 'dungeon_not_finished'} if not self.normal_recored[battleid].has_key(fieldid): return {'msg': 'dungeon_not_finished'} usr = self.user gameConf = config.getConfig('game') if (not vip.canDungeonSweep(usr)) and ( gameConf['dungeon_vip0_sweep_star'] > self.normal_recored[battleid][fieldid]): return {'msg': 'dungeon_sweep_not_allowed'} self.curren_field = {'battleid': '', 'fieldid': ''} dunConf = config.getConfig('dungeon') resultData = {} resultData['sweep'] = [] for battleConf in dunConf: if battleConf['battleId'] == battleid: for fieldConf in battleConf['field']: if fieldConf['fieldId'] == fieldid: staminaCost = fieldConf['stamina'] if usr.stamina < staminaCost: return {'msg': 'stamina_not_enough'} if fieldConf['dayCount'] == self.daily_recored[ battleid][fieldid]['count']: return {'msg': 'dungeon_max_count'} if fieldConf['dayCount'] < ( self.daily_recored[battleid][fieldid]['count'] + cnt): cnt = fieldConf['dayCount'] - self.daily_recored[ battleid][fieldid]['count'] qt = usr.getQuest() for i in range(cnt): waves = self.arrangeWaves(fieldConf) staminaCost = fieldConf['stamina'] if usr.stamina < staminaCost: break usr.stamina = usr.stamina - staminaCost self.daily_recored[battleid][fieldid][ 'count'] = self.daily_recored[battleid][ fieldid]['count'] + 1 waves = self.arrangeWaves(fieldConf) exp = fieldConf['exp'] if self.daily_recored[battleid][fieldid][ 'vip_reset']: exp = int(exp * gameConf['dungeon_reset_benefit']) usr.gainExp(exp) data = {} if fieldConf['dropid']: awd = {} awd = drop.open(usr, fieldConf['dropid'], awd) data = self.award() data = drop.makeData(awd, data) data['add_exp'] = exp resultData['sweep'].append(data) #if dun.curren_field['battleid'] == dun.last_dungeon['battleid'] and dun.curren_field['fieldid'] == dun.last_dungeon['fieldid']: # dun.nextField() #data['last_dungeon'] = dun.last_dungeon qt.updateDungeonCountQuest() qt.updateFinishDungeonQuest(battleid, fieldid) self.save() usr.save() resultData['stamina'] = usr.stamina resultData['exp'] = usr.exp resultData['level'] = usr.level resultData['gold'] = usr.gold return resultData
def sweep(self, battleid, fieldid, cnt): """ 扫荡 """ if not self.normal_recored.has_key(battleid): return {'msg' : 'dungeon_not_finished'} if not self.normal_recored[battleid].has_key(fieldid): return {'msg' : 'dungeon_not_finished'} usr = self.user gameConf = config.getConfig('game') if (not vip.canDungeonSweep(usr)) and (gameConf['dungeon_vip0_sweep_star'] > self.normal_recored[battleid][fieldid]): return {'msg':'dungeon_sweep_not_allowed'} self.curren_field = {'battleid':'', 'fieldid':''} dunConf = config.getConfig('dungeon') resultData = {} resultData['sweep'] = [] for battleConf in dunConf: if battleConf['battleId'] == battleid: for fieldConf in battleConf['field']: if fieldConf['fieldId'] == fieldid: staminaCost = fieldConf['stamina'] if usr.stamina < staminaCost: return {'msg':'stamina_not_enough'} if fieldConf['dayCount'] == self.daily_recored[battleid][fieldid]['count']: return {'msg':'dungeon_max_count'} if fieldConf['dayCount'] < (self.daily_recored[battleid][fieldid]['count'] + cnt): cnt = fieldConf['dayCount'] - self.daily_recored[battleid][fieldid]['count'] qt = usr.getQuest() for i in range(cnt): waves = self.arrangeWaves(fieldConf) staminaCost = fieldConf['stamina'] if usr.stamina < staminaCost: break usr.stamina = usr.stamina - staminaCost self.daily_recored[battleid][fieldid]['count'] = self.daily_recored[battleid][fieldid]['count'] + 1 waves = self.arrangeWaves(fieldConf) exp = fieldConf['exp'] if self.daily_recored[battleid][fieldid]['vip_reset']: exp = int(exp * gameConf['dungeon_reset_benefit']) usr.gainExp(exp) data = {} if fieldConf['dropid']: awd = {} awd = drop.open(usr, fieldConf['dropid'], awd) data = self.award() data = drop.makeData(awd, data) data['add_exp'] = exp resultData['sweep'].append(data) #if dun.curren_field['battleid'] == dun.last_dungeon['battleid'] and dun.curren_field['fieldid'] == dun.last_dungeon['fieldid']: # dun.nextField() #data['last_dungeon'] = dun.last_dungeon qt.updateDungeonCountQuest() qt.updateFinishDungeonQuest(battleid, fieldid) self.save() usr.save() resultData['stamina'] = usr.stamina resultData['exp'] = usr.exp resultData['level'] = usr.level resultData['gold'] = usr.gold return resultData
def garcha_once(usr, garchaAmount): """ 一次求将 """ inv = usr.getInventory() garchaConf = config.getConfig('garcha') gameConf = config.getConfig('game') now = currentTime() garcha.update_garcha(usr, now) garchaInfo = None if garchaAmount == 10: garchaInfo = usr.garcha['garcha10'] elif garchaAmount == 100: garchaInfo = usr.garcha['garcha100'] elif garchaAmount == 10000: garchaInfo = usr.garcha['garcha10000'] isFirstTime = (garchaInfo['last_time'] == 0) isFree = False duration = now - garchaInfo['last_time'] cooldownConf = 0 cooldown = 0 isCooldown = False if garchaAmount == 10: cooldownConf = gameConf['garcha_10_cooldown'] if garchaAmount == 100: cooldownConf = gameConf['garcha_100_cooldown'] if garchaAmount == 10000: cooldownConf = gameConf['garcha_10000_cooldown'] cooldown = cooldownConf - duration if cooldown > 0: isCooldown = True else: isCooldown = False cooldown = 0 if garchaAmount == 10: isFree = ((gameConf['garcha_10_times'] - garchaInfo['count']) > 0) and not isCooldown elif garchaAmount == 100: isFree = ((gameConf['garcha_100_times'] - garchaInfo['count']) > 0) and not isCooldown elif garchaAmount == 10000: isFree = ((gameConf['garcha_10000_times'] - garchaInfo['count']) > 0) and not isCooldown garchaCostGold = 0 garchaCostGem = 0 garchaType = '' garchaDropid1 = '' garchaDropid2 = '' garchaDropid3 = '' time_score = 0 luck_score = 0 petConf = config.getConfig('pet') if not isFree: if garchaAmount == 10: garchaCostGold = gameConf['garcha_10_price']['gold'] garchaCostGem = gameConf['garcha_10_price']['gem'] garchaType = 'garcha_10' garchaDropid1 = gameConf['garcha_10_dropid1'] elif garchaAmount == 100: garchaCostGold = gameConf['garcha_100_price']['gold'] garchaCostGem = gameConf['garcha_100_price']['gem'] garchaType = 'garcha_100' garchaDropid2 = gameConf['garcha_100_dropid2'] garchaDropid1 = gameConf['garcha_100_dropid1'] garchaDropid3 = gameConf['garcha_100_dropid3'] time_score = garchaConf[vip.level(usr)]['garcha_100_free_time_score'] luck_score = garchaConf[vip.level(usr)]['garcha_100_free_luck_score'] if not garchaInfo.has_key('time_score'): garchaInfo['time_score'] = 0 if not garchaInfo.has_key('luck_score'): garchaInfo['luck_score'] = 0 elif garchaAmount == 10000: garchaCostGold = gameConf['garcha_10000_price']['gold'] garchaCostGem = gameConf['garcha_10000_price']['gem'] garchaDropid1 = gameConf['garcha_10000_dropid1'] garchaDropid2 = gameConf['garcha_10000_dropid2'] garchaDropid3 = gameConf['garcha_10000_dropid3'] time_score = garchaConf[vip.level(usr)]['garcha_10000_free_time_score'] luck_score = garchaConf[vip.level(usr)]['garcha_10000_free_luck_score'] if not garchaInfo.has_key('time_score'): garchaInfo['time_score'] = 0 if not garchaInfo.has_key('luck_score'): garchaInfo['luck_score'] = 0 garchaType = 'garcha_10000' if inv.CountCardByQuality(5, petConf) > 0: time_score = int(time_score / 2) else: if garchaAmount == 10: garchaType = 'garcha_10_free' garchaDropid1 = gameConf['garcha_10_dropid1'] elif garchaAmount == 100: garchaType = 'garcha_100_free' garchaDropid2 = gameConf['garcha_100_dropid2'] garchaDropid1 = gameConf['garcha_100_dropid1'] garchaDropid3 = gameConf['garcha_100_dropid3'] time_score = garchaConf[vip.level(usr)]['garcha_100_time_score'] luck_score = garchaConf[vip.level(usr)]['garcha_100_luck_score'] if not garchaInfo.has_key('time_score'): garchaInfo['time_score'] = 0 if not garchaInfo.has_key('luck_score'): garchaInfo['luck_score'] = 0 elif garchaAmount == 10000: garchaType = 'garcha_10000_free' garchaDropid1 = gameConf['garcha_10000_dropid1'] garchaDropid2 = gameConf['garcha_10000_dropid2'] garchaDropid3 = gameConf['garcha_10000_dropid3'] time_score = garchaConf[vip.level(usr)]['garcha_10000_time_score'] luck_score = garchaConf[vip.level(usr)]['garcha_10000_luck_score'] if not garchaInfo.has_key('time_score'): garchaInfo['time_score'] = 0 if not garchaInfo.has_key('luck_score'): garchaInfo['luck_score'] = 0 fatigue = inv.CountCardByQuality(5, petConf) if fatigue > 5: fatigue = 5 time_score = int(time_score / (1 + fatigue)) if usr.gold < garchaCostGold: return {'msg':'gold_not_enough'} if usr.gem < garchaCostGem: return {'msg':'gem_not_enough'} awd = {} if garchaAmount == 10: awd = drop.open(usr, garchaDropid1, awd) else: awd = {} if garchaInfo['time_score'] >= 800: rd = randint() if (rd <= 300) or (garchaInfo['time_score'] >= 1200): if garchaInfo['luck_score'] < 96: awd = drop.open(usr, garchaDropid2, awd) else: rd = randint() if rd < 5000: awd = drop.open(usr, garchaDropid3, awd) else: awd = drop.open(usr, garchaDropid2, awd) garchaInfo['time_score'] = 0 garchaInfo['luck_score'] = 0 time_score = 0 luck_score = 0 else: awd = drop.open(usr, garchaDropid1, awd) else: awd = drop.open(usr, garchaDropid1, awd) data = drop.makeData(awd, {}) usr.gold = usr.gold - garchaCostGold usr.gem = usr.gem - garchaCostGem if isFree: garchaInfo['last_time'] = now garchaInfo['count'] = garchaInfo['count'] + 1 if time_score or luck_score: garchaInfo['time_score'] = garchaInfo['time_score'] + time_score garchaInfo['luck_score'] = garchaInfo['luck_score'] + luck_score duration = now - garchaInfo['last_time'] cooldown = cooldownConf - duration data['gold'] = usr.gold data['gem'] = usr.gem data['garcha'] = {} data['garcha']['count'] = garchaInfo['count'] data['garcha']['cooldown'] = cooldown usr.save() inv.save() return data
def use(usr, id, cnt): inv = usr.getInventory() it = inv.getItem(id) if not it: return {'msg' : 'item_not_exist'} if it['count'] < cnt: return {'msg': 'time_not_enough'} itemid = it['itemid'] itemConfig = config.getConfig('item') itemInfo = itemConfig[itemid] data = {} data['delete_item_array'] = [] data['update_item_array'] = [] itemCount = cnt save_usr = False save_inv = False for (funkey, v) in itemInfo['fun'].items(): if funkey == 'treasure': key = None while itemCount > 0: keyitemid = v[1] dropid = v[0] if keyitemid != '': key = item.get_by_itemid(inv, keyitemid) if not key: if itemCount == cnt: return {'msg':'key_not_exist'} else: break updateIt = inv.delItem(key['id']) if updateIt == None: data['delete_item_array'].append(key['id']) else: data['update_item_array'].append(updateIt) key = None inv.save() awd = {} awd = drop.open(usr, dropid, awd) data = drop.makeData(awd, data) itemCount = itemCount - 1 if key: data['update_item_array'].append(key) elif funkey == 'protect': if not vip.canBuyArenaProtectTimes(usr): return {'msg':'vip_required'} addProtectTime = v[0] newProtectTime = medal.add_protect_time(usr, addProtectTime) data['protect_time'] = newProtectTime usr.vip['buy_arena_protect_times'] = usr.vip['buy_arena_protect_times'] + 1 save_usr = True elif funkey == 'stamina': if not vip.canBuyStamina(usr): return {'msg':'vip_required'} stamina = int(v[0]) usr.chargeStamina(stamina * itemCount) itemCount = 0 data['st'] = usr.stamina usr.vip['buy_stamina_count'] = usr.vip['buy_stamina_count'] + 1 save_usr = True elif funkey == 'sp': if not vip.canBuyStamina(usr): return {'msg':'vip_required'} sp = int(v[0]) usr.sp = usr.sp + sp * itemCount itemCount = 0 data['sp'] = usr.sp usr.vip['buy_sp_count'] = usr.vip['buy_sp_count'] + 1 save_usr = True elif funkey == 'arena_count': if not vip.canBuyArenaTimes(usr): return {'msg' : 'vip_required'} times = int(v[0]) usr.arena['times'] = usr.arena['times'] - times * itemCount itemCount = 0 data['arena_times'] = usr.arena['times'] usr.vip['buy_arena_times'] = usr.vip['buy_arena_times'] + 1 save_usr = True elif funkey == 'protect': pass elif funkey == 'key': treasure = None while itemCount > 0: treasureid = v[0] treasure = item.get_by_itemid(treasureid) if not treasure: if itemCount == cnt: return {'msg':'treasure_not_exist'} else: break treasureInfo = itemConfig[treasure['itemid']] if not treasureInfo['fun'].has_key('treasure'): if itemCount == cnt: return {'msg':'treasure_is_not'} else: break dropid = treasureInfo['fun']['treasure'][0] awd = {} awd = drop.open(usr, dropid, awd).s() data = drop.makeData(awd, data) if inv.delItem(treasure['id']) == None: data['delete_item_array'].append(treasure['id']) treasure = None inv.save() if treasure: data['update_item_array'].append(treasure) elif funkey == 'medium': pass if inv.delItem(it['id'], cnt - itemCount) == None: data['delete_item_array'].append(it['id']) else: data['update_item_array'].append(it) save_inv = True if not data['delete_item_array']: del data['delete_item_array'] if not data['update_item_array']: del data['update_item_array'] if save_inv: inv.save() if save_usr: usr.save() return data
def use(usr, id, cnt): inv = usr.getInventory() it = inv.getItem(id) if not it: return {'msg': 'item_not_exist'} if it['count'] < cnt: return {'msg': 'time_not_enough'} itemid = it['itemid'] itemConfig = config.getConfig('item') itemInfo = itemConfig[itemid] data = {} data['delete_item_array'] = [] data['update_item_array'] = [] itemCount = cnt save_usr = False save_inv = False for (funkey, v) in itemInfo['fun'].items(): if funkey == 'treasure': key = None while itemCount > 0: keyitemid = v[1] dropid = v[0] if keyitemid != '': key = item.get_by_itemid(inv, keyitemid) if not key: if itemCount == cnt: return {'msg': 'key_not_exist'} else: break updateIt = inv.delItem(key['id']) if updateIt == None: data['delete_item_array'].append(key['id']) else: data['update_item_array'].append(updateIt) key = None inv.save() awd = {} awd = drop.open(usr, dropid, awd) data = drop.makeData(awd, data) itemCount = itemCount - 1 if key: data['update_item_array'].append(key) elif funkey == 'protect': if not vip.canBuyArenaProtectTimes(usr): return {'msg': 'vip_required'} addProtectTime = v[0] newProtectTime = medal.add_protect_time(usr, addProtectTime) data['protect_time'] = newProtectTime usr.vip['buy_arena_protect_times'] = usr.vip[ 'buy_arena_protect_times'] + 1 save_usr = True elif funkey == 'stamina': if not vip.canBuyStamina(usr): return {'msg': 'vip_required'} stamina = int(v[0]) usr.chargeStamina(stamina * itemCount) itemCount = 0 data['st'] = usr.stamina usr.vip['buy_stamina_count'] = usr.vip['buy_stamina_count'] + 1 save_usr = True elif funkey == 'sp': if not vip.canBuyStamina(usr): return {'msg': 'vip_required'} sp = int(v[0]) usr.sp = usr.sp + sp * itemCount itemCount = 0 data['sp'] = usr.sp usr.vip['buy_sp_count'] = usr.vip['buy_sp_count'] + 1 save_usr = True elif funkey == 'arena_count': if not vip.canBuyArenaTimes(usr): return {'msg': 'vip_required'} times = int(v[0]) usr.arena['times'] = usr.arena['times'] - times * itemCount itemCount = 0 data['arena_times'] = usr.arena['times'] usr.vip['buy_arena_times'] = usr.vip['buy_arena_times'] + 1 save_usr = True elif funkey == 'protect': pass elif funkey == 'key': treasure = None while itemCount > 0: treasureid = v[0] treasure = item.get_by_itemid(treasureid) if not treasure: if itemCount == cnt: return {'msg': 'treasure_not_exist'} else: break treasureInfo = itemConfig[treasure['itemid']] if not treasureInfo['fun'].has_key('treasure'): if itemCount == cnt: return {'msg': 'treasure_is_not'} else: break dropid = treasureInfo['fun']['treasure'][0] awd = {} awd = drop.open(usr, dropid, awd).s() data = drop.makeData(awd, data) if inv.delItem(treasure['id']) == None: data['delete_item_array'].append(treasure['id']) treasure = None inv.save() if treasure: data['update_item_array'].append(treasure) elif funkey == 'medium': pass if inv.delItem(it['id'], cnt - itemCount) == None: data['delete_item_array'].append(it['id']) else: data['update_item_array'].append(it) save_inv = True if not data['delete_item_array']: del data['delete_item_array'] if not data['update_item_array']: del data['update_item_array'] if save_inv: inv.save() if save_usr: usr.save() return data
def garcha_once(usr, garchaAmount): """ 一次求将 """ inv = usr.getInventory() garchaConf = config.getConfig('garcha') gameConf = config.getConfig('game') now = currentTime() garcha.update_garcha(usr, now) garchaInfo = None if garchaAmount == 10: garchaInfo = usr.garcha['garcha10'] elif garchaAmount == 100: garchaInfo = usr.garcha['garcha100'] elif garchaAmount == 10000: garchaInfo = usr.garcha['garcha10000'] isFirstTime = (garchaInfo['last_time'] == 0) isFree = False duration = now - garchaInfo['last_time'] cooldownConf = 0 cooldown = 0 isCooldown = False if garchaAmount == 10: cooldownConf = gameConf['garcha_10_cooldown'] if garchaAmount == 100: cooldownConf = gameConf['garcha_100_cooldown'] if garchaAmount == 10000: cooldownConf = gameConf['garcha_10000_cooldown'] cooldown = cooldownConf - duration if cooldown > 0: isCooldown = True else: isCooldown = False cooldown = 0 if garchaAmount == 10: isFree = ((gameConf['garcha_10_times'] - garchaInfo['count']) > 0) and not isCooldown elif garchaAmount == 100: isFree = ((gameConf['garcha_100_times'] - garchaInfo['count']) > 0) and not isCooldown elif garchaAmount == 10000: isFree = ((gameConf['garcha_10000_times'] - garchaInfo['count']) > 0) and not isCooldown garchaCostGold = 0 garchaCostGem = 0 garchaType = '' garchaDropid1 = '' garchaDropid2 = '' garchaDropid3 = '' time_score = 0 luck_score = 0 petConf = config.getConfig('pet') if not isFree: if garchaAmount == 10: garchaCostGold = gameConf['garcha_10_price']['gold'] garchaCostGem = gameConf['garcha_10_price']['gem'] garchaType = 'garcha_10' garchaDropid1 = gameConf['garcha_10_dropid1'] elif garchaAmount == 100: garchaCostGold = gameConf['garcha_100_price']['gold'] garchaCostGem = gameConf['garcha_100_price']['gem'] garchaType = 'garcha_100' garchaDropid2 = gameConf['garcha_100_dropid2'] garchaDropid1 = gameConf['garcha_100_dropid1'] garchaDropid3 = gameConf['garcha_100_dropid3'] time_score = garchaConf[vip.level( usr)]['garcha_100_free_time_score'] luck_score = garchaConf[vip.level( usr)]['garcha_100_free_luck_score'] if not garchaInfo.has_key('time_score'): garchaInfo['time_score'] = 0 if not garchaInfo.has_key('luck_score'): garchaInfo['luck_score'] = 0 elif garchaAmount == 10000: garchaCostGold = gameConf['garcha_10000_price']['gold'] garchaCostGem = gameConf['garcha_10000_price']['gem'] garchaDropid1 = gameConf['garcha_10000_dropid1'] garchaDropid2 = gameConf['garcha_10000_dropid2'] garchaDropid3 = gameConf['garcha_10000_dropid3'] time_score = garchaConf[vip.level( usr)]['garcha_10000_free_time_score'] luck_score = garchaConf[vip.level( usr)]['garcha_10000_free_luck_score'] if not garchaInfo.has_key('time_score'): garchaInfo['time_score'] = 0 if not garchaInfo.has_key('luck_score'): garchaInfo['luck_score'] = 0 garchaType = 'garcha_10000' if inv.CountCardByQuality(5, petConf) > 0: time_score = int(time_score / 2) else: if garchaAmount == 10: garchaType = 'garcha_10_free' garchaDropid1 = gameConf['garcha_10_dropid1'] elif garchaAmount == 100: garchaType = 'garcha_100_free' garchaDropid2 = gameConf['garcha_100_dropid2'] garchaDropid1 = gameConf['garcha_100_dropid1'] garchaDropid3 = gameConf['garcha_100_dropid3'] time_score = garchaConf[vip.level( usr)]['garcha_100_time_score'] luck_score = garchaConf[vip.level( usr)]['garcha_100_luck_score'] if not garchaInfo.has_key('time_score'): garchaInfo['time_score'] = 0 if not garchaInfo.has_key('luck_score'): garchaInfo['luck_score'] = 0 elif garchaAmount == 10000: garchaType = 'garcha_10000_free' garchaDropid1 = gameConf['garcha_10000_dropid1'] garchaDropid2 = gameConf['garcha_10000_dropid2'] garchaDropid3 = gameConf['garcha_10000_dropid3'] time_score = garchaConf[vip.level( usr)]['garcha_10000_time_score'] luck_score = garchaConf[vip.level( usr)]['garcha_10000_luck_score'] if not garchaInfo.has_key('time_score'): garchaInfo['time_score'] = 0 if not garchaInfo.has_key('luck_score'): garchaInfo['luck_score'] = 0 fatigue = inv.CountCardByQuality(5, petConf) if fatigue > 5: fatigue = 5 time_score = int(time_score / (1 + fatigue)) if usr.gold < garchaCostGold: return {'msg': 'gold_not_enough'} if usr.gem < garchaCostGem: return {'msg': 'gem_not_enough'} awd = {} if garchaAmount == 10: awd = drop.open(usr, garchaDropid1, awd) else: awd = {} if garchaInfo['time_score'] >= 800: rd = randint() if (rd <= 300) or (garchaInfo['time_score'] >= 1200): if garchaInfo['luck_score'] < 96: awd = drop.open(usr, garchaDropid2, awd) else: rd = randint() if rd < 5000: awd = drop.open(usr, garchaDropid3, awd) else: awd = drop.open(usr, garchaDropid2, awd) garchaInfo['time_score'] = 0 garchaInfo['luck_score'] = 0 time_score = 0 luck_score = 0 else: awd = drop.open(usr, garchaDropid1, awd) else: awd = drop.open(usr, garchaDropid1, awd) data = drop.makeData(awd, {}) usr.gold = usr.gold - garchaCostGold usr.gem = usr.gem - garchaCostGem if isFree: garchaInfo['last_time'] = now garchaInfo['count'] = garchaInfo['count'] + 1 if time_score or luck_score: garchaInfo['time_score'] = garchaInfo['time_score'] + time_score garchaInfo['luck_score'] = garchaInfo['luck_score'] + luck_score duration = now - garchaInfo['last_time'] cooldown = cooldownConf - duration data['gold'] = usr.gold data['gem'] = usr.gem data['garcha'] = {} data['garcha']['count'] = garchaInfo['count'] data['garcha']['cooldown'] = cooldown usr.save() inv.save() return data
def beat(usr, difficulty, star, dp, ehc): """ 战胜 """ if not usr.tower['current']: return {'msg':'tower_not_start'} if usr.tower['current'].has_key('enhance') and (ehc == -1): return {'msg':'tower_enhance_required'} gameConf = config.getConfig('game') towerAwardConf = config.getConfig('tower_award') towerMonster = config.getConfig('tower_monster') usr.tower['current']['point'] = usr.tower['current']['point'] + star * difficulty usr.tower['current']['energy'] = usr.tower['current']['energy'] + star * difficulty usr.tower['current']['score'] = usr.tower['current']['score'] + star * difficulty usr.tower['current']['floor'] = usr.tower['current']['floor'] + 1 if usr.tower['max_point'] < usr.tower['current']['point']: usr.tower['max_point'] = usr.tower['current']['point'] while len(usr.tower['floor_score']) < usr.tower['current']['floor']: usr.tower['floor_score'].append(0) while len(usr.tower['floor_point']) < usr.tower['current']['floor']: usr.tower['floor_point'].append(0) newPoint = False if usr.tower['floor_point'][usr.tower['current']['floor'] - 1] < usr.tower['current']['point']: newPoint = True newScore = False if usr.tower['floor_score'][usr.tower['current']['floor'] - 1] < usr.tower['current']['score']: newScore = True print usr.tower['floor_score'][usr.tower['current']['floor'] - 1], usr.tower['current']['score'] data = {} if ehc != -1: if not usr.tower['current'].has_key('enhance'): return {'msg':'tower_enhance_not_exsit'} tower.do_enhance(usr, ehc, gameConf) enhance = [] if usr.tower['current']['floor'] % gameConf['tower_enhance_interval_floor'] == 0: enhance = tower.make_enhance_list() usr.tower['current']['enhance'] = enhance if usr.tower['current']['floor'] % gameConf['tower_award_interval_floor'] == 0: towerAwardInfo = towerAwardConf[str(usr.tower['current']['floor'])] if newPoint: awd = {} awd = drop.open(usr, towerAwardInfo[1], awd) data = drop.makeData(awd, data,'top_drop') usr.tower['floor_point'][usr.tower['current']['floor'] - 1] = usr.tower['current']['point'] if newScore: if usr.tower['current']['score'] > 45: awd = {} awd = drop.open(usr, towerAwardInfo[3], awd) data = drop.makeData(awd, data, 'record_drop') if usr.tower['current']['score'] > 30: awd = {} awd = drop.open(usr, towerAwardInfo[2], awd) data = drop.makeData(awd, data, 'record_drop') usr.tower['floor_score'][usr.tower['current']['floor'] - 1] = usr.tower['current']['score'] usr.tower['current']['score'] = 0 if usr.tower['max_floor'] < usr.tower['current']['floor']: usr.tower['max_floor'] = usr.tower['current']['floor'] if dp: awd = {} awd = drop.open(usr, towerMonster[usr.tower['current']['floor']]['dropid'], awd) data = drop.makeData(awd, data, 'random_drop') usr.save() if enhance: data['tower_enhance'] = enhance data['tower_point'] = usr.tower['current']['point'] data['tower_energy'] = usr.tower['current']['energy'] data['tower_strength'] = usr.tower['current']['strength'] data['tower_intelligence'] = usr.tower['current']['intelligence'] data['tower_artifice'] = usr.tower['current']['artifice'] data['tower_floor'] = usr.tower['current']['floor'] data['tower_max_floor'] = usr.tower['max_floor'] data['tower_max_point'] = usr.tower['max_point'] return data
def tool_create_player(request): if request.method == 'POST': player_name = request.POST['player_name'] levelf = int(request.POST['levelf']) levelt = int(request.POST['levelt']) protagonist_card = request.POST['protagonist_card'] other_card = request.POST['other_card'] card_count = int(request.POST['card_count']) card_levelf = int(request.POST['card_levelf']) card_levelt = int(request.POST['card_levelt']) attack_equipment = request.POST['attack_equipment'] hp_equipment = request.POST['hp_equipment'] defence_equipment = request.POST['defence_equipment'] pd_equipment = request.POST['pd_equipment'] md_equipment = request.POST['md_equipment'] equipment_strength_levelf = int( request.POST['equipment_strength_levelf']) equipment_strength_levelt = int( request.POST['equipment_strength_levelt']) fire_skill = request.POST['fire_skill'] water_skill = request.POST['water_skill'] poison_skill = request.POST['poison_skill'] super_skill = request.POST['super_skill'] straw_skill = request.POST['straw_skill'] general_skill = request.POST['general_skill'] skill_levelf = int(request.POST['skill_levelf']) skill_levelt = int(request.POST['skill_levelt']) stone_seed = request.POST['stone'] stone_levelf = int(request.POST['stone_levelf']) stone_levelt = int(request.POST['stone_levelt']) practicef = int(request.POST['practicef']) practicet = int(request.POST['practicet']) strengthenf = int(request.POST['strengthenf']) strengthent = int(request.POST['strengthent']) intelligencef = int(request.POST['intelligencef']) intelligencet = int(request.POST['intelligencet']) artificef = int(request.POST['artificef']) artificet = int(request.POST['artificet']) medal_levelf = int(request.POST['medal_levelf']) medal_levelt = int(request.POST['medal_levelt']) gameConf = config.getConfig('game') for i in range(card_count): usr = user() usr.init(None) usr.last_login = currentTime() usr.name = player_name usr.gender = 'male' usr.avatar = '1' usr.install(0) usr.saveRoleId() usr.onInit() usr.level = random.randint(levelf, levelt) inv = usr.getInventory() awd = drop.open(usr, protagonist_card, {}) for (i, l) in enumerate(gameConf['team_member_open_level']): if l <= usr.level: if awd['add_card_array']: awd['add_card_array'][0]['level'] = random.randint( card_levelf, card_levelt) inv.team[i] = awd['add_card_array'][0]['id'] break for (i, l) in enumerate(gameConf['team_member_open_level']): if l <= usr.level and not inv.team[i]: awd = drop.open(usr, other_card, {}) if awd['add_card_array']: awd['add_card_array'][0]['level'] = random.randint( card_levelf, card_levelt) inv.team[i] = awd['add_card_array'][0]['id'] break petConf = config.getConfig('pet') for (i, cid) in enumerate(inv.team): if cid: card = inv.getCard(cid) if card: awd = drop.open(usr, attack_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0][ 'strengthLevel'] = random.randint( equipment_strength_levelf, equipment_strength_levelt) equipment.equip( usr, i, -1, awd['add_equipment_array'][0]['id']) awd = drop.open(usr, hp_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0][ 'strengthLevel'] = random.randint( equipment_strength_levelf, equipment_strength_levelt) equipment.equip( usr, i, -1, awd['add_equipment_array'][0]['id']) awd = drop.open(usr, defence_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0][ 'strengthLevel'] = random.randint( equipment_strength_levelf, equipment_strength_levelt) equipment.equip( usr, i, -1, awd['add_equipment_array'][0]['id']) awd = drop.open(usr, pd_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0][ 'strengthLevel'] = random.randint( equipment_strength_levelf, equipment_strength_levelt) equipment.equip( usr, i, -1, awd['add_equipment_array'][0]['id']) awd = drop.open(usr, md_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0][ 'strengthLevel'] = random.randint( equipment_strength_levelf, equipment_strength_levelt) equipment.equip( usr, i, -1, awd['add_equipment_array'][0]['id']) petInfo = petConf[card['cardid']] skill_seed = None if petInfo['nature'] == '2': skill_seed = poison_skill elif petInfo['nature'] == '3': skill_seed = straw_skill elif petInfo['nature'] == '4': skill_seed = water_skill elif petInfo['nature'] == '5': skill_seed = fire_skill elif petInfo['nature'] == '6': skill_seed = super_skill elif petInfo['nature'] == '7': skill_seed = general_skill if skill_seed: for k in range(3): awd = drop.open(usr, skill_seed, {}) if awd.has_key('add_skill_array'): awd['add_skill_array'][0][ 'level'] = random.randint( skill_levelf, skill_levelt) skill.install( usr, i, -1, k, awd['add_skill_array'][0]['id']) for (k, l) in enumerate(gameConf['stone_slot_level']): if l <= usr.level: awd = drop.open(usr, stone_seed, {}) if awd.has_key('add_stone_array'): awd['add_stone_array'][0][ 'level'] = random.randint( stone_levelf, stone_levelt) stone.install( usr, i, -1, k, awd['add_stone_array'][0]['id']) card['strength'] = random.randint( strengthenf, strengthent) card['intelligence'] = random.randint( intelligencef, intelligencet) card['artifice'] = random.randint(artificef, artificet) medalConf = config.getConfig('medal') for medalid in medalConf: inv.medal[medalid] = { 'level': 0, 'chip': [0] * medalConf[medalid]['chip'], 'id': medalid, 'gravel': 0 } inv.medal[medalid]['level'] = random.randint( medal_levelf, medal_levelt) usr.practice['critical_level'] = random.randint( practicef, practicet) usr.practice['tenacity_level'] = random.randint( practicef, practicet) usr.practice['block_level'] = random.randint(practicef, practicet) usr.practice['wreck_level'] = random.randint(practicef, practicet) usr.save() res = arena.stand_ladder(usr) if isinstance(res, str): res = json.loads(res) if res.has_key('msg'): return HttpResponse('error:' + str(i) + ':' + str(usr.roleid) + res['msg']) ld = arena.show_all() return render(request, 'arena_tool.html', {'ladder': ld})
def tool_create_player(request): if request.method == 'POST': player_name = request.POST['player_name'] levelf = int(request.POST['levelf']) levelt = int(request.POST['levelt']) protagonist_card = request.POST['protagonist_card'] other_card = request.POST['other_card'] card_count = int(request.POST['card_count']) card_levelf = int(request.POST['card_levelf']) card_levelt = int(request.POST['card_levelt']) attack_equipment = request.POST['attack_equipment'] hp_equipment = request.POST['hp_equipment'] defence_equipment = request.POST['defence_equipment'] pd_equipment = request.POST['pd_equipment'] md_equipment = request.POST['md_equipment'] equipment_strength_levelf = int(request.POST['equipment_strength_levelf']) equipment_strength_levelt = int(request.POST['equipment_strength_levelt']) fire_skill = request.POST['fire_skill'] water_skill = request.POST['water_skill'] poison_skill = request.POST['poison_skill'] super_skill = request.POST['super_skill'] straw_skill = request.POST['straw_skill'] general_skill = request.POST['general_skill'] skill_levelf = int(request.POST['skill_levelf']) skill_levelt = int(request.POST['skill_levelt']) stone_seed = request.POST['stone'] stone_levelf = int(request.POST['stone_levelf']) stone_levelt = int(request.POST['stone_levelt']) practicef = int(request.POST['practicef']) practicet = int(request.POST['practicet']) strengthenf = int(request.POST['strengthenf']) strengthent = int(request.POST['strengthent']) intelligencef = int(request.POST['intelligencef']) intelligencet = int(request.POST['intelligencet']) artificef = int(request.POST['artificef']) artificet = int(request.POST['artificet']) medal_levelf = int(request.POST['medal_levelf']) medal_levelt = int(request.POST['medal_levelt']) gameConf = config.getConfig('game') for i in range(card_count): usr = user() usr.init(None) usr.last_login = currentTime() usr.name = player_name usr.gender = 'male' usr.avatar = '1' usr.install(0) usr.saveRoleId() usr.onInit() usr.level = random.randint(levelf, levelt) inv = usr.getInventory() awd = drop.open(usr, protagonist_card, {}) for (i, l) in enumerate(gameConf['team_member_open_level']): if l <= usr.level: if awd['add_card_array']: awd['add_card_array'][0]['level'] = random.randint(card_levelf, card_levelt) inv.team[i] = awd['add_card_array'][0]['id'] break for (i, l) in enumerate(gameConf['team_member_open_level']): if l <= usr.level and not inv.team[i]: awd = drop.open(usr, other_card, {}) if awd['add_card_array']: awd['add_card_array'][0]['level'] = random.randint(card_levelf, card_levelt) inv.team[i] = awd['add_card_array'][0]['id'] break petConf = config.getConfig('pet') for (i, cid) in enumerate(inv.team): if cid: card = inv.getCard(cid) if card: awd = drop.open(usr, attack_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0]['strengthLevel'] = random.randint(equipment_strength_levelf, equipment_strength_levelt) equipment.equip(usr, i, -1, awd['add_equipment_array'][0]['id']) awd = drop.open(usr, hp_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0]['strengthLevel'] = random.randint(equipment_strength_levelf, equipment_strength_levelt) equipment.equip(usr, i, -1, awd['add_equipment_array'][0]['id']) awd = drop.open(usr, defence_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0]['strengthLevel'] = random.randint(equipment_strength_levelf, equipment_strength_levelt) equipment.equip(usr, i, -1, awd['add_equipment_array'][0]['id']) awd = drop.open(usr, pd_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0]['strengthLevel'] = random.randint(equipment_strength_levelf, equipment_strength_levelt) equipment.equip(usr, i, -1, awd['add_equipment_array'][0]['id']) awd = drop.open(usr, md_equipment, {}) if awd.has_key('add_equipment_array'): awd['add_equipment_array'][0]['strengthLevel'] = random.randint(equipment_strength_levelf, equipment_strength_levelt) equipment.equip(usr, i, -1, awd['add_equipment_array'][0]['id']) petInfo = petConf[card['cardid']] skill_seed = None if petInfo['nature'] == '2': skill_seed = poison_skill elif petInfo['nature'] == '3': skill_seed = straw_skill elif petInfo['nature'] == '4': skill_seed = water_skill elif petInfo['nature'] == '5': skill_seed = fire_skill elif petInfo['nature'] == '6': skill_seed = super_skill elif petInfo['nature'] == '7': skill_seed = general_skill if skill_seed: for k in range(3): awd = drop.open(usr, skill_seed, {}) if awd.has_key('add_skill_array'): awd['add_skill_array'][0]['level'] = random.randint(skill_levelf, skill_levelt) skill.install(usr, i, -1, k, awd['add_skill_array'][0]['id']) for (k, l) in enumerate(gameConf['stone_slot_level']): if l <= usr.level: awd = drop.open(usr, stone_seed, {}) if awd.has_key('add_stone_array'): awd['add_stone_array'][0]['level'] = random.randint(stone_levelf, stone_levelt) stone.install(usr, i, -1, k, awd['add_stone_array'][0]['id']) card['strength'] = random.randint(strengthenf, strengthent) card['intelligence'] = random.randint(intelligencef, intelligencet) card['artifice'] = random.randint(artificef, artificet) medalConf = config.getConfig('medal') for medalid in medalConf: inv.medal[medalid] = {'level':0, 'chip': [0] * medalConf[medalid]['chip'], 'id':medalid, 'gravel':0} inv.medal[medalid]['level'] = random.randint(medal_levelf, medal_levelt) usr.practice['critical_level'] = random.randint(practicef, practicet) usr.practice['tenacity_level'] = random.randint(practicef, practicet) usr.practice['block_level'] = random.randint(practicef, practicet) usr.practice['wreck_level'] = random.randint(practicef, practicet) usr.save() res = arena.stand_ladder(usr) if isinstance(res, str): res = json.loads(res) if res.has_key('msg'): return HttpResponse('error:' + str(i) + ':' + str(usr.roleid) + res['msg']) ld = arena.show_all() return render(request, 'arena_tool.html', {'ladder':ld})