hxp
2024-11-25 878fef04122d1feaa0f42c429f364659931bc379
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#!/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, ...}