cehua-HWJ35
2019-03-07 cd6fbfa9dce9c101fe7a819c811036cfbbefab8d
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
T*z\c@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z d„Z d„Zd„Zd„Zdd„Zd„Zdd    „Zd
„Zd „Zd „Zd „Zdddddd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!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((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetCrossPlayerName/s  cCs%tjƒ}tjd||ƒ}|S(Nt CrossZoneComm(RtGetCrossZoneNamet IpyGameDataPYtGetIpyGameDataNotLog(tzoneIDt crossZoneNametipyData((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetCrossCommZoneIpyDataByZoneID;s cCs¶tjƒ}tjdi|d6tƒ}|s2dSx}|D]u}|jƒ}x`|D]X}t|tƒr‹|d|ko†|dkns¦t|tƒrR||krR|SqRWq9WdS(NRt CrossZoneNameii(    RRRtGetIpyGameDataByConditiontTruetGetServerGroupIDListt
isinstancettupletint(t serverGroupIDRt ipyDataListRtserverGroupIDListtserverGroupIDInfo((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt&GetCrossCommZoneIpyDataByServerGroupIDAs    3 cCsT|r(t|ƒ}|sdS|g}n(tjƒ}tjdi|d6tƒ}|S(NRR(R"RRRRR(RRRR((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt*GetCrossCommZoneIpyDataListByServerGroupIDOs   icCs~|tjkrdStj|}|sEtjƒr6dStjƒ}nt|ƒ}|s[dS|jƒ}tj|i|d6ƒS(NtZoneID(    tChConfigtDef_CrossZoneMapTableNameRt IsCrossServertGetServerGroupIDR"t    GetZoneIDRR(tmapIDRt    tableNamet zoneIpyDatat
commZoneID((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytGetServerCrossZoneMapIpyData[s    cCstjƒjtjƒS(N(Rt GetGameWorldt GetDictByKeyt ShareDefinet#Def_Notify_WorldKey_CrossServerOpen(((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytIsCrossServerOpenjscCs{tjƒjtjƒ}tjƒ}tjd|||fƒ|rM|gng}tjtj    i|d6|d6|ƒdS(sP Í¬²½¿ç·þ³£¹æÍ¨ÓÃÊý¾Ýµ½×Ó·þÎñÆ÷
    @param serverGroupID: Îª0ʱͬ²½ËùÓÐ×Ó·þ
    sG֪ͨµ±Ç°¿ç·þ·þÎñÆ÷״̬: isOpen=%s,crossZoneName=%s,syncServerGroupID=%stisOpenRN(
RR/R0R1R2RtLogt CrossRealmMsgtSendMsgToClientServertCrossServerMsg_CrossServerState(RR4RR ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt$Sync_CrossCommInitDataToClientServerns  $cCsÆtjtj|rdndƒtjƒjtj|ƒ|s¨tjƒ}x[t    |j
ƒƒD]D}|j |ƒ}|dkr„q]nt j|dƒ|jdƒq]Wntjtji|d6ƒdS(NiiR4(tPlayerDBGSEventtSetDBGSTrig_ByKeytDef_CrossServerCloseRR/tSetDictR1R2tGetPlayerManagertxrangetGetActivePlayerCounttGetActivePlayerAttNonet PlayerControlt SetCrossMapIDtKickR6R7R8(R4t playerManagertiR ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytDoChangeCrossServerStatezs  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(NRR4iis)ÊÕµ½¿ç·þ·þÎñÆ÷״̬±ä¸ü: ÊÇ·ñÕý³£¿ª·ÅÖÐ=%s(t
PyGameDatatg_crossZoneNameRtSendMapServerMsgExR1t!Def_Notify_WorldKey_CrossZoneNameR5R/R=R2R>R?R@RARBRCRDt!SendCrossServerStateToLoginServer(tmsgDataR4RFRGR ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR8Žs"  
  cCsytjƒsdS|jƒ}tj|ƒ}tjtj||gƒtj    |dƒ|j
dƒtj d||ƒdS(Nis(PlayerExitCrossServer...serverGroupID=%s( RR't GetPlayerIDRCtGetPlayerServerGroupIDR6R7R1tCrossServerMsg_ExitCrossServerRDRER5(R tplayerIDR((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytPlayerExitCrossServer¦s   cCsZ|}tjd|ƒtjƒj|ƒ}|sFtjd|ƒdStj|dƒdS(Ns3ÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄÍæ¼ÒÍ˳ö¿ç·þ·þÎñÆ÷: playerID=%ss    Í˳ö¿ç·þʱ±¾·þÍæ¼Ò²»ÔÚÏß!i(RR5R>tFindPlayerByIDRCRD(RNRRR ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRQ·scCs€|jtj|ƒt||||||gƒ}|jddd|t|ƒƒtjd||||||f|jƒƒdS(Nit CrossRealmRegsSSendCrossRealmReg registerMap=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s(    R=R%tDef_PlayerKey_CrossRegisterMaptstrtMapServer_QueryPlayerResulttlenRR5RO(R t registerMapR*t    dataMapIDt    copyMapIDtposXtposYtsysMsg((sL.\\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 ²»Í¬!²»·¢ËÍ×¼±¸Íê±Ï£¡taccIDRRtvsRoomIDs&֪ͨ¿ç·þ·þÎñÆ÷, Íæ¼ÒÆ¥ÅäPK×¼±¸Íê±Ï£¡%s(RR>RTR3R0R%RVR=R5tDef_FBMapID_CrossRealmPKt!Def_PlayerKey_MergeRegisterRoomIDt GetVsRoomIdtGetAccIDR6tSendMsgToCrossServerR1tClientServerMsg_PKPrepareOKRWtNotifyCanEnterMergeServer(    RRtmsgListttickR RZtplayerRegisterMapt regVSRoomIDRbtdataMsg((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnCrossRealmRegOKÍs4    
       
 cCsdS(N((R RZ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRiùscCs?tjƒj|ƒ}tjd|jƒƒtj|dƒdS(s¡ Ô¼¶¨¸Ã·â°ü½öÍæ¼Òµ±Ç°´¦ÓÚ¿ç·þ״̬£¬µ«ÊÇÒ»Ö±Á¬²»ÉÏ¿ç·þ·þÎñÆ÷ʱ²Å»á·¢´Î°üÇ¿ÖÆÖØÖÿç·þ״̬
                Ò»°ãÊÇ¿ç·þ·þÎñÆ÷Òì³£»òÆäËû´íÎóµ¼ÖÂÎÞ·¨µÇ¼¿ç·þ·þÎñÆ÷
    s*ijЩÒì³£Çé¿öÏ£¬Ç°¶ËÇ¿ÖÆ·¢°üÍ˳ö¿ç·þ״̬! iN(RR>tGetPlayerByIndextErrLogRORCRD(tindext
clientDataRkR ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnForceQuitCrossStatescCsÍ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 tagPlayerIDRRi,ià“(!RR'R>RpROtPlayerIDtPlayerViewCachet ViewCacheMgrt    FindCachetDebugLogtChPyNetSendPackttagSCQueryPlayerCacheResultt GetPropDatatPropDataRYt PropDataSizet GetItemDatatItemDatat ItemDataSizet GetPlusDatatPlusDatat PlusDataSizet NetPackCommont SendFakePackRItg_crossPlayerViewCachetSyncPlayerViewCrossPlayerInfotitemstpopR6RgR1tClientServerMsg_ViewPlayerCache(RrRsRkR RRRutcurCachetsendPacktvalidChaheTimet    cacheInfotupdTickt crossPlayerIDt cacheInfoListRn((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnViewCrossPlayerInfos>           cCs¢|d}|d}tjd|||fƒg}tjj|ƒ}|rv|jƒtj|ƒtj|ƒg}n|||g}tj    t
j ||gƒdS(NRuRRsEÊÕµ½×Ó·þ²é¿´¿ç·þÍæ¼ÒÐÅÏ¢: serverGroupID=%s,playerID=%s,tagPlayerID=%s( RR5RwRxRyR}R€RƒR6R7R1t!CrossServerMsg_ViewPlayerCacheRet(RRNRuRRRRtviewPlayerCacheRet((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyRŒ:s
 
*cCsk|\}}}tjd||fƒ||gtj|<tjƒj|ƒ}|rgt|||ƒndS(Ns<ÊÕµ½¿ç·þ·þÎñÆ÷»Ø¸´µÄ²é¿´Íæ¼ÒÐÅÏ¢: playerID=%s,tagPlayerID=%s(RR5RIRˆR>RTR‰(RNRkRRRuRR ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR•IscCs£|stj|dƒdS|\}}}tjƒ}||_||_t|jƒ|_||_t|jƒ|_    ||_
t|j
ƒ|_ t j ||ƒdS(NtViewPlayer_OffLine(RCt
NotifyCodeR{R|RvR~RYRRR‚R„R…R†R‡(R RuRR~RR„RŽ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR‰Vs                 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ÊÕµ½¿ç·þ·þÎñÆ÷»ñµÃÎïÆ·!RvRtEventitCrossPutInItems5ÊÕµ½¿ç·þ»ñµÃÎïÆ·£¬Íæ¼Ò²»ÔÚÏߣ¬Ö±½Ó·¢Óʼþ! itemInfo=%stItemIDtCounttIsBindtUserDatattdetaili(
RRzR>RTRWRXRYR5tPlayerCompensationt SendMailByKey( titemInfoRRtitemDatateventR titemMsgtitemIDt    itemCounttisBindt itemUserDatat addItemList((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytCrossServerMsg_PutInItemfs 
 
 
 %*cCsr|d}tjƒj|ƒ}|sCtjdt|ƒ|ƒdSt|ƒ}|jddd|t|ƒƒdS(NRvs$¿ç·þ»ñµÃ»õ±ÒÊ±Íæ¼Ò²»ÔÚÏß! msgInfo=%sitCrossGiveMoney(RR>RTRqRWRXRY(tmsgInfoRRR ((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytCrossServerMsg_GiveMoneyzs
 cCsƒ|\}}}}tjs7tjƒjtj|ƒntjj|gƒ}|j||gƒ|tj|<|st    dƒndS(Ni(
RItg_crossSetPlayerAttrRR/R=R%t#Def_WorldKey_CrossSetPlayerAttrTicktgettappendt__SendCrossServerSetPlayerAttr(R®RkRRtsetTypetsetDicttisDelaytplayerSetInfoList((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytSetCrossPlayerAttrValue†s      cCst|ƒdS(N(R´(Rk((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pytOnCrossProcess’s
cCsxtjs dS|rU|tjƒjtjƒdkr9dStjƒjtj|ƒntj    t
j tjƒit_dS(Ni
ièi'( RIR°RR/R0R%R±R=R6RgR1t"ClientServerMsg_SetPlayerAttrValue(Rk((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyR´–s    "    (%RR1R6RR%RCRwR¡R{R:R†RRIRRR"R#R.R3R9RHR8RSRQR`RoRiRtR”RŒR•R‰R¬R¯R¹RºR´(((sL.\\ServerPython\CoreServerGroup\GameServer\Script\Player\CrossRealmPlayer.pyt<module>sH                                                          ,    
        '