#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package PyGameData  
 | 
#  
 | 
# @todo:PyÊý¾Ý»º´æ  
 | 
# @author hxp  
 | 
# @date 2017-09-05  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: µ¥¶À±£´æpyÊý¾Ý²»ÖضÁÎļþ£¬´ËÎļþ²»ÒªimportÆäËûÄ£¿é£¬±ÜÃâÖØ¶ÁÓÐÎÊÌâ  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#"""Version = 2017-09-05 21:30"""  
 | 
#-------------------------------------------------------------------------------  
 | 
g_commMapLinePlayerCountDict = {} # ³£¹æµØÍ¼·ÖÏßÈËÊý {mapID:{lineID:ÈËÊý, ...}}  
 | 
g_needRefreshMapServerState = True # ³£¹æµØÍ¼·ÖÏßÈËÊýÊÇ·ñÓбä¸üÐèҪ֪ͨ  
 | 
g_mapLastProcess_Minute = -1 # µØÍ¼Éϴδ¦ÀíµÄ·ÖÖÓ  
 | 
  
 | 
InitPyItem = False # ÊÇ·ñ¼ÓÔØ¹ýÎïÆ·±íËùÐèÒªµÄPyÊý¾Ý, Ã¿ÕŵØÍ¼Ö»ÔÚÆô¶¯Ê±Ö´ÐÐÒ»´Î  
 | 
DailyUseCountLimitItemIDList = [] # Ã¿ÈÕÓÐʹÓøöÊýÏÞÖÆµÄÎïÆ·IDÁÐ±í  
 | 
  
 | 
g_refreshAttrBillboardFunc = [] # Ë¢ÊôÐÔºóÐèÒª´¥·¢µÄͬ²½ÅÅÐаñº¯ÊýÁÐ±í  
 | 
  
 | 
g_filterEquipDict = {} # °´×°±¸Ìõ¼þ¹ýÂ˵Ä×°±¸ID,²»·ÖÖ°Òµ {"classLV_color_star":{(itemJob,itemPlace):itemID, ...}, ...}  
 | 
  
 | 
g_teamPlayerHurtValue = {} # ¶ÓÎéÍæ¼Ò¶ÔNPCÉ˺¦Êä³öÁ¿ {(lineID, objID, npcID):{(teamID, playerID):hurtValue, ...}, }  
 | 
g_teamPlayerDict = {} # µØÍ¼¶ÓÎé¶ÔÓ¦Íæ¼ÒIDÁÐ±í£¬º¬ÀëÏßÍæ¼Ò {teamID:[playerID, ...], ...}  
 | 
  
 | 
g_disconnectPlayer = {} # ÔÚ±¾µØÍ¼ÀëÏßµÄÍæ¼ÒÐÅÏ¢ {playerID:[tick, posX, posY], ...}  
 | 
g_lastExitFBType = {} # ×îºóÒ»¸öÀ뿪¸±±¾ÐÅÏ¢ {fbIndex:[exitType, tick], ...} exitType: 1-µôÏߣ¬2-Ö÷¶¯Í˳ö  
 | 
  
 | 
g_sgzztopPlayerName = '' #ÉϹÅÕ½³¡»ý·ÖÍõÃû×Ö  
 | 
  
 | 
g_sealDemonPlayerHurtDict = {} #·âÄ§Ì³Íæ¼ÒÉ˺¦ÅÅÐÐÐÅÏ¢  
 | 
  
 | 
FBEnterTimeLimiitMapID = [] # ¸±±¾¿ªÆôÓÐʱ¼äÏÞÖÆµÄ¸±±¾ID£¬ÓÉGameServerͬ²½µÃµ½  
 | 
  
 | 
FBOpenTimeRecord = {} #ÏÞʱ¸±±¾¿ªÆôʱ¼ä¼Ç¼  
 | 
  
 | 
VSFamilyInfo = [] # ÏÉÃËÁªÈü¿ªÆôµÄ¸±±¾ÐÅÏ¢ [ÊÇ·ñ×îÖÕ¾öÈü³¡´Î, roundNum, groupID, [familyIDA, failyIDB], [familyNameA, familyNameB], [familyRankA, familyRankB]]  
 | 
g_familyBossOpenCountDict = {} # ÏÉÃËboss¿ªÆô´ÎÊý {familyID:´ÎÊý, ...}  
 | 
g_familyBossPlayer = {} # ÏÉÃËboss²ÎÓëÍæ¼Ò {familyID:[playerID, ...], ...}  
 | 
g_familyKillHorsePetRobBossCntDict = {} # Æï³èÕù¶áÏÉÃËÒÑ»÷ɱbossÊý {familyID:»÷ɱÊý, ...}  
 | 
  
 | 
g_PassiveEffManager = None  # ±»¶¯¼¼ÄÜ£¨Ð§¹û£©µ¥Àý  
 | 
  
 | 
g_maliciousAttackDict = {} # Êܵ½¶ñÒâ¹¥»÷ÐÅÏ¢ {playerID:{atkPlayerID:atkTick, ...}}  
 | 
  
 | 
g_xmzzVSPlayerData = {} # ÏÉħ֮Õù¶ÔÊÖÍæ¼ÒÊôÐÔÐÅÏ¢ {lineID:vsPlayerPropData, ...}  
 | 
  
 | 
g_swrhPlayerHurtDict = {} #ÊØÎÀÈË»ÊÍæ¼ÒÉ˺¦ÅÅÐÐÐÅÏ¢ {familyID:{playername:hurtvalue}}  
 | 
g_swrhPlayerIDDict = {} #ÊØÎÀÈ˻ʲÎÓëÍæ¼ÒID {familyID:[playerID,..]}  
 | 
g_fbPickUpItemDict = {} #¸±±¾Íæ¼ÒʰȡÎïÆ·¼Ç¼ {playerID:[]}  
 | 
  
 | 
g_bossShuntPlayerInfo = {} # boss·ÖÁ÷Íæ¼ÒÐÅÏ¢{(mapID, lineID):{playerID:[bossID, teamID, relatedTick], ...}, ...}  
 | 
g_bossShuntLineState = {} # boss·ÖÁ÷Ïß·¶ÔÓ¦boss״̬ {bossID:{lineID:isAlive, ...}, ...}  
 | 
  
 | 
g_delaySuccessDict = {} # ÑÓ³Ù´¦Àí³É¾Í  
 | 
  
 | 
g_bzzdPlayerKillNPCCntDict = {} #ÏɽçÃØ¾³Íæ¼Ò»÷ɱNPC¼ÆÊý£¬Ö§³ÖСÊýµã {playerID:»÷ɱÊý, }  
 | 
  
 | 
g_operationActionDict = {} # {actName:actInfo, ...}  
 | 
  
 | 
g_npcKillerInfo = {} # NPC»÷ɱÕßÐÅÏ¢ {(lineID, objID, npcID):[killerDict, curTeam, hurtType, hurtID], ...}  
 | 
  
 | 
g_familyPartyInfo = {} #[ [[familyID, familyName, ´ðÌâÊýÁ¿]], topÃû×Ö,top´ðÌâÊýÁ¿] 
 |