From 9de3ec62ce339d8c60be4d759ba2033a25b66a27 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期六, 27 四月 2019 16:42:37 +0800 Subject: [PATCH] 6628 【2.0】【后端】查看玩家装备和查看玩家战力功能(查看玩家缓存相关功能修改) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py | 45 +++++++++++++++++++-------------------------- 1 files changed, 19 insertions(+), 26 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py index 9709ed7..40691df 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py @@ -30,24 +30,6 @@ import json -ViewCacheMgr = GameWorld.GameWorldData.GetPlayerViewCacheMgr() - - -# 优先取缓存数据,后取可保存数据 -def GetItemData(curCache): - result = curCache.GetItemDataNoSave() - if not result: - return curCache.GetItemData() - - return result - -def GetPlusData(curCache): - result = curCache.GetPlusDataNoSave() - if not result: - return curCache.GetPlusData() - - return result - def IsSaveDBViewCache(playerID, playerLV): ## 是否保存基本的缓存数据 if PlayerFBHelpBattle.IsInHelpBattleCheckInList(playerID): @@ -96,6 +78,14 @@ playerViewCachePyDict[playerID] = curCache return curCache +def GetCachePropDataDict(curCache): + ## 获取缓存基础属性字典信息 + if not hasattr(curCache, "PropDataDict"): + curCache.PropDataDict = {} + if not curCache.PropDataDict: + curCache.PropDataDict = eval(curCache.PropData) + return curCache.PropDataDict + #//04 01 地图同步玩家缓存数据到GameServer#tagMGUpdatePlayerCache # #struct tagMGUpdatePlayerCache @@ -140,6 +130,7 @@ curCache.GeTuiID = curPlayer.GetGeTuiClientID() curCache.GeTuiIDSize = len(curCache.GeTuiID) + curCache.PropDataDict = {} # 每次更新数据时,重置字典缓存,下次获取时重新eval缓存 curCache.PropData = curPackData.PropData curCache.PropDataSize = curPackData.PropDataSize curCache.PlusData = curPackData.PlusData @@ -165,8 +156,7 @@ #GameWorld.DebugLog(" %s" % curCache.outputString()) # 同步更新助战信息 if PlayerFBHelpBattle.IsInHelpBattleCheckInList(playerID): - #PropDataDict = json.loads(curCache.PropData) - PropDataDict = eval(curCache.PropData) + PropDataDict = GetCachePropDataDict(curCache) fightPower = PropDataDict.get("FightPower", 0) familyID = PropDataDict.get("FamilyID", 0) playerName = PropDataDict.get("Name", "") @@ -190,13 +180,17 @@ if not curCache: PlayerControl.NotifyCode(curPlayer, "ViewPlayer_OffLine") return - + Sync_PlayerCache(curPlayer, curCache, equipClassLV) + return + +def Sync_PlayerCache(curPlayer, curCache, equipClassLV=0): + ## 同步玩家缓存 if equipClassLV: itemData = "" if hasattr(curCache, "ItemDataSize%s" % equipClassLV): itemData = getattr(curCache, "ItemData%s" % equipClassLV) sendPack = ChPyNetSendPack.tagSCPlayerEquipCacheResult() - sendPack.PlayerID = findPlayerID + sendPack.PlayerID = curCache.PlayerID sendPack.EquipClassLV = equipClassLV sendPack.ItemData = itemData sendPack.ItemDataSize = len(sendPack.ItemData) @@ -205,13 +199,12 @@ #回包客户端 sendPack = ChPyNetSendPack.tagSCQueryPlayerCacheResult() - sendPack.PlayerID = findPlayerID + sendPack.PlayerID = curCache.PlayerID sendPack.PropData = curCache.PropData sendPack.PropDataSize = len(sendPack.PropData) sendPack.PlusData = curCache.PlusData sendPack.PlusDataSize = len(sendPack.PlusData) NetPackCommon.SendFakePack(curPlayer, sendPack) - #GameWorld.DebugLog('ViewCache### OnMGQueryPlayerCache out') return #=============================================================================== @@ -239,7 +232,7 @@ answerPack.OnlineType = ChConfig.Def_Offline answerPack.ServerGroupID = 0 else: - cacheDict = eval(curCache.PropData) + cacheDict = GetCachePropDataDict(curCache) answerPack.PlayerID = clientPack.PlayerID answerPack.PlayerName = cacheDict["Name"] answerPack.Job = cacheDict["Job"] @@ -266,7 +259,7 @@ curCache = FindViewCache(playerID) if not curCache: return - PropData = eval(curCache.PropData) + PropData = GetCachePropDataDict(curCache) PropData["FamilyID"] = familyID PropData["FamilyName"] = familyName PropData = json.dumps(PropData, ensure_ascii=False).replace(" ", "") -- Gitblit v1.8.0