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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
õF¼gc@sUddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZdZdZiZdefd„ƒYZdefd„ƒYZd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zed„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&dddd„Z'd„Z(d„Z)d„Z*dd„Z+dddde,d„Z-eddd „Z.ddd!„Z/ddd"„Z0d#„Z1d$„Z2d%„Z3d&„Z4d'„Z5d(„Z6d)„Z7dS(*iÿÿÿÿNsBillboardSortTick_%ssBillboardNeedSort_%st BillboardObjcBs2eZdZd„Zd„Zd„Zd„ZRS(s °ñµ¥¶îÍâÊý¾Ý¹ÜÀí
    cCs||_i|_d|_dS(N(t_BillboardObj__billboardTypet_BillboardObj__idOrderDicttNonet_BillboardObj__orderRuleList(tselft billboardType((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyt__init__1s            cCs i|_dS(N(R(R((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytOnBillboardChange7s    c Cs|js iS|jstjƒj|jƒ}|s8iS|jƒ}d}d}x®|jD] \}}||}|}xt||ƒD]p}|dkrœPn|j|ƒ}    |    j    ƒ|krÁPn||d}
|
|j|    j
ƒ<|d8}|d7}q†WqZWn|jS(Nii( RRt    GameWorldt GetBillboardt FindBillboardRtGetCounttxrangetAtt GetCmpValuetGetID( Rt    billBoardtbillboardDataCounttrankPretbillboardIndextrankt needCmpValuetorderCountTotaltindext billboardDatat    orderReal((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytGetIDOrderDict<s.         
 
cCs0||_i|_tjd|j|fƒdS(Ns,ÉèÖÃÅÅÃûËùÐèÖµ¹æÔòÁбí: billboardType=%s, %s(RRR    tLogR(Rt orderRuleList((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytSetOrderRuleListXs        (t__name__t
__module__t__doc__RRRR(((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyR-s
            t BillboardMgrcBs eZdZd„Zd„ZRS(s °ñµ¥¶îÍâ¹ÜÀí
    cCs i|_dS(N(t_BillboardMgr__billboardDict(R((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyRds    cCs<||jkr|j|}nt|ƒ}||j|<|S(N(R#R(RRt    billboard((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytGetBillboardObjhs
  (RR R!RR%(((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyR"`s    cCs+tjrtj}ntƒ}|t_|S(N(t
PyGameDatatg_billboardMgrMgrR"(tbillMgr((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytGetBillboardMgrps
             cCsGtjƒrdStjddƒ}x|D]}tj|dƒq)WdS(Nt BillboardSetitOnDay(R    t IsCrossServert IpyGameDataPYtGetFuncEvalCfgtDataRecordPacktDR_BillboardData(tDef_NoteOssBillboardTypeListR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytNoteOssBillboardInfoByDayxs   cCs–tjƒ}xYtjD]N}|jt|ƒs5qn|jt|dƒtjd|ƒt|ƒqWx't    j
ƒD]\}}t ||ƒquWdS(NisOnDay SortBillboardByIndex %s( R    t GetGameWorldt ShareDefinetBillboardTypeListt GetDictByKeytDef_Key_BillboardNeedSorttSetDictRtSortBillboardByIndextDef_NeedCopyYesterday_Dicttitemst CopyBillboard(t    gameWorldRtbillboardTypeYesterday((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytCopyBillboardOnDays cCsttjƒ}xattjƒD]P}|j|ƒ}|jtjj    |dƒƒ|j
tj j    |tj ƒƒqWdS(Ni
( R    R
R R4t
Def_BT_Maxt AddBillboardt SetMaxCounttChConfigt
Def_BT_Cnttgett SetSaveToDBtDef_BT_SaveTypetDef_BT_SaveType_SaveDB(t billboardMgrRR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytInitServerBillboards  #c
Cstjtjƒr#tjdƒdStjtjdƒtjg}|tjj    ƒ7}tjd|ƒtj
ƒ}x$|D]}|j |ƒ}|j ƒ}|s¦qynt j|dƒtjd|ƒxËt|ƒD]½}|j|ƒ}|sõqÔn|jƒ}|jƒ}|jƒ}    |    rBtjd||||    fƒqÔn|jdƒ|j|ƒ|jƒ}|jƒ}    tjd||||    fƒqÔWqyWdS(    Ns(ÐÞÕý²¿·Ö°ñµ¥´ó±È½ÏÖµÖ§³Ö³¬20ÒÚÒѾ­´¦Àí¹ýis"ÐÞÕý²¿·Ö°ñµ¥´ó±È½ÏÖµÖ§³Ö³¬20ÒÚ: %stFixBillboardBigCmpValues"ÐÞÕý°ñµ¥´ó±È½ÏÖµ: billboardType=%ss5    index=%s,dataID=%s, keep CmpValue=%s,CmpValue2=%sis7    index=%s,dataID=%s, Update CmpValue=%s,CmpValue2=%s(tPlayerDBGSEventtGetDBGSTrig_ByKeytDef_FixBillboardBigCmpValueR    RtSetDBGSTrig_ByKeyR4tDef_BT_FightPower_HorsetDef_Campaign_Billboard_DicttvaluesR
R R R/R0trangeRRRt GetCmpValue2t SetCmpValuet SetCmpValue2(
tfixBillTypeListRIRRt    dataCountRt    boardDatatdataIDtcmpValuet    cmpValue2((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyRKs>            %cCsItjƒ}x6td|jƒƒD]}|j|ƒ}|jƒq"WdS(Ni(R    R
RSR R tSort(RIRR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytSortServerBillboardÂs
 cCs~tjƒj|ƒ}|stSt|ƒx7td|jƒƒD] }|j|ƒ}|s`q?n|jƒ}|j    ƒ}|j
ƒ}|j ƒ}|j ƒ}    |j ƒ}
|jƒ} |jƒ} |jƒ} |jƒ}|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}t|||ƒ\}}|dks?|dkrbq?n|j|ƒ|j|ƒ|j|ƒ|j|ƒ|j|ƒ|j |    ƒ|j!|
ƒ|j"| ƒ|j#| ƒ|j$| ƒ|j%|ƒ|j&|ƒ|j'|ƒ|j(|ƒ|j)|ƒ|j*|ƒ|j+|ƒ|j,|ƒ|j-t.|ƒƒq?Wtj/d||fƒt0S(Nis<    CopyBillboard newBillboardIndex=%s, oldBillboardIndex=%s(1R    R
R tFalsetClearBillboardByIndexRSR RRtGetID2tGetName1tGetName2tGetType2t    GetValue1t    GetValue2t    GetValue3t    GetValue4t    GetValue5t    GetValue6t    GetValue7t    GetValue8RRTt GetCmpValue3t GetUserDatatGetBillBoardDataRtSetTypetSetIDtSetID2tSetName1tSetName2tSetType2t    SetValue1t    SetValue2t    SetValue3t    SetValue4t    SetValue5t    SetValue6t    SetValue7t    SetValue8RURVt SetCmpValue3t SetUserDatat
SetDataLentlenRtTrue(tnewBillboardIndextoldBillboardIndext oldBillBoardRtoldBillBoardDatatidtid2tname1tname2ttype2tvalue1tvalue2tvalue3tvalue4tvalue5tvalue6tvalue7tvalue8R[R\t    cmpValue3tuserDataRt billBoardData((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyR<Ísb
                                   cCsOtjƒj|ƒ}|s0tjd|ƒdS|jƒtjd|ƒdS(Ns<ClearBillboardByIndex FindBillboardErr, ÅÅÐаñ = %s ÎÞ·¨²éÕÒsbillboardIndex %s clear.(R    R
R tErrLogtClearR(RR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyR`s
cCstjƒj|ƒ}|sdS|jƒ}|jƒ}|tjkr_t|tj|ƒ}n||krodS|j|ƒtj    d||||fƒ|r||krxRt
|d|ddƒD]3}|dkrÆtj    d|ƒ|j |ƒqÆqÆWndS(s• ±ä¸ü¾º¼¼³¡°ñµ¥×î´óÊý¾ÝÊý
    @param updMaxCount: ¸üеÄ×î´óÊý¾ÝÅÅÃû
    @param isDelExtra: ÊÇ·ñɾ³ýÔ­°ñµ¥ÅÅÃûÊý¾Ý³¬¹ý¸üкóµÄ×î´óÅÅÃû£¬Ä¬ÈÏɾ³ý
    NsS    ±ä¸ü°ñµ¥×î´óÊý¾ÝÊý! billboardIndex=%s,curCount=%s,curMaxCount=%s,updMaxCount=%siiÿÿÿÿis        DeleteByIndex: %s( R    R
R R t GetMaxCountRCRDtminRBRR t DeleteByIndex(Rt updMaxCountt
isDelExtraRtcurCountt curMaxCounttdelIndex((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytUpdateBillboardMaxCounts$        ! cCs8tjƒj|ƒ}tjƒ}|j|jƒƒdS(N(R    tGetPlayerManagertGetPlayerByIndextIPY_GameServertIPY_GSetWatchBillboardStatetSetPlayerWatchBillboardStatetGetState(Rttickt    curPlayertpack((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyt&MapServer_PlayerSetWatchBillboardStateFs cCs8tjƒj|ƒ}tjƒ}|j|jƒƒdS(N(R    R¢R£R¤tIPY_GWatchBillboardtSync_BillboardtGetType(RR¨R©Rª((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytMapServer_PlayerWatchBillboardWs cCsòtjƒj|ƒ}tjƒ}|jƒ}|dksH|tjkrLdS|tj    kr_dStj
j |dƒdkr‹tj dƒdSt |||ƒs¡dStjƒjt|ƒrátjƒjt|dƒt|ƒn|j|ƒdS(NiidsI¸Ã°ñµ¥×î´óÃû´Î½Ï´ó£¬ÐèʹÓ÷ÖÒ³²éѯ! A9 A2 ²é¿´ÅÅÐаñ#tagCPYWatchBillboard(R    R¢R£R¤tIPY_CWatchBillboardR®R4R@RCtDef_InterdictLook_BT_TypeRDREtDebugLogt__CheckWatchCDR3R6R7R8R9R­(RR¨R©RªtpackType((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytWatchPlayerBillboardls"     cCs^d|}|j|ƒ}|s3|j||ƒtS||tjkrJtS|j||ƒtS(NsWatchRankTick_%s(R6R8R‚RCtDef_PlayerBillboard_TickR_(R©RR¨tdictKeytlastTick((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyR³†s
cCsdS(N((RR¨((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytWatchBillboardPrize©scCs>tjƒj|ƒ}|s0tjd|ƒdS|jƒdS(Ns*SortBillboardByIndex, ÅÅÐаñ = %s ÎÞ·¨²éÕÒ(R    R
R R—R](RR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyR9Âs 
cCstjƒj|ƒ}|sdS|j}|j}|j}|j}tjƒjt    |ƒrƒtjƒj
t    |dƒt |ƒnt |||||ƒdS(Ni( R    R¢R£tTypet
StartIndextWatchCnttWatchIDR3R6R7R8R9tSync_BillboardEx(Rt
clientDataR¨R©R´t
startIndextwatchCnttwatchID((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytClient_PYWatchBillboardÖs                 iicCs5|dks|tjkrdStjƒj|ƒ}|sOtjd|ƒdS|jƒ}d}|rÏ|j|ƒ}|dkrÆt|d|ƒ}t    d|dƒ}t|d|||ƒ}qd}nLt    |dƒ}t||ƒ}|sùdn t|dƒ}t|||ƒ}t
ƒ}    |    j |ƒ}
|
j ƒ} t jƒ} | jƒ|| _|| _g| _xœt||ƒD]‹} |dksž| |kr¢Pn|j| ƒ}t jƒ}|jƒ| j|jƒ| dƒd|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|j ƒ|_!|j"ƒ|_#|j$ƒ|_%|j&ƒ|_'|j(ƒ|_)|j*ƒ|_+|j,ƒ|_-|j.ƒ|_/|j0ƒ|_1|j2ƒ|_3|j4ƒ|_5|j6ƒ|_7|j8ƒ|_9t:|j9ƒ|_;| jj<|ƒq€Wt:| jƒ| _=t>j?|| ƒdS(    NisÕÒ²»µ½ÅÅÐаñÊý¾Ý£¡bbType=%siÿÿÿÿii
iidi(@R4R@R    R
R R—R t IndexOfByIDRštmaxR)R%RtChPyNetSendPackttagPYBillboardDataR˜R½Rºt    BillboardR RttagPYBillboardInfoRERt
OrderIndextIDRatID2RbtName1RctName2RdtType2RetValue1RftValue2RgtValue3RhtValue4RitValue5RjtValue6RktValue7RltValue8RtCmpValueRTt    CmpValue2Rmt    CmpValue3RntUserDataRtDataLentappendtBillboardCountt NetPackCommont SendFakePack(R©tbbTypeRÂRÀRÁRtcounttendIndext playerIndexRIt billboardObjt idOrderDictR–RtbbDatatbbInfo((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyR¾ësp            
             
#c!Cs|d}|d}|d}|d}|d}|d}|d}|jdd    ƒ}    |jd
d    ƒ}
|jd d    ƒ} |jd d    ƒ} |jd d    ƒ} |jdd    ƒ}|d}|d}|d}|jddƒ}|tjkrõdSi|    d6|
d6| d6| d6| d6|d6|d6}|dkr¡tjƒ}|j|ƒ}|s]dS|j|ƒr|j|ƒ|jƒtj    d||fƒndStj
ƒ}|j t |ƒ}||dkpâ|jdƒt k}|r|jt ||ƒnt|||||||||||| |d }|tjkr|}|tj|}|d    }|}tjƒj|ƒ}|r›tj||ƒntj|||ƒ|d!}|tjkrtj|} t|||| |||||||
qndS("sµØÍ¼¸üÐÂÅÅÐаñ, Í¨ÓÃ
    {"Type":bType, "Type2":bType2, "ID":bID, "ID2":bID2, "Name1":bName, "Name2":bName2, "ExInfo":exInfo,
    "Value1":value1, "Value2":value2, "CmpValue":cmpValue, "CmpValue2":cmpValue2, "CmpValue3":cmpValue3, "autoSort":autoSort}
    RºRÏRËRÍRÎRÐRÑRÒiRÓRÔRÕRÖR×RØRÙRÚRÛtNRŽRRR‘R’R“R•iÿÿÿÿs#ɾ³ýÅÅÐаñijÌõÊý¾Ý: bType=%s,bID=%si`êtautoSorttExInfoi
(RER4R5R    R
R tFindByIDt
DeleteByIDR]R²R3R6tDef_Key_BillboardSortTickR‚R8tUpdatePlayerBillboardtDef_BT_FightPowerRCtDef_PerPointValueR¢tFindPlayerByIDt PlayerControlt SetFightPowert PlayerFamilytUpdFamilyMemberFightPowertJobFightPowerBillboardDict(!t billInfoDictR¨tbTypetbType2tbIDtbNametbName2RŒRRŽRRR‘R’R“R[R\R”R•tkwargsRItplayerBillBoardR=t lastSortTickRêtexInfotplayerIDtfightPowerTotaltfamilyIDt    playerJobR©tjobtjobBType((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytMapServer_UpdateBillboard6sf
 
 
 
 
 
 
 
 
 
7   
 %+
 
 
 .cCsŽ|tjkrdStj|}|jƒ}tjƒ}|j|ƒ}|sQdS|j|ƒrŠ|j|ƒtjd||f|ƒndS(Ns+ɾ³ýÍæ¼ÒÖ°ÒµÕ½Á¦°ñµ¥: delJob=%s,jobBType=%s(    R4R÷t GetPlayerIDR    R
R RìRíR²(R©tdelJobRRRIRÿ((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytDelJobFightPowerBillboard€s    cCs&|jƒ}|dkr"|jƒS|S(Nttencent(R (tGetAccIDtGetOperateInfo(R©tplatform((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytGetBillboardOperateInfos  
cCs·d|krdS|d}|d}|d}|d}|d}|d}    |d}
|d} |d    } d
} t}t||||| ||    |||d|d|
d| d    | ƒ
dS( NR‡tnameRˆRŠRŒRRŽRRi(R‚Rï(RùtfamilyBillInfoR[R\Rt
familyNameRˆRŠRŒRRŽRRR‹Rê((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytUpdateFamilyBillboard–s  
 
 
 
 
 
 
 
 
$c    Cs?d}    d}
d} d} d} d}|r|jƒ}|jƒ}
|jƒ} |jƒ} t|ƒ}    |jƒ} |jƒ}nÃtjƒj    |ƒ}|rÛ|j
j }
|j
j } |j
j } |j
j} |j
j}nitj|ƒ}|rDtj|ƒ}|d}
|d} |d} |jddƒ} |jddƒ}n| r‹|dkr‹tjd    d
gƒ}
d |} tjd    d ƒ} n|tjkr£| }ntjƒjƒ}tjƒ}|jt|ƒ}||d kpç|}|r|jt||ƒnt|| |    ||
||||||d| d|ƒ dS(NRéitJobtNametRealmLVtFacetFacePici'iis
testName%si
i`êRŽR( RtGetJobtGetNametGetOfficialRankRtGetFacet
GetFacePict PyDataManagertGetPersonalSocialManagertGetSocialPlayert
playerInfoRt
PlayerNameRRRtPlayerViewCachet FindViewCachetGetCachePropDataDictREtrandomtchoicetrandintR4tBTValue1_OfficialRankListR    R3tGetTickR6RîR8Rï(R©RRùR[R\R”RŒRRêt playerOpInfoRt
playerNamet playerRealmLVtfacetfacePict socialPlayertcurCachet    cacheDictR¨R=R((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytUpdatePlayerBillboardEx©sV          
 
 
 
     4c Ksèt||||    |
ƒ\} } | dks6| dkr:tS| jƒdk}|p‹| jƒ|kp‹| jƒ|    kp‹|
o‹| jƒ|
k}|
dkrà|rÑtjdƒ}t    d|t
t j ƒƒƒ}
qà| jƒ}
ntj d||||||    |
||| f
|ƒ| j |ƒ| j|ƒ| j|ƒ| j| jd|ƒƒ| j|ƒ| jt|ƒƒ| j|ƒ| j|ƒ| j| jddƒƒ| j| jddƒƒ| j| jddƒƒ| j| jddƒƒ| j| jd    dƒƒ| j| jd
dƒƒ| j| jd d ƒƒ| jt| j ƒƒƒ| j!|ƒ| j"|    ƒ|
dkrŠ| j#|
ƒn|s”t$St%ƒ}|j&|ƒ}|j'ƒ|sÚtj(ƒj)t*|d ƒt$S| j+ƒt$S(Nis2080-01-01 00:00:00s|¸üÐÂÅÅÐаñÖµ index=%s,type2=%s,value1=%s,value2=%s,cmpValue=%s,cmpValue2==%s,cmpValue3==%s,isNewData=%s,cmpValueChange=%s,%sRˆRŽRRR‘R’R“R•Réi(,RoRR_RaRRTRmR    tChangeTimeStrToNumRÅtintttimeR²RpRuRqRrRERsRttstrRvRwRxRyRzR{R|R}RR€RRnRURVR~R‚R)R%RR3R8R7R](t curPlayerIDR‰RŠRR‹RŒRR[RêR\R”RþRÿtplayerBillBoardDatat    isNewDatatcmpValueChangetcalcTimeRIRå((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyRïsV* "    )             
 
cCsí|jƒdkrdS|jƒd}|j|ƒ}||jƒkrKdS||jƒkr¡||jƒkrsdS||jƒkr¡||jƒkrždSq¡n|j|ƒ|j|ƒ}|sétjd|jƒ|j    ƒfƒn|S(Niis(ÅÅÐаñ²åÈëʧ°Ü  curCnt = %s, maxCnt = %s(
R RRRTRmR›tAddToBillboardR    R—R™(RÿtbillboardDataIDR[R\R”tlastBillBoardIndextlastBillBoardDataR:((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyt__GetAddBillBoardDataGs$
     cCs¨tjƒ}|j|ƒ}|s<tjd|ƒ|dgS|j|ƒ}|dkra||gS|jƒrt|||||ƒ}||gS|j|ƒ}||gS(Ns&FindBillboardErr, ÅÅÐаñ = %s ÎÞ·¨²éÕÒ(    R    R
R R—RRìtIsFullRBR>(RR?R[R\R”RIRÿR:((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyRoms 
 
 
c    Cs>|\}}}}}}t|||tj||||ƒdS(N(RïR4tDef_BT_TotalRecharge(tcmdListRR-R,RtplayerLVttotalChangeCoinPoint((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyt&MapServer_UpdateTotalRechargeBillboard‡scCsdS(N((RR¿R¨((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytViewBillboardRangeByObjIDscCstS(N(R‚(RFR((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytIsBillboardLVLimit¡scCstjg}|jƒ}|jƒ}tjƒ}xftjD][}||krRq:n|j|ƒ}|smq:n|j|ƒ}|sˆq:n|j    |ƒq:WdS(N(
R4R@RRR    R
R5R RìRs(R©tnotRedressBillboardListR9t curPlayerNameRIRRR:((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytRedressBillboard¥s     cCs”|jƒ}|jƒ}tjƒ}xitjD]^}|tjkrIq.n|j|ƒ}|sdq.n|j|ƒ}|sq.n|j    |ƒq.WdS(N(
RRR    R
R4R*R5R RìRv(R©R9tcurOfficialRankRIRRR:((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytUpdateBillboardRealmÄs   cCs”|jƒ}|jƒ}tjƒ}xitjD]^}|tjkrIq.n|j|ƒ}|sdq.n|j|ƒ}|sq.n|j    |ƒq.WdS(N(
RRR    R
R4R5tFamilyBillboardListR RìRx(R©R9tcurFaceRIRRR:((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytUpdateBillboardFaceÞs   cCs”|jƒ}|jƒ}tjƒ}xitjD]^}|tjkrIq.n|j|ƒ}|sdq.n|j|ƒ}|sq.n|j    |ƒq.WdS(N(
RRR    R
R4R5RPR RìRy(R©R9t
curFacePicRIRRR:((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pytUpdateBillboardFacePicös   (8R¤R    RCR4RóRÆRLRßR/RõRR$R-R&R7R'RîR7R:tobjectRR"R)R2R?RJRKR^R<R`R‚R¡R«R¯RµR³R¹R9RÃR¾RR RRR_R4RïRBRoRHRIRJRMRORRRT(((sZE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerBillboard.pyt<module>sh                3                         %         D     (                #            K    J         XG&