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
ªƒic@súddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    dZ
e
dZ ddd„ƒYZ ddd„ƒYZ d„Zd    „Zd
„Zd „Zd „Zdejd „Zd„ZdS(iÿÿÿÿNi
itSSServercBsVeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
RS(    s4 ÆäËû·þÎñÆ÷¶ÔÏ󣬿ÉÒÔÊÇ¿ç·þ·þÎñÆ÷¡¢ÆäËûÓÎÏ··þµÈ
    cCs(||_d|_d|_d|_dS(Ni(t    _serverIDt _serverTypet
_connStatet _heartCurTime(tselftserverID((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt__init__As
                cCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetServerIDHscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetServerTypeIscCs ||_dS(N(R(Rt
serverType((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt SetServerTypeJscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetConnStateKscCs ||_dS(N(R(Rt    connState((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt SetConnStateLscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetHeartCurTimeMscCs ||_dS(N(R(RtcurTime((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytSetHeartCurTimeNs( t__name__t
__module__t__doc__RRR    R R RRR(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyR=s                            t SSServerMgrcBsSeZd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd„Z    RS(    cCsCi|_d|_d|_g|_d|_d|_d|_dS(Ni(t _ssServerDictt
_heartTimet_disconnectedCheckTimet_crossServerIDListt_crossCenterIDt
_crossTimet_crossTimeCurTime(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRSs                            cCs<||jkr|j|}nt|ƒ}||j|<|S(N(RR(RRtssServer((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetSSServer_s
  cCs›|jr/||jkr/||jtkr/dS||_tjƒsHdStjƒ}tjƒjƒ|_tj    ƒ|_
||_ t j |dtjƒdS(NtdirType(Rt
HeartBreatt    GameWorldt IsCrossServertChServerToServerPyPackt
tagSSHeartt GetGameWorldRtServerIDR    t
ServerTypet
ServerTimet NetPackCommontSendCrossServerToServerPackt ShareDefinetdirType_MainAndCross(RRtpack((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt DoHeartbeatgs+          c    Cs ttjƒƒ}|j|ƒ}|jƒ}|j|ƒ|jtjƒ|j|ƒ|tj    krlt
nt }|tj kr#t jd||t j|ƒfƒ|js¹||_n||jkrÛ|jj|ƒn|jƒ}|j||ƒ||ks||dkrŒtjƒqŒni|tjkrnt jd||fƒ||jkrŒ|jj|ƒqŒnt jd|||fƒdSt|||ƒdS(NsCÁ¬ÉÏ¿ç·þÖÐÐÄ·þÎñÆ÷: crossServerID=%s,isReconn=%s,crossServerTime=%sis,Á¬ÉÏ¿ç·þ·þÎñÆ÷: crossServerID=%s,isReconn=%ss5Á¬ÉÏÆäËû·þÎñÆ÷: serverID=%s,serverType=%s,isReconn=%s(tintttimeRR R RR+t ssConn_NormalRtssConn_DisconnectedtTruetFalsetserverType_CrossCenterR!tLogtChangeTimeNumToStrRRtappendt GetCrossTimet SetCrossTimetChPlayertSync_PyServerDataTimeToClienttserverType_CrosstOnConnCrossServer(    RRR
t
serverTimeRRt befConnStatetisReconnt lastCrossTime((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt OnServerHeart|s2   #      cCsNttjƒƒ}|js|S|jtd||jƒ7_||_|jS(Ni(R/R0RtmaxR(RR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyR9¦s         icCs.||_|r|nttjƒƒ|_|S(N(RR/R0R(RR?R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyR:¯s    !cCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetCrossServerIDListµscCs'|j s||jkr&||_dS||jdkr=dS||_xÚ|jjƒD]É}|jƒtjkrwqVn|jƒ}|sqVn||kr¡qVn||tkr·qVn|jtj    ƒ|j
ƒ}|j ƒ}|tj krt jd||fƒqVt jd||fƒqVWdS(Ni
s+Óë¿ç·þ·þÎñÆ÷¶Ï¿ª: serverID=%s,serverType=%ss+ÓëÆäËû·þÎñÆ÷¶Ï¿ª: serverID=%s,serverType=%s(RRtvaluesR R+R1RtDisconnectedTimeRR2RR    R=R!R6(RRRt lastHeartTimeRR
((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytCheckSSServerDisconnected·s.            (
RRRRR.RCR9R:RERI(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRPs                 *             cCs(tj}|s$tƒ}|t_n|S(N(t
PyGameDatat g_ssServerMgrR(tssMgr((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetSSServerMgrÚs
         cCs'tƒ}|j|ƒ|j|ƒdS(N(RMRIR.(ttickRRL((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnSecondProcessás      cCs^|j}|j}|j}|tjƒjƒkr7dStjsDdStƒj    |||ƒdS(N(
R&R'R(R!R%RRJtg_serverInitOKRMRC(tnetPackRR
R?((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRCñs                cCsxtjƒ}tjƒ}tjƒjƒ|_||_||_t    j
||gd|ƒtj ƒrtt j |ƒndS(NR
(R!R    R#ttagSSServerConnOKR%RR&R'tIsReconnR)R*t IsMainServerR;tSyncOnlinePlayerToCross(R
RRAt curServerTypeR-((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyR>ýs           cCs½|j}|j}|j}tjƒ}tjd||||fƒ|tjkr‚t|gdt    j
|ƒƒt j ||ƒn|tj kr¹|tjtjgkr¹t j|ƒndS(NsJÊÕµ½·þÎñÆ÷Á¬½Ó³É¹¦: serverID=%s,serverType=%s,isReconn=%s,curServerType=%sR(R&R'RSR!R    R6R+R5tSendCrossServerEventR)tGetSSPackDirTypetDBFamilytSync_CenterToCross_FamilyInfotserverType_MainR=tSync_CrossToServer_FamilyInfo(RQRR
RARV((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnServerConnOKs             'cCsbtjƒ}tjƒjƒ|_tjƒ|_tj    ƒj
t j ƒ|_ tj|||ƒdS(N(R#ttagSSCrossCenterEventR!R%RR&R    R't    DBDataMgrtGetEventTrigMgrtGetValueR+tDef_CrossCenterEventt
EventValueR)R*(t serverIDListRR-((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRW1s  cCs\|j}|j}|j}tjd|||fƒ|tjkrHdStj||ƒdS(Ns?ÊÕµ½·þÎñÆ÷ʼþ±ä¸üͬ²½: serverID=%s,serverType=%s,eventValue=%s(    R&R'RcR!R6R+R5tGameWorldEventtDoLogic_CrossCenterEvent(RQRR
t
eventValue((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnCrossCenterEventCs            (((R!RJReR#R)R+R_RYR;R0R RGRRRMRORCR>R]tNoneR,RWRh(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt<module>s(          
Š