Jump to content

Antares

Members
  • Posts

    420
  • Joined

  • Last visited

  • Days Won

    7

Community Answers

  1. Antares's post in Lottery was marked as the answer   
    //===== rAthena Script ======================================= //= Lottery //===== By: ================================================== //= acky //===== Current Version: ===================================== //= 1.2.1a //===== Compatible With: ===================================== //= rAthena Project //===== 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 //============================================================ - script lotterygenerator -1,{ OnInit: set $L_TicketPrice,5000; // 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 OnFri2200: // 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 "Lottery: Welcome to tonight's lotto draw!",8; Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; Announce "Congratulations to the winners of tonight!",8; // 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; } prontera,169,179,3 script Lottery 76,{ L_Begin: mes "[Lottery]"; mes "Winning Lotto Numbers ("+$LID2+"):"; mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000"; if ($LID > 99999) mes "Your Ticket ("+#LID+"):"; if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000"; mes "Next Draw-ID: ^FF0000" + $LID + "^000000."; next; if (getgmlevel() > 90) goto L_GM; menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Read Information",L_Info,"Cancel",L_Cancel; L_Info: mes "[Lottery]"; mes "The draw will be held every friday 10pm server time."; end; // PURCHASE TICKET L_Buy: if (#LID == $LID && #L1 != 0) goto L_DoubleTicket; mes "[Lottery]"; mes "Tickets cost ^0000FF" + callfunc("F_InsertComma",($L_TicketPrice)) + "z^000000."; mes "The Jackpot is ^FF0000" + callfunc("F_InsertComma",($L_Prize_Money)) + "z^000000."; next; menu "Buy Ticket",-,"Cancel",L_Cancel; if (Zeny < $L_TicketPrice) goto L_NoZeny; set Zeny, Zeny-$L_TicketPrice; mes "[Lottery]"; mes "Would you like your numbers hand picked or computer generated?"; next; menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew 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 "[Lottery]"; mes "The computer has selected the following numbers:"; mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; next; menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen; // HAND PICK LOTTERY NUMBERS L_HandPick: mes "[Lottery]"; mes "Please pick your numbers (1-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 "[Lottery]"; mes "Your numbers are:"; mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; next; menu "Confirm",L_Confirm,"Re-Pick",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 "[Lottery]"; mes "The live broadcasted draw is at 10pm server time. You can claim your ticket between then and the next draw."; next; mes "[Lottery]"; mes "Good luck!"; end; 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 "[Lottery]"; mes "Bad luck, it appears you do not hold a winning ticket."; next; mes "[Lottery]"; mes "Better luck next time!."; end; // MATCHED ALL SIX LWinBig: mes "[Lottery]"; mes "You have matched all six numbers!"; mes "Jackpot!"; mes "You've won ^0000FF" + $L_Prize_Money + "z^000000."; set Zeny, Zeny+$L_Prize_Money; Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8; set #LID,0; end; // MATCHED AT LEAST 4 LWinSmall: mes "[Lottery]"; mes "You have matched at least 4 numbers!"; mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000."; set Zeny, Zeny+$L_Prize_Money_Small; Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8; set #LID,0; end; // NO ZENY L_NoZeny: mes "[Lottery]"; mes "You can't afford a lottery ticket."; end; // INVALID TICKET L_Invalid: mes "[Lottery]"; mes "I'm sorry but it appears that you have an invalid ticket."; end; // DOUBLE TICKET L_DoubleTicket: mes "[Lottery]"; mes "It appears that you already have a ticket for today."; mes "You may only purchase one ticket per draw."; end; L_Cancel: mes "[Lottery]"; mes "Come back soon!"; end; // GM MENU (Lets you manually do draws) L_GM: menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"[GM]Do Draw Now",-,"[GM]Rig the Lottery",L_GM_Rig,"Cancel",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 "Lottery: Welcome to the special GM's lotto draw!",8; Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; Announce "Congratulations to the winners!",8; // 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; // ALLOWS GM TO DO A RIGGED DRAW L_GM_Rig: mes "[Lottery]"; mes "Please pick your numbers (1-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 "[Lottery]"; mes "Lottery rigged for next draw."; set $L_Rigged,1; end; } Try this.
     
    (mes expects a string value, by adding an empty string (+"") you can supress the warning)
  2. Antares's post in Don't see normal move attack and damge was marked as the answer   
    Maybe you are using the wrong packet version
  3. Antares's post in WINDOWS 10 Client issues was marked as the answer   
    Well, nevermind
     
    It was because my soundcard driver was malfunctioning after the update and needed a reinstall
    If anyone has something similar, try checking drivers
  4. Antares's post in 10 AGI = 1 ASPD. was marked as the answer   
    Edit this part of the code as you want:
    status.c
    /// aspd = baseaspd + floor(sqrt((agi^2/2) + (dex^2/5))/4 + (potskillbonus*agi/200)) amotion -= (int)(sqrt( (pow(status->agi, 2) / 2) + (pow(status->dex, 2) / 5) ) / 4 + (status_calc_aspd(bl, sc, 1) * status->agi / 200)) * 10; *note: The line 90 is a comment about the theoretical formula. The actual calculation is in line 91.
     
    I'm not sure if it's needed to be edited elsewhere, but it might be neccessary. Just check through the calls and you can find it.
  5. Antares's post in help me T.T was marked as the answer   
    Hi!
     
    Unfortunately autobonus is broken in some cases, so probably your script is correct. We already have a bug report about it, but it seems that it will take some time to fix it.
     
    http://rathena.org/board/tracker/issue-8300-itemcombo-autobonus-not-working/
  6. Antares's post in Lottory prizes was marked as the answer   
    Oh, I see, sorry I only quickread your post I thought you wanted a different zeny amount. I could get some solution for you, but since I'm just a rookie, It would be way too messy. So someone pz show us some nice solution
     
    (If you want to try on your own you may peek form some existing npc dialogs, like the assassin quest final where you are asked what weapon to take)
     
    /+ heres my simple switch based one like in assasin quest:
    mes "Yelect your reward:"; .@prizeid = 516; .@prizename = "Potato"; SelectPrizeBig: switch(select("Item1:Item2:Item3")) { case 1: .@prizeid = 8050; .@prizename = "Item1"; break; case 2: .@prizeid = 8051; .@prizename = "Item2"; break; case 3: .@prizeid = 8052; .@prizename = "Item3"; break; } mes "Are you sure?"; switch(select("Yes:No")) { case 1: getitem .@prizeid,1; break; case 2: goto SelectPrizeBig; break; } Announce "Lottery: " + strcharinfo(0) + " has won " + .@prizename + "!",8; I have put it into the full script, but you need to set the item IDs and names at SelectPrizeBig:
    //===== rAthena Script ======================================= //= Lottery //===== By: ================================================== //= acky //===== Current Version: ===================================== //= 1.2.1a //===== Compatible With: ===================================== //= rAthena Project //===== 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 //============================================================ -    script    lotterygenerator    -1,{ 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 "Lottery: Welcome to tonight's lotto draw!",8;     Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;     Announce "Congratulations to the winners of tonight!",8;     // 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; } //prontera,141,182,5    script    Lottery    76,{ caspen,148,236,5    script    Lottery    790,{ L_Begin:     mes "[Lottery]";     mes "Winning Lotto Numbers ("+$LID2+"):";     mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000";     if ($LID > 99999) mes "Your Ticket ("+#LID+"):";     if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000";     mes "Next Draw-ID: ^FF0000" + $LID + "^000000.";     next;     if (getgmlevel() > 90) goto L_GM;     menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Cancel",L_Cancel; // PURCHASE TICKET L_Buy:     if (#LID == $LID && #L1 != 0) goto L_DoubleTicket;     mes "[Lottery]";     mes "Tickets cost ^0000FF" + $L_TicketPrice + "z^000000.";     mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000.";     next;     menu "Buy Ticket",-,"Cancel",L_Cancel;     if (Zeny < $L_TicketPrice) goto L_NoZeny;     set Zeny, Zeny-$L_TicketPrice;     mes "[Lottery]";     mes "Would you like your numbers hand picked or computer generated?";     next;     menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew 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 "[Lottery]";     mes "The computer has selected the following numbers:";     mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";     next;     menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen; // HAND PICK LOTTERY NUMBERS L_HandPick:     mes "[Lottery]";     mes "Please pick your numbers (1-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 "[Lottery]";     mes "Your numbers are:";     mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";     next;     menu "Confirm",L_Confirm,"Re-Pick",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 "[Lottery]";     mes "The live broadcasted draw is at 9pm.";     mes "You can claim your ticket between then and the next draw.";     next;     mes "[Lottery]";     mes "Good luck!";     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 "[Lottery]";     mes "Bad luck, it appears you do not hold a winning ticket.";     next;     mes "[Lottery]";     mes "Better luck next time!.";     close; // MATCHED ALL SIX LWinBig:     mes "[Lottery]";     mes "You have matched all six numbers!";     mes "Jackpot!";     mes "Yelect your reward:";     .@prizeid = 516;     .@prizename = "Potato"; SelectPrizeBig:     switch(select("Item1:Item2:Item3")) {         case 1:             .@prizeid = 8050;             .@prizename = "Item1";             break;         case 2:             .@prizeid = 8051;             .@prizename = "Item2";             break;         case 3:             .@prizeid = 8052;             .@prizename = "Item3";             break;     }     mes "Are you sure?";     switch(select("Yes:No")) {         case 1:             getitem .@prizeid,1;             break;         case 2:             goto SelectPrizeBig;             break;     }     Announce "Lottery: " + strcharinfo(0) + " has won " + .@prizename + "!",8;     set #LID,0;     close; // MATCHED AT LEAST 4 LWinSmall:     mes "[Lottery]";     mes "You have matched at least 4 numbers!";     mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000.";     set Zeny, Zeny+$L_Prize_Money_Small;     Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8;     set #LID,0;     close; // NO ZENY L_NoZeny:     mes "[Lottery]";     mes "You can't afford a lottery ticket.";     close; // INVALID TICKET L_Invalid:     mes "[Lottery]";     mes "I'm sorry but it appears that you have an invalid ticket.";     close; // DOUBLE TICKET L_DoubleTicket:     mes "[Lottery]";     mes "It appears that you already have a ticket for today.";     mes "You may only purchase one ticket per draw.";     close; L_Cancel:     mes "[Lottery]";     mes "Come back soon!";     close; // GM MENU (Lets you manually do draws) L_GM:     menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"[GM]Do Draw Now",-,"[GM]Rig the Lottery",L_GM_Rig,"Cancel",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 "Lottery: Welcome to the special GM's lotto draw!",8;     Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;     Announce "Congratulations to the winners!",8; // 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 "[Lottery]";     mes "Please pick your numbers (1-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 "[Lottery]";     mes "Lottery rigged for next draw.";     set $L_Rigged,1;     close; } You may add or remove items by altering the switch part.
  7. Antares's post in Could somebody check out my donation npc script.. was marked as the answer   
    I can't see here, but are you using TABs where it should be (and not space)?
    prontera,102,81,4 script Donate Custom 811,{ I mean
    prontera,102,81,4<TAB>script<TAB>Donate Custom<TAB>811,{ Check on wiki for further info.
  8. Antares's post in Variables and RAM was marked as the answer   
    I'm a rookie, but as I understand, you may use variables freely. They consume very little ram, unless you create them in an infinite loop.
     
    http://rathena.org/wiki/Variables#Temporal_vs_Permanent
     
    I suggest to always use the lowest possible scope for a variable, eg: If a variable is only used during a calculation in an event (like OnPCKillEvent), and it is not required after, then make it a temporary script variable, but of course if you want to store a quest progress, make it a permanent character variable, and if you want a server-wide setting/progress variable make it a permanent global variable.
     
    But the wiki is the best description. Read it and you will understand everything
    http://rathena.org/wiki/Variables
  9. Antares's post in Hit and flee aren't accurate (compared to RMS values) was marked as the answer   
    Please note that RMS shows the Flee/Hit REQUIRED (player must have) to hit/evade the monster by a chance, while @mi shows the monster's raw stats. They are not the same
×
×
  • Create New...