hxp
2019-11-27 7b6e4af3ca3ea15dee2e7933e7445c3c2dc25d21
ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py
@@ -42,6 +42,46 @@
    GameWorld.Log("LoadPyGameData!!id = %s %s"%(id(pyGameDataMgr), len(gameBuffer)))
    return pyGameDataMgr.LoadGameData(gameBuffer, pos)
#协助感谢表
class PlayerAssistThanksPyManager(object):
    def __init__(self):
        self.assistThanksDict = {} # 所有感谢 {GUID:tagDBAssistThanks, ...}
        self.playerThanksDict = {} # 玩家未感谢的 {playerID:[tagDBAssistThanks, ...], ...}
        return
    # 保存数据 存数据库和realtimebackup
    def GetSaveData(self):
        savaData = ""
        cntData = ""
        cnt = 0
        for dbData in self.assistThanksDict.values():
            cnt += 1
            savaData += dbData.getBuffer()
        GameWorld.Log("Save DBAssistThanks count :%s" % cnt)
        return CommFunc.WriteDWORD(cntData, cnt) + savaData
    # 从数据库载入数据
    def LoadPyGameData(self, datas, pos, dataslen):
        cnt, pos = CommFunc.ReadDWORD(datas, pos)
        GameWorld.Log("Load DBAssistThanks count :%s" % cnt)
        for _ in xrange(cnt):
            dbData = PyGameDataStruct.tagDBAssistThanks()
            dbData.clear()
            pos += dbData.readData(datas, pos, dataslen)
            self.assistThanksDict[dbData.GUID] = dbData
            playerID = dbData.PlayerID
            if playerID not in self.playerThanksDict:
                self.playerThanksDict[playerID] = []
            playerThanksList = self.playerThanksDict[playerID]
            playerThanksList.append(dbData)
        return pos
#协助表
class PlayerAssistPyManager(object):
    
@@ -251,6 +291,7 @@
class PyGameDataManager(object):
    def __init__(self):
        self.PlayerAssistThanksPyManager = PlayerAssistThanksPyManager()
        self.PlayerAssistPyManager = PlayerAssistPyManager()
        self.PlayerViewCachePyManager = PlayerViewCachePyManager()
        self.AuctionAttentionManager = AuctionAttentionManager()
@@ -273,6 +314,7 @@
    def GetSaveData(self):
        buff = ""
        buff += self.PlayerAssistThanksPyManager.GetSaveData()
        buff += self.PlayerAssistPyManager.GetSaveData()
        buff += self.PlayerViewCachePyManager.GetSaveData()
        buff += self.AuctionAttentionManager.GetSaveData()
@@ -294,6 +336,7 @@
        return buff
    
    def LoadGameData(self, gameBuffer, pos):
        pos = self.PlayerAssistThanksPyManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
        pos = self.PlayerAssistPyManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
        pos = self.PlayerViewCachePyManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
        pos = self.AuctionAttentionManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
@@ -322,6 +365,11 @@
        PyGameData.g_pyGameDataManager = pyGameDataMgr
    return pyGameDataMgr
def GetPlayerAssistThanksPyManager():
    # 协助感谢表
    pyGameDataMgr = GetPyGameDataManager()
    return pyGameDataMgr.PlayerAssistThanksPyManager
def GetPlayerAssistPyManager():
    # 协助表
    pyGameDataMgr = GetPyGameDataManager()