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
ó
m–Ìjc@sêddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Ze e d „Z!d „Z"d„Z#d„Z$dd„Z%d„Z&d„Z'd„Z(dd„Z)dd„Z+d„Z,d„Z-d„Z.dS(iÿÿÿÿNcCs tƒdS(N(tDelOutofTimeViewCacheData(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytOnDay*scCs\|jƒ}t|ƒ}|s"dSt|tƒt|ƒsXtjƒj|jƒƒdSdS(N(t GetPlayerIDt FindViewCachetUpdPlayerViewCachetTruetIsSaveDBViewCachet    DBDataMgrtGetPlayerViewCacheMgrtDelPlayerViewCache(t    curPlayertplayerIDtcurCache((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytOnPlayerLogout.s    cCsR|jƒ}tjƒ}|j|ƒ}|s1dSt|ƒsN|j|ƒdSdS(N(RRRtGetPlayerViewCacheRR    (t crossPlayerR t viewCacheMgrR ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytOnCrossPlayerLogout<s    cCsÜg}tjƒ}tjƒ}xžt|jƒƒddd…D]}}|j|ƒ}|jƒ}|tj    krtq>n|j
|ƒ}|rq>nt |ƒr¡q>n|j |ƒ|j |ƒq>W|rØtj|dƒndS(NiÿÿÿÿttagDBPlayerViewCache(t CrossPlayertGetCrossPlayerMgrRRtrangetGetCounttAtRt ShareDefinetRealPlayerIDStarttFindCrossPlayerRR    tappendtDelPlayerGameWorldDataFromDB(tdelPlayerIDListtcrossPlayerMgrRtindext    viewCacheR R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRIs$  &   cCsy|s
tS|jƒ}|tjkr)tStjƒ}|s?tStj|ƒrRtSt    j
ƒ}|rmtj ntj }xt|D]l}|tj kr˜q}n|j|ƒ}x?|D]7\}}}    |j|||    ƒ}
|
j|ƒr®tSq®Wq}W|jƒ} | tjddƒkrutjddƒ} | s2d} n| dd} ttjƒƒ}||jƒ}|| krutSntS(NtPlayerViewCacheiiiii(tFalseRRRt    GameWorldt IsCrossServerRt PlayerFamilytIsFamilyNeedViewPlayerRtGetBillboardMgrtCrossBillboardTypeListtBillboardTypeListtFamilyBillboardListtGetBillboardGroupListt GetBillboardtFindByIDtGetLVt IpyGameDataPYt
GetFuncCfgtintttimet
GetOffTime(R R t isCrossServert billboardMgrtbillboardTypeListtbTypet    groupListt billboardTypet groupValue1t groupValue2t billboardObjtplayerLVtmaxDaystMaxTimetcurTimetpassTime((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyR`s>           cCs6t|ƒ}|sdS|jƒ}d|kr2dS|S(NtLineup(Rt GetPlusDict(R R tplusDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytFindBattleViewCaches   c    Csätjƒ}|j|ƒ}|r?t|ƒ}|rà|}qàn¡|tjkr²tjƒr²tjƒj    |ƒ}|r‘|j
|ƒ}t |ƒqàtj |ƒràt |ƒ}qàn.tjd|ƒrå|j
|ƒ}t||ƒ}nûtj|kotjknràtjƒ}|jtjd|jƒdƒƒ}|j
|ƒ}t||jƒƒ}|dd}d||f}|jdtjdƒ|fƒ|j|ƒ|j|ƒ|jttjƒƒtjdd ƒƒn|S( s²éÕÒÍæ¼Ò»º´æ£¬Èç¹û²»´æÔÚ£¬Ôò»áÓжîÍâÂß¼­£¬Èç´Óredis¡¢dbÖ±½ÓÕÒ£¬
            ±¾·þÍæ¼ÒÀíÂÛÉÏÒ»¶¨Óв鿴»º´æ£¬ÒòΪÈç¹û²»´æÔÚ»áÖ±½Ó´Ódb¶Á£¬³ý·Ç¸ÃÍæ¼ÒÊý¾Ý±»É¾³ý
            ¿ç·þÍæ¼ÒÀíÂÛÉÏÒ²Ò»¶¨Óлº´æ£¬Ö»ÊÇͨ¹ý¿ç·þ»ò´Ó×Ó·þ²éѯ£¬ÑÓ³Ù»ñµÃ
            ¡¾×¢¡¿Íâ²ãµ÷ÓÃÒÀȻҪÅжÏÊÇ·ñÓÐÊý¾Ý
    tRobotiiidsfake%s@test@s%ss%s%ssÖ÷¹«iii
i€Qi/ ( RRRt__CheckUpdViewCacheRRR#t IsMainServertGetPlayerManagertFindPlayerByIDtAddPlayerViewCacheRtGetDBPlayerAccIDByIDtUpdPlayerViewCacheByDBR/tGetIpyGameDataNotLogtUpdRobotViewCachetFackPlayerIDStarttFackPlayerIDMaxtIPY_DatatGetRobotByIndextrandomtrandintt GetRobotCounttGetIDt SetPlayerNamet    GbkToCodetSetAccIDt SetServerIDt
SetOffTimeR1R2(    R RR tupdCacheR
t
ipyDataMgrt robotIpyDatatserverIDtaccID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyR›s:    " %   ,cCsD|s
dS|jƒ}d||f}|j|ƒ|j|ƒdS(Nsfake%s@test@s%s(RRZR[(R R`R Ra((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytSetFackPlayerCacheServerIDÜs   cCsmxftjD][}|tj||ƒkr
|jtjdƒtjd||ƒt    j
|t j ƒPq
q
WdS(NisI¹¦ÄÜÕ½¶·»º´æÓõ½¸ÃÁ÷ÅÉÔ¤Éè£¬ÖØÖûº´æË¢ÐÂ! batPresetType=%s,batPresetID=%s( RtNeedCacheBatPresetListt PlayerPresettGetBatPresetIDtSetDicttChConfigtDef_PlayerKey_ViewCacheRefreshR#t
DebugLogExtChPlayertOnPlayerBaseInfoChangetIPY_PlayerDefinetCDBPlayerRefresh_FightPower(R
t batPresetIDt batPresetType((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytResetCacheUpdByPresetSwitchåscCsB|tjkrdStjƒj|ƒ}|s2dSt|dtƒS(NtcheckRefreshPlus(RRR#RIRJRR(R R
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRGîs c*Css|s
dS|jƒ}tjƒj|ƒ}|s5dS|jƒ}|j|jƒƒ|j|jƒƒ|j    |j
ƒƒ|j |j ƒƒ|j |jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|jtj|ƒƒ|j|ƒ|jtj|ƒƒ|jtj|ƒƒ|j |rYt!t"j"ƒƒndƒ|r’|j#t$j%ƒs|dS|j&t$j%dƒn|j't$j(ƒ|j't$j)ƒt$j*}i}|j+ƒj,t-j.ƒ}xt$j/D]„}    |    d}
|
dksã|
|j0ƒkrqãn|j1|
ƒ} | sã| j2ƒr?qãni| j3ƒd6| j4ƒd6|d|
<qãWt5j6|ƒ} | j7ƒ} i}x3t$j8j9ƒD]"}t:j;||ƒ}|||<qœWi}iiiif\}}}}xÑt<j=D]Æ}t:j>||ƒ}t:j?||t<j@ƒ}t:j?||t<jAƒ}t:j?||t<jBƒ}i|tCt<jDƒ6|tCt<j@ƒ6|tCt<jAƒ6|tCt<jBƒ6|d|<tEjF||ƒ}|r |jGd|ƒ}tC|ƒ|kr i|d6|d    d    6|d
d
6|d|<q n| jHt$jI|ƒ}| jJt$jI|ƒ}id „|jKƒDƒd 6|d 6|d|<| jJt$jL|ƒ}|r||d|<n|jGdiƒ}|rð||d|<qðqðWi|d6} | jHt$jMƒ}id„|jKƒDƒd 6|d6}!i|j't$jNƒd6|d6}"| jHt$jOƒ}tPjQ|ƒ}#i|#d6d„|jKƒDƒd 6}$| jHt$jRƒ}tSjT|ƒ}#i|#d6d„|jKƒDƒd 6}%| jHt$jUƒ}|j't$jVƒ}&|j't$jWƒ}'i|&d6|'d6d„|jKƒDƒd 6}(i |d6|d6|d6|"d6|%d6|(d6|$d6|d6| d 6| d!6|!d6|d"6})|jX|)ƒ|S(#s¸üÐÂÍæ¼Ò²é¿´»º´æÊý¾Ý£¬¸üÐÂʱ»úÓÉÍâ²ã×Ô¼ºÅжϣ¬ÕâÀïÖ»×ö¸üÐÂÂß¼­
    1. ÏÂÏßÊ±Ç¿ÖÆ¸üÐÂÒ»´Î£¬ÉÏÏßÔݲ»¸üУ¬ÉÏÏßʱÓɸ÷¹¦ÄÜÈç¹ûÓÐÐèÒªÓõ½´¥·¢¸üÐÂ
    2. ÓÐÐèÒªÓõ½»º´æÊý¾Ýʱ£¬Èç¹ûÍæ¼ÒÔÚÏߣ¬x·ÖÖÓÄÚ¶à´Î»ñȡʱ×î¶à¸üÐÂÒ»´Î£¬Ã»ÓлñÈ¡»º´æÊý¾ÝÔò²»¸üÐÂ
    3. ÓÐÉèÖÃÐèҪˢÐÂʱÔòÎÞÊÓË¢ÐÂCD
    NiitItemIDtUserDatas%st BatPresetIDtPlayerIDt
FightPowertHerocSs%i|]\}}|t|ƒ“qS((tstr(t.0tktv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pys
<dictcomp>Vs    tAttrtSkilltSoultPresetcSs%i|]\}}|t|ƒ“qS((Rx(RyRzR{((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pys
<dictcomp>gs    tGWLVtCntcSs%i|]\}}|t|ƒ“qS((Rx(RyRzR{((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pys
<dictcomp>os    cSs%i|]\}}|t|ƒ“qS((Rx(RyRzR{((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pys
<dictcomp>ts    tLVtClassLVcSs%i|]\}}|t|ƒ“qS((Rx(RyRzR{((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pys
<dictcomp>zs    tEquipt    BatPresetRBtMinggetBeautytHorsetGubaot FightPowerHtRoleAttrtBeasttBatPresetOrder(YRRRRt GetFamilyIDRZtGetAccIDRXt GetPlayerNametSetLVR.tSetJobtGetJobt
SetRealmLVtGetOfficialRanktSetFacetGetFacet
SetFacePict
GetFacePict SetModelMarkt GetModelMarktSetEquipShowSwitchtGetEquipShowSwitcht
SetTitleIDt PlayerControlt
GetTitleIDt SetFamilyIDtSetFightPowerTotalt GetFightPowerR[R#tGetPlayerServerIDR\R1R2t GetDictByKeyRgRhRftNomalDictGetPropertytDef_PDict_FightPowerHtDef_PDict_FightPowerHExtDef_PerPointValuetGetItemManagertGetPackt IPY_GameWorldtrptEquiptDef_MainEquipPlacesRtGetAttIsEmptyt GetItemTypeIDt GetUserDatat PlayerOnlinetGetOnlinePlayertGetRoleBatAttrDicttMapBatPresetOrderDicttkeysRdtGetBatPresetTypeOrderListRRcRetGetFuncPresetIDtFuncPreset_MinggetFuncPreset_BeasttFuncPreset_SoulRxtFuncPreset_Battlet
TurnAttacktGetPlayerLineupInfotgett GetCalcAttrtDef_CalcAttr_MinggetGetCalcSpecInfotitemstDef_CalcAttr_BeasttDef_CalcAttr_SoultDef_PDict_MGGanwuLVtDef_CalcAttr_Gubaot PlayerGubaotGetGubaoTotalCnttDef_CalcAttr_Beautyt PlayerBeautytGetBeautyActCnttDef_CalcAttr_HorsetDef_PDict_HorseLVtDef_PDict_HorseClassLVt SetPlusDict(*R
t    isOfflineRqR R tfamilyIDRŠt    equipDictt    equipPackt
equipPlacet
equipIndextcurEquiptolPlayertroleBatAttrDicttbatPresetTypeOrderInfotmapIDtbatPresetTypeOrderListt batPresetDictt
lineupDictt mgPresetDicttbeastPresetDicttsoulPresetDictRoRnt
mgPresetIDt beastPresetIDt soulPresetIDt
lineupInfotattrDictt skillLVDicttspecDicttsoulInfot    beastDicttsoulDictt
minggeDicttactCntt    gubaoDictt
beautyDictthorseLVtclassLVt    horseDictRD((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRös®   %
, 1, $ $$+ cCs¡d}tjƒj|ƒ}|s5tjd|ƒ|Stjƒ}|j|ƒ}|sh|j    |ƒ}n|j
}tj d|ƒ|j |j ƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j|jƒ|j |ƒ|j!|j"ƒ|j#|j$t%j&|j'ƒ|j(tj)|j ƒƒ|j*|j+r–tj,|j+ƒndƒ|S(sG¸üÐÂÍæ¼Ò²é¿´»º´æÊý¾Ý£¬Ö±½Ó´ÓdbÊý¾Ý¸üУ¬½ö¸üÐÂdbPlayer±íÓеÄÊôÐÔ£¬
    s!UpdPlayerViewCacheByDBÕÒ²»µ½Íæ¼Ò!sdb²éÕÒÖ±½Ó¸üÐÂÍæ¼Ò²é¿´»º´æÊý¾Ý!iN(-tNonet PyMongoMaint GetUserCtrlDBt findDBPlayerR#tErrLogRRRRKtFamilyIDtDebugLogRZtAccIDRXt
PlayerNameR‘R‚R’tJobR”t OfficialRankR–tFaceR˜tFacePicRšt    ModelMarkRœtEquipShowSwitchRžtExAttr3R¡tSetFamilyServerIDtLastWeekFamilyActiveValueR¢t FightPowerExRgR©RvR[tGetAccIDServerIDR\t
LogoffTimetChangeTimeStrToNum(R R tdbPlayerRRÓ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRMƒs6      (cCsdtjƒj|ƒ}|sdS|j|ƒ|j|ƒ|j|ƒ|j|ƒ|j|ƒdS(N(RRRR¡Rt SetFamilyNametSetFamilyEmblemIDtSetFamilyEmblemWord(R RÓt
familyNametemblemIDt
emblemWordtfamilyServerIDR ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytUpdPlayerViewFamilyInfo¦s     cCs,|s
dS|jƒ}|jd|jƒƒS(NiRŠ(RCRÀtGetFightPowerTotal(R RD((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytGetViewCacheFightPowerH²s icCs&t|ƒ}|siSi}| s2|tjkrE|jƒ|d<n| s[|tjkrn|jƒ|d<n| s„|tjkr—|jƒ|d<n| s­|tjkrÀ|j    ƒ|d<n| sÖ|tj
kré|j ƒ|d<n| sÿ|tj kr|j ƒ|d<n| s(|tjkr;|jƒ|d<n| sQ|tjkrd|jƒ|d<n| sz|tjkr|jƒ|d    <|jƒ|d
<n| s³|tjkrå|jƒ|d <t|ƒ}|rå||d <qån|s"|ji|jƒd 6|jƒd6|jƒd6ƒn|S(NtNameR‚tRealmLVRÿRtTitleIDRRRùtFamilyServerIDRvtPlusRýtServerIDRû(RRltCDBPlayerRefresh_PlayerNameRtCDBPlayerRefresh_LVR.tCDBPlayerRefresh_OfficialRankt
GetRealmLVtCDBPlayerRefresh_FaceR—tCDBPlayerRefresh_HairColorR™tCDBPlayerRefresh_ExAttr3R tCDBPlayerRefresh_ModelMarkR›t CDBPlayerRefresh_EquipShowSwitchRtCDBPlayerRefresh_FamilyRŽtGetFamilyServerIDRmRtGetBasePlusDicttupdateR“t GetServerIDR(R t refreshTypeR tbaseInfot basePlusDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytGetPlayerBaseViewInfo¹s>  7cCsb|s
iS|jƒ}|jdiƒ}|s2iS|jd|jƒƒ}|jdiƒ}i}x7|jƒD])\}}i|jddƒd6||<qoWi|d6|d6|d6}|jdiƒ}    |    jdiƒ}
|
r—i} x|
jƒD]‚\} } | jdiƒ}i}x=|jƒD]/\}}i|jddƒd6|t|ƒ<q%W|rôi|d6| d    | <qôqôW| r—i| d6|d<q—n|jd
iƒ}|jdiƒ}|r^i}xw|jƒD]i\}}i}x=|jƒD]/\}}i|jd dƒd 6|t|ƒ<qóW|rÔ||d    |<qÔqÔW|r^i|d6|d
<q^n|S( NR…RŠRBRviRŒRtBeastIDs%sR~tSoulID(RCRÀRRÄRx(R RDR…RŠRßRBRzR{R+t beastDictAllRátbeastPresetBaseRäRéRëtbaseDicttposNumtinfot soulDictAllRâtsoulPresetBaseRåRê((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyR&ÞsL !''cCstjƒ}|j|ƒ}|s3|j|ƒ}nd|kra|j|jd|jƒƒƒnd|kr|j|jd|jƒƒƒnd|kr½|j    |jd|j
ƒƒƒnd|krë|j |jd|j ƒƒƒnd|kr|j |jd|jƒƒƒnd|krG|j|jd|jƒƒƒnd|kru|j|jd|jƒƒƒnd|kr£|j|jd|jƒƒƒnd    |krÑ|j|jd    |jƒƒƒnd
|krÿ|j|jd
|jƒƒƒnd |kr-|j|jd |jƒƒƒnd |kr[|j|jd |jƒƒƒnd |kr‰|j|jd |jƒƒƒnd|kr·|j|jd|j ƒƒƒnd|krß|j!|jdiƒƒn|j"|rýt#t$j$ƒƒndƒ|S(NRR‚RûRýRRÿRRRRRùRRRvRi(%RRRRKRXRÀRR‘R.RZRR’R“R”RR–R—R˜R™RžR RšR›RœRR¡RŽRR%R[R(R¢RRÑR\R1R2(R R*RÒRR ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytUpdPlayerBaseViewInfo
sH  " " " " " " " " " " " " " " %cCs£|s
dSi |jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd    6|j    ƒd
6|j
ƒd 6}|S( NRüR‚RýRRÿRRRRRvtPlusData( RR.R“RR—R™R R›RRRC(R t    robotDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytGetRobotByViewCache1s          cCs.tjd|ƒ}|s*g}tjƒ}tjƒ}x©t|jƒƒD]•}|j|ƒ}|jƒ|krwqJn|j    ƒ}|j
|ƒ}|sª|j |ƒ}n|s¶qJnt |||ƒ|j |jƒ|gƒqJW|jdtƒtjd||ƒtjd|t|ƒ|fƒn|S(NsrobotFPSortList%streverses%¼ÓÔØ»úÆ÷ÈËÕ½Á¦ÅÅÐò: tempNum=%s,%s, %s(R/t GetConfigExRRRRRRVRSt
GetTempNumRWRRKRORRtsortRt SetConfigExR#tLogtlen(ttempNumtrobotFPSortListRR^RtipyDatat robotPlayerIDR ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytGetRobotFightPowerSortListDs*   #cCsˆ|stjd|ƒ}n|s%dSyt|jƒƒ}WndSX|jƒ}|jt|ƒƒ|j|jddƒƒ|j    |jddƒƒ|j
|r©|n|jddƒƒ|j |jddƒƒ|j |jddƒƒ|j |jd    dƒƒ|j|jd
dƒƒ|j|jd dƒƒ|j|jd dƒƒ|jtjƒjƒƒ|j|jd iƒƒ|S(NRFR‚iRýRiRÿRRRRRvR7(R/tGetIpyGameDatatevalt GetViewCacheRRXRxR‘RÀR’R”R–R˜RžRšRœR¢R[R#t GetGameWorldR(RÑ(R trobotIDR_t    robotInfotrealmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRO^s, %cCs¨tjƒj|ƒ}|jƒ}|j}|j}| sa|tjƒjƒksa|tj    kr{t
j |t |ƒƒdSt jtji|d6|gtj|ƒdS(Nt tagPlayerID(R#RItGetPlayerByIndexRRuRRIR(RRt NetPackCommont SendFakePacktGetPack_ViewCachetCrossMsgt SendToServertS2S_ViewTagPlayert dirType_All(Rt
clientPackttickR
R RMt tagServerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytOnCMViewPlayerInfo‡s         .)cCs'|d}tj|t|ƒ|ƒdS(NRM(RtSendFakePackByIDRQ(tdataMsgt fromServerIDR RM((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRT—s
cCs®t|ƒ}|s'tjd|ƒdStjƒ}|jƒ|_|jƒ|_|j    ƒ|_
|j ƒ|_ |j ƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ}|j ƒ}|sJt!j"ƒj#ƒ}|dkrJtj$ƒjƒ}qJn||_%|j&ƒ|_'|j(ƒ|_)|j*ƒ|_+||_,|j-ƒ|_.t/|j.ƒ|_0|S(Ns²é¿´Íæ¼ÒÕÒ²»µ½Ä¿±ê! playerID=%si(1RR#RøtChPyNetSendPackttagSCQueryPlayerCacheResultRRuRRüR.R‚R“RýRRR—RÿR™RR›RRRR RR(RR£RvtGetFightPowerExRRŽR%Rt GetFamilyMgrtGetCurCrossServerIDRIRùt GetFamilyNamet
FamilyNametGetFamilyEmblemIDtFamilyEmblemIDtGetFamilyEmblemWordtFamilyEmblemWordRt GetPlusDataR7R@t PlusDataSize(R R RVRÓR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRQœs@             (/RgR#RõRR%RŸROR]RlR/R¬R³RdRÌRÉRR¾RRRRjRTR2RR RRRRERRbRpRGR"RRMRRR,R&R6R9RERôRORYRTRQ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyt<module>sX                                           0         A                        #          %    ,    '      )