#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
##@package E:/GameSVN/U3DGame/ProjectSServer/ServerPython/CoreServerGroup/GameServer/Script/PyGameData.py
|
# @todo:
|
#
|
# @author: Alee
|
# @date 2017-9-4 ÏÂÎç08:31:29
|
# @version 1.0
|
#
|
# @note: µ¥¶À±£´æpyÊý¾Ý²»ÖضÁÎļþ£¬´ËÎļþ²»ÒªimportÆäËûÄ£¿é£¬±ÜÃâÖØ¶ÁÓÐÎÊÌâ
|
#
|
#---------------------------------------------------------------------
|
|
g_dbPlayerIDMap = {} # DBPlayerÍæ¼Ò±íIDÓ³Éä¹ØÏµ {playerID:accID, ...}
|
|
g_allMapServerInitOK = False
|
|
g_noPlayerLoginWarningMailState = 0 # ·þÎñÆ÷Æô¶¯ºóÎÞÍæ¼ÒµÇ¼Ԥ¾¯Óʼþ״̬£» 0-δ´¦Àí£»1-ÒÑ·¢ËÍ£»2-ÓÐÍæ¼ÒµÇ¼ÁË
|
|
g_pyGameDataManager = None
|
|
g_onlinePlayerMgr = None # Íæ¼ÒÔÚÏß¹ÜÀí
|
|
g_billboardMgrMgr = None # ±¾·þ°ñµ¥¹ÜÀí
|
|
g_commMapLineInfo = {} # µØÍ¼ÏßÂ·ÕæÊµµØÍ¼ÐéÄâÏßÐÅÏ¢ {(dataMapID, lineID):(realMapID, copyMapID), ...}
|
g_commMapLineRouteDict = {} # µØÍ¼Ïß··ÓÉ·þÎñË÷ÒýÐÅÏ¢ {(dataMapID, lineID):routeServerIndex, ...}
|
g_commMapLinePlayerCountDict = {} # ³£¹æµØÍ¼·ÖÏßÈËÊý {dataMapID:{lineID:ÈËÊý, ...}}
|
g_needSyncCommMapLinePlayerCount = False # ³£¹æµØÍ¼·ÖÏßÈËÊýÊÇ·ñÓбä¸üÐèҪ֪ͨ
|
|
#---------------------------- ×é¶Óϵͳ»º´æ ------------------------------
|
g_sceneTeamIDDict = {} # ³¡¾°¶ÓÎéID×Öµä {³¡¾°µØÍ¼ID:[teamID, teamID, ...], ...}
|
g_scenePlayerIDDict = {} # ³¡¾°Íæ¼ÒID×Öµä {³¡¾°µØÍ¼ID:[playerID, playerID, ...], ...}
|
## ÓÉÓڲ߻®ÒªÇó¿Í»§¶ËÇëÇóµÃµ½µÄÁбíÐèÒªÊÇʵʱµÄ£¬²¢ÇÒÇëÇóƵÂʱȽϸߣ¬¹ÊÕâÀï×ö¸ö°æ±¾¿ØÖÆ
|
#g_sceneTeamServerVersion = {} # ³¡¾°¶ÓÎé±ä¸ü°æ±¾tick {mapID:tick, ...}
|
#g_sceneTeamQueryVersion = {} # Íæ¼Ò³¡¾°¶ÓÎé²éѯ°æ±¾tick {playerID:{mapID:tick, ...}, ...}
|
g_tagMapTeamDict = {} # Ä¿±ê¶ÓÎé {tagMapID:[teamID, teamID, ...], ...}
|
g_tagMapTeamTimeDict = {} # ¶ÓÎé×îºóÒ»´Î¸üÐÂÄ¿±ê¶ÓÎéµÄʱ¼ä {teamID:[mapID, time], ...}
|
g_matchingTeamDict = {} # Æ¥ÅäÖеĶÓÎ飬ֻ»á¼Ç¼¸±±¾Æ¥Åä {(tagMapID, tagMapEx):[teamID, teamID, ...], ...}
|
g_matchingPlayerDict = {} # Æ¥ÅäÖеÄÍæ¼Ò£¬Ö»»á¼Ç¼¸±±¾Æ¥Åä {(tagMapID, tagMapEx):[playerID, playerID, ...], ...}
|
|
g_teamFBEnterAskDict = {} # ѯÎʿɷñ½øÈë×é¶Ó¸±±¾µÄ¶ÓÎéÐÅÏ¢ {teamID:[askMapID, askMapEx, {playerID:[ÑéÖ¤½á¹û, ½á¹ûÌáʾ²ÎÊýÐÅÏ¢], ...}], ...}
|
#×¼±¸×´Ì¬: 0-δ׼±¸£¬1-×¼±¸£¬2-¾Ü¾ø£¬3-µôÏߣ¨´ËÇé¿öÔÝʱ²»×ö´¦Àí£¬µôÏߵϰֱ½Ó°Ñ¸ÃÍæ¼Ò´Ó×¼±¸¶ÓÁÐÀïÒÆ³ý£¬µ±×ö´Ë¶ÓÔ±²»´æÔÚ´¦Àí£©
|
g_prepareTeamDict = {} # ×¼±¸ÖеĶÓÎéÐÅÏ¢ {teamID:[askMapID, askMapEx, {playerID:×¼±¸×´Ì¬, ...}], ...}
|
|
g_queryTeamMemFuncDataDict = {} # ²éѯ¶ÓÔ±¹¦ÄÜÊý¾Ý {(queryFuncType, teamID, srcPlayerID):[[queryID, ...], {queryID:ret, ...}], ...}
|
|
g_tjgKickPlayerTeamDict = {} # ÍÑ»ú¹ÒÍæ¼Ò±»Ìß¶ÓÎéIDÁбí {ÍÑ»úplayerID:[ÌßËûµÄteamID, ...], ...}
|
g_countdownLeaveTeamDict = {} # µ¹¼ÆÊ±À뿪¶ÓÎéµÄÍæ¼ÒÐÅÏ¢ {playerID:[teamID, leaveServerTick], ...}
|
#---------------------------------------------------------------------
|
|
#Íæ¼ÒÉ罻Ȧ´æÔÚµ¥ÏòµÄÇé¿ö£¬¼Ç¼±»É罻ȺÌå
|
#ÀýÈçAÍæ¼Ò±»BÍæ¼Ò¼ÓÈëºÚÃûµ¥£¬µ«ÊÇAÍæ¼Ò²»¸ÐÖª£¬µ±AÍæ¼ÒÉý¼¶Ê±ÒªÍ¨ÖªBÍæ¼Ò
|
#{AÍæ¼ÒID£º{BÍæ¼ÒID£º¼Ç¼´ÎÊý}}
|
g_BeSocialList = {}
|
|
#ÇëÇóÁбí Íæ¼ÒµÄAddRequest·ÏÆú
|
g_playerRequests = {}
|
|
g_fightPowerChangeFamilyIDList = [] #ÏÉÃ˳ÉÔ±Õ½Á¦Óбä¸üµÄÏÉÃËID [familyID, ...]
|
g_sortFamilyIDList = [] #ÏÉÃËÅÅÐò˳Ðò [familyID, ...]
|
g_familyWarFightingIDList = [] # ÏÉÃËÁªÈüÖÐÕýÔÚÕ½¶·ÖеÄÏÉÃËIDÁбí [familyID, ...]
|
g_familyWarFamilyIDList = [] # ÏÉÃËÁªÈü²ÎÈüÏÉÃËIDÁбí [familyID, ...]
|
g_familyWarMemDict = {} # ÏÉÃËÁªÈü²ÎÈüÈËÔ±Ãûµ¥ {playerID:memRecData, ...}
|
|
#bossË¢ÐÂÅÅÐòÁбí
|
g_sortBOSSRefreshList = []
|
g_swrhJoinRecord = [] #ÊØ»¤È˻ʼÒ×å½ñÈղμӼǼ(ÒÑÕý³£½áËã)[familyID]
|
|
g_bossShuntPlayerInfo = {} # boss·ÖÁ÷Íæ¼ÒÐÅÏ¢{(mapID, lineID):{playerID:[bossID, teamID, relatedTick], ...}, ...}
|
g_bossShuntLineState = {} # boss·ÖÁ÷Ïß·¶ÔÓ¦boss״̬ {bossID:{lineID:isAlive, ...}, ...}
|
g_bossShuntStateChangeBoss = [] # boss·ÖÁ÷BossÏß·״̬Óбä¸üµÄbossÁбí
|
|
g_familyOwnerBossInfo = {} # µØÍ¼Í¬²½ÉÏÀ´µÄÏÉÃ˹éÊôbossÐÅÏ¢ {bossID:[curHp, maxHP, ownerFamilyID, ownerFamilyName], ...}
|
g_horsePetRobBossHurtPlayerIDInfo = {} # Æï³èÕù¶áÓжÔbossÉËѪ¹ýµÄÍæ¼ÒIDÐÅÏ¢ {bossID:{familyID:[playerID, ...], ...}, ...}
|
g_familyKillHorsePetRobBossCntDict = {} # Æï³èÕù¶áÏÉÃËÒÑ»÷ɱbossÊý {familyID:»÷ɱÊý, ...}
|
|
g_todayPlayerLVDict = {} #½ñÈÕÍæ¼ÒµÈ¼¶×Öµä {playerID:lv,..}
|
g_yesterdayPlayerLVDict = {} #×òÈÕÍæ¼ÒµÈ¼¶×Öµä{playerID:lv,..}
|
g_onedayJobPlayerLoginoffTimeDict = {} #½ü24СʱµÇ¼/ÀëÏßµÄÍæ¼ÒÖ°ÒµÊý {Ö°Òµ:{playerID:loginoffTime, ...}}
|
|
g_ctgOfflinePlayerInfo = {} # {playerID:[[ctgInfo], ...], ...} # ÀëÏßÍæ¼ÒCTGÐÅÏ¢»º´æ
|
g_gmtOfflinePlayerInfo = {} # {(queryType, playerFind):[gmtInfo, ...], ...} # ÀëÏßÍæ¼ÒGMTÐÅÏ¢»º´æ
|
|
g_questionIDHistory = {}#³ö¹ýµÄÌâ¼Ç¼ {familyid:[³ö¹ýµÄÌâid,..]}
|
g_familyAnswerDict = {} #ÏÉÃË´ðÌâÊýÁ¿ {familyid:[´ðÌâÊýÁ¿,tick],..}
|
g_familyPartyTopInfo = [] #ÏÉÃËÑç»á´ðÌâÍõ [playerID,Ãû×Ö]
|
g_partyheroAnswerDict = {} #ÏÉÃËÑç»áÍæ¼Ò´ð¶ÔÌâÄ¿ÊýÁ¿ {playerid:´ðÌâÊýÁ¿,..}
|
g_familyAnswerPlayerIDDict = {} #ÏÉÃËÑç»áÍæ¼Ò²ÎÓë´ðÌâÊýÁ¿ {playerID:[ÌâÄ¿ID, ...], ...}
|
g_chuangongPlayerDict = {} #´«¹¦Íæ¼ÒÐÅÏ¢ {playerID:[Ä¿±êÍæ¼ÒID, ...], ...}
|
g_chuangongTagPlayerDict = {} #ÐÖú´«¹¦Íæ¼ÒÐÅÏ¢ {playerID:ÐÖúÍæ¼ÒID, ...}
|
|
g_redPacketMgr = None # RedPacketMgr
|
|
g_bourseItemTradingTimeDict = {} # ÎïÆ·¿ªÊ¼½»Ò×µÄʱ¼ä¼Ç¼ {guid:tick}
|
|
g_fbHelpBattleCheckInPlayerDict = {} # ¸±±¾ÖúÕ½Íæ¼ÒµÇ¼Ç»º´æ {playerID:HelpBattlePlayer, ...}
|
|
g_marryReqInfo = {} # µ±Ç°½øÐÐÖеÄÇóÇ×ÐÅÏ¢ {ÇëÇóÍæ¼ÒID:MarryReq, ...}
|
g_marryCandyInfo = {} # ½øÐÐÖеÄϲÌÇÐÅÏ¢ {(playerIDA, playerIDB):MarryCandy, ...}
|
g_marryCandySortList = [] # °´½áËãʱ¼äÅÅÐòºóµÄϲÌÇÁÐ±í£¬ÉýÐò
|
g_marryBreakInfo = {} # ½øÐÐÖеÄÀë»éÐÅÏ¢{(playerIDA, playerIDB):MarryCandy, ...}
|
g_marryBreakSortList = [] # °´Ìύʱ¼äÅÅÐòºóµÄϲÌÇÁÐ±í£¬ÉýÐò
|
|
g_arenaPlayerBattleRecDict = {} # ±¾·þ¾º¼¼³¡Íæ¼ÒÌôÕ½¼Ç¼»º´æ {playerID:[ArenaBattleRec, ...], ...}
|
g_arenaPlayerMatchDict = {} # ±¾·þ¾º¼¼³¡Íæ¼ÒÆ¥Åä¼Ç¼»º´æ {playerID:[ArenaMatchPlayer, ...], ...}
|
g_arenaRobotLVList = [] # ±¾·þ¾º¼¼³¡»úÆ÷È˵ȼ¶Áбí
|
|
g_autoViceleaderDict = {}#×Ô¶¯°²ÅŸ±ÃËÖ÷µÄÍæ¼Ò¼Ç¼{familyID:[]}
|
g_forbidAutoViceleaderFamily = [] #½ûÖ¹×Ô¶¯°²ÅŸ±ÃËÖ÷µÄÏÉÃË[familyID,..]
|
|
g_crossZoneName = "" # ¿ç·þ·ÖÇøÃû
|
|
g_crossServerTimeInfo = [0, 0, 0] # ¿ç·þʱ¼äÐÅÏ¢ [crossServerTime, curServerTime, syncMapTime]
|
|
g_luckyCloudBuyNumDict = {} # ÐÒÔËÔÆ¹º¹ºÂò¼Ç¼ {zoneID:[LuckyCloudBuyNum, ...], ...}
|
g_luckyCloudBuyLotteryDict = {} # ÐÒÔËÔÆ¹º¿ª½±¼Ç¼ {zoneID:[LuckyCloudBuyLottery, ...], ...}
|
g_unNotifyCloudBuyNumDict = {} # δ֪ͨµÄ¿ç·þÔÆ¹º¹ºÂòÐÅÏ¢ {playerID:msgData, ...}
|
g_luckyCloudBuyRemainCountDict = {} # ÐÒÔËÔÆ¹ºÊ£Ó๺Âò·ÝÊý {zoneID:remainCount, ...} - ×Ó·þÓÃ
|
|
g_crossActInfoDict = None # ¿ç·þÔËÓª»î¶¯ÐÅÏ¢ {actName:{actInfoDict}, ...}
|
|
g_playerDelMailGUIDDict = {} # Íæ¼ÒÓʼþGUIDÐÅÏ¢ {playerID:[GUID, ...], ...} ½ö´¥·¢É¾³ý²ÅÓÐÊý¾Ý£¬ÇÒ²¢²»Ò»¶¨ËùÓÐGUID¶¼´æÔÚ£¬½ö×÷Ϊɾ³ýÓʼþʱÓõ½
|
g_crossMailPlayerDict = {} # Óпç·þÓʼþµÄÍæ¼ÒIDÐÅÏ¢ {playerID:tick, ...}
|
|
g_crossPlayerViewCache = {} # ²é¿´¿ç·þÍæ¼ÒÐÅÏ¢ {playerID:[cacheInfo, updTick], ...}
|
|
g_crossPKPlayerDict = {} # ¿ç·þPKÍæ¼Ò×Öµä {playerID:PKPlayer, ...}
|
g_crossPKZoneMatchPlayerDict = {} # ¿ç·þPKÆ¥ÅäÖеÄÍæ¼Ò×Öµä {zoneID:[playerID, ...], ...}
|
g_crossPKZoneMatchRobotPlayerDict = {} # ¿ç·þPKÆ¥Åä»úÆ÷È˵ÄÍæ¼Ò×Öµä {playerID:PKPlayer, ...}
|
g_crossPKRoomDict = {} # ¿ç·þPK·¿¼ä×Öµä {roomID:PKRoom, ...}
|
g_crossPKRoomID = 0 # ¿ç·þPKµ±Ç°ÒѾ´´½¨µ½µÄ·¿¼äID£¬×ÔÔö´´½¨
|
g_crossPKTodayPKRecordInfo = {} # ¿ç·þPKÍæ¼Ò½ñÈÕPK¼Ç¼ {playerID:[[tagPlayerID, winnerID], ...]}
|
g_crossPKBesureMatchRobotInfo = {} # ¿ç·þPKÍæ¼Ò±Ø¶¨Æ¥Åä»úÆ÷ÈË´ÎÊýÐÅÏ¢ {playerID:besureMatchRobotCount, ...}
|
|
g_crossPKUnNotifyOverInfo = {} # ¿ç·þPKδͬ²½µÄ½áËãÐÅÏ¢ {player:[overInfo], ...}
|
|
g_unNotifyKillCrossBossDict = {} # δ֪ͨ³É¹¦µÄ»÷ɱ¿ç·þboss {playerID:[killInfo], ...}£¬Ö÷ҪΪÁË·ÀË¢£¨»÷ɱÂíÉÏÏÂÏßµ¼ÖÂ֪ͨ²»µ½£¬È»ºóÉÏÏß¼ñ¶«Î÷£©
|
|
g_crossMapNPCInfo = {} # ¿ç·þµØÍ¼NPCÐÅÏ¢ {mapID:[tick, npcInfo], ...}
|
|
g_crossSetPlayerAttr = {} # ¿ç·þÍæ¼Ò¸üÐÂÍæ¼ÒÊý¾Ý {playerID:[[setType, setDict], ...], ...}
|
|
g_crossMapCopyMapCountDict = {} # ¿ç·þµØÍ¼¶¯Ì¬·ÖÅäÐéÄâÏß·ÌõÊýÐÅÏ¢ {mapID:copyMapCount, ...}
|
g_crossDynamicLineInfo = {} # ¿ç·þ¶¯Ì¬Ïß·ÐÅÏ¢ {dataMapID:{(zoneID, funcLineID):[CrossFuncLineInfo, CrossFuncLineInfo, ...], ...}, ...}
|
g_crossDynamicLineCopyMapInfo = {} # ¿ç·þ¶¯Ì¬Ïß·ÐéÄâÏß·ÐÅÏ¢ {(mapID, copyMapID):CrossCopyMapInfo, ...}
|
|
g_crossFBFuncLinePlayerCountInfo = {} # ¿ç·þ¸±±¾¹¦ÄÜÏß·ÈËÊýÐÅÏ¢£¬±¾·þ»º´æ {mapID:{funcLineID:[playerCount], ...}, ...}
|
|
g_unNotifyPlayerCrossMsgDict = {} # Î´Í¨ÖªÍæ¼ÒµÄ¿ç·þÃüÁî {playerID:{msgType:[msgInfo], ...}, ...}
|
|
g_crossBattlefieldBuyInfo = {} # ¿ç·þÕ½³¡¹ºÂò¼Ç¼ {zoneID:{hmNum:{playerID:CrossBattlefieldBuy, ...}, ...}, ...}
|
g_crossBattlefieldSysCallBuyList = [] # ¿ç·þÕ½³¡ÏµÍ³³¡´Î¹ºÂòÕÙ¼¯Íæ¼ÒIDÁбí [playerID, ...]
|
g_openDateTime = None # ±¾³¡´Î¿ªÆôµÄʱ¼ä
|
g_overPlayerIDList = [] # ±¾³¡´ÎÒѾ½áËãµÄÍæ¼ÒIDÁбí
|
|
g_championshipMgr = None # ¿ç·þÅÅλÕù°ÔÈü¹ÜÀí
|
|
g_crossActAllRechargeInfo = {} # ¿ç·þÈ«Ãñ³äÖµÐÅÏ¢£¬±¾·þÓà {zoneID:{playerID:×ܳäÖµ, ...}, ...}
|
g_crossYaomoBossHurtInfo = {} # ¿ç·þÑýħbossÉ˺¦ÐÅÏ¢£¬±¾·þÓà {playerID:hurtTotal, ...}
|
|
g_requestPlayerPackDataInfo = {} # ÇëÇóÍæ¼Ò´ò°üÊý¾Ý»ã×ÜÐÅÏ¢ {requestID:{"msgInfo":msgInfo, "packDataDict":packDataDict}, ...}
|
|
g_familyTalkCache = {} #{familyID:[[time,content,extras],..]}
|
g_worldTalkCache = [] #[[time,name, playerID, content,extras],..]
|
|
g_xiangongCanLikeTimeDict = {} # ±¾·þÍæ¼Ò¶ÔÓ¦Ïɹ¬¿ÉµãÔÞ×îÐÂʱ¼äÐÅÏ¢ {playerID:{Ïɹ¬ID:addTime, ...}, ...}
|
|
g_unTJLogoffTime = {} #·ÇÍÑ»úÀëÏßʱ¼ä {playerID:time, ...}
|