From fdebf36f0d9201c6a6949a08cdfeebb718c25ce2 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 23 五月 2025 19:35:53 +0800 Subject: [PATCH] 16 卡牌服务端(聊天、广播、通用记录、查看玩家;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py index 95d7abf..a500a86 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py @@ -400,10 +400,27 @@ PyGameData.g_UserCtrlDBFirstInit = True self.__PlayerBackupSave() CheckGameVersion() - - #后续也要增加公共数据保存如家族等,考虑保存失败可以直接关闭地图 - + self.loadDBPlayerIDMap() + return + + def loadDBPlayerIDMap(self): + ## 加载本服玩家映射关系 + col = self.db[UCN_DBPlayer] + resultSet = col.find({}, {"PlayerID":1, "AccID":1, "_id":0}) + if resultSet and resultSet.count(): + for resultDict in resultSet: + PyGameData.g_dbPlayerIDMap[resultDict["PlayerID"]] = resultDict["AccID"] + GameWorld.Log("启动服务器加载DBPlayer玩家账号ID对应关系! %s, %s" % (len(PyGameData.g_dbPlayerIDMap), PyGameData.g_dbPlayerIDMap)) + return + + def findDBPlayer(self, playerID): + col = self.db[UCN_DBPlayer] + dbPlayer = DataServerPlayerData.tagDBPlayer() + dbPlayer.IsDeleted = 0 + if not dbPlayer.adoLoadCEx(col, {"PlayerID":playerID}): + return + return dbPlayer def requestLogicProcess(self, pack): db = self.db @@ -1662,7 +1679,7 @@ mylog.debug('RevoverBillProcess success...%s'%orderID) except: - mylog.error("RevoverBillProcess error %s"%orderID) + mylog.error("RevoverBillProcess error %s"%traceback.format_exc()) def SavePlayerMapServerData(self, db, saveData): playerRec = DataServerPlayerData.tagDBPlayer() @@ -2413,6 +2430,9 @@ return 0, disDataBaseError, createPlayer.AccID, '' mylog.debug('insert role ok!accid = %s, PlayerName = %s'%(createPlayer.AccID, createPlayer.PlayerName)) + PyGameData.g_dbPlayerIDMap[newPlayerID] = createPlayer.AccID + mylog.debug('PyGameData.g_dbPlayerIDMap = %s, %s'%(len(PyGameData.g_dbPlayerIDMap), PyGameData.g_dbPlayerIDMap)) + #构造其他角色初始数据 itemData = '' itemData = CommFunc.WriteDWORD(itemData, 0) @@ -3409,6 +3429,11 @@ data += DBFamilyAction.adoQueryAll(collection) mylog.info("tagDBFamilyAction ok") + collection = db[UCN_DBGameRec] + DBGameRec = DataServerPlayerData.tagDBGameRec() + data += DBGameRec.adoQueryAll(collection) + mylog.info("tagDBGameRec ok") + mylog.info('readGameWorldData len:%s' % len(data)) return data @@ -3430,6 +3455,7 @@ gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBFamily, DataServerPlayerData.tagDBFamily, db) gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBFamilyMem, DataServerPlayerData.tagDBFamilyMem, db) gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBFamilyAction, DataServerPlayerData.tagDBFamilyAction, db) + gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBGameRec, DataServerPlayerData.tagDBGameRec, db) mylog.info('saveGameWorldData ok!') -- Gitblit v1.8.0