From e41e926bbbd0255acde8b4b62d5558a025b83a02 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 11 六月 2025 17:18:27 +0800 Subject: [PATCH] 10263 【越南】【BT】增加后台执行命令清除本服榜单某个玩家ID数据: ClearBillboardData --- ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py | 65 ++++++++++++++------------------ 1 files changed, 29 insertions(+), 36 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py b/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py index 291784f..02b346f 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py @@ -15,6 +15,7 @@ import GameWorld import PlayerSocial import CrossBillboard +import CrossFamilyGCZ import PlayerFamilyStore import PlayerCompensation import PlayerBourse @@ -26,9 +27,12 @@ import CrossRealmPK import AuctionHouse import PlayerAssist +import GameRecData import PlayerRecData +import PlayerViewCache import GameWorldMineArea import PyGameDataStruct +import PlayerPackData import PlayerFuncTeam import IpyGameDataPY import PlayerCharm @@ -37,6 +41,10 @@ import time def GetSavePyData(): + + #存储数据前,一些功能业务数据先转化为存档数据 + CrossFamilyGCZ.OnSavePyData() + pyGameDataMgr = GetPyGameDataManager() result = pyGameDataMgr.GetSaveData() GameWorld.Log("GetSavePyData!! id = %s-%s"%(id(pyGameDataMgr), len(result))) @@ -50,7 +58,12 @@ def LoadPyGameData(gameBuffer, pos): pyGameDataMgr = GetPyGameDataManager() GameWorld.Log("LoadPyGameData!!id = %s %s"%(id(pyGameDataMgr), len(gameBuffer))) - return pyGameDataMgr.LoadGameData(gameBuffer, pos) + pos = pyGameDataMgr.LoadGameData(gameBuffer, pos) + + #加载数据后,一些功能转化为功能业务数据 + CrossFamilyGCZ.OnLoadPyData() + + return pos #协助感谢表 class PlayerAssistThanksPyManager(object): @@ -132,40 +145,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(): - 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 @@ -312,6 +291,8 @@ class PyGameDataManager(object): def __init__(self): + self.DBPlayerPackDataManager = PlayerPackData.DBPlayerPackDataManager() # 该表GameServer只做内存处理,不从db取,也不发db入库,由db自行处理 + self.DBGameRecDataManager = GameRecData.DBGameRecDataManager() self.DBPyFuncTeamManager = PlayerFuncTeam.DBPyFuncTeamManager() self.DBPyFuncTeamMemManager = PlayerFuncTeam.DBPyFuncTeamMemManager() self.DBPlayerRecDataManager = PlayerRecData.DBPlayerRecDataManager() @@ -326,7 +307,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() @@ -347,6 +328,7 @@ def GetSaveData(self): buff = "" + buff += self.DBGameRecDataManager.GetSaveData() buff += self.DBPyFuncTeamManager.GetSaveData() buff += self.DBPyFuncTeamMemManager.GetSaveData() buff += self.DBPlayerRecDataManager.GetSaveData() @@ -381,6 +363,7 @@ return buff def LoadGameData(self, gameBuffer, pos): + pos = self.DBGameRecDataManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyFuncTeamManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyFuncTeamMemManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPlayerRecDataManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) @@ -502,6 +485,16 @@ pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.familyStoreItemManager +def GetDBGameRecDataManager(): + # 通用记录表新管理 + pyGameDataMgr = GetPyGameDataManager() + return pyGameDataMgr.DBGameRecDataManager + +def GetDBPlayerPackDataManager(): + # 玩家打包数据管理 + pyGameDataMgr = GetPyGameDataManager() + return pyGameDataMgr.DBPlayerPackDataManager + def GetDBPyFuncTeamManager(): # 功能队伍管理 pyGameDataMgr = GetPyGameDataManager() -- Gitblit v1.8.0