cjc
3 天以前 5a1233406e2aef84fb8ecfed51b2d24ccc493e73
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
ó
¯`Çjc@s¢ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZdZedZddd„ƒYZddd„ƒYZd„Zd    „Zd
„Zd „Zd „Zd „Zde jdd„Zd„Z d„Z!d„Z"d„Z#dd„Z$d„Z%dS(iÿÿÿÿNi
itSSServercBszeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „ZRS( s4 ÆäËû·þÎñÆ÷¶ÔÏ󣬿ÉÒÔÊÇ¿ç·þ·þÎñÆ÷¡¢ÆäËûÓÎÏ··þµÈ
    cCs:||_d|_d|_d|_t|_d|_dS(Ni(t    _serverIDt _serverTypet
_connStatet_connStateTimetFalset    _connSucct _heartCurTime(tselftserverID((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt__init__Qs                        cCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetServerIDZscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetServerType[scCs ||_dS(N(R(Rt
serverType((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt SetServerType\scCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetConnStateTime]scCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetConnState^scCs5||_||_|tjkr1|jtƒndS(N(RRt ShareDefinetssConn_Disconnectedt SetConnSuccR(Rt    connStatetcurTime((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt SetConnState_s        cCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetConnSuccdscCs ||_dS(N(R(RtconnSucc((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRescCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetHeartCurTimefscCs ||_dS(N(R(RR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytSetHeartCurTimegscCs|jtjkrtStS(N(RRt ssConn_NormalRtTrue(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt IsServerOpenhs(t__name__t
__module__t__doc__R
R R RRRRRRRRR(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRMs                                                t SSServerMgrcBsweZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    dd    „Z
d
„Z d „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.pyR
vs                            cCs<||jkr|j|}nt|ƒ}||j|<|S(N(R"R(RR    tssServer((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetSSServer‚s
  cCs |jjƒS(N(R"tkeys(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetSSServerIDListŠscCs!tjƒ}|tjtjgkr(dS|jrW||jkrW||jtkrWdS|jsfdnd}||_|r‹tjdƒntj    ƒ}tj
ƒj ƒ|_ tjƒ|_ ||_||_|tjkrõtj|dtjƒn(|tjkrtj|dtjƒndS(NiisÆô¶¯·þÎñÆ÷¹ã²¥ÐÄÌø!tdirType(t    GameWorldR RtserverType_CrossCentertserverType_CrossR#t
HeartBreattLogtChServerToServerPyPackt
tagSSHeartt GetGameWorldR tServerIDt
ServerTypet
ServerTimetIsResartt NetPackCommontSendCrossServerToServerPacktdirType_MainAndCross(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    |ƒn|tj
kr•| r•dS|j tj
|ƒ|tj kr½t nt}|tjkrûtjd||tj|ƒ|fƒnl|tjkrItjd|||fƒ||jkrg|jj|ƒqgntjd|||fƒdStjƒ}    tjƒjƒ|    _tjƒ|    _||    _tj|    |gd|ƒtj dƒt!|||ƒdS(NsQ¡ñÁ¬ÉÏ¿ç·þÖÐÐÄ·þÎñÆ÷: crossServerID=%s,isReconn=%s,crossServerTime=%s,isResart=%ss>¡ñÁ¬Éϳ£¹æ¿ç·þ·þÎñÆ÷: crossServerID=%s,isReconn=%s,isResart=%ss7¡ñÁ¬ÉÏÆäËû·þÎñÆ÷: serverID=%s,serverType=%s,isReconn=%sR tSSConnOK("tintttimeR*RRRRR/R&tUpdateCrossTimeRRtssConn_UnknownRRR.R2tChangeTimeNumToStrR0R%tappendR3ttagSSServerConnOKR5R R6R R7tIsReconnR:R;tGameWorldEventtDR_ServerStatet OnConnServer(
RR    R t
serverTimeR=RR)t befConnStatetisReconnR>((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt OnServerHeart¬s<                   cCs7t}x|jjƒD]}|jƒtjkr7qn|jƒrIqn|jƒ}||dkrkqnt}|j    tj
|ƒ|j ƒ}|j ƒ}|tj krÅtjd||fƒn@|tjkrîtjd||fƒntjd||fƒtjdd|ƒqW|r3tjdƒndS(Ni<s=¡øÓë¿ç·þ·þÎñÆ÷Á¬½ÓÁ÷³Ì³¬Ê±Ç¿ÖƶϿª: serverID=%s,serverType=%ss;¡øÓë¿ç·þÖÐÐÄÁ¬½ÓÁ÷³Ì³¬Ê±Ç¿ÖƶϿª: serverID=%s,serverType=%ss=¡øÓëÆäËû·þÎñÆ÷Á¬½ÓÁ÷³Ì³¬Ê±Ç¿ÖƶϿª: serverID=%s,serverType=%stSSServerConnSuccFails serverID=%st
SSConnFail(RR"tvaluesRRRRRRRRR R R0R.R2R/tSendGameErrorExRIRJ(RRtisFailR)t    stateTimeR    R ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytCheckSSServerConnFailßs,    cCs ttjƒƒ}|jƒ}|j||ƒ||}t|ƒdkrœtjd|ƒtjdtj|ƒƒtjdtj|ƒƒtj    ƒndS(Nis<±¾·þµÄ¿ç·þʱ¼äÓë¿ç·þʵ¼Êʱ¼äÎó²î¹ý´óͬ²½Ç°¶Ë! diffSeconds=%sscurCrossTime=%ssupdCrossTime=%s(
RARBt GetCrossTimet SetCrossTimetabsR.R2REtChPlayertSync_PyServerDataTimeToClient(Rt updCrossTimeRt curCrossTimet diffSeconds((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRCþs 
 cCsNttjƒƒ}|js|S|jtd||jƒ7_||_|jS(Ni(RARBR'tmaxR((RR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRWs         icCs.||_|r|nttjƒƒ|_|S(N(R'RARBR((RRLR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRXs    !cCs|jS(N(R&(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetCrossCenterIDscCs|jS(N(R%(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetCrossServerIDListscCs‚|j s||jkr&||_dS||jtkr=dS||_t}x|jjƒD]}|jƒtjkr}q\n|jƒ}|s•q\n||kr´|j    |ƒq\n||t
krÊq\nt }|j tj |ƒ|jƒ}|jƒ}|tjkr$tjd||fƒq\|tjkrMtjd||fƒq\tjd||fƒq\W|r~tjdƒndS(Ns-¡øÓë¿ç·þ·þÎñÆ÷¶Ï¿ª: serverID=%s,serverType=%ss+¡øÓë¿ç·þÖÐÐĶϿª: serverID=%s,serverType=%ss-¡øÓëÆäËû·þÎñÆ÷¶Ï¿ª: serverID=%s,serverType=%stSSDisconnected(R$R1RR"RRRRRRRtDisconnectedTimeRRRR R R0R.R2R/RIRJ(RRtisDisconnectedR)t lastHeartTimeR    R ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytCheckSSServerDisconnected!s<             (RRR
R*R,R?RORVRCRWRXR`RaRf(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyR!ss                      3            
        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.pytGetSSServerMgrKs
         cCs4tƒ}|j|ƒ|j|ƒ|j|ƒdS(N(RjRfRVR?(ttickRRi((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnSecondProcessRs
       cCsj|j}|j}|j}|j}|tjƒjƒkr@dStjsMdSt    ƒj
||||ƒdS(N( R6R7R8R9R.R5R Rgtg_serverInitOKRjRO(tnetPackR    R RLR=((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyROds                    cCsqtjƒr?|tjkrmtjƒtjƒtjƒqmn.tjƒrm|tj    krmt
j |ƒqmndS(N( R.t IsCrossServerRR/tGameLogic_QunyingtOnCrossServer_Conn_CrossCentertGameLogic_ArenatPlayerActLunhuidiant IsMainServerR0RZtOnMainServer_Conn_CrossServer(R R    RN((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRKqs 
 
 cCs¥|j}|j}|j}tjƒ}tjd||||fƒ|tjkr¡t|gdt    j
|ƒƒt j |ƒ|tj kr¡tj||ƒq¡n|tj krÒ|tj krÒtj||ƒn|tjkr^|tj kr^tj|ƒtj|ƒtj||ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒntj ƒ}tj!ƒj"ƒ|_||_t    j#||gd|ƒdS(NsL¡ïÊÕµ½·þÎñÆ÷Á¬½Ó³É¹¦: serverID=%s,serverType=%s,isReconn=%s,curServerType=%sR-R ($R6R7RHR.R R2RR/tSendCrossServerEventR:tGetSSPackDirTypetGameWorldActiontSync_CC2CS_CrossActInfoR0tDBFamilytSync_CenterToCross_FamilyInfotPlayerActFamilyGCZtSync_C2CS_FamilyGCZCallRegtserverType_MaintSync_C2S_FamilyCrossAllServerIDtSync_CrossToServer_FamilyInfoRptSync_C2S_QunyingCrossInfoRrtSync_C2S_ArenaCrossInfoRstSync_C2S_LunhuidianCrossInfotGameLogic_ZZBFtSync_C2S_ZZBFCrossInfotDBPalacetSync_C2S_PalaceCrossInfoR3ttagSSServerConnSuccR5R R;(RnR    R RNt curServerTypeR>((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnServerConnOK‹s4                         cCsY|j}|j}tƒj|ƒ}|jtƒtjd||fƒtj    dƒdS(Ns=¡ï¡ï¡ïÊÕµ½·þÎñÆ÷Á¬½ÓÁ÷³Ì³É¹¦¡ï¡ï¡ï: serverID=%s,serverType=%st
SSConnSucc(
R6R7RjR*RRR.R2RIRJ(RnR    R R)((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnServerConnSucc½s          tcCs’tjƒ}tjƒjƒ|_tjƒ|_tj    ƒj
t j ƒ|_ ||_t|jƒ|_ttjƒƒ|_tj|||ƒdS(N(R3ttagSSCrossCenterEventR.R5R R6R R7t    DBDataMgrtGetEventTrigMgrtGetValueRtDef_CrossCenterEventt
EventValuetGMEventtlentGMLenRARBR8R:R;(t serverIDListR-tgmEventR>((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRvÆs     cCs‡|j}|j}|j}|j}|j}tjd||||fƒ|tjkr]dSt    ƒj
|ƒt j ||d|ƒdS(NsJÊÕµ½·þÎñÆ÷ʼþ±ä¸üͬ²½: serverID=%s,serverType=%s,eventValue=%s,gmEvent=%sR˜( R6R7R“R”R8R.R2RR/RjRCRItDoLogic_CrossCenterEvent(RnR    R t
eventValueR˜RL((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( Rt 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œ( RRRžRRŸ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   cCs=t|ƒ}x*|jƒD]\}}||kr|SqWdS(Ni(R®titems(R¦R    R­t    recZoneIDR—((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetCrossRecZoneIDs
  cCsltjƒ}||_||_||_||_t|jƒ|_|r[tj    ||ƒn tj
|ƒdS(N( tChPyNetSendPackttagSCCrossZoneInfotMapIDt CrossServerIDtZoneIDt ServerIDListR•t    ServerCntR:t SendFakePacktSendFackPackOnline(tmapIDt crossServerIDtzoneIDR—t    curPlayert
clientPack((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytSync_CrossZoneInfo s                  c    CsÎd}tj|tjƒ}|s%|S|jtjdƒ}|sD|Stjd|ƒ}|s`|Stj|ƒ}tj    d|ƒ}|s‹|Sx<|D]4}tj
||j ƒƒr’|j ƒ|j ƒfSq’W|S(NitActTimetActZone(ii(R.t
GetActInfoRt ActNum_CrossR¤t ActKey_CfgIDt IpyGameDataPYtGetIpyGameDatatGetActZoneSigntGetIpyGameDataListtCheckServerIDInListtGetServerIDListtGetCrossServerIDt    GetZoneID(    tactNamet actServerIDtrettactInfotcfgIDtipyDatatzoneSigntzoneIpyDataListt zoneIpyData((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetCrossActServerZoneInfos$ (((&R.RgRÊRIRxR„RrRpR3RsR|R¶R:RRRzR†RZRBR1RcRR!RjRlRORKRŠRŒtNoneR<RvR›R®R²RµRÄRÛ(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt<module>sF                   %
&Ø                     2