hxp
2025-12-10 8fb2ab381f0d78962cfe1069ea37e6980a5f2de2
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
úÞ8ic@s?ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z dZ d„Zd„Zd„Zd„Zd„Zd„Zd    „Zed
„Zd „Zdd „Zd „Zd„Zd„Zdd„Zd„Zd„ZdS(iÿÿÿÿNtUpdViewCacheTickcCs 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    cCs°tjƒ}tjƒ}x‘t|jƒƒddd…D]p}|j|ƒ}|jƒ}|tj    krnq8n|j
|ƒ}|r‰q8nt |ƒr›q8n|j |ƒq8WdS(Niÿÿÿÿ( t    GameWorldtGetPlayerManagerRR    trangetGetCounttAtRt ShareDefinetRealPlayerIDStarttFindPlayerByIDRR
(t playerManagert viewCacheMgrtindext    viewCacheR R ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyR5s  &  cCs;|s
tS|jƒ}|tjkr)tStjƒ}xwtjD]l}|tjkrZq?n|j|ƒ}x?|D]7\}}}|j    |||ƒ}|j
|ƒrpt SqpWq?W|j ƒ}    |    t jddƒkr7t jddƒ}
|
sôd}
n|
dd} ttjƒƒ} | |jƒ} | | kr7t SntS(NtPlayerViewCacheiiiii(tFalseRRRRtGetBillboardMgrtBillboardTypeAllListtFamilyBillboardListtGetBillboardGroupListt GetBillboardtFindByIDRtGetLVt IpyGameDataPYt
GetFuncCfgtintttimet
GetOffTime(RR t billboardMgrtbTypet    groupListt billboardTypet groupValue1t groupValue2t billboardObjtplayerLVtmaxDaystMaxTimetcurTimetpassTime((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRHs2         cCs6t|ƒ}|sdS|jƒ}d|kr2dS|S(NtLineup(Rt GetPlusDict(R R tplusDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytFindBattleViewCacheqs   c    Csútjƒ}|j|ƒ}|r?t|ƒ}|rö|}qön·|tjkr¦tjƒj|ƒ}|r…|j    |ƒ}t
|ƒqötj |ƒröt |ƒ}qönPt jd|ƒrêtjd|ƒ|j    |ƒ}t||ƒ}n tj|kotjknrötjd|ƒt jƒ}|jtjd|jƒdƒƒ}|j    |ƒ}t||jƒƒ}|dd}d||f}|jdtjd    ƒ|fƒ|j|ƒ|j|ƒ|jttjƒƒtjddƒƒn|S(s²éÕÒÍæ¼Ò»º´æ£¬Èç¹û²»´æÔÚ£¬Ôò»áÓжîÍâÂß¼­£¬Èç´Óredis¡¢dbÖ±½ÓÕÒ£¬
            ±¾·þÍæ¼ÒÀíÂÛÉÏÒ»¶¨Óв鿴»º´æ£¬ÒòΪÈç¹û²»´æÔÚ»áÖ±½Ó´Ódb¶Á£¬³ý·Ç¸ÃÍæ¼ÒÊý¾Ý±»É¾³ý
            ¿ç·þÍæ¼ÒÀíÂÛÉÏÒ²Ò»¶¨Óлº´æ£¬Ö»ÊÇͨ¹ý¿ç·þ»ò´Ó×Ó·þ²éѯ£¬ÑÓ³Ù»ñµÃ
            ¡¾×¢¡¿Íâ²ãµ÷ÓÃÒÀȻҪÅжÏÊÇ·ñÓÐÊý¾Ý
    tRobots¼ÓÔØ»úÆ÷ÈË»º´æ: %ss¼ÓÔØ¼ÙÍæ¼Ò»º´æ: %siiidsfake%s@test@s%ss%s%ssÖ÷¹«iii
i€Qi/ ( RR    tGetPlayerViewCachet__CheckUpdViewCacheRRRRRtAddPlayerViewCacheRtGetDBPlayerAccIDByIDtUpdPlayerViewCacheByDBR$tGetIpyGameDataNotLogtDebugLogtUpdRobotViewCachetFackPlayerIDStarttFackPlayerIDMaxtIPY_DatatGetRobotByIndextrandomtrandintt GetRobotCounttGetIDt SetPlayerNamet    GbkToCodetSetAccIDt SetServerIDt
SetOffTimeR&R'(    R RR tupdCacheR t
ipyDataMgrt robotIpyDatatserverIDtaccID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyR|s>    " %   ,cCs‡|tjkrdStjƒj|ƒ}|s2dS|jtƒ}tjƒjƒ}|rm||dkrmdS|j    t|ƒt
|ƒS(Ni`ê( RRRRRt GetDictByKeytKey_UpdViewCacheTickt GetGameWorldtGetTicktSetDictR(R R t lastUpdTickttick((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyR;¾scCs|s
dS|jƒ}tjƒj|ƒ}|s5dS|jƒ}|r\tjƒj|ƒnd}tj    ƒj
ƒ}|j t |ƒ|j |jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|jt j!|ƒƒ|j"|ƒ|j#|rj|j$ƒndƒ|j%|r‰|j&ƒndƒ|j'|r¨|j(ƒndƒ|j)t j*|ƒƒ|j+tj,|ƒƒ|rý|j-t.t/j/ƒƒƒni}|j0ƒj1t2j3ƒ}xt4j5D]„}    |    d}
|
dks%|
|j6ƒkrYq%n|j7|
ƒ} | s%| j8ƒrq%ni| j9ƒd6| j:ƒd6|d|
<q%Wi} x=t;j<D]2} t=j>|| ƒ}|sáq½n|| d| <q½Wi|d6| d    6}|j?|ƒ|S(
sô¸üÐÂÍæ¼Ò²é¿´»º´æÊý¾Ý£¬¸üÐÂʱ»úÓÉÍâ²ã×Ô¼ºÅжϣ¬ÕâÀïÖ»×ö¸üÐÂÂß¼­
    1. ÏÂÏßÊ±Ç¿ÖÆ¸üÐÂÒ»´Î£¬ÉÏÏßÔݲ»¸üУ¬ÉÏÏßʱÓɸ÷¹¦ÄÜÈç¹ûÓÐÐèÒªÓõ½´¥·¢¸üÐÂ
    2. ÓÐÐèÒªÓõ½»º´æÊý¾Ýʱ£¬Èç¹ûÍæ¼ÒÔÚÏߣ¬1·ÖÖÓÄÚ¶à´Î»ñȡʱ×î¶à¸üÐÂÒ»´Î£¬Ã»ÓлñÈ¡»º´æÊý¾ÝÔò²»¸üÐÂ
    NtiitItemIDtUserDatas%stEquipR5(@RRR    R:t GetFamilyIDt GetFamilyMgrt
FindFamilytNoneRRVRWRXRURLtGetAccIDRJt GetPlayerNametSetLVR#tSetJobtGetJobt
SetRealmLVtGetOfficialRanktSetFacetGetFacet
SetFacePict
GetFacePict SetModelMarkt GetModelMarktSetEquipShowSwitchtGetEquipShowSwitcht
SetTitleIDt PlayerControlt
GetTitleIDt SetFamilyIDt SetFamilyNametGetNametSetFamilyEmblemIDt GetEmblemIDtSetFamilyEmblemWordt GetEmblemWordtSetFightPowerTotalt GetFightPowerRMtGetPlayerServerIDRNR&R'tGetItemManagertGetPackt IPY_GameWorldtrptEquiptChConfigtDef_MainEquipPlacesRtGetAttIsEmptyt GetItemTypeIDt GetUserDataRt
LineupListt
TurnAttacktGetPlayerLineupInfot SetPlusDict(R t    isOfflineR R tfamilyIDtfamilyRZt    equipDictt    equipPackt
equipPlacet
equipIndextcurEquipt
lineupDicttlineupIDt
lineupInfoR7((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRÌs^  ! 
, cCsd}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 |ƒ|rItj!ƒj"|ƒnd}|j#|rg|j$ƒndƒ|j%|r†|j&ƒndƒ|j'|r¥|j(ƒndƒ|j)|j*t+j,|j-ƒ|j.tj/|j ƒƒ|j0|j1rtj2|j1ƒndƒ|S(sG¸üÐÂÍæ¼Ò²é¿´»º´æÊý¾Ý£¬Ö±½Ó´ÓdbÊý¾Ý¸üУ¬½ö¸üÐÂdbPlayer±íÓеÄÊôÐÔ£¬
    s!UpdPlayerViewCacheByDBÕÒ²»µ½Íæ¼Ò!sdb²éÕÒÖ±½Ó¸üÐÂÍæ¼Ò²é¿´»º´æÊý¾Ý!R[iN(3Rbt PyMongoMaint GetUserCtrlDBt findDBPlayerRtErrLogRR    R:R<tFamilyIDR@RLtAccIDRJt
PlayerNameRetLVRftJobRht OfficialRankRjtFaceRltFacePicRnt    ModelMarkRptEquipShowSwitchRrtExAttr3RuR`RaRvRwRxRyRzR{R|t FightPowerExRƒtDef_PerPointValuet
FightPowerRMtGetAccIDServerIDRNt
LogoffTimetChangeTimeStrToNum(R R tdbPlayerRRŽR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyR> s<      !(cCsEi}|s$tjƒj|ƒ}n|r±i    |jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6t    j
|ƒd6tj |ƒd6t    j |ƒd    6}nt |ƒ}|rAi    |jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|j
ƒd6|jƒd6|jƒd    6}n|S(
NtNameRŸR tRealmLVR¢R£tTitleIDtServerIDR©(RRRRdR#RgRiRkRmRsRtR~R}Rt
GetRealmLVt GetServerIDtGetFightPowerTotal(R R tbaseInfoR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytGetPlayerBaseViewInfo/s6               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 R¯R¢R£R°R¤R¥R©tPlusData( RdR#RgR²RkRmRtRoRqR´R6(R t    robotDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytGetRobotByViewCachePs          cCsóg}tjƒ}tjƒ}x‘t|jƒƒD]}}|j|ƒ}|jƒ}|j|ƒ}|sy|j    |ƒ}n|s…q1nt
|||ƒ|j |j ƒ|gƒq1W|j dtƒtjd|ƒtjdt|ƒ|fƒ|S(NtreversetrobotFPSortLists¼ÓÔØ»úÆ÷ÈËÕ½Á¦ÅÅÐò: %s, %s(RR    R$RDRRHRERIR:R<RAtappendR´tsortRt SetConfigExRtLogtlen(R»RRPRtipyDatat robotPlayerIDR ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyt    LoadRobotcs"   cCs>g}tjdƒ}|s'tƒ}n|r:||7}n|S(NR»(R$t GetConfigExRÃ(tsortListR»((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytGetRobotFightPowerSortListws  cCsy|stjd|ƒ}n|s%dSyt|jƒƒ}WndSX|jtj|jƒƒƒ|j|j    ddƒƒ|j
|j    ddƒƒ|j |j    ddƒƒ|j |j    ddƒƒ|j |j    ddƒƒ|j|j    d    dƒƒ|j|j    d
dƒƒ|j|j    d dƒƒ|j|j    d dƒƒ|jtjƒjƒƒ|j|j    d iƒƒ|S(NR9RŸiR R¯iR¢R£R°R¤R¥R©R·(R$tGetIpyGameDatatevalt GetViewCacheRJRRKt GetRobotNameRetgetRfRhRjRlRrRnRpR|RMRVR³RŒ(R trobotIDRQt    robotInfo((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRA‚s*cCsktjƒj|ƒ}|j}t|ƒ}|rDtj||ƒdStj|ƒrgtj    |dƒdSdS(NtViewPlayer_OffLine(
RRtGetPlayerByIndextPlayerIDtGetPack_ViewCachet NetPackCommont SendFakePackR=Rst
NotifyCode(Rt
clientPackRZR t findPlayerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pytOnCMViewPlayerInfo«s     cCsFt|ƒ}|sdStjƒ}|jƒ|_|jƒ|_|jƒ|_|j    ƒ|_
|j ƒ|_ |j ƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_ |j!ƒ|_"|j#ƒ|_$|j%ƒ|_&t'|j&ƒ|_(|S(N()RtChPyNetSendPackttagSCQueryPlayerCacheResultRRÐRdRžR#RŸRgR R²R¯RkR¢RmR£RoR¤RqR¥RtR°R³R±R}R©tGetFightPowerExR§R_Rœt GetFamilyNamet
FamilyNametGetFamilyEmblemIDtFamilyEmblemIDtGetFamilyEmblemWordtFamilyEmblemWordt GetPlusDataR·RÀt PlusDataSize(R R RÕ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyRѽs0  ( RƒRR˜RsRÒRØR$RRRŠRRFR'RURRRRR8RR;RRR>RbR¶R¹RÃRÆRAR×RÑ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerViewCache.pyt<module>s:                             )         B     A    " !             )