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
f&\c@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
d„Z d„Z d„Z d„Zd„Zd„Zd„Zd    d    d    d    d    d
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„ZdS(iÿÿÿÿNcCsd|jƒ}tjddtj|ƒtj|ƒfƒ}|sD|S|jdƒjtjƒƒ|S(NtMerges OpName_%s_%stgbk(    t GetPlayerNamet ReadChConfigtGetPyMongoConfigt    GameWorldtGetPlayerPlatformtGetPlayerServerSIDtdecodetencodetGetCharacterEncoding(t    curPlayert
playerNametopName((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetCrossPlayerName-s  cCstjƒjtjƒS(N(Rt GetGameWorldt GetDictByKeyt ShareDefinet#Def_Notify_WorldKey_CrossServerOpen(((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytIsCrossServerOpen9scCsMtjƒjtjƒ}tjd|ƒtjtji|d6|gƒdS(Ns/×Ó·þÁ¬½Ó³É¹¦£¬Í¨Öªµ±Ç°¿ç·þ·þÎñÆ÷״̬: isOpen=%stisOpen(    RRRRRtLogt CrossRealmMsgtSendMsgToClientServertCrossServerMsg_CrossServerState(t serverGroupIDR((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytClientServerMsg_ServerInitOK=s cCsÆtjtj|rdndƒtjƒjtj|ƒ|s¨tjƒ}x[t    |j
ƒƒD]D}|j |ƒ}|dkr„q]nt j|dƒ|jdƒq]Wntjtji|d6ƒdS(NiiR(tPlayerDBGSEventtSetDBGSTrig_ByKeytDef_CrossServerCloseRRtSetDictRRtGetPlayerManagertxrangetGetActivePlayerCounttGetActivePlayerAttNonet PlayerControltSetCrossRealmStatetKickRRR(Rt playerManagertiR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytDoChangeCrossServerStateDs  cCsÀ|d}|rdnd}tjd|ƒtjƒjtj|ƒ|s©tjƒ}xNt|jƒƒD]7}|j    |ƒ}|dkr’qknt j |dƒqkWntj tj|ƒdS(NRiis)ÊÕµ½¿ç·þ·þÎñÆ÷״̬±ä¸ü: ÊÇ·ñÕý³£¿ª·ÅÖÐ=%s(RRRRRRRR R!R"R#R$R%tSendMapServerMsgEx(tmsgDataRR'R(R ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRXs
  cCsytjƒsdS|jƒ}tj|ƒ}tjtj||gƒtj    |dƒ|j
dƒtj d||ƒdS(Nis(PlayerExitCrossServer...serverGroupID=%s( Rt IsCrossServert GetPlayerIDR$tGetPlayerServerGroupIDRRRtCrossServerMsg_ExitCrossServerR%R&R(R tplayerIDR((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytPlayerExitCrossServerks   cCsZ|}tjd|ƒtjƒj|ƒ}|sFtjd|ƒdStj|dƒdS(Ns3ÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄÍæ¼ÒÍ˳ö¿ç·þ·þÎñÆ÷: playerID=%ss    Í˳ö¿ç·þʱ±¾·þÍæ¼Ò²»ÔÚÏß!i(RRRtFindPlayerByIDR$R%(R+R0R ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR/|sicCs€|jtj|ƒt||||||gƒ}|jddd|t|ƒƒtjd||||||f|jƒƒdS(Nit CrossRealmRegsRSendCrossRealmReg actionType=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s(    RtChConfigtDef_PlayerKey_MergeRegisterTypetstrtMapServer_QueryPlayerResulttlenRRR-(R t
actionTypetmapIDt    dataMapIDt    copyMapIDtposXtposYtsysMsg((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytSendCrossRealmReg‡s     #cCs tjƒj|ƒ}|sdStƒs,dS|jtjƒ}tjd||ƒ|tj    krú|jtj
ƒ}|j ƒ}||kr©tjd||f|ƒdSi|j ƒd6|d6|d6}t jtj|ƒtjdt|ƒ|ƒn t||ƒdS(Ns¿ç·þ±¨Ãû³É¹¦ , actionType=%ssLÉÏ´«¿ç·þ·þÎñÆ÷µÄ regVSRoomID=%s ÓëÍæ¼Òµ±Ç°µÄ roomID=%s ²»Í¬!²»·¢ËÍ×¼±¸Íê±Ï£¡taccIDR0tvsRoomIDs&֪ͨ¿ç·þ·þÎñÆ÷, Íæ¼ÒÆ¥ÅäPK×¼±¸Íê±Ï£¡%s(RRR2RRR4R5RRtDef_CrossAction_PKt!Def_PlayerKey_MergeRegisterRoomIDt GetVsRoomIdtGetAccIDRtSendMsgToCrossServertClientServerMsg_PKPrepareOKR6tNotifyCanEnterMergeServer(R0tmsgListttickR R9t regVSRoomIDRBtdataMsg((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnCrossRealmRegOK’s,           
 cCsdS(N((R R9((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRI»scCs?tjƒj|ƒ}tjd|jƒƒtj|dƒdS(s¡ Ô¼¶¨¸Ã·â°ü½öÍæ¼Òµ±Ç°´¦ÓÚ¿ç·þ״̬£¬µ«ÊÇÒ»Ö±Á¬²»ÉÏ¿ç·þ·þÎñÆ÷ʱ²Å»á·¢´Î°üÇ¿ÖÆÖØÖÿç·þ״̬
                Ò»°ãÊÇ¿ç·þ·þÎñÆ÷Òì³£»òÆäËû´íÎóµ¼ÖÂÎÞ·¨µÇ¼¿ç·þ·þÎñÆ÷
    s*ijЩÒì³£Çé¿öÏ£¬Ç°¶ËÇ¿ÖÆ·¢°üÍ˳ö¿ç·þ״̬! iN(RRtGetPlayerByIndextErrLogR-R$R%(tindext
clientDataRKR ((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 tagPlayerIDR0i,ià“(!RR,RROR-tPlayerIDtPlayerViewCachet ViewCacheMgrt    FindCachetDebugLogtChPyNetSendPackttagSCQueryPlayerCacheResultt GetPropDatatPropDataR8t PropDataSizet GetItemDatatItemDatat ItemDataSizet GetPlusDatatPlusDatat PlusDataSizet NetPackCommont SendFakePackt
PyGameDatatg_crossPlayerViewCachetSyncPlayerViewCrossPlayerInfotitemstpopRRGRtClientServerMsg_ViewPlayerCache(RQRRRKR R0RTtcurCachetsendPacktvalidChaheTimet    cacheInfotupdTickt crossPlayerIDt cacheInfoListRM((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(NRTR0sEÊÕµ½×Ó·þ²é¿´¿ç·þÍæ¼ÒÐÅÏ¢: serverGroupID=%s,playerID=%s,tagPlayerID=%s( RRRVRWRXR\R_RbRRRt!CrossServerMsg_ViewPlayerCacheRet(RR+RTR0RpRmtviewPlayerCacheRet((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRlüs
 
*cCsk|\}}}tjd||fƒ||gtj|<tjƒj|ƒ}|rgt|||ƒndS(Ns<ÊÕµ½¿ç·þ·þÎñÆ÷»Ø¸´µÄ²é¿´Íæ¼ÒÐÅÏ¢: playerID=%s,tagPlayerID=%s(RRRgRhRR2Ri(R+RKR0RTRpR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRu scCs£|stj|dƒdS|\}}}tjƒ}||_||_t|jƒ|_||_t|jƒ|_    ||_
t|j
ƒ|_ t j ||ƒdS(NtViewPlayer_OffLine(R$t
NotifyCodeRZR[RUR]R8R^R`RaRcRdReRf(R RTRpR]R`RcRn((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRis                 (RRRRR4R$RVRZRReRgRRRR)RR1R/R@RNRIRSRtRlRuRi(((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt<module>s2                                              )    
        '