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
îù[c@s-ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZejjƒZd„Zd„Zed„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „ZdS( iÿÿÿÿNcCs |jƒ}|s|jƒS|S(N(tGetItemDataNoSavet GetItemData(tcurCachetresult((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR)s 
cCs |jƒ}|s|jƒS|S(N(tGetPlusDataNoSavet GetPlusData(RR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR0s 
c        Cs‡tj|ƒ}|s'tj|ƒ}n|jtjƒƒtjd|t|ƒ|t|ƒ|t|ƒ|fƒ|j|t|ƒƒ|j    ƒs¦|rõt
|ƒrõ|j |t|ƒƒ|j |t|ƒƒ|j ddƒ|jddƒn,|j |t|ƒƒ|j|t|ƒƒ|j|ƒtj|ƒrƒt|ƒ}|jddƒ}|jddƒ}tj|||ƒndS(Ns¶ViewCache### UpdatePlayerCache PlayerID %s,                         PropData(len %s): %s,                         ItemData(len %s):  %s,                         PlusData(len %s):  %stit
FightPowertFamilyID(t ViewCacheMgrt    FindCachet AddNewCachet SetUpdateTimet    GameWorldtGetCurrentDataTimeStrtDebugLogtlent SetPropDataRtIsNeedSaveViewCacheAllInfot SetItemDatat SetPlusDatatSetItemDataNoSavetSetPlusDataNoSavet SetNeedSaveDBtPlayerFBHelpBattletIsInHelpBattleCheckInListtevaltgettUpdateCheckInPlayerInfo(    tPlayerIDtPropDatatItemDatatPlusDatatisSaveDBRt PropDataDictt
fightPowertfamilyID((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytUpdatePlayerCache:s,/   cCs:t||ƒs tj|ƒdSt||||tƒdS(N(tIsNeedSaveLogoutPlayerR    t DeleteCacheR%tTrue(RtPlayerLVRRR ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnPlayerLogoutls
 cCs9tj|ƒrtStjddƒ}||kr5tStS(NtPlayerViewCachei(RRR(t IpyGameDataPYt
GetFuncCfgtFalse(RR)t SaveDBLimitLV((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR&xs  cCsttj|ƒrtStjddƒ}tjƒ}x<|D]4}|j|ƒ}|sYq8n|j|ƒr8tSq8Wt    S(NR+i(
RRR(R,tGetFuncEvalCfgR t GetBillboardt FindBillboardtFindByIDR.(RtNeedCheckBillBoardTypet billboardMgrt BillBoardTypet curBillboard((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyR„s  cCs–tjd|jƒƒ|j}|j}|jrTt|||j|j|j    ƒn1t
||j|j|j    |dkr~t nt ƒtjdƒdS(Ns(ViewCache### OnMGUpdatePlayerCache in %si–s&ViewCache### OnMGUpdatePlayerCache out( R Rt OutputStringRR)t IsLogoutingR*RRR R%R(R.(t
routeIndextmapIDt curPackDatattickRR)((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnMGUpdatePlayerCache°s                 % cCs[tjdƒtjƒj|jƒ}|j}tj|ƒ}|sWtj    |dƒdSt
j ƒ}||_|s×tjd|ƒd|_ t |j ƒ|_d|_t |jƒ|_d|_t |jƒ|_nc|jƒ|_ t |j ƒ|_t|ƒ|_t |jƒ|_t|ƒ|_t |jƒ|_tj||ƒtjdƒdS(Ns$ViewCache### OnMGQueryPlayerCache intViewPlayer_OffLines.PlayerCache## OnMGQueryPlayerCache %s no foundRs%ViewCache### OnMGQueryPlayerCache out(R RtGetPlayerManagertFindPlayerByIDRt FindPlayerIDR    R
t PlayerControlt
NotifyCodetChPyNetSendPackttagSCQueryPlayerCacheResultRRt PropDataSizeRt ItemDataSizeR t PlusDataSizet GetPropDataRRt NetPackCommont SendFakePack(R:R;R<R=t    curPlayert findPlayerIDRtsendPack((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnMGQueryPlayerCacheÁs4                       cCs°tj|ƒ}|sdSt|ƒ}|s/dSg}t|ƒ}xh|D]`}|d}|tjkrmqHn|d}|sƒqHn|j|||jddƒdgƒqHW|S(Nt    ItemIndextItemIDtStarLVi(R    R
RRt ShareDefinet RoleEquipTypetappendR(RNRtitemDatatplayerEquipListt equipItemListt equipItemDictt
equipIndextitemID((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytGetPlayerCacheEquipViewäs"   
 
)cCs~tjƒj|jƒ}tjƒ}|jƒ|sìtj|jƒ}|s‹|j|_d|_    d|_
d|_ d|_ t j|_qUt|jƒƒ}|j|_|d|_    |d|_
|d|_ |d|_ t j|_ni|j|_|jƒ|_    |jƒ|_
|jƒ|_ |jƒ|_ t j|_|jƒdk|_tjƒj|ƒ}tj||ƒdS(NRitNametJobtLVtRealmLVi(R R@RARREttagGCAnswerPlayerShortInfotClearR    R
t
PlayerNameR_R`RatChConfigt Def_Offlinet
OnlineTypeRRJtGetNametGetJobtGetLVtGetOfficialRankt
Def_Onlinet    GetTeamIDtIsInTeamtGetPlayerByIndexRKRL(tindext
clientPackR=t    tagPlayert
answerPackRt    cacheDictRM((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnViewPlayerShortInfos: 
                        cCs²tjd|ƒtj|ƒ}|s)dSt|jƒƒ}||d<||d<|d}tj|dtƒ}|j    ƒ}|j
ƒ}t |||||dkr§t ntƒdS(NsViewCache->OnPlayerFamilyChangeRt
FamilyNameR`t ensure_asciii–( R RR    R
RRJtjsontdumpsR.RRR%R((tplayerIDR$t
familyNameRRtplayerLVRR ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pytOnPlayerFamilyChange+s
 
 
  ((R REtIPY_PlayerDefinetPlayerFamilyActionRCRKt ReadChConfigt PlayerFamilytIPY_GameServerRR,RTRettimeRxt GameWorldDatatGetPlayerViewCacheMgrR    RRR.R%R*R&RR>RPR]RuR}(((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerViewCache.pyt<module>s4                       
2              ,        #    !    &