From 5878f2872607b9b9186ad5ce3623aff88bbcef6b Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 04 三月 2025 16:34:07 +0800 Subject: [PATCH] 5563 【英文】【BT】跨服服务器维护优化(打包数据改为db自己管理存取) --- ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py | 44 +++----------------------------------------- 1 files changed, 3 insertions(+), 41 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py b/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py index 32db39d..d4581aa 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py @@ -28,6 +28,7 @@ import PlayerAssist import GameRecData import PlayerRecData +import PlayerViewCache import GameWorldMineArea import PyGameDataStruct import PlayerPackData @@ -134,43 +135,6 @@ self.playerAssistDict[PlayerID] = [] playerAssistList = self.playerAssistDict[PlayerID] playerAssistList.append(dbData) - - return pos - -#玩家缓存管理,该类只做数据缓存存取,不写功能逻辑,防止重读脚本时功能逻辑脚本不生效 -class PlayerViewCachePyManager(object): - - def __init__(self): - self.playerViewCachePyDict = {} # 玩家缓存 {playerID:tagPlayerViewCachePy, ...} - return - - # 保存数据 存数据库和realtimebackup - def GetSaveData(self): - savaData = "" - cntData = "" - cnt = 0 - - for dbData in self.playerViewCachePyDict.values(): - if dbData.PlayerID < 10000: - # 假人玩家不存储 - continue - cnt += 1 - savaData += dbData.getBuffer() - - GameWorld.Log("Save PlayerViewCachePy count :%s len=%s" % (cnt, len(savaData))) - return CommFunc.WriteDWORD(cntData, cnt) + savaData - - # 从数据库载入数据 - def LoadPyGameData(self, datas, pos, dataslen): - cnt, pos = CommFunc.ReadDWORD(datas, pos) - GameWorld.Log("Load PlayerViewCachePy count :%s" % cnt) - - for _ in xrange(cnt): - dbData = PyGameDataStruct.tagPlayerViewCachePy() - dbData.clear() - pos += dbData.readData(datas, pos, dataslen) - - self.playerViewCachePyDict[dbData.PlayerID] = dbData return pos @@ -317,7 +281,7 @@ class PyGameDataManager(object): def __init__(self): - self.DBPlayerPackDataManager = PlayerPackData.DBPlayerPackDataManager() + self.DBPlayerPackDataManager = PlayerPackData.DBPlayerPackDataManager() # 该表GameServer只做内存处理,不从db取,也不发db入库,由db自行处理 self.DBGameRecDataManager = GameRecData.DBGameRecDataManager() self.DBPyFuncTeamManager = PlayerFuncTeam.DBPyFuncTeamManager() self.DBPyFuncTeamMemManager = PlayerFuncTeam.DBPyFuncTeamMemManager() @@ -333,7 +297,7 @@ self.CrossBillboardManager = CrossBillboard.CrossBillboardManager() self.PlayerAssistThanksPyManager = PlayerAssistThanksPyManager() self.PlayerAssistPyManager = PlayerAssistPyManager() - self.PlayerViewCachePyManager = PlayerViewCachePyManager() + self.PlayerViewCachePyManager = PlayerViewCache.PlayerViewCachePyManager() self.AuctionAttentionManager = AuctionAttentionManager() self.AuctionRecordManager = AuctionRecordManager() self.AuctionItemManager = AuctionItemManager() @@ -354,7 +318,6 @@ def GetSaveData(self): buff = "" - buff += self.DBPlayerPackDataManager.GetSaveData() buff += self.DBGameRecDataManager.GetSaveData() buff += self.DBPyFuncTeamManager.GetSaveData() buff += self.DBPyFuncTeamMemManager.GetSaveData() @@ -390,7 +353,6 @@ return buff def LoadGameData(self, gameBuffer, pos): - pos = self.DBPlayerPackDataManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBGameRecDataManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyFuncTeamManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyFuncTeamMemManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) -- Gitblit v1.8.0