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
y}gc@sMddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZejƒZdZd„Zd„Zd„Ze d„Z!d„Z"d„Z#d    „Z$d
„Z%d „Z&e e de d „Z(e d „Z)d„Z*d„Z+d„Z,e d„Z-e d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4de d„Z5d„Z6d„Z7dS(iÿÿÿÿNtProcessPlayerCachecCsVt||tƒtj|tjdƒtj|tjdƒtj|tjdƒdS(Ni(tUpdateGameServerPlayerCachetTruet PlayerControltNomalDictSetPropertytChConfigtDef_PDict_EquipViewCacheStatetDef_PDict_PackDataSyncStatet Def_PDict_PackDataSyncFightPower(t    curPlayerttick((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytOnPlayerLogOut0s
cCsQ|jtƒ}|s)|jt|ƒdS||dkr=dSt||tƒdS(Nii<ièi,ià“(t GetDictByKeytDef_Process_TicktSetDictRtFalse(R    R
tlastTick((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyt ProcessCache8scCs-tjƒ|r)tjtj|ƒƒntS(N(t TempDBPlayertcleartreadDatatbase64t    b64decode(tpackData((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytGetDBPlayerByPackDataCs
cCs©|jƒ}|jƒ}|sƒ|jtjƒ}|sJtjd|ƒdS|jtjƒ}||krƒtjd||ƒdSntj    |tj|ƒ|j
ƒ}|S(Ns²»ÐèҪͬ²½´ò°üÊý¾Ýts/Õ½Á¦²»±ä£¬²»ÐèҪͬ²½´ò°üÊý¾Ý! syncFightPower=%s( t GetPlayerIDt GetFightPowertNomalDictGetPropertyRRt    GameWorldtDebugLogRRRt GetPackData(R    tforcetplayerIDt
fightPowert    syncStatetsyncFightPowerR((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytGetSyncPlayerPackDataJs    cCsÚ|jtjƒ}|}|jdƒr?tj|ddƒ}n|jdƒrftj|ddƒ}n|jdƒrtj|ddƒ}n||krdStj|tj|ƒtjd|||f|j    ƒƒdS(NtPackDataiit PackDataCrosstViewCacheCrossis=¸üдò°üÊý¾Ýͬ²½×´Ì¬: msgData=%s,syncState=%s,updSyncState=%s(
RRRtgetRt SetBitValueRRRR(R    tmsgDataR#t updSyncState((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytUpdPackDataSyncState^s     cCst|idd6ƒdS(NiR&(R-(R    ((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytSetPackDataSyncStateoscCst|idd6ƒdS(NiR'(R-(R    ((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytSetPackDataCrossSyncStatepscCst|idd6ƒdS(NiR((R-(R    ((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytSetViewCacheCrossSyncStateqscCs©|jtjƒ}tj|ƒ|krAtjd|jƒƒdStjd|jƒƒ|jtjƒ}|s†t    |ƒt
|ƒntj ƒj ƒ}t ||ƒdS(sɳ£¹æÍ¬²½´ò°üÊý¾Ý£¬½ö×÷Ϊ²¹³äͬ²½Ó㬲»Ç¿ÖÆÍ¬²½
    Ò»°ãÓÉÐèÒª´ò°üÊý¾ÝµÄ¹¦ÄÜ·¢Æð¼ì²é×Ô¶¯Í¬²½Óã¬×öÕ½Á¦ÑéÖ¤£¬Õ½Á¦±ä¸üʱÖ÷¶¯Í¬²½Ò»´Î
    ·ÀÖ¹¶Ìʱ¼äÄÚÇ¿»¯ÁËÕ½Á¦£¬µ¼Ö¾µÏñÊý¾Ý²îÒìÌ«´ó£¬Ó°Ïì¾µÏñÕ½¶·½á¹û
    sÕ½Á¦Óë´ò°üÊý¾ÝÏàͬ£¬²»Í¬²½!NsÕ½Á¦Óë´ò°üÊý¾Ý²»Í¬£¬Á¢¼´Í¬²½!(RRRRRRRRRR.R/t GetGameWorldtGetTickR(R    R$R#R
((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytNormalSyncPackDatass
  c    Cs]tj|ƒrdS|jt|ƒ|jtjƒ}t}|tddƒ@r›|jtj    ƒdkr›t
j |tj    dƒt }t jd|jƒƒn|rÊt|ƒt|ƒ|jtjƒ}nt|ƒ\}}    t||ƒ}
tjƒ} |jƒ| _|jƒ| _|| _ttjƒƒ| _|| _t| jƒ| _|    | _ t| j ƒ| _!xH|
j"ƒD]:\} } t#| d| | ƒt#| d| t| ƒƒqvW|| _$|rÉdn t%||ƒ| _&t| j&ƒ| _'|rÿt(|ƒnd| _)t| j)ƒ| _*t jd||||||
j+ƒf|jƒƒt,j-| ƒdS(Nis$±¾´ÎµÇ¼Ê×´Îͬ²½¿ç·þ»º´æ£¬È«×°±¸Í¬²½s
ItemData%ssItemDataSize%sRs{}sgͬ²½»º´æ: logout=%s,forcePackData=%s,isOnlyViewCache=%s,PackDataSyncState=%s,isAllEquip=%s,classList=%s(.t    PlayerTJGtGetIsTJGRR RRRRtpowRRRRRRRR.R/tGetPlayerPropPlusCachet__GetPlayerItemDataCachetChMapToGamePyPackttagMGUpdatePlayerCachetPlayerIDtGetLVtPlayerLVt IsLogoutingtintttimetOffTimetPropDatatlent PropDataSizetPlusDatat PlusDataSizetitemstsetattrtPackDataSyncStateR%R&t PackDataLentstrtPackMsgt
PackMsgLentkeyst NetPackCommontSendPyPackToGameServer(R    R
R>t forcePackDatatpackMsgtisOnlyViewCacheRIt
isAllEquipRBREt itemDataDicttsendPacktclassLVtitemData((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR‹sH+
 
                     ) cCs­| r9|jtjƒ r9tj|tjdƒt}n|r^tdtjdƒdƒ}n!|j    ƒ}t
j j |gƒ}i}x!|D]}t ||ƒ||<qŒW|S(NitEquipMaxClasslv(RRRRRRtxranget IpyGameDataPYt
GetFuncCfgRt
PyGameDatatg_equipChangeClassLVInfotpopt__GetPlayerEquipClassDataCache(R    RTtneedSyncClassLVListR!RURW((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR8¹s      c    Csntjdi|d6tƒ}|s&dStj}|jƒj|ƒ}i}x|D]ú}|jƒ}|j|ƒ}| sQ|j    ƒr‹qQni}    |j
ƒ|    d<|j ƒ}
|
rÌ|
dkrÌ|
|    d<n|    ||<t j |ƒ}|sñqQntj|||ƒ} | r| |    d<ntj|||ƒ} tj|||ƒ} | rV| |    d<n| ri| |    d<ntj||ƒ}|r©|jd    ƒt|ƒkr©||    d
<n|jtj|ƒ}g}xGtd tjd ƒD]/}|jtj||fƒ}|j|ƒqÜW|rQ|jd    ƒt|ƒkrQi|d 6|d 6|    d<qQqQWtj|dt ƒj!ddƒS(NtEquipPlaceIndexMaptClassLVs{}tItemIDtUserDatatStartPlusLVtEvolveLVitStoneitLVtValuetWasht ensure_asciis R("R[tGetIpyGameDataByConditionRt IPY_GameWorldtrptEquiptGetItemManagertGetPackt GetGridIndextGetAttIsEmptyt GetItemTypeIDt GetUserDatat
ItemCommontGetItemClassLVtChEquiptGetEquipPartStarByRanktGetEquipPartPlusLVtGetEquipPartPlusEvolveLVtOperate_EquipStonetGetEquipIndexStoneIDListtcountRCRRtDef_PDict_EquipWashLVRZtOperate_EquipWashtDef_EquipWashMaxAttrCounttDef_PDict_EquipWashValuetappendtjsontdumpsRtreplace(R    RWt ipyDataListtpackTypet    equipPacktclassItemDataDicttipyDatatindextcurEquiptitemDicttuserDatat    equipStartequipPartPlusLVtequipPartPlusEvolveLVt stoneIDListtwashLVt    valueListtattrNumtvalue((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR`ËsP        
   ! !cCsú|s
dSi}|jƒ|d<|jƒ|d<|jƒ|d<|jƒ|d<|jƒ|d<|jƒ|d<|jƒ|d<|jƒ|d<|jƒ|d    <|jƒ|d<|j    ƒ|d
<|j
ƒ|d <|j ƒ|d <t j |ƒ|d <t j|ƒ|d<t j|ƒ|d<t j|ƒ|d<tj|ƒ|d<|jƒ|d<t|ƒ|d<t j|ƒ|d<t j|ƒt j|ƒt j|ƒt j|ƒt j|ƒg|d<|jƒ|d<|jƒ|d<|jƒ|d<tj|ƒ|d<|j ƒ|d<|j!ƒ|d<tj"|ƒ|d<|j#ƒ|d<t j$|ƒ|d<|j%ƒ|d<|j&ƒ|d <t j'|ƒ|d!<t j(|ƒ|d"<|j)ƒ|d#<|j*ƒ|d$<tj+|ƒ|d%<tj,|ƒ|d&<|j-ƒ|d'<|j.ƒ|d(<|j/ƒ|d)<t j0|ƒ|d*<t j1|ƒ|d+<t j2|ƒ|d,<t j3|ƒ|d-<t j4|ƒ|d.<t j5|ƒ|d/<t j6|ƒ|d0<t j7|ƒ|d1<t j8|ƒ|d2<tj9|ƒ|d3<tj:|ƒ|d4<t j;|ƒ|d5<t j<|ƒ|d6<t j=|ƒ|d7<tj>|ƒ|d8<tj?|ƒ|d9<tj@|ƒ|d:<tjA|ƒ|d;<tjB|ƒ|d<<tjC|ƒ|d=<tjD|ƒ|d><tjE|ƒ|d?<tjF|ƒ|d@<t jG|ƒ|dA<tjH|ƒ|dB<tjI|ƒ|dC<tjJ|ƒ|dD<tjK|ƒ|dE<tjL|ƒ|dF<tjM|ƒ|dG<i}i}x:tNjOD]/}t jP||ƒ}|r]||dH|<q]q]W||dI<tQjR|ƒ|dJ<tQjS|ƒ|dK<tQjT|ƒ|dL<tQjU|ƒ|dM<tVjW|ƒ|dN<tXjY|ƒ|dO<tZj[|t\j]t\j^t\j_t\j`gƒ}||dP<ta|jbdHt\j]iƒjcƒƒ|dQ<tdje|ƒ|dR<tf|ƒ|dS<tg|ƒ|dT<th|ƒ|dU<ti|ƒ|dV<tjjk|ƒ|dW<|jlƒ}i|dX6|dY6tmjn|<dS(ZNtAccIDRjtRealmLVtJobtRoleTypetFacet    ModelMarktVIPLVtNametFacePictFamilyIDt
FamilyNametFamilyEmblemIDtTitleIDt
CoupleNamet
FightPowertAppIDtEquipShowSwitcht EquipShowIDt ServerGroupIDt LingGenPointtMinAtktMaxAtktDeftMaxHPtHittMisstAtkSpeedt SkillAtkRatetSkillAtkRateReducet LuckyHitRatet LuckyHitValtLuckyHitRateReducetLuckyHitReducet SuperHitRatetSuperHittSuperHitRateReducetSuperHitReducetIceAtktIceDeft IgnoreDefRatetIgnoreDefRateReducetIgnoreDefReducePert    DamagePVEt DamagePerPVPtDamagePerPVPReducet    DamagePVPtDamagePVPReducet    FinalHurttFinalHurtReducet FinalHurtPertFinalHurtReducePert OnlyFinalHurtt DamChanceDeft NPCHurtAddPert    FaintRatet FaintDefRatet    ComboRatet ComboDefRatet AtkBackRatetAtkBackDefRatet    SuckHPPert SuckHPDefPert    AtkBackHPt PVPAtkBackHPtCurePert
CureDefPertPetStrengthenPert PetWeakenPertSuperHitHurtPertSuperHitHurtDefPers%stFightPowerDicttEquipOrangeCounttTotalEquipStart TotalPlusLVtTotalPlusEvolveLVt TotalStoneLVtTotalEquipWashLVt    SkillInfot TotalSkillLVtPettHorset    GodWeapontRunet MagicWeapontFruitRBRE(otGetAccIDR<tGetOfficialRanktGetJobt GetRoleTypetGetFacet GetModelMarktGetVIPLvt GetPlayerNamet
GetFacePict GetFamilyIDt GetFamilyNameRtGetFamilyEmblemIDt
GetTitleIDt GetCoupleNameRRtGetPlayerPlatformtGetEquipShowSwitcht__GetEquipShowIDListtGetPlayerServerGroupIDtGetMetaltGetWoodtGetWatertGetFiretGetEartht    GetMinAtkt    GetMaxAtktGetDeftGameObjtGetMaxHPtGetHittGetMisst GetAtkSpeedtGetSkillAtkRatetGetSkillAtkRateReducetGetLuckyHitRatetGetLuckyHitValtGetLuckyHitRateReducetGetLuckyHitReducetGetSuperHitRatet GetSuperHittGetSuperHitRateReducetGetSuperHitReducet    GetIceAtkt    GetIceDeftGetIgnoreDefRatetGetIgnoreDefRateReducetGetIgnoreDefReducePert GetDamagePVEtGetDamagePerPVPtGetDamagePerPVPReducet GetDamagePVPtGetDamagePVPReducet GetFinalHurttGetFinalHurtReducetGetFinalHurtPertGetFinalHurtReducePertGetOnlyFinalHurttGetDamChanceDeftGetNPCHurtAddPert GetFaintRatetGetFaintDefRatet GetComboRatetGetComboDefRatetGetAtkBackRatetGetAtkBackDefRatet GetSuckHPPertGetSuckHPDefPert GetAtkBackHPtGetPVPAtkBackHPt
GetCurePert GetCureDefPertGetPetStrengthenPertGetPetWeakenPertGetSuperHitHurtPertGetSuperHitHurtDefPert ShareDefinetModuleFightPowerTypeListtGetMFPFightPowerRztGetEquipOrangeCounttGetTotalEquipStarstGetTotalPlusLVtGetTotalPlusEvolveLVR~tGetTotalStoneLVR‚tGetTotalEquipWashLVt
SkillShelltGetAllSkillCacheInfoRtDef_SkillFuncType_FbSkilltDef_SkillFuncType_NormalAttacktDef_SkillFuncType_ShentongSkilltDef_SkillFuncType_ElfSkilltsumR)tvaluest    PlayerPettGetPetCacheInfot__GetHorseInfot__GetGodWeaponInfot __GetRuneInfot__GetMagicWeaponInfotPlayerAttrFruittGetAttrFruitEatCntDictRR]tg_playerViewCache(R    tcurPlayerPropDicttcurPlayerPlusDicttfightPowerDicttmfpTypeR"t    skillInfoR!((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytUpdPlayerPropPlusCachesÌ$"
 
) cCst|ƒt|jƒtƒS(N(RXtGetPlayerPropPlusCacheByIDRR(R    ((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR7‚s
cCsat||ƒ\}}tj|dtƒjddƒ}tj|dtƒjddƒ}||fS(NRms R(tGetPlayerPropPlusDictByIDR†R‡RRˆ(R!tcheckUpdtPropDicttPlusDictRBRE((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyRY‡s!!cCse|r"ttjƒj|ƒƒntjj|iƒ}|jdiƒ}|jdiƒ}||fS(NRBRE(RXRtGetPlayerManagertFindPlayerByIDR]RRR)(R!R[t    viewCacheR\R]((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyRZŽs cCs‡g}tdƒtj|ƒ}|jƒjtjƒ}xI|D]A}|j|ƒ}| s>|jƒrlq>n|j    |j
ƒƒq>W|S(Ni
( trangeRtGetFaceEquipIndexListRqRrRoRpRtRuR…Rv(R    tequipShowIDListt    indexListR‹RŽR((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyRÿ—s cCs½i}tjƒ}xat|jƒƒD]M}|j|ƒ}|jƒ}|jƒsXq%n|jtj    |ƒ||<q%Wi|jtj
ƒd6|jtj ƒd6t j |ƒd6|d6}|S(NRjt EatItemCounttSkinPlusStateListtSkinEndTimeInfo(R[tIPY_DataRZtGetHorseSkinPlusCounttGetHorseSkinPlusByIndextGetIDtGetSkinValidTimeRRtDef_PDict_HorserSkinEndTimetDef_PDict_HorserLVtDef_PDict_HorserEatItemCountt PlayerHorsetGetHorseSkinPlusStateList(R    tskinEndTimeInfot
ipyDataMgrRŽtskinPlusIpyDatatskinIDt    horseInfo((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyRL¤s   
cCs|i}tjƒ}|j|jƒdƒjƒ}xDtd|dƒD]/}|jtj|ƒ}|rE|||<qEqEW|S(Ni(    R[RhtGetGodWeaponByIndextGetGodWeaponCounttGetTypeRZRRtDef_PDict_GodWeaponLV(R    t godWeaponDictRstmaxTypetgwTypetgwLV((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyRMµs cCsxd}tjddƒ}xYtd|dƒD]D}|jtj|dƒ}|sWq,ntj|ƒ}||7}q,W|S(Nit
RuneUnlockii(R[R\RZRRtDef_PDict_Rune_Datat ItemControlertGetRuneItemPlusLV(R    tmaxLVt runeHoleCnttholeNumtruneDatatruneItemPlusLV((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyRNÀscCs‰i}tjƒ}xpt|jƒƒD]\}|j|ƒ}|jƒ}|jƒ}tj||ƒr%|j    |dƒd||<q%q%W|S(Nii(
R[RhRZtGetTreasureCounttGetTreasureByIndexRktGetTreasureTypetPlayerMagicWeapontGetIsActiveMagicWeaponR)(R    tmwDictRstittreasureIpyDatat magicWeaponIDt treasureType((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyROÏs   !c
Cshtjƒj|ƒ}|j}|j}tjƒj|ƒ}|r*|ržtjƒ}||_||_t||ƒ|_    t
|j    ƒ|_ t j ||ƒdSt|ƒ\}}    tjƒ}||_||_t
|jƒ|_d|_    t
|j    ƒ|_ |    |_t
|jƒ|_t j ||ƒdStjƒ}|jƒ|_||_||_t j|ƒdS(NR(RR^tGetPlayerByIndexR;t EquipClassLVR_tChPyNetSendPackttagSCPlayerEquipCacheResultR`tItemDataRCt ItemDataSizeROt SendFakePackR7ttagSCQueryPlayerCacheResultRBRDRERFR9ttagMGQueryPlayerCacheRt FindPlayerIDRP(
RŽt
clientPackR
R    t findPlayerIDt equipClassLVt
findPlayerRVRBRE((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytOnCMViewPlayerInfoâs<                                            cCs©|jƒ}t|tƒd}|rR|r;t||ƒn|||||ƒ|S|||gtj|<tjƒ}||_||_    d|_
d|_ t j |ƒdS(Nii(RRZRtSync_PlayerCacheR]tg_viewCacheCallbackR9RšR;R›R“tCallMapRORP(R    RtcallFunctcallDatat
syncClientR!tdataDictRV((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytGetPlayerPropDataCalls                   cCs{t|ƒ\}}|sdStjƒ}||_||_t|jƒ|_||_t|jƒ|_t    j
||ƒdS(N( RYR”R™R;RBRCRDRERFROR˜(R    t tagPlayerIDRBRERV((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR¡ s             c Csð|j}|j}|j}|j}i}|rl|rlt|ƒ}t|ƒ}i|d6|d6tj|<n|svdStjj|dƒ}|s•dS|\}    }
} t
j ƒj |ƒ} | sÃdS| rÙt | |ƒn|    | ||
|ƒdS(NRBRE(R;R›RBREtevalR]RRR¢R_tNoneRR^R_R¡( t curPackDataR
R!RRBRERSRTtcallbackR¤R¥R¦R    ((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytOnGMPlayerCache/s,                   (8RRR9RORRoR”tPyGameDataStructR9R‹R~R‚RPRR[RpRzRxR]R4RBRJR    RR@R†t tagDBPlayerRR R RRRR%R-R.R/R0R3R«RR8R`RXR7RYRZRÿRLRMRNROR R¨R¡R®(((ssE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyt<module>sh                                                             .     8                                        &