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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
:´¸ic@sÇddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    dfd„ƒYZ
e
ƒZ dfd„ƒYZ dfd„ƒYZ d„ZdS(    iÿÿÿÿNt BillboardDatacBsµeZd/d„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d „Z#d!„Z$d"„Z%d#„Z&d$„Z'd%„Z(d&„Z)d'„Z*d(„Z+d)„Z,d*„Z-d+„Z.d,„Z/d-„Z0d/d.„Z1RS(0cCs=|stjƒn||_tj|jddtƒ|_dS(NtUserDatatDataLen(tDBStructttagDBBillboardt_BillboardData__dbDatatDBCommt UserDataDicttTruet_BillboardData__dataDict(tselftdbData((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt__init__!scCs
|jjS(N(Rt BillboardType(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetType&scCs||j_dS(N(RR (R
tbType((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetType'scCs
|jjS(N(Rt GroupValue1(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetGroupValue1(scCs||j_dS(N(RR(R
t groupValue1((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetGroupValue1)scCs
|jjS(N(Rt GroupValue2(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetGroupValue2*scCs||j_dS(N(RR(R
t groupValue2((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetGroupValue2+scCs
|jjS(N(RtID(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetID,scCs||j_dS(N(RR(R
tdataID((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetID-scCs
|jjS(N(RtID2(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetID2.scCs||j_dS(N(RR(R
tid2((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetID2/scCs
|jjS(N(RtName1(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetName10scCs||j_dS(N(RR!(R
tname((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetName11scCs
|jjS(N(RtName2(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetName22scCs||j_dS(N(RR%(R
tname2((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetName23scCs
|jjS(N(RtType2(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetType24scCs||j_dS(N(RR)(R
ttype2((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetType25scCs
|jjS(N(RtValue1(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetValue16scCs||j_dS(N(RR-(R
tvalue1((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    SetValue17scCs
|jjS(N(RtValue2(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetValue28scCs||j_dS(N(RR1(R
tvalue2((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    SetValue29scCs
|jjS(N(RtValue3(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetValue3:scCs||j_dS(N(RR5(R
tvalue3((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    SetValue3;scCs
|jjS(N(RtValue4(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetValue4<scCs||j_dS(N(RR9(R
tvalue4((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    SetValue4=scCs
|jjS(N(RtValue5(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetValue5>scCs||j_dS(N(RR=(R
tvalue5((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    SetValue5?scCs
|jjS(N(RtValue6(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetValue6@scCs||j_dS(N(RRA(R
tvalue6((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    SetValue6AscCs
|jjS(N(RtValue7(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetValue7BscCs||j_dS(N(RRE(R
tvalue7((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    SetValue7CscCs
|jjS(N(RtValue8(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetValue8DscCs||j_dS(N(RRI(R
tvalue8((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    SetValue8EscCs
|jjS(N(RtCmpValue(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt GetCmpValueFscCs||j_dS(N(RRM(R
tcmpValue((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt SetCmpValueGscCs
|jjS(N(Rt    CmpValue2(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt GetCmpValue2HscCs||j_dS(N(RRQ(R
t    cmpValue2((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt SetCmpValue2IscCs
|jjS(N(Rt    CmpValue3(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt GetCmpValue3JscCs||j_dS(N(RRU(R
t    cmpValue3((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt SetCmpValue3KscCs
|jjS(N(RtTime(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetTimeLscCs||j_dS(N(RRY(R
tupdTime((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetTimeMscCs |jjƒS(N(R    tGetData(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt GetUserDictNscCs |jjƒS(N(R    tToString(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt GetUserDataOscCs|jj|ƒdS(N(R    tSetData(R
tvalue((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt SetUserDataPscCs |jjƒS(N(Rt    getBuffer(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    GetBufferQscCs |jjƒS(N(Rtclear(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytClearRscCs®tƒ}|j|dkr!|n    |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ƒƒ|j|jƒƒ|j|jƒƒ|j |j!ƒƒ|j"|j#ƒƒ|j$|j%ƒƒ|j&|j'ƒƒ|j(|j)ƒƒ|j*|j+ƒƒ|S(N(,RRtNoneRRRRRRRR RR$R"R(R&R,R*R0R.R4R2R8R6R<R:R@R>RDRBRHRFRLRJRcR`RPRNRTRRRXRVR\RZ(R
tsetTypetcopyData((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytCopySs.    %N(2t__name__t
__module__RhR RRRRRRRRRR R"R$R&R(R*R,R.R0R2R4R6R8R:R<R>R@RBRDRFRHRJRLRNRPRRRTRVRXRZR\R^R`RcReRgRk(((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyRs^                                                                                                                                                                                     t    BillboardcBs eZdddd„Zd„Zd„Zd„Zdd„Zd„Zd„Zd    „Z    d
„Z
d „Z d „Z d „Z did„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(icCs^||_||_||_g|_i|_i|_t|_d|_    t|_
g|_ dS(N( t_Billboard__billboardTypet_Billboard__groupValue1t_Billboard__groupValue2t_Billboard__billboardListt_Billboard__idIndexDictt_Billboard__idOrderDicttFalset_Billboard__sortDelayRht_Billboard__orderRuleListt_Billboard__orderRuleByLayert_Billboard__layerIDList(R
t billboardTypeRR((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyR qs                                        cCs|jS(N(Ro(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyRscCs|jS(N(Rp(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyR‚scCs|jS(N(Rq(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyRƒstcCsŒ|js dStjd|j|j|jt|jƒ|fƒ|sQtjƒrm|j|rc|ndƒng|_i|_    i|_
dS(NsYBillboard ClearData billboardType=%s,groupValue1=%s,groupValue2=%s,dataCount=%s,drName=%sRg( Rrt    GameWorldtLogRoRpRqtlent IsCrossServert
SaveDRDataRtRs(R
tdrName((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt    ClearData…s        )            cCs¨tjd|j|j|jt|jƒfƒ|jrW|jjdd„dt    ƒn|jjdd„dt    ƒi|_
i|_ t |_ |jr¤|jƒndS(NsE°ñµ¥ÅÅÐò: billboardType=%s,groupValue1=%s,groupValue2=%s,dataCount=%stkeycSs|jƒ |jƒ fS(N(RNRZ(tb((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt<lambda>•streversecSs)|jƒ|jƒ|jƒ|jƒ fS(N(RNRRRVRZ(R„((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyR…—s(R|tDebugLogRoRpRqR~RrRxtsortRRtRsRuRvt_Billboard__fixAndFillLayer(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSortData‘s    &                     cCs<tjd|j|j|jt|jƒfƒt|_dS(NsM°ñµ¥ÉèÖÃÑÓ³ÙÅÅÐò: billboardType=%s,groupValue1=%s,groupValue2=%s,dataCount=%s(    R|R‡RoRpRqR~RrRRv(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt SetSortDelayŸs    &    cCs|js dS|jƒtS(N(RvRŠR(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt SortDelayDo¦s    
cCsmd}|jƒr|Stƒ}|j|jƒ|j|jƒ|j|jƒ|j    |ƒ|j
|ƒ|S(N( RhtIsFullRRRoRRpRRqRtAddBillboardData(R
RtnewData((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytAddNewBillboardData­s       cCsM|jƒrtS|jj|ƒt|jƒd|j|jƒ<t|_tS(Ni(    RRuRrtappendR~RsRRRv(R
t billboardData((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyR޹s       cCssd}|jƒ||jkr#|S|j|}|t|jƒkrI|S|j|}| rotrotƒ}n|S(sc ¸ù¾ÝID²éѯ°ñµ¥Êý¾Ý
        @param findID: ²éÕÒµÄID
        @return: None or BillboardData
        N(RhtGetIDOrderDictRsR~RrRuR(R
tfindIDtbillDatatidIndex((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytFindByIDÅs
    cCs.|jƒ||jkrdS|j|}|S(s[ ¸ù¾ÝID²éѯËùÔÚ°ñµ¥Ë÷Òý
        @param findID: ²éÕÒµÄID
        @return: -1 or >=0
        iÿÿÿÿ(R“Rs(R
R”R–((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt IndexOfByIDÖs
 
 c Cs|jƒt|jƒ}|s#dS|jƒ}tjƒ}d|j|j|jt    |j
ƒd f}d|j |j |j ||f}i|j d6|d6|d6|j d6|j d6}tj||ƒxGt|jƒD]6\}    }
|j|
jƒ|    d    ƒ} i|
jƒd
6| d 6|    d 6|
jƒd 6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
jƒd6|
j ƒd6|
j!ƒd6|
j"ƒd6|
j#ƒd6}tj||ƒqÛWdS(Ns%02d%02d%02d%sisBillboard_%s_%s_%s_%s_%sR t    DataCountt addDataDictRRiR)tRanktIndexRRR!R%R-R1R5R9R=RARERIRMRQRURYR($RŒR~RrR“R|t GetServerTimethourtminutetsecondtstrt microsecondRoRpRqtDataRecordPackt SendEventPackt    enumeratetgetRR*RR"R&R.R2R6R:R>RBRFRJRNRRRVRZR`( R
t    eventNameRšt    dataCountt idOrderDictt
serverTimettimeStrt eventTypeStrtdataDicttindextbDatatrank((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyRۇs0
  ,"*cCs|jS(N(Rr(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetBillboardDataListsc Cs®|j s|j r§i|_i|_|jr2|jƒ}d}d}x«|jD] \}}||}|}xt||ƒD]p}|dkr“Pn|j|ƒ}|jƒ|kr¸Pn||d}    |    |j|jƒ<|d8}|d7}q}WqQWx¬t|j    dƒD]#\}
}|
d|j|jƒ<qWq§|j
rW|j ƒs¤|j ƒq¤q§xMt|j    dƒD]6\}
}|
|j|jƒ<|
d|j|jƒ<qjWn|jS(Nii( RtRsRwtGetCounttxrangetAtRNRR¥RrRxRŒR‰( R
tbillboardDataCounttrankPretbillboardIndexR°t needCmpValuetorderCountTotalR®R’t    orderRealtorder((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyR“s:             
 
     cCs|jS(N(Rx(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytIsOrderRuleByLayer%scCs t|_||_|jƒdS(s¿ÉèÖÃÅÅÃû¹æÔòΪ²ã¼¶Ä£Ê½£¬¼´Ò»¸öÃû´ÎÒ»¸ö¿Óλ²ã¼¶£¬¸Ãģʽ֧³Ö»úÆ÷ÈËÌî³äÊý¾Ý
        ¸ÃģʽÏ CmpValue ¹Ì¶¨Îª  MaxCount - Ãû´Î + 1
        @param layerRobotIDList: Ìî³äµÄ»úÆ÷ÈËIDÅÅÃûÁбí
        N(RRxRyRŠ(R
tlayerRobotIDList((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetOrderRuleByLayer&s        
cCs ||_dS(N(Ry(R
t layerIDList((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetLayerIDList/scCs|jS(N(Ry(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetLayerIDList0sc    Csm|jƒ}t|jƒ}||krE|jjdg||ƒni}xÅt|jƒD]´\}}|jƒ}|jƒ}||krPn|dkr¡q[nxkd|ko»|knr||krô|||<||j|<||j    |<Pn|d7}|j
|ƒq¤Wq[WxSt|jƒD]B\}}|d}|}||krX||}n||j|<q#WdS(Nii( t GetMaxCountR~RytextendR¥RrRRNRtRsRP(    R
tmaxCountt
layerIDCntt orderIDDictR®R’RR»tlayerID((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt__fixAndFillLayer1s6       
 
 
  cCsE||_i|_i|_tjd|j|j|j|fƒdS(NsJÉèÖÃÅÅÃûËùÐèÖµ¹æÔòÁбí: billboardType=%s,groupValue1=%s,groupValue2=%s, %s(RwRtRsR|R}RoRpRq(R
t orderRuleList((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytSetOrderRuleListWs                 cCs t|jƒS(N(R~Rr(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyR²ascCs(tjddiƒ}|j|jdƒS(Nt BillboardSetiid(t IpyGameDataPYtGetFuncEvalCfgR¦Ro(R
t maxCountDict((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyRÂbscCs*|j|}| r&tr&tƒ}n|S(N(RrRuR(R
R®R•((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyR´fs   cCst|jƒ|jƒkS(N(R~RrRÂ(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyRlscCs?|t|jƒkrdS|jj|ƒi|_i|_dS(N(R~RrtpopRtRs(R
R®((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt DeleteByIndexns         cCs/|j|ƒ}|dkr+|j|ƒndS(Ni(R˜RÐ(R
RR®((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt
DeleteByIDvs (RlRmR RRRR‚RŠR‹RŒRRŽR—R˜R€R±R“R¼R¾RÀRÁR‰RÊR²RÂR´RRÐRÑ(((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyRnns6                                                     #                        &    
                    t BillboardMgrcBsbeZd„Zd„Zddd„Zd„Zd    d    d„Zd    d    d„Zd„Z    d„Z
RS(
cCs i|_dS(N(t_BillboardMgr__billboardDict(R
((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyR s    cCsRg}xE|jjƒD]4\}}}||kr|j|||fƒqqW|S(N(RÓtkeysR‘(R
Rt    groupListRzRR((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytGetBillboardGroupListƒs
 icCsQ|||f}||jkr.|j|}nt|||ƒ}||j|<|S(s¿ »ñÈ¡ÅÅÐаñ
        @param billboardType: ÅÅÐаñÀàÐÍ
        @param groupValue1: ·Ö×éÖµ1
        @param groupValue2: ·Ö×éÖµ2£¬Óë·Ö×éÖµ1×éºÏ¹éΪͬ×é°ñµ¥Êý¾Ý
        @return: Billboard
        (RÓRn(R
RzRRRƒt billboardObj((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt GetBillboardŒs  cCsAx:|jjƒD])}|d|kr|jj|ƒqqWdS(Ni(RÓRÔRÏ(R
RzRƒ((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytRemoveBillboard›sc    CsÊg}xŠ|jjƒD]y\}}}||kr7qn|dkrU||krUqn|dkrs||krsqn|||f}|j|ƒqWx0|D](\}}}|j|||ƒjƒqšWdS(s!Çå³ýij¸öÀàÐ͵İñµ¥ËùÓÐÊý¾Ý£¬¿ÉÖ¸¶¨¹ýÂËgroupValue£¬ÓÐÁ÷Ïò¼Ç¼
        @param groupValue1: ²»ÎªNoneʱÑéÖ¤ groupValue1 ÊÇ·ñÏàͬ
        @param groupValue2: ²»ÎªNoneʱÑéÖ¤ groupValue2 ÊÇ·ñÏàͬ
        Èç¹ûgroupValue1 groupValue2 ¶¼´«ÈëNone£¬Ï൱ÓÚÇå¿Õ billboardType ÀàÐ͵ÄËùÓаñµ¥Êý¾Ý
        N(RÓRÔRhR‘RØR‚(    R
RzRRt    clearListRtgValue1tgValue2Rƒ((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytClearBillboard¢s c Cs|dkr+|j|ƒ|j|ƒ}n'|dkr=|nd}|||g}xª|D]¢\}}}|j|||ƒ}|j|||ƒ}tjd||||fƒ|jƒx?t|jƒƒD]+}    |j    |    ƒ}
|j
|
j |ƒƒqÌWqYWdS(s^½«Ä³¸öÀàÐ͵İñµ¥ÍêÈ«¿½±´µ½ÆäËû°ñµ¥ - Ò»°ãÓÃÓÚ±¸·Ý¡¢×ªÒÆÊý¾Ý
        @param fromBillboardType: Ô´°ñµ¥ÀàÐÍ
        @param toBillboardType: Ä¿±ê°ñµ¥ÀàÐÍ
        @param groupValue1: Ä¬ÈÏΪNone-¿½±´¸ÃÀàÐÍËùÓаñµ¥£¬´óÓÚµÈÓÚ0ʱ-½ö¿½±´¸ÃÀàÐÍϵÄÖ¸¶¨°ñµ¥
        @param groupValue2: Ä¬ÈÏΪNone-¿½±´¸ÃÀàÐÍËùÓаñµ¥£¬´óÓÚµÈÓÚ0ʱ-½ö¿½±´¸ÃÀàÐÍϵÄÖ¸¶¨°ñµ¥
        isPCopyBillboard: billboardType=%s,toBillboardType=%s,groupValue1=%s,groupValue2=%sN( RhRÙRÖRØR|R}R‚trangeR²R´RŽRk( R
tfromBillboardTypettoBillboardTypeRRRÕRztfrbillboardObjttoBillboardObjR®tfrbillboardData((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt CopyBillboard·s      
c
CsÁd}d}d}x{|jjƒD]j\}}}|j|||ƒ}xCt|jƒƒD]/}|j|ƒ}    |d7}||    jƒ7}qYWq"Wtjd|t    |ƒfƒt
j ||ƒ|S(NR{iis!Save DBBillboard count :%s len=%s( RÓRÔRØR³R²R´ReR|R}R~tCommFunct
WriteDWORD(
R
tsavaDatatcntDatatcntRzRRR×tiR’((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt GetSaveDataÓs
c Cs
||krdStj||ƒ\}}tjd|ƒxˆt|ƒD]z}tjƒ}|jƒ||j|||ƒ7}|j    |j
|j }}}    |j |||    ƒ}
|
j t|ƒƒqFWx?|jjƒD].\}}}    |j |||    ƒ}
|
jƒqÔW|S(NsLoad DBBillboard count :%s(Råt    ReadDWORDR|R}R³RRRftreadDataR RRRØRŽRRÓRÔRŠ( R
tdatastpostdataslenRét_R RzRRR×((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytLoadPyGameDataâs  
N( RlRmR RÖRØRÙRhRÝRäRëRò(((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyRÒ|s                    cCsltjƒ}xYtjD]N}|j|ƒ}x6|D].\}}}|j|||ƒ}|jƒq2WqWdS(N(t    DBDataMgrtGetBillboardMgrt ShareDefinetBillboardTypeAllListRÖRØRŒ(t billboardMgrRzRÕRRR×((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pytOnMinuteús (RR|RõR£RÌRóRåRtjsonttimeRt TempBillDataRnRÒRø(((sqD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBBillboard.pyt<module>s          N    ÿ~