hwj35
2026-06-10 485e96e9c31bbd658bf7fcfb8e9518c2cac752dc
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
›ô'jc@s%ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z dd&d„ƒYZdd'd„ƒYZd„Zd„Zddd„Zd    „Zd
„Zdd „Zd „Zd d„Zd„Zgd„Zggdd„Zggd„Zd„Zd„Zdddd„Zd„Z d„Z!dddde"de#d„Z$d„Z%d„Z&dd„Z'd„Z(d„Z)e#ddd „Z*d!„Z+d"„Z,d dd#„Z-d$„Z.d%„Z/dS((iÿÿÿÿNtCrossPlayerObjcBs¡eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zd „Zd„Zd„Zd„ZRS(cCsLd|_||_d|_d|_d|_d|_d|_d|_dS(Nti(    tNonet_CrossPlayerObj__curPlayert_CrossPlayerObj__playerIDt_CrossPlayerObj__playerNamet_CrossPlayerObj__serverIDt_CrossPlayerObj__mainServerIDt_CrossPlayerObj__familyIDt_CrossPlayerObj__familyServerIDt_CrossPlayerObj__realmLV(tselftplayerID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt__init__$s                                cCs^||_|rZtj|ƒ|_tjƒjƒ|_|jƒ|_t    j
|ƒ|_ ndS(N( Rt    GameWorldtGetPlayerServerIDRt GetGameWorldt GetServerIDRt GetFamilyIDRt PlayerControltGetFamilyServerIDR    (R t    curPlayer((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt    SetPlayer/s    cCsp|j|jƒƒ|j|jƒƒ|j|ƒ|j|jƒƒ|j|jƒƒ|j    |j
ƒƒdS(N( t SetPlayerNamet GetPlayerNamet SetServerIDRtSetMainServerIDt
SetRealmLVt
GetRealmLVt SetFamilyIDRtSetFamilyServerIDR(R tcurCachet fromServerID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytUpdByViewCache8s cCs|jS(N(R(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt    GetPlayerBscCs|jS(N(R(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt GetPlayerIDCscCs|jS(N(R(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRDscCs ||_dS(N(R(R tserverID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyREscCs|jS(N(R(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytGetMainServerIDFscCs ||_dS(N(R(R t mainServerID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRGscCs|jS(N(R(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRHscCs ||_dS(N(R(R tfamilyID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRIscCs|jS(N(R    (R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRJscCs ||_dS(N(R    (R t    fServerID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRKscCs*|jr|jS|jr&|jjƒSdS(NR(RRR(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRMscCs ||_dS(N(R(R t
playerName((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRNscCs*|jr|jS|jr&|jjƒSdS(Ni(R
RtGetOfficialRank(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyROscCs ||_dS(N(R
(R trealmLV((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRPs(t__name__t
__module__R RR!R"R#RRR%RRRRRRRRR(((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR!s"                 
                                                    tCrossPlayerMgrcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs i|_dS(N(t _CrossPlayerMgr__crossPlayerDict(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR Us    cCs^d}||jkr%|j|}nt|ƒ}||j|<|jtjƒj|ƒƒ|S(N(RR/RRRtGetPlayerManagertFindPlayerByID(R R tcPlayer((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt RegistPlayerYs  cCs>d}||jkr%|j|}ntr:t|ƒ}n|S(N(RR/tFalseR(R R R2((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytFindCrossPlayercs cCs|jj|dƒdS(N(R/tpopR(R R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt DeletePlayerkscCs |jjƒS(N(R/tkeys(R ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytGetPlayerIDListos(R,R-R R3R5R7R9(((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR.Rs
        
        cCs.tj}|dkr*tƒ}|t_n|S(N(t
PyGameDatatg_crossPlayerMgrRR.(tmgr((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytGetCrossPlayerMgrqs
          cCs1|s
dSt|tjƒr-tjdƒdStS(Ns(__checkCrossPlayer isinstance IPY_Player(t
isinstancet IPY_GameObjt
IPY_PlayerRtErrLogtTrue(t crossPlayer((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt__checkCrossPlayerxs  cGs/|s
dStjƒj|ƒ}|s)dStjƒ}g}tƒ}xÎt|jƒƒD]º}    |j|    ƒ}
|
j    ƒ} |r| |krqWn|j
| ƒ} | s«qWn|rÇ||
|Œ rÇqWn| j ƒ} | rû| j |j ƒ|jƒƒqWn|rW|j| ƒqWqWW|r+t||ƒndS(N(t    DBDataMgrt GetFamilyMgrt
FindFamilyRt IsCrossServerR=trangetGetCounttGetAtR#R5R"t SendFakePackt    GetBuffert    GetLengthtappendtSendFakePackToPlayerList(R't
clientPackt excludeIDListt    parseFunctargstfamilyt isCrossServertcrossPlayerListtcrossPlayerMgrtindextmemberR RCR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytSendFakePackByFamilys6       c    Cs±g}tƒ}|jƒ}x‚|D]z}|j|ƒ}|jƒ}tj||ƒs[q"n|jƒ}|r|j|jƒ|j    ƒƒq"n|j
|ƒq"Wt ||ƒdS(N( R=R9R5R%RtCheckServerIDInListR"RLRMRNRORP(    RQt serverIDListttoCrossPlayerListRXt playerIDListR RCR&R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytSendFackPackToServerListŸs         c Csj|s
dS|sdStjƒjƒ}i}xŸ|D]—}|jƒ}|ratj||ƒq3n|jƒ}|jƒ}||kr‹q3n||kr¤g||<n||}||kr3|j|ƒq3q3W|sØdS|j    ƒ|j
ƒt j |ƒ}    }
} xb|j ƒD]T\}}i|d6|    d6|
d6| d6} |d}tjtj| |g|ƒqWdS(sP¸øcrossPlayerÍæ¼Ò·¢ËÍ·â°ü£¬ÊÊÓÃÓÚ½ÓÊܵÄÍæ¼Ò·â°üÊý¾ÝÒ»Öµģ¬¿ç·þ¡¢ÓÎÏ··þͨÓÃ
    NR_tpackBufftpackLentpackHeadi(RRRR"t NetPackCommonRLR#R%RORMRNtCommFunct GetPackHeadtitemstCrossMsgtSendToClientServert ShareDefinetC2S_SendFakePack( RWRQt curServerIDtcrossServerPlayerDictRCRR R&R_RaRbRctdataMsg((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRP±s8       
 )"
 c
Cs³|r |gStjƒjƒ}g}tƒ}x~|jƒD]p}|j|ƒ}|s\q;n|jƒ}tj||ƒ\}}    ||ks;|    |kržq;n|j|ƒq;W|S(N(    RRRR=R9R5tCrossMgrtGetCrossActServerZoneInfoRO(
tactNametzoneIDRCt crossServerIDRWRXR tplayerServerIDt    cServerIDtzID((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytGetActSyncCrossPlayerListØs     cCsÛ|s
dSt|ƒsdS|jƒ}|r@tj||ƒdS|jƒ}|tjƒjƒkrhdS|jƒ}|j    ƒ|j
ƒ}}i|gd6|d6|d6t j |ƒd6}t jtj||g|ƒdS(NR_RaRbRc(RDR"RdRLR%RRRR#RMRNReRfRhRiRjRk(RCRQRR&R RaRbRn((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRLïs     .icCsq|s
dS|jƒ|jƒ}}i|gd6|d6|d6tj|ƒd6}tjtj||g|ƒdS(NR_RaRbRc(RMRNReRfRhRiRjRk(R RQR RaRbRn((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytSendFakePackByIDs .cCsp|d}|d}|d}tjƒ}x?|D]7}|j|ƒ}|dkrXq1n|j||ƒq1WdS(NR_RaRb(RR0R1RRL(RnR_RaRbt playerManagerR R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRk s
 
 
   cCs«t|ƒsdS|jƒ}|r9tj|||ƒdS|jƒ}|tjƒjƒkradS|jƒ}i|gd6|d6|d6}t    j
t j ||g|ƒdS(NR_tmsgMarkt msgParamList( RDR"Rt
NotifyCodeR%RRRR#RhRiRjtC2S_NotifyCode(RCRzR{RR&R Rn((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR|s    cCs©tjƒj|ƒ}|sdStjƒjƒ}i}tƒ}    xt|jƒƒD]ú}
|j    |
ƒ} | j
ƒ} |rŒ| |krŒqSn|r¤| |kr¤qSn|    j | ƒ} | s¿qSn| j ƒ}|rð|rS||||ƒqSqSn| j ƒ}||krqSn||kr'g||<n||}| |krS|j| ƒqSqSWxQ|jƒD]C\}}i|d6|d6}|j|ƒtj|||gƒq^WdS(NR_R'(RERFRGRRRR=RIRJRKR#R5R"R%RORgtupdateRhRi(R'tmsgTypeRnRRt
onlyIDListthavePlayerCallRURlRmRXRYRZR RCRR&R_t sendDataMsg((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytSendToFamilyPlayer*sD          
  cCs\tjƒj|ƒ}|sdSd„}i|d6|d6}t|tj||d|ƒdS(NcSstj||d|dƒdS(NRzR{(RR|(RR'Rn((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRYsRzR{R(RERFRGRƒRjR}(R'RzR{RRRURRn((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt FamilyNotifyTs    cCss|d}|d}|d}tjƒ}xB|D]:}|j|ƒ}|dkrXq1ntj|||ƒq1WdS(NRzR{R_(RR0R1RRR|(RnRzR{R_RyR R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR}as
 
 
   cCs=tj|dtƒtj|dtƒtj|dtƒdS(NtCostPlayerResourcestGivePlayerResourcestSetPlayerNomalDict(tPlayerOfflineSupporttDoOfflineUnprocessedt__doCostPlayerResourcest__doGivePlayerResourcest__doSetPlayerNomalDict(R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt OnPlayerLoginosc    CsÓt|ƒsdSi|d6}|r0||d<n|rC||d<n|rV||d<n|jƒ}|jƒ}|r‹t|dd|ƒdS|jƒ}|tjƒjƒkr³dSt    j
t j ||g|ƒdS(sſ۳ý¿ç·þÍæ¼Ò×ÊÔ´
    @param eventName: ÏûºÄʼþÖµ
    @param costMoneyDict: ¿Û³ý»õ±Ò {»õ±ÒÀàÐÍ:ÏûºÄÖµ, ...}
    @param costItemDict: ¿Û³ýÎïÆ· {ÎïÆ·ID:¸öÊý, ...}
    @param drDict: ¼Ç¼Á÷ÏòÐÅÏ¢
    Nt    eventNamet costMoneyDictt costItemDicttdrDictR…( RDR#R"RŠRR%RRRRhRiRjtC2S_CostPlayerResources(    RCRŽRRR‘RnR RR&((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR…us&        cCsOtjƒj|ƒ}|s8tj|d|ddƒdSt|dd|ƒdS(NR…t outtimeDaysi(RR0R1RˆtAddOfflineUnprocessedRŠR(RnR R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR’”s c Csê|jƒ}|d}|jdƒ}|jdƒ}|jdiƒ}|r§xX|jƒD]G\}}    tj|||    ||ƒsYtjd|||    f|ƒqYqYWn|ræx6|jƒD]%\}
} tj||
| ||ƒqºWndS(NRŽRRR‘sE__doCostPlayerResources error! eventName=%s,moneyType=%s,costMoney=%s(    R#tgetRgRtPayMoneyRRAt ItemControlertDelPlayerItemByPacks( RtrecDataRŽt    eventDataR RRR‘t    moneyTypet    costMoneytitemIDtcostCnt((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRŠœs 
     Rc Cs t|ƒsdSi|d6}|r0||d<n|rC||d<n|rV||d<n|ri||d<n|s|||d<n|r||d<n|jƒ}    |jƒ}
|
rÄt|
dd    |ƒdS|jƒ} | tjƒjƒkrìdSt    j
t j || g|    ƒdS(
s€¸øÍæ¼Ò×ÊÔ´
    @param awardItemList: ¸øÎïÆ·Áбí [[itemID,itemCnt], ...]
    @param moneyDict: ¸ø»õ±Ò {»õ±ÒÀàÐÍ:ÏûºÄÖµ, ...}
    NRŽt awardItemListt    moneyDictR‘t    isForceDRt isNotifyAwardt notifyDataExR†( RDR#R"R‹RR%RRRRhRiRjtC2S_GivePlayerResources( RCRŸR RŽR‘R¢R£R¡RnR RR&((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR†°s2           cCsOtjƒj|ƒ}|s8tj|d|ddƒdSt|dd|ƒdS(NR†R“i(RR0R1RˆR”R‹R(RnR R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR¤Ós cCs]tjd||fƒ|d}|jdgƒ}|jdiƒ}|jdiƒ}|jdtƒ}|jdtƒ}|jddƒ}    tjd    |ƒ|rßi}
|
j|ƒtj||d
|||
gdtƒn|r1i} | j|ƒx6|j    ƒD]%\} } t
j || | || ƒqWn|rYtj |||d |d |    ƒndS( Ns__doGivePlayerResources %s, %sRŽRŸR R‘R¡R¢R£sawardItemList=%steventt    moneyInfotdataEx( RtDebugLogR•R4RBRR~R—tGivePlayerItemOrMailRgRt    GiveMoneytNotifyGiveAwardInfo(RR™RŽRšRŸR R‘R¡R¢R£t
itemDRDictt
moneyRDictR›t
moneyValue((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR‹Ûs*
 (  "cCsðt|ƒsdS|jƒ}|jƒ}i|d6}|rRt|dd|ƒdS|jƒ}|tjƒjƒkrŽtj    d||ƒdS|dkrÐt
j ƒj t jƒ}|ji|d6|d6ƒntjt j||g|ƒdS(s©¿Û³ý¿ç·þÍæ¼Ò×ÊÔ´
    @param setDict: ÒªÉèÖõÄNomalDictSetProperty¶ÔÓ¦key:value {key:value, ...}
    @param resetType: ×ÖµäÖØÖÃÀàÐÍ£¬¿Õ-ÓÀ¾Ã£¬Day-ÈÕÖØÖã¬Week-ÖÜÖØÖÃ
    NtsetDictR‡s/CrossPlayerÉèÖÃ×Öµäʱ±¾·þÍæ¼Ò²»´æÔÚ! setDict=%sRt    resetTypetcenterEventValue(RDR#R"RŒRR%RRRRAREtGetEventTrigMgrtGetValueRjtDef_CrossCenterEventR~RhRitC2S_SetPlayerNomalDict(RCR¯R°R RRnR&R±((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR‡÷s"      cCsOtjƒj|ƒ}|s8tj|d|ddƒdSt|dd|ƒdS(NR‡R“i(RR0R1RˆR”RŒR(RnR R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRµs cCs¡|jƒ}|d}|jddƒ}|dkrm|jddƒ}|jtjƒ}tjd|tjƒ}    tjd|tjƒ}
|    j} t    j    j
|    ƒd} |    j } |    j }|
j}t    j    j
|
ƒd}|
j }|
j }|dkr7| |ks| |ks||krjtj d    ||ƒdSqm|d
krm| |krjtj d ||ƒdSqmnx-|jƒD]\}}tj|||ƒqzWdS( NR¯R°RR±is%sitDays)·ÇͬһÌìÁ˲»ÔÙÉèÖÃÍæ¼Ò¸ÃkeyÖµ! setDict=%stWeeks)·ÇͬһÖÜÁ˲»ÔÙÉèÖÃÍæ¼Ò¸ÃkeyÖµ! setDict=%s(R#R•tNomalDictGetPropertytChConfigtDef_PDict_OnCrossEventRtChangeStrToDatetimetTYPE_Time_Format_YmdHtdaytdatetimet isocalendartmonthtyeartLogRgRtNomalDictSetProperty(RR™RŽRšR R¯R°R±tplayerEventValuetcenterEventTimetplayerEventTimet
center_Dayt center_Weekt center_Montht center_Yeart
player_Dayt player_Weekt player_Montht player_Yeartkeytvalue((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRŒs6 
                          $  
gà?c     CsÅ|jƒ}|dkrU|tjkr:tj|dƒntjd||fƒdS|dksy|tjƒjƒkr±t    |||d|ƒ}    |r­t
||||    ƒndSt j ƒj |ƒ}
|
sÚ|
jƒ rîtj|dƒdS|r|rd}n|rY|j|ƒ} | rF|| |dkrFtj|dƒdS|j||ƒni|d    6} |r|jƒ| d
<n|r’|| d<n|r¥d | d <ntjtj| |g|ƒdS( NitCrossInTransDatas.¹¦ÄÜËùÊô¿ç·þÒì³£! funcName=%s,crossServerID=%st    reqDataExt ServerNoOpeniièt RequestLatertfuncNameRait
needResult(R#RjtfcServerIDState_InTransDataRR|RRARRtCallPyPackFunct__doCrossPyPackRetRotGetSSServerMgrt GetSSServert IsServerOpent GetDictByKeytSetDictRMRhtSendToCrossServertS2C_CrossPyPack( Rt
clientDataRsttickRÕRÖtreqCDRÒR tisOKtssServertreqTickRn((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pytPyPackForwarding>s@  $        cCs®|d}|jdƒ}|jdƒ}d}|rPtj|ƒ}|sPdSnt|||||ƒ}d|krª|jdƒ||d<tjtj    ||g|ƒndS(NRÕRaRÒRÖRä(
R•RRdtReadRecPyPackDataRØR6RhRiRjtC2S_CrossPyPackRet(RnR R RÕRaRÒRáRä((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRàks
 
cCs–tjƒj|ƒ}|sdS|d}|jdƒ}|j|dƒd}|rptj|ƒ}|spdSn|jdƒ}t||||ƒdS(NRÕRaiRä(    RR0R1R•RÞRRdRèRÙ(RnR RRÕRaRáRä((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRé|s
c    Cs…tƒj|ƒ}|s0tjd||ƒdSt|ƒ}|sWtjd|ƒdStjƒjƒ}||||||ƒ}|S(Ns ÕÒ²»µ½¸ÃCrossPlayer! playerID=%ss·â°ü¹¦Äܺ¯ÊýÃû²»´æÔÚ! %s(R=R5RRAt GetCallFuncRtGetTick(    R RáRÕR RÒRCtcallFuncRâRä((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyR؎s cCs4d|}t|ƒ}|s dS||||ƒdS(Ns%s_Ret(Rê(RRáRÕRäRì((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRٞs 
 cCs½d}d|kr‡|jdƒ}t|ƒdkr¹|\}}t|ƒ}t||ƒr„t||ƒ}t|ƒr|}qq„q¹n2tƒ}||kr¹t||ƒr¹||}n|S(Ns.i(Rtsplittlent
__import__thasattrtgetattrtcallabletglobals(RÕRìtpartst
moduleNamet    func_nametmoduletfunctgDict((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyRê¨s         (((0RERR:RdRRˆR—RjR?RhR¹ReRoR¾RR.R=RDRR[R`RPRwRLRxRkR|RƒR„R}RR…R’RŠRBR4R†R¤R‹R‡RµRŒRçRàRéRØRÙRê(((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossPlayer.pyt<module>sX              1                    '           *                 #                 &-