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
 
¬hc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
d„Z d„Z d„Z d„Zd„Zd„Zed„Zed    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„ZdS(iÿÿÿÿNcCsmi}|jƒ|d<|jƒ|d<|jƒ|d<|jƒ|d<t|ƒ|d<tj|ƒ|d<|S(NtAccIDtLVtRealmLVtJobtNamet
FightPower(tGetAccIDtGetLVtGetOfficialRanktGetJobtGetCrossPlayerNamet PlayerControlt GetFightPower(t    curPlayertPropData((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytGetPlayerCrossPropDataShortscCsd|jƒ}tjddtj|ƒtj|ƒfƒ}|sD|S|jdƒjtjƒƒ|S(NtMerges OpName_%s_%stgbk(    t GetPlayerNamet ReadChConfigtGetPyMongoConfigt    GameWorldtGetPlayerPlatformtGetPlayerServerSIDtdecodetencodetGetCharacterEncoding(R t
playerNametopName((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pyR
)s  cCs2tj|ƒ}t||ƒ}|s(dS|jƒS(Ni(R tGetPlayerServerGroupIDt"GetCrossZoneIpyDataByServerGroupIDt    GetZoneID(R tmapIDt serverGroupIDt zoneIpyData((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytGetCrossPlayerZoneID5s
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(Nt CrossZoneCommt CrossZoneNameiisEûÓÐÕÒµ½¿ç·þÍæ·¨¶ÔÓ¦·ÖÇø! mapID=%s, serverGroupID=%s, zoneTypeName=%s( tChConfigtDef_CrossZoneTypeNametgetRtGetCrossZoneNamet IpyGameDataPYtGetIpyGameDataByConditiontTruetGetServerGroupIDListt
isinstancettupletinttErrLog(R R!t zoneTypeNamet crossZoneNamet ipyDataListtipyDatatserverGroupIDListtserverGroupIDInfo((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pyR=s    3 cCs7|tjkrdStj|}tj|i|d6ƒS(NtZoneID(R&tDef_CrossZoneMapTableNameR*R+(tzoneIDR t    tableName((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytGetServerCrossZoneMapIpyDataMs cCstjƒjtjƒS(N(Rt GetGameWorldtGetGameWorldDictByKeyt ShareDefinet#Def_Notify_WorldKey_CrossServerOpen(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytIsCrossServerOpenTsc    Cs‹| stj|ƒ rdS|jƒ}d}t||||gƒ}tjƒjdddd|t|ƒƒtjd||f|ƒdS(sí ÅúÁ¿ÉèÖÃÍæ¼ÒÊôÐÔÖµ
        @param setDict: ÉèÖÃÊôÐÔ×Öµä {attrName:attrValue, ...}
        @param isDelay: ÊÇ·ñÑÓ³Ùͬ²½£¬±ÈÈçOnDay¸üеÄÊýÖµ£¬¿ÉÄܶà¸öÍæ¼Òͬʱ¸üжà¸öÊôÐÔÖµ£¬ËùÒÔÐèÒªÉèÖÃÑÓ³Ùͳһͬ²½£¬ÆäËû¾ßÌå¸ù¾Ý¹¦ÄÜÐèҪѡÔñÊÇ·ñÑÓ³Ù
    Nt
PlayerAttritSetCrossPlayerAttrValues¸üпç·þÍæ¼ÒÊôÐÔ: isDelay=%s,%s(    R t GetCrossMapIDt GetPlayerIDtstrRtGetPlayerManagertGameServer_QueryPlayerResulttlentDebugLog(R tsetDicttisDelaytplayerIDtsetTypetmsgList((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pyRCXs (c    Cs‹| stj|ƒ rdS|jƒ}d}t||||gƒ}tjƒjdddd|t|ƒƒtjd||f|ƒdS(s$ ÅúÁ¿ÉèÖÃÍæ¼Ò×ÖµäÖµ
        @param setDict: ÉèÖÃ×Öµä, ÎÞ dictType ÐÅϢʱĬÈÏÀàÐÍ0 {dictKey:dictValue, dictKey:[dictValue, dictType], ...}
        @param isDelay: ÊÇ·ñÑÓ³Ùͬ²½£¬±ÈÈçOnDay¸üеÄÊýÖµ£¬¿ÉÄܶà¸öÍæ¼Òͬʱ¸üжà¸öÊôÐÔÖµ£¬ËùÒÔÐèÒªÉèÖÃÑÓ³Ùͳһͬ²½£¬ÆäËû¾ßÌå¸ù¾Ý¹¦ÄÜÐèҪѡÔñÊÇ·ñÑÓ³Ù
    Nt
PlayerDictiRCs¸üпç·þÍæ¼Ò×Öµä: isDelay=%s,%s(    R RDRERFRRGRHRIRJ(R RKRLRMRNRO((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytSetCrossPlayerNomalDictfs (c Cs`|jƒ}tjd||ƒx9|D]1\}}|dkr½x|jƒD]j\}}t|tƒrw|d}}n |\}}tj||||ƒtjd|||f|ƒqLWq'x˜|jƒD]Š\}    }
t||    ƒrt    ||    ƒ|
ƒtjd|    |
fƒqÊtt|    ƒrÊt    t|    ƒ||
ƒtjd|    |
f|ƒqÊqÊWq'WdS(Ns$ÊÕµ½×Ó·þͬ²½µÄÉèÖÿç·þÍæ¼ÒÊôÐÔÖµ: %sRPis>    NomalDictSetProperty dictKey=%s, dictValue=%s, dictType=%ss    curPlayer.%s(%s)s#    PlayerControl.%s(curPlayer, %s)(
RERRJtitemsR.R0R tNomalDictSetPropertythasattrtgetattr( R tplayerSetInfoListRMRNRKtdictKeytvaleInfot    dictValuetdictTypetattrNamet    attrValue((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pyt"ClientServerMsg_SetPlayerAttrValuets$   $%cCsYtjƒj|ƒ}tjƒs%dStjd|jƒƒtj||ƒt|ƒdS(NsÍæ¼ÒÖ÷¶¯Í˳ö¿ç·þ(    RRGtGetPlayerByIndext IsCrossServertLogREtFBLogictDoPlayerLeaveFBtPlayerExitCrossServer(tindext curPackDatattickR ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytOnExitCrossRealm‘s 
cCsn|jƒ}tj|ƒ}tjtj||gƒtj|dƒ|jt    j
ƒtj d|jƒƒdS(NisPlayerExitCrossServer...( RER RRtSendMsgToClientServerR?tCrossServerMsg_ExitCrossServert SetCrossMapIDtKickt IPY_GameWorldtdisMapServerCloseR`(R RMR!((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pyRcžs cCstj||jƒƒdS(N(R tSetPlayerSightLeveltGetID(R ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytDoEnterCrossRealm¬scCsLtjd|jƒƒtj|dƒtj|ƒrHtj|dƒndS(NsDoExitCrossRealm...i(RR`RER RnRDRj(R ((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytDoExitCrossRealm±s
cCsÇtjj|iƒ}|siStj|ƒ}x’|jƒD]„}|jtjdƒs\q;ntj|krqq;n|tj}|sˆ|Sx4|D],\}}||ko²|knr|SqWq;WiS(Ni(    t
PyGameDatatg_crossActInfoDictR(RtGetPlayerServerIDtvaluesR?t ActKey_StatetActKey_ServerIDRangeList(R tactNamet actInfoDicttplayerServerIDtactInfotserverIDRangeListt    serverIDAt    serverIDB((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytGetPlayerCrossActInfo¹s   cCs†tjj|iƒ}|siSx`|jƒD]R}|jtjdƒsMq,n|jtjiƒ}||jddƒkr,|Sq,WiS(NiR8(RrRsR(RuR?RvtActKey_IpyDataInfo(RxR:RyR{t ipyDataDict((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytGetCrossActInfoByZoneIDÍscCs;tjƒ}||_t|jƒ|_tj||ƒdS(s ֪ͨ¿ç·þÔËÓª»î¶¯½áÊø
                    ·ÀÖ¹¿ç·þ·þÎñÆ÷Óë×Ó·þʱ¼ä²»Ò»Öµ¼Ö¿ÉÄܳöÏֻʵ¼ÊÒѹرÕ
                    µ«ÊÇǰ¶Ë¸ù¾Ý±¾·þ·þÎñÆ÷ʱ¼äÅжϻ¹Î´¹Ø±Õ£¬¿ÉÄÜÒýÆðÍæ¼ÒÎóÒÔΪ»î¶¯Î´¹Ø±Õ¶øÒý·¢µÄһϵÁÐÎÊÌâ
                    Ç°¶Ë¿ç·þ»î¶¯ÏÔÒþ¹æÔò£º
                    ÏÔʾ£º¸ù¾Ý֪ͨµÄ»î¶¯°ü ÇҠʱ¼ä>=»î¶¯¿ªÊ¼ÈÕÆÚ ²ÅÏÔʾ
                    ¹Ø±Õ£ºÊÕµ½ºó¶Ë֪ͨµÄ»î¶¯½áÊø°ü »ò Ê±¼ä>=»î¶¯½áÊøÈÕÆÚ ÔòÖ±½Ó¹Ø±Õ»î¶¯½çÃæ
    N(tChPyNetSendPackttagGCCrossActEndtActNameRIt
ActNameLent NetPackCommont SendFakePack(R Rxt
clientPack((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pytNotifyCrossActEndÚs
         (RRrRR R*RlRƒR‡R?R&RaRR
R#RR<RAR,RCRQR]RgRcRpRqRR‚RŠ(((soD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\CrossRealmPlayer.pyt<module>s4