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
ã}$\c@súddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
d„Z d„Z d„Z dddddd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „ZdS(iÿÿÿÿNcCs…|jƒ}tjddtƒ}|s+|Stjddtj|ƒƒ}|i|d6tj|ƒd6jdƒjtj    ƒƒ|S(NtMerget
NameFormats    OpName_%stopnametsidtgbk(
t GetPlayerNamet ReadChConfigtGetPyMongoConfigtTruet    GameWorldtGetPlayerPlatformtGetPlayerServerIDtdecodetencodetGetCharacterEncoding(t    curPlayert
playerNamet
nameFormattopName((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetCrossPlayerNames  cCsi|jƒ}tj|ƒ}tjtj||gƒtj|dƒ|jdƒt    j
d||ƒdS(Nis(PlayerExitCrossServer...serverGroupID=%s( t GetPlayerIDt PlayerControltGetPlayerServerGroupIDt CrossRealmMsgtSendMsgToClientServert ShareDefinetCrossServerMsg_ExitCrossServertSetCrossRealmStatetKickR    tLog(RtplayerIDt serverGroupID((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytPlayerExitCrossServer*s  cCsZ|}tjd|ƒtjƒj|ƒ}|sFtjd|ƒdStj|dƒdS(Ns3ÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄÍæ¼ÒÍ˳ö¿ç·þ·þÎñÆ÷: playerID=%ss    Í˳ö¿ç·þʱ±¾·þÍæ¼Ò²»ÔÚÏß!i(R    RtGetPlayerManagertFindPlayerByIDRR(tmsgDataRR((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR8sicCs€|jtj|ƒt||||||gƒ}|jddd|t|ƒƒtjd||||||f|jƒƒdS(Nit CrossRealmRegsRSendCrossRealmReg actionType=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s(    tSetDicttChConfigtDef_PlayerKey_MergeRegisterTypetstrtMapServer_QueryPlayerResulttlenR    RR(Rt
actionTypetmapIDt    dataMapIDt    copyMapIDtposXtposYtsysMsg((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytSendCrossRealmRegCs     #cCsþtjƒj|ƒ}|sdS|jtjƒ}tjd||ƒ|tjkrí|jtj    ƒ}|j
ƒ}||krœtjd||f|ƒdSi|j ƒd6|d6|d6}t j tj|ƒtjdt|ƒ|ƒn t||ƒdS(Ns¿ç·þ±¨Ãû³É¹¦ , actionType=%ssLÉÏ´«¿ç·þ·þÎñÆ÷µÄ regVSRoomID=%s ÓëÍæ¼Òµ±Ç°µÄ roomID=%s ²»Í¬!²»·¢ËÍ×¼±¸Íê±Ï£¡taccIDRtvsRoomIDs&֪ͨ¿ç·þ·þÎñÆ÷, Íæ¼ÒÆ¥ÅäPK×¼±¸Íê±Ï£¡%s(R    R!R"t GetDictByKeyR&R'RRtDef_CrossAction_PKt!Def_PlayerKey_MergeRegisterRoomIDt GetVsRoomIdtGetAccIDRtSendMsgToCrossServertClientServerMsg_PKPrepareOKR(tNotifyCanEnterMergeServer(RtmsgListttickRR+t regVSRoomIDR4tdataMsg((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnCrossRealmRegOKNs(       
 cCsdS(N((RR+((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR<tscCs?tjƒj|ƒ}tjd|jƒƒtj|dƒdS(s¡ Ô¼¶¨¸Ã·â°ü½öÍæ¼Òµ±Ç°´¦ÓÚ¿ç·þ״̬£¬µ«ÊÇÒ»Ö±Á¬²»ÉÏ¿ç·þ·þÎñÆ÷ʱ²Å»á·¢´Î°üÇ¿ÖÆÖØÖÿç·þ״̬
                Ò»°ãÊÇ¿ç·þ·þÎñÆ÷Òì³£»òÆäËû´íÎóµ¼ÖÂÎÞ·¨µÇ¼¿ç·þ·þÎñÆ÷
    s*ijЩÒì³£Çé¿öÏ£¬Ç°¶ËÇ¿ÖÆ·¢°üÍ˳ö¿ç·þ״̬! iN(R    R!tGetPlayerByIndextErrLogRRR(tindext
clientDataR>R((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnForceQuitCrossState~scCsÍtjƒrdStjƒj|ƒ}|jƒ}|j}tjj|ƒ}|røtj    d||ƒt
j ƒ}||_|j ƒ|_ t|j ƒ|_tj|ƒ|_t|jƒ|_tj|ƒ|_t|jƒ|_tj||ƒdS|tjkr¢d
}tj|\}    }
||
|krXtj    d||ƒt|||    ƒdSxGtjjƒD]3\} } || d|krhtjj| ƒqhqhWni|d6|d6} tjtj | ƒdS( Ns1²é¿´¿ç·þÍæ¼Ò£¬ÊDZ¾·þÍæ¼Ò£¬Ö±½Ó»Ø¸´!tagPlayerID=%sii<iès;²é¿´¿ç·þÍæ¼ÒÊý¾Ýͬ²½CDÖУ¬Ö±½ÓÓûº´æÊý¾Ý»Ø¸´!tagPlayerID=%sit tagPlayerIDRi,ià“(!R    t IsCrossServerR!RBRtPlayerIDtPlayerViewCachet ViewCacheMgrt    FindCachetDebugLogtChPyNetSendPackttagSCQueryPlayerCacheResultt GetPropDatatPropDataR*t PropDataSizet GetItemDatatItemDatat ItemDataSizet GetPlusDatatPlusDatat PlusDataSizet NetPackCommont SendFakePackt
PyGameDatatg_crossPlayerViewCachetSyncPlayerViewCrossPlayerInfotitemstpopRR:RtClientServerMsg_ViewPlayerCache(RDRER>RRRGtcurCachetsendPacktvalidChaheTimet    cacheInfotupdTickt crossPlayerIDt cacheInfoListR@((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnViewCrossPlayerInfoŽs>           cCs¢|d}|d}tjd|||fƒg}tjj|ƒ}|rv|jƒtj|ƒtj|ƒg}n|||g}tj    t
j ||gƒdS(NRGRsEÊÕµ½×Ó·þ²é¿´¿ç·þÍæ¼ÒÐÅÏ¢: serverGroupID=%s,playerID=%s,tagPlayerID=%s( R    RRJRKRLRPRSRVRRRt!CrossServerMsg_ViewPlayerCacheRet(RR#RGRRdRatviewPlayerCacheRet((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR`µs
 
*cCsk|\}}}tjd||fƒ||gtj|<tjƒj|ƒ}|rgt|||ƒndS(Ns<ÊÕµ½¿ç·þ·þÎñÆ÷»Ø¸´µÄ²é¿´Íæ¼ÒÐÅÏ¢: playerID=%s,tagPlayerID=%s(R    RR[R\R!R"R](R#R>RRGRdR((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRiÄscCs£|stj|dƒdS|\}}}tjƒ}||_||_t|jƒ|_||_t|jƒ|_    ||_
t|j
ƒ|_ t j ||ƒdS(NtViewPlayer_OffLine(Rt
NotifyCodeRNRORIRQR*RRRTRURWRXRYRZ(RRGRdRQRTRWRb((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR]Ñs                 (R    RRRR&RRJRNtIPY_PlayerDefineRYR[RR RR2RAR<RFRhR`RiR](((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt<module>s*                              &    
        '