hxp
2025-05-16 273fbbf3ec69623f4501583614174c7d604a06b5
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
GÏ%hc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZejƒZdZd„Zd„Zd„Zed„Z d„Z!d„Z"d    „Z#d
„Z$d „Z%eeded „Z'ed „Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1dS(iÿÿÿÿNtProcessPlayerCachecCsVt||tƒtj|tjdƒtj|tjdƒtj|tjdƒdS(Ni(tUpdateGameServerPlayerCachetTruet PlayerControltNomalDictSetPropertytChConfigtDef_PDict_EquipViewCacheStatetDef_PDict_PackDataSyncStatet Def_PDict_PackDataSyncFightPower(t    curPlayerttick((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytOnPlayerLogOut/s
cCsQ|jtƒ}|s)|jt|ƒdS||dkr=dSt||tƒdS(Nii<ièi,ià“(t GetDictByKeytDef_Process_TicktSetDictRtFalse(R    R
tlastTick((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyt ProcessCache7scCs-tjƒ|r)tjtj|ƒƒntS(N(t TempDBPlayertcleartreadDatatbase64t    b64decode(tpackData((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytGetDBPlayerByPackDataBs
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((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytGetSyncPlayerPackDataIs    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((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytUpdPackDataSyncState]s     cCst|idd6ƒdS(NiR&(R-(R    ((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytSetPackDataSyncStatenscCst|idd6ƒdS(NiR'(R-(R    ((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytSetPackDataCrossSyncStateoscCst|idd6ƒdS(NiR((R-(R    ((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytSetViewCacheCrossSyncStatepscCs©|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
((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytNormalSyncPackDatars
  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((sW.\\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((sW.\\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((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR`ÊsP        
   ! !cCs£i}|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<|j ƒ|d<t
j!|ƒ|d<|j"ƒ|d<|j#ƒ|d<t
j$|ƒ|d<t
j%|ƒ|d<|j&ƒ|d <|j'ƒ|d!<t
j(|ƒ|d"<t
j)|ƒ|d#<|j*ƒ|d$<|j+ƒ|d%<|j,ƒ|d&<t
j-|ƒ|d'<t
j.|ƒ|d(<t
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<t
j9|ƒ|d3<t
j:|ƒ|d4<t
j;|ƒ|d5<t
j<|ƒ|d6<t
j=|ƒ|d7<t
j>|ƒ|d8<i}i}x:t?j@D]/}t
jA||ƒ}|r,||d9|<q,q,W||d:<tBjC|ƒ|d;<tBjD|ƒ|d<<tBjE|ƒ|d=<tBjF|ƒ|d><tGjH|ƒ|d?<tIjJ|ƒ|d@<tKjL|tMjNƒ|dA<tO|ƒ|dB<tP|ƒ|dC<tQ|ƒ|dD<tR|ƒ|dE<tS|ƒ|dF<tTjU|ƒ|dG<tVjW|dHtXƒjYdIdJƒ}tVjW|dHtXƒjYdIdJƒ}||fS(KNtAccIDRjtRealmLVtJobtVIPLVtNametFacetFacePictFamilyIDt
FamilyNametFamilyEmblemIDtTitleIDt
CoupleNamet
FightPowertAppIDtEquipShowSwitcht EquipShowIDt ServerGroupIDt LingGenPointtMinAtktMaxAtktDeftMaxHPtHittMisst SkillAtkRatetSkillAtkRateReducet LuckyHitRatet LuckyHitValtLuckyHitRateReducetLuckyHitReducet SuperHitRatetSuperHittSuperHitRateReducetSuperHitReducetIceAtktIceDeft IgnoreDefRatetIgnoreDefRateReducetIgnoreDefReducePert    DamagePVEt DamagePerPVPtDamagePerPVPReducet    DamagePVPtDamagePVPReducet    FinalHurttFinalHurtReducet FinalHurtPertFinalHurtReducePert OnlyFinalHurtt DamChanceDeft NPCHurtAddPert AtkBackHPPert PVPAtkBackHPt    FaintRatet FaintDefRates%stFightPowerDicttEquipOrangeCounttTotalEquipStart TotalPlusLVtTotalPlusEvolveLVt TotalStoneLVtTotalEquipWashLVt TotalSkillLVtPettHorset    GodWeapontRunet MagicWeapontFruitRms R(ZtGetAccIDR<tGetOfficialRanktGetJobtGetVIPLvt GetPlayerNametGetFacet
GetFacePict GetFamilyIDt GetFamilyNameRtGetFamilyEmblemIDt
GetTitleIDt GetCoupleNameRRtGetPlayerPlatformtGetEquipShowSwitcht__GetEquipShowIDListtGetPlayerServerGroupIDtGetMetaltGetWoodtGetWatertGetFiretGetEartht    GetMinAtkt    GetMaxAtktGetDeftGameObjtGetMaxHPtGetHittGetMisstGetSkillAtkRatetGetSkillAtkRateReducetGetLuckyHitRatetGetLuckyHitValtGetLuckyHitRateReducetGetLuckyHitReducetGetSuperHitRatet GetSuperHittGetSuperHitRateReducetGetSuperHitReducet    GetIceAtkt    GetIceDeftGetIgnoreDefRatetGetIgnoreDefRateReducetGetIgnoreDefReducePert GetDamagePVEtGetDamagePerPVPtGetDamagePerPVPReducet GetDamagePVPtGetDamagePVPReducet GetFinalHurttGetFinalHurtReducetGetFinalHurtPertGetFinalHurtReducePertGetOnlyFinalHurttGetDamChanceDeftGetNPCHurtAddPertGetAtkBackHPPertGetPVPAtkBackHPt GetFaintRatetGetFaintDefRatet ShareDefinetModuleFightPowerTypeListtGetMFPFightPowerRztGetEquipOrangeCounttGetTotalEquipStarstGetTotalPlusLVtGetTotalPlusEvolveLVR~tGetTotalStoneLVR‚tGetTotalEquipWashLVt
SkillShellt GetAllSkillLVRtDef_SkillFuncType_FbSkillt __GetPetInfot__GetHorseInfot__GetGodWeaponInfot __GetRuneInfot__GetMagicWeaponInfotPlayerAttrFruittGetAttrFruitEatCntDictR†R‡RRˆ(R    tcurPlayerPropDicttcurPlayerPlusDicttfightPowerDicttmfpTypeR"RBRE((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR7s¢$"
!!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((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyRíls cCsÉi}g}|jƒjtjƒ}xt|jƒƒD]m}|j|ƒ}| s7|jƒreq7n|jtj    ƒ}|jtj
ƒ}|j i|d6|d6ƒq7W||d<t j |ƒ|d<|S(NtidtlvtPetLVtAtkSpeed(RqRrRtrptPetRZtGetCountRtRut GetUserAttrtDef_IudetPet_NPCIDtDef_IudetPet_ClassLVR…Rt GetAtkSpeed(R    tpetInfotpetClassLVListR‹RŽtpackItemtpetNPCIDRW((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR&ys
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((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR'Šs   
cCs|i}tjƒ}|j|jƒdƒjƒ}xDtd|dƒD]/}|jtj|ƒ}|rE|||<qEqEW|S(Ni(    R[RFtGetGodWeaponByIndextGetGodWeaponCounttGetTypeRZRRtDef_PDict_GodWeaponLV(R    t godWeaponDictRQtmaxTypetgwTypetgwLV((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR(›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((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR)¦scCs‰i}tjƒ}xpt|jƒƒD]\}|j|ƒ}|jƒ}|jƒ}tj||ƒr%|j    |dƒd||<q%q%W|S(Nii(
R[RFRZtGetTreasureCounttGetTreasureByIndexRItGetTreasureTypetPlayerMagicWeapontGetIsActiveMagicWeaponR)(R    tmwDictRQtittreasureIpyDatat magicWeaponIDt treasureType((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyR*µ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(RtGetPlayerManagertGetPlayerByIndexR;t EquipClassLVtFindPlayerByIDtChPyNetSendPackttagSCPlayerEquipCacheResultR`tItemDataRCt ItemDataSizeROt SendFakePackR7ttagSCQueryPlayerCacheResultRBRDRERFR9ttagMGQueryPlayerCacheRt FindPlayerIDRP(
RŽt
clientPackR
R    t findPlayerIDt equipClassLVt
findPlayerRVRBRE((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pytOnCMViewPlayerInfoÈs<                                            (2RRRRORRoRttDBStructR9RiR~R‚R+R_R[RNRzRxR]R4R#R÷RR@R†t tagDBPlayerRR R RRRR%R-R.R/R0R3tNoneRR8R`R7RíR&R'R(R)R*R€(((sW.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCacheTube.pyt<module>s\                                                            .     8    j