def loadDefenseBuffs(self): playerInfo = playerDataManager.getPlayerByPlayerid(self.player_id) if playerInfo == None: tableName = "player_pvp_buffs" fields = "buffstr" conditon = "playerid = %s" % self.player_id data = db_Manager.selectDataFromTable(tableName,fields,conditon) if len(data) == 0: self.defenseBuffs = [] else: self.defenseBuffs.clear() buffStr = data[0][0] buffStrArr = buffStr.split(',') self.defenseBuffs = [] for index in range(24): if index < len(buffStrArr): value = int(buffStrArr[index]) buff = EquipmentBuf(index + 1, value) self.defenseBuffs.append(buff) self.loadPlayerLevel() self.loadEquipments() else: cacheBuff = playerInfo.pvpBuffs self.playerLevel = playerInfo.getSkillInfo(0).skillLevel for index in range(40): if index < len(cacheBuff): value = cacheBuff[index] buff = EquipmentBuf(index + 1, value) if value > 0: self.defenseBuffs.append(buff) self.equipments = playerInfo.equipments
def post(self): bodyData = self.request.body dictData = MessageTools.decode(bodyData) udid = dictData['udid'] returnData = None player = None playerID = self.getPlayeridByudid(udid) # 使用udid从数据库读取玩家ID if playerID == -1: returnData = MessData(ErrorCode.have_not_sign) # 玩家未注册 else: returnData = MessData() player = playerDataManager.getPlayerByPlayerid(playerID) # 登录成功,使用playerid获取玩家信息 if player == None: # 玩家信息未在内存中从数据库读取 player = playerDataManager.loginUseUidd(udid) player.connect_id = playerDataManager.create_connect_id(player.player_id) # 重新生成连接ID returnData.data = player player.server_date_time = GameTools.getDateTimeNowString() else: player.connect_id = playerDataManager.create_connect_id(player.player_id) # 重新生成连接ID returnData.data = player player.server_date_time = GameTools.getDateTimeNowString() if player != None: player.calculateOfflineResource() # 结算离线奖励 message = MessageTools.encode(returnData,False) if player != None: # 重置离线奖励 player.offlineCash = 0 self.write(message) self.finish()
def _process(self, data): if data['udid'] is False or data['price'] is False: self.write({'result':-1, 'msg':'params error'}) self.finish() return playerID = self.getPlayeridByudid(data['udid']) if playerID == -1: self.write({'result':-1, 'msg':'udid does not existd'}) self.finish() return player = playerDataManager.getPlayerByPlayerid(playerID) if player == None: # 玩家信息未在内存中从数据库读取 player = playerDataManager.loginUseUidd(data['udid']) got_rmb_num = int(data['price']) # 使用RMB数量 got_gems_num = got_rmb_num*10 # 添加钻石数量 got_gems_num = int(got_gems_num) got_rmb_num = int(got_rmb_num) player.addResource(ResourceType.gems,got_gems_num) # 添加资源 # 更新玩家充值总数 player.recharge_total_num += got_rmb_num self.write({'result':1, 'msg':got_gems_num}) self.finish() if player != None: playerDataManager.checkNeedSave2DB(player.player_id) # 写入数据库
def _process(self, params): playerid = params playerid = int(playerid) player = playerDataManager.getPlayerByPlayerid(playerid) if player !=None: tokens = [] tokens.append(player.token) playerDataManager.kickOfTokens(tokens) str = 'ok' print('ok') self.write(str)
def getPlayerListByRankNums(self,rankNumList): playerIDList = [] notInRankList = [] for num in rankNumList: playerid = self.rank.get(num,None) if playerid == None: notInRankList.append(num) continue playerIDList.append(playerid) for remNum in notInRankList: rankNumList.remove(remNum) playerid2player = {} tableName = "player_base_info" fileds = "playerid,name,game_level,avatorid" if len(playerIDList) == 0: return [] players = [] offlinePlayersid = [] for playerid in playerIDList: playerInfo = playerDataManager.getPlayerByPlayerid(playerid) if playerInfo == None: offlinePlayersid.append(playerid) else: infos = [] infos.append(playerid) infos.append(playerInfo.name) infos.append(playerInfo.game_level) infos.append(playerInfo.avatorid) pvpplayer = PvpPlayerInfoInRanking(infos) playerid2player[playerid] = pvpplayer if len(offlinePlayersid) > 0:#offline player playerIDList = str(offlinePlayersid) playerIDList = playerIDList[1:-1] condition = "playerid in (%s)" % playerIDList data = db_Manager.selectDataFromTable(tableName,fileds,condition) for aaData in data: player = PvpPlayerInfoInRanking(aaData) playerid2player[player.player_id] = player for num in rankNumList: playerid = self.rank[num] player = playerid2player[playerid] player.rankNum = num players.append(player) return players