1 //===== rAthena Script =======================================
3 //===== By: ==================================================
5 //===== Current Version: =====================================
7 //===== Compatible With: =====================================
9 //===== Description: =========================================
10 //= Daily lottery draw
11 //===== Additional Comments: =================================
12 //= Numbers drawn daily (Time is configured line 29)
13 //= *Added GM-Riggability
14 //= *Ability to renew ticket
15 //= *Improved interface
16 //= *Fixed minor bug where first load didn't work.
17 //= 1.2.1a fix due to new script engine
18 //============================================================
20 - script lotterygenerator -1,{
22 set $L_TicketPrice,4750; // TICKET COST
23 set $L_Prize_Money,5000000; // JACKPOT AMOUNT
24 set $L_Prize_Money_Small,1000000; // SECONDARY PRIZE
25 if ($LID == 0) goto L_GenID;
30 // CHECKS IF LOTTERY IS RIGGED
31 if ($L_Rigged == 1) goto L_Rigged_Draw;
32 // GENERATES RANDOM NUMBERS 1-40
38 if ($LW2 == $LW1) goto Pick2;
42 if ($LW3 == $LW2) goto Pick3;
43 if ($LW3 == $LW1) goto Pick3;
47 if ($LW4 == $LW2) goto Pick4;
48 if ($LW4 == $LW1) goto Pick4;
49 if ($LW4 == $LW3) goto Pick4;
53 if ($LW5 == $LW1) goto Pick5;
54 if ($LW5 == $LW2) goto Pick5;
55 if ($LW5 == $LW3) goto Pick5;
56 if ($LW5 == $LW4) goto Pick5;
60 if ($LW6 == $LW1) goto Pick6;
61 if ($LW6 == $LW2) goto Pick6;
62 if ($LW6 == $LW3) goto Pick6;
63 if ($LW6 == $LW4) goto Pick6;
64 if ($LW6 == $LW5) goto Pick6;
68 Announce "Lottery: Welcome to tonight's lotto draw!",8;
69 Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;
70 Announce "Congratulations to the winners of tonight!",8;
72 // GENERATES DRAW ID CODE
75 // SETS TOMORROW'S ID NUMBER
76 set $LID,rand (100000,999999);
79 // SETS DRAW TO RIGGED NUMBERS
91 prontera,141,182,5 script Lottery 76,{
94 mes "Winning Lotto Numbers ("+$LID2+"):";
95 mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000";
96 if ($LID > 99999) mes "Your Ticket ("+#LID+"):";
97 if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000";
98 mes "Next Draw-ID: ^FF0000" + $LID + "^000000.";
100 if (getgmlevel() > 90) goto L_GM;
101 menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Cancel",L_Cancel;
105 if (#LID == $LID && #L1 != 0) goto L_DoubleTicket;
107 mes "Tickets cost ^0000FF" + $L_TicketPrice + "z^000000.";
108 mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000.";
110 menu "Buy Ticket",-,"Cancel",L_Cancel;
111 if (Zeny < $L_TicketPrice) goto L_NoZeny;
112 set Zeny, Zeny-$L_TicketPrice;
114 mes "Would you like your numbers hand picked or computer generated?";
116 menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew Ticket",L_Renew;
120 if ($LID < 99999) goto L_Invalid;
125 // SELECTS RANDOM NUMBERS
136 if (@L2 == @L1) goto Pick2;
139 if (@L3 == @L2) goto Pick3;
140 if (@L3 == @L1) goto Pick3;
143 if (@L4 == @L2) goto Pick4;
144 if (@L4 == @L1) goto Pick4;
145 if (@L4 == @L3) goto Pick4;
148 if (@L5 == @L1) goto Pick5;
149 if (@L5 == @L2) goto Pick5;
150 if (@L5 == @L3) goto Pick5;
151 if (@L5 == @L4) goto Pick5;
154 if (@L6 == @L1) goto Pick6;
155 if (@L6 == @L2) goto Pick6;
156 if (@L6 == @L3) goto Pick6;
157 if (@L6 == @L4) goto Pick6;
158 if (@L6 == @L5) goto Pick6;
160 mes "The computer has selected the following numbers:";
161 mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";
163 menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen;
165 // HAND PICK LOTTERY NUMBERS
168 mes "Please pick your numbers (1-40):";
177 if (@L1 < 1 || @L1 > 40) goto Input1;
181 if (@L2 < 1 || @L2 > 40) goto Input2;
182 if (@L2 == @L1) goto Input2;
186 if (@L3 < 1 || @L3 > 40) goto Input3;
187 if (@L3 == @L1) goto Input3;
188 if (@L3 == @L2) goto Input3;
192 if (@L4 < 1 || @L4 > 40) goto Input4;
193 if (@L4 == @L1) goto Input4;
194 if (@L4 == @L2) goto Input4;
195 if (@L4 == @L3) goto Input4;
199 if (@L5 < 1 || @L5 > 40) goto Input5;
200 if (@L5 == @L1) goto Input5;
201 if (@L5 == @L2) goto Input5;
202 if (@L5 == @L3) goto Input5;
203 if (@L5 == @L4) goto Input5;
207 if (@L6 < 1 || @L6 > 40) goto Input6;
208 if (@L6 == @L1) goto Input6;
209 if (@L6 == @L2) goto Input6;
210 if (@L6 == @L3) goto Input6;
211 if (@L6 == @L4) goto Input6;
212 if (@L6 == @L5) goto Input6;
216 mes "Your numbers are:";
217 mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";
219 menu "Confirm",L_Confirm,"Re-Pick",L_HandPick;
231 mes "The live broadcasted draw is at 9pm.";
232 mes "You can claim your ticket between then and the next draw.";
239 // CHECKS TICKET VALIDILITY
240 if (#LID != $LID2) goto L_Invalid;
241 // CHECKS HOW MANY NUMBERS MATCHED
243 if (#LW1 == $LW1) set @LPrize,@LPrize+1;
244 if (#LW1 == $LW2) set @LPrize,@LPrize+1;
245 if (#LW1 == $LW3) set @LPrize,@LPrize+1;
246 if (#LW1 == $LW4) set @LPrize,@LPrize+1;
247 if (#LW1 == $LW5) set @LPrize,@LPrize+1;
248 if (#LW1 == $LW6) set @LPrize,@LPrize+1;
249 if (#LW2 == $LW1) set @LPrize,@LPrize+1;
250 if (#LW2 == $LW2) set @LPrize,@LPrize+1;
251 if (#LW2 == $LW3) set @LPrize,@LPrize+1;
252 if (#LW2 == $LW4) set @LPrize,@LPrize+1;
253 if (#LW2 == $LW5) set @LPrize,@LPrize+1;
254 if (#LW2 == $LW6) set @LPrize,@LPrize+1;
255 if (#LW3 == $LW1) set @LPrize,@LPrize+1;
256 if (#LW3 == $LW2) set @LPrize,@LPrize+1;
257 if (#LW3 == $LW3) set @LPrize,@LPrize+1;
258 if (#LW3 == $LW4) set @LPrize,@LPrize+1;
259 if (#LW3 == $LW5) set @LPrize,@LPrize+1;
260 if (#LW3 == $LW6) set @LPrize,@LPrize+1;
261 if (#LW4 == $LW1) set @LPrize,@LPrize+1;
262 if (#LW4 == $LW2) set @LPrize,@LPrize+1;
263 if (#LW4 == $LW3) set @LPrize,@LPrize+1;
264 if (#LW4 == $LW4) set @LPrize,@LPrize+1;
265 if (#LW4 == $LW5) set @LPrize,@LPrize+1;
266 if (#LW4 == $LW6) set @LPrize,@LPrize+1;
267 if (#LW5 == $LW1) set @LPrize,@LPrize+1;
268 if (#LW5 == $LW2) set @LPrize,@LPrize+1;
269 if (#LW5 == $LW3) set @LPrize,@LPrize+1;
270 if (#LW5 == $LW4) set @LPrize,@LPrize+1;
271 if (#LW5 == $LW5) set @LPrize,@LPrize+1;
272 if (#LW5 == $LW6) set @LPrize,@LPrize+1;
273 if (#LW6 == $LW1) set @LPrize,@LPrize+1;
274 if (#LW6 == $LW2) set @LPrize,@LPrize+1;
275 if (#LW6 == $LW3) set @LPrize,@LPrize+1;
276 if (#LW6 == $LW4) set @LPrize,@LPrize+1;
277 if (#LW6 == $LW5) set @LPrize,@LPrize+1;
278 if (#LW6 == $LW6) set @LPrize,@LPrize+1;
280 if (@LPrize == 6) goto LWinBig;
281 if (@LPrize > 3 && @LPrize < 6) goto LWinSmall;
285 mes "Bad luck, it appears you do not hold a winning ticket.";
288 mes "Better luck next time!.";
294 mes "You have matched all six numbers!";
296 mes "You've won ^0000FF" + $L_Prize_Money + "z^000000.";
297 set Zeny, Zeny+$L_Prize_Money;
298 Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8;
302 // MATCHED AT LEAST 4
305 mes "You have matched at least 4 numbers!";
306 mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000.";
307 set Zeny, Zeny+$L_Prize_Money_Small;
308 Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8;
315 mes "You can't afford a lottery ticket.";
321 mes "I'm sorry but it appears that you have an invalid ticket.";
327 mes "It appears that you already have a ticket for today.";
328 mes "You may only purchase one ticket per draw.";
333 mes "Come back soon!";
336 // GM MENU (Lets you manually do draws)
338 menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"[GM]Do Draw Now",-,"[GM]Rig the Lottery",L_GM_Rig,"Cancel",L_Cancel;
340 // CHECKS IF LOTTERY IS RIGGED
341 if ($L_Rigged == 1) goto L_Rigged_Draw;
342 // GENERATES RANDOM NUMBERS 1-40
344 set $LW1,rand (1,40);
347 set $LW2,rand (1,40);
348 if ($LW2 == $LW1) goto GMPick2;
351 set $LW3,rand (1,40);
352 if ($LW3 == $LW2) goto GMPick3;
353 if ($LW3 == $LW1) goto GMPick3;
356 set $LW4,rand (1,40);
357 if ($LW4 == $LW2) goto GMPick4;
358 if ($LW4 == $LW1) goto GMPick4;
359 if ($LW4 == $LW3) goto GMPick4;
362 set $LW5,rand (1,40);
363 if ($LW5 == $LW1) goto GMPick5;
364 if ($LW5 == $LW2) goto GMPick5;
365 if ($LW5 == $LW3) goto GMPick5;
366 if ($LW5 == $LW4) goto GMPick5;
369 set $LW6,rand (1,40);
370 if ($LW6 == $LW1) goto GMPick6;
371 if ($LW6 == $LW2) goto GMPick6;
372 if ($LW6 == $LW3) goto GMPick6;
373 if ($LW6 == $LW4) goto GMPick6;
374 if ($LW6 == $LW5) goto GMPick6;
378 Announce "Lottery: Welcome to the special GM's lotto draw!",8;
379 Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;
380 Announce "Congratulations to the winners!",8;
382 // GENERATES DRAW ID CODE
385 // SETS TOMORROW'S ID NUMBER
386 set $LID,rand (100000,999999);
389 // SETS DRAW TO RIGGED NUMBERS
400 // ALLOWS GM TO DO A RIGGED DRAW
403 mes "Please pick your numbers (1-40):";
412 if ($LR1 < 1 || $LR1 > 40) goto GMInput1;
416 if ($LR2 < 1 || $LR2 > 40) goto GMInput2;
417 if ($LR2 == $LR1) goto GMInput2;
421 if ($LR3 < 1 || $LR3 > 40) goto GMInput3;
422 if ($LR3 == $LR1) goto GMInput3;
423 if ($LR3 == $LR2) goto GMInput3;
427 if ($LR4 < 1 || $LR4 > 40) goto GMInput4;
428 if ($LR4 == $LR1) goto GMInput4;
429 if ($LR4 == $LR2) goto GMInput4;
430 if ($LR4 == $LR3) goto GMInput4;
434 if ($LR5 < 1 || $LR5 > 40) goto GMInput5;
435 if ($LR5 == $LR1) goto GMInput5;
436 if ($LR5 == $LR2) goto GMInput5;
437 if ($LR5 == $LR3) goto GMInput5;
438 if ($LR5 == $LR4) goto GMInput5;
442 if ($LR6 < 1 || $LR6 > 40) goto GMInput6;
443 if ($LR6 == $LR1) goto GMInput6;
444 if ($LR6 == $LR2) goto GMInput6;
445 if ($LR6 == $LR3) goto GMInput6;
446 if ($LR6 == $LR4) goto GMInput6;
447 if ($LR6 == $LR5) goto GMInput6;
451 mes "Lottery rigged for next draw.";