hxp
6 天以前 ad855ce4746d51bf96434d5e8f7abd710778f723
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 ddlZddlZddlZddlZdZedZddd„ƒYZddd„ƒYZd„Zd    „Zd
„Zd „Zd „Zde jd d„Zd„Zd„Zd„Z d„Z!dd„Z"d„Z#dS(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__Ps
                cCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetServerIDWscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetServerTypeXscCs ||_dS(N(R(Rt
serverType((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt SetServerTypeYscCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetConnStateZscCs ||_dS(N(R(Rt    connState((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt SetConnState[scCs|jS(N(R(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetHeartCurTime\scCs ||_dS(N(R(RtcurTime((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytSetHeartCurTime]scCs|jtjkrtStS(N(Rt ShareDefinet ssConn_NormaltFalsetTrue(R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt IsServerOpen^s( t__name__t
__module__t__doc__RRR    R R RRRR(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRLs                                t SSServerMgrcBseeZd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„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.pyRls                            cCs<||jkr|j|}nt|ƒ}||j|<|S(N(RR(RRtssServer((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt GetSSServerxs
  cCs!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_CrossRt
HeartBreattLogtChServerToServerPyPackt
tagSSHeartt GetGameWorldRtServerIDt
ServerTypet
ServerTimetIsResartt NetPackCommontSendCrossServerToServerPacktdirType_MainAndCross(RRR
tisResarttpack((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt DoHeartbeat€s& +             c    Csxttjƒƒ}|j|ƒ}|j|ƒ|j|ƒ|jƒ}|tjkr{|jsk||_n|j    |ƒn|tj
kr•| r•dS|j tj
ƒ|tj krºt nt}|tjkrøtjd||tj|ƒ|fƒnl|tjkrFtjd|||fƒ||jkrd|jj|ƒqdntjd|||fƒdSt|||ƒdS(NsQ¡ñÁ¬ÉÏ¿ç·þÖÐÐÄ·þÎñÆ÷: crossServerID=%s,isReconn=%s,crossServerTime=%s,isResart=%ss>¡ñÁ¬Éϳ£¹æ¿ç·þ·þÎñÆ÷: crossServerID=%s,isReconn=%s,isResart=%ss7¡ñÁ¬ÉÏÆäËû·þÎñÆ÷: serverID=%s,serverType=%s,isReconn=%s(tintttimeR#R RR RR&RtUpdateCrossTimeRRtssConn_UnknownRRR%R)tChangeTimeNumToStrR'Rtappendt OnConnServer(    RRR
t
serverTimeR4RR"t befConnStatetisReconn((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt OnServerHeart s0             cCs ttjƒƒ}|jƒ}|j||ƒ||}t|ƒdkrœtjd|ƒtjdtj|ƒƒtjdtj|ƒƒtj    ƒndS(Nis<±¾·þµÄ¿ç·þʱ¼äÓë¿ç·þʵ¼Êʱ¼äÎó²î¹ý´óͬ²½Ç°¶Ë! diffSeconds=%sscurCrossTime=%ssupdCrossTime=%s(
R7R8t GetCrossTimet SetCrossTimetabsR%R)R;tChPlayertSync_PyServerDataTimeToClient(Rt updCrossTimeRt curCrossTimet diffSeconds((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyR9Ês 
 cCsNttjƒƒ}|js|S|jtd||jƒ7_||_|jS(Ni(R7R8R tmaxR!(RR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRBÚs         icCs.||_|r|nttjƒƒ|_|S(N(R R7R8R!(RR>R((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRCä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#R6RAR9RBRCRKRLRQ(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRis                  *        
        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.pytOnSecondProcesss      cCsj|j}|j}|j}|j}|tjƒjƒkr@dStjsMdSt    ƒj
||||ƒdS(N( R-R.R/R0R%R,RRRtg_serverInitOKRURA(tnetPackRR
R>R4((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRA+s                    cCsÉtjƒ}tjƒ}tjƒjƒ|_||_||_t    j
||gd|ƒtj ƒr—|t j krÅtjƒtjƒtjƒqÅn.tjƒrÅ|t jkrÅtj|ƒqÅndS(NR
(R%R    R*ttagSSServerConnOKR,RR-R.tIsReconnR1R2t IsCrossServerRR&tGameLogic_QunyingtOnCrossServer_Conn_CrossCentertGameLogic_ArenatPlayerActLunhuidiant IsMainServerR'REtOnMainServer_Conn_CrossServer(R
RR@t curServerTypeR5((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyR=8s           
 
 cCsU|j}|j}|j}tjƒ}tjd||||fƒ|tjkr¡t|gdt    j
|ƒƒt j |ƒ|tj kr¡tj||ƒq¡n|tj krÒ|tj krÒtj||ƒn|tjkrQ|tj krQtj|ƒtj|ƒtj||ƒtj|ƒtj|ƒtj|ƒtj|ƒndS(NsL¡ïÊÕµ½·þÎñÆ÷Á¬½Ó³É¹¦: serverID=%s,serverType=%s,isReconn=%s,curServerType=%sR$(R-R.R[R%R    R)RR&tSendCrossServerEventR1tGetSSPackDirTypetGameWorldActiontSync_CC2CS_CrossActInfoR'tDBFamilytSync_CenterToCross_FamilyInfotPlayerActFamilyGCZtSync_C2CS_FamilyGCZCallRegtserverType_MaintSync_C2S_FamilyCrossAllServerIDtSync_CrossToServer_FamilyInfoR]tSync_C2S_QunyingCrossInfoR_tSync_C2S_ArenaCrossInfoR`tSync_C2S_LunhuidianCrossInfotGameLogic_ZZBFtSync_C2S_ZZBFCrossInfo(RYRR
R@Rc((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytOnServerConnOK[s*                   tcCs’tjƒ}tjƒjƒ|_tjƒ|_tj    ƒj
t j ƒ|_ ||_t|jƒ|_ttjƒƒ|_tj|||ƒdS(N(R*ttagSSCrossCenterEventR%R,RR-R    R.t    DBDataMgrtGetEventTrigMgrtGetValueRtDef_CrossCenterEventt
EventValuetGMEventtlentGMLenR7R8R/R1R2(t serverIDListR$tgmEventR5((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyRds     cCs‡|j}|j}|j}|j}|j}tjd||||fƒ|tjkr]dSt    ƒj
|ƒt j ||d|ƒdS(NsJÊÕµ½·þÎñÆ÷ʼþ±ä¸üͬ²½: serverID=%s,serverType=%s,eventValue=%s,gmEvent=%sR€( R-R.R{R|R/R%R)RR&RUR9tGameWorldEventtDoLogic_CrossCenterEvent(RYRR
t
eventValueR€R>((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( Rwt 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…( RwR†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RR–t    recZoneIDR((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pytGetCrossRecZoneID¼s
  cCsltjƒ}||_||_||_||_t|jƒ|_|r[tj    ||ƒn tj
|ƒdS(N( tChPyNetSendPackttagSCCrossZoneInfotMapIDt CrossServerIDtZoneIDt ServerIDListR}t    ServerCntR1t SendFakePacktSendFackPackOnline(tmapIDt crossServerIDtzoneIDRt    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.pytGetCrossActServerZoneInfoÓs$ ((($R%RRR³RRfRrR_R]R*R`RjRŸR1RRwRhRER8R(RNRRRURWRAR=RttNoneR3RdR„R—R›RžR­RÄ(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\CrossMgr.pyt<module>sB                  %
ª                 #    $