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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
xxãgc@sQddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZe jƒZdefd„ƒYZd„Zd„Zd„Zd„Z e!dd„Z#d    „Z$d
„Z%d „Z&e!d „Z'd Z(d„Z)d„Z*d„Z+d„Z,d„Z-ddd„Z.ddd„Z/d„Z0d„Z1d„Z2d„Z3d„Z4dd„Z5d„Z6d„Z7d„Z8dS(iÿÿÿÿNtPlayerViewCachePyManagercBs}eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „ZRS( cCs(g|_i|_t|_i|_dS(N(t(_PlayerViewCachePyManager__viewCacheListt&_PlayerViewCachePyManager__idIndexDicttFalset#_PlayerViewCachePyManager__needSortt4_PlayerViewCachePyManager__serverIDRangePlayerIDDict(tself((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt__init__5s
                cCsX|jƒd}||jkrT|j|}|t|jƒkrT|j|}qTn|S(N(t)_PlayerViewCachePyManager__refreshIDIndextNoneRtlenR(RtplayerIDt    viewCachetindex((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytGetPlayerViewCache<s
 cCs]|jƒ||jkrdS||_|jj|ƒt|jƒd|j|<t|_dS(Ni(RRtPlayerIDRtappendR
tTrueR(RR R ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytAddPlayerViewCacheFs
        c     CsN|dkrgS|jƒt|ƒ}||jkrCg}xÕ|jD]Ê}|j}t|ƒ}|slqEntj|dƒ}x|D]…}t    |t
ƒr§||ksût    |tƒsÅt    |t ƒr†t |ƒdkr†|d|koö|dknr†|j |ƒq†q†WqEWtjd|t |ƒ|fƒ||j|<n|j|S(NtAccIDiiis*ÖØÐ¼ÓÔØÇø·þÍæ¼Ò²é¿´»º´æIDÁбí: %s, %s, %s(R    tSortttupleRRRtGetCachePropDataDictt    GameWorldtGetAccIDServerIDt
isinstancetinttlistR
RtDebugLog(    Rt serverIDListtkeyt playerIDListR R t    cacheDicttserverIDtidInfo((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytGetPlayerIDListByServerIDInfoPs( 
       6 cCs|jƒ||jkS(N(RR(RR ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt
IsPlayerIngs
cCsL|jsEi|_x0t|jƒD]\}}||j|j<q"Wn|jS(N(Rt    enumerateRR(RR R ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt__refreshIDIndexks
        cCsŸ|jƒ|jj|dƒ}|dkrS|t|jƒkrS|jj|ƒnx3|jjƒD]"}||krc|j|ƒqcqcWi|_i|_dS(Niÿÿÿÿi(RRtpopR
RRtvaluestremove(RR R R((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytDelPlayerViewCachers
!         cCs t|jƒS(N(R
R(R((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytGetCountscCs-|j|}| r)tr)tjƒ}n|S(N(RRtPyGameDataStructttagPlayerViewCachePy(RR R ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytAt€s  cCsL|js dSt|_|jjd|jƒi|_i|_|jƒdS(Ntcmp(RRRtsortt_PlayerViewCachePyManager__cmpRRR(R((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR†s                
cCsgd}t|ƒ}|r-|jddƒ}nd}t|ƒ}|rZ|jddƒ}nt||ƒS(Nit
FightPower(RtgetR/(Rtatbt aFightPowerR t bFightPower((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt__cmp‘s  cCsqd}d}d}x+|jD] }|d7}||jƒ7}qWtjd|t|ƒfƒtj||ƒ|S(Ntiis'Save PlayerViewCachePy count :%s len=%s(Rt    getBufferRtLogR
tCommFunct
WriteDWORD(RtsavaDatatcntDatatcnttdbData((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt GetSaveData s
cCstj||ƒ\}}tjd|ƒxVt|ƒD]H}tjƒ}|jƒ||j|||ƒ7}|j    |j
|ƒq6W|j ƒ|S(Ns Load PlayerViewCachePy count :%s( R<t    ReadDWORDRR;txrangeR,R-tcleartreadDataRRR(RtdatastpostdataslenR@t_RA((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytLoadPyGameData°s 
 
(t__name__t
__module__RRRR#R$RR*R+R.RR1RBRK(((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR3s        
    
                                      cCs tƒdS(N(tDelOutofTimeViewCacheData(((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt    DoOnDayEx¾scCsH|s
tS|j}tj|ƒr&tStj|ƒr9tStj|ƒrLtSt    j
|ƒr_tSt j |ƒrrtSt jƒj|ƒr‹tStj|ƒržtStj|ƒr±tStj|ƒrÄtStjƒrDt jƒ}xÂtjD]W}|j|ƒ}x?|D]7\}}}|j|||ƒ}|j|ƒrtSqWqæWn]tjddƒ}tj ƒ}x<|D]4}    |j!|    ƒ}
|
sŠqin|
j|ƒritSqiW|j"} |j#} | rÅ| rÅtStj$ddƒ} | | krDtj$ddƒ}|sd}n|dd}t%t&j&ƒƒ}||j#}||krDtSntS(NtPlayerViewCacheiiiiii('RRtPlayerFBHelpBattletIsInHelpBattleCheckInListRtGameWorldArenatIsArenaBattlePlayertCrossBattlefieldtIsBattlefieldCallPlayertCrossChampionshiptIsChampionshipPlayert GameWorshiptIsWorshipPlayert PyDataManagertGetDBPyFuncTeamManagert IsTeamPlayert GameXiangongtIsXiangongPlayertGameWorldSkyTowertIsSkyTowerPassPlayertPlayerPackDatatIsPackDataPlayerRt IsCrossServertGetCrossBillboardManagert ShareDefinetCrossBillboardTypeListtGetBillboardGroupListtGetCrossBillboardtFindByIDt IpyGameDataPYtGetFuncEvalCfgt GetBillboardt FindBillboardtLVtOffTimet
GetFuncCfgRttime(R R t billboardMgrt billboardTypet    groupListt groupValue1t groupValue2t billboardObjtNeedCheckBillBoardTypet BillBoardTypet curBillboardtplayerLVtoffTimet SaveDBLimitLVtmaxDaystMaxTimetcurTimetpassTime((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytIsSaveDBViewCacheÂsh                       cCs›tjƒ}tjƒ}xst|jƒƒddd…D]R}|j|ƒ}t|ƒr_q8n|j}|j    |ƒr}q8n|j
|ƒq8Wit _ dS(Niÿÿÿÿ( tChPlayertGetOnlinePlayerMgrR[tGetPlayerViewCachePyManagertrangeR+R.RƒRtIsOnlineR*t
PyGameDatatg_crossPlayerViewCache(t    onlineMgrtpyViewCacheMgrR R R ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyRNs  &         cCs-tjƒ}|j|ƒtjd|ƒdS(Ns ɾ³ý²é¿´»º´æ!(R[R†R*RR(R RŒ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytDeleteViewCache s  cCs­tjƒ}|j|ƒ}|r$n…|s6|dkr©|dkr-|sQi}n|jddƒ}|sdjtjƒjtj    ƒƒ}d||f}n|jddƒ}|sÖ|dd}d    ||f}ntj
|ƒ}|}|d
kr|d d}n|d d krt nt }    t jƒ}
|
j||    |ƒ|jdd ƒ} | s‹tjddƒ} | r‚tj| ƒnd} n|jdtjddƒƒ} |jdtjddƒƒ}|jdtjddƒƒ}|ji|d6|d6|d6| d6| d6|d6|d6|d6ƒntjƒ}||_ttjƒƒ|_|r–tj|dt ƒjddƒ|_t |jƒ|_!n|j"||ƒn|S(Ni'tNameR9sÉñÃØµÀÓÑs%s%sRidisfake%s@test@s%si2i
iitJobtOpenJobRoiÈtRealmLViiR2i@BiáõRt ServerGroupIDt ensure_asciis (#R[R†RR3tdecodeRftDef_Game_Character_EncodingtencodeRtGetCharacterEncodingRRRR„R…tSetOnlineStateRkRltrandomtchoicetrandinttupdateR,R-RRRrRptjsontdumpstreplacetPropDataR
t PropDataSizeR(R tisAddNewt newPropDataRŒtcurCachetfakeNametaccIDR!t serverGroupIDtisOnlinetolMgrtjobt openJobListtlvtrealmLVt
fightPower((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt FindViewCache'sP      !  ,     $cCsT|s
iSt|dƒs%i|_n|j rM|jrMt|jƒ|_n|jS(Nt PropDataDict(thasattrR°R teval(R¤((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyRWs cGsKt|ƒ}t|ƒ}|s"iSi|dd6|dd6|dd6|dd6}xð|D]è}|dkrz||d<q[|dkr tj|dƒ|d<q[|dkrÑtjƒ}|j||ƒ|d<q[|d    kr&|ji|jd
d ƒd
6|jd d ƒd 6|jd gƒd 6ƒq[||kr[||||<q[q[W|S(NRŽRRoR‘RtServerIDRt OfflineValuetModeltTitleIDitEquipShowSwitcht EquipShowID(    R¯RRRR„R…tGetOfflineValueRœR3(R texAttrsR R t shotCacheDicttattrNameR©((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytGetShotCacheDictas2                 cCs5t|tƒr|}d}n |jƒ}tt|ƒƒ}i|rQ|jƒn|jddƒd6|rv|jƒn|jddƒd6|r›|j    ƒn|jddƒd6|rÀ|j
ƒn|jddƒd6|rå|j ƒn|jddƒd6|r
|j ƒn|jd    dƒd    6|r/|j ƒn|jd
dƒd
6|rT|jƒn|jd dƒd 6|ry|jƒn|jd dƒd 6|jddƒd6|jddƒd6|rÇtj|ƒn|jddƒd6|jddƒd6|jdgƒd6|rtj|ƒn|jdtjƒƒd6}|S(NRR9RoiR‘RtVIPLViRŽtFacetFacePict    FacmilyIDtFamilyIDt
FamilyNameR¶R2R·R¸R’(RRR    t GetPlayerIDRR¯tGetAccIDR3tGetLVtGetOfficialRanktGetJobtGetVIPLvtGetNametGetFacet
GetFacePict GetFamilyIDt PlayerControlt GetFightPowertGetPlayerServerGroupIDRtGetServerGroupID(t    curPlayerR R t    cacheBase((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytGetSyncCrossCacheBase€s,     %%%%%%%%%(1cCsªt|t|ƒ}|siS|jddƒ|_ttjƒƒ|_t|ƒ}|s\|Sx$|jƒD]\}}|||<qiW|r¦t    |ƒs¦t
|ƒiSn|S(NRoi( R¯RR3RoRRrRpRtitemsRƒR(R RÓtisLogoutR¤R tktv((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytUpdCrossCacheBase›s  
icCsn|j}|j}|j}|j}tjd|||f|ƒt|tƒ}|sZdS|j|_    |j
|_
i|_ |j |_ |j |_ |j|_|j|_xutdtdƒD]`}    t|d|    ƒ}
|
säq¿nt|d|    ƒ} t|d|    | ƒt|d|    |
ƒq¿W|jr;t|jƒni} |tddƒ@r‹i|d6|jƒd6| d6} tjtj| ƒntjƒj|ƒ}tj||| ƒ|rt |ƒsÓt!|ƒdS|r|j"ƒ|_#t$|j#ƒ|_%qnt&j'|ƒrjt(|ƒ}|j)d    d
ƒ}|j)d d
ƒ}|j)d d ƒ}t&j*||||ƒndS(NsAµØÍ¼Í¬²½Íæ¼Ò»º´æ: isLogout=%s,packDataSyncState=%s,packDataLen=%sisItemDataSize%ss
ItemData%siR t cacheBuffertmsgInfoR2iRÂRŽR9(+Rt IsLogoutingtPackDataSyncStatet PackDataLenRRR¯RtPlayerLVRoRpR°R R¡tPlusDatat PlusDataSizeRDtItemDataClassMaxtgetattrtsetattrtPackMsgR²tpowR:t CrossRealmMsgtSendMsgToCrossServerRftClientServerMsg_PushPlayerCachetGetPlayerManagertFindPlayerByIDRbtOnMGUpdatePlayerPackDataRƒRtGetGeTuiClientIDtGeTuiIDR
t GeTuiIDSizeRQRRRR3tUpdateCheckInPlayerInfo(t
routeIndextmapIDt curPackDatattickR RÖtpackDataSyncStatet packDataLenR¤tclassLVt itemDataSizetitemDataRÛtdataMsgRÒR°R®tfamilyIDt
playerName((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnMGUpdatePlayerCacheÆsV                              ! 
 cCs>tjƒj|jƒ}|j}|j}t|||ƒdS(N(RRêRëRt FindPlayerIDt EquipClassLVtOnQueryPlayerCache(RñRòRóRôRÒt findPlayerIDt equipClassLV((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnMGQueryPlayerCaches
        cCs;tjƒj|ƒ}|j}|j}t|||ƒdS(N(RRêtGetPlayerByIndexRRÿR(R t
clientDataRôRÒt tagPlayerIDR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnViewCrossPlayerInfos
        cCstjƒj|ƒ}|j}tjƒj|ƒ}|rûtjƒ}|jƒ|j|_|jƒ|_    |j
ƒ|_ |j ƒ|_ |jƒ|_tj|_|jƒdk|_tj|ƒ|_|jƒ|_|jƒ|_tj||ƒnt||ddƒdS(NitisShorti(RRêRRRëtChPyNetSendPackttagGCAnswerPlayerShortInfotClearRÊt
PlayerNameRÈRRÆRoRÇR‘tChConfigt
Def_Onlinet
OnlineTypet    GetTeamIDtIsInTeamRÎRÐR’RËR¿RÌRÀt NetPackCommont SendFakePackR(R t
clientPackRôRÒRt    tagPlayert
answerPack((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnViewPlayerShortInfo,s&     
  cCs]tjƒsdSxF|D]>}t|ƒ}|r5qni|d6}tjtj|ƒqWdS(NR(RRdR¯RçtSendMsgToClientServerRft"CrossServerMsg_PullPlayerViewCache(RR R¤Rú((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytSetNeedViewCacheBs    ic Csÿ|s
dS|jƒ}tjd|||f|ƒtjƒrèt|ƒ}|r{tjd||ƒt||||ƒqûtjd||ƒd}i|d6|d6|d6|d    6|d
6}i|d6|d 6}tjtj    |ƒnt
j |ƒr-tjd ||ƒt|ƒ}t||||ƒnÎ|t j krŸtjƒjƒ}    t j |\}}
|    |
dkrŸtjd||ƒt||||ƒdSntjd||ƒtjƒ}i|d6|d6|d6|d    6|d
6}tjtj|ƒdS(s±²éÑ¯Íæ¼Ò»º´æ£¬Ö§³ÖÖ±½ÓÔÚ±¾·þ»ò¿ç·þ²éѯÈÎÒâ·þÎñÆ÷Íæ¼Ò
    @param tagPlayerID: Ä¿±êÍæ¼ÒID
    @param equipClassLV: Ö¸¶¨²é¿´Ä³Ò»½××°±¸ÐÅÏ¢
    @param isShort: ÊÇ·ñ²é¿´¼ò¶ÌÐÅÏ¢
    Ns3²é¿´Íæ¼Ò: tagPlayerID=%s,equipClassLV=%s,isShort=%ss6    ÔÚ¿ç·þ²é¿´Íæ¼Ò¿ç·þÓÐÊý¾Ý£¬Ö±½Ó»Ø°ü! tagPlayerID=%ss8    ÔÚ¿ç·þ²é¿´Íæ¼Ò¿ç·þÎÞÊý¾Ý£¬´Ó×Ó·þÀ­È¡! tagPlayerID=%siR RRRtviewFromRÛs0    ²é¿´Íæ¼Ò±¾·þÓÐÊý¾Ý£¬Ö±½Ó»Ø°ü! tagPlayerID=%sii<ièsA    1·ÖÖÓÄÚÖØ¸´²é¿´¿ç·þÍæ¼ÒÇÒ±¾·þÓÐÊý¾Ý£¬Ö±½Ó»Ø°ü! tagPlayerID=%ss2    ²é¿´Íæ¼Ò±¾·þûÓÐÊý¾Ý£¬·¢¿ç·þ²é! tagPlayerID=%si<i`ê(RÄRRRdR¯tSync_PlayerCacheRçRRfRRÎtGetDBPlayerAccIDByIDR‰RŠt GetGameWorldtGetTickRÑRètClientServerMsg_ViewPlayerCache( RÒRRRR R¤RRÛRúRôt    cacheTick((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyROs<   )  )cCs|rt||ƒdS|s1tj|dƒdS|r¶d}t|d|ƒrft|d|ƒ}ntjƒ}|j|_||_||_    t
|j    ƒ|_ t j ||ƒdStjƒ}|j|_|j|_t
|jƒ|_|j|_t
|jƒ|_t j ||ƒdS(NtViewPlayer_OffLineR9sItemDataSize%ss
ItemData%s(tSync_PlayerShortInfoRÎt
NotifyCodeR±RãR    ttagSCPlayerEquipCacheResultRRÿtItemDataR
t ItemDataSizeRRttagSCQueryPlayerCacheResultR R¡RàRá(RÒR¤RRRùtsendPack((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR|s2               cCsù|stj|dƒdStjƒ}|jƒt|ƒ}|j|_|d|_|d|_|d|_    |d|_
t j |_ |jddƒ|_|jddƒ|_tjƒrÖ|jd    dƒ|_ntjƒ|_tj||ƒdS(
NR"RŽRRoR‘R¿iRÀR’(RÎR$R    R
R RRR RRoR‘R t Def_OfflineRR3R¿RÀRRdR’RÑRR(RÒR¤RR ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR#›s& 
        cCs†tjd|ƒt|ƒ}|s&dSt|ƒ}||d<||d<tj|dtƒjddƒ}||_t    |jƒ|_
dS(NsViewCache->OnPlayerFamilyChangeRÂRÃR“s R9( RRR¯RRRžRRŸR R
R¡(R Rût
familyNameR¤R ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnPlayerFamilyChange²s  
 
!    cCs~|d}|d}tjd|||fƒt|ƒ}|rSt|||ƒn'i|d6|d6}tjtj|ƒdS(NR RsEÊÕµ½×Ó·þ²é¿´¿ç·þÍæ¼ÒÐÅÏ¢: serverGroupID=%s,playerID=%s,tagPlayerID=%sRÛ(RRR¯t&Send_CrossServerMsg_ViewPlayerCacheRetRçRRfR(R§tmsgDataR RR¤Rú((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR ¿s
 
 cCs9|r|jƒnd|d<tjtj||gƒdS(NR9RÚ(R:RçRRft!CrossServerMsg_ViewPlayerCacheRet(R¤R.R§((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR-Ìsc Cs|d}|d}|jdiƒ}d}|sItjd||ƒnt|tƒ}t|||ƒ|srdS|jddƒ}|dkr¤t|||ƒdS|jddƒ}|sÀdStjƒj    |ƒ}|sßdS|jddƒ}    |jddƒ}
t
|||    |
ƒdS(    NR RÚRÛs'×Ó·þÍÆË͵ÄÍæ¼Ò»º´æÊý¾ÝΪ¿Õ! playerID=%sRiRR( R3R    RRR¯RtReadCacheBufferToCacheObjR-RêRëR( R§R.R RÚRÛR¤Rt viewPlayerIDRÒRR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyRéÒs0
 
 cCsŒyHtjƒttdiƒtj|ƒdkrGtjd|ƒdSWntjd|ƒdSXtj|kr‘tjd|tjfƒdS|s›tSi|_tj|_tj|_tj    |_    tj
|_
tj |_ tj |_ tj |_ tj|_tj|_xutdtdƒD]`}ttd|ƒ}|sIq$nttd|ƒ}t|d||ƒt|d||ƒq$W|S(    NR°iÿÿÿÿs%Íæ¼Ò»º´æÊý¾ÝreadDataʧ°Ü! playerID=%ss%Íæ¼Ò»º´æÊý¾ÝreadDataÒì³£! playerID=%ssCÍæ¼Ò»º´æÊý¾ÝreadDataºóÍæ¼ÒID²»Ò»ÖÂ! playerID=%s != cachePlayerID=%sisItemDataSize%ss
ItemData%s(t    TempCacheRERäRFRtErrLogRR°RïRîRoRpR R¡RàRáRDRâRã(R RÚtcacheObjR÷RøRù((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR0õs@
             c    CsÍ|d}|d}|d}|d}|d}d}|r˜|tjkratj|d}n tjƒ}t|||ƒr˜||gtj|<q˜ntjƒj|ƒ}|rÉt    ||||ƒndS(NR RRÚRRi(
R    R‰RŠR,R-R0RRêRëR(    R.RôR RRÚRRR¤RÒ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR/s 
 
 
 
 
 cCs-|jdiƒ}|d}t||ƒdS(NRÛR(R3tDoPullPlayerViewCache(R.RÛR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR0s
 cCsñtj|ƒsdSt|ƒ}|rmtjd|ƒi|d6|jƒd6|d6}tjtj    |ƒdStj
ƒj |ƒ}|sÊtjd|ƒi|d6dd6|d6}tjtj    |ƒdStjd|ƒt j |d|ƒdS(    Ns!±¾·þÓлº´æÍæ¼ÒÊý¾Ý£¬Ö±½ÓÍÆ¸ø¿ç·þ!R RÚRÛs/±¾·þÎÞ»º´æÍæ¼ÒÊý¾ÝÇÒ²»ÔÚÏߣ¬Ö±½Ó»Ø¿ÕÊý¾Ý¸ø¿ç·þ!R9sÍæ¼ÒÔÚÏߵķ¢¸øµØÍ¼Í¬²½»º´æÊý¾Ý!tPullPlayerViewCache(RÎRR¯RRR:RçRèRfRéRêRëRbtQueryPlayerResult_PlayerMirror(R RÛR¤RúRÒ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR57s" !(9RRYR^RÎRRSR    RQR`RWRUtCrossRealmPlayerR,RbRkR[RçRfR‰R<R„R RRrR™R-R2tobjectRRORƒRNRRR    R¯RR½RÔRÙRâRýRRRRRRR#R,R R-RéR0R/RR5(((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt<module>sh                          ‹        L        0    
             H                 -                      # %