cehua_wcy
2019-01-24 703b5101d2df9dc363d2d456f90b8d1836b603f7
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
iü=\c@soddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z d„Z dd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zdddddd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„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  icCs |tjkrdS|s(tjƒ}ntj|}tjƒ}t|d|ƒsXdSx¬tt|d|ƒƒƒD]Ž}t|d|ƒ|ƒ}|j    ƒ}x`|D]X}t
|t ƒrà|d|koÛ|dknsût
|t ƒr§||kr§|Sq§WquWdS(Ns
Get%sCounts Get%sByIndexii( tChConfigtDef_CrossZoneTableNameRtGetServerGroupIDt IpyGameDataPYtIPY_DatathasattrtxrangetgetattrtGetServerGroupIDListt
isinstancettupletint(tmapIDt serverGroupIDt    tableNamet
ipyDataMgrtitipyDatatserverGroupIDListtserverGroupIDInfo((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetServerCrossZoneIpyData;s   #  3 cCstjƒjtjƒS(N(Rt GetGameWorldt GetDictByKeyt ShareDefinet#Def_Notify_WorldKey_CrossServerOpen(((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytIsCrossServerOpenPscCsMtjƒjtjƒ}tjd|ƒtjtji|d6|gƒdS(Ns/×Ó·þÁ¬½Ó³É¹¦£¬Í¨Öªµ±Ç°¿ç·þ·þÎñÆ÷״̬: isOpen=%stisOpen(    RR$R%R&R'tLogt CrossRealmMsgtSendMsgToClientServertCrossServerMsg_CrossServerState(RR)((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytClientServerMsg_ServerInitOKTs 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_CrossServerCloseRR$tSetDictR&R'tGetPlayerManagerRtGetActivePlayerCounttGetActivePlayerAttNonet PlayerControlt SetCrossMapIDtKickR+R,R-(R)t playerManagerRR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytDoChangeCrossServerState[s  cCsÀ|d}|rdnd}tjd|ƒtjƒjtj|ƒ|s©tjƒ}xNt|jƒƒD]7}|j    |ƒ}|dkr’qknt j |dƒqkWntj tj|ƒdS(NR)iis)ÊÕµ½¿ç·þ·þÎñÆ÷״̬±ä¸ü: ÊÇ·ñÕý³£¿ª·ÅÖÐ=%s(RR*R$R2R&R'R3RR4R5R6R7R8tSendMapServerMsgEx(tmsgDataR)R:RR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR-os
  cCsytjƒsdS|jƒ}tj|ƒ}tjtj||gƒtj    |dƒ|j
dƒtj d||ƒdS(Nis(PlayerExitCrossServer...serverGroupID=%s( Rt IsCrossServert GetPlayerIDR7tGetPlayerServerGroupIDR+R,R&tCrossServerMsg_ExitCrossServerR8R9R*(R tplayerIDR((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytPlayerExitCrossServer‚s   cCsZ|}tjd|ƒtjƒj|ƒ}|sFtjd|ƒdStj|dƒdS(Ns3ÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄÍæ¼ÒÍ˳ö¿ç·þ·þÎñÆ÷: playerID=%ss    Í˳ö¿ç·þʱ±¾·þÍæ¼Ò²»ÔÚÏß!i(RR*R3tFindPlayerByIDR7R8(R=RBR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRA“scCs€|jtj|ƒt||||||gƒ}|jddd|t|ƒƒtjd||||||f|jƒƒdS(Nit CrossRealmRegsSSendCrossRealmReg registerMap=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s(    R2RtDef_PlayerKey_CrossRegisterMaptstrtMapServer_QueryPlayerResulttlenRR*R?(R t registerMapRt    dataMapIDt    copyMapIDtposXtposYtsysMsg((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytSendCrossRealmRegžs     #c    Cs>tjƒj|ƒ}|sdStƒs,dS|d}|jtjƒ}|r^||kr^dS|jtjdƒtjd||ƒ|tj    kr-|jtj
ƒ}|j ƒ}||krÜtjd||f|ƒdSi|j ƒd6|d6|d6}t jtj|ƒtjdt|ƒ|ƒn t||ƒdS(Nis¿ç·þ±¨Ãû³É¹¦ , registerMap=%ssLÉÏ´«¿ç·þ·þÎñÆ÷µÄ regVSRoomID=%s ÓëÍæ¼Òµ±Ç°µÄ roomID=%s ²»Í¬!²»·¢ËÍ×¼±¸Íê±Ï£¡taccIDRBtvsRoomIDs&֪ͨ¿ç·þ·þÎñÆ÷, Íæ¼ÒÆ¥ÅäPK×¼±¸Íê±Ï£¡%s(RR3RDR(R%RRFR2R*tDef_FBMapID_CrossRealmPKt!Def_PlayerKey_MergeRegisterRoomIDt GetVsRoomIdtGetAccIDR+tSendMsgToCrossServerR&tClientServerMsg_PKPrepareOKRGtNotifyCanEnterMergeServer(    RBtmsgListttickR RJtplayerRegisterMapt regVSRoomIDRRtdataMsg((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnCrossRealmRegOK©s4    
       
 cCsdS(N((R RJ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRYÕscCs?tjƒj|ƒ}tjd|jƒƒtj|dƒdS(s¡ Ô¼¶¨¸Ã·â°ü½öÍæ¼Òµ±Ç°´¦ÓÚ¿ç·þ״̬£¬µ«ÊÇÒ»Ö±Á¬²»ÉÏ¿ç·þ·þÎñÆ÷ʱ²Å»á·¢´Î°üÇ¿ÖÆÖØÖÿç·þ״̬
                Ò»°ãÊÇ¿ç·þ·þÎñÆ÷Òì³£»òÆäËû´íÎóµ¼ÖÂÎÞ·¨µÇ¼¿ç·þ·þÎñÆ÷
    s*ijЩÒì³£Çé¿öÏ£¬Ç°¶ËÇ¿ÖÆ·¢°üÍ˳ö¿ç·þ״̬! iN(RR3tGetPlayerByIndextErrLogR?R7R8(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 tagPlayerIDRBi,ià“(!RR>R3R`R?tPlayerIDtPlayerViewCachet ViewCacheMgrt    FindCachetDebugLogtChPyNetSendPackttagSCQueryPlayerCacheResultt GetPropDatatPropDataRIt PropDataSizet GetItemDatatItemDatat ItemDataSizet GetPlusDatatPlusDatat PlusDataSizet NetPackCommont SendFakePackt
PyGameDatatg_crossPlayerViewCachetSyncPlayerViewCrossPlayerInfotitemstpopR+RWR&tClientServerMsg_ViewPlayerCache(RbRcR[R RBRetcurCachetsendPacktvalidChaheTimet    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(NReRBsEÊÕµ½×Ó·þ²é¿´¿ç·þÍæ¼ÒÐÅÏ¢: serverGroupID=%s,playerID=%s,tagPlayerID=%s( RR*RgRhRiRmRpRsR+R,R&t!CrossServerMsg_ViewPlayerCacheRet(RR=ReRBRR~tviewPlayerCacheRet((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR}s
 
*cCsk|\}}}tjd||fƒ||gtj|<tjƒj|ƒ}|rgt|||ƒndS(Ns<ÊÕµ½¿ç·þ·þÎñÆ÷»Ø¸´µÄ²é¿´Íæ¼ÒÐÅÏ¢: playerID=%s,tagPlayerID=%s(RR*RxRyR3RDRz(R=R[RBReRR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR†%scCs£|stj|dƒdS|\}}}tjƒ}||_||_t|jƒ|_||_t|jƒ|_    ||_
t|j
ƒ|_ t j ||ƒdS(NtViewPlayer_OffLine(R7t
NotifyCodeRkRlRfRnRIRoRqRrRtRuRvRw(R ReRRnRqRtR((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRz2s                 c 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ÊÕµ½¿ç·þ·þÎñÆ÷»ñµÃÎïÆ·!RfRqtEventitCrossPutInItems5ÊÕµ½¿ç·þ»ñµÃÎïÆ·£¬Íæ¼Ò²»ÔÚÏߣ¬Ö±½Ó·¢Óʼþ! itemInfo=%stItemIDtCounttIsBindtUserDatattdetaili(
RRjR3RDRGRHRIR*tPlayerCompensationt SendMailByKey( titemInfoRBtitemDatateventR titemMsgtitemIDt    itemCounttisBindt itemUserDatat addItemList((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytCrossServerMsg_PutInItemBs 
 
 
 %*cCsr|d}tjƒj|ƒ}|sCtjdt|ƒ|ƒdSt|ƒ}|jddd|t|ƒƒdS(NRfs$¿ç·þ»ñµÃ»õ±ÒÊ±Íæ¼Ò²»ÔÚÏß! msgInfo=%sitCrossGiveMoney(RR3RDRaRGRHRI(tmsgInfoRBR ((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytCrossServerMsg_GiveMoneyVs
 cCsƒ|\}}}}tjs7tjƒjtj|ƒntjj|gƒ}|j||gƒ|tj|<|st    dƒndS(Ni(
Rxtg_crossSetPlayerAttrRR$R2Rt#Def_WorldKey_CrossSetPlayerAttrTicktgettappendt__SendCrossServerSetPlayerAttr(RŸR[RBtsetTypetsetDicttisDelaytplayerSetInfoList((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytSetCrossPlayerAttrValuebs      cCst|ƒdS(N(R¥(R[((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnCrossProcessns
cCsxtjs dS|rU|tjƒjtjƒdkr9dStjƒjtj|ƒntj    t
j tjƒit_dS(Ni
ièi'( RxR¡RR$R%RR¢R2R+RWR&t"ClientServerMsg_SetPlayerAttrValue(R[((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR¥rs    "    ("RR&R+RRR7RgR’RkR/RvRRxRR#R(R.R;R-RCRARPR_RYRdR…R}R†RzRR RªR«R¥(((s[E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt<module>sB                                                ,    
        '