| | |
| | |
|
| | | import GameWorld
|
| | | import PlayerSocial
|
| | | import CrossBillboard
|
| | | import PlayerFamilyStore
|
| | | import PlayerCompensation
|
| | | import PlayerBourse
|
| | | import GameWorldBoss
|
| | | import PlayerSealDemon
|
| | |
| | | import AuctionHouse
|
| | | import PlayerAssist
|
| | | import PyGameDataStruct
|
| | | import IpyGameDataPY
|
| | | import CommFunc
|
| | | import time
|
| | |
|
| | | def GetSavePyData():
|
| | | pyGameDataMgr = GetPyGameDataManager()
|
| | | result = pyGameDataMgr.GetSaveData()
|
| | | GameWorld.DebugLog("GetSavePyData!! id = %s-%s"%(id(pyGameDataMgr), len(result)))
|
| | | GameWorld.Log("GetSavePyData!! id = %s-%s"%(id(pyGameDataMgr), len(result)))
|
| | | result = binascii.b2a_hex(result)
|
| | | #GameWorld.DebugLog("GetSavePyData!! result = %s-%s"%(result, len(result)))
|
| | | # 字节码在C++转化会发生错误must be string without null bytes, not str,但是可以正常保存,错误会在下次调用便宜接口才会触发
|
| | |
| | | PlayerAssist.OnSaveAssistThanksData(dbData)
|
| | | savaData += dbData.getBuffer()
|
| | |
|
| | | GameWorld.Log("Save DBAssistThanks count :%s" % cnt)
|
| | | GameWorld.Log("Save DBAssistThanks count :%s len=%s" % (cnt, len(savaData)))
|
| | | return CommFunc.WriteDWORD(cntData, cnt) + savaData
|
| | |
|
| | | # 从数据库载入数据
|
| | |
| | | cnt += 1
|
| | | savaData += dbData.getBuffer()
|
| | |
|
| | | GameWorld.Log("Save DBAssist count :%s" % cnt)
|
| | | GameWorld.Log("Save DBAssist count :%s len=%s" % (cnt, len(savaData)))
|
| | | return CommFunc.WriteDWORD(cntData, cnt) + savaData
|
| | |
|
| | | # 从数据库载入数据
|
| | |
| | | cnt += 1
|
| | | savaData += dbData.getBuffer()
|
| | |
|
| | | GameWorld.Log("Save PlayerViewCachePy count :%s" % cnt)
|
| | | GameWorld.Log("Save PlayerViewCachePy count :%s len=%s" % (cnt, len(savaData)))
|
| | | return CommFunc.WriteDWORD(cntData, cnt) + savaData
|
| | |
|
| | | # 从数据库载入数据
|
| | |
| | | cntData = ""
|
| | | cnt = 0
|
| | |
|
| | | unSaveCnt = 0
|
| | | curTime = int(time.time())
|
| | | vaildSeconds = IpyGameDataPY.GetFuncCfg("AuctionHouse", 1) * 3600 * 24
|
| | | for recordDict in [self.myAuctionItemRecordDict, self.myBidItemRecordDict, self.familyAuctionItemRecordDict]:
|
| | | for recordList in recordDict.values():
|
| | | for dbData in recordList:
|
| | | if vaildSeconds:
|
| | | recordTime = GameWorld.ChangeTimeStrToNum(dbData.RecordTime)
|
| | | if curTime - recordTime > vaildSeconds:
|
| | | unSaveCnt += 1
|
| | | continue
|
| | | cnt += 1
|
| | | savaData += dbData.getBuffer()
|
| | |
|
| | | GameWorld.Log("Save AuctionRecord count :%s" % cnt)
|
| | | GameWorld.Log("Save AuctionRecord count :%s len=%s unSaveCnt=%s" % (cnt, len(savaData), unSaveCnt))
|
| | | return CommFunc.WriteDWORD(cntData, cnt) + savaData
|
| | |
|
| | | # 从数据库载入数据
|
| | |
| | | cnt += 1
|
| | | savaData += dbData.getBuffer()
|
| | |
|
| | | GameWorld.Log("Save AuctionAttention count :%s" % cnt)
|
| | | GameWorld.Log("Save AuctionAttention count :%s len=%s" % (cnt, len(savaData)))
|
| | | return CommFunc.WriteDWORD(cntData, cnt) + savaData
|
| | |
|
| | | # 从数据库载入数据
|
| | |
| | | cnt += 1
|
| | | savaData += dbData.getBuffer()
|
| | |
|
| | | GameWorld.Log("Save AuctionItem count :%s" % cnt)
|
| | | GameWorld.Log("Save AuctionItem count :%s len=%s" % (cnt, len(savaData)))
|
| | | return CommFunc.WriteDWORD(cntData, cnt) + savaData
|
| | |
|
| | | # 从数据库载入数据
|
| | |
| | |
|
| | | class PyGameDataManager(object):
|
| | | def __init__(self):
|
| | | self.CrossPersonalCompensationManager = PlayerCompensation.CrossPersonalCompensationManager()
|
| | | self.CrossBillboardManager = CrossBillboard.CrossBillboardManager()
|
| | | self.PlayerAssistThanksPyManager = PlayerAssistThanksPyManager()
|
| | | self.PlayerAssistPyManager = PlayerAssistPyManager()
|
| | | self.PlayerViewCachePyManager = PlayerViewCachePyManager()
|
| | |
| | |
|
| | | def GetSaveData(self):
|
| | | buff = ""
|
| | | buff += self.CrossPersonalCompensationManager.GetSaveData()
|
| | | buff += self.CrossBillboardManager.GetSaveData()
|
| | | buff += self.PlayerAssistThanksPyManager.GetSaveData()
|
| | | buff += self.PlayerAssistPyManager.GetSaveData()
|
| | | buff += self.PlayerViewCachePyManager.GetSaveData()
|
| | |
| | | return buff
|
| | |
|
| | | def LoadGameData(self, gameBuffer, pos):
|
| | | pos = self.CrossPersonalCompensationManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
|
| | | pos = self.CrossBillboardManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
|
| | | pos = self.PlayerAssistThanksPyManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
|
| | | pos = self.PlayerAssistPyManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
|
| | | pos = self.PlayerViewCachePyManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer))
|
| | |
| | | PyGameData.g_pyGameDataManager = pyGameDataMgr
|
| | | return pyGameDataMgr
|
| | |
|
| | | def GetCrossPersonalCompensationManager():
|
| | | # 跨服个人补偿邮件管理
|
| | | pyGameDataMgr = GetPyGameDataManager()
|
| | | return pyGameDataMgr.CrossPersonalCompensationManager
|
| | |
|
| | | def GetCrossBillboardManager():
|
| | | # 跨服排行榜管理
|
| | | pyGameDataMgr = GetPyGameDataManager()
|
| | | return pyGameDataMgr.CrossBillboardManager
|
| | |
|
| | | def GetPlayerAssistThanksPyManager():
|
| | | # 协助感谢表
|
| | | pyGameDataMgr = GetPyGameDataManager()
|