hwj35
2025-06-16 12bfd1cd414e0fa14310a800df8288a844d6489f
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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
xð`c    @s±ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZedƒZ\ZZZedƒZ\ZZZZZ Z!Z"dZ#dZ$dZ%d„Z&d„Z'd    „Z(d
„Z)d „Z*d „Z+d „Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5dd„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d „Z@d!„ZAd"„ZBd#„ZCd$„ZDd%„ZEd&„ZFeGd'„ZHeIdd(„ZJd)„ZKd*„ZLd+„ZMd,„ZNd-„ZOd.„ZPeId/„ZQd0„ZRd1„ZSd2„ZTd3„ZUd4„ZVd5„ZWd6„ZXdgdgd7dd8eId9„ZYd:„ZZd;„Z[d<„Z\gd=„Z]dd>„Z^ddd?„Z_dd@„Z`eIdA„ZadB„ZbdC„ZcdD„ZddS(EiÿÿÿÿNiiiii'cCs
tjƒS(N(t PlayerBourset GetOpenState(((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytGetAuctionHouseStateLscCs8t|ƒt||jƒƒt|ƒt|tƒdS(N(tSync_PlayerAuctionItemInfotSync_FamilyAuctionItemInfot GetFamilyIDtSync_PlayerBiddingItemInfot!Sync_PlayerAttentionAuctionItemIDtFalse(t    curPlayer((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyt OnPlayerLoginNs
 
 
 cCs/|jƒ}tjƒ}|jj|dƒdS(N(t GetPlayerIDt PyDataManagertGetAuctionItemManagertmyAttentionItemDicttpoptNone(R    tplayerIDtauctionItemMgr((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnPlayerLeaveServerUs  cCstjƒjj|gƒS(N(R tGetAuctionRecordManagertmyAuctionItemRecordDicttget(R((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytGetMyAuctionItemRecord\scCstjƒjj|gƒS(N(R RtmyBidItemRecordDictR(R((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytGetMyBiddingItemRecord`scCstjƒjj|gƒS(N(R RtfamilyAuctionItemRecordDictR(tfamilyID((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytGetFamilyAuctionItemRecorddsc
Cs‹|s
dS|j|j|j}}}d\}}|ttgkrTt}|}n!|rit}|}n t}|}| r‡| r‡dStj    ƒ}|j
|_
||_||_||_ ||_ t jƒ|_|j|_|j|_|j|_|j|_|j|_|j|_t|ƒ|r@td|||ƒnG|r‡t jƒj|ƒ}    |    r‡tj|    ƒ r‡t|    ||ƒq‡ndS(sŒ Ìí¼ÓÅÄÂôÐмǼ
    @param auctionItem: Ïà¹ØµÄÅÄÆ·ÊµÀý
    @param recordResult: ¼Ç¼½á¹û 0-Á÷ÅÄ 1-ÅÄÂô³É½» 2-»ØÊÕ 3-¾º¼Û³É¹¦ 4-¾º¼Ûʧ°Ü
    Ni(ii(tPlayerIDtFamilyIDtBidderIDtAuctionRecordResult_BidOKtAuctionRecordResult_BidFailtAuctionRecordType_MyBidtAuctionRecordType_FamilyAuctiontAuctionRecordType_MyAuctiontPyGameDataStructttagDBAuctionRecordtItemGUIDt
RecordTypet RecordResultt    GameWorldtGetCurrentDataTimeStrt
RecordTimet BidderPricet
BidderNametItemIDtCounttUserDatat UserDataLentAddNewAuctionRecordtSync_PlayerAuctionRecordInfoRtGetPlayerManagertFindPlayerByIDt PlayerControltGetIsTJG(
t auctionItemt recordResultRRtbidderIDtrecordPlayerIDtrecordFamilyIDt
recordTypet newRecordDatat recordPlayer((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytAddAuctionRecordhsF                                 
cCsï|j}|j}|j}|tkr?|}tjƒj}nL|tkrc|}tjƒj}n(|t    kr‡|}tjƒj
}ndS|j |gƒ}t dt jddƒƒ}t|ƒ|krÔ|d=n|j|ƒ|||<dS(Ni2t AuctionHouseii(RRR(R$R RRR#RR"RRtmint IpyGameDataPYt
GetFuncCfgtlentappend(R?RRR>tkeyIDt
recordDictt
recordListtmaxCount((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyR3˜s(               
 
cCs-||jkrgS|j|}|j}|S(N(tplayerAttentionDicttAttentionItemIDList(t attentionMgrRt attentionObjtattentionItemIDList((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytGetPlayerAuctionAttention°s
     cCsÈ||jkr>tjƒ}||_t|ƒ||j|<n|j|}|j}t|ƒtjddƒkr†t    j
d|ƒdS||kr–t S|j |ƒt |ƒ|_t|jƒ|_t S(NRBis¹Ø×¢ÅÄÆ·Êý´ïµ½ÉÏÏÞ!(RLR%ttagDBAuctionAttentionRt__InitAuctionAttentionAttrExRMRFRDRER*tDebugLogtTrueRGtstrt AttentionInfot AttentionLen(RNRtitemIDtdbDataRORP((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytAddPlayerAuctionAttention¸s      
       cCsk||jkrdS|j|}|j}||kr9dS|j|ƒt|ƒ|_t|jƒ|_tS(N(RLRMtremoveRVRWRFRXRU(RNRRYRORP((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytDelPlayerAuctionAttentionËs       cCst|ƒdS(N(RS(t attentionData((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnLoadAuctionAttentionDataExØs
cCsPt|dgƒ|jjdƒrL|jjdƒrLtj|jƒ|_ndS(NRMs[s](tsetattrRWt
startswithtendswithtjsontloadsRM(R^((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRSÝs$cCs5tjƒj}x|D]}t|ƒqWtƒdS(N(R R tallAuctionItemByEndTimeListt__SetAuctionItemSysBuyTimet__SortAuctionitem(ReR9((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnGameServerInitOKås
 c    Csit|ƒ|j}|j}|j}tjƒ}|jj|ƒ|jt    krp|j
j|ƒt |dƒn|r¨|j j |gƒ}|j|ƒ||j |<n|re|jj |gƒ}|j|ƒ||j|<t|ƒ|jkre||kr0|jj |gƒ}|j|ƒ||j|<qb|jj |gƒ}|j|ƒ||j|<qendS(Ni(t__InitAuctionItemAttrExRRRR R ReRGt AuctionTypetAuctionType_WorldtworldAuctionItemListt__OnCalcWorldAuctionItemCounttfamilyAuctionItemDictRtmyAuctionItemDictRVt BidderIDInfotnowBiddingAuctionItemDictthisBiddingAuctionItemDict(    RZRRR;tpyAuctionItemMgrtfamilyItemListt
myItemListtnowBidItemListthisBidItemList((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnLoadAuctionItemDataExðs4
                   cCs tƒdS(N(Rg(((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnLoadAuctionItemDataOKscCsŸ|stjd|jƒ}nt|dd|s6dn    |jƒƒt|ddƒt|ddƒt|ddƒt|ddƒt|ƒt||ƒtS(    Nt AuctionItemt SortpriorityiŸ†itBiddingQueryIDtBiddingQueryTicktEndTimet
SysBuyTime(RDtGetIpyGameDataR/R`tGetSortpriorityRft__SetAuctionItemEndTimeRU(R9tipyData((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRis&
 cCsÔtjƒjtjƒsdS|j}|j}|j}|j}| rR| rRdS|r\dS|ddkrpdS|j    r}dS|j
}t j ddƒ}||krÇ||}tj |dƒsÇdSnt j ddƒ}||krédSi}    tjtjƒd}
t j ddiƒ} | jƒ} | jƒx(| D] } |
| kr7| | }    Pq7q7Wt|    ƒdkrqdStj|    d|    dƒ}|j}tj|ƒ}||d|_tjƒ}|jj|ƒdS(    Ni
itAuctionItemSystemiidiii<(R*t GetGameWorldt GetDictByKeytChConfigtDef_WorldKey_GameWorldInitOKR/tItemTypeRRRt ItemClassLVRDtGetFuncEvalCfgt    CanHappentPlayerDBGSEventtGetDBGSTrig_ByKeyt Def_ServerDaytkeystsortRFtrandomtrandinttAddTimetChangeTimeStrToNumRR R tsysBuyoutItemByTimeListRG(R9RYtitemTypeRRtclassLVtclassSysBuyRateDictt
sysBuyRatetcanSysBuyItemTypeListtsysBuyTimeRanget openServerDaytoscDaySysBuyTimeRangeDicttopenServerDayListtoscDayt randMinutest
addTimeStrtaddTimeRs((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRf'sR                         
 
 
     cCs~|s
dS|j}|j}tj|ƒ}|jƒ}|tkrO|jƒn    |jƒ}|||d|_t    |ƒdS(Ni<(
R”RjR*R•tGetNoticeSaleMinutestAuctionType_FamilytGetFamilySaleMinutestGetWorldSaleMinutesR~t__AddAuctionItemEndTimeByBid(R9RƒR¢t auctionTypeR£t noticeMinutest saleMinutes((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyR‚es         $
cCso|js dStj|jƒ}|tjddƒ}||jkrHdStjd|j|fƒ||_tS(NRBis"ÅÄÆ·¼Óʱ: EndTime=%s,updEndTime=%s(    R-R*R•t BiddingTimeRDRER~RTRU(R9tbidTimetendTime((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyR¨ss        cCs®i|jd6|jd6|jd6|jd6|jd6|jd6|jd6|jd6|jd    6|j    d
6|j
d 6|j s€d nt j |j ƒd 6|jd6|jd6}|S(NtGUIDRRR/R0RjR”R¬RR-R1tR~tFamilyPlayerIDInfoRp(R'RRR/R0RjR”R¬RR-R1R~R*tChangeTimeNumToStrR±Rp(R9tdrDict((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyt__GetAuctionItemDRDicts!"cCstjƒjj|ƒS(N(R R tallAuctionItemDictR(titemGUID((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytGetAuctionItemˆscCstjƒjj|gƒS(N(R R RoR(R((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytGetPlayerAuctionItemListŒscCstjƒjj|gƒS(N(R R RnR(R((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytGetFamilyAuctionItemListscCs4t|ƒ}x!|D]}|j|krtSqWtS(N(R¹RRUR(RtmemberIDtfamilyAuctionItemListR9((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyt IsFamilyMemberBiddingAuctionItem”s
  c Cs
|jtkrdStjƒ}|j}t|ƒ}|j}|j}|rÑ|rÑt|ƒdkrÑt    |dd!ƒ}t    |dƒ}||||f}    |j
j |    dƒ}
t |
|dƒ} | |j
|    <n5|j j |dƒ}
t |
|dƒ} | |j |<dS(Niiiiÿÿÿÿi(RjRkR R R/RVRŠt ItemJobLimitRFtinttworldAuctionJobEquipCountDictRtmaxtworldAuctionItemCountDict( R9t changeCountRRYt    itemIDStrR˜tjobLimittcolortisSuitt jobEquipKeytbefCounttupdCount((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRmœs$               c  Cs¿d}tjtjƒd}tj|ƒ}|}|r`|d|kr`tjd|ƒ|dStjƒ}d|j|j    |j
f}d|j|j    |j
|j |j f}t j j|tjƒ}tjd||fƒg}tjƒ}    x|t|    jƒƒD]h}
|    j|
ƒ} | jƒ} | jƒ} | jƒ}| jƒ}| jƒ}| jƒ}| jƒ}| jƒ}tjd| | ||||||fƒ| s±|} nQ| jƒrt| ƒ}|t j d    ||ƒ}d|j|j    |j
f} n|s|}nQ|jƒrbt|ƒ}|t j d    ||ƒ}d|j|j    |j
f}nt j jd
| tjƒ}t j jd |tjƒ}||ks²||krÅtjd ƒqn|sÔd }n|sãd}nt j jd||ftjƒ}t j jd||ftjƒ}||krFtjdƒqn||kr[|}ng}|}x¯t|ƒD]¡}t!|ƒdkr©t"j#|d|dƒ}n"t!|ƒdkrt|d}nqt|t j d|ƒ7}||krñPntjd||fƒ|j$|ƒqtW|r3tjd|ƒn|rtjd|ƒnq|j$| | |||gƒqWtj%|||gƒ}tjd|ƒtjd|ƒtjdƒ|dS(NtAuctionSystemItemiis0ÒѾ­¼ÓÔØ¹ý±¾ÈÕϵͳÅÄÆ·´¦ÀíÐÅÏ¢£¡openServerDay=%ss%d-%d-%ds%d-%d-%d %02d:%02d:00s5===== ¼ÓÔØ±¾ÈÕϵͳÅÄÆ·ÐÅÏ¢: %s,openServerDay=%s =====s€cfgID=%s,startDateStr=%s,endDateStr=%s,startTimeStr=%s,endTimeStr=%s,auctionCount=%s,randMinuteRange=%s,replenishAuctionCount=%stdayss %s 00:00:00s %s 23:59:00s    ²»ÔÚÉϼÜÈÕÆÚÄÚ£¬²»´¦Àí!s00:00s23:59s%s %s:00s#    Òѳ¬¹ý½ñÈÕµÄÉϼÜʱ¼ä¶Î£¬²»´¦Àí!itminutess.    Ìí¼ÓÉϼÜϵͳÅÄÆ·Ê±¼ä: nextAddMinutes=%s %ss     Ìí¼Ó¶¯Ì¬²¹³äϵͳÅÄÆ·¼Æ»®: %ss     Ìí¼ÓÉϼÜϵͳÅÄÆ·Ê±¼ä¼Æ»®: %ss&±¾ÈÕϵͳÅÄÆ·ÐÅÏ¢¼ÓÔØÍê±Ï!reloadSign=%ss±¾ÈÕϵͳÅÄÆ·ÉϼÜʱ¼äÐÅÏ¢: %ss==============================================================(&RRŽRRDt GetConfigExR*RTt GetServerTimetyeartmonthtdaythourtminutetdatetimetstrptimeR‡tTYPE_Time_FormattLogtIPY_DatatxrangetGetAuctionSystemItemCounttGetAuctionSystemItemByIndextGetCfgIDt GetStartDatet
GetEndDatet GetStartTimet
GetEndTimetGetAuctionCounttGetRandMinuteRangetGetReplenishAuctionCounttisdigitR¾t    timedeltaRFR’R“RGt SetConfigEx( tkeyRRÊt
reloadSignt
serverTimet
curDateStrtcurDateTimeStrt curDateTimetaddSystemAuctionItemInfot
ipyDataMgrtindexRƒtcfgIDt startDateStrt
endDateStrt startTimeStrt
endTimeStrt auctionCounttrandMinuteRangetreplenishAuctionCounttstartServerDaytopenServerDateTimet endServerDaytendServerDateTimet    startDatetendDatet startDatetimet endDatetimetaddAuctionItemDatetimeListtnextAddAuctionItemDatetimet_tnextAddMinutes((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyt__GetAuctionSystemItemInfo¼sœ (                                   ""           c0 Csûtjƒ}tjjd|j|j|j|j|jft    j
ƒ}d}t j dƒ}|sji}nt tjƒƒ}|}t jddƒ}tjƒ}tjtjƒ}tƒ}    x|    D]‡\}
} } } }|
|kréqÂn| jƒ}|r:t|ƒdkr:|\}}||ksÂ||kr:qÂq:n|| ksÂ|| krXqÂn| jƒ}t|ƒdkr|qÂng}| jƒ}|r>| jƒd}|jj|
dƒ}|||krÏqÂn||j|
<| jƒ}|r`|jj|dƒ}||krqÂn||}tj d    |
||fƒxòt!|ƒD]}|j"|ƒqFWnÎ| j#ƒ}| j$ƒ\}}}d}x¤|D]œ} | |||f}!|j%j|!dƒ}"|"|krÍqŽn||"}#tj d
|
|#| fƒx6t!|#ƒD](}|j"|||||| ggƒqþWqŽWt&j'|ƒn³||krñ| j(ƒ}$| j)ƒ}%tj*|$ƒ}&tj d |
|&fƒx?t!|&ƒD]1}tj*|%ƒ}'|'dkr•|j"|'ƒq•q•W| j,ƒ}(|(rñt&j-|(ƒ}qñng})xE|D]=}'t&j.|d|dƒ}*||*}|)j"||'gƒqþW|)||
<qÂWt j/d|ƒ|r÷g}+g},tj0ƒ}-xct!|-j1ƒƒD]O}.|-j2|.ƒ}/|/dkrµqŽnt3j4|/ƒrÊqŽn|+j"|/j5ƒƒqŽWt6j7||+|,ƒndS( Ns%d-%d-%d %d:%d:00R°tSysWaitAuctionItemListDicttOpenJobiii<isC    ¶¯Ì¬²¹³äÅÄÆ·¶ÓÁÐ: cfgID=%s,replenishItemID=%s,addItemIDCount=%ss6    ¶¯Ì¬²¹³äÅÄÆ·¶ÓÁÐ: cfgID=%s,addEquipCount=%s,job=%ss*    Ö¸¶¨²¹³äÅÄÆ·¶ÓÁÐ: cfgID=%s,addCount=%s(8R*RÎRÔRÕRÏRÐRÑRÒRÓR‡RÖRDRÍR¾ttimeR‹R R RRŽt ShareDefinet"Def_Notify_WorldKey_WorldAverageLvRtGetWorldLVRangeRFtGetAddRandSecondRangeRãtGetReplenishCDMinutestworldAuctionReplenishTimeDictRtGetReplenishItemIDRÁRTRÙRGtGetReplenishEquipPlacestGetReplenishEquipInfoR¿R’tshuffletGetItemCountWeightListtGetAuctionItemWeightListtGetResultByWeightListRtGetRandMailKeyListtchoiceR“RæR5tGetActivePlayerCounttGetActivePlayerAtR7R8R tPlayerCompensationt SendMailByKey(0ttickRìt randMailKeytsysAuctionItemListDicttcurTimet addItemTimet openJobListRt
curWorldLVRíRðRƒRþRÿRt worldLVRanget
worldLVMint
worldLVMaxtrandSecondRangetaddItemInfoListR÷treplenishCDSecondstlastReplenishTimetreplenishItemIDtcurItemIDCounttaddItemIDCountRtreplenishEquipPlacest    rpClassLVtrpColortrpIsSuittrpStartjobRÇtcurJobEquipCountt addEquipCounttaddCountWeightListtauctionItemWeightListtaddCounttitemInfotrandMailKeyListtsysWaitAuctionItemListt randSecondst playerIDListt addItemListt playerManagertitplayer((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnAuctionItemMinuteProcesss°                      
 
*      
  cCsètjdƒ}|sdSttjƒƒ}x¶|jƒD]¨\}}t|ƒ}xw|dkrÉ|rÉ|d8}|d\}}||krPn|jdƒtjd||||fƒt    |gƒqSW|s8|j|ƒq8q8WdS(NRiisbϵͳµÈ´ýÉϼܵÄÅÄÆ·Ê±¼äÒѵ½£¬¿ÉÉϼÜ! curTime=%s >= addItemTime=%s,itemInfo=%s,sysAuctionItemList=%s(
RDRÍR¾RtitemsRFRR*RTtDoAddSystemAuctionItem(RRRRðtsysAuctionItemListtdoCountRR7((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyt__DoSysWaitAddAuctionItem‘s" 
  cCst|ƒt|ƒtjƒj}|s-dSd}g}g}t|ƒ}xµ|dkr|r|d8}||}||jkr‡Pn|jr³||jtkr³|d7}qNn|j    |ƒ|j
rò|j rò|j t krò|j|ƒqN|j|ƒqNWt|dƒt|ƒdS(NiitByTime(t__DoSysBuyoutItemByTimeRER R ReRFR~R}tBiddingQueryLockTickRR-RRjR¥RGt__EndAuctionItemt__MoveFamilyAuctionItemToWorld(RRReRït endItemListtmoveToWorldItemListRDR9((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnAuctionItemTimeProcess¨s0
 
 
 
 
 " 
c Csôtjƒj}|sdSg}d}d}d}g}t|ƒ}x€|dkrÅ|rÅ|d8}|d}||jkrPn|jdƒ|jsF|jr¤qFn|j}    |    s¹qFn|j    }
t
j d|
ƒ} | sàqFn| j ƒ} | søqFn| |j 9} | |_|j|ƒt
jddƒ} | sM|
dd}|g}n| }d}g}t
jddƒ}xl|D]d}ttjj|iƒƒ}td|ƒ}||7}|j||gƒtjd    ||fƒqxWt
jdd
ƒ}|rh|d krh|rhd |}xQ|D]F}|d}t|d |ƒ}tt||ƒ|ƒ}||d<qWntjd |ƒtj|ƒ}|dkr|gn|}|j|    |||||gƒqFW|sÐdSt|dƒ|rðt|ƒndS(NiiiRzR„ièi
RsÖ°ÒµÈËÊý: job=%s,count=%siidgY@s&Ëæ»úÉϼÜÖ°Òµ×°±¸±ÈÖØ: jobWeightList=%st    SysBuyout(R R R–RFRRR-RRŠR/RDR€tGetBuyoutPriceR0RGR‹t
PyGameDatat!g_onedayJobPlayerLoginoffTimeDictRRÀR*RTRER¾RCRRRIRB(RR–RCRÅRÆtstarRKRDR9R˜RYRƒt buyoutPricet randPlaceListtcurPlacet    placeListttotalPlayerCountt jobWeightListR R1tjobPlayerCountt    maxJobPert    minJobPert jobWeightInfotjobPert itemJobList((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRGËs| 
 
                  
 
 
#  cCs×|s
dStjƒ}tjƒ}tjƒ}g}x|D]y}|j}|j}|j}|j}    |j    }
t
j d|ƒ} t |_ ||_t|| ƒ|jj|ƒ|jj|ƒt|dƒ|j|||    gƒt|tƒxT|jjƒD]C\} } |t|| ƒkr&qÿn|| krÿ| j|ƒqÿqÿW| jƒrttjdd|| jƒgƒnit|ƒd6}tdd|ƒtj d|||
|fƒq;Wt!ƒt"|ƒt#|ƒdS(NRziitPaimai4tAuctionItemInfot FamilyToWorldsBÏÉÃËÅÄÆ·×ªÒƵ½È«·þ: itemID=%s,itemCount=%s,familyID=%s,itemGUID=%s($R*R+R tGetAuctionAttentionManagerR R'R/R0RRRDR€RkRjR”R‚ReRGRlRmRAtAuctionRecordResult_MoveToWorldRRARQtGetNeedWorldNotifyR7t WorldNotifyR¤R´tDR_AuctionHouseRRTRgt__SyncRefreshAuctionItemt__NotifyAuctionPlayerAddItem(tauctionItemListt
curTimeStrRNRtnotifyWorldAddItemListR9R¶RYt    itemCountRRRƒtattentionPlayerIDt attentionListR³((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRJsH                                     "    
 
cCsytjƒ}|jjdtjdƒƒ|ru|jjdtjddƒƒi|_|jjdtjdƒƒndS(s± Ë¢ÐÂÈ«²¿ÅÄÆ·ÅÅÐò
        ºó¶ËÅÅÐò
        1.È«·þÅÄÆ·£º ÒòΪȫ·þÅÄÆ·ÊýÁ¿±È½Ï´ó£¬²ÉÓÃÖ»²éѯָ¶¨¸öÊýÅÄÆ·£¬ËùÒÔÖ»ÄÜÓɺó¶ËÅÅÐòºóͬ²½
        2.È«²¿ÅÄÆ·¾º¼Û½áÊøÊ±¼ä£ººó¶ËÐèÒª´¦Àí¾º¼Û½áÊø
        
        Ç°¶ËÅÅÐò£º
        1.¸öÈËÅÄÆ·£º¸öÊý½ÏÉÙ£¬È«²¿Í¬²½£¬ÓÉǰ¶Ë×Ô¼ºÅÅÐò
        2.ÏÉÃËÅÄÆ·£º¸öÊý½ÏÉÙ£¬È«²¿Í¬²½£¬ÓÉǰ¶Ë×Ô¼ºÅÅÐò
        3.¾º¼ÛÅÄÆ·£º¸öÊý½ÏÉÙ£¬È«²¿Í¬²½£¬ÓÉǰ¶Ë×Ô¼ºÕûºÏÅÅÐò£¬Çø·Ö×î¸ß¾º¼Û¡¢ÀúÊ·¾º¼Û
        4.¹Ø×¢ÅÄÆ·£º¸öÊý½ÏÉÙ£¬È«²¿Í¬²½£¬ÓÉǰ¶Ë×Ô¼ºÅÅÐò
        
        ´¥·¢ÅÅÐòʱ»ú£º
        1-ÉϼÜÐÂÈ«·þÅÄÆ·
        2-ÏÉÃËÅÄÆ·×ªÒÆÈ«·þÅÄÆ·£¬Ï൱ÓÚÉϼÜÐÂÈ«·þÅÄÆ·
        3-¾º¼ÛÅÄÆ·´¥·¢¼Óʱʱ£¬ÐèÒª¶Ô½áÊøÊ±¼äÖØÅÅ£¬¾º¼Û¼ÓʱµÄÖ»´¥·¢¼Óʱ£¬¶ÔÈ«·þÅÄÆ·µÄÅÅÐòûÓÐÓ°Ï죬¹Ê¿É²»ÖØÅÄÈ«·þÅÄÆ·
    RçR~R{R”RN(    R R ReR‘toperatort
attrgetterRltworldAuctionItemQueryDictR–(tisSortWorldItemR((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRgPs     c+Cs–|s
dStjƒ}g}xÇ|D]¿}|s5q#n|j}|j}|j}    |j}
|j} |j} |j} d}| rŸd}| rrd}| g}i|d6}i|d6|    d6t    d6|j
d    6g}|rÙn‰|rC|j ƒ| krC||||g}t |||    |j
|gƒ}|j ddd
|t|ƒƒntj|| g||d |ƒt|tƒn| rÈ|jrÈtj|jƒ}|r«tjd d ƒ}tjd dƒ}tdt| |dƒƒ}td| |ƒ}ttj||dƒƒ}t|ƒ}t|ttj|d|ƒƒƒ}i|d6|d6|    d6| d6|d6}||| |||g}tjd|g|d|d |dtjƒqtj d| ||fƒnÇ|
rxtjd dƒ}tdt| |dƒƒ}td| |ƒ}i|d6|d6|    d6| d6}||| ||g}tjd|
gg|d|d |dtjƒntj!d||fƒt|t"ƒnê| r»d}t|t#ƒnÎ|
rld}g}i|d6}i|d6|    d6t$d6|j
d    6g}|dkr=tjd|
g||d |ƒt|t%ƒq‰tjd|
g||d |ƒt|t&ƒnd}tj!d ||fƒit'|ƒd!6|d"6|d#6}t(d'd$|ƒtj*d%||    | |||f|
ƒ|j+j,|d'ƒ||j-kr|j-j.|ƒn||j/krD|j/j.|ƒt0|d&ƒnx3|j1j2ƒD]"}||krT|j.|ƒqTqTW| r»| |j3kr»|j3| } || kr»| j.|ƒq»n||j4krÝ|j4j.|ƒnx3|j5j2ƒD]"}!||!krí|!j.|ƒqíqíWx3|j6j2ƒD]"}"||"kr#|"j.|ƒq#q#W|
rŠ|
|j7krŠ|j7|
}#||#krŠ|#j.|ƒqŠnx3|j8j2ƒD]"}$||$krš|$j.|ƒqšqšWt9j:ƒ}%||%_|j;|%ƒq#W|sðdSt|ƒ}&t9j<ƒ}'||'_=t|'j=ƒ|'_>tj?ƒ}(x`t@|(jAƒƒD]L})|(jB|)ƒ}*|*d'kriqBntCjD|*ƒr~qBntEjF|*|'ƒqBW|&S((sB ½áÊøÅÄÆ·¾ºÅÄ
    @param delItemStateDict: É¾³ýµÄÅÄÆ·¾ºÅÄ״̬
    iR°tOKt PaimaiMail3R'R/R0t IsAuctionItemR1tAuctionHouseGiveItemtdetailtAuctionTaxrateiiigY@gð?R-tFamilyPlayerIDListt PaimaiMail8t    goldPapert moneySources8ÏÉÃËÅÄÆ·Ã»ÓÐÈË»ñµÃÊÕÒæ!familyID=%s,itemID=%s,itemGUID=%st PaimaiMail7s#ϵͳÅÄÆ·³É½»: itemGUID=%s,itemID=%stRecycletReturntUnsellt PaimaiMail9t PaimaiMail4t SystemDeletes#ϵͳÅÄÆ·Á÷ÅÄ: itemGUID=%s,itemID=%sR`tEndTypetEndEventtEndAuctionItemsO½áÊø¾ºÅÄ: itemID=%s,itemCount=%s,familyID=%s,endType=%s,endEvent=%s,itemGUID=%siÿÿÿÿN(GR R R'R/R0RRRR-RR1R RVtMapServer_QueryPlayerResultRFRRRAR R±RcRdRDRERÀR¾tmathtceilRCR‡tDef_GiveMoney_AuctionGainR*tErrLogR×tAuctionRecordResult_SellOKtAuctionRecordResult_RecycleRUtAuctionRecordResult_UnselltAuctionRecordResult_SellFailR´RfRRTRµRReR\RlRmRqtvaluesRnR–RqRrRoRtChPyNetSendPackttagGCClearAuctionItemRGttagGCClearAuctionItemInfotClearAuctionItemListt
ClearCountR5RÙRRR7R8t NetPackCommont SendFakePack(+RKtendEventtfuncAutoBuyoutt    buyPlayerRtclearAuctionItemListR9R¶RYRlRRR;t bidderPricetendTypet mailTypeKeyt    paramListRwR<tmailInfot    resultMsgtfamilyPlayerIDListttaxRatet personMaxRatettaxGoldt giveTotalGoldt giveMaxGoldtmemCounttgiveGoldAveragetgivePlayerGoldR³t queryItemListRttnowBiddingItemListthisBiddingItemListtplayerItemListtattentionItemListt    clearItemt
clearCountt
clientPackR=R>R?((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRIisð                                   (" &)" ( !                         cCs€|s dn    |jƒ}|\}}g}tjd||f|ƒtƒsj|rftj|dƒndS|dkr˜t|ƒ}|sŒdS|g}n§|dkr»|}t||ƒdS|dkr+|\}    }
t||    |
|t    ƒ\} } tj
d| | f|ƒ| rdS| sdS| g}n|dkr­|\}    }
t||    |
|t ƒ\} } | r©tj
d    | |ƒi|    d
6|
d 6| d 6} t |d | ƒndS|dkrÔ|d}    t ||    ƒdS|dkr t|||ƒ}|dkrdS|}n4|dkr%t|ƒdS|dkr?t|ƒdSt|||gƒ}|r||jddd|t|ƒƒndS(Nis-ÊÕµ½µØÍ¼ÅÄÂôÐÐÐÅÏ¢: queryType=%s,queryData=%stAuctionHouseClosetAddAuctionItemQuerytAddAuctionItemtBidAuctionItemQuerys    itemID=%s,errInfo=%stBidAuctionItems    errInfo=%sR't BiddingPricetErrInfotBidAuctionItemErrortUnsellAuctionItemtEquipStarAutoBuytClearAuctionItemtPrintAuctionItemRB(R R*R×RR7t
NotifyCodet__CheckPlayerCanAddAuctionItemt__AddAuctionItemByListt__DoPlayerBidAuctionItemRURTRRft__DoUnsellAuctionItemt__DoEquipStarAutoBuyEquipRt__DoGMClearAuctionItemt__DoGMPrintAuctionItemRVR‡RF(R    tmsgListRRt    queryTypet    queryDatatresulttcanSelltaddAuctionItemListR¶t biddingPriceRYterrInfoR³t    buyResultR¡((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytMapServer_AuctionHouseLogicsj                
        
 
"cCsi|jƒ}tjddƒ}|ret|ƒ}t|ƒ}||k}|satj|dƒn|StS(NRBitSellCountLimit(R RDRER¸RFR7R¿RU(R    Rt maxSellCounttplayerAuctionItemListtplayerSellCountRË((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRÀas    c Cst}g}i}xž|D]–\}}}}t|||||ƒ}    |    sOqn|    j}
|    j} |j|
| |gƒ|r©|j|gƒ} | j|    ƒ| ||<qt}qW|rÉtd|ƒnx*|jƒD]\}} t    d|| ƒqÖWt |ƒdS(s3 ÅúÁ¿Ìí¼ÓÅÄÆ·
    @param curPlayer: ¿ÉÄÜΪNone
    RrN( Rt__DoAddAuctionItemR'R/RGRRURgRARRRh( R    RÌRrtnotifyAddItemListtnotifyFamilyAddItemDictRRR¢titemDataR9R¶RYtfamilyAddItemList((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRÁns*          
 
cCs|jddƒ}tjd|ƒ}|s.dS|jddƒ}tjƒ}||_||_||_||_|jddƒ|_    t
j ƒ|_ |jddƒ|_ |jddƒ|_|jd    dƒ|_|jd
dƒ|_t|jƒ|_t|ƒ|_t|jƒ|_|r'tnt|_t
jd ||||jfƒt|ƒs`dStjƒ}    ||    j|j<|    jj|ƒ|rÄ|    j j|gƒ}
|
j|ƒ|
|    j |<nü|    j!j|ƒt"|d ƒ|r/|    j#j|gƒ} | j|ƒ| |    j#|<|r/t$||ƒq/ntj%ƒ} xT|    j&j'ƒD]C\} }|t(| | ƒkrrqKn||krK|j|ƒqKqKW|j)ƒrÀt*j+dd ||j,ƒgƒnit-|ƒd6}t.|d|ƒt
j/d|||f|ƒt
j/dt|    jƒƒ|S(NR/iRzR¯R°t    ItemCountR‰R½RŠR1s:ÉϼÜÅÄÆ·: playerID=%s,familyID=%s,itemID=%s,auctionType=%siR_R`Rµs$ÉϼÜÅÄÆ·: playerID=%s,familyID=%s,%ss¸üÐÂÅÄÆ·Êý: %s(0RRDR€R%ttagDBAuctionItemR'RRR/R0R*R+R”R‰R½RŠR1RFR2RVR±tFamilyPlayerIDLenR¥RkRjR×RiR R RµReRGRnRlRmRoRRbRRARQRdR7ReR¤R´RfRT(R    RRR¢RØRYRƒR¶R9RRttmyAuctionItemListRNRmRnR³((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRÕ”sf                           "c CsX|s
dStjƒ}tjƒ}x/t|jƒƒD]}|j|ƒ}|dkr\q5ntj    |ƒrqq5nt
||j ƒƒ}|s’q5nd}xŠ|D]‚\}}}    |    rÌ|    |j ƒkrÌqŸn||krÞqŸn|sót j ƒ}nt jƒ}
||
_||
_|jj|
ƒqŸW|r5t|jƒ|_tj||ƒq5q5WdS(N(R RbR*R5RÙRRRR7R8RQR R‘ttagGCAddAuctionItemInfottagGCAddAuctionItemR'R/tAddAuctionItemListRGRFtAddCountR–R—( RÖRNR=R>R?tplayerAttentionIDListtinfoPackR¶RYRR7((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRhÕs:             cCsÌt|ƒ}|s&tj|dƒdS|jƒ}|j}|jrhtjd|||jf|ƒdS|j|kr›tjd|||jf|ƒdS|j    r¸tj|dƒdSt
|gdƒdS(NtPaimai3s7ÏÉÃËÅÄÆ·ÎÞ·¨Ï¼ܣ¡itemGUID=%s,itemID=%s,itemFamilyID=%ssA²»ÊÇÍæ¼Ò×Ô¼ºµÄÅÄÆ·ÎÞ·¨Ï¼ܣ¡itemGUID=%s,itemID=%s,itemPlayerID=%stPaimai9R€( R·R7R¿R R/RR*R‹RR-RI(R    R¶R9RRY((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRÃ÷s&                      c$Cs˜d}d}t|ƒ}|s>tj|dƒd}||fS|j}tjd|ƒ}    |    sod}||fS|jƒ}
|j} |j} t    j
| ƒ} t t j ƒƒ}|| d}|    j ƒ}||krt    jd||| f|
ƒd    }||fS| tkrh|j}|jƒ}| s5||krht    jd
||||f|
ƒd }||fSn||jkr¤t    jd ||| f|
ƒd }||fS|jsÀ|    jƒ|jn|j|    jƒ|j}|    jƒ|j}|sù|n t||ƒ}||kp#|o#||ksYtj|dƒd|||||f}||fS|rº|j}|rž||tkržtj|dƒd}||fS|
|_||_||fS| rð|j|
krðtj|dƒd}||fS|j}|j}|j}|o||k}tjƒ}|j}|j }|r¾|r¾i|d6|d6|d6}|r¨|||g}t!j"d|gg|d|d|dt#j$ƒn@||||g}t!j"d|gg|d|d|dt#j$ƒt%|t&ƒt'}|j(|gƒ} || kr9| j)|ƒ| ||<t*}n|j(|gƒ}!||!krw|!j+|ƒ|!||<t*}n|r¾t    j,ƒj-|ƒ}"|"r»tj.|"ƒ r»t/|"|ƒq»q¾nd|_d|_t    j0ƒ|_1|
|_|j2ƒ|_3||_t'}|j(|
gƒ} || krD| j+|ƒ| ||
<t*}n|j(|
gƒ}!||!kr‚|!j)|ƒ|!||
<t*}n|r˜t/||ƒnt4|
ƒ|j5krÕ|j5d|
7_5t6|j5ƒ|_7nt    j8d||||||j5f|
ƒ||j9kr |j9j)|ƒn|rBt:|gd|d|ƒnLt;|ƒr^t<dt'ƒnit=|ƒd 6}#t>|d!|#ƒt?|gƒ||fS("sÆ Íæ¼Ò¾º¼ÛÎïÆ·
    @param curPlayer: ¾º¼ÛµÄÍæ¼Ò
    @param itemGUID: ÅÄÆ·GUID
    @param biddingPrice: ¾º¼Û
    @param isOnlyCheck: ÊÇ·ñ½ö¼ì²é¿É·ñ¾º¼Û
    @param funcAutoBuyout: ÊÇ·ñ¹¦ÄÜ×Ô¶¯¹ºÂò
    R°iRäsnot auctionItemRzs not ipyDatai<s5ÅÄÆ·ÉÐ먦·Å¾º¼Û! itemGUID=%s,itemID=%s,addTimeStr=%ssin notice timesc¸ÃÅÄÆ·ÎªÏÉÃË˽ÓÐÅÄÆ·£¬·Ç±¾ÏÉÃËÈËÔ±²»¿É¾ºÅÄ! itemGUID=%s,itemID=%s,itemFamilyID=%s,playerFamilyID=%ssis family auction items3ÅÄÆ·ÒѽáÊø¾º¼Û! itemGUID=%s,itemID=%s,addTimeStr=%ssend bidtPaimai2sRbid price error! biddingPrice=%s,nextPrice=%s,buyoutPrice=%s,itemGUID=%s,itemID=%stPaimai1sother player biddingsbidding player errorR/R'R0t PaimaiMail2R{RwR|t PaimaiMail1s%s|sbÍæ¼Ò¾º¼ÛÅÄÆ·: itemGUID=%s,itemID=%s,isBuyout=%s,lastBidderID=%s,lastBidderPrice=%s,bidderIDInfo=%stBuyoutRšRrR`R·(@R·R7R¿R/RDR€R R”RjR*R•R¾RR¤R‹R¥RRR~R-t GetBasePriceR0t GetBiddingAddRORCR}RHR|RR R RqRrRRR‡tDef_GiveMoney_AuctionBidReturnRAR!RRR\RURGR5R6R8RR+R¬tGetNameR.RVRpRFt BidderIDLenRTR–RIR¨RgR´RfRg($R    R¶RÍRt isOnlyCheckR™RÎRYR9RƒRR¢R©R£Rt passMinutesRªt itemFamilyIDtplayerFamilyIDt    nextPriceRSt    queryTickt lastBidderIDtlastBidderPriceRltisBuyoutRRqRrRwRŸtisSyncBiddingItemtnowBiddingAuctionItemListthisBiddingAuctionItemListt
lastBidderR³((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRÂsò     
    
           
           
6
    
        
 
                         
      
                      
      
           c6
CsØ|\
}}}}}}}    }
} } tjd||||fƒtjd||| | fƒ|d} tjd||| ƒ}|sŠdS|jƒ}|jƒ}|jƒ}|jƒ}tt    j    ƒƒ}tj
ddƒ}i}d}g}t j ƒ}x<t |jƒD]+\}}|j}|j}|s6q n|rT||jƒkrTq nt|ƒ}t|dd!ƒ}t|dd    !ƒ}t|d
ƒ} ||kr¨q n||krºq n| rÆq ntjd |ƒ}!|!säq n|!jƒ}"|"süq n||jkrq n|!jƒ}#|#r^|j}$tj|$ƒ}%||%d }&|&|#kr^q q^n|j}'|'|krç|j||"gƒ||7}||"7}tjd |||||"|fƒ||kr7d}tjd|ƒPq7q |'|krg||'<n||'}(|(j||"gƒtjd|||'fƒq W|dkr¾gg})}*x=|jƒD]/}+|+|krƒ|)j|+ƒqa|*j|+ƒqaW|)jdtƒ|*jƒ|)|*},tjd||,fƒtjddƒ}-tjddƒ}.xÈ|,D]½}+||+}(xš|(D]’\}}"|}/|.\}0}1|j}2|j}|2|kr¯|-d|2|}3ttjt |/d|3ddƒƒƒ}4tjd||2||/|3|4fƒnt|2|kr|-d||2}3ttjt |/d|3ddƒƒƒ}4tjd||2||/|3|4fƒn|/}4t!|0t"|4|1ƒƒ}4|j||"gƒ||47}||"7}tjd||"|fƒ||krtjd|ƒd}PqqW||krúPqúqúWn| |}5tjd| ||5|fƒ|rt#||||||5ƒdS|dkrAt#||||||5ƒt$j%|dƒdS| |5krƒt#||||||5ƒt$j%|dt&j'gƒdSx3|D]+\}}"t(||j)|"|t*dtƒqŠW||||||    |
| |f    S(NsNÉýÐÇ×Ô¶¯¹ºÂò×°±¸: classLV=%s, equipPlace=%s, curPartStar=%s, equipPackIndex=%ssD    ÊÇ·ñÔ¤ÀÀ %s, curRate=%s,lackItemCostMoney=%s, playerGoldPaper=%sit EquipStarUpt EquipStarRateiiiiiÿÿÿÿRzi<sX    %s ±¾½×ÓÅÏȹºÂò£¡itemID=%s,classLV=%s,curRate=%s,buyoutPrice=%s,buyEquipCostMoney=%sids*        ×Ô¶¯¹ºÂò±¾½×¸ÅÂÊÒÑÂú×㣡curRate=%ss4    %s ·Ç±¾½×, Ôݲ»´¦Àí! itemID=%s,aucItemClassLV=%streverses:±¾½×¸ÅÂÊδÂú£¬¼ì²é¹ºÂòÆäËû½×! curRate=%s,buyClassLVList=%sigY@s_    Í̸߽נitemID=%s,costClassLV=%s,classLV=%s,baseRate=%s,diffClassChangeRatePer=%s,addRate=%ss_    Í̵ͽנitemID=%s,costClassLV=%s,classLV=%s,baseRate=%s,diffClassChangeRatePer=%s,addRate=%ss6        curRate=%s,buyoutPrice=%s,buyEquipCostMoney=%ss0        ×Ô¶¯¹ºÂò²¹³äÆäËû½×¸ÅÂÊÒÑÂú×㣡curRate=%ssJ    lackItemCostMoney=%s,buyEquipCostMoney=%s,totalCostMoney=%s,curRate=%stAutoBuyEquipLackEquiptAutoBuyEquipLackMoneyR™(+R*RTRDR€tGetCostEquipPlacetGetCostEquipColort GetIsJobLimitt GetUnSuitRateR¾RRER R t    enumerateRlR/R½tGetJobRVROR~R¤R”R•RŠRGRR‘RUR‹RˆR‰troundRÀRCt__SyncEquipStarAutoBuyCostInfoR7R¿tIPY_PlayerDefinetTYPE_Price_Gold_PaperRÂR'R(6R    RÉRR˜t
equipPlacet curPartStartequipPackIndextisAutoBuyPreviewtcurRatetdelEquipGUIDDicttdelItemInfoDicttlackItemCostMoneytplayerGoldPapertnextStarRƒtcostEquipPlaceListtcostEquipColorListt
isJobLimitt
unSuitRateRtfullRatetautoBuyOtherClassItemDicttbuyEquipCostMoneytautoBuyItemListRR>tworldAuctionItemRYt
aucItemJobRÃt aucItemColort aucItemPlacet aucItemIsSuitt
aucIpyDataRSRªR¢R£RñtaucItemClassLVt classItemListt lowClassListt highClassListt
othClassLVtbuyClassLVListtdiffClassChangeRatePerInfotunSuitRateRangetbaseRatetminRatetmaxRatet costClassLVtdiffClassChangeRatePertaddRatettotalCostMoney((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRįsô$
                                
 
       
 
 
 
          *     *    
 
 
  #cCsMtjƒ}||_||_||_||_||_tj||ƒdS(N(    R‘ttagGCEquipStarAutoBuyCostInfotClassLVt
EquipPlacetCurStartCurRatetAutoBuyCostMoneyR–R—(R    R˜R R RR2tcostInfo((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyR    Us                     cCsg}xo|D]g}tjƒ}|j|_|j|_|j|_|j|_|j|_|j|_|j|ƒq W|s‚dStj    ƒ}||_
t |j
ƒ|_ t jƒ}x`t|jƒƒD]L}|j|ƒ}|dkrïqÈntj|ƒrqÈntj||ƒqÈWdS(st // B5 08 ÅÄÂôÐÐË¢ÐÂÅÄÆ· #tagGCRefreshAuctionItemInfo
        1-ÏÉÃËÅÄÆ·×ªÒƵ½È«·þʱ֪ͨ£» 2-ÅÄÆ·ÓÐÈ˾º¼ÛʱˢÐÂ
    N(R‘ttagGCRefreshAuctionItemR'RjR”RR-R¬RGttagGCRefreshAuctionItemInfotRefreshAuctionItemListRFt RefreshCountR*R5RÙRRRR7R8R–R—(RitrefreshAuctionItemListR9t refreshItemR²R=R>R?((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRg`s0               cCsŠ|jƒdkrdStjƒj}|s?tj|dƒdSg}x|D]}|j|ƒqLWt|dƒ}tj|d|ƒdS(NiZs µ±Ç°Ã»ÓÐÅÄÆ·!tGMClears Çå¿ÕÅÄÆ·Êý=%s(t
GetGMLevelR R ReR*t DebugAnswerRGRI(R    ReRKR9R±((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRÅ‚s c Csÿ|jƒdkrdStjƒ}|j}tjdt|ƒƒx7t|ƒD])\}}tjd|t|ƒfƒqOWtjdt|j    ƒƒtjdt|j
ƒƒtjdt|j ƒƒx:|j j ƒD])\}}tjd|t|ƒfƒqÚWx:|jj ƒD])\}}tjd|t|ƒfƒqWx:|jj ƒD])\}}    tjd    |t|    ƒfƒqTWx:|jj ƒD])\}}
tjd
|t|
ƒfƒq‘Wx:|jj ƒD])\}} tjd |t| ƒfƒqÎWdS( NiZsTimeList×ÜÅÄÆ·Êý: =%ss     i=%s, %ssAllDict×ÜÅÄÆ·Êý: %ssÈ«·þÅÄÆ·¸öÊý: %ssϵͳһ¿Ú¼ÛÅÄÆ·¸öÊý: %ssÏÉÃËÅÄÆ·¸öÊý: familyID=%s, %ssÍæ¼ÒÅÄÆ·¸öÊý: playerID=%s, %ss%Íæ¼Ò×î¸ß¾º¼ÛÅÄÆ·¸öÊý: playerID=%s, %ss%Íæ¼ÒÀúÊ·¾º¼ÛÅÄÆ·¸öÊý: playerID=%s, %ss!Íæ¼Ò¹Ø×¢ÅÄÆ·¸öÊý: playerID=%s, %s(RAR R ReR*RTRFRR´RµRlR–RnRARoRqRrR( R    RReR>R9RRtRRuR¬R­R¯((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRÆ”s*     !!!!!!c     Cswtjƒj|ƒ}|j}|j}|j}|j}|j}|j}    |j    }
t
|||||||    |
ƒdS(N( R*R5tGetPlayerByIndextJobt ItemTypeListR4tSpecItemIDListt FromItemGUIDtQueryDirt
QueryCountt"__Sync_WorldAuctionItemQueryResult( Rït
clientDataRR    R1t itemTypeListR˜tspecItemIDListt fromItemGUIDtqueryDirt
queryCount((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnQueryAuctionItemÄs                            cCsDtjƒj|ƒ}|j}d}t|d|d|dtƒdS(NiRNROtisNotify(R*R5RCR'RJRU(RïRKRR    t tagItemGUIDRO((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnQueryTagAuctionItemØs
    R°i
c    CsJd}    |rOt|ƒ}    |    sOtjd|ƒ|rHtj|dƒndSn|t|ƒ|t|ƒf}
tjƒ} | j    } |
| kr7g} x“| j
D]ˆ}|rÈ|j |krÈ|j rÈqžn|rã|j |krãqžn|rþ|j |krþqžn|r|j|krqžn| j|ƒqžW| | |
<n
| |
} t| ƒ}d}|    r¥|    | kr“tjd|ƒ|rtj|dƒndS| j|    ƒ}n|dkrâtd||dƒ}| ||d!}|}n(| |||!}td|||ƒ}tjƒ}||_||_t|jƒ|_||_||_t|jƒ|_||_||_||_||_g|_ x–|D]Ž}tj!ƒ}|j"|_"|j#|_#|j|_|j$|_%|j&|_&|j'|_'|j(|_(|j)|_)|j*|_*|j j|ƒq’Wt|j ƒ|_+t,j-||ƒdS(Ns%²éѯµÄÄ¿±êÅÄÆ·²»´æÔÚ! fromItemGUID=%stPaimai5is5²éѯµÄÄ¿±êÅÄÆ·²»ÔÚËùÔڵĹýÂ˵ÄÌõ¼þÀï! fromItemGUID=%sii(.RR·R*RTR7R¿ttupleR R RqRlR½R‰RŠR/RGRFR‹RïRÀR‘ttagGCAuctionItemInfoRDREt ItemTypeCountR4RFtSpecItemIDCountRGRHRItQueryRemainlCounttAuctionItemListttagGCAuctionItemR'RR0RÚR”R-R¬R1R2tAuctionItemCountR–R—(R    R1RLR˜RMRNRORPRRtfromAuctionItemtqueryKeyRRqtauctionItemQueryListRtqueryTotalCountt    fromIndext
startIndext syncItemListtqueryRemainlCountR²R9R7((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRJßs†        
                                                       cCs;tjƒj|ƒ}|j}t||d|jƒƒdS(N(R*R5RCR(R4RR(RïRKRR    R>((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnQueryAuctionRecord7s    cCstjƒj|ƒ}|jƒ}tjƒ}|j}||krO||}njg}tjƒ}t||ƒ}    |    r¹x3|j    D](}
|
j
|    kr›q€n|j |
ƒq€W|||<nt j ƒ} g| _x–|D]Ž} t jƒ} | j| _| j| _| j
| _
| j| _| j| _| j| _| j| _| j| _| j| _| jj | ƒqÕWt| jƒ| _tj|| ƒdS(N(R*R5RCR R R RRbRQRlR/RGR‘ttagGCAttentionAuctionItemInfoR[ttagGCAttentionAuctionItemR'RR0RÚR”R-R¬R1R2RFR]R–R—(RïRKRR    RRRR¯RNRPR9R²t attentionItemtitemObj((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnQueryAttentionAuctionItemCs@                          c    Cs¤tjƒj|ƒ}|jƒ}|j}|j}tjƒ}|r^t|||ƒstdSnt    |||ƒstdSt
|t ƒtj ƒ}|j j|dƒdS(N(R*R5RCR R/t IsAttentionR RbR[R]RRUR RRR(    RïRKRR    RRYt isAttentionRNR((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytOnAttentionAuctionItemChangeps            cCs:|s
dS|st|ƒ}n|s)dStjƒ}g|_xº|D]²}tjƒ}|j|_|j|_|j|_|j|_    |j
|_
|j |_ |j |_ |j |_ |j|_|j|_|j|_|j|_|jj|ƒqEWt|jƒ|_|r&tj||ƒntj||ƒdS(N(R¹R‘ttagGCFamilyAuctionItemInfoR[ttagGCFamilyAuctionItemR'RR/R0RÚR”R-R¬R1R2R±RÜRjRGRFR]R–R—t PlayerFamilytSendFamilyFakePack(R    Rt itemInfoListt itemInfoPackR9tpackItem((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyR„s8                   cCs|r|g}nt|jƒƒ}|s.dStjƒ}g|_x–|D]Ž}tjƒ}|j|_|j|_|j|_|j    |_
|j |_ |j |_ |j |_ |j|_|j|_|jj|ƒqJWt|jƒ|_tj||ƒdS(N(R¸R R‘ttagGCPlayerAuctionItemInfoR[ttagGCPlayerAuctionItemR'RR/R0RÚR”R-R¬R1R2RGRFR]R–R—(R    R9RdRtRu((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyR©s,                 cCsº|tkr6|r6|r!|gnt|jƒƒ}nj|tkrf|rf|rW|gn    t|ƒ}n:|tkrœ|rœ|r‡|gnt|jƒƒ}ndStjƒ}g|_    x®|D]¦}tj
ƒ}|j |_ |j |_ |j |_ |j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j    j|ƒq¼Wt|j    ƒ|_|r‘tj||ƒn%|r¶|tkr¶tj||ƒndS(N(R$RR R#RR"RR‘ttagGCPlayerAuctionRecordInfotAuctionRecordListttagGCPlayerAuctionRecordR'RR(R)R,R-R.R/R0RÚR1R2RGRFR–R—RqRr(R    R>R?RtsyncRecordListR²t
recordDatatrecord((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyR4Æs:$$                  c    CsH|r|g}nL|jƒ}tjƒ}|jj|gƒ}|jj|gƒ}||}|shdStjƒ}g|_x¢|D]š}tj    ƒ}|j
|_
|j |_ |j |_ |j |_|j|_|j|_|j|_|j|_|j|_|j|_|jj|ƒq„Wt|jƒ|_tj||ƒdS(N(R R R RqRRrR‘ttagGCBiddingItemInfoR[ttagGCBiddingItemR'RR/R0RÚR”RR-R¬R1R2RGRFR]R–R—(    R    R9RdRRRúRûRtRu((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRés6   
                 cCsntjƒ}t||jƒƒ}| r3| r3dStjƒ}||_t|jƒ|_t    j
||ƒdS(N( R RbRQR R‘ttagGCAttentionAuctionItemIDRMRFtAttentionCountR–R—(R    tisForceRNRPR²((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyR s      cCsdS(N((R    t    eventNameR³((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRfscCs4tjd||fƒtjtj||gƒdS(s² ÉϼÜÏÉÃËÅÄÆ·£¬ÒòΪÏÉÃËÅÄÆ·Ä¬ÈÏÉϼܣ¬ËùÒÔʹÓÃÅúÁ¿ÉϼÜ
    @param familyAuctionItemDict: {ÏÉÃËID:[[ÏíÊÜÊÕÒæµÄ³ÉÔ±ID, ...], [[ÅÄÆ·ID,¸öÊý], [ÅÄÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]], ...}
    s"·¢Ë͵ØÍ¼ÉϼÜÏÉÃËÅÄÆ·: mapID=%s, %sN(R*R×tSendMapServerMsgExRt(Def_Notify_WorldKey_AddFamilyAuctionItem(tmapIDRn((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pytDoAddFamilyAuctionItem scCs=tj}tjd||fƒtjtj||gƒdS(sx ÉϼÜϵͳÅÄÆ·
    @param sysAuctionItemList: [ÎïÆ·ID, [½×,ÑÕÉ«,[²¿Î», ...],ÊÇ·ñÌ××°,ÐǼ¶,[¿ÉÑ¡²ÎÊýÖ°Òµ, ...]], ...]
    s"·¢Ë͵ØÍ¼ÉϼÜϵͳÅÄÆ·: mapID=%s, %sN(R‡tDef_FBMapID_MainCityR*R×R„Rt(Def_Notify_WorldKey_AddSystemAuctionItem(RCR†((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyRB(s    (eR*R R7tDataRecordPackR%RR
R‘RRDR–RRqRRPR‡R’RÔRoRRˆRctrangetAuctionRecordTypeListR$R#R"tAuctionRecordResultListRRŒRR R!RcRŽRkR¥RHRR
RRRRRAR3RQR[R]R_RSRhRxRyRRiRfR‚R¨R´R·R¸R¹R¼RmRR@RERMRGRJRURgRRIRÐRÀRÁRÕRhRÃRÂRÄR    RgRÅRÆRQRTRJRfRkRnRRR4RRRfR‡RB(((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\AuctionHouse.pyt<module>s¬                       %                             0                                  $         >                                          _    v        #    S    2 ®    J         &    A    "     Ÿ    ¦         "        0        !X         -     % # #