//Le Livre d'Ymir http://www.bookofymir.net/ //traduit par Myllena //===== eAthena Script ======================================= //= Lottery Script //===== By: ================================================== //= acky - god@acky.com //===== Current Version: ===================================== //= 1.2.1a //===== Compatible With: ===================================== //= Any eAthena Version //===== Description: ========================================= //= Daily lottery draw. //===== Additional Comments: ================================= //= Numbers drawn daily (Time is configured line 29) //= *Added GM-Riggability //= *Ability to renew ticket //= *Improved interface //= *Fixed minor bug where first load didn't work. //= 1.2.1a fix due to new script engine //============================================================ prontera,1,1,1 script lotterygenerator 111,{ OnInit: set $L_TicketPrice,4750; // TICKET COST set $L_Prize_Money,5000000; // JACKPOT AMOUNT set $L_Prize_Money_Small,1000000; // SECONDARY PRIZE if ($LID == 0) goto L_GenID; end; //Modify for own time OnClock2045: // CHECKS IF LOTTERY IS RIGGED if ($L_Rigged == 1) goto L_Rigged_Draw; // GENERATES RANDOM NUMBERS 1-40 Pick1: set $LW1,rand (1,40); Pick2: set $LW2,rand (1,40); if ($LW2 == $LW1) goto Pick2; Pick3: set $LW3,rand (1,40); if ($LW3 == $LW2) goto Pick3; if ($LW3 == $LW1) goto Pick3; Pick4: set $LW4,rand (1,40); if ($LW4 == $LW2) goto Pick4; if ($LW4 == $LW1) goto Pick4; if ($LW4 == $LW3) goto Pick4; Pick5: set $LW5,rand (1,40); if ($LW5 == $LW1) goto Pick5; if ($LW5 == $LW2) goto Pick5; if ($LW5 == $LW3) goto Pick5; if ($LW5 == $LW4) goto Pick5; Pick6: set $LW6,rand (1,40); if ($LW6 == $LW1) goto Pick6; if ($LW6 == $LW2) goto Pick6; if ($LW6 == $LW3) goto Pick6; if ($LW6 == $LW4) goto Pick6; if ($LW6 == $LW5) goto Pick6; // BROADCASTS DRAW L_Broadcast: Announce "Attraction Loterie!",bc_npc; Announce "Voici les numéros qu'il fallait jouer: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",bc_npc; Announce "Félicitations aux vainqueurs de ce soir!",bc_npc; // GENERATES DRAW ID CODE L_GenID: set $LID2,$LID; // SETS TOMORROW'S ID NUMBER set $LID,rand (100000,999999); end; // SETS DRAW TO RIGGED NUMBERS L_Rigged_Draw: set $LW1,$LR1; set $LW2,$LR2; set $LW3,$LR3; set $LW4,$LR4; set $LW5,$LR5; set $LW6,$LR6; set $L_Rigged,0; goto L_Broadcast; } // BEGIN LOTTERY SCRIPT - script lottery 76,{ L_Begin: mes "[Loterie]"; mes "Voici les numéros gagnants du Tirage ("+$LID2+"):"; mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000"; if ($LID > 99999) mes "Voici les numéros inscrits sur votre ticket ("+#LID+"):"; if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000"; mes "Prochain Tirage: ^FF0000" + $LID + "^000000."; next; if (getgmlevel() > 90) goto L_GM; menu "Retirer son lot.",L_Claim,"Acheter un nouveau ticket.",L_Buy,"Annuler.",L_Cancel; // PURCHASE TICKET L_Buy: if (#LID == $LID && #L1 != 0) goto L_DoubleTicket; mes "[Loterie]"; mes "Prix du ticket: ^0000FF" + $L_TicketPrice + " Zenys^000000."; mes "Montant de la cagnotte: ^FF0000" + $L_Prize_Money + " Zenys^000000."; next; menu "Acheter un Ticket",-,"Annuler.",L_Cancel; if (zeny < $L_TicketPrice) goto L_NoZeny; set zeny,zeny-$L_TicketPrice; mes "[Loterie]"; mes "Préférez-vous choisir vos propres numéros, ou bien des numéros générés au hasard?"; next; menu "Générés au hasard.",L_ComputerGen,"Je souhaite choisir.",L_HandPick,"Renouveler son ticket.",L_Renew; // RENEW LAST TICKET L_Renew: if ($LID < 99999) goto L_Invalid; set #LID,$LID; goto L_Confirm2; L_ComputerGen: // SELECTS RANDOM NUMBERS set @L1,0; set @L2,0; set @L3,0; set @L4,0; set @L5,0; set @L6,0; Pick1: set @L1,rand (1,40); Pick2: set @L2,rand (1,40); if (@L2 == @L1) goto Pick2; Pick3: set @L3,rand (1,40); if (@L3 == @L2) goto Pick3; if (@L3 == @L1) goto Pick3; Pick4: set @L4,rand (1,40); if (@L4 == @L2) goto Pick4; if (@L4 == @L1) goto Pick4; if (@L4 == @L3) goto Pick4; Pick5: set @L5,rand (1,40); if (@L5 == @L1) goto Pick5; if (@L5 == @L2) goto Pick5; if (@L5 == @L3) goto Pick5; if (@L5 == @L4) goto Pick5; Pick6: set @L6,rand (1,40); if (@L6 == @L1) goto Pick6; if (@L6 == @L2) goto Pick6; if (@L6 == @L3) goto Pick6; if (@L6 == @L4) goto Pick6; if (@L6 == @L5) goto Pick6; mes "[Loterie]"; mes "Les numéros générés au hasard pour ce ticket sont les suivants:"; mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; next; menu "Confirmer.",L_Confirm,"Générer à nouveau.",L_ComputerGen; // HAND PICK LOTTERY NUMBERS L_HandPick: mes "[Loterie]"; mes "Veuillez choisir vos numéros (compris entre 1 et 40):"; set @L1,0; set @L2,0; set @L3,0; set @L4,0; set @L5,0; set @L6,0; Input1: input @L1; if (@L1 < 1 || @L1 > 40) goto Input1; mes @L1; Input2: input @L2; if (@L2 < 1 || @L2 > 40) goto Input2; if (@L2 == @L1) goto Input2; mes @L2; Input3: input @L3; if (@L3 < 1 || @L3 > 40) goto Input3; if (@L3 == @L1) goto Input3; if (@L3 == @L2) goto Input3; mes @L3; Input4: input @L4; if (@L4 < 1 || @L4 > 40) goto Input4; if (@L4 == @L1) goto Input4; if (@L4 == @L2) goto Input4; if (@L4 == @L3) goto Input4; mes @L4; Input5: input @L5; if (@L5 < 1 || @L5 > 40) goto Input5; if (@L5 == @L1) goto Input5; if (@L5 == @L2) goto Input5; if (@L5 == @L3) goto Input5; if (@L5 == @L4) goto Input5; mes @L5; Input6: input @L6; if (@L6 < 1 || @L6 > 40) goto Input6; if (@L6 == @L1) goto Input6; if (@L6 == @L2) goto Input6; if (@L6 == @L3) goto Input6; if (@L6 == @L4) goto Input6; if (@L6 == @L5) goto Input6; mes @L6; next; mes "[Loterie]"; mes "Vos numéros sont les suivants:"; mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; next; menu "Confirmer.",L_Confirm,"Choisir à nouveau.",L_HandPick; L_Confirm: set #LW1,@L1; set #LW2,@L2; set #LW3,@L3; set #LW4,@L4; set #LW5,@L5; set #LW6,@L6; set #LID,$LID; L_Confirm2: mes "[Loterie]"; mes "Le tirage aura lieu en direct à 21 heures."; mes "Vous pouvez retirer vos lots après la fin du tirage, et avant la fin du tirage suivant."; next; mes "[Loterie]"; mes "Bonne chance!"; close; L_Claim: // CHECKS TICKET VALIDILITY if (#LID != $LID2) goto L_Invalid; // CHECKS HOW MANY NUMBERS MATCHED set @LPrize,0; if (#LW1 == $LW1) set @LPrize,@LPrize+1; if (#LW1 == $LW2) set @LPrize,@LPrize+1; if (#LW1 == $LW3) set @LPrize,@LPrize+1; if (#LW1 == $LW4) set @LPrize,@LPrize+1; if (#LW1 == $LW5) set @LPrize,@LPrize+1; if (#LW1 == $LW6) set @LPrize,@LPrize+1; if (#LW2 == $LW1) set @LPrize,@LPrize+1; if (#LW2 == $LW2) set @LPrize,@LPrize+1; if (#LW2 == $LW3) set @LPrize,@LPrize+1; if (#LW2 == $LW4) set @LPrize,@LPrize+1; if (#LW2 == $LW5) set @LPrize,@LPrize+1; if (#LW2 == $LW6) set @LPrize,@LPrize+1; if (#LW3 == $LW1) set @LPrize,@LPrize+1; if (#LW3 == $LW2) set @LPrize,@LPrize+1; if (#LW3 == $LW3) set @LPrize,@LPrize+1; if (#LW3 == $LW4) set @LPrize,@LPrize+1; if (#LW3 == $LW5) set @LPrize,@LPrize+1; if (#LW3 == $LW6) set @LPrize,@LPrize+1; if (#LW4 == $LW1) set @LPrize,@LPrize+1; if (#LW4 == $LW2) set @LPrize,@LPrize+1; if (#LW4 == $LW3) set @LPrize,@LPrize+1; if (#LW4 == $LW4) set @LPrize,@LPrize+1; if (#LW4 == $LW5) set @LPrize,@LPrize+1; if (#LW4 == $LW6) set @LPrize,@LPrize+1; if (#LW5 == $LW1) set @LPrize,@LPrize+1; if (#LW5 == $LW2) set @LPrize,@LPrize+1; if (#LW5 == $LW3) set @LPrize,@LPrize+1; if (#LW5 == $LW4) set @LPrize,@LPrize+1; if (#LW5 == $LW5) set @LPrize,@LPrize+1; if (#LW5 == $LW6) set @LPrize,@LPrize+1; if (#LW6 == $LW1) set @LPrize,@LPrize+1; if (#LW6 == $LW2) set @LPrize,@LPrize+1; if (#LW6 == $LW3) set @LPrize,@LPrize+1; if (#LW6 == $LW4) set @LPrize,@LPrize+1; if (#LW6 == $LW5) set @LPrize,@LPrize+1; if (#LW6 == $LW6) set @LPrize,@LPrize+1; if (@LPrize == 6) goto LWinBig; if (@LPrize > 3 && @LPrize < 6) goto LWinSmall; // NO WINNER mes "[Loterie]"; mes "Pas de chance, on dirait que votre ticket ne comporte pas de numéros gagnants."; next; mes "[Loterie]"; mes "Vous aurez plus de chance la prochaine fois!"; close; // MATCHED ALL SIX LWinBig: mes "[Loterie]"; mes "Vous avez tous les numéros gagnants!"; mes "Vous gagnez le jackpot!"; mes "Le montant de vos gains s'élève à ^0000FF" + $L_Prize_Money + " Zenys^000000."; set zeny,zeny+$L_Prize_Money; Announce "Loterie: " + strcharinfo(0) + " a gagné le JACKPOT d'un montant de " + $L_Prize_Money + " Zenys!",bc_npc; set #LID,0; close; // MATCHED AT LEAST 4 LWinSmall: mes "[Loterie]"; mes "Vous avez 4 numéros gagnants!"; mes "Le montant de vos gains s'élève à ^0000FF" + $L_Prize_Money_Small + " Zenys^000000."; set zeny,zeny+$L_Prize_Money_Small; Announce "Loterie: " + strcharinfo(0) + " a remporté la cagnotte d'une valeur de " + $L_Prize_Money_Small + " Zenys!",bc_npc; set #LID,0; close; // NO ZENY L_NoZeny: mes "[Loterie]"; mes "Vous n'avez pas assez d'argent pour acheter un ticket."; close; // INVALID TICKET L_Invalid: mes "[Loterie]"; mes "Votre ticket n'est pas valide."; close; // DOUBLE TICKET L_DoubleTicket: mes "[Loterie]"; mes "Vous avez déjà acheté un ticket pour ce tirage."; mes "Vous ne pouvez acheter qu'un ticket par tirage."; close; L_Cancel: mes "[Loterie]"; mes "Revenez quand vous voulez!"; close; // GM MENU (Lets you manually do draws) L_GM: menu "Retirer son lot.",L_Claim,"Acheter un nouveau ticket.",L_Buy,"[GM]Lancer le tirage maintenant.",-,"[GM]Choisir les numéros gagnants.",L_GM_Rig,"Annuler.",L_Cancel; // CHECKS IF LOTTERY IS RIGGED if ($L_Rigged == 1) goto L_Rigged_Draw; // GENERATES RANDOM NUMBERS 1-40 GMPick1: set $LW1,rand (1,40); GMPick2: set $LW2,rand (1,40); if ($LW2 == $LW1) goto GMPick2; GMPick3: set $LW3,rand (1,40); if ($LW3 == $LW2) goto GMPick3; if ($LW3 == $LW1) goto GMPick3; GMPick4: set $LW4,rand (1,40); if ($LW4 == $LW2) goto GMPick4; if ($LW4 == $LW1) goto GMPick4; if ($LW4 == $LW3) goto GMPick4; GMPick5: set $LW5,rand (1,40); if ($LW5 == $LW1) goto GMPick5; if ($LW5 == $LW2) goto GMPick5; if ($LW5 == $LW3) goto GMPick5; if ($LW5 == $LW4) goto GMPick5; GMPick6: set $LW6,rand (1,40); if ($LW6 == $LW1) goto GMPick6; if ($LW6 == $LW2) goto GMPick6; if ($LW6 == $LW3) goto GMPick6; if ($LW6 == $LW4) goto GMPick6; if ($LW6 == $LW5) goto GMPick6; // BROADCASTS DRAW L_Broadcast: Announce "Attraction Loterie: tirage spécial!",bc_npc; Announce "Voici les numéros qu'il fallait jouer: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",bc_npc; Announce "Félicitations aux vainqueurs de ce soir!",bc_npc; // GENERATES DRAW ID CODE L_GenID: set $LID2,$LID; // SETS TOMORROW'S ID NUMBER set $LID,rand (100000,999999); close; // SETS DRAW TO RIGGED NUMBERS L_Rigged_Draw: set $LW1,$LR1; set $LW2,$LR2; set $LW3,$LR3; set $LW4,$LR4; set $LW5,$LR5; set $LW6,$LR6; set $L_Rigged,0; goto L_Broadcast; // ALLOWS GM TO DO A RIGGED DRAW L_GM_Rig: mes "[Loterie]"; mes "Veuillez choisir vos numéros (compris entre 1 et 40):"; set $LR1,0; set $LR2,0; set $LR3,0; set $LR4,0; set $LR5,0; set $LR6,0; GMInput1: Input $LR1; if ($LR1 < 1 || $LR1 > 40) goto GMInput1; mes $LR1; GMInput2: Input $LR2; if ($LR2 < 1 || $LR2 > 40) goto GMInput2; if ($LR2 == $LR1) goto GMInput2; mes $LR2; GMInput3: Input $LR3; if ($LR3 < 1 || $LR3 > 40) goto GMInput3; if ($LR3 == $LR1) goto GMInput3; if ($LR3 == $LR2) goto GMInput3; mes $LR3; GMInput4: Input $LR4; if ($LR4 < 1 || $LR4 > 40) goto GMInput4; if ($LR4 == $LR1) goto GMInput4; if ($LR4 == $LR2) goto GMInput4; if ($LR4 == $LR3) goto GMInput4; mes $LR4; GMInput5: Input $LR5; if ($LR5 < 1 || $LR5 > 40) goto GMInput5; if ($LR5 == $LR1) goto GMInput5; if ($LR5 == $LR2) goto GMInput5; if ($LR5 == $LR3) goto GMInput5; if ($LR5 == $LR4) goto GMInput5; mes $LR5; GMInput6: Input $LR6; if ($LR6 < 1 || $LR6 > 40) goto GMInput6; if ($LR6 == $LR1) goto GMInput6; if ($LR6 == $LR2) goto GMInput6; if ($LR6 == $LR3) goto GMInput6; if ($LR6 == $LR4) goto GMInput6; if ($LR6 == $LR5) goto GMInput6; mes $LR6; next; mes "[Loterie]"; mes "Les numéros ont été enregistrés pour le prochain tirage."; set $L_Rigged,1; close; } prontera,141,182,5 duplicate(lottery) Loterie 76