1 | //===== eAthena Script ====================================================================== |
---|
2 | //= 1. Auctioneer |
---|
3 | //= 2. Auction Helping (Gives info only, but still good to have in) |
---|
4 | //===== Original By ========================================================================= |
---|
5 | //= Fredzilla |
---|
6 | //===== Helped By =========================================================================== |
---|
7 | //= Not one quite yet, but you never know ;) |
---|
8 | //===== Current Version: ==================================================================== |
---|
9 | //= 1.0 (Beta) < Thats means it is in testing |
---|
10 | //===== Compatible With: ==================================================================== |
---|
11 | //= Any eAthena, that also has a script_athena.conf |
---|
12 | //===== Description: ======================================================================== |
---|
13 | //= Lets a people place items into an auction, max of 10 items per round |
---|
14 | //= People can bid on them item |
---|
15 | //= Then buy the items, and sellers pickup there money |
---|
16 | //===== Comments and Credits =========================================================== |
---|
17 | //= This script would not have been made possible if it was not for "Maeki Rika" |
---|
18 | //= My praise goes out to her for finding out all the things we can do with the |
---|
19 | //= current system that eAthena uses |
---|
20 | //= |
---|
21 | //= More comments are listed down the page, in a attempt to explain what is going on in each |
---|
22 | //= section of the script |
---|
23 | //= |
---|
24 | //= This script is currently in testing, and any loss of items will, not only need to be |
---|
25 | //= reported inside the thread I made for this script, but be replaced by GM if proof was given :D |
---|
26 | //=========================================================================================== |
---|
27 | |
---|
28 | prontera,153,193,5 script Auctioneer 807,{ |
---|
29 | mes "[Auctioneer]"; |
---|
30 | set @num,0; |
---|
31 | // These few line below are to recover item that would be lost due to a new auction starting |
---|
32 | L_RNameLoop: |
---|
33 | if(strcharinfo(0)==$ANamesB$[@num] && $paidB[@num]==0) goto L_RBackup; |
---|
34 | set @num,@num+1; |
---|
35 | if(@num<10) goto L_RNameLoop; |
---|
36 | if($Auction==1) goto L_Register; |
---|
37 | if($Auction==2) goto L_Bid; |
---|
38 | if($Auction==3) goto L_PayPickup; |
---|
39 | |
---|
40 | // After a server restart, and no auction value is set, it will run this |
---|
41 | // People who placed items in there before the restart should still be to retrieve there items |
---|
42 | |
---|
43 | mes "You are able to sell and buy things inside the auction, unfortunately nothing has been started, you need to wait for the auction to start"; |
---|
44 | mes "No items lost will be given back, please remember you used this at your own risk"; |
---|
45 | next; |
---|
46 | mes "[Auctioneer]"; |
---|
47 | mes "I am very sorry if you have lost items"; |
---|
48 | close; |
---|
49 | |
---|
50 | // If the Auction has started, it will run this, during this time items can be registered and registered items retrieved |
---|
51 | |
---|
52 | L_Register: |
---|
53 | mes "Welcome to the auction, you may register you items at this time"; |
---|
54 | next; |
---|
55 | set @num,0; |
---|
56 | L_NameLoop: |
---|
57 | if(strcharinfo(0)==$ANames$[@num]) goto L_Already; |
---|
58 | set @num,@num+1; |
---|
59 | if(@num<10) goto L_NameLoop; |
---|
60 | if(getarraysize($AItems)==10) goto L_AFull; |
---|
61 | menu "I want to register an item now",L_IRegister,"I don't want to leave an item",-; |
---|
62 | L_End: |
---|
63 | mes "[Auctioneer]"; |
---|
64 | mes "Ok, come back whenever"; |
---|
65 | close; |
---|
66 | L_IRegister: |
---|
67 | mes "[Auctioneer]"; |
---|
68 | mes "Listed below is the first 10 items you have on you now"; |
---|
69 | mes "What do you want to register?"; |
---|
70 | next; |
---|
71 | set @array,0; |
---|
72 | set @item,500; |
---|
73 | // set @loopcount,0; |
---|
74 | L_ILoop: |
---|
75 | // set @loopcount,@loopcount+1; |
---|
76 | // debugmes @loopcount; |
---|
77 | set @item,@item+1; |
---|
78 | if(@item>=13005) goto L_Menu; |
---|
79 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
80 | if(countitem(@item)>0) set @array,@array+1; |
---|
81 | if(@array==10) goto L_Menu; |
---|
82 | set @item,@item+1; |
---|
83 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
84 | if(countitem(@item)>0) set @array,@array+1; |
---|
85 | if(@array==10) goto L_Menu; |
---|
86 | set @item,@item+1; |
---|
87 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
88 | if(countitem(@item)>0) set @array,@array+1; |
---|
89 | if(@array==10) goto L_Menu; |
---|
90 | set @item,@item+1; |
---|
91 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
92 | if(countitem(@item)>0) set @array,@array+1; |
---|
93 | if(@array==10) goto L_Menu; |
---|
94 | set @item,@item+1; |
---|
95 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
96 | if(countitem(@item)>0) set @array,@array+1; |
---|
97 | if(@array==10) goto L_Menu; |
---|
98 | set @item,@item+1; |
---|
99 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
100 | if(countitem(@item)>0) set @array,@array+1; |
---|
101 | if(@array==10) goto L_Menu; |
---|
102 | set @item,@item+1; |
---|
103 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
104 | if(countitem(@item)>0) set @array,@array+1; |
---|
105 | if(@array==10) goto L_Menu; |
---|
106 | set @item,@item+1; |
---|
107 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
108 | if(countitem(@item)>0) set @array,@array+1; |
---|
109 | if(@array==10) goto L_Menu; |
---|
110 | set @item,@item+1; |
---|
111 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
112 | if(countitem(@item)>0) set @array,@array+1; |
---|
113 | if(@array==10) goto L_Menu; |
---|
114 | set @item,@item+1; |
---|
115 | if(countitem(@item)>0) set @item2[@array],@item; |
---|
116 | if(countitem(@item)>0) set @array,@array+1; |
---|
117 | if(@array==10) goto L_Menu; |
---|
118 | goto L_ILoop; |
---|
119 | L_Menu: |
---|
120 | menu getitemname(@item2[0]),-,getitemname(@item2[1]),-,getitemname(@item2[2]),-,getitemname(@item2[3]),-,getitemname(@item2[4]),-,getitemname(@item2[5]),-,getitemname(@item2[6]),-,getitemname(@item2[7]),-,getitemname(@item2[8]),-,getitemname(@item2[9]),-,"Next Page",L_WipeLoop; |
---|
121 | set @setitem,@item2[@menu-1]; |
---|
122 | set @num,0; |
---|
123 | L_SorryLoop: |
---|
124 | set @num,@num+1; |
---|
125 | if(@menu==@num && @setitem == 0) goto L_Sorry; |
---|
126 | if(@num==10) goto L_FinalReg; |
---|
127 | goto L_SorryLoop; |
---|
128 | L_FinalReg: |
---|
129 | mes "[Auctioneer]"; |
---|
130 | mes "Please remember that if this item does contain cards, or is crafted, these distinctions will be lost when it is put into the auction"; |
---|
131 | mes "This also means if you get the item back, that this applies to, you will have lost out"; |
---|
132 | mes " "; |
---|
133 | mes "So you want to register your "+getitemname(@setitem); |
---|
134 | next; |
---|
135 | menu "Yes please",-,"No",L_End; |
---|
136 | mes "[Auctioneer]"; |
---|
137 | mes "Ok I will register this item now"; |
---|
138 | next; |
---|
139 | set @amount,1; |
---|
140 | if(countitem(@setitem)==1) goto L_FinalInput; |
---|
141 | mes "[Auctioneer]"; |
---|
142 | mes "Wait a minute it seems you have more than one of that item, please enter the ammount you want to put in the aution"; |
---|
143 | next; |
---|
144 | input @amount; |
---|
145 | if(countitem(@setitem)<@amount) goto L_NotEnough; |
---|
146 | L_FinalInput: |
---|
147 | set $AItems[$array],@setitem; |
---|
148 | set $ANames$[$array],strcharinfo(0); |
---|
149 | set $AAmount[$array],@amount; |
---|
150 | set $array,$array+1; |
---|
151 | delitem @setitem,@amount; |
---|
152 | mes "[Auctioneer]"; |
---|
153 | mes "You item has been taken into storage, ready for sale, the auction will begin soon, watch for the announcment"; |
---|
154 | close; |
---|
155 | L_AFull: |
---|
156 | mes "[Auctioneer]"; |
---|
157 | mes "Oh, sorry, it seems my auction is full this time round, please try in the next one"; |
---|
158 | close; |
---|
159 | L_WipeLoop: |
---|
160 | deletearray @item2[0],10; |
---|
161 | set @array,0; |
---|
162 | goto L_ILoop; |
---|
163 | L_Sorry: |
---|
164 | mes "[Auctioneer]"; |
---|
165 | mes "It seems that is all you have to offer me, come back when you know what you want to sell"; |
---|
166 | close; |
---|
167 | L_Already: |
---|
168 | mes "[Auctioneer]"; |
---|
169 | mes "It seems you already have have an item registered here, would you like to retrieve your item?"; |
---|
170 | next; |
---|
171 | menu "Yes",-,"No",L_End; |
---|
172 | getitem $AItems[@num],$AAmount[@num]; |
---|
173 | L_AItemsLoop: |
---|
174 | set $AItems[@num],$AItems[@num+1]; |
---|
175 | set $ANames$[@num],$ANames$[@num+1]; |
---|
176 | set $AAmount[@num],$AAmount[@num+1]; |
---|
177 | set @num,@num+1; |
---|
178 | if(@num<10) goto L_AItemsLoop; |
---|
179 | set $array,$array-1; |
---|
180 | set @num,0; |
---|
181 | mes "[Auctioneer]"; |
---|
182 | mes "Ok, all items present and acounted for, have a nice day"; |
---|
183 | close; |
---|
184 | L_NotEnough: |
---|
185 | mes "[Auctioneer]"; |
---|
186 | mes "Seems you don't have that many "+getitemname(@setitem)+"'s"; |
---|
187 | close; |
---|
188 | // If the Auction has enterd phase 2, it will run this, during this time items you can bid on registered |
---|
189 | // No items can be retrieved during this time, they are now stuck |
---|
190 | |
---|
191 | L_Bid: |
---|
192 | mes "What would you like to bid on?"; |
---|
193 | next; |
---|
194 | set @num,0; |
---|
195 | L_MenuLoop: |
---|
196 | set @menu$[@num],$AAmount[@num]+" x "+getitemname($AItems[@num])+" "+$bid[@num]+"z"; |
---|
197 | set @num,@num+1; |
---|
198 | if($AItems[@num]!=0) goto L_MenuLoop; |
---|
199 | menu |
---|
200 | @menu$[0],-, |
---|
201 | @menu$[1],-, |
---|
202 | @menu$[2],-, |
---|
203 | @menu$[3],-, |
---|
204 | @menu$[4],-, |
---|
205 | @menu$[5],-, |
---|
206 | @menu$[6],-, |
---|
207 | @menu$[7],-, |
---|
208 | @menu$[8],-, |
---|
209 | @menu$[9],-; |
---|
210 | mes "[Auctioneer]"; |
---|
211 | set @num,@menu-1; |
---|
212 | if(strcharinfo(0)==$ANames$[@num]) goto L_CantBid; |
---|
213 | L_ReBid: |
---|
214 | mes "You are currently bidding on "+$AAmount[@num]+" x "+getitemname($AItems[@num]); |
---|
215 | mes "The current bid is at "+$bid[@num]+"z"; |
---|
216 | mes "This was made by "+$bidders$[@num]; |
---|
217 | if($bidders$[@num]==strcharinfo(0)) goto L_AlreadyBid; |
---|
218 | mes "How much do you want to bid yourself"; |
---|
219 | mes "(Use 0 to cancel at this point)"; |
---|
220 | next; |
---|
221 | input @bid; |
---|
222 | if(@bid<=0) goto L_End; |
---|
223 | if(zeny<@bid) goto L_LowZeny; |
---|
224 | if(@bid<$bid[@num]) goto L_LowBid; |
---|
225 | mes "[Auctioneer]"; |
---|
226 | mes "You are about to bid "+@bid+"z for "+$AAmount[@num]+" x "+getitemname($AItems[@num]); |
---|
227 | mes "Are you sure?"; |
---|
228 | next; |
---|
229 | menu "Yes",-,"No",L_End; |
---|
230 | set $bid[@num],@bid; |
---|
231 | set $bidders$[@num],strcharinfo(0); |
---|
232 | mes "[Auctioneer]"; |
---|
233 | mes "Your bid has been entered"; |
---|
234 | close; |
---|
235 | L_LowZeny: |
---|
236 | mes "[Auctioneer]"; |
---|
237 | mes "Sorry you need to show me that amount as proof you could pay, if you do win"; |
---|
238 | mes "Please either get more money, or bid lower"; |
---|
239 | close; |
---|
240 | L_CantBid: |
---|
241 | mes "Sorry, you can't bid on your own lots"; |
---|
242 | close; |
---|
243 | L_LowBid: |
---|
244 | mes "[Auctioneer]"; |
---|
245 | mes "Your bid seems lower than the current one, try entering a higher ammount of zeny"; |
---|
246 | next; |
---|
247 | mes "[Auctioneer]"; |
---|
248 | goto L_ReBid; |
---|
249 | L_AlreadyBid: |
---|
250 | mes "Hey wait, that is you, you can't bid again"; |
---|
251 | close; |
---|
252 | // If the Auction has entered phase 3, it will run this |
---|
253 | // During this time, items that have been bid on can be bought |
---|
254 | // Items not bid on can be picked back up by the seller |
---|
255 | // And if any of the items have been bought, and are paid for, seller can pick up their money |
---|
256 | |
---|
257 | L_PayPickup: |
---|
258 | mes "The auction has now ended"; |
---|
259 | mes "What would you like to do?"; |
---|
260 | next; |
---|
261 | menu "Check for items I have sold",-,"Check for items I have won",L_Won,"Nothing",L_End; |
---|
262 | |
---|
263 | // Check starts here for if you have sold anything during this auction |
---|
264 | |
---|
265 | set @num,0; |
---|
266 | L_SoldLoop: |
---|
267 | if($ANames$[@num]==strcharinfo(0)) goto L_Sold; |
---|
268 | set @num,@num+1; |
---|
269 | if(@num<10) goto L_SoldLoop; |
---|
270 | mes "[Auctioneer]"; |
---|
271 | mes "Sorry it seems you have either picked up all you items, money"; |
---|
272 | mes "or you didn't register any items in this auction"; |
---|
273 | close; |
---|
274 | L_Sold: |
---|
275 | mes "[Auctioneer]"; |
---|
276 | if($paid[@num]==3) goto L_Returned; |
---|
277 | mes "Ah I see here, you sold your "+$AAmount[@num]+" x "+getitemname($AItems[@num]); |
---|
278 | mes "Lets see here it sold for"; |
---|
279 | next; |
---|
280 | if($bid[@num]==0) goto L_GiveBack; |
---|
281 | if($paid[@num]==2) goto L_AlreadyPaid; |
---|
282 | mes "[Auctioneer]"; |
---|
283 | mes $bid[@num]+"z and "+$bidders$[@num]+" bought it from you"; |
---|
284 | if($paid[@num]!=1) goto L_NoMoney; |
---|
285 | mes "They have fully paid for it, so here is your money"; |
---|
286 | next; |
---|
287 | set zeny,zeny+$bid[@num]; |
---|
288 | set $paid[@num],2; |
---|
289 | goto L_End; |
---|
290 | L_AlreadyPaid: |
---|
291 | mes "[Auctioneer]"; |
---|
292 | mes "Hmm, seems you already have you money for this lot, not trying to con me are you?"; |
---|
293 | close; |
---|
294 | L_Returned: |
---|
295 | mes "[Auctioneer]"; |
---|
296 | mes "Seems we returned you item already"; |
---|
297 | close; |
---|
298 | L_GiveBack: |
---|
299 | mes "[Auctioneer]"; |
---|
300 | mes "Seems no-one wanted your item(s)"; |
---|
301 | mes "So you can have them back now"; |
---|
302 | getitem $AItems[@num],$AAmount[@num]; |
---|
303 | set $paid[@num],3; |
---|
304 | close; |
---|
305 | L_NoMoney: |
---|
306 | mes "Sorry to say this but they haven't paid this yet"; |
---|
307 | mes "You can go and talk to them now, or you can wait"; |
---|
308 | mes "If they haven't paid by the time the next Auction starts come back to me to retrieve your item(s)"; |
---|
309 | close; |
---|
310 | |
---|
311 | // Check starts here for if you won any items during this auction, futher options follow |
---|
312 | |
---|
313 | L_Won: |
---|
314 | set @num,0; |
---|
315 | mes "[Auctioneer]"; |
---|
316 | L_WonLoop: |
---|
317 | if($bidders$[@num]==strcharinfo(0)) goto L_Winner; |
---|
318 | L_CarryOn: |
---|
319 | set @num,@num+1; |
---|
320 | if(@num<10) goto L_WonLoop; |
---|
321 | mes "Sorry you didn't win any of the lots, please try again next time"; |
---|
322 | close; |
---|
323 | L_Winner: |
---|
324 | if($paid[@num]>0) goto L_CarryOn; |
---|
325 | mes "Well it does seem you have won an item"; |
---|
326 | mes "You won "+$AAmount[@num]+" x "+getitemname($AItems[@num]); |
---|
327 | mes "And you bid "+$bid[@num]+"z for this lot"; |
---|
328 | mes "What do you want to do now?"; |
---|
329 | next; |
---|
330 | |
---|
331 | // At this point they can choose from 3 options, to Buy the current lot |
---|
332 | // see the next one they might have won, or give up that lot |
---|
333 | |
---|
334 | menu "Buy this lot",-,"See Next Lot you won",L_CarryOn,"Relinquish this lot",L_Back; |
---|
335 | if(zeny<$bid[@num]) goto L_2lowzeny; |
---|
336 | set zeny,zeny-$bid[@num]; |
---|
337 | getitem $AItems[@num],$AAmount[@num]; |
---|
338 | set $paid[@num],1; |
---|
339 | mes "[Auctioneer]"; |
---|
340 | mes "Our transaction is completed"; |
---|
341 | mes "See you again soon"; |
---|
342 | close; |
---|
343 | L_2lowzeny: |
---|
344 | mes "[Auctioneer]"; |
---|
345 | mes "Sorry it seems you don't have enough zeny on you, please acquire more"; |
---|
346 | close; |
---|
347 | L_Back: |
---|
348 | mes "[Auctioneer]"; |
---|
349 | mes "Are you sure you want to give up this lot?"; |
---|
350 | next; |
---|
351 | menu "Yes",-,"No",L_End; |
---|
352 | set $bid[@num],0; |
---|
353 | set $bidders$[@num],"no-one"; |
---|
354 | mes "[Auctioneer]"; |
---|
355 | mes "It is done, you might want to tell "+$ANames$[@num]+" they can come and pickup his item(s)"; |
---|
356 | close; |
---|
357 | |
---|
358 | // All the times that will start the Auction |
---|
359 | |
---|
360 | OnClock0100: |
---|
361 | OnClock0400: |
---|
362 | OnClock0700: |
---|
363 | OnClock1000: |
---|
364 | OnClock1300: |
---|
365 | OnClock1600: |
---|
366 | OnClock1900: |
---|
367 | OnClock2200: |
---|
368 | // Starting Backup |
---|
369 | copyarray $AItemsB[0],$AItems[0],10; |
---|
370 | copyarray $ANamesB$[0],$ANames$[0],10; |
---|
371 | copyarray $AAmountB[0],$AAmount[0],10; |
---|
372 | copyarray $paidB[0],$paid[0],10; |
---|
373 | // End backup - Start Wiping |
---|
374 | deletearray $paid[0],10; |
---|
375 | deletearray $bid[0],10; |
---|
376 | deletearray $bidders$[0],10; |
---|
377 | deletearray $AItems[0],10; |
---|
378 | deletearray $ANames$[0],10; |
---|
379 | deletearray $AAmount[0],10; |
---|
380 | set $array,0; |
---|
381 | // End Wiping - Begin Announce + Phase setting |
---|
382 | announce "Registration time has begun, see the Auctioneer to register your items",0; |
---|
383 | cleararray $bidders$[0],"no-one",10; |
---|
384 | set $Auction,1; |
---|
385 | end; |
---|
386 | |
---|
387 | // All the times that will start the bidding section |
---|
388 | |
---|
389 | OnClock0200: |
---|
390 | OnClock0500: |
---|
391 | OnClock0800: |
---|
392 | OnClock1100: |
---|
393 | OnClock1400: |
---|
394 | OnClock1700: |
---|
395 | OnClock2000: |
---|
396 | OnClock2300: |
---|
397 | if($Auction==0) end; |
---|
398 | announce "Registration time has ended, time for the biding to begin",0; |
---|
399 | set $Auction,2; |
---|
400 | initnpctimer; |
---|
401 | end; |
---|
402 | |
---|
403 | // All the times that will start the last phase, buying and seller, and item retrieval |
---|
404 | |
---|
405 | OnClock0300: |
---|
406 | OnClock0600: |
---|
407 | OnClock0900: |
---|
408 | OnClock1200: |
---|
409 | OnClock1500: |
---|
410 | OnClock1800: |
---|
411 | OnClock2100: |
---|
412 | OnClock0000: |
---|
413 | if($Auction==0) end; |
---|
414 | announce "Bidding time has ended, see the Auctioneer to get your items, or money",0; |
---|
415 | set $Auction,3; |
---|
416 | end; |
---|
417 | |
---|
418 | // On the start of the server it will reset the Auction state, but not the items it contains |
---|
419 | // so people still have have a chance to retrieve there lost items |
---|
420 | |
---|
421 | OnInit: |
---|
422 | copyarray $AItemsB[0],$AItems[0],10; |
---|
423 | copyarray $ANamesB$[0],$ANames$[0],10; |
---|
424 | copyarray $AAmountB[0],$AAmount[0],10; |
---|
425 | copyarray $paidB[0],$paid[0],10; |
---|
426 | deletearray $paid[0],10; |
---|
427 | deletearray $bid[0],10; |
---|
428 | deletearray $bidders$[0],10; |
---|
429 | deletearray $AItems[0],10; |
---|
430 | deletearray $ANames$[0],10; |
---|
431 | deletearray $AAmount[0],10; |
---|
432 | set $array,0; |
---|
433 | set $Auction,0; |
---|
434 | end; |
---|
435 | |
---|
436 | // All below is for anouncing the items in this auction, if there are none it will say so |
---|
437 | // and if there are none in there at the start of phase 2 it will reset the auctions state |
---|
438 | // This is to stop the auction ending message, and will only start again when it reachs phase 1 again |
---|
439 | |
---|
440 | OnTimer5000: |
---|
441 | announce "Today in our auction we have",0; |
---|
442 | end; |
---|
443 | OnTimer7000: |
---|
444 | if($AItems[0]==0) setnpctimer 25001; |
---|
445 | if($AAmount[0]==1) announce "A lovely "+getitemname($AItems[0])+" left by "+$ANames$[0],0; |
---|
446 | if($AAmount[0]>1) announce $AAmount[0]+" lovely "+getitemname($AItems[0])+" left by "+$ANames$[0],0; |
---|
447 | end; |
---|
448 | OnTimer9000: |
---|
449 | if($AItems[1]==0) setnpctimer 25001; |
---|
450 | if($AAmount[1]==1) announce "A great "+getitemname($AItems[1])+" left by "+$ANames$[1],0; |
---|
451 | if($AAmount[1]>1) announce $AAmount[1]+" great "+getitemname($AItems[1])+" left by "+$ANames$[1],0; |
---|
452 | end; |
---|
453 | OnTimer11000: |
---|
454 | if($AItems[2]==0) setnpctimer 25001; |
---|
455 | if($AAmount[2]==1) announce "A excellent "+getitemname($AItems[2])+" left by "+$ANames$[2],0; |
---|
456 | if($AAmount[2]>1) announce $AAmount[2]+" excellent "+getitemname($AItems[2])+" left by "+$ANames$[2],0; |
---|
457 | end; |
---|
458 | OnTimer13000: |
---|
459 | if($AItems[3]==0) setnpctimer 25001; |
---|
460 | if($AAmount[3]==1) announce "A superb "+getitemname($AItems[3])+" left by "+$ANames$[3],0; |
---|
461 | if($AAmount[3]>1) announce $AAmount[3]+" superb "+getitemname($AItems[3])+" left by "+$ANames$[3],0; |
---|
462 | end; |
---|
463 | OnTimer15000: |
---|
464 | if($AItems[4]==0) setnpctimer 25001; |
---|
465 | if($AAmount[4]==1) announce "A terrific "+getitemname($AItems[4])+" left by "+$ANames$[4],0; |
---|
466 | if($AAmount[4]>1) announce $AAmount[4]+" terrific "+getitemname($AItems[4])+" left by "+$ANames$[4],0; |
---|
467 | end; |
---|
468 | OnTimer17000: |
---|
469 | if($AItems[5]==0) setnpctimer 25001; |
---|
470 | if($AAmount[5]==1) announce "A wonderful "+getitemname($AItems[5])+" left by "+$ANames$[5],0; |
---|
471 | if($AAmount[5]>1) announce $AAmount[5]+" wonderful "+getitemname($AItems[5])+" left by "+$ANames$[5],0; |
---|
472 | end; |
---|
473 | OnTimer19000: |
---|
474 | if($AItems[6]==0) setnpctimer 25001; |
---|
475 | if($AAmount[6]==1) announce "A pretty "+getitemname($AItems[6])+" left by "+$ANames$[6],0; |
---|
476 | if($AAmount[6]>1) announce $AAmount[6]+" pretty "+getitemname($AItems[6])+" left by "+$ANames$[6],0; |
---|
477 | end; |
---|
478 | OnTimer21000: |
---|
479 | if($AItems[7]==0) setnpctimer 25001; |
---|
480 | if($AAmount[7]==1) announce "A sweet "+getitemname($AItems[7])+" left by "+$ANames$[7],0; |
---|
481 | if($AAmount[7]>1) announce $AAmount[7]+" sweet "+getitemname($AItems[7])+" left by "+$ANames$[7],0; |
---|
482 | end; |
---|
483 | OnTimer23000: |
---|
484 | if($AItems[8]==0) setnpctimer 25001; |
---|
485 | if($AAmount[8]==1) announce "A stunning "+getitemname($AItems[8])+" left by "+$ANames$[8],0; |
---|
486 | if($AAmount[8]>1) announce $AAmount[8]+" stunning "+getitemname($AItems[8])+" left by "+$ANames$[8],0; |
---|
487 | end; |
---|
488 | OnTimer25000: |
---|
489 | if($AItems[9]==0) end; |
---|
490 | if($AAmount[9]==1) announce "A fine "+getitemname($AItems[9])+" left by "+$ANames$[9],0; |
---|
491 | if($AAmount[9]>1) announce $AAmount[9]+" fine "+getitemname($AItems[9])+" left by "+$ANames$[9],0; |
---|
492 | OnTimer27000: |
---|
493 | if($AItems[0]!=0) announce "That is all the items we have this time round, so get bidding",0; |
---|
494 | if($AItems[0]==0) announce "Seems there are no items this time round",0; |
---|
495 | if($AItems[0]==0) set $Auction,0; |
---|
496 | stopnpctimer; |
---|
497 | setnpctimer 0; |
---|
498 | end; |
---|
499 | |
---|
500 | // this is only be run if you own any items left over, not paid for, from the last auction, or the server failed, and items are left over |
---|
501 | |
---|
502 | L_RBackup: |
---|
503 | mes "You seem to have items left over from the last auction, here you go, have it back"; |
---|
504 | next; |
---|
505 | getitem $AItemsB[@num],$AAmountB[@num]; |
---|
506 | L_BItemsLoop: |
---|
507 | set $AItemsB[@num],$AItemsB[@num+1]; |
---|
508 | set $ANamesB$[@num],$ANamesB$[@num+1]; |
---|
509 | set $AAmountB[@num],$AAmountB[@num+1]; |
---|
510 | set @num,@num+1; |
---|
511 | if(@num<10) goto L_BItemsLoop; |
---|
512 | mes "[Auctioneer]"; |
---|
513 | mes "Have a nice day"; |
---|
514 | close; |
---|
515 | } |
---|
516 | |
---|
517 | // Only for display purposes, and telling people info about the auction |
---|
518 | // Can also be used for finding out what phase the auction is in |
---|
519 | |
---|
520 | prontera,158,193,3 script Auction Helper 833,{ |
---|
521 | mes "[Auction Helper]"; |
---|
522 | set @num,0; |
---|
523 | if($Auction==0 && $AItemsB[@num]!=0) goto L_ItemRecover; |
---|
524 | if(($Auction==1 || $Auction ==2) && $AItems[@num]!=0) goto L_LLoop; |
---|
525 | if($Auction==3 && $AItems[@num]!=0) goto L_Win; |
---|
526 | mes "Ok Currently we have nothing in the auction."; |
---|
527 | mes "Please return at the correct time."; |
---|
528 | close; |
---|
529 | L_LLoop: |
---|
530 | mes "Ok Currently we have :-"; |
---|
531 | L_Loop: |
---|
532 | mes $ANames$[@num]+" with "+$AAmount[@num]+" x "+getitemname($AItems[@num])+"('s)"; |
---|
533 | set @num,@num+1; |
---|
534 | if($AItems[@num]==0) close; |
---|
535 | if(@num<10) goto L_Loop; |
---|
536 | close; |
---|
537 | L_ItemRecover: |
---|
538 | mes "Seems there was a problem, and the auction ended prematurely."; |
---|
539 | mes "This means we still have :-"; |
---|
540 | L_BLoop: |
---|
541 | if($paid[@num]==0) mes $ANamesB$[@num]+" with "+$AAmountB[@num]+" x "+getitemname($AItemsB[@num])+"('s)"; |
---|
542 | set @num,@num+1; |
---|
543 | if($AItems[@num]==0) close; |
---|
544 | if(@num<10) goto L_BLoop; |
---|
545 | close; |
---|
546 | L_Win: |
---|
547 | mes "The Auction is in the last stage, at this point you can :-"; |
---|
548 | mes " * buy your items"; |
---|
549 | mes " * Pick-up you money"; |
---|
550 | mes "(or if you were unlucky)"; |
---|
551 | mes " * Pick-up unsold items"; |
---|
552 | next; |
---|
553 | mes "[Auction Helper]"; |
---|
554 | mes "Here is a list of Sellers and Winners"; |
---|
555 | set @num,0; |
---|
556 | L_Loop2: |
---|
557 | mes $ANames$[@num]+" with "+$AAmount[@num]+" "+getitemname($AItems[@num])+"('s), won by "+$bidders$[@num]+" for "+$bid[@num]+"z"; |
---|
558 | set @num,@num+1; |
---|
559 | if($AItems[@num]==0) close; |
---|
560 | if(@num<10) goto L_Loop2; |
---|
561 | close; |
---|
562 | |
---|
563 | } |
---|