hxp
4 天以前 e7223984a0a085e3f8cda4817076c51a8dad19b4
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
4Öic@s?ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z dZ e dZddd„ƒYZddd„ƒYZd„Zd    „Zd
„Zd „Zd „Zdejd d„Zd„Zd„Zd„Zdd„ZdS(iÿÿÿÿNi
itSSServercBs_eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„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__Ks
                cCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetServerIDRscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetServerTypeSscCs ||_dS(N(R(Rt
serverType((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt SetServerTypeTscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetConnStateUscCs ||_dS(N(R(Rt    connState((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt SetConnStateVscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetHeartCurTimeWscCs ||_dS(N(R(RtcurTime((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytSetHeartCurTimeXscCs|jtjkrtStS(N(Rt ShareDefinet ssConn_NormaltFalsetTrue(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt IsServerOpenYs( t__name__t
__module__t__doc__RRR    R R RRRR(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRGs                                t SSServerMgrcBs\eZd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd„Z    d    „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.pyRgs                            cCs<||jkr|j|}nt|ƒ}||j|<|S(N(RR(RRtssServer((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetSSServerss
  cCsùtjƒ}|tjtjgkr(dS|jrW||jkrW||jtkrWdS|jsfdnd}||_tjƒ}tj    ƒj
ƒ|_ tjƒ|_ ||_ ||_|tjkrßtj|dtjƒntj|dtjƒdS(NiitdirType(t    GameWorldR    RtserverType_CrossCentertserverType_CrossRt
HeartBreattChServerToServerPyPackt
tagSSHeartt GetGameWorldRtServerIDt
ServerTypet
ServerTimetIsResartt NetPackCommontSendCrossServerToServerPacktdirType_MainAndCrosst dirType_Main(RRR
tisResarttpack((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt DoHeartbeat{s  +             c Csûttjƒƒ}|j|ƒ}|j|ƒ|j|ƒ|jƒ}|tjkrþ|jsk||_n|}|j    ƒ}    |j
||ƒ||    }
t |
ƒdkrþt j d|
ƒt j dt j|    ƒƒt j dt j|ƒƒtjƒqþn|tjkr| rdS|jtjƒ|tjkr=tnt} |tjkr{t j d|| t j|ƒ|fƒnl|tjkrÉt j d|| |fƒ||jkrç|jj|ƒqçnt j d||| fƒdSt||| ƒdS(Nis<±¾·þµÄ¿ç·þʱ¼äÓë¿ç·þʵ¼Êʱ¼äÎó²î¹ý´óͬ²½Ç°¶Ë! diffSeconds=%sscurCrossTime=%ssupdCrossTime=%ssOÁ¬ÉÏ¿ç·þÖÐÐÄ·þÎñÆ÷: crossServerID=%s,isReconn=%s,crossServerTime=%s,isResart=%ss<Á¬Éϳ£¹æ¿ç·þ·þÎñÆ÷: crossServerID=%s,isReconn=%s,isResart=%ss5Á¬ÉÏÆäËû·þÎñÆ÷: serverID=%s,serverType=%s,isReconn=%s(tintttimeR#R RR RR&Rt GetCrossTimet SetCrossTimetabsR%tLogtChangeTimeNumToStrtChPlayertSync_PyServerDataTimeToClientRRtssConn_UnknownRRR'Rtappendt OnConnServer( RRR
t
serverTimeR4RR"t befConnStatet updCrossTimet curCrossTimet diffSecondstisReconn((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt OnServerHeart˜s@         
     cCsNttjƒƒ}|js|S|jtd||jƒ7_||_|jS(Ni(R7R8R tmaxR!(RR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyR9Ís         icCs.||_|r|nttjƒƒ|_|S(N(R R7R8R!(RRCR((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.pytGetCrossCenterIDÝscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetCrossServerIDListÞscCsP|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ƒqV|tjkr1t jd||fƒqVt jd||fƒqVWdS(Ni
s+Óë¿ç·þ·þÎñÆ÷¶Ï¿ª: serverID=%s,serverType=%ss)Óë¿ç·þÖÐÐĶϿª: serverID=%s,serverType=%ss+ÓëÆäËû·þÎñÆ÷¶Ï¿ª: serverID=%s,serverType=%s(RRtvaluesR RRRtDisconnectedTimeRtssConn_DisconnectedRR    R'R%R<R&(RRR"t lastHeartTimeRR
((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytCheckSSServerDisconnectedàs2            ( RRRR#R6RIR9R:RKRLRQ(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRds                 5    
        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.pytGetSSServerMgrs
         cCs'tƒ}|j|ƒ|j|ƒdS(N(RURQR6(ttickRRT((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnSecondProcess s      cCsj|j}|j}|j}|j}|tjƒjƒkr@dStjsMdSt    ƒj
||||ƒdS(N( R,R-R.R/R%R+RRRtg_serverInitOKRURI(tnetPackRR
RCR4((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRIs                    cCsµtjƒ}tjƒ}tjƒjƒ|_||_||_t    j
||gd|ƒtj ƒrƒ|t j kr±tjƒq±n.tjƒr±|t jkr±tj|ƒq±ndS(NR
(R%R    R)ttagSSServerConnOKR+RR,R-tIsReconnR0R1t IsCrossServerRR&tGameLogic_ArenatOnCrossServer_Conn_CrossCentert IsMainServerR'R>tOnMainServer_Conn_CrossServer(R
RRHt curServerTypeR5((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRB+s            cCsí|j}|j}|j}tjƒ}tjd||||fƒ|tjkr¡t|gdt    j
|ƒƒ|tj kr¡t j ||ƒtj|ƒq¡n|tjkré|tj krét j|ƒtj|ƒtj|ƒndS(NsJÊÕµ½·þÎñÆ÷Á¬½Ó³É¹¦: serverID=%s,serverType=%s,isReconn=%s,curServerType=%sR$(R,R-R[R%R    R<RR&tSendCrossServerEventR0tGetSSPackDirTypeR'tDBFamilytSync_CenterToCross_FamilyInfotGameLogic_QunyingtSync_CenterToCross_QunyingInfotserverType_MaintSync_CrossToServer_FamilyInfotSync_CrossToServer_QunyingInfoR]tSync_C2S_ArenaCrossInfo(RYRR
RHRa((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnServerConnOKLs               tcCs}tjƒ}tjƒjƒ|_tjƒ|_tj    ƒj
t j ƒ|_ ||_t|jƒ|_tj|||ƒdS(N(R)ttagSSCrossCenterEventR%R+RR,R    R-t    DBDataMgrtGetEventTrigMgrtGetValueRtDef_CrossCenterEventt
EventValuetGMEventtlentGMLenR0R1(t serverIDListR$tgmEventR5((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRbhs     cCsn|j}|j}|j}|j}tjd||||fƒ|tjkrTdStj    ||d|ƒdS(NsJÊÕµ½·þÎñÆ÷ʼþ±ä¸üͬ²½: serverID=%s,serverType=%s,eventValue=%s,gmEvent=%sRx(
R,R-RsRtR%R<RR&tGameWorldEventtDoLogic_CrossCenterEvent(RYRR
t
eventValueRx((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnCrossCenterEvent~s                cCs‚i}tjƒ}|jtj|ƒ}xTt|jƒƒD]@}|j|ƒ}|jƒ}|j    diƒ}|j
|ƒq:W|S(NtRec( Rot GetGameRecMgrtGetRecTypeIDMgrRtDef_GameRecType_CrossZonetrangetGetCounttAtt GetUserDicttgettupdate(t    funcMapIDtzoneServerIDListDictt
gameRecMgrtrecMgrtindextrecDatatuserDictt zoneRecDict((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetFuncCrossZoneRec‰s  cCsstjƒ}|jtj|ƒ}|jƒdkr@|jƒn|jtƒ}|j    ƒ}|j
i|d6ƒdS(NiR}( RoR~RRR€R‚t
DelAllDatat GetOneRecDataRR„R†(R‡t crossZoneRecR‰RŠRŒR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytSetFuncCrossZoneRec–s   cCsltjƒ}||_||_||_||_t|jƒ|_|r[tj    ||ƒn tj
|ƒdS(N( tChPyNetSendPackttagSCCrossZoneInfotMapIDt CrossServerIDtZoneIDt ServerIDListRut    ServerCntR0t SendFakePacktSendFackPackOnline(tmapIDt crossServerIDtzoneIDRwt    curPlayert
clientPack((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytSync_CrossZoneInfo¡s                  (((R%RRRyR]RfR)R”R0RRoRdR>R8R(RNRRRURWRIRBRltNoneR2RbR|RR“R¢(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt<module>s4             %
¢                 !