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