def gift(self, sendRoleid, receiveRoleid): """ 送礼 """ sendUsr = user.get(sendRoleid) receiveUsr = user.get(receiveRoleid) if (not sendUsr) or (not receiveUsr): return {'msg':'usr_not_exist'} sendUsrNw = sendUsr.getNetwork() receiveUsrNw = receiveUsr.getNetwork() gameConf = config.getConfig('game') if receiveRoleid in self.charm_ladder: self.charm_ladder = filter(lambda x: x != receiveRoleid, self.charm_ladder) if sendRoleid in self.tuhao_ladder: self.tuhao_ladder = filter(lambda x: x != sendRoleid, self.tuhao_ladder) tuhao_position = -1 for (i, rid) in enumerate(self.tuhao_ladder): if receiveUsrNw.tuhao > self.user[rid]['tuhao']: tuhao_position = i break if len(self.tuhao_ladder) < gameConf['gift_ladder_max_size'] and tuhao_position < 0: tuhao_position = len(self.tuhao_ladder) if tuhao_position >= 0: self.tuhao_ladder.insert(tuhao_position, sendRoleid) charm_position = -1 for (i, rid) in enumerate(self.charm_ladder): if receiveUsrNw.charm > self.user[rid]['charm']: charm_position = i break if len(self.charm_ladder) < gameConf['gift_ladder_max_size'] and charm_position < 0: charm_position = len(self.charm_ladder) if charm_position >= 0: self.charm_ladder.insert(charm_position, receiveRoleid) if tuhao_position >= 0: self.user[sendRoleid] = {'roleid':sendRoleid, 'charm':sendUsrNw.charm, 'tuhao': sendUsrNw.tuhao, 'charm': receiveUsrNw.charm, 'name': sendUsr.name, 'level':sendUsr.level} if charm_position >= 0: self.user[receiveRoleid] = {'roleid':receiveRoleid, 'charm':receiveUsrNw.charm, 'tuhao': receiveUsrNw.tuhao, 'charm': receiveUsrNw.charm, 'name': receiveUsr.name, 'level':receiveUsr.level} self.update_ladder(gameConf) self.save() return {'charm_user_position': charm_position, 'tuhao_user_position': tuhao_position}
def gm_tool_set_item(request): data = {} if request.method == 'POST': skillopt = request.POST['itemopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if skillopt == 'add': itemid = request.POST['itemSelect'] cnt = request.POST['tfItemCount'] cnt = int(cnt) inv = usr.getInventory() s = inv.addItemCount(itemid, cnt) inv.save() if not s: return HttpResponse('添加失败') data = gm.show_profile(acc, usr) elif skillopt == 'remove': id = request.POST['itemid'] inv = usr.getInventory() if inv.delItem(id) == 0: return HttpResponse('删除失败') inv.save() data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def stand(self, roleid): """ 站上天梯 """ usr = user.get(roleid) if not usr: return {'msg': 'user_not_exist'} md = medal_arena.instance() md.role_level(usr.roleid, usr.level) md.save() if not self.item.has_key(roleid): rd = {} rd['roleid'] = roleid rd['name'] = usr.name rd['level'] = usr.level rd['last_update'] = currentTime() rd['score'] = 0 rd['avatar_id'] = usr.avatar_id self.item[roleid] = rd self.rank.append(roleid) self.save() return {'position': (len(self.rank) - 1)} return {'msg': 'arena_ladder_already_stand'}
def stand(self, roleid): """ 站上天梯 """ usr = user.get(roleid) if not usr: return {'msg':'user_not_exist'} md = medal_arena.instance() md.role_level(usr.roleid, usr.level) md.save() if not self.item.has_key(roleid): rd = {} rd['roleid'] = roleid rd['name'] = usr.name rd['level'] = usr.level rd['last_update'] = currentTime() rd['score'] = 0 rd['avatar_id'] = usr.avatar_id self.item[roleid] = rd self.rank.append(roleid) self.save() return {'position':(len(self.rank) -1)} return {'msg':'arena_ladder_already_stand'}
def gm_tool_set_stone(request): data = {} if request.method == 'POST': stoneopt = request.POST['stoneopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if stoneopt == 'add': stoneid = request.POST['stoneSelect'] cnt = int(request.POST['tfStoneCount']) inv = usr.getInventory() s = inv.addStoneCount(stoneid, cnt) inv.save() if not s: return HttpResponse('添加失败') elif stoneopt == 'remove': id = request.POST['stoneid'] inv = usr.getInventory() if not inv.delStone(id): return HttpResponse('删除失败') inv.save() data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def gm_tool_set_item(request): data = {} if request.method == 'POST': skillopt = request.POST['itemopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if skillopt == 'add': itemid = request.POST['itemSelect'] cnt = request.POST['tfItemCount'] cnt = int(cnt) inv = usr.getInventory() s = inv.addItemCount(itemid, cnt) inv.save() if not s: return HttpResponse('添加失败') data = gm.show_profile(acc, usr) elif skillopt == 'remove': id = request.POST['itemid'] inv = usr.getInventory() if inv.delItem(id) == 0: return HttpResponse('删除失败') inv.save() data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def gm_tool_set_medal(request): data = {} if request.method == 'POST': medalopt = request.POST['medalopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if medalopt == 'add': medalid = request.POST['medalSelect'] chipnum = int(request.POST['chipSelect']) cnt = int(request.POST['tfChipCount']) inv = usr.getInventory() mc = inv.addMedalChip(medalid, chipnum, cnt) medal.newMedal(usr, medalid, chipnum, cnt) if not mc: return HttpResponse('删除失败') inv.save() data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def gm_tool_set_stone(request): data = {} if request.method == 'POST': stoneopt = request.POST['stoneopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if stoneopt == 'add': stoneid = request.POST['stoneSelect'] cnt = int(request.POST['tfStoneCount']) inv = usr.getInventory() s = inv.addStoneCount(stoneid, cnt) inv.save() if not s: return HttpResponse('添加失败') elif stoneopt == 'remove': id = request.POST['stoneid'] inv = usr.getInventory() if not inv.delStone(id): return HttpResponse('删除失败') inv.save() data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def feed(request): targetid = request.GET['target'] target = None if targetid: target = user.get(targetid) if not target: return {'msg':'friend_not_exist'} return luckycat.feed(request.user, target)
def detail(request): """ 玩家详细信息 """ roleid = request.GET['role_id'] other = user.get(roleid) if not other: return {'msg': 'user_not_exist'} return other.getBattleData()
def detail(request): """ 玩家详细信息 """ roleid = request.GET['role_id'] other = user.get(roleid) if not other: return {'msg':'user_not_exist'} return other.getBattleData()
def pk(request): """ PK """ roleid = request.GET['roleid'] other = user.get(roleid) if not other: return {'msg': 'usr_not_exist'} pvpData = other.pvpProperty() return {'pvpProperty': pvpData}
def pk(request): """ PK """ roleid = request.GET['roleid'] other = user.get(roleid) if not other: return {'msg':'usr_not_exist'} pvpData= other.pvpProperty() return {'pvpProperty':pvpData}
def get_message(request): """ 刷新留言 """ friendid = request.GET['friend_id'] friend = user.get(friendid) if not friend: return {'msg': 'friend_not_exist'} friendNw = friend.getNetwork() return {'message': friendNw.message}
def feed(request): """ 喂养 """ targetid = request.GET['target'] target = None if targetid: target = user.get(targetid) if not target: return {'msg': 'friend_not_exist'} return luckycat.feed(request.user, target)
def delete(request): """ 删除好友 """ usr = request.user friendid = request.GET['friend_id'] usrNw = usr.getNetwork() friend = user.get(friendid) if not friend: return {'msg': 'friend_not_exist'} return usrNw.deleteFriend(friend)
def get_message(request): """ 刷新留言 """ friendid = request.GET['friend_id'] friend = user.get(friendid) if not friend: return {'msg':'friend_not_exist'} friendNw = friend.getNetwork() return {'message':friendNw.message}
def delete(request): """ 删除好友 """ usr = request.user friendid = request.GET['friend_id'] usrNw = usr.getNetwork() friend = user.get(friendid) if not friend: return {'msg':'friend_not_exist'} return usrNw.deleteFriend(friend)
def ban(request): """ 阻止好友 """ banid = request.GET['ban_id'] usr = request.user banUser = user.get(banid) if banUser: usrNw = usr.getNetwork() usrNw.ban(banid, banUser.name) return {} return {'msg':'friend_not_exist'}
def ban(request): """ 阻止好友 """ banid = request.GET['ban_id'] usr = request.user banUser = user.get(banid) if banUser: usrNw = usr.getNetwork() usrNw.ban(banid, banUser.name) return {} return {'msg': 'friend_not_exist'}
def show(request): roleid = request.GET['role_id'] other = user.get(roleid) if not other: return {'msg':'user_not_exist'} otNw = other.getNetwork() data = {} data['name'] = other.name data['level'] = other.level data['message'] = otNw.message return data
def search(request): """ 寻找好友 """ usr = request.user friendname = request.GET['friend_name'] friendid = account.getRoleid(friendname) if friendid == 0: return {'friend': {}} friend = user.get(friendid) if friend != None: return {'friend':friend.getFriendData()} else: return {'friend': {}}
def search(request): """ 寻找好友 """ usr = request.user friendname = request.GET['friend_name'] friendid = account.getRoleid(friendname) if friendid == 0: return {'friend': {}} friend = user.get(friendid) if friend != None: return {'friend': friend.getFriendData()} else: return {'friend': {}}
def request(request): """ 请求加好友 """ usr = request.user friendid = request.GET['friend_id'] friendid = int(friendid) if friendid == usr.roleid: return {'msg': 'friend_can_not_self'} friend = user.get(int(friendid)) if friend != None: usrNw = usr.getNetwork() data = usrNw.addFriendRequest(friend) if data.has_key('msg'): return data return {'friend': data} return {'msg': 'friend_not_exist'}
def request(request): """ 请求加好友 """ usr = request.user friendid = request.GET['friend_id'] friendid = int(friendid) if friendid == usr.roleid: return {'msg':'friend_can_not_self'} friend = user.get(int(friendid)) if friend != None: usrNw = usr.getNetwork() data = usrNw.addFriendRequest(friend) if data.has_key('msg'): return data return {'friend':data} return {'msg':'friend_not_exist'}
def show(request): """ 显示 """ roleid = request.GET['role_id'] other = user.get(roleid) if not other: return {'msg': 'user_not_exist'} otNw = other.getNetwork() data = {} data['roleid'] = other.roleid data['name'] = other.name data['gender'] = other.gender data['level'] = other.level data['vip_level'] = other.vip['level'] data['message'] = otNw.message return data
def nearby(request): """ 显示周围玩家 """ gameConf = config.getConfig('game') longitude = float(request.GET['longitude']) latitude = float(request.GET['latitude']) usr = request.user raidus = gameConf['player_near_by_raidus'] degree = (24901 * 1609) / 360.0 raidusMile = raidus dpmLat = 1 / degree radiusLat = dpmLat * raidusMile minLat = latitude - radiusLat maxLat = latitude + radiusLat mpdLng = degree * math.cos(latitude * (math.pi / 180)) dpmLng = 1 / mpdLng radiusLng = dpmLng * raidusMile minLng = longitude - radiusLng maxLng = longitude + radiusLng res = account.getRange(minLng, maxLng, minLat, maxLat, gameConf['player_near_by_count']) data = [] for r in res: d = {} roleid = r[0] longitude = r[1] latitude = r[2] player = user.get(roleid) if not player: continue d['roleid'] = roleid d['longitude'] = longitude d['latitude'] = latitude d['avatar_id'] = avatar.getAvatarId(roleid) d['name'] = player.name d['level'] = player.level d['gender'] = player.gender data.append(d) return {'player': data}
def nearby(request): """ 显示周围玩家 """ gameConf = config.getConfig('game') longitude = float(request.GET['longitude']) latitude = float(request.GET['latitude'] ) usr = request.user raidus = gameConf['player_near_by_raidus'] degree = (24901*1609)/360.0 raidusMile = raidus dpmLat = 1 / degree radiusLat = dpmLat * raidusMile minLat = latitude - radiusLat maxLat = latitude + radiusLat mpdLng = degree * math.cos(latitude * (math.pi / 180)) dpmLng = 1 / mpdLng radiusLng = dpmLng * raidusMile; minLng = longitude - radiusLng; maxLng = longitude + radiusLng; res = account.getRange(minLng, maxLng, minLat, maxLat, gameConf['player_near_by_count']) data = [] for r in res: d = {} roleid = r[0] longitude = r[1] latitude = r[2] player = user.get(roleid) if not player: continue d['roleid'] = roleid d['longitude'] = longitude d['latitude'] = latitude d['avatar_id'] = avatar.getAvatarId(roleid) d['name'] = player.name d['level'] = player.level d['gender'] = player.gender data.append(d) return {'player':data}
def scene(request): """ 场影中玩家 """ idx = int(request.GET['index']) sql = 'SELECT roleid from account WHERE roleid <> 0 ORDER BY lastlogin, gender LIMIT %s, %s' conn = DBConnection.getConnection() gameConf = config.getConfig('game') data = {} data['player'] = [] res = conn.query(sql, [idx, gameConf['scene_player_count']]) for rid in res: try: u = user.get(rid[0]) if u: data['player'].append(u.getSceneData()) except: pass return data
def scene(request): """ 场影中玩家 """ idx = int(request.GET['index']) sql = 'SELECT roleid from account WHERE roleid <> 0 ORDER BY lastlogin, gender LIMIT %s, %s' conn = DBConnection.getConnection() gameConf = config.getConfig('game') data = {} data['player'] = [] res = conn.query(sql, [idx, gameConf['scene_player_count']]) for rid in res: try: u = user.get(rid[0]) if u: data['player'].append(u.getSceneData()) except: pass return data
def mail(request): """ 发送私信 """ friendid = request.GET['friend_id'] mail = request.GET['mail'] usr = request.user if friendid == usr.roleid: return {'msg': 'friend_can_not_self'} toUser = user.get(friendid) if toUser: toUserNw = toUser.getNetwork() if toUserNw.isBan(usr.roleid): return {'msg': 'user_is_in_ban'} usrNw = usr.getNetwork() usrNw.sendMail(toUser, mail) return {} return {'msg': 'friend_not_exist'}
def message(request): """ 留言 """ friendid = int(request.GET['friend_id']) msg = request.GET['message'] usr = request.user toUser = None if friendid == usr.roleid: toUser = usr else: toUser = user.get(friendid) if toUser: usrNw = usr.getNetwork() toUserNw = toUser.getNetwork() if toUserNw.isBan(usr.roleid): return {'msg':'user_is_in_ban'} usrNw.sendMessage(toUser, msg) return {} return {'msg':'friend_not_exist'}
def message(request): """ 留言 """ friendid = int(request.GET['friend_id']) msg = request.GET['message'] usr = request.user toUser = None if friendid == usr.roleid: toUser = usr else: toUser = user.get(friendid) if toUser: usrNw = usr.getNetwork() toUserNw = toUser.getNetwork() if toUserNw.isBan(usr.roleid): return {'msg': 'user_is_in_ban'} usrNw.sendMessage(toUser, msg) return {} return {'msg': 'friend_not_exist'}
def mail(request): """ 发送私信 """ friendid = request.GET['friend_id'] mail = request.GET['mail'] usr = request.user if friendid == usr.roleid: return {'msg':'friend_can_not_self'} toUser = user.get(friendid) if toUser: toUserNw = toUser.getNetwork() if toUserNw.isBan(usr.roleid): return {'msg':'user_is_in_ban'} usrNw = usr.getNetwork() usrNw.sendMail(toUser, mail) return {} return {'msg':'friend_not_exist'}
def gm_tool_set_pet(request): data = {} if request.method == 'POST': petopt = request.POST['petopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if petopt == 'add': cardid = request.POST['petSelect'] cnt = int(request.POST['tfPetCount']) level = int(request.POST['tfPetLevel']) inv = usr.getInventory() c = inv.addCardCount(cardid, cnt, level) inv.save() if not c: return HttpResponse('添加失败') elif petopt == 'remove': id = request.POST['petid'] inv = usr.getInventory() if not inv.delCard(id): return HttpResponse('删除失败') inv.save() elif petopt == 'add_chip': cardid = request.POST['petChipSelect'] cnt = int(request.POST['tfPetChipCount']) inv = usr.getInventory() if inv.addCardChip(cardid, cnt) < 0: return HttpResponse('添加失败') inv.save() else: return HttpResponse('无效的功能') data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def gm_tool_set_pet(request): data = {} if request.method == 'POST': petopt = request.POST['petopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if petopt == 'add': cardid = request.POST['petSelect'] cnt = int(request.POST['tfPetCount']) level = int(request.POST['tfPetLevel']) inv = usr.getInventory() c = inv.addCardCount(cardid, cnt, level) inv.save() if not c: return HttpResponse('添加失败') elif petopt == 'remove': id = request.POST['petid'] inv = usr.getInventory() if not inv.delCard(id): return HttpResponse('删除失败') inv.save() elif petopt == 'add_chip': cardid = request.POST['petChipSelect'] cnt = int(request.POST['tfPetChipCount']) inv = usr.getInventory() if inv.addCardChip(cardid, cnt) < 0: return HttpResponse('添加失败') inv.save() else: return HttpResponse('无效的功能') data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def gm_tool_set_skill(request): data = {} if request.method == 'POST': skillopt = request.POST['skillopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if skillopt == 'add': skillid = request.POST['skillSelect'] cnt = int(request.POST['tfSkillCount']) inv = usr.getInventory() s = inv.addSkillCount(skillid, cnt) inv.save() if not s: return HttpResponse('添加失败') data = gm.show_profile(acc, usr) elif skillopt == 'remove': id = request.POST['skillid'] inv = usr.getInventory() if not inv.delSkill(id): return HttpResponse('删除失败') inv.save() elif skillopt == 'add_chip': skillid = request.POST['skillChipSelect'] cnt = int(request.POST['tfSkillChipCount']) inv = usr.getInventory() if inv.addSkillChip(skillid, cnt) < 0: return HttpResponse('添加失败') inv.save() else: return HttpResponse('无效功能') data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def gm_tool_set_skill(request): data = {} if request.method == 'POST': skillopt = request.POST['skillopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if skillopt == 'add': skillid = request.POST['skillSelect'] cnt = int(request.POST['tfSkillCount']) inv = usr.getInventory() s = inv.addSkillCount(skillid, cnt) inv.save() if not s: return HttpResponse('添加失败') data = gm.show_profile(acc, usr) elif skillopt == 'remove': id = request.POST['skillid'] inv = usr.getInventory() if not inv.delSkill(id): return HttpResponse('删除失败') inv.save() elif skillopt == 'add_chip': skillid = request.POST['skillChipSelect'] cnt = int(request.POST['tfSkillChipCount']) inv = usr.getInventory() if inv.addSkillChip(skillid, cnt) < 0: return HttpResponse('添加失败') inv.save() else: return HttpResponse('无效功能') data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def stand(self, roleid): """ 添加排行榜 """ usr = user.get(roleid) if not usr: return {'msg':'user_not_exist'} if not self.item.has_key(roleid): rd = {} rd['roleid'] = roleid rd['name'] = usr.name rd['level'] = usr.level rd['last_update'] = currentTime() rd['score'] = 0 rd['avatar_id'] = usr.avatar_id self.item[roleid] = rd self.rank.append(roleid) self.save() return len(self.rank) -1 return {'msg':'arena_ladder_already_stand'}
def gm_tool_profile_find(request): data = {} if request.method == 'POST': opt = request.POST['findopt'] if opt == 'roleidFind': roleid = request.POST['tfRoleid'] if roleid: usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() data = gm.show_profile(acc, usr) elif opt == 'accountFind': name = request.POST['tfAccountName'] acc = account.get_by_account_name(name) if not acc: return HttpResponse('帐号不存在') usr = acc.getUser() if not usr: return HttpResponse('玩家不存在') data = gm.show_profile(acc, usr) return render(request, 'profile.html', data)
def gm_tool_profile_find(request): data = {} if request.method == 'POST': opt = request.POST['findopt'] if opt == 'roleidFind': roleid = request.POST['tfRoleid'] if roleid: usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() data = gm.show_profile(acc, usr) elif opt == 'accountFind': name = request.POST['tfAccountName'] acc = account.get_by_account_name(name) if not acc: return HttpResponse('帐号不存在') usr = acc.getUser() if not usr: return HttpResponse('玩家不存在') data = gm.show_profile(acc, usr) return render(request, 'profile.html', data)
def gm_tool_set_medal(request): data = {} if request.method == 'POST': medalopt = request.POST['medalopt'] roleid = request.POST['roleid'] usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') acc = usr.getAccount() if medalopt == 'add': medalid = request.POST['medalSelect'] chipnum = int(request.POST['chipSelect']) cnt = int(request.POST['tfChipCount']) inv = usr.getInventory() mc = inv.addMedalChip(medalid, chipnum, cnt) medal.newMedal(usr, medalid, chipnum, cnt) if not mc: return HttpResponse('删除失败') inv.save() data = gm.show_profile(acc, usr) return render(request, 'profile.html', data) return HttpResponse('未知命令')
def gm_tool_set_profile(request): data = {} if request.method == 'POST': operator = request.POST['operator'] roleid = request.POST['roleid'] if operator == 'exp': value = request.POST['tfExp'] if value == '': return HttpResponse('经验为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.gainExp(int(value)) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'gold': value = request.POST['tfGold'] if value == '': return HttpResponse('金钱为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.gold = int(value) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'gem': value = request.POST['tfGem'] if value == '': return HttpResponse('宝石为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.gem = int(value) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'stamina': value = request.POST['tfStamina'] if value == '': return HttpResponse('体力为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.chargeStamina(int(value)) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'trp': value = request.POST['tfTrp'] if value == '': return HttpResponse('培养点为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.trp = int(value) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'reset_login': usr = user.get(roleid) signin.reset(usr) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'login_count': value = request.POST['tfLoginCount'] if value == '': return HttpResponse('次数不能为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.signin['login_count'] = int(value) usr.signin['last_login_time'] = currentTime() usr.signin['last_signin_time'] = currentTime() usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'email': value = request.POST['emailSselect'] if value == '': return HttpResponse('email不能为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') nw = usr.getNetwork() emailConf = config.getConfig('email') emailInfo = emailConf[value] if emailInfo['optype'] == 1: nw.appendEmail(value, usr.name) elif emailInfo['optype'] == 2: nw.appendEmail(value, str(currentTime())) else: return HttpResponse('不能发送') acc = usr.getAccount() data = gm.show_profile(acc, usr) return render(request, 'profile.html', data)
def gift(self, sendRoleid, receiveRoleid): """ 送礼 """ sendUsr = user.get(sendRoleid) receiveUsr = user.get(receiveRoleid) if (not sendUsr) or (not receiveUsr): return {'msg': 'usr_not_exist'} sendUsrNw = sendUsr.getNetwork() receiveUsrNw = receiveUsr.getNetwork() gameConf = config.getConfig('game') if receiveRoleid in self.charm_ladder: self.charm_ladder = filter(lambda x: x != receiveRoleid, self.charm_ladder) if sendRoleid in self.tuhao_ladder: self.tuhao_ladder = filter(lambda x: x != sendRoleid, self.tuhao_ladder) tuhao_position = -1 for (i, rid) in enumerate(self.tuhao_ladder): if receiveUsrNw.tuhao > self.user[rid]['tuhao']: tuhao_position = i break if len(self.tuhao_ladder ) < gameConf['gift_ladder_max_size'] and tuhao_position < 0: tuhao_position = len(self.tuhao_ladder) if tuhao_position >= 0: self.tuhao_ladder.insert(tuhao_position, sendRoleid) charm_position = -1 for (i, rid) in enumerate(self.charm_ladder): if receiveUsrNw.charm > self.user[rid]['charm']: charm_position = i break if len(self.charm_ladder ) < gameConf['gift_ladder_max_size'] and charm_position < 0: charm_position = len(self.charm_ladder) if charm_position >= 0: self.charm_ladder.insert(charm_position, receiveRoleid) if tuhao_position >= 0: self.user[sendRoleid] = { 'roleid': sendRoleid, 'charm': sendUsrNw.charm, 'tuhao': sendUsrNw.tuhao, 'charm': receiveUsrNw.charm, 'name': sendUsr.name, 'level': sendUsr.level } if charm_position >= 0: self.user[receiveRoleid] = { 'roleid': receiveRoleid, 'charm': receiveUsrNw.charm, 'tuhao': receiveUsrNw.tuhao, 'charm': receiveUsrNw.charm, 'name': receiveUsr.name, 'level': receiveUsr.level } self.update_ladder(gameConf) self.save() return { 'charm_user_position': charm_position, 'tuhao_user_position': tuhao_position }
def gm_tool_set_profile(request): data = {} if request.method == 'POST': operator = request.POST['operator'] roleid = request.POST['roleid'] if operator == 'exp': value = request.POST['tfExp'] if value == '': return HttpResponse('经验为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.gainExp(int(value)) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'gold': value = request.POST['tfGold'] if value == '': return HttpResponse('金钱为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.gold = int(value) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'gem': value = request.POST['tfGem'] if value == '': return HttpResponse('宝石为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.gem = int(value) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'stamina': value = request.POST['tfStamina'] if value == '': return HttpResponse('体力为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.chargeStamina(int(value)) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'trp': value = request.POST['tfTrp'] if value == '': return HttpResponse('培养点为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.trp = int(value) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'reset_login': usr = user.get(roleid) signin.reset(usr) usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'login_count': value = request.POST['tfLoginCount'] if value == '': return HttpResponse('次数不能为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') usr.signin['login_count'] = int(value) usr.signin['last_login_time'] = currentTime() usr.signin['last_signin_time'] = currentTime() usr.save() acc = usr.getAccount() data = gm.show_profile(acc, usr) elif operator == 'email': value = request.POST['emailSselect'] if value == '': return HttpResponse('email不能为空') usr = user.get(roleid) if not usr: return HttpResponse('玩家不存在') nw = usr.getNetwork() emailConf = config.getConfig('email') emailInfo = emailConf[value] if emailInfo['optype'] == 1: nw.appendEmail(value, usr.name) elif emailInfo['optype'] == 2: nw.appendEmail(value, str(currentTime())) else: return HttpResponse('不能发送') acc = usr.getAccount() data = gm.show_profile(acc, usr) return render(request, 'profile.html', data)