#!/usr/bin/python # -*- coding: GBK -*- # ##@package E:/GameSVN/U3DGame/ProjectSServer/ServerPython/CoreServerGroup/GameServer/Script/PyDataManager.py # @todo: # # @author: Alee # @date 2017-8-21 ÏÂÎç02:06:00 # @version 1.0 # # @note: pyÊý¾Ý±£´æuser¿â£¬ÏÈÔÚRegistPySaveDataÖÐ×¢²á£¬±£´æÊ±µ÷ÓöÔÓ¦º¯Êý£¬mongo½ÓÊÕ´¦Àí # #--------------------------------------------------------------------- import GameWorld import PlayerSocial import CrossBillboard import PlayerFamilyStore import PlayerCompensation import PlayerBourse import GameWorldBoss import PlayerSealDemon import PlayerXMZZ import binascii import PyGameData import CrossRealmPK import AuctionHouse import PlayerAssist import GameRecData import PlayerRecData import GameWorldMineArea import PyGameDataStruct import PlayerPackData import PlayerFuncTeam import IpyGameDataPY import PlayerCharm import PlayerLove import CommFunc import time def GetSavePyData(): pyGameDataMgr = GetPyGameDataManager() result = pyGameDataMgr.GetSaveData() 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£¬µ«ÊÇ¿ÉÒÔÕý³£±£´æ£¬´íÎó»áÔÚÏ´ε÷ÓñãÒ˽ӿڲŻᴥ·¢ # ÔÝʱ¸Ä³É×Ö·û´®·µ»Ø£¬ÔÝÎÞ½â¾ö·½°¸ return str(len(result)) + "|" + result def LoadPyGameData(gameBuffer, pos): pyGameDataMgr = GetPyGameDataManager() GameWorld.Log("LoadPyGameData!!id = %s %s"%(id(pyGameDataMgr), len(gameBuffer))) return pyGameDataMgr.LoadGameData(gameBuffer, pos) #ЭÖú¸Ðл±í class PlayerAssistThanksPyManager(object): def __init__(self): self.allAssistThanksList = [] # ËùÓиÐл [tagDBAssistThanks, ...] self.playerThanksDict = {} # Íæ¼Òδ¸ÐлµÄ {playerID:[tagDBAssistThanks, ...], ...} self.assistPlayerThanksDict = {} # ЭÖúÍæ¼Òδ½ÓÊܸÐлµÄЭÖú {assistPlayerID:[tagDBAssistThanks, ...], ...} return # ±£´æÊý¾Ý ´æÊý¾Ý¿âºÍrealtimebackup def GetSaveData(self): PlayerAssist.RemoveOutofdateAssistThanks() savaData = "" cntData = "" cnt = 0 for dbData in self.allAssistThanksList: cnt += 1 PlayerAssist.OnSaveAssistThanksData(dbData) savaData += dbData.getBuffer() GameWorld.Log("Save DBAssistThanks 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 DBAssistThanks count :%s" % cnt) for _ in xrange(cnt): dbData = PyGameDataStruct.tagDBAssistThanks() dbData.clear() pos += dbData.readData(datas, pos, dataslen) PlayerAssist.OnInitAssistThanksData(self, dbData) return pos #ЭÖú±í class PlayerAssistPyManager(object): def __init__(self): self.allAssistDict = {} # ËùÓÐЭÖú {GUID:tagDBAssist, ...} self.playerAssistDict = {} # Íæ¼Ò·¢²¼µÄЭÖú {playerID:[tagDBAssist, ...], ...} self.playerAssistingDict = {} # Íæ¼ÒÕýÔÚЭÖúÖеÄЭÖú£¬Ö»ÄÜ´æÔÚÒ»Ìõ {playerID:tagDBAssist, ...} return # ±£´æÊý¾Ý ´æÊý¾Ý¿âºÍrealtimebackup def GetSaveData(self): savaData = "" cntData = "" cnt = 0 for dbData in self.allAssistDict.values(): if not dbData.IsSaveDB: continue cnt += 1 savaData += dbData.getBuffer() GameWorld.Log("Save DBAssist 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 DBAssist count :%s" % cnt) for _ in xrange(cnt): dbData = PyGameDataStruct.tagDBAssist() dbData.clear() pos += dbData.readData(datas, pos, dataslen) PlayerAssist.OnInitAssistData(dbData, 1) self.allAssistDict[dbData.GUID] = dbData PlayerID = dbData.PlayerID if PlayerID not in self.playerAssistDict: 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 #ÅÄÂô¼Ç¼¹ÜÀí£¬¸ÃÀàÖ»×öÊý¾Ý»º´æ´æÈ¡£¬²»Ð´¹¦ÄÜÂß¼­£¬·ÀÖ¹ÖØ¶Á½Å±¾Ê±¹¦ÄÜÂß¼­½Å±¾²»ÉúЧ class AuctionRecordManager(object): def __init__(self): self.myAuctionItemRecordDict = {} # ÎÒµÄÅÄÆ·¼Ç¼ {playerID:[tagDBAuctionRecord, ...], ...} self.myBidItemRecordDict = {} # ÎҵľºÅļǼ {playerID:[tagDBAuctionRecord, ...], ...} self.familyAuctionItemRecordDict = {} # ÏÉÃËÅÄÆ·¼Ç¼ {familyID:[tagDBAuctionRecord, ...], ...} return # ±£´æÊý¾Ý ´æÊý¾Ý¿âºÍrealtimebackup def GetSaveData(self): 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 len=%s unSaveCnt=%s" % (cnt, len(savaData), unSaveCnt)) return CommFunc.WriteDWORD(cntData, cnt) + savaData # ´ÓÊý¾Ý¿âÔØÈëÊý¾Ý def LoadPyGameData(self, datas, pos, dataslen): cnt, pos = CommFunc.ReadDWORD(datas, pos) GameWorld.Log("Load AuctionRecord count :%s" % cnt) for _ in xrange(cnt): dbData = PyGameDataStruct.tagDBAuctionRecord() dbData.clear() pos += dbData.readData(datas, pos, dataslen) AuctionHouse.AddNewAuctionRecord(dbData) return pos #ÅÄÂô¹Ø×¢¹ÜÀí£¬¸ÃÀàÖ»×öÊý¾Ý»º´æ´æÈ¡£¬²»Ð´¹¦ÄÜÂß¼­£¬·ÀÖ¹ÖØ¶Á½Å±¾Ê±¹¦ÄÜÂß¼­½Å±¾²»ÉúЧ class AuctionAttentionManager(object): def __init__(self): self.playerAttentionDict = {} # Íæ¼Ò¹Ø×¢ÅÄÂôÆ·ID {playerID:tagDBAuctionAttention, ...} return # ±£´æÊý¾Ý ´æÊý¾Ý¿âºÍrealtimebackup def GetSaveData(self): savaData = "" cntData = "" cnt = 0 for dbData in self.playerAttentionDict.values(): cnt += 1 savaData += dbData.getBuffer() GameWorld.Log("Save AuctionAttention 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 AuctionAttention count :%s" % cnt) for _ in xrange(cnt): dbData = PyGameDataStruct.tagDBAuctionAttention() dbData.clear() pos += dbData.readData(datas, pos, dataslen) self.playerAttentionDict[dbData.PlayerID] = dbData AuctionHouse.OnLoadAuctionAttentionDataEx(dbData) return pos def __InitAuctionAttentionAttrEx(self, attentionData): ## ³õʼ»¯ÅÄÂô¹Ø×¢ÊµÀý¸½¼ÓÊôÐÔ setattr(attentionData, "AttentionItemIDList", []) if attentionData.AttentionInfo.startswith("[") and attentionData.AttentionInfo.endswith("]"): attentionData.AttentionItemIDList = eval(attentionData.AttentionInfo) return #ÅÄÂôÎïÆ·Êý¾Ý»º´æ£¬¸ÃÀàÖ»×öÊý¾Ý»º´æ´æÈ¡£¬²»Ð´¹¦ÄÜÂß¼­£¬·ÀÖ¹ÖØ¶Á½Å±¾Ê±¹¦ÄÜÂß¼­½Å±¾²»ÉúЧ class AuctionItemManager(): def __init__(self): self.allAuctionItemDict = {} # ËùÓÐÅÄÆ·×ֵ仺´æ {ItemGUID:tagDBAuctionItem, ...} self.allAuctionItemByEndTimeList = [] # ¸ù¾Ý½áÊøÊ±¼äÅÅÐòµÄËùÓÐÅÄÆ·»º´æ [tagDBAuctionItem, ...] self.worldAuctionItemList = [] # È«·þÅÄÆ·ÁÐ±í»º´æ [tagDBAuctionItem, ...] self.worldAuctionItemQueryDict = {} # È«·þÅÄÆ·¹ýÂ˲éѯ»º´æ£¬Ìí¼ÓÅÄÆ·Ê±ÖØÖà {(job, (itemType, ...), itemClassLV, (itemID, ...)):[tagDBAuctionItem, ...], ...} self.familyAuctionItemDict = {} # ÏÉÃËÅÄÆ·ÁÐ±í»º´æ£¬°üº¬×ªÒƵ½È«·þµÄÏÉÃËÅÄÆ· {familyID:[tagDBAuctionItem, ...], ...} self.sysBuyoutItemByTimeList = [] # ϵͳһ¿Ú¼ÛÅÄÆ·°´Ê±¼äÅÅÐò»º´æ [tagDBAuctionItem, ...] self.nowBiddingAuctionItemDict = {} # Íæ¼Òµ±Ç°ÊÇ×î¸ß¾º¼ÛµÄÅÄÆ·£¬º¬ËùÓÐÅÄÆ· {playerID:[tagDBAuctionItem, ...], ...} self.hisBiddingAuctionItemDict = {} # Íæ¼ÒÔø¾­²ÎÓë¹ý¾º¼ÛµÄÅÄÆ·£¬º¬ËùÓÐÅÄÆ· {playerID:[tagDBAuctionItem, ...], ...} self.myAuctionItemDict = {} # Íæ¼ÒÅÄÂôÖеÄÎïÆ· £¬²»°üº¬ÏÉÃËÅÄÆ·£¬ÓÉǰ¶Ë½çÃæ×ÔÐÐÕûºÏÊý¾Ý {playerID:[tagDBAuctionItem, ...], ...} self.myAttentionItemDict = {} # Íæ¼Ò¹Ø×¢ÖеÄÎïÆ· £¬²»°üº¬ÏÉÃËÅÄÆ·£¬ÓÉǰ¶Ë½çÃæ×ÔÐÐÕûºÏÊý¾Ý£¬Ö»±£´æÔÚÏßµÄÍæ¼Ò£¬ÀëÏßÇå³ý£¬ÉÏÏß²»Í¬²½£¬ÓÉǰ¶Ë²éѯ {playerID:[tagDBAuctionItem, ...], ...} self.worldAuctionItemCountDict = {} # È«·þÅÄÆ·ÎïÆ·ID¶ÔÓ¦¼þÊýͳ¼Æ {itemID:¼þÊý, ...} self.worldAuctionJobEquipCountDict = {} # È«·þÅÄÆ·Ö°Òµ×°±¸¶ÔÓ¦¼þÊýͳ¼Æ {(Ö°Òµ,½×,ÑÕÉ«,ÊÇ·ñÌ××°):¼þÊý, ...} self.worldAuctionReplenishTimeDict = {} # È«·þÅÄÆ·¶¯Ì¬ÉϼÜÀúÊ·´¦Àíʱ¼ä {cfgID:time, ...} return # ±£´æÊý¾Ý ´æÊý¾Ý¿âºÍrealtimebackup def GetSaveData(self): savaData = "" cntData = "" cnt = 0 for dbData in self.allAuctionItemDict.values(): cnt += 1 savaData += dbData.getBuffer() GameWorld.Log("Save AuctionItem 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 AuctionItem count :%s" % cnt) for _ in xrange(cnt): dbData = PyGameDataStruct.tagDBAuctionItem() dbData.clear() pos += dbData.readData(datas, pos, dataslen) self.allAuctionItemDict[dbData.ItemGUID] = dbData AuctionHouse.OnLoadAuctionItemDataEx(dbData) AuctionHouse.OnLoadAuctionItemDataOK() return pos # ¸öÈËÉç½»Ïà¹Ø±í # ºÃÓÑ±í£¬³ðÈË±í£¬×î½üÁªÏµÈË£¬ºÚÃûµ¥£¬ËÄÕÅ±í¹«ÓõÄÉç½»ÐÅÏ¢±í class PyGameDataManager(object): def __init__(self): self.DBPlayerPackDataManager = PlayerPackData.DBPlayerPackDataManager() self.DBGameRecDataManager = GameRecData.DBGameRecDataManager() self.DBPyFuncTeamManager = PlayerFuncTeam.DBPyFuncTeamManager() self.DBPyFuncTeamMemManager = PlayerFuncTeam.DBPyFuncTeamMemManager() self.DBPlayerRecDataManager = PlayerRecData.DBPlayerRecDataManager() self.DBPyMineAreaAwardManager = GameWorldMineArea.DBPyMineAreaAwardManager() self.DBPyMineAreaRecordManager = GameWorldMineArea.DBPyMineAreaRecordManager() self.DBPyMineAreaItemManager = GameWorldMineArea.DBPyMineAreaItemManager() self.DBPyCoupleManager = PlayerLove.DBPyCoupleManager() self.DBPyUnNotifyLoveGiftRecManager = PlayerLove.DBPyUnNotifyLoveGiftRecManager() self.DBPyCharmValueRecManager = PlayerCharm.DBPyCharmValueRecManager() self.IntimacyManager = PlayerSocial.IntimacyManager() self.CrossPersonalCompensationManager = PlayerCompensation.CrossPersonalCompensationManager() self.CrossBillboardManager = CrossBillboard.CrossBillboardManager() self.PlayerAssistThanksPyManager = PlayerAssistThanksPyManager() self.PlayerAssistPyManager = PlayerAssistPyManager() self.PlayerViewCachePyManager = PlayerViewCachePyManager() self.AuctionAttentionManager = AuctionAttentionManager() self.AuctionRecordManager = AuctionRecordManager() self.AuctionItemManager = AuctionItemManager() self.crossPKUnNotifyOverInfo = CrossRealmPK.CrossPKUnNotifyOverInfoManager() self.crossPKBillboard = CrossRealmPK.CrossPKBillboardManager() self.XMZZManager = PlayerXMZZ.XMZZManager() self.sealDemonManager = PlayerSealDemon.SealDemonManager() self.bossAttentionManager = GameWorldBoss.BossAttentionManager() self.bourseItemLastPriceManager = PlayerBourse.BourseItemLastPriceManager() self.bourseRecordManager = PlayerBourse.BourseRecordManager() self.familyStoreItemManager = PlayerFamilyStore.FamilyStoreItemManager() self.friendManager = PlayerSocial.FriendManager() self.enemyManager = PlayerSocial.EnemyManager() self.contactsManager = PlayerSocial.ContactsManager() self.blacklistManager = PlayerSocial.BlacklistManager() self.socialInfoManager = PlayerSocial.SocialInfoManager() return def GetSaveData(self): buff = "" buff += self.DBPlayerPackDataManager.GetSaveData() buff += self.DBGameRecDataManager.GetSaveData() buff += self.DBPyFuncTeamManager.GetSaveData() buff += self.DBPyFuncTeamMemManager.GetSaveData() buff += self.DBPlayerRecDataManager.GetSaveData() buff += self.DBPyMineAreaAwardManager.GetSaveData() buff += self.DBPyMineAreaRecordManager.GetSaveData() buff += self.DBPyMineAreaItemManager.GetSaveData() buff += self.DBPyCoupleManager.GetSaveData() buff += self.DBPyUnNotifyLoveGiftRecManager.GetSaveData() buff += self.DBPyCharmValueRecManager.GetSaveData() buff += self.IntimacyManager.GetSaveData() buff += self.CrossPersonalCompensationManager.GetSaveData() buff += self.CrossBillboardManager.GetSaveData() buff += self.PlayerAssistThanksPyManager.GetSaveData() buff += self.PlayerAssistPyManager.GetSaveData() buff += self.PlayerViewCachePyManager.GetSaveData() buff += self.AuctionAttentionManager.GetSaveData() buff += self.AuctionRecordManager.GetSaveData() buff += self.AuctionItemManager.GetSaveData() buff += self.crossPKUnNotifyOverInfo.GetSaveData() buff += self.crossPKBillboard.GetSaveData() buff += self.XMZZManager.GetSaveData() buff += self.sealDemonManager.GetSaveData() buff += self.bossAttentionManager.GetSaveData() buff += self.bourseItemLastPriceManager.GetSaveData() buff += self.bourseRecordManager.GetSaveData() buff += self.familyStoreItemManager.GetSaveData() buff += self.friendManager.GetSaveData() buff += self.enemyManager.GetSaveData() buff += self.contactsManager.GetSaveData() buff += self.blacklistManager.GetSaveData() buff += self.socialInfoManager.GetSaveData() 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)) pos = self.DBPlayerRecDataManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyMineAreaAwardManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyMineAreaRecordManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyMineAreaItemManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyCoupleManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyUnNotifyLoveGiftRecManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.DBPyCharmValueRecManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.IntimacyManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) 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)) pos = self.AuctionAttentionManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.AuctionRecordManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.AuctionItemManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.crossPKUnNotifyOverInfo.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.crossPKBillboard.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.XMZZManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.sealDemonManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.bossAttentionManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.bourseItemLastPriceManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.bourseRecordManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.familyStoreItemManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.friendManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.enemyManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.contactsManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.blacklistManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) pos = self.socialInfoManager.LoadPyGameData(gameBuffer, pos, len(gameBuffer)) return pos def GetPyGameDataManager(): ## pyÊý¾Ý¿â±íÊý¾Ý¹ÜÀíÆ÷ pyGameDataMgr = PyGameData.g_pyGameDataManager if not pyGameDataMgr: pyGameDataMgr = PyGameDataManager() PyGameData.g_pyGameDataManager = pyGameDataMgr return pyGameDataMgr def GetCrossPersonalCompensationManager(): # ¿ç·þ¸öÈ˲¹³¥Óʼþ¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.CrossPersonalCompensationManager def GetCrossBillboardManager(): # ¿ç·þÅÅÐаñ¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.CrossBillboardManager def GetPlayerAssistThanksPyManager(): # ЭÖú¸Ðл±í pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.PlayerAssistThanksPyManager def GetPlayerAssistPyManager(): # ЭÖú±í pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.PlayerAssistPyManager def GetPlayerViewCachePyManager(): # ÅÄÂô¼Ç¼±í pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.PlayerViewCachePyManager def GetAuctionItemManager(): ## ÅÄÂôÎïÆ·»º´æÊý¾Ý¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.AuctionItemManager def GetAuctionAttentionManager(): # ÅÄÂô¼Ç¼±í pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.AuctionAttentionManager def GetAuctionRecordManager(): # ÅÄÂô¼Ç¼±í pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.AuctionRecordManager # ¿ç·þ¾º¼¼³¡Î´Í¨ÖªÍæ¼ÒµÄ±ÈÈü½á¹û def GetCrossPKUnNotifyOverInfoManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.crossPKUnNotifyOverInfo # ¿ç·þ¾º¼¼³¡ÅÅÐаñ¹ÜÀí def GetCrossPKBillboardManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.crossPKBillboard # ÏÉħ֮Õù¹ÜÀí def GetXMZZManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.XMZZManager # ·âħ̳½á¹û¹ÜÀí def GetSealDemonRecordManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.sealDemonManager # Boss¹Ø×¢¼Ç¼¹ÜÀí def GetBossAttentionManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.bossAttentionManager # ½»Ò×ËùÎïÆ·×î½ü³É½»µ¥¼Û¹ÜÀí def GetBourseItemLastPriceManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.bourseItemLastPriceManager # ½»Ò×Ëù¼Ç¼¹ÜÀí def GetBourseRecordManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.bourseRecordManager # Õ½Ã˲ֿâÎïÆ·¹ÜÀí def GetFamilyStoreItemManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.familyStoreItemManager def GetDBGameRecDataManager(): # ͨÓüǼ±íйÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBGameRecDataManager def GetDBPlayerPackDataManager(): # Íæ¼Ò´ò°üÊý¾Ý¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPlayerPackDataManager def GetDBPyFuncTeamManager(): # ¹¦ÄܶÓÎé¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPyFuncTeamManager #def GetDBPyFuncTeamMemManager(): # # ¹¦ÄܶÓÎé³ÉÔ±¹ÜÀí # pyGameDataMgr = GetPyGameDataManager() # return pyGameDataMgr.DBPyFuncTeamMemManager def GetDBPlayerRecDataManager(): # Íæ¼Ò¼Ç¼¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPlayerRecDataManager def GetDBPyMineAreaAwardManager(): # ¸£µØ½±Àø½áËã¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPyMineAreaAwardManager def GetDBPyMineAreaRecordManager(): # ¸£µØ¿óÎï¼Ç¼¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPyMineAreaRecordManager def GetDBPyMineAreaItemManager(): # ¸£µØ¿óÎï¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPyMineAreaItemManager def GetDBPyCoupleManager(): # °é¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPyCoupleManager def GetDBPyUnNotifyLoveGiftRecManager(): # δ֪ͨµÄÔùËÍÀñÎï¼Ç¼ pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPyUnNotifyLoveGiftRecManager def GetDBPyCharmValueRecManager(): # ÷ÈÁ¦¹ÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.DBPyCharmValueRecManager def GetIntimacyManager(): # Ç×ÃܹÜÀí pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.IntimacyManager # ºÃÓÑϵͳ def GetFriendManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.friendManager # Éç½»ÐÅÏ¢¹ÜÀí def GetPersonalSocialManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.socialInfoManager # ³ðÈËϵͳ def GetEnemyManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.enemyManager # ×î½üÁªÏµÈËϵͳ def GetContactsManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.contactsManager # ºÚÃûµ¥ÏµÍ³ def GetBlacklistManager(): pyGameDataMgr = GetPyGameDataManager() return pyGameDataMgr.blacklistManager