hch
2025-03-06 01623bc43760c5f7ac93debd47a7860b482f293c
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
K”sgc@s¢ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z d„Z d„Zd„Zd„Zd„Zd„Zd„Zd    d
„Zd „Zd „Zd „Zd„Zd„Zd    d    d    d    d    d    d„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#e$d„Z%d„Z&d„Z'dS(iÿÿÿÿNcCsd|jƒ}tjddtj|ƒtj|ƒfƒ}|sD|S|jdƒjtjƒƒ|S(NtMerges OpName_%s_%stgbk(    tGetNamet ReadChConfigtGetPyMongoConfigt    GameWorldtGetPlayerPlatformtGetPlayerServerSIDtdecodetencodetGetCharacterEncoding(t    curPlayert
playerNametopName((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetCrossPlayerName/s  cCs4tjj|dƒ}tjƒ}tj|||ƒS(Nt CrossZoneComm(tChConfigtDef_CrossZoneTypeNametgetRtGetCrossZoneNamet IpyGameDataPYtGetIpyGameData(tmapIDtzoneIDt zoneTypeNamet crossZoneName((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetCrossZoneIpyDataByZoneID;s cCsåtjj|dƒ}tjƒ}tj|i|d6tƒ}|sGdSx}|D]u}|jƒ}x`|D]X}t    |t
ƒr |d|ko›|dkns»t    |t ƒrg||krg|SqgWqNWtj d|||fƒdS(NRt CrossZoneNameiisEûÓÐÕÒµ½¿ç·þÍæ·¨¶ÔÓ¦·ÖÇø! mapID=%s, serverGroupID=%s, zoneTypeName=%s( RRRRRRtGetIpyGameDataByConditiontTruetGetServerGroupIDListt
isinstancettupletinttErrLog(Rt serverGroupIDRRt ipyDataListtipyDatatserverGroupIDListtserverGroupIDInfo((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt"GetCrossZoneIpyDataByServerGroupIDAs    3 cCsl|r+t||ƒ}|sdS|g}n=tjƒ}tjj|dƒ}tj|i|d6tƒ}|S(NRR(    R(RRRRRRRR(RR#R%R$RR((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt&GetCrossZoneIpyDataListByServerGroupIDQs  cCsÂd}tjƒ}tj|i|d6tƒ}|s8dSxƒ|D]{}|jƒ}xf|D]^}t|tƒr‘|d|koŒ|dkns¬t|tƒrX||krX|j    ƒSqXWq?WdS(NRRii(
RRRRRRRR R!t    GetZoneID(R#RRR$R%R&R'((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetServerCommCrossZoneID^s    3cCs7|tjkrdStj|}tj|i|d6ƒS(NtZoneID(RtDef_CrossZoneMapTableNameRR(RRt    tableName((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetServerCrossZoneMapIpyDatams cCstjƒjtjƒS(N(Rt GetGameWorldt GetDictByKeyt ShareDefinet#Def_Notify_WorldKey_CrossServerOpen(((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytIsCrossServerOpentsicCs{tjƒjtjƒ}tjƒ}tjd|||fƒ|rM|gng}tjtj    i|d6|d6|ƒdS(sP Í¬²½¿ç·þ³£¹æÍ¨ÓÃÊý¾Ýµ½×Ó·þÎñÆ÷
    @param serverGroupID: Îª0ʱͬ²½ËùÓÐ×Ó·þ
    sG֪ͨµ±Ç°¿ç·þ·þÎñÆ÷״̬: isOpen=%s,crossZoneName=%s,syncServerGroupID=%stisOpenRN(
RR0R1R2R3RtLogt CrossRealmMsgtSendMsgToClientServertCrossServerMsg_CrossServerState(R#R5RR&((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt$Sync_CrossCommInitDataToClientServerxs  $cCsÆtjtj|rdndƒtjƒjtj|ƒ|s¨tjƒ}x[t    |j
ƒƒD]D}|j |ƒ}|dkr„q]nt j|dƒ|jdƒq]Wntjtji|d6ƒdS(NiiR5(tPlayerDBGSEventtSetDBGSTrig_ByKeytDef_CrossServerCloseRR0tSetDictR2R3tGetPlayerManagertxrangetGetActivePlayerCounttGetActivePlayerAttNonet PlayerControlt SetCrossMapIDtKickR7R8R9(R5t playerManagertiR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytDoChangeCrossServerState„s  cCsd|kr2|dt_tjtjtjƒn|d}|rHdnd}tjd|ƒtjƒjtj    |ƒ|sÛtj
ƒ}xNt |j ƒƒD]7}|j |ƒ}|dkrÄqntj|dƒqWntjƒj|ƒtjtj    |ƒdS(NRR5iis)ÊÕµ½¿ç·þ·þÎñÆ÷״̬±ä¸ü: ÊÇ·ñÕý³£¿ª·ÅÖÐ=%s(t
PyGameDatatg_crossZoneNameRtSendMapServerMsgExR2t!Def_Notify_WorldKey_CrossZoneNameR6R0R>R3R?R@RARBRCRDREt!SendCrossServerStateToLoginServer(tmsgDataR5RGRHR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR9˜s"  
  cCsytjƒsdS|jƒ}tj|ƒ}tjtj||gƒtj    |dƒ|j
dƒtj d||ƒdS(Nis(PlayerExitCrossServer...serverGroupID=%s( Rt IsCrossServert GetPlayerIDRDtGetPlayerServerGroupIDR7R8R2tCrossServerMsg_ExitCrossServerRERFR6(R tplayerIDR#((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytPlayerExitCrossServer°s   cCsd|}tjd|ƒtjƒj|ƒ}|sPtjd|ƒt|ƒdStj|dƒdS(Ns3ÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄÍæ¼ÒÍ˳ö¿ç·þ·þÎñÆ÷: playerID=%ss    Í˳ö¿ç·þʱ±¾·þÍæ¼Ò²»ÔÚÏß!i(RR6R?tFindPlayerByIDtDoOfflinePlayerExitCrossServerRDRE(RORTR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRSÁs
cCs(tjtji|d6idd6ƒdS(NtPlayerIDitExAttr5(t PlayerDBOpert UpdateDBOpertTable_DBPlayer(RT((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRWÍs$c    Csƒ|jtj|ƒt|||||||gƒ}|jddd|t|ƒƒtjd||||||f|jƒƒdS(Nit CrossRealmRegsSSendCrossRealmReg registerMap=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s(    R>RtDef_PlayerKey_CrossRegisterMaptstrtMapServer_QueryPlayerResulttlenRR6RQ(    R t registerMapRt    dataMapIDt    copyMapIDtposXtposYtlineIDtsysMsg((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytSendCrossRealmRegÓs !    #cCs¨tjƒj|ƒ}|sdStƒs,dS|d}|jtjƒ}|r^||kr^dS|jtjdƒtjd||ƒ|tj    kr—n t
||ƒdS(Nis¿ç·þ±¨Ãû³É¹¦ , registerMap=%s( RR?RVR4R1RR^R>R6tDef_FBMapID_CrossRealmPKtNotifyCanEnterMergeServer(RTtmsgListttickR RbtplayerRegisterMap((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnCrossRealmRegOKàs    
 cCsdS(N((R Rb((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRkþscCs?tjƒj|ƒ}tjd|jƒƒtj|dƒdS(s¡ Ô¼¶¨¸Ã·â°ü½öÍæ¼Òµ±Ç°´¦ÓÚ¿ç·þ״̬£¬µ«ÊÇÒ»Ö±Á¬²»ÉÏ¿ç·þ·þÎñÆ÷ʱ²Å»á·¢´Î°üÇ¿ÖÆÖØÖÿç·þ״̬
                Ò»°ãÊÇ¿ç·þ·þÎñÆ÷Òì³£»òÆäËû´íÎóµ¼ÖÂÎÞ·¨µÇ¼¿ç·þ·þÎñÆ÷
    s*ijЩÒì³£Çé¿öÏ£¬Ç°¶ËÇ¿ÖÆ·¢°üÍ˳ö¿ç·þ״̬! iN(RR?tGetPlayerByIndexR"RQRDRE(tindext
clientDataRmR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnForceQuitCrossStatesc Csôtjdƒ|d}|d}|d}tjƒj|ƒ}|rut|ƒ}|jddd|t|ƒƒdStjdt|ƒ|ƒ|\}}}}    i|d6|d    6|d
6|    d 6g}
tj    d |g|
d idd6|d6ƒdS(NsÊÕµ½¿ç·þ·þÎñÆ÷»ñµÃÎïÆ·!RXtItemDatatEventitCrossPutInItems5ÊÕµ½¿ç·þ»ñµÃÎïÆ·£¬Íæ¼Ò²»ÔÚÏߣ¬Ö±½Ó·¢Óʼþ! itemInfo=%stItemIDtCountt IsAuctionItemtUserDatattdetaili(
RtDebugLogR?RVR_R`RaR6tPlayerCompensationt SendMailByKey( titemInfoRTtitemDatateventR titemMsgtitemIDt    itemCounttisBindt itemUserDatat addItemList((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytCrossServerMsg_PutInItems 
 
 
 %*cCsr|d}tjƒj|ƒ}|sCtjdt|ƒ|ƒdSt|ƒ}|jddd|t|ƒƒdS(NRXs$¿ç·þ»ñµÃ»õ±ÒÊ±Íæ¼Ò²»ÔÚÏß! msgInfo=%sitCrossGiveMoney(RR?RVR"R_R`Ra(tmsgInfoRTR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytCrossServerMsg_GiveMoney%s
 cCsƒ|\}}}}tjs7tjƒjtj|ƒntjj|gƒ}|j||gƒ|tj|<|st    dƒndS(Ni(
RJtg_crossSetPlayerAttrRR0R>Rt#Def_WorldKey_CrossSetPlayerAttrTickRtappendt__SendCrossServerSetPlayerAttr(R‹RmRTtsetTypetsetDicttisDelaytplayerSetInfoList((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytSetCrossPlayerAttrValue1s      cCst|ƒdS(N(R(Rm((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnCrossProcess=s
cCsxtjs dS|rU|tjƒjtjƒdkr9dStjƒjtj|ƒntj    t
j tjƒit_dS(Ni
ièi'( RJRRR0R1RRŽR>R7tSendMsgToCrossServerR2t"ClientServerMsg_SetPlayerAttrValue(Rm((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRAs    "    cCs%tƒs dSt|ƒt|ƒdS(N(R4tSync_CrossZoneInfotLoginDoUnNotifyCrossMsg(R ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt OnPlayerLoginOs
    
 
cCsÆtjƒj|ƒ}|rV|jƒrVt|ƒ}|jdd||t|ƒƒ|S|tjkrugtj|<ntj|}|j    ||gƒtj
d||f|ƒ|rÂt |ƒndS(Nis0Íæ¼Ò²»ÔÚÏߣ¬Ìí¼Óδ֪ͨµÄ¿ç·þÃüÁî: %s, msgInfo=%s( RR?RVt    GetInitOKR_R`RaRJtg_unNotifyPlayerCrossMsgDictRR6RW(RTtcallNameR‹tofflineExitCrossR Rl((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt MapServer_QueryCrossPlayerResultWs   cCs‹|jƒ}tjj|gƒ}|s+dSxY|D]Q\}}tjd||f|ƒt|ƒ}|jdd||t|ƒƒq2WdS(Ns(ÉÏÏß´¦Àíδ֪ͨµÄ¿ç·þÃüÁî: %s, msgInfo=%si(    RQRJRtpopRR6R_R`Ra(R RTRlRžR‹((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRšjs  #cCs5tjƒ}ttjƒƒ|_tj||ƒdS(N(tChPyNetSendPackttagGCCrossZoneInfoR+RtGetServerGroupIDt
CommZoneIDt NetPackCommont SendFakePack(R t
clientPack((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR™us ((RR2R7RRRDR~R¢R;R¦RRJRZRRR(R)R+R/R4R:RIR9RURSRWRiRoRkRsR‰RŒR•R–RR›tFalseR RšR™(((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt<module>sL