From 6979b1d621c2e5c6dab882e3825c4a867d19ba98 Mon Sep 17 00:00:00 2001 From: euphyy Date: Fri, 1 Jun 2012 02:36:44 +0000 Subject: /custom/ folder overhaul: ==== Script Changes ==== * Warper replaced with Euphy's Warper v1.2 * Stylist replaced with a much more efficient script * Healer replaced with more efficient script * MVP Arena heavily condensed, and text edited * Removed logout suggestion in Reset NPC (why was that there?) * Quest Warper added to scripts_custom.conf [bug fix] ==== Reorganization ==== * All folders in root directory removed except "battleground", "events", "quests" * All non-essential scripts in root directory moved to "etc" folder * A few files renamed for easier identification * scripts_custom.conf reordered for easier identification git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16193 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/etc/airplane.txt | 442 ++++++++++++++++++ npc/custom/etc/bank.txt | 119 +++++ npc/custom/etc/bank_kafra.txt | 116 +++++ npc/custom/etc/blackjack.txt | 347 ++++++++++++++ npc/custom/etc/floating_rates.txt | 43 ++ npc/custom/etc/lottery.txt | 454 +++++++++++++++++++ npc/custom/etc/market.txt | 39 ++ npc/custom/etc/monster_arena.txt | 901 +++++++++++++++++++++++++++++++++++++ npc/custom/etc/morroc_raceway.txt | 238 ++++++++++ npc/custom/etc/mvp_arena.txt | 322 +++++++++++++ npc/custom/etc/penal_servitude.txt | 193 ++++++++ npc/custom/etc/rpsroulette.txt | 286 ++++++++++++ npc/custom/etc/shifty_assassin.txt | 199 ++++++++ npc/custom/etc/stock_market.txt | 791 ++++++++++++++++++++++++++++++++ npc/custom/etc/wandering_poets.txt | 712 +++++++++++++++++++++++++++++ 15 files changed, 5202 insertions(+) create mode 100644 npc/custom/etc/airplane.txt create mode 100644 npc/custom/etc/bank.txt create mode 100644 npc/custom/etc/bank_kafra.txt create mode 100644 npc/custom/etc/blackjack.txt create mode 100644 npc/custom/etc/floating_rates.txt create mode 100644 npc/custom/etc/lottery.txt create mode 100644 npc/custom/etc/market.txt create mode 100644 npc/custom/etc/monster_arena.txt create mode 100644 npc/custom/etc/morroc_raceway.txt create mode 100644 npc/custom/etc/mvp_arena.txt create mode 100644 npc/custom/etc/penal_servitude.txt create mode 100644 npc/custom/etc/rpsroulette.txt create mode 100644 npc/custom/etc/shifty_assassin.txt create mode 100644 npc/custom/etc/stock_market.txt create mode 100644 npc/custom/etc/wandering_poets.txt (limited to 'npc/custom/etc') diff --git a/npc/custom/etc/airplane.txt b/npc/custom/etc/airplane.txt new file mode 100644 index 000000000..fe03c2bf8 --- /dev/null +++ b/npc/custom/etc/airplane.txt @@ -0,0 +1,442 @@ +//===== rAthena Script ======================================= +//= elRO Airship +//===== By: ================================================== +//= Draike, Bluto, Hephaestus +//===== Current Version: ===================================== +//= 2.2a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= It's the elRO airship. XD +//===== Additional Comments: ================================= +//= ALWAYS HAVE AT LEAST TWELVE (12) LOCATIONS AS THE MINIMUM. This is unless you modify to OnMinutes and change the schedule around. +//= If you have "airplane,103,72,0 warp airs02a 1,1,airplane,102,200" as a warp, remove it. Where it's supposed to go, I have no clue. +//= 2.1 Removed Duplicates [Silent] +//= 2.2 Added missing next;'s [Evera] +//============================================================ + +payon,153,43,5 script itinsetter -1,{ + //This is just OnInit stuff to set the hourly intinerary. +OnInit: + deletearray $locationsname$[0],500; + deletearray $locationsmap$[0],500; + deletearray $locationsx[0],500; + deletearray $locationsy[0],500; + deletearray $alreadygoneto[0],500; + setarray $locationsname$[0],"Airport"; + setarray $locationsname$[1],"Prontera"; + setarray $locationsname$[2],"Payon"; + setarray $locationsname$[3],"Aldebaran"; + setarray $locationsname$[4],"Alberta"; + setarray $locationsname$[5],"Geffen"; + setarray $locationsname$[6],"Morocc"; + setarray $locationsname$[7],"Glast Heim"; + setarray $locationsname$[8],"Umbala"; + setarray $locationsname$[9],"Comodo"; + setarray $locationsname$[10],"Amatsu"; + setarray $locationsname$[11],"Niflheim"; + setarray $locationsname$[12],"Lutie"; + setarray $locationsname$[13],"Louyang"; + setarray $locationsname$[14],"Gonryun"; + setarray $locationsname$[15],"Yuno"; + setarray $locationsname$[16],"Ant Hell"; + setarray $locationsname$[17],"Jawaii"; + setarray $locationsname$[18],"Orc Village"; + setarray $locationsname$[19],"Mjolnir Coal Mines"; + setarray $locationsname$[20],"Gefenia Ruins"; + setarray $locationsname$[21],"Ayothaya"; + setarray $locationsname$[22],"Lighthalzen"; + setarray $locationsname$[23],"Juperos"; + setarray $locationsmap$[0],"airport"; + setarray $locationsmap$[1],"prt_fild08"; + setarray $locationsmap$[2],"pay_fild08"; + setarray $locationsmap$[3],"mjolnir_12"; + setarray $locationsmap$[4],"pay_fild03"; + setarray $locationsmap$[5],"gef_fild00"; + setarray $locationsmap$[6],"moc_fild10"; + setarray $locationsmap$[7],"glast_01"; + setarray $locationsmap$[8],"umbala"; + setarray $locationsmap$[9],"comodo"; + setarray $locationsmap$[10],"amatsu"; + setarray $locationsmap$[11],"niflheim"; + setarray $locationsmap$[12],"xmas"; + setarray $locationsmap$[13],"louyang"; + setarray $locationsmap$[14],"gonryun"; + setarray $locationsmap$[15],"yuno"; + setarray $locationsmap$[16],"moc_fild04"; + setarray $locationsmap$[17],"jawaii"; + setarray $locationsmap$[18],"gef_fild10"; + setarray $locationsmap$[19],"mjolnir_02"; + setarray $locationsmap$[20],"gefenia01"; + setarray $locationsmap$[21],"ayothaya"; + setarray $locationsmap$[22],"lighthalzen"; + setarray $locationsmap$[23],"jupe_gate"; + setarray $locationsx[0],148; + setarray $locationsx[1],206; + setarray $locationsx[2],159; + setarray $locationsx[3],62; + setarray $locationsx[4],194; + setarray $locationsx[5],50; + setarray $locationsx[6],163; + setarray $locationsx[7],196; + setarray $locationsx[8],187; + setarray $locationsx[9],203; + setarray $locationsx[10],115; + setarray $locationsx[11],132; + setarray $locationsx[12],232; + setarray $locationsx[13],36; + setarray $locationsx[14],82; + setarray $locationsx[15],58; + setarray $locationsx[16],209; + setarray $locationsx[17],248; + setarray $locationsx[18],158; + setarray $locationsx[19],76; + setarray $locationsx[20],98; + setarray $locationsx[21],183; + setarray $locationsx[22],99; + setarray $locationsx[23],46; + setarray $locationsy[0],45; + setarray $locationsy[1],280; + setarray $locationsy[2],92; + setarray $locationsy[3],381; + setarray $locationsy[4],182; + setarray $locationsy[5],365; + setarray $locationsy[6],172; + setarray $locationsy[7],327; + setarray $locationsy[8],98; + setarray $locationsy[9],76; + setarray $locationsy[10],79; + setarray $locationsy[11],241; + setarray $locationsy[12],308; + setarray $locationsy[13],279; + setarray $locationsy[14],96; + setarray $locationsy[15],194; + setarray $locationsy[16],326; + setarray $locationsy[17],175; + setarray $locationsy[18],95; + setarray $locationsy[19],363; + setarray $locationsy[20],21; + setarray $locationsy[21],104; + setarray $locationsy[22],240; + setarray $locationsy[23],19; + goto resetgoneto; + end; + +setrandomitin: + set $@settervariable,$@settervariable + 1; + setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1); + if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1; + if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin; + setarray $alreadygoneto[$locationn[$@settervariable]], 1; + if($@settervariable<12)goto setrandomitin; + end; + +resetgoneto: + deletearray $alreadygoneto[0], 500; + set $@currenttime, 0; + goto setrandomitin; + +OnMinute00: + set $@currenttime, 1; + callfunc "F_Itinreset",12,1,2; + +OnMinute03: + set $destination,250; + end; + +OnMinute05: + set $@currenttime, 2; + callfunc "F_Itinreset",1,2,3; + +OnMinute08: + set $destination,250; + end; + +OnMinute10: + set $@currenttime, 3; + callfunc "F_Itinreset",2,3,4; + +OnMinute13: + set $destination,250; + end; + +OnMinute15: + set $@currenttime, 4; + callfunc "F_Itinreset",3,4,5; + +OnMinute18: + set $destination,250; + end; + +OnMinute20: + set $@currenttime, 5; + callfunc "F_Itinreset",4,5,6; + +OnMinute23: + set $destination,250; + end; + +OnMinute25: + set $@currenttime, 6; + callfunc "F_Itinreset",5,6,7; + +OnMinute28: + set $destination,250; + end; + +OnMinute30: + set $@currenttime, 7; + callfunc "F_Itinreset",6,7,8; + +OnMinute33: + set $destination,250; + end; + +OnMinute35: + set $@currenttime, 8; + callfunc "F_Itinreset",7,8,9; + +OnMinute38: + set $destination,250; + end; + +OnMinute40: + set $@currenttime, 9; + callfunc "F_Itinreset",8,9,10; + +OnMinute43: + set $destination,250; + end; + +OnMinute45: + set $@currenttime, 10; + callfunc "F_Itinreset",9,10,11; + +OnMinute48: + set $destination,250; + end; + +OnMinute50: + set $@currenttime, 11; + callfunc "F_Itinreset",10,11,12; + +OnMinute53: + set $destination,250; + end; + +OnMinute55: + set $@currenttime, 12; + callfunc "F_Itinreset",11,12,1; + +OnMinute58: + set $destination,250; + end; +} + +function script F_Porter { + if($destination==getarg(0))goto Board; + if($destination!=getarg(0))goto Notime; + +Board: + mes "^FF0000[Porter]^000000"; + mes "The plane is currently ported. Would you like to board?"; + next; + menu "Yes.",L_Yes,"No.",L_Nope,"View Hourly Itinerary.",Itin; + +L_Yes: + if($destination!=getarg(0))goto Notime; + warp "airplane", 105, 72; + specialeffect2 501; +L_Nope: + mes "^FF0000[Porter]^000000"; + mes "Have a good day. Thank you for traveling with Airship."; + close; + +Notime: + mes "^FF0000[Porter]^000000"; + if(sex==0) mes "Sorry, ma'am, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; + if(sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; + next; + menu "Yes, please.",Itin,"No thanks.",L_Nope; + close; + end; + +Itin: + mes "^FF0000[Porter]^000000"; + callfunc "F_Itin"; +} + +airport,153,43,5 script Airport Porter 774,{ + callfunc "F_Porter",0; +} +prt_fild08,206,279,5 script Porter#01 774,{ + callfunc "F_Porter",1; +} +gef_fild00,50,364,5 script Porter#02 774,{ + callfunc "F_Porter",5; +} +moc_fild10,163,173,5 script Porter#03 774,{ + callfunc "F_Porter",6; +} +mjolnir_12,61,380,5 script Porter#04 774,{ + callfunc "F_Porter",3; +} +pay_fild08,159,91,5 script Porter#05 774,{ + callfunc "F_Porter",2; +} +pay_fild03,194,181,5 script Porter#06 774,{ + callfunc "F_Porter",4; +} +glast_01,196,326,1 script Porter#07 774,{ + callfunc "F_Porter",7; +} +umbala,188,98,3 script Porter#08 774,{ + callfunc "F_Porter",8; +} +comodo,203,75,8 script Porter#09 774,{ + callfunc "F_Porter",9; +} +amatsu,115,78,8 script Porter#10 774,{ + callfunc "F_Porter",10; +} +niflheim,132,242,5 script Porter#11 774,{ + callfunc "F_Porter",11; +} +xmas,232,309,5 script Porter#12 774,{ + callfunc "F_Porter",12; +} +louyang,35,279,8 script Porter#13 774,{ + callfunc "F_Porter",13; +} +gonryun,82,95,7 script Porter#14 774,{ + callfunc "F_Porter",14; +} +yuno,58,195,4 script Porter#15 774,{ + callfunc "F_Porter",15; +} +moc_fild04,210,326,2 script Porter#16 774,{ + callfunc "F_Porter",16; +} +jawaii,247,174,7 script Porter#17 774,{ + callfunc "F_Porter",17; +} +gef_fild10,159,95,2 script Porter#18 774,{ + callfunc "F_Porter",18; +} +mjolnir_02,76,364,5 script Porter#19 774,{ + callfunc "F_Porter",19; +} +gefenia01,97,22,6 script Porter#20 774,{ + callfunc "F_Porter",20; +} +ayothaya,182,105,5 script Porter#21 774,{ + callfunc "F_Porter",21; +} +lighthalzen,99,241,4 script Porter#22 774,{ + callfunc "F_Porter",22; +} +jupe_gate,46,18,7 script Porter#23 774,{ + callfunc "F_Porter",23; +} +airport,141,43,5 script Itinerary Schedule 837,{ + mes "^FF0000[Itinerary]^000000"; + callfunc "F_Itin"; +} + +airplane,102,68,5 script Docker 852,{ + if($destination == 250) goto Nowhere; + mes "^FF0000[Airplane Attendant]^000000"; + if($destination == 250)goto Notime; + set @dockky, $destination; + if($destination != 250)mes "We are currently docked at "+$locationsname$[$destination]+". Would you like to exit?"; + next; + menu "Yes.",Lyes,"No.",Lnope; + +Lyes: + if($destination == 250)goto Notime; + if($destination != @dockky)goto Notime; + warp $locationsmap$[$destination], $locationsx[$destination], $locationsy[$destination]; + specialeffect2 501; + +Lnope: + mes "^FF0000[Airplane Attendant]^000000"; + mes "Have a good day. Thank you for traveling with us."; + close; + +Notime: + mes "^FF0000[Airplane Attendant]^000000"; + if(sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait."; + if(sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait."; + close; + +Nowhere: + mes "^FF0000[Airplane Attendant]^000000"; + mes "We're currently in air. Please wait until the pilot has announced that we have safely landed."; + close; +} + +function script F_Itin { + //This is the itinerary's function. It should work well enough. + if($@currenttime==0)mes "Try again later. A recent server reboot or rehash has messed the itinerary up for a bit."; + if($@currenttime==0)close; + if($@currenttime==0)end; + set @tempo, 0; + set @tempo, $@currenttime - 1; + goto seta; + close; + +seta: + set @tempo, @tempo + 1; + set @time, gettime(3); + set @minutes, 5 * @tempo - 5; + set @minutess, 5 * @tempo - 2; + if(@minutes<10)set @minutes$, "0" + @minutes; + if(@minutes>9)set @minutes$, @minutes; + if(@minutess<10)set @minutess$, "0" + @minutess; + if(@minutess>9)set @minutess$, @minutess; + if(@time<12)set @time$,@time; + if(@time==12)set @time$,12; + if(@time>12)set @time$,@time - 12; + if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$ + ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@tempo<12)goto seta; + set @tempo, 0; + goto setb; + +setb: + if($@currenttime - 1==@tempo)goto setc; + set @tempo, @tempo + 1; + set @time, gettime(3) + 1; + set @minutes, 5 * @tempo - 5; + set @minutess, 5 * @tempo - 2; + if(@minutes<10)set @minutes$, "0" + @minutes; + if(@minutes>9)set @minutes$, @minutes; + if(@minutess<10)set @minutess$, "0" + @minutess; + if(@minutess>9)set @minutess$, @minutess; + if(@time<12)set @time$,@time; + if(@time==12)set @time$,12; + if(@time>12)set @time$,@time - 12; + if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + goto setb; + +setc: + close; + end; +} + +function script F_Itinreset { + setarray $alreadygoneto[$locationn[getarg(0)]], 0; + goto sest; +sest: + setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1); + if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest; + setarray $alreadygoneto[$locationn[getarg(0)]], 1; + set $destination,$locationn[$@currenttime]; + announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16; + end; +} diff --git a/npc/custom/etc/bank.txt b/npc/custom/etc/bank.txt new file mode 100644 index 000000000..7003e2f65 --- /dev/null +++ b/npc/custom/etc/bank.txt @@ -0,0 +1,119 @@ +//===== rAthena Script ======================================= +//= Banker Script +//===== By: ================================================== +//= Syrus22 (1.0) +//===== Current Version: ===================================== +//= 2.0 +//===== Compatible With: ===================================== +//= Any rAthena version with Account variables. +//===== Description: ========================================= +//= An account wide Banker to store Zeny +//===== Additional Comments: ================================= +//= Syrus22 - There's an optional transaction fee at the top of +//= the script. To use it simply change the first set command +//= to set the cost variable to whatever you want the fee to be. +//= Version 2.0: Optimized and brought the script up to standard. [Jguy] +//============================================================ + +prontera,132,217,5 script Banker 109,{ +set @cost,500; +mes "[Banker]"; +mes "Welcome to the First Bank of Prontera. How can I help you today?"; +next; +switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's my current balance?:Cancel")) { + case 1: + mes "[Banker]"; + mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny."; + next; + if (@cost > 0) { + mes "[Banker]"; + mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!"; + next; + } + input @deposit; + if (@deposit < 1) { + mes "Make sure you ask me to deposit a real amount."; + close; + } + else if (@deposit > Zeny) { + mes "It does not appear like you have the amount of zeny you're trying to deposit!"; + close; + } + else if (@deposit > (Zeny - @cost)) { + mes "You need " + @cost + " Zeny to cover the transaction fee!"; + close; + } + else { + set Zeny,Zeny - @deposit; + set Zeny,Zeny - @cost; + set #bankstorage,#bankstorage + @deposit; + mes "[Banker]"; + mes "Thank you very much... Your zeny is in good hands."; + close; + } + + case 2: + mes "[Banker]"; + mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny"; + next; + if (@cost > 0) { + mes "[Banker]"; + mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!"; + next; + } + input @withdrawl; + if (@withdrawl < 1) { + mes "Please don't play games. I need a real amount to withdraw."; + close; + } + else if (@withdrawl > #bankstorage) { + mes "I show you only have ^00FF00" + #bankstorage +"^000000 zeny in your account!"; + close; + } + else if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) { + mes "[Banker]"; + mes "You don't have the Zeny for the transaction fee right now. Would you like me to take the fee directly from your withdrawl?"; + next; + switch(select("Yes please.:No, Thanks")){ + case 1: + mes "[Banker]"; + mes "Removing " + @cost + " from your withdrawl to cover the deposit fee..."; + set @withdrawl,@withdrawl - @cost; + set #bankstorage,#bankstorage - @cost; + set @cost,0; + next; + set Zeny,Zeny - @cost; + set Zeny,Zeny + @withdrawl; + set #bankstorage,#bankstorage - @withdrawl; + mes "[Banker]"; + mes "There's your Zeny. Have a good day."; + close; + case 2: + mes "[Banker]"; + mes "Very well... come again soon."; + close; + } + } + else { + set Zeny,Zeny - @cost; + set Zeny,Zeny + @withdrawl; + set #bankstorage,#bankstorage - @withdrawl; + mes "[Banker]"; + mes "There's your Zeny. Have a good day."; + close; + } + case 3: + mes "[Banker]"; + mes "Hmmmm let me check some paper work."; + next; + mes "*Rustle, Rustle*"; + next; + mes "[Banker]"; + mes "You currently have " + #bankstorage + " Zeny in your account."; + close; + case 4: + mes "[Banker]"; + mes "Very well... come again soon."; + close; + } +} // EOF \ No newline at end of file diff --git a/npc/custom/etc/bank_kafra.txt b/npc/custom/etc/bank_kafra.txt new file mode 100644 index 000000000..3c9cba5c4 --- /dev/null +++ b/npc/custom/etc/bank_kafra.txt @@ -0,0 +1,116 @@ +//===== rAthena Script ======================================= +//= The 2nd Bank of Prontera (with daily 0.01% income!) +//===== By: ================================================== +//= Lupus (1.0) +//===== Current Version: ===================================== +//= 1.2a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= A bank which has an interest % +//===== Additional Comments: ================================= +// Look for this formula and setup your Bank daily % interest +// #kafrabank/1000 = 0.1% of interest per day +// #kafrabank/100 = 1% of interest per day +// #kafrabank/10 = 10% of interest per day +// +// 1.1 Added log of bank operation -> logmes "some info"; +// 1.2 Set max income to 100,000z. It would help to avoid +// zeny exploits when you change DATE at your server +// 1.2a Corrected bad duplicate names. (bugreport:921) [Samuray22] +//============================================================ + +- script Bank Clerk::bankg 833,{ + mes"[Maniss]"; + mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!"; + + set @kb_int,(gettime(6)*31)+gettime(5); //today's number + set @income,0; + //calculate % + if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday; + set @income,(#kafrabank/1000)*(@kb_int-#kb_int); //@income == % of the sum + //max income constant: + if (@income>100000) set @income,100000; +L_NoIncomeToday: + set #kb_int,@kb_int; //reset days timer + + if(#kafrabank==0) mes "We could open you an account."; + if(@income>0) mes "Today's income: ^135445" + @income + "^000000 zeny."; + set #kafrabank,#kafrabank+@income; + if(#kafrabank>0) mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; + mes "What would you like?"; + next; + if(#kafrabank==0) menu "-Open an account",-,"-Quit",B_EXIT2; + if(#kafrabank>0) menu "-Deposit money",-,"-Withdraw money",M_WITHDRAW,"-Quit",B_EXIT2; + + mes"[Maniss]"; + mes "Please, tell me how much zeny you would like to deposit."; + next; + if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; + + if(@kafrabank<1000) goto L_LESS_1000; + if(@kafrabank>zeny) goto L_NOT_ENOUGH; + set zeny,zeny-@kafrabank; + set #kafrabank,#kafrabank+@kafrabank; + mes"[Maniss]"; + mes "You've made a deposit of ^135445" + @kafrabank + "z^000000."; + //we log these zeny operations into the log db + logmes "Bank %: " + @income +"z, Deposit: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; + goto B_EXIT; + +M_WITHDRAW: + if(#kafrabank==0) goto L_ZERO_ACCOUNT; + mes"[Maniss]"; + mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; + mes "How much zeny would you like to withdraw?"; + next; + if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; + + if(@kafrabank<1) goto B_EXIT2; + if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH; + set #kafrabank,#kafrabank-@kafrabank; + set zeny,zeny+@kafrabank; + mes"[Maniss]"; + mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here..."; + //we log these zeny operations into the log db + logmes "Bank %: " + @income +"z, Withdraw: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; + goto B_EXIT; + +L_NOT_ENOUGH: + mes"[Maniss]"; + mes "You don't have enough zeny for this operation."; + next; + goto B_EXIT2; + +L_ZERO_ACCOUNT: + mes"[Maniss]"; + mes "You don't have any zeny on your account!"; + next; + goto B_EXIT2; + +L_TOO_BIG_AMOUNT: + mes"[Maniss]"; + mes "Sorry. The maximum deposit you can make on a time is 10,000,000 zeny."; + next; + goto B_EXIT2; + +L_LESS_1000: + mes"[Maniss]"; + mes "We're sorry, the minimum amount of zeny you can deposit is 1,000 zeny."; + next; + goto B_EXIT2; + +B_EXIT: + mes "Very well... Come again soon!"; + next; + +B_EXIT2: + mes"[Maniss]"; + mes "Thank you for using our Bank Service. We hope to see you again soon."; + close; +} + +prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 833 +geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 833 +izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 833 +morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 833 diff --git a/npc/custom/etc/blackjack.txt b/npc/custom/etc/blackjack.txt new file mode 100644 index 000000000..8362ac5ab --- /dev/null +++ b/npc/custom/etc/blackjack.txt @@ -0,0 +1,347 @@ +//===== rAthena Script ======================================= +//= Black Jack +//===== By: ================================================== +//= kobra_k88 +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Black Jack card game. Gameplay based off standard casino +//= black jack rules. Dealer must have at least 17 to stay and will +//= automatically stay at 17 and up. Player must have at least +//= 13 to stay. Aces counted as 11 or 1. Option to "Double Down". +//= Currently does not allow for "insurance", or "splitting" +//= of pairs. +//===== Additional Comments: ================================= +//= +//============================================================ + +cmd_in02,188,89,1 script Black Jack Dealer 57,{ + mes "[Dealer]"; + mes "Hello there! Would you like to play a game of Black Jack?"; +M_Menu: + next; + menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End; + +M_0: + mes "[Dealer]"; + mes "What would you like to know?"; +sM_Menu0: + next; + menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c, + "Ace value.",sM_0d, "Nothing.",M_Menu; + +sM_0a: + mes "[Dealer]"; + mes "Black Jack is a card game in which the goal is to get 21, or as"; + mes "close to 21 points as possible, without going over 21."; + next; + mes "[Dealer]"; + mes "Before the game starts, the player must make a bet. Once the bet"; + mes "has been made, both the dealer and the player are dealt 2 cards"; + mes "each. Depending on what cards you have, you can choose to ^5533FF'stay'^000000,"; + mes "or you can choose to ^5533FF'pull'^000000."; + next; + mes "[Dealer]"; + mes "When you choose to 'stay', you are telling the dealer that you don't"; + mes "need anymore cards. This allows the dealer to pull if he/she"; + mes "wants to. In order to stay, you must have ^FF3355at least 13 points^000000. The"; + mes "dealer can only stay when he/she has^FF3355 17 points or more^000000."; + next; + mes "[Dealer]"; + mes "When you choose to 'pull', you are telling the dealer that you want"; + mes "another card. By pulling more cards you can increase your point"; + mes "total. As long has you have ^FF3355less than 21^000000 points you can pull a"; + mes "card from the deck."; + goto sM_Menu0; +sM_0b: + mes "[Dealer]"; + mes "There are 3 ways to win and loose at Black Jack."; + next; + mes "[Dealer]"; + mes "1.) At the end of a Black Jack round, if you have more points"; + mes "than the dealer you will win the round. Conversely if you have"; + mes "less points than the dealer you will loose."; + next; + mes "[Dealer]"; + mes "2.) If you pull a card that makes your point total go over 21 you"; + mes "will automatically loose the round. This is called a ^5533FF'bust'^000000. If"; + mes "the dealer busts then you will win the round."; + next; + mes "[Dealer]"; + mes "3.) If you have a point total of 21 with the first 2 cards, you"; + mes "will automatically win the round. This is called a ^5533FF'Black Jack'^000000"; + mes "and happens when you get an 'Ace' and a '10 valued' card. If the"; + mes "dealer gets a Black Jack he/she will automatically win the round."; + next; + mes "[Dealer]"; + mes "4.) Besides winning and loosing, you can tie with the dealer. If"; + mes "both you and the dealer have the same point total at the end of a"; + mes "round, this will result in a tie with no winner and no loss or gain"; + mes "in money."; + next; + mes "[Dealer]"; + mes "This is called a ^5533FF'push'^000000 with the dealer. This also"; + mes "applies to both you and the dealer having Black Jack at the same"; + mes "time."; + goto sM_Menu0; +sM_0c: + mes "[Dealer]"; + mes "The 'Double Down' option allows you to double your current bet,"; + mes "but with the drawback that you will only be able to pull one"; + mes "additional card. This option is only available at the beggining of"; + mes "each round."; + next; + mes "[Dealer]"; + mes "An example of when doubling down is useful, is when"; + mes "your first 2 cards give you a point total of 11. You have a good"; + mes "chance of getting 21 or 20 with the next card that you draw. This"; + mes "would be a good hand to double down on."; + goto sM_Menu0; +sM_0d: + mes "[Dealer]"; + mes "The 'Ace' card is a unique card in the game of Black Jack because"; + mes "it can have 2 values. An Ace can be counted as either 11 points,"; + mes "or just 1 point. For example if you had an Ace and a 4, that would"; + mes "give you either 15 or 5 points."; + next; + mes "[Dealer]"; + mes "If you decided to stay, the Ace would automatically be counted as"; + mes "11 points to give you 15 points total."; + next; + mes "[Dealer]"; + mes "If you had decided to pull and received a 9, the ace would"; + mes "automatically be counted as 1 point to give you a total of 14"; + mes "points. If the Ace was counted as 11 points, you would have a"; + mes "point total over 21 and would have lost."; + next; + mes "[Dealer]"; + mes "It is because of the flexibilty you have with the 'Ace' that makes"; + mes "it the most powerfull card in the game."; + goto sM_Menu0; +M_End: + mes "[Dealer]"; + mes "Feel free to come back anytime"; + close; + +//================ +L_Play: + mes "[Dealer]"; + mes "Please place your bets..."; + next; + menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End; + +M_1a: + if(Zeny < 2) goto sL_NotEnuf; + set @bet, 2; + goto L_Cont0; +M_1b: + if(Zeny < 10) goto sL_NotEnuf; + set @bet, 10; + goto L_Cont0; +M_1c: + if(Zeny < 20) goto sL_NotEnuf; + set @bet, 20; + goto L_Cont0; +M_1d: + if(Zeny < 100) goto sL_NotEnuf; + set @bet, 100; + goto L_Cont0; + +sL_NotEnuf: + mes "[Dealer]"; + mes "I'm sorry but you don't have enough zeny to make that bet."; + close; + +L_Cont0: + mes "(the cards are being dealt)"; + next; + deletearray $@card[0],13; + set @dealerTurn, 0; + set @numP, 0; + set @numD, 0; + set @pAce, 0; + set @dAce, 0; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; + callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; + +//============== +L_Start: + callsub sF_GetTot; + + mes "- Here are the ^FF5533DEALER'S^000000 cards:"; + if (@numD==2) callsub sF_D2cards; + if (@numD==3) callsub sF_D3cards; + if (@numD==4) callsub sF_D4cards; + if (@numD==5) callsub sF_D5cards; + mes " The DEALER has: ^FF5533"+@dealTot+"^000000"; + mes " "; + mes "- Here are ^5533FFYOUR^000000 cards:"; + if (@numP==2) callsub sF_P2cards; + if (@numP==3) callsub sF_P3cards; + if (@numP==4) callsub sF_P4cards; + if (@numP==5) callsub sF_P5cards; + if(@pAce != 1 || @playTot == 21) mes " YOU have: ^5533FF" +@playTot+ "^000000"; + if(@pAce == 1 && @playTot != 21) mes " You have: ^5533FF" +@playTot+ "^000000, or ^5533FF" +(@playTot-10)+ "^000000"; + next; + if(@playTot==21 && @dealTot==21) goto sL_Push; + if(@numP==2 && @playTot == 21) goto sL_Win; + if(@numD==2 && @dealTot == 21) goto sL_Lose; + if(@playTot > 21) goto sL_Lose; + if(@dealTot > 21) goto sL_Win; + if(@numP==2 && @dealerTurn==0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay, "Double Down",M_Double; + if(@dealerTurn == 0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay; + +M_Stay: + mes "[Dealer]"; + if(@playTot < 13) goto sL_PlayToLow; + if(@dealTot > 16) mes "The Dealer stays."; + if(@dealTot > 16 || @numD == 5) goto L_Check; + mes "The Dealer is going to pull"; + next; + callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; + set @dealerTurn, 1; + goto L_Start; + +sL_PlayToLow: + mes "I'm sorry but you do not have a high enough total to stay. You must pull."; + next; + goto M_Hit; + +M_Hit: + if(@numP == 5) goto M_Stay; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + goto L_Start; +M_Double: + mes "[Dealer]"; + mes "Player has chosen to Double Down. You're current bet will be"; + mes "doubled, and you will only be able to pull 1 extra card."; + next; + set @dealerTurn, 1; + set @bet, @bet*2; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + goto L_Start; + +//============= +L_Check: + next; + if(@playTot < @dealTot) goto sL_Lose; + if(@playTot == @dealTot) goto sL_Push; + +sL_Win: + mes "[Dealer]"; + mes "Congratulations, you've won!"; + next; + set Zeny, Zeny + @bet; + goto L_Play; +sL_Lose: + mes "[Dealer]"; + mes "I'm sorry but you've lost."; + set Zeny, Zeny - @bet; + next; + goto L_Play; +sL_Push: + mes "[Dealer]"; + mes "Its a push. You tied with the Dealer."; + next; + goto L_Play; + + +//================================== + // Sub function for dealing/pulling the cards +sF_GetCards: + set @rnd, rand(1,13); + if($@card[@rnd] == 4) goto sF_GetCards; + set $@card[@rnd], $@card[@rnd] + 1; + set getarg(1), @rnd; + if(getarg(1) > 10) set getarg(1), 10; + if(getarg(1) == 1 && getarg(3) < 1) set getarg(1), 11; + if(getarg(1) == 11) set getarg(3), 1; + set getarg(2), " " + getarg(1) + " "; + if(@rnd == 10) set getarg(2), getarg(1); + if(@rnd == 1) set getarg(2), " A "; + if(@rnd == 11) set getarg(2), " J "; + if(@rnd == 12) set getarg(2), " Q "; + if(@rnd == 13) set getarg(2), " K "; + set getarg(0), getarg(0) + 1; + return; + +//================================== + // Sub function for getting the total score for each hand +sF_GetTot: + set @i, 0; + set @dealTot, 0; + set @playTot, 0; + +GetDealTot: + set @dealTot, @dealTot + @dealCard[@i]; + set @i, @i + 1; + if(@i < @numD) goto GetDealTot; + if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10; + set @i, 0; +GetPlayTot: + set @playTot, @playTot + @playCard[@i]; + set @i, @i + 1; + if(@i < @numP) goto GetPlayTot; + if(@pAce == 1 && @playTot > 21) set @pAce, 2; + if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10; + return; + +//======================================= + // Sub function for displaying the Cards +sF_D2cards: + mes " .-----. .-----. "; + mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | "; + mes " '-----' '-----' "; + return; +sF_P2cards: + mes " .-----. .-----. "; + mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | "; + mes " '-----' '-----' "; + return; +sF_D3cards: + mes " .-----. .-----. .-----. "; + mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + return; +sF_P3cards: + mes " .-----. .-----. .-----. "; + mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + return; +sF_D4cards: + mes " .-----. .-----. .-----. "; + mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + mes " .-----. "; + mes " | "+@dealCard$[3]+" |"; + mes " '-----' "; + return; +sF_P4cards: + mes " .-----. .-----. .-----. "; + mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" |"; + mes " '-----' '-----' '-----' "; + mes " .-----. "; + mes " | "+@playCard$[3]+" |"; + mes " '-----' "; + return; +sF_D5cards: + mes " .-----. .-----. .-----. "; + mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + mes " .-----. .-----. "; + mes " | "+@dealCard$[3]+" | | "+@dealCard$[4]+" | "; + mes " '-----' '-----' "; + return; +sF_P5cards: + mes " .-----. .-----. .-----. "; + mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + mes " .-----. .-----. "; + mes " | "+@playCard$[3]+" | | "+@playCard$[4]+" | "; + mes " '-----' '-----' "; + return; +} diff --git a/npc/custom/etc/floating_rates.txt b/npc/custom/etc/floating_rates.txt new file mode 100644 index 000000000..84d16ba9a --- /dev/null +++ b/npc/custom/etc/floating_rates.txt @@ -0,0 +1,43 @@ +//===== rAthena Script ======================================= +//= Floating Server Rates +//===== By: ================================================== +//= Lupus +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= It's a simply example of setbattleflag +//= This script will change your server rates from 1x to 1.5x every 6 hours +//= Note: It doesn't affect Card granted drops, MVP & Treasure Chests drops ^_- +//= It also doesn't affect CARD drops, because they are just 0.01% +//===== Additional Comments: ================================= +//= You can make incredible scripts with 'setbattleflag'! +//============================================================ + +- script FloatingRates -1,{ +OnInit: +//add any other HOURS +OnHour00: +OnHour06: +OnHour12: +OnHour18: +//------------------- + set $@brate,rand(100,150); + set $@jrate,rand(100,150); + set $@drate,rand(100,150); + //Base exp + setbattleflag("base_exp_rate",$@brate); + //Job exp + setbattleflag("job_exp_rate",$@jrate); + //Drops + setbattleflag("item_rate_common",$@drate); + setbattleflag("item_rate_heal",$@drate); + setbattleflag("item_rate_use",$@drate); + setbattleflag("item_rate_equip",$@drate); + //we don't change card drops rate, because these values won't change them anyway + atcommand "@reloadmobdb"; + + announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060; + end; +} diff --git a/npc/custom/etc/lottery.txt b/npc/custom/etc/lottery.txt new file mode 100644 index 000000000..1b6d9f7ee --- /dev/null +++ b/npc/custom/etc/lottery.txt @@ -0,0 +1,454 @@ +//===== rAthena Script ======================================= +//= Lottery +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.2.1a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== 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,{ +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 "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; + 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; +} diff --git a/npc/custom/etc/market.txt b/npc/custom/etc/market.txt new file mode 100644 index 000000000..b8f39644d --- /dev/null +++ b/npc/custom/etc/market.txt @@ -0,0 +1,39 @@ +//===== rAthena Script ======================================= +//= Market Place +//===== By: ================================================== +//= Lupus +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= This script should move vending crowds from Prontera +//= streets to a suitable market place. Save your traffic 8) +//===== Additional Comments: ================================= +//= 1.1 Optimized it, Removed labels. [Spre] +//============================================================ + +prontera,144,174,3 script Market Place 722,{ + mes"[Market Place]"; + mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000."; + next; + if (select("Yes Please:No") == 2) { + close; + } + // I didn't see the need to check and show venders.... Since it didnt even work + warp "gon_test",27+rand(5),98; + end; +} + +gon_test,73,103,0 script MarketExit 45,1,2,{ + warp "prontera",155,177-rand(10); + end; +} + +//disable vending in Prontera +prontera mapflag novending +prt_in mapflag novending +//Market Place settings +gon_test mapflag noteleport +gon_test mapflag nomemo +gon_test mapflag nobranch diff --git a/npc/custom/etc/monster_arena.txt b/npc/custom/etc/monster_arena.txt new file mode 100644 index 000000000..a6f52846c --- /dev/null +++ b/npc/custom/etc/monster_arena.txt @@ -0,0 +1,901 @@ +//===== rAthena Script ======================================= +//= Monster vs Monster +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Players train monsters and battle other players. +//= Experience can be earned and monsters upgraded. +//===== Additional Comments: ================================= +//= To add monsters, add lines after the commends labled: +//= '// #. ---Change to Add Monsters--- //' +//= There are 6 steps to add a monster at the moment. +//= Added Duel Room +//= --------------------------------------------------------- +//= Script is messy! Be careful! +//= 1.1.2 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious] +//= 1.1.3 Removed Duplicate Names [Silent] +//= 1.1.4 Fixed SummonPad syntax. [KarLaeda] +//= 1.1.5 Some cleanup & optimization [KarLaeda] +//= 1.2 Replaced effect numerics with constants. [Samuray22] +//============================================================ + +// Entrance // +prontera,158,193,6 script Monster Arena 702,{ + mes "[Monster Arena]"; + mes "Would you like to enter the Monster Arena?"; + mes "Currently ^FF0000" + getmapusers("gon_test") + "^000000 players"; + mes "^FF0000Note:^000000 Pecos, Falcons and Carts will be lost on entry."; +L_Menu: + next; + menu "Enter",-,"Information",L_Info,"Cancel",L_Exit; + + set @marena,1; + savepoint "gon_test",56,99; + set @battle,0; + warp "gon_test",57,99; + close; + +L_Exit: + mes "[Monster Arena]"; + mes "Come back any time."; + close; + +L_Info: + mes "[Monster Arena]"; + mes "You must purchase a pet from the Monster Tamer to start fighting."; + next; + mes "[Monster Arena]"; + mes "Then talk to the Usher and tell him you would like to compete."; + next; + mes "[Monster Arena]"; + mes "Talk to the referee to summon your monster."; + mes "Once your monster has fought, you must talk to the Usher again and choose to spectate."; + next; + mes "[Monster Arena]"; + mes "Talk to the Monster Trainer, he will ask you to heal your pet."; + next; + mes "[Monster Arena]"; + mes "To do this, click the Nurse repearedly until it says your pet is healed."; + next; + mes "[Monster Arena]"; + mes "The more monsters you kill, the more exp you get and the quicker you can upgrade."; + next; + mes "[Monster Arena]"; + mes "The stronger your monster is, the longer it will take to summon again."; + + goto L_Menu; +} + +// Monster Summon Function // +function script monstersummon { + // 1. ---Change to Add Monsters--- // + if (#monster == 10) summon strcharinfo(0) + "'s Poring",1002, "OnPoringKilled"; + if (#monster == 20) summon strcharinfo(0) + "'s Fabre",1007, "OnFaberKilled"; + if (#monster == 30) summon strcharinfo(0) + "'s Lunatic",1063, "OnLunaticKilled"; + if (#monster == 31) summon strcharinfo(0) + "'s Drops",1113, "OnDropsKilled"; + if (#monster == 32) summon strcharinfo(0) + "'s Picky",1049, "OnPickyKilled"; + if (#monster == 40) summon strcharinfo(0) + "'s ChonChon",1011, "OnChonChonKilled"; + if (#monster == 41) summon strcharinfo(0) + "'s Super Picky",1050, "OnSPickyKilled"; + if (#monster == 42) summon strcharinfo(0) + "'s Willow",1010, "OnWillowKilled"; + if (#monster == 50) summon strcharinfo(0) + "'s Roda Frog",1012, "OnRodaKilled"; + if (#monster == 51) summon strcharinfo(0) + "'s Condor",1009, "OnCondorKilled"; + if (#monster == 60) summon strcharinfo(0) + "'s Thief Bug Larva",1051, "OnThiefKilled"; + if (#monster == 70) summon strcharinfo(0) + "'s Savage Babe",1167, "OnSavageKilled"; + if (#monster == 80) summon strcharinfo(0) + "'s Familiar",1005, "OnFamiliarKilled"; + if (#monster == 81) summon strcharinfo(0) + "'s Hornet",1004, "OnHornetKilled"; + if (#monster == 90) summon strcharinfo(0) + "'s Desert Wolf Puppy",1107, "OnPuppyKilled"; + if (#monster == 91) summon strcharinfo(0) + "'s Spore",1014, "OnSporeKilled"; + if (#monster == 92) summon strcharinfo(0) + "'s Rocker",1052, "OnRockerKilled"; + if (#monster == 100) summon strcharinfo(0) + "'s Skeleton",1076, "OnSkeletonKilled"; + if (#monster == 101) summon strcharinfo(0) + "'s Plankton",1161, "OnPlanktonKilled"; + if (#monster == 102) summon strcharinfo(0) + "'s Antonio",1247, "OnAntonioKilled"; + if (#monster == 103) summon strcharinfo(0) + "'s Thief Bug Female",1053, "OnThiefFemaleKilled"; + close; +} + +// Referee // +- script monsterreferee 61,{ + if (@fighting == 1) end; + if (@battle == 1) goto L_Start; + end; + +L_Start: + mes "[Referee]"; + mes "Your monster is:"; + + // 2. ---Change to Add Monsters--- // + if (#monster == 10) mes "Poring"; + if (#monster == 20) mes "Faber"; + if (#monster == 30) mes "Lunatic"; + if (#monster == 31) mes "Drops"; + if (#monster == 32) mes "Picky"; + if (#monster == 40) mes "ChonChon"; + if (#monster == 41) mes "Super Picky"; + if (#monster == 42) mes "Willow"; + if (#monster == 50) mes "Roda Frog"; + if (#monster == 51) mes "Condor"; + if (#monster == 60) mes "Thief Bug Larva"; + if (#monster == 70) mes "Savage Babe"; + if (#monster == 80) mes "Familiar"; + if (#monster == 81) mes "Hornet"; + if (#monster == 90) mes "Desert Wolf Puppy"; + if (#monster == 91) mes "Spore"; + if (#monster == 92) mes "Rocker"; + if (#monster == 100) mes "Skeleton"; + if (#monster == 101) mes "Plankton"; + if (#monster == 102) mes "Antonio"; + if (#monster == 103) mes "Thief Bug Female"; + + mes "Would you like to fight?"; + next; + menu "Fight",-,"Cancel",L_Exit; + + set @fighting,1; + set #heal,1; + set @special,rand (100); // Chance of special summon + if (@special == 1) goto Special1; + if (@special == 2) goto Special2; + if (@special == 3) goto Special3; + if (@special == 4) goto Special4; + if (@special == 5) goto Special5; + + callfunc "monstersummon"; + close; + + // Special Summons // +Special1: + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + close; + +Special2: + summon strcharinfo(0) + "'s Mastering",1090, "OnSpecialKilled"; + close; + +Special3: + summon strcharinfo(0) + "'s Eclipse",1093, "OnSpecialKilled"; + close; + +Special4: + summon strcharinfo(0) + "'s Dragon Fly",1091, "OnSpecialKilled"; + close; + +Special5: + summon strcharinfo(0) + "'s Toad",1089, "OnSpecialKilled"; + close; + +L_Exit: + mes "[Referee]"; + mes "Alright"; + close; +} +gon_test,56,91,6 duplicate(monsterreferee) Referee#01 61 + + +// Usher // +gon_test,58,94,6 script Usher 86,{ + set @marena,1; + mes "[Usher]"; + mes "What would you like to do?"; + next; + menu "^0000FFSpectate",L_Spec,"^FF0000Compete^000000",-,"Return to Town",L_Exit,"Cancel",L_Cancel; + + if (#monster == 0) goto L_NoMon; + if (#heal == 1) goto L_Heal; + + if (#monster < 40) goto L_Low; + if (#monster > 30 && #monster < 80) goto L_Med; + if (#monster > 70) goto L_High; + +L_Low: + menu "Level 1-3",L_1to3,"^FF0000All Levels",L_High; + close; + +L_Med: + menu "Level 4-7",L_4to6,"^FF0000All Levels",L_High; + close; + +L_High: + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",72,87; + end; + +L_4to6: + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",57,86; + end; + +L_1to3: + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",43,87; + end; + +L_Exit: + close2; + savepoint "prontera",149,186; + set @battle,0; + atcommand strcharinfo(0) + "@option 0 0 0"; + warp "prontera",149,186; + end; + +L_Spec: + close2; + savepoint "gon_test",56,99; + set @battle,0; + atcommand strcharinfo(0) + "@option 0 0 0"; + warp "gon_test",57,99; + end; + +L_NoMon: + mes "[Usher]"; + mes "You haven't got a monster, you can only spectate."; + close; + +L_Heal: + mes "[Usher]"; + mes "You have to heal your monster before you can fight again."; + close; + +L_Cancel: + close; +} + +// Monster Trainer // +gon_test,52,103,6 script Monster Trainer 87,{ + mes "[Monster Trainer]"; + if (#monster != 0) goto L_Mon; + + mes "Welcome to the monster arena, would you like to start training?"; + next; + menu "Yes",-,"No",L_Exit; + + mes "[Monster Trainer]"; + mes "New trainers may only start with Porings."; + mes "They cost 1000z, Would you like to buy one?"; + next; + menu "Yes",-,"No",L_Exit; + + if (zeny < 1000) goto L_NoZeny; + set zeny,zeny-1000; + set #monster,10; + mes "[Monster Trainer]"; + mes "Congratulations!"; + mes "When your Poring earns enough experience, talk to me to upgrade."; + close; + +L_Mon: + mes "Welcome back, " + strcharinfo(0) + "."; + mes "Your monster has " + #monpoints + " exp points."; + next; + if (@fighting == 1) goto L_Heal; + menu "Upgrade Monster",L_Upgrade,"Sell Experience",L_Sell,"^FF0000Abandon Monster^000000",L_Abandon,"Cancel",L_Exit; + +L_Abandon: + mes "[Monster Trainer]"; + mes "Are you sure you want to abandon your monster?"; + next; + menu "Yes",-,"No",L_Exit; + set #monster,0; + set #monpoints,0; + mes "[Monster Trainer]"; + mes "Monster released into the wild."; + close; + +L_Sell: + mes "[Monster Trainer]"; + mes "You can sell your monster's experience for 100z each."; + next; + menu "Sell",-,"Cancel",L_Exit; + mes "[Monster Trainer]"; + mes "You have: ^FF0000" + #monpoints + "^000000 experience points"; + mes "How many would you like to sell?"; + next; + input @sellexp; + if (@sellexp > #monpoints) goto L_NoExp; + set #monpoints,#monpoints-@sellexp; + set @sellearn,100*@sellexp; // Price of exp + set zeny,zeny+@sellearn; + mes "[Monster Trainer]"; + mes "You earned ^0000FF" + @sellearn + "^000000z."; + close; + + +L_NoExp: + mes "[Monster Trainer]"; + mes "You do not have enough experience."; + next; + goto L_Exit; + + // Monster Upgrades // +L_Upgrade: + mes "[Monster Trainer]"; + // 3. ---Change to Add Monsters - May not be required--- // + if (#monster > 1 && #monster < 20) mes "You need 10 exp points to upgrade your monster."; + if (#monster > 19 && #monster < 30) mes "You need 20 exp points to upgrade your monster."; + if (#monster > 29 && #monster < 40) mes "You need 40 exp points to upgrade your monster."; + if (#monster > 39 && #monster < 50) mes "You need 80 exp points to upgrade your monster."; + if (#monster > 49 && #monster < 60) mes "You need 160 exp points to upgrade your monster."; + if (#monster > 59 && #monster < 70) mes "You need 320 exp points to upgrade your monster."; + if (#monster > 69 && #monster < 80) mes "You need 640 exp points to upgrade your monster."; + if (#monster > 79 && #monster < 90) mes "You need 1280 exp points to upgrade your monster."; + if (#monster > 89 && #monster < 100) mes "You need 2560 exp points to upgrade your monster."; + next; + menu "Continue",-,"Cancel",L_Exit; + mes "[Monster Trainer]"; + + // 4. ---Change to Add Monsters - May not be required--- // + if (#monster > 1 && #monster < 20 && #monpoints > 9) goto L_Up1; + if (#monster > 19 && #monster < 30 && #monpoints > 19) goto L_Up2; + if (#monster > 29 && #monster < 40 && #monpoints > 39) goto L_Up3; + if (#monster > 39 && #monster < 50 && #monpoints > 79) goto L_Up4; + if (#monster > 49 && #monster < 60 && #monpoints > 159) goto L_Up5; + if (#monster > 59 && #monster < 70 && #monpoints > 319) goto L_Up6; + if (#monster > 69 && #monster < 80 && #monpoints > 639) goto L_Up7; + if (#monster > 79 && #monster < 90 && #monpoints > 1279) goto L_Up8; + if (#monster > 89 && #monster < 100 && #monpoints > 2559) goto L_Up9; + + mes "Unable to upgrade."; + close; + + // 5. ---Change to Add Monsters--- // +L_Up1: + set #monster,20; + set #monpoints,#monpoints-10; + mes "Upgraded to Fabre!"; + close; + +L_Up2: + mes "Which monster would you like to upgrade to?"; + next; + menu "Lunatic",U_Lunatic,"Drops",U_Drops,"Picky",U_Picky; + +U_Drops: + set #monster,31; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Drops!"; + close; + +U_Picky: + set #monster,32; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Picky!"; + close; + +U_Lunatic: + set #monster,30; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Lunatic!"; + close; + +L_Up3: + mes "Which monster would you like to upgrade to?"; + next; + menu "ChonChon",U_ChonChon,"Super Picky",U_SPicky,"Willow",U_Willow; + +U_ChonChon: + set #monster,40; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to ChonChon!"; + close; + +U_SPicky: + set #monster,41; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to Super Picky!"; + close; + +U_Willow: + set #monster,42; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to Willow!"; + close; + +L_Up4: + mes "Which monster would you like to upgrade to?"; + next; + menu "Condor",U_Condor,"Roda Frog",U_Roda; + +U_Condor: + set #monster,51; + set #monpoints,#monpoints-80; + mes "[Monster Trainer]"; + mes "Upgraded to Condor!"; + close; + +U_Roda: + set #monster,50; + set #monpoints,#monpoints-80; + mes "[Monster Trainer]"; + mes "Upgraded to Roda Frog!"; + close; + +L_Up5: + set #monster,60; + set #monpoints,#monpoints-160; + mes "Upgraded to Thief Bug Larva!"; + close; + +L_Up6: + set #monster,70; + set #monpoints,#monpoints-320; + mes "Upgraded to Savage Babe!"; + close; + +L_Up7: + mes "Which monster would you like to upgrade to?"; + next; + menu "Familiar",U_Familiar,"Hornet",U_Hornet; + +U_Hornet: + set #monster,81; + set #monpoints,#monpoints-640; + mes "[Monster Trainer]"; + mes "Upgraded to Hornet!"; + close; + +U_Familiar: + set #monster,80; + set #monpoints,#monpoints-640; + mes "[Monster Trainer]"; + mes "Upgraded to Familiar!"; + close; + +L_Up8: + mes "[Monster Trainer]"; + mes "Which monster would you like to upgrade to?"; + next; + menu "Desert Wolf Puppy",U_Puppy,"Spore",U_Spore,"Rocker",U_Rocker; + +U_Spore: + set #monster,91; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Spore!"; + close; + +U_Rocker: + set #monster,92; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Rocker!"; + close; + +U_Puppy: + set #monster,90; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Desert Wolf Puppy!"; + close; + +L_Up9: + mes "Which monster would you like to upgrade to?"; + next; + menu "Skeleton",U_Skeleton,"Antonio",U_Antonio,"Plankton",U_Plankton,"Thief Bug Female",U_ThiefFemale; + +U_Plankton: + set #monster,101; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Plankton!"; + close; + +U_Antonio: + set #monster,102; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Antonio!"; + close; + +U_ThiefFemale: + set #monster,103; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Thief Bug Female!"; + close; + +U_Skeleton: + set #monster,100; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Skeleton!"; + close; + +L_NoZeny: + mes "[Monster Trainer]"; + mes "You don't have enough zeny!"; + close; + +L_Exit: + mes "[Monster Trainer]"; + mes "Goodbye."; + close; + +L_Heal: + mes "[Monster Trainer]"; + mes "Your monster needs to heal."; + mes "It will heal faster if you click the nurse faster."; + set #heal,1; + close; +} + +// Kill Trigger // +// 6/Final. ---Change to Add Monsters--- // +gon_test,56,91,6 script OnPoringKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+1; + announce "You killed a Poring - Gained 1 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnFaberKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+2; + announce "You killed a Faber - Gained 2 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnLunaticKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+4; + announce "You killed a Lunatic - Gained 4 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnDropsKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+4; + announce "You killed a Drops - Gained 4 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnPickyKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+4; + announce "You killed a Picky - Gained 4 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnChonChonKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+8; + announce "You killed a ChonChon - Gained 8 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSPickyKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+8; + announce "You killed a Super Picky - Gained 8 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnWillowKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+8; + announce "You killed a Willow - Gained 8 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnRodaKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+16; + announce "You killed a Roda Frog - Gained 16 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnCondorKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+16; + announce "You killed a Condor - Gained 16 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnThiefKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+32; + announce "You killed a Theif Bug Larva - Gained 32 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSavageKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+64; + announce "You killed a Savage Babe - Gained 64 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnFamiliarKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+128; + announce "You killed a Familiar - Gained 128 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnHornetKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+128; + announce "You killed a Hornet - Gained 128 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnPuppyKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+256; + announce "You killed a Desert Wolf Puppy - Gained 256 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnRockerKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+256; + announce "You killed a Rocker - Gained 256 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSporeKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+256; + announce "You killed a Spore - Gained 256 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSkeletonKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed a Skeleton - Gained 512 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnPlanktonKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed a Plankton - Gained 512 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnAntonioKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed an Antonio - Gained 512 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnThiefFemaleKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed a Thief Bug Female - Gained 512 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSpecialKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed a Special Monster - Gained 1024 exp",19; + callfunc "duelkill"; +} + +function script duelkill { + if (strcharinfo(0) == $@duelist1$ || strcharinfo(0) == $@duelist2$) goto L_Heal; + end; +L_Heal: + announce strcharinfo(0) + " won the Duel",1; + set @fighting,0; + set #heal,0; + set @healing,0; + end; +} + +function script illegalkill { + announce "Illegal Kill by " + strcharinfo(0) + " Detected",1; + percentheal -100,-100; + end; +} + +// Healer // +gon_test,55,103,6 script Nurse 90,{ + if (@battle == 1 || #heal == 0) goto L_NoHeal; + if (#heal == 1 && @healing < 100) goto L_Heal; //Total healing required + set @fighting,0; + set #heal,0; + set @healing,0; + specialeffect2 EF_VALLENTINE2; + announce "Your monster has healed.",19; + end; + +L_Heal: + set @healrate,140 / #monster; //Rate of heal per click + set @healing,@healing + @healrate; + end; + +L_NoHeal: + announce "Your monster does not need healing yet.",19; + end; +} + +// Warps players // +gon_test,57,86,5 script Summon Pad 1::SummonPad 111,2,2,{ + end; +OnTouch: + set @marena,1; + warp "gon_test",57,99; +} +gon_test,43,87,5 duplicate(SummonPad) Summon Pad 2 111,2,2 +gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2 + + + +// Skill Disabler // +gon_test,57,99,5 script Skill Disable 111,3,3,{ + atcommand strcharinfo(0) + "@skilloff"; + disablenpc "Skill Disable"; + end; +} + +// Duel Arena // +gon_test,58,103,5 script Duel Master#01 92,{ + if ($@duelist1$ == "") set @duel,0; + if ($@monster1 == "") set @duel,0; + set @marena,1; + if (#monster == 0) goto L_NoMon; + mes "[Duel Master]"; + if ($@duel == 1) goto L_Waiting; + if ($@duel == 2) goto L_Dueling; + + mes "There are currently no players dueling."; + next; + menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; + + // Player 1 Enters Duel Area // + if (#heal == 1) goto L_NeedHeal; + if ($@duel == 1) goto L_Duel2; + set $@duel,1; + if (#monster > 1 && #monster < 20) set $@monster1,1; + if (#monster > 19 && #monster < 30) set $@monster1,2; + if (#monster > 29 && #monster < 40) set $@monster1,3; + if (#monster > 39 && #monster < 50) set $@monster1,4; + if (#monster > 49 && #monster < 60) set $@monster1,5; + if (#monster > 59 && #monster < 70) set $@monster1,6; + if (#monster > 69 && #monster < 80) set $@monster1,7; + if (#monster > 79 && #monster < 90) set $@monster1,8; + if (#monster > 89 && #monster < 100) set $@monster1,9; + if (#monster > 99 && #monster < 110) set $@monster1,10; + set $@duelist1$,strcharinfo(0); + set @battle,1; + announce strcharinfo(0) + " [Monster Level: " + $@monster1 + "] is waiting for a duel",1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",49,5; + close; + +L_Waiting: + mes "^0000FF " + $@duelist1$ + "^000000 [Monster Level: ^FF0000" + $@monster1 + "^000000]"; + mes "Is waiting for an opponent"; + next; + menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; + + // Player 2 Enters Duel Area // + if (#heal == 1) goto L_NeedHeal; +L_Duel2: + if ($@duel == 2) goto L_Spec; + set $@duel,2; + if (#monster > 1 && #monster < 20) set $@monster2,1; + if (#monster > 19 && #monster < 30) set $@monster2,2; + if (#monster > 29 && #monster < 40) set $@monster2,3; + if (#monster > 39 && #monster < 50) set $@monster2,4; + if (#monster > 49 && #monster < 60) set $@monster2,5; + if (#monster > 59 && #monster < 70) set $@monster2,6; + if (#monster > 69 && #monster < 80) set $@monster2,7; + if (#monster > 79 && #monster < 90) set $@monster2,8; + if (#monster > 89 && #monster < 100) set $@monster2,9; + if (#monster > 99 && #monster < 110) set $@monster2,10; + set $@duelist2$,strcharinfo(0); + set @battle,1; + announce strcharinfo(0) + " [Monster Level: " + $@monster2 + "] has joined the duel",1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",49,5; + close; + +L_Dueling: + mes "^0000FF" + $@duelist1$ + "^000000 [Monster Level: ^0000FF" + $@monster1 + "^000000]"; + mes " VS."; + mes "^FF0000" + $@duelist2$ + "^000000 [Monster Level: ^FF0000" + $@monster2 + "^000000]"; + next; + menu "Spectate",L_Spec,"Cancel",L_Exit; + +L_Spec: + set @battle,0; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",49,5; + close; + +L_Exit: + mes "[Duel Master]"; + mes "Goodbye."; + close; + +L_NoMon: + mes "[Duel Master]"; + mes "You haven't got a monster, you can't participate."; + close; + +L_NeedHeal: + mes "[Duel Master]"; + mes "You need to heal before you can join."; + close; +} + +// Duel Exit // +gon_test,42,8,5 script Duel Master#02 92,{ + mes "[Duel Master]"; + mes "Would you like to return?"; + menu "Yes",L_Leave,"No",-; + mes "Alright"; + close; + +L_Leave: + if ($@duelist1$ == strcharinfo(0)) goto L_Leave1; + if ($@duelist2$ == strcharinfo(0)) goto L_Leave2; + +L_Leave3: + atcommand strcharinfo(0) + "@option 0 0 0"; + set @battle,0; + warp "gon_test",57,99; + close; + +L_Leave1: + set $@duelist1$,$@duelist2$; + set $@monster1,$@monster2; + set $@duel,$@duel-1; + announce strcharinfo(0) + " stopped dueling",1; + goto L_Leave3; + +L_Leave2: + set $@duelist2$,""; + set $@monster2,0; + set $@duel,$@duel-1; + announce strcharinfo(0) + " stopped dueling",1; + goto L_Leave3; +} + +gon_test,49,5,5 duplicate(SummonPad) Summon Pad 4 111,2,2 +gon_test,55,8,6 duplicate(monsterreferee) Referee#02 61 diff --git a/npc/custom/etc/morroc_raceway.txt b/npc/custom/etc/morroc_raceway.txt new file mode 100644 index 000000000..d346083db --- /dev/null +++ b/npc/custom/etc/morroc_raceway.txt @@ -0,0 +1,238 @@ +//===== rAthena Script ======================================= +//= Morroc Raceway +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.3 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Lets players race around Morroc (pvp_y_1-5) +//===== Additional Comments: ================================= +//= If there are more than 3 players, at least 3 people +//= must finish before a new race can be started. +//= +//= If there are less than 3 players, at least 1 person +//= must finish before a new race can be started. +//= +//= Removed permanent global variables +//= 1.2 Removed Duplicates [Silent] +//= 1.3 Replaced effect numerics with constants. [Samuray22] +//============================================================ + +//Warps you into race way +morocc,166,105,6 script Race Girl#01 116,{ + mes "[Race Girl]"; + mes "Would you like to visit ^0000FFMorroc Raceway^000000?"; + next; + menu "Yes",L_Warp,"No",-; + mes "[Race Girl]"; + mes "Alright, talk to me again when you want to go."; + close; +L_Warp: + warp "pvp_y_1-5",165,256; + close; +} + +//Warps you out of raceway +pvp_y_1-5,169,265,5 script Race Girl#02 116,{ + mes "[Race Girl]"; + mes "Welcome to Morroc Raceway!"; + next; + menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel; + mes "[Race Girl]"; + mes "Someone must click on the Starter NPC to start the race."; + next; + mes "[Race Girl]"; + mes "Once the race is started, run around Morroc anti-clockwise."; + next; + mes "[Race Girl]"; + mes "You must reach all the checkpoints - No cheating!"; + close; +L_Warp: + warp "morocc",165,101; +L_Cancel: + mes "[Race Girl]"; + mes "Come again soon!"; + close; +} + +//Counts down and starts race +pvp_y_1-5,145,269,5 script Starter 733,{ + if ($@race != 0) goto L_Started; + if ($@counting != 0) goto L_Started; + if ($@racecount == 1) goto L_Started; +L_Menu: + mes "[Race Starter]"; + mes "Please stay on the Eastern side of me."; + menu "Start Race",L_Count,"Cancel",-; + close; +L_Count: + set $@counting,1; + mes "Counting down..."; + addtimer 1000, "Starter::OnCount1000"; + addtimer 2000, "Starter::OnCount2000"; + addtimer 3000, "Starter::OnCount3000"; + addtimer 4000, "Starter::OnCount4000"; + announce strcharinfo(0) + "Started a countdown",1; + announce "Get ready to race!",1; + close; + +OnCount1000: + announce "[3]",1; + end; +OnCount2000: + announce "[2]",1; + end; +OnCount3000: + announce "[1]",1; + end; +OnCount4000: + emotion 27; + specialeffect EF_CHIMTO; + announce "[GO!]",1; + set $@race,1; + set $@position,0; + set $@counting,0; + set $@raceid,rand(100000,999999); + end; + +L_Started: + if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu; + if ($@position > 2) goto L_Menu; + mes "[Starter]"; + mes "Race in progress"; + close; + +OnInit: + set $@race,0; + set $@position,0; + set $@racecount,0; + end; +} + +//Checkpoint 1 +pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{ + end; +OnTouch: + if (@raceid != $@raceid) goto L_Started; + if (@race == 6) goto L_Finished; + if ($@race == 1) goto L_Started; + mes "The race has not started, please move back."; + close; +L_Started: + set @race,1; + set @raceid,$@raceid; + end; +L_Finished: + mes "You have already completed the race."; + close; +} + +//Checkpoint 2 +pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{ + end; +OnTouch: + if (@race != 1) goto L_Miss; + set @race,2; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +} + +//Checkpoint 3 +pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{ + end; +OnTouch: + if (@race != 2) goto L_Miss; + set @race,3; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +} + +//Checkpoint 3 +pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{ + end; +OnTouch: + if (@race != 3) goto L_Miss; + set @race,4; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +} + +//Checkpoint 4 +pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{ + end; +OnTouch: + if (@race != 4) goto L_Miss; + set @race,5; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +} + +//Finish Line +pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{ + end; +OnTouch: + if (@raceid != $@raceid) goto L_WrongRace; + if (@race != 5) goto L_Miss; + set @race,6; + set $@position,$@position+1; + announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +L_WrongRace: + mes "You are not in this race."; + close; +} + +//Check Point Marker Flags +pvp_y_1-5,144,267,4 script Check Point 1#01 722,{ + end; +} +pvp_y_1-5,144,257,4 script Check Point 1#02 722,{ + end; +} +pvp_y_1-5,70,252,3 script Check Point 2#01 722,{ + end; +} +pvp_y_1-5,77,243,3 script Check Point 2#02 722,{ + end; +} +pvp_y_1-5,81,48,1 script Check Point 3#01 722,{ + end; +} +pvp_y_1-5,72,40,1 script Check Point 3#02 722,{ + end; +} +pvp_y_1-5,244,65,7 script Check Point 4#01 722,{ + end; +} +pvp_y_1-5,252,57,7 script Check Point 4#02 722,{ + end; +} +pvp_y_1-5,259,260,5 script Check Point 5#01 722,{ + end; +} +pvp_y_1-5,251,252,5 script Check Point 5#02 722,{ + end; +} +pvp_y_1-5,174,249,4 script Finish Line#01 722,{ + end; +} +pvp_y_1-5,174,238,4 script Finish Line#02 722,{ + end; +} diff --git a/npc/custom/etc/mvp_arena.txt b/npc/custom/etc/mvp_arena.txt new file mode 100644 index 000000000..51eabfb2a --- /dev/null +++ b/npc/custom/etc/mvp_arena.txt @@ -0,0 +1,322 @@ +//===== rAthena Script ======================================= +//= MVP Arena +//===== By: ================================================== +//= Darkchild +//===== Current Version: ===================================== +//= 1.4 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Rooms containing 16 different MVPs +//===== Additional Comments: ================================= +//= 1.0 first version of script +//= 1.1 Optimised The MVP arena [massdriller] +//= 1.2 - NPC in prontera [Silent] +//= 1.3 - Removed Duplicates +//= 1.4 - Optimized, text edited [Euphy] +//============================================================ + +// ==== Entrance ==== +prontera,154,197,3 script MVP Warper 768,{ + mes "[ ^0065DFMVP Warper^000000 ]"; + mes "Would you like to enter"; + mes "the MVP Arena?"; + if (select("Yes!","No thanks.") == 2) close; + warp "quiz_00",50,24; + close; +} + +// ==== Information NPC ==== +quiz_00,49,31,4 script MVP Arena Guide 778,{ + mes "[ ^0065DFMVP Arena Guide^000000 ]"; + mes "Welcome and behold this sacred place. Here you will find out if you truly have what it takes to call yourself a warrior."; + next; + switch(select("Information","Heal me!","Return to Prontera","Cancel")) { + case 1: + mes "[ ^0065DFMVP Arena Guide^000000 ]"; + mes "There are four Keepers, and each can spawn four different MVPs."; + mes "There are eight rooms per Keeper, and sixteen MVPs in total."; + close; + case 2: + specialeffect2 313; + percentheal 100,100; + close; + case 3: + warp "prontera",156,179; + close; + case 4: + close; } +} + +// ==== Keepers ==== +function script Keeper { + mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; + mes "Which arena would you"; + mes "like to enter?"; + set .@menu$,""; + for(set .@i,1; .@i<9; set .@i,.@i+1) + set .@menu$, .@menu$+"Arena "+.@i+" ["+getmapusers("pvp_n_"+.@i+"-"+getarg(0))+"/20]:"; + set .@i, select(.@menu$); + if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) { + mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; + mes "Sorry, this arena is full!"; + close; } + warp "pvp_n_"+.@i+"-"+getarg(0),102,102; + close; +} + +quiz_00,56,31,4 script Alpha MVP 770,{ + callfunc "Keeper",2; } +quiz_00,58,31,4 script Beta MVP 773,{ + callfunc "Keeper",3; } +quiz_00,60,31,4 script Theta MVP 774,{ + callfunc "Keeper",4; } +quiz_00,62,31,4 script Epsilon MVP 776,{ + callfunc "Keeper",5; } + +// ==== Protectors ==== +function script Protector { + switch(select(""+((getarg(0)=="")?"":"Harder Monsters")+":Heal:Exit")) { + case 1: + warp getarg(0),102,102; + close; + case 2: + specialeffect2 313; + percentheal 100,100; + close; + case 3: + warp "prontera",156,179; + close; } +} + +pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{ + callfunc "Protector","pvp_n_2-2"; } +pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{ + callfunc "Protector","pvp_n_3-2"; } +pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{ + callfunc "Protector","pvp_n_4-2"; } +pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{ + callfunc "Protector","pvp_n_5-2"; } +pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{ + callfunc "Protector","pvp_n_6-2"; } +pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{ + callfunc "Protector","pvp_n_7-2"; } +pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{ + callfunc "Protector","pvp_n_8-2"; } +pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{ + callfunc "Protector",""; } + +pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{ + callfunc "Protector","pvp_n_2-3"; } +pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{ + callfunc "Protector","pvp_n_3-3"; } +pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{ + callfunc "Protector","pvp_n_4-3"; } +pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{ + callfunc "Protector","pvp_n_5-3"; } +pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{ + callfunc "Protector","pvp_n_6-3"; } +pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{ + callfunc "Protector","pvp_n_7-3"; } +pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{ + callfunc "Protector","pvp_n_8-3"; } +pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{ + callfunc "Protector",""; } + +pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{ + callfunc "Protector","pvp_n_2-4"; } +pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{ + callfunc "Protector","pvp_n_3-4"; } +pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{ + callfunc "Protector","pvp_n_4-4"; } +pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{ + callfunc "Protector","pvp_n_5-4"; } +pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{ + callfunc "Protector","pvp_n_6-4"; } +pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{ + callfunc "Protector","pvp_n_7-4"; } +pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{ + callfunc "Protector","pvp_n_8-4"; } +pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{ + callfunc "Protector",""; } + +pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{ + callfunc "Protector","pvp_n_2-5"; } +pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{ + callfunc "Protector","pvp_n_3-5"; } +pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{ + callfunc "Protector","pvp_n_4-5"; } +pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{ + callfunc "Protector","pvp_n_5-5"; } +pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{ + callfunc "Protector","pvp_n_6-5"; } +pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{ + callfunc "Protector","pvp_n_7-5"; } +pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{ + callfunc "Protector","pvp_n_8-5"; } +pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{ + callfunc "Protector",""; } + +// ==== Alpha ==== +pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000 +pvp_n_1-2,0,0,0,0 monster Mistress 1059,1,60000,66000 +pvp_n_2-2,0,0,0,0 monster Mistress 1059,3,60000,66000 +pvp_n_2-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 +pvp_n_3-2,0,0,0,0 monster Mistress 1059,1,60000,66000 +pvp_n_3-2,0,0,0,0 monster Moonlight 1150,2,60000,66000 +pvp_n_3-2,0,0,0,0 monster Maya 1147,1,60000,66000 +pvp_n_4-2,0,0,0,0 monster Eddga 1115,1,60000,66000 +pvp_n_4-2,0,0,0,0 monster Mistress 1059,1,60000,66000 +pvp_n_4-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 +pvp_n_4-2,0,0,0,0 monster Maya 1147,1,60000,66000 +pvp_n_5-2,0,0,0,0 monster Eddga 1115,1,60000,66000 +pvp_n_5-2,0,0,0,0 monster Mistress 1059,2,60000,66000 +pvp_n_5-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 +pvp_n_5-2,0,0,0,0 monster Maya 1147,2,60000,66000 +pvp_n_6-2,0,0,0,0 monster Eddga 1115,2,60000,66000 +pvp_n_6-2,0,0,0,0 monster Mistress 1059,3,60000,66000 +pvp_n_6-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 +pvp_n_6-2,0,0,0,0 monster Maya 1147,2,60000,66000 +pvp_n_7-2,0,0,0,0 monster Eddga 1115,3,60000,66000 +pvp_n_7-2,0,0,0,0 monster Mistress 1059,3,60000,66000 +pvp_n_7-2,0,0,0,0 monster Moonlight 1150,2,60000,66000 +pvp_n_7-2,0,0,0,0 monster Maya 1147,2,60000,66000 +pvp_n_8-2,0,0,0,0 monster Eddga 1115,3,60000,66000 +pvp_n_8-2,0,0,0,0 monster Mistress 1059,3,60000,66000 +pvp_n_8-2,0,0,0,0 monster Moonlight 1150,3,60000,66000 +pvp_n_8-2,0,0,0,0 monster Maya 1147,3,60000,66000 + +// ==== Beta ==== +pvp_n_1-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 +pvp_n_1-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_2-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 +pvp_n_2-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_2-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 +pvp_n_3-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000 +pvp_n_3-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_3-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 +pvp_n_3-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 +pvp_n_4-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 +pvp_n_4-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_4-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 +pvp_n_4-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 +pvp_n_5-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000 +pvp_n_5-3,0,0,0,0 monster Turtle General 1312,2,60000,66000 +pvp_n_5-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 +pvp_n_5-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 +pvp_n_6-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 +pvp_n_6-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_6-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 +pvp_n_6-3,0,0,0,0 monster Orc Lord 1190,2,60000,66000 +pvp_n_7-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 +pvp_n_7-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_7-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 +pvp_n_7-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000 +pvp_n_8-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 +pvp_n_8-3,0,0,0,0 monster Turtle General 1312,3,60000,66000 +pvp_n_8-3,0,0,0,0 monster Orc Hero 1087,3,60000,66000 +pvp_n_8-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000 + +// ==== Theta ==== +pvp_n_1-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_1-4,0,0,0,0 monster Osiris 1038,1,60000,66000 +pvp_n_2-4,0,0,0,0 monster Drake 1112,2,60000,66000 +pvp_n_2-4,0,0,0,0 monster Osiris 1038,1,60000,66000 +pvp_n_2-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000 +pvp_n_3-4,0,0,0,0 monster Drake 1112,1,60000,66000 +pvp_n_3-4,0,0,0,0 monster Osiris 1038,1,60000,66000 +pvp_n_3-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000 +pvp_n_3-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 +pvp_n_4-4,0,0,0,0 monster Drake 1112,2,60000,66000 +pvp_n_4-4,0,0,0,0 monster Osiris 1038,1,60000,66000 +pvp_n_4-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 +pvp_n_4-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 +pvp_n_5-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_5-4,0,0,0,0 monster Osiris 1038,2,60000,66000 +pvp_n_5-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 +pvp_n_5-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 +pvp_n_6-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_6-4,0,0,0,0 monster Osiris 1038,2,60000,66000 +pvp_n_6-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 +pvp_n_6-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000 +pvp_n_7-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_7-4,0,0,0,0 monster Osiris 1038,2,60000,66000 +pvp_n_7-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000 +pvp_n_7-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000 +pvp_n_8-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_8-4,0,0,0,0 monster Osiris 1038,3,60000,66000 +pvp_n_8-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000 +pvp_n_8-4,0,0,0,0 monster Lord of Death 1373,3,60000,66000 + +// ==== Epsilon ==== +pvp_n_1-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 +pvp_n_1-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 +pvp_n_2-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 +pvp_n_2-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 +pvp_n_2-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 +pvp_n_3-5,0,0,0,0 monster Incantation Samurai 1492,1,60000,66000 +pvp_n_3-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 +pvp_n_3-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 +pvp_n_3-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 +pvp_n_4-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 +pvp_n_4-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 +pvp_n_4-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 +pvp_n_4-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 +pvp_n_5-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 +pvp_n_5-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 +pvp_n_5-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 +pvp_n_5-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 +pvp_n_6-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 +pvp_n_6-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 +pvp_n_6-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 +pvp_n_6-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 +pvp_n_7-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 +pvp_n_7-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 +pvp_n_7-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 +pvp_n_7-5,0,0,0,0 monster Baphomet 1039,2,60000,66000 +pvp_n_8-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 +pvp_n_8-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 +pvp_n_8-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 +pvp_n_8-5,0,0,0,0 monster Baphomet 1039,2,60000,66000 + +// ==== Mapflags ==== +pvp_n_1-1 mapflag pvp_nightmaredrop off +pvp_n_2-1 mapflag pvp_nightmaredrop off +pvp_n_3-1 mapflag pvp_nightmaredrop off +pvp_n_4-1 mapflag pvp_nightmaredrop off +pvp_n_5-1 mapflag pvp_nightmaredrop off +pvp_n_6-1 mapflag pvp_nightmaredrop off +pvp_n_7-1 mapflag pvp_nightmaredrop off +pvp_n_8-1 mapflag pvp_nightmaredrop off +pvp_n_1-2 mapflag pvp_nightmaredrop off +pvp_n_2-2 mapflag pvp_nightmaredrop off +pvp_n_3-2 mapflag pvp_nightmaredrop off +pvp_n_4-2 mapflag pvp_nightmaredrop off +pvp_n_5-2 mapflag pvp_nightmaredrop off +pvp_n_6-2 mapflag pvp_nightmaredrop off +pvp_n_7-2 mapflag pvp_nightmaredrop off +pvp_n_8-2 mapflag pvp_nightmaredrop off +pvp_n_1-3 mapflag pvp_nightmaredrop off +pvp_n_2-3 mapflag pvp_nightmaredrop off +pvp_n_3-3 mapflag pvp_nightmaredrop off +pvp_n_4-3 mapflag pvp_nightmaredrop off +pvp_n_5-3 mapflag pvp_nightmaredrop off +pvp_n_6-3 mapflag pvp_nightmaredrop off +pvp_n_7-3 mapflag pvp_nightmaredrop off +pvp_n_8-3 mapflag pvp_nightmaredrop off +pvp_n_1-4 mapflag pvp_nightmaredrop off +pvp_n_2-4 mapflag pvp_nightmaredrop off +pvp_n_3-4 mapflag pvp_nightmaredrop off +pvp_n_4-4 mapflag pvp_nightmaredrop off +pvp_n_5-4 mapflag pvp_nightmaredrop off +pvp_n_6-4 mapflag pvp_nightmaredrop off +pvp_n_7-4 mapflag pvp_nightmaredrop off +pvp_n_8-4 mapflag pvp_nightmaredrop off +pvp_n_1-5 mapflag pvp_nightmaredrop off +pvp_n_2-5 mapflag pvp_nightmaredrop off +pvp_n_3-5 mapflag pvp_nightmaredrop off +pvp_n_4-5 mapflag pvp_nightmaredrop off +pvp_n_5-5 mapflag pvp_nightmaredrop off +pvp_n_6-5 mapflag pvp_nightmaredrop off +pvp_n_7-5 mapflag pvp_nightmaredrop off +pvp_n_8-5 mapflag pvp_nightmaredrop off \ No newline at end of file diff --git a/npc/custom/etc/penal_servitude.txt b/npc/custom/etc/penal_servitude.txt new file mode 100644 index 000000000..65f4feedd --- /dev/null +++ b/npc/custom/etc/penal_servitude.txt @@ -0,0 +1,193 @@ +//===== rAthena Script ======================================= +//= Penal Servitude +//===== By: ================================================== +//= Lupus +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= A simple Penal Servitude Script. +//= It could cheer up your prisoners a bit. +//===== Additional Comments: ================================= +// This script uses CHEQUES of the 2nd KAFRA_BANK.TXT +// var PRISON - it counts number of your imprisonments. +// 1.1 English translation +// 1.2 Stricted the conditions a bit +//============================================================ + +sec_pri,36,58,1 script Chief Warder 105,{ + mes "[Saddeus]"; + emotion 1; + if(sex) { + mes "Mr. Prisoner #"+BaseLevel+JobLevel+","; + } else { + mes "Ms. Prisoner #"+BaseLevel+JobLevel+","; + } + mes "what's the noise over there?"; + next; + menu "Let me free, I'll pay!",-, "Let me to work off my freedom!",M_Q1, "Nothing",M_NO_THANKS; + +M_PAY: + mes "[Saddeus]"; + set @MUSTPAY,(PRISON+1)*1000000; + if (@MUSTPAY<1000000) set @MUSTPAY,1000000; + if (@MUSTPAY>100000000) set @MUSTPAY,100000000; + if (PRISON==1) mes "I can't remember you. Is it your 1st time?"; + if (PRISON>1) mes "You again? Sombody hasn't grown wiser from the very first visit..."; + mes "OK, we could release you for ^FF0000"+@MUSTPAY+"z^000000."; + next; + menu "I pay cash!",M_PAYCASH,"Do you accept cheques?",M_PAYBANK,"I've changed my mind.",-; + + mes "[Saddeus]"; + mes "You've got some time to think about..."; + close; + +M_PAYCASH: + if (@MUSTPAY>Zeny) goto L_NOCASH; + set Zeny,Zeny-@MUSTPAY; + mes "[Saddeus]"; + mes "OK, sing here and there."; + goto L_RELEASE; + +L_NOCASH: + mes "[Saddeus]"; + mes "What's this? It's not enough!"; + close; + +M_PAYBANK: + if (@MUSTPAY>#kafrabank) goto L_NOBANK; + set #kafrabank,#kafrabank-@MUSTPAY; + mes "[Saddeus]"; + mes "OK, sign your cheque. And put down your name in my book."; + goto L_RELEASE; + +L_NOBANK: + mes "[Saddeus]"; + if (#kafrabank==0) mes "Your case says nothing about your bank accounts."; + if (#kafrabank!=0) mes "Alas, there's your bank account info... ^FF0000"+#kafrabank+"z^000000... in the case. It's not enough."; + mes "Stop your silly games now!"; + close; + +L_RELEASE: + set PRISON,PRISON+1; + next; + mes "[Saddeus]"; + mes "You are free now!"; + next; + savepoint "izlude",105,112; + warp "izlude",105,112; + close; + +M_Q1: + mes "[Saddeus]"; + mes "Our stocks are short of toadstools. Remember your morning's skilly? What about some work at our sponsored mushroom farm?"; + next; + menu "OK, I'll work off!",-, "I love this prison!",M_NO_THANKS; + + mes "[Saddeus]"; + if(checkcart() || checkfalcon() || checkriding()){ + emotion e_hmm; + mes "I'm sorry, you should release your Cart, PecoPeco or Falcon!"; + close; + } + mes "Talk to our overseer, Oliver."; + next; + + nude; + + set @rw,rand(1,4); + if (@rw==2) goto L_W2; + if (@rw==3) goto L_W3; + if (@rw==4) goto L_W4; + +L_W1: + savepoint "sec_in02",179,76; + warp "sec_in02",179,76; + close; + +L_W2: + savepoint "sec_in02",139,32; + warp "sec_in02",139,32; + close; + +L_W3: + savepoint "sec_in02",100,28; + warp "sec_in02",100,28; + close; + +L_W4: + savepoint "sec_in02",107,75; + warp "sec_in02",107,75; + close; + +M_NO_THANKS: + mes "[Saddeus]"; + if (rand(2)) mes "Is today X-Mas time, huh?"; + mes "Now shut up and back off!"; + if (rand(2)) emotion 23; + close; +} + +sec_in02,137,57,1 script Overseer 708,{ + mes "[Oliver]"; + + delitem 4002,countitem(4002);//Items: Fabre_Card, + delitem 4009,countitem(4009);//Items: Chonchon_Card, + delitem 4022,countitem(4022);//Items: Spore_Card, + delitem 4048,countitem(4048);//Items: Poison_Spore_Card, + + if (PRISON_Q <= 0 ) goto L_GET_Q; + + mes "I want you to gather ^FF0000"+PRISON_Q+" Orange Net Mushroom^000000."; + if ( countitem(1069) 1) mes "Hmm... You've been here already... Well-well..."; + + if ( countitem(1069) || countitem(1070) ) mes "Drop these mushrooms!! They are poisonous!";//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_, + delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom, + delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_, + + set PRISON_Q, PRISON*3 + BaseLevel/3; + set PRISON_Q, PRISON_Q * (readparam(bAspd)/55 + 1); + set PRISON_Q, PRISON_Q+rand(50,60); + mes "OK, you must bring me ^FF0000"+PRISON_Q+"^000000 edible ^FF0000Orange Net Mushroom^000000 toadstoo.. shrooms."; + if(readparam(bAspd)>=100) mes "You're a fast fella! You'll have to get more shrooms, then."; + if (rand(10)<4) mes "And you may eat the deadly ones for breakfast."; + close; +} + + +sec_in02 mapflag nomemo +sec_in02 mapflag nosave SavePoint +sec_in02 mapflag noteleport +sec_in02 mapflag nobranch +sec_in02 mapflag nowarp +sec_in02 mapflag nowarpto +sec_in02 mapflag noexp +sec_in02 mapflag noskill +//sec_in02 mapflag pvp +//sec_in02 mapflag pvp_noparty +//sec_in02 mapflag gvg +sec_in02 mapflag pvp_nightmaredrop random,all,300 + +sec_in02,138,55,100,100 monster Toadstool 1182,30,10000,10000,1 +sec_in02,138,55,100,100 monster Fabre 1184,10,20000,20000 +sec_in02,138,55,100,100 monster Chonchon 1183,11,20000,20000 +sec_in02,138,55,100,100 monster Spore 1014,12,20000,20000 +sec_in02,138,55,100,100 monster Poison Spore 1077,3,20000,20000 diff --git a/npc/custom/etc/rpsroulette.txt b/npc/custom/etc/rpsroulette.txt new file mode 100644 index 000000000..9d8fa278c --- /dev/null +++ b/npc/custom/etc/rpsroulette.txt @@ -0,0 +1,286 @@ +//===== rAthena Script ======================================= +//= Rock Scissors Roulette +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Plays a hybrid Russian Roulette Rock Scissors Paper game. +//===== Additional Comments: ================================= +//= Prizes customizable, Added emotions. +//= 1.2 Fixes by Blackthunder and me [Poki#3] +//============================================================ + +cmd_in02,182,126,2 script Crazy Boris 85,{ + mes "Crazy Boris"; + set @counter,1; + mes "Hey you! Up for Rock Scissors Roulette?"; + next; + menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE; + SAME: + mes "Draw! Again!"; + next; + goto PLAY; + +WIN: + mes "Damnit, You Win!"; + emotion 19; + next; + goto OPPPULL; + +LOSE: + emotion 18; + mes "Boorah! You Lose!"; + next; + goto YOUPULL; + +PLAY: + mes "Rock... Paper..."; + set @opp,rand (1,3); + menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; + +ROCK: + if (@lastchoice == 1) set @opp,rand (1,3); + if (@opp == 1) emotion 11; + if (@opp == 2) emotion 10; + if (@opp == 3) emotion 12; + set @lastchoice,1; + if (@opp == 1) goto SAME; + if (@opp == 2) goto WIN; + if (@opp == 3) goto LOSE; + +SCISSORS: + if (@lastchoice == 2) set @opp,rand (1,2); + if (@opp == 1) emotion 11; + if (@opp == 2) emotion 10; + if (@opp == 3) emotion 12; + set @lastchoice,2; + if (@opp == 1) goto LOSE; + if (@opp == 2) goto SAME; + if (@opp == 3) goto WIN; + +PAPER: + if (@lastchoice == 3) set @opp,rand (2,3); + if (@opp == 1) emotion 11; + if (@opp == 2) emotion 10; + if (@opp == 3) emotion 12; + set @lastchoice,3; + if (@opp == 1) goto WIN; + if (@opp == 2) goto LOSE; + if (@opp == 3) goto SAME; + +YOUPULL: + if (@counter == 1) goto ONE; + if (@counter == 2) goto TWO; + if (@counter == 3) goto THREE; + if (@counter == 4) goto FOUR; + if (@counter == 5) goto FIVE; + if (@counter == 6) goto SIX; + +OPPPULL: + if (@counter == 1) goto ONEa; + if (@counter == 2) goto TWOa; + if (@counter == 3) goto THREEa; + if (@counter == 4) goto FOURa; + if (@counter == 5) goto FIVEa; + if (@counter == 6) goto SIXa; + +ONE: + set @counter,2; + mes "1 of 6"; + set @pull,rand (1,6); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +TWO: + set @counter,3; + mes "2 of 6"; + set @pull,rand (1,5); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +THREE: + set @counter,4; + mes "3 of 6"; + set @pull,rand (1,4); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +FOUR: + set @counter,5; + mes "4 of 6"; + set @pull,rand (1,3); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +FIVE: + set @counter,6; + mes "5 of 6"; + set @pull,rand (1,2); + if (@pull == 1) set @pull,rand (1,2); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +SIX: + mes "6 of 6"; + mes "Say your prayers"; + set @pull,1; + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +ONEa: + set @counter,2; + mes "1 of 6"; + set @pull,rand (1,6); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +TWOa: + set @counter,3; + mes "2 of 6"; + set @pull,rand (1,5); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +THREEa: + set @counter,4; + mes "3 of 6"; + set @pull,rand (1,4); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +FOURa: + set @counter,5; + mes "4 of 6"; + set @pull,rand (1,3); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +FIVEa: + set @counter,6; + mes "5 of 6"; + set @pull,rand (1,2); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +SIXa: + mes "6 of 6"; + mes "Say your prayers"; + set @pull,1; + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +SAFE: + emotion 32; + mes "*^0000FFClick^000000* whew..."; + goto PLAY; + +DIE: + specialeffect2 183; + emotion 29; + percentheal -100,-100; + mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; + mes "You're dead!"; + close; + +KILL: + specialeffect 183; + emotion 23; + mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; + mes "OWWW @#$%^!! THAT HURT LIKE HELL!!"; + next; + goto PRIZE; + +RULES: + mes "Ok here are the rules:"; + mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best."; + mes "Beat me to win a prize."; + menu "Let me play.",CONT,"No thanks.",LEAVE; + +CONT: + mes "Ok here we go..."; + next; + goto PLAY; + +PRIZE: + mes "Congratulations! You have won..."; + set @prize,rand (1,10); + if (@prize == 1) goto P1; + if (@prize == 2) goto P2; + if (@prize == 3) goto P3; + if (@prize == 4) goto P4; + if (@prize == 5) goto P5; + if (@prize == 6) goto P6; + if (@prize == 7) goto P7; + if (@prize == 8) goto P8; + if (@prize == 9) goto P9; + if (@prize == 10) goto P10; + +P1: + mes "10x Oridicon!"; + getitem 984,10; + close; + +P2: + mes "10x Elunium!"; + getitem 985,10; + close; + +P3: + mes "100x Fly Wings!"; + getitem 601,100; + close; + +P4: + mes "8x Old Blue Box!"; + getitem 603,8; + close; + +P5: + mes "4x Old Violet Box!"; + getitem 617,4; + close; + +P6: + mes "1x Old Card Album!"; + getitem 616,1; + close; + +P7: + mes "10x Dead Branch!"; + getitem 604,10; + close; + +P8: + mes "3x Gold!"; + getitem 969,3; + close; + +P9: + mes "10x Elunium!"; + getitem 985,10; + close; + +P10: + mes "20x Blue Potion!"; + getitem 505,20; + close; + +LEAVE: + mes "Pansy."; + close; +} diff --git a/npc/custom/etc/shifty_assassin.txt b/npc/custom/etc/shifty_assassin.txt new file mode 100644 index 000000000..c31d571c1 --- /dev/null +++ b/npc/custom/etc/shifty_assassin.txt @@ -0,0 +1,199 @@ +//===== rAthena Script ======================================= +//= Shifty Assassin +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Players buy ninjas to assassinate other players +//===== Additional Comments: ================================= +//= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious] +//= 1.1.2 Updated WoE Check. [Paradox924X] +//============================================================ + +morocc,148,86,5 script Shifty Assassin 725,{ + set $ninja_price,250000; + + // STARTS THE MENU // +M_Start: + mes "[Shifty Assassin]"; + mes "What do you want?"; + next; + if (getgmlevel() > 90) goto M_GM; + menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit; +M_GM: + menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit; + + // GM MENU TO ADD NINJAS // +M_Add: + mes "[Shifty Assassin]"; + mes "How many ninjas do you want to make available?"; + next; + set @add,0; + input @add; + set $ninja_avail,$ninja_avail+@add; + mes @add + " ninjas added."; + close; + + // BUY NINJAS // +M_Buy: + mes "[Shifty Assassin]"; + mes "How many ninjas do you want buy?"; + mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available."; + mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each."; + + set @buy,0; + input @buy; + next; + if ($ninja_avail < 1) goto NoNinjas; + if ($ninja_avail < @buy) goto NotEnoughNinjas; + set @price,@buy*$ninja_price; + if (zeny < @price ) goto NoZeny; + + mes "[Shifty Assassin]"; + mes "That will cost you ^0000FF" + @price + " zeny^000000."; + next; + menu "Continue",-,"Cancel",M_Exit; + + set zeny,zeny-@price; + set #ninjas,#ninjas+@buy; + set $ninja_avail,$ninja_avail-@buy; + + mes "[Shifty Assassin]"; + mes "Thank you."; + close; + + // ASSASSINATE SOMEBODY // +M_Kill: + if (agitcheck()) goto M_Busy; + mes "[Shifty Assassin]"; + mes "Enter the name of the target."; + mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000"; + next; + menu "Continue",-,"Cancel",M_Exit; + set @name$,"0"; + input @name$; + next; + mes "[Shifty Assassin]"; + mes "Active Ninjas: "+#ninjas; + mes "Resting Ninjas: "+#ninjasr; + mes "How many do you want to send?"; + set @number,0; + input @number; + if (@number < 1) goto NoNinjasSent; + if (@number > #ninjas) goto NotEnoughNinjas1; + if (@number > 10) goto TooManyNinjas; + set @chance,rand (1,12); + set #ninjas,#ninjas-@number; + set #ninjas,#ninjas+#ninjasr; + set #ninjasr,0; + if (@number < @chance) goto M_Failure; + + // SUCCESSFUL ATTACK // + mes "Sending ninjas now."; + next; + mes "[Shifty Assassin]"; + set @ninjasurvived,rand (1,@number); + set #ninjasr,@number-@ninjasurvived; + mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; + + atcommand strcharinfo(0) + "@kill "+@name$; + announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8; + close; + + // FAILED ATTACK // +M_Failure: + mes "Sending ninjas now."; + next; + mes "[Shifty Assassin]"; + set @ninjasurvived,rand (1,@number); + set #ninjasr,@number-@ninjasurvived; + mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; + + announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8; + close; + + // NINJAS BUSY FOR WOE // +M_Busy: + mes "[Shifty Assassin]"; + mes "Sorry, all my ninjas are busy doing War of Emperium."; + close; + + // CHECK YOUR NINJAS // +M_Check: + mes "[Shifty Assassin]"; + mes "You have:"; + mes "^FF0000" + #ninjas + "^000000 Active Ninjas."; + mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas."; + next; + goto M_Start; + + + // LIMIT // +NoNinjasSent: + mes "[Shifty Assassin]"; + mes "You can't kill anyone without ninjas."; + next; + goto M_Start; + +TooManyNinjas: + mes "[Shifty Assassin]"; + mes "You can only send 10 ninjas max."; + next; + goto M_Start; + +NoZeny: + mes "[Shifty Assassin]"; + mes "You do not have enough zeny."; + close; + +NotEnoughNinjas: + mes "[Shifty Assassin]"; + mes "There aren't that many ninjas to buy."; + next; + goto M_Start; + +NoNinjas: + mes "[Shifty Assassin]"; + mes "There are no ninjas left to buy."; + close; + +NotEnoughNinjas1: + mes "[Shifty Assassin]"; + mes "You do not have that many ninjas."; + next; + goto M_Start; + +M_Exit: + mes "[Shifty Assassin]"; + mes "Goodbye."; + close; + +// TIMER DELAY NINJA ADDER // +OnClock0600: + set $ninja_avail,$ninja_avail+2; + end; +OnClock1200: + set $ninja_avail,$ninja_avail+2; + end; +OnClock1500: + set $ninja_avail,$ninja_avail+2; + end; +OnClock1800: + set $ninja_avail,$ninja_avail+3; + end; +OnClock1900: + set $ninja_avail,$ninja_avail+2; + end; +OnClock2000: + set $ninja_avail,$ninja_avail+2; + end; +OnClock0000: + set $ninja_avail,$ninja_avail+2; + end; +OnInit: + set $ninja_avail,$ninja_avail+1; + end; +} diff --git a/npc/custom/etc/stock_market.txt b/npc/custom/etc/stock_market.txt new file mode 100644 index 000000000..33415e551 --- /dev/null +++ b/npc/custom/etc/stock_market.txt @@ -0,0 +1,791 @@ +//===== rAthena Script ======================================= +//= Stock Market Game +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.3.1 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= NPC for a stock market game. +//===== Additional Comments: ================================= +//= GM Must activate the NPC before use. +//= Fixed MAJOR exploit. - players could buy for free +//= Low prices likely to rise, High prices likely to drop +//= Small fix by Galeon +//= Lupus: This script lets players make 40,000,000z a day +//= so use it on your own risk +//============================================================ + +- script sharenames -1,{ + end; +OnInit: + // Sets the names of the shares // + set $S1N$,"JIN"; + set $S2N$,"VNG"; + set $S3N$,"SHA"; + set $S4N$,"RGC"; + set $S5N$,"PSC"; + set $S6N$,"GNG"; + set $S7N$,"XRO"; + set $S8N$,"GRM"; + set $S9N$,"DOP"; + set $S10N$,"POR"; + + // Transaction fee // + set $S_Trans,1500; + + // Min & Max buyable // + set $S_BuyMin,1; + set $S_BuyMax,1000000; + end; + + // Average Price (Your start prices) // + set $S_Avg,100; + + // Set times of fluctuation // +OnClock1100: + set $S_LastUpd$,"12:00"; + goto S_Fluc; + end; + +OnClock0000: + set $S_LastUpd$,"00:00"; + goto S_Fluc; + end; + +OnClock0600: + set $S_LastUpd$,"06:00"; + goto S_Fluc; + end; + +OnClock1800: + set $S_LastUpd$,"18:00"; + goto S_Fluc; + end; + +OnClock2100: + set $S_LastUpd$,"21:00"; + goto S_Fluc; + end; + +OnClock0900: + set $S_LastUpd$,"09:00"; + goto S_Fluc; + end; + +OnClock1500: + set $S_LastUpd$,"15:00"; + goto S_Fluc; + end; + +S_Fluc: + set $fluc,rand (-6,6); + set $S1B,$S1; + set $S1,$S1+$fluc; + if ($S1 < 25) set $S1,$S1+3; + if ($S1 < 50) set $S1,$S1+2; + if ($S1 > 150) set $S1,$S1-2; + if ($S1 > 175) set $S1,$S1-3; + if ($S1 < 1) set $S1,1; + + set $fluc,rand (-6,6); + set $S2B,$S2; + set $S2,$S2+$fluc; + if ($S2 < 25) set $S2,$S2+3; + if ($S2 < 50) set $S2,$S2+2; + if ($S2 > 150) set $S2,$S2-2; + if ($S2 > 175) set $S2,$S2-3; + if ($S2 < 1) set $S2,1; + + set $fluc,rand (-6,6); + set $S3B,$S3; + set $S3,$S3+$fluc; + if ($S3 < 25) set $S3,$S3+3; + if ($S3 < 50) set $S3,$S3+2; + if ($S3 > 150) set $S3,$S3-2; + if ($S3 > 175) set $S3,$S3-3; + if ($S3 < 1) set $S3,1; + + set $fluc,rand (-6,6); + set $S4B,$S4; + set $S4,$S4+$fluc; + if ($S4 < 25) set $S4,$S4+3; + if ($S4 < 50) set $S4,$S4+2; + if ($S4 > 150) set $S4,$S4-2; + if ($S4 > 175) set $S4,$S4-3; + if ($S4 < 1) set $S4,1; + + set $fluc,rand (-6,6); + set $S5B,$S5; + set $S5,$S5+$fluc; + if ($S5 < 25) set $S5,$S5+3; + if ($S5 < 50) set $S5,$S5+2; + if ($S5 > 150) set $S5,$S5-2; + if ($S5 > 175) set $S5,$S5-3; + if ($S5 < 1) set $S5,1; + + set $fluc,rand (-6,6); + set $S6B,$S6; + set $S6,$S6+$fluc; + if ($S6 < 25) set $S6,$S6+3; + if ($S6 < 50) set $S6,$S6+2; + if ($S6 > 150) set $S6,$S6-2; + if ($S6 > 175) set $S6,$S6-3; + if ($S6 < 1) set $S6,1; + + set $fluc,rand (-6,6); + set $S7B,$S7; + set $S7,$S7+$fluc; + if ($S7 < 25) set $S7,$S7+3; + if ($S7 < 50) set $S7,$S7+2; + if ($S7 > 150) set $S7,$S7-2; + if ($S7 > 175) set $S7,$S7-3; + if ($S7 < 1) set $S7,1; + + set $fluc,rand (-6,6); + set $S8B,$S8; + set $S8,$S8+$fluc; + if ($S8 < 25) set $S8,$S8+3; + if ($S8 < 50) set $S8,$S8+2; + if ($S8 > 150) set $S8,$S8-2; + if ($S8 > 175) set $S8,$S8-3; + if ($S8 < 1) set $S8,1; + + set $fluc,rand (-6,6); + set $S9B,$S9; + set $S9,$S9+$fluc; + if ($S9 < 25) set $S9,$S9+3; + if ($S9 < 50) set $S9,$S9+2; + if ($S9 > 150) set $S9,$S9-2; + if ($S9 > 175) set $S9,$S9-3; + if ($S9 < 1) set $S9,1; + + set $fluc,rand (-6,6); + set $S10B,$S10; + set $S10,$S10+$fluc; + if ($S10 < 25) set $S10,$S10+3; + if ($S10 < 50) set $S10,$S10+2; + if ($S10 > 150) set $S10,$S10-2; + if ($S10 > 175) set $S10,$S10-3; + if ($S10 < 1) set $S10,1; + end; +} + +prontera,140,181,5 script Stock Market::stockmarket 109,{ + // Ensures no trading when default prices have not been set // + set @stotal,$S1+$S2+$S3+$S4+$S5+$S6+$S7+$S8+$S9+$S10; + if (@stotal > 0) goto S_Start; + mes "[Stock Market]"; + mes "Trading is currently closed."; + if (getgmlevel() > 90) goto GM_Open; + close; + + // Begining of interface // +S_Start: + mes "[Stock Market]"; + mes "Last fluctuation: " + $S_LastUpd$; + + // Loss/Gain in price // + set @S1Update,$S1-$S1B; + set @S2Update,$S2-$S2B; + set @S3Update,$S3-$S3B; + set @S4Update,$S4-$S4B; + set @S5Update,$S5-$S5B; + set @S6Update,$S6-$S6B; + set @S7Update,$S7-$S7B; + set @S8Update,$S8-$S8B; + set @S9Update,$S9-$S9B; + set @S10Update,$S10-$S10B; + + // Makes Loss/Gain Red/Green // + if (@S1Update < 0) set @S1Update$,"^FF0000"+@S1Update+"^000000"; + if (@S1Update > 0) set @S1Update$,"^00FF00+"+@S1Update+"^000000"; + if (@S1Update == 0) set @S1Update$,@S1Update; + + if (@S2Update < 0) set @S2Update$,"^FF0000"+@S2Update+"^000000"; + if (@S2Update > 0) set @S2Update$,"^00FF00+"+@S2Update+"^000000"; + if (@S2Update == 0) set @S2Update$,@S2Update; + + if (@S3Update < 0) set @S3Update$,"^FF0000"+@S3Update+"^000000"; + if (@S3Update > 0) set @S3Update$,"^00FF00+"+@S3Update+"^000000"; + if (@S3Update == 0) set @S3Update$,@S3Update; + + if (@S4Update < 0) set @S4Update$,"^FF0000"+@S4Update+"^000000"; + if (@S4Update > 0) set @S4Update$,"^00FF00+"+@S4Update+"^000000"; + if (@S4Update == 0) set @S4Update$,@S4Update; + + if (@S5Update < 0) set @S5Update$,"^FF0000"+@S5Update+"^000000"; + if (@S5Update > 0) set @S5Update$,"^00FF00+"+@S5Update+"^000000"; + if (@S5Update == 0) set @S5Update$,@S5Update; + + if (@S6Update < 0) set @S6Update$,"^FF0000"+@S6Update+"^000000"; + if (@S6Update > 0) set @S6Update$,"^00FF00+"+@S6Update+"^000000"; + if (@S6Update == 0) set @S6Update$,@S6Update; + + if (@S7Update < 0) set @S7Update$,"^FF0000"+@S7Update+"^000000"; + if (@S7Update > 0) set @S7Update$,"^00FF00+"+@S7Update+"^000000"; + if (@S7Update == 0) set @S7Update$,@S7Update; + + if (@S8Update < 0) set @S8Update$,"^FF0000"+@S8Update+"^000000"; + if (@S8Update > 0) set @S8Update$,"^00FF00+"+@S8Update+"^000000"; + if (@S8Update == 0) set @S8Update$,@S8Update; + + if (@S9Update < 0) set @S9Update$,"^FF0000"+@S9Update+"^000000"; + if (@S9Update > 0) set @S9Update$,"^00FF00+"+@S9Update+"^000000"; + if (@S9Update == 0) set @S9Update$,@S9Update; + + if (@S10Update < 0) set @S10Update$,"^FF0000"+@S10Update+"^000000"; + if (@S10Update > 0) set @S10Update$,"^00FF00+"+@S10Update+"^000000"; + if (@S10Update == 0) set @S10Update$,@S10Update; + + // Displays shares & prices // + mes "^21698F"+$S1N$+"^000000" + " " + $S1 + "z (" + @S1Update$ + ")"; + mes "^21698F"+$S2N$+"^000000" + " " + $S2 + "z (" + @S2Update$ + ")"; + mes "^21698F"+$S3N$+"^000000" + " " + $S3 + "z (" + @S3Update$ + ")"; + mes "^21698F"+$S4N$+"^000000" + " " + $S4 + "z (" + @S4Update$ + ")"; + mes "^21698F"+$S5N$+"^000000" + " " + $S5 + "z (" + @S5Update$ + ")"; + mes "^21698F"+$S6N$+"^000000" + " " + $S6 + "z (" + @S6Update$ + ")"; + mes "^21698F"+$S7N$+"^000000" + " " + $S7 + "z (" + @S7Update$ + ")"; + mes "^21698F"+$S8N$+"^000000" + " " + $S8 + "z (" + @S8Update$ + ")"; + mes "^21698F"+$S9N$+"^000000" + " " + $S9 + "z (" + @S9Update$ + ")"; + mes "^21698F"+$S10N$+"^000000" + " " + $S10 + "z (" + @S10Update$ + ")"; + next; + + // GM Menu link // + if (getgmlevel() > 90) goto GM_subMenu; + menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"Cancel",S_Quit; + +GM_subMenu: + menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"GM Menu",GM_Menu,"Cancel",S_Quit; + + // Selling Shares // +S_Sell: + mes "[Stock Market]"; + mes "Enter the name of the share you wish to sell."; + mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply."; + if (#S1 > 0) mes "^0000FF"+$S1N$+"^FF0000" + " x " + #S1 + " [" + $S1 + "z]"; + if (#S2 > 0) mes "^0000FF"+$S2N$+"^FF0000" + " x " + #S2 + " [" + $S2 + "z]"; + if (#S3 > 0) mes "^0000FF"+$S3N$+"^FF0000" + " x " + #S3 + " [" + $S3 + "z]"; + if (#S4 > 0) mes "^0000FF"+$S4N$+"^FF0000" + " x " + #S4 + " [" + $S4 + "z]"; + if (#S5 > 0) mes "^0000FF"+$S5N$+"^FF0000" + " x " + #S5 + " [" + $S5 + "z]"; + if (#S6 > 0) mes "^0000FF"+$S6N$+"^FF0000" + " x " + #S6 + " [" + $S6 + "z]"; + if (#S7 > 0) mes "^0000FF"+$S7N$+"^FF0000" + " x " + #S7 + " [" + $S7 + "z]"; + if (#S8 > 0) mes "^0000FF"+$S8N$+"^FF0000" + " x " + #S8 + " [" + $S8 + "z]"; + if (#S9 > 0) mes "^0000FF"+$S9N$+"^FF0000" + " x " + #S9 + " [" + $S9 + "z]"; + if (#S10 > 0) mes "^0000FF"+$S10N$+"^FF0000" + " x " + #S10 + " [" + $S10 + "z]"; + set @sellname$,"0"; + input @sellname$; + set @sellamount,0; + input @sellamount; + if (@sellamount < 1) goto S_SellInv; + if (zeny < $S_Trans) goto S_NoZeny; + set zeny,zeny-$S_Trans; + +SELLS1: + if (@sellname$ != $S1N$) goto SELLS2; + if (@sellamount > #S1) goto S_SellTooHigh; + set @price,@sellamount*$S1; + set #S1,#S1-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S1N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS2: + if (@sellname$ != $S2N$) goto SELLS3; + if (@sellamount > #S2) goto S_SellTooHigh; + set @price,@sellamount*$S2; + set #S2,#S2-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S2N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS3: + if (@sellname$ != $S3N$) goto SELLS4; + if (@sellamount > #S3) goto S_SellTooHigh; + set @price,@sellamount*$S3; + set #S3,#S3-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S3N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS4: + if (@sellname$ != $S4N$) goto SELLS5; + if (@sellamount > #S4) goto S_SellTooHigh; + set @price,@sellamount*$S4; + set #S4,#S4-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S4N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS5: + if (@sellname$ != $S5N$) goto SELLS6; + if (@sellamount > #S5) goto S_SellTooHigh; + set @price,@sellamount*$S5; + set #S5,#S5-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S5N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS6: + if (@sellname$ != $S6N$) goto SELLS7; + if (@sellamount > #S6) goto S_SellTooHigh; + set @price,@sellamount*$S6; + set #S6,#S6-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S6N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS7: + if (@sellname$ != $S7N$) goto SELLS8; + if (@sellamount > #S7) goto S_SellTooHigh; + set @price,@sellamount*$S7; + set #S7,#S7-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S7N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS8: + if (@sellname$ != $S8N$) goto SELLS9; + if (@sellamount > #S8) goto S_SellTooHigh; + set @price,@sellamount*$S8; + set #S8,#S8-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S8N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS9: + if (@sellname$ != $S9N$) goto SELLS10; + if (@sellamount > #S9) goto S_SellTooHigh; + set @price,@sellamount*$S9; + set #S9,#S9-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S9N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS10: + if (@sellname$ != $S10N$) goto SELLS11; + if (@sellamount > #S10) goto S_SellTooHigh; + set @price,@sellamount*$S10; + set #S10,#S10-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S10N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS11: + mes "^FF0000Invalid Share Name.^000000"; + next; + goto S_Start; + +S_SellTooHigh: + mes "^FF0000You don't have that many shares.^000000"; + next; + goto S_Start; + +S_SellInv: + mes "^FF0000Invalid integer.^000000"; + next; + goto S_Start; + + // Buying Shares // +S_Buy: + mes "[Stock Market]"; + mes "Available shares:"; + mes $S1N$; + mes $S2N$; + mes $S3N$; + mes $S4N$; + mes $S5N$; + mes $S6N$; + mes $S7N$; + mes $S8N$; + mes $S9N$; + mes $S10N$; + next; + menu "Continue",-,"Cancel",S_Start; + + mes "Enter the name of the share company"; + mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply."; + set @buyname$,"0"; + input @buyname$; + + set @buyamount,0; + input @buyamount; + // Checks valid number // + if (@buyamount < $S_BuyMin) goto S_TooLow; + if (@buyamount > $S_BuyMax) goto S_TooHigh; + if (zeny < $S_Trans) goto S_NoZeny; + set zeny,zeny-$S_Trans; + + // Purchases the shares // + +PURS1: + if (@buyname$ != $S1N$) goto PURS2; + set @price,@buyamount*$S1; + if (zeny < @price) goto S_NoZeny; + set #S1,#S1+@buyamount; + set @price,@buyamount*$S1; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S1N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS2: + if (@buyname$ != $S2N$) goto PURS3; + set @price,@buyamount*$S2; + if (zeny < @price) goto S_NoZeny; + set #S2,#S2+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S2N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS3: + if (@buyname$ != $S3N$) goto PURS4; + set @price,@buyamount*$S3; + if (zeny < @price) goto S_NoZeny; + set #S3,#S3+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S3N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS4: + if (@buyname$ != $S4N$) goto PURS5; + set @price,@buyamount*$S4; + if (zeny < @price) goto S_NoZeny; + set #S4,#S4+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S4N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS5: + if (@buyname$ != $S5N$) goto PURS6; + set @price,@buyamount*$S5; + if (zeny < @price) goto S_NoZeny; + set #S5,#S5+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S5N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS6: + if (@buyname$ != $S6N$) goto PURS7; + set @price,@buyamount*$S6; + if (zeny < @price) goto S_NoZeny; + set #S6,#S6+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S6N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS7: + if (@buyname$ != $S7N$) goto PURS8; + set @price,@buyamount*$S7; + if (zeny < @price) goto S_NoZeny; + set #S7,#S7+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S7N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS8: + if (@buyname$ != $S8N$) goto PURS9; + set @price,@buyamount*$S8; + if (zeny < @price) goto S_NoZeny; + set #S8,#S8+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S8N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS9: + if (@buyname$ != $S9N$) goto PURS10; + set @price,@buyamount*$S9; + if (zeny < @price) goto S_NoZeny; + set #S9,#S9+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S9N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS10: + if (@buyname$ != $S10N$) goto PURS11; + set @price,@buyamount*$S10; + if (zeny < @price) goto S_NoZeny; + set #S10,#S10+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S10N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS11: + goto S_InvName; + + // Number too low // +S_TooLow: + mes "^FF0000Minimum of " + $S_BuyMin + " shares can be bought at a time.^000000"; + next; + goto S_Start; + + // Number too high // +S_TooHigh: + mes "^FF0000Maximum number of " + $S_BuyMax + " shares can be bought at a time.^000000"; + next; + goto S_Start; + +S_NoZeny: + mes "^FF0000You do not have enough zeny.^000000"; + next; + goto S_Start; + + // Sends user to start if name invalid // +S_InvName: + mes "^FF0000Invalid share name.^000000"; + next; + goto S_Start; + + // Displays your total amount // +S_Port: + mes "[Stock Market]"; + +ACCS1: + if (#S1 < 1) goto ACCS2; + set @S1,#S1*$S1; + mes $S1N$ + ": " + #S1 + " x " + $S1 + "z = " + @S1 + "z"; + +ACCS2: + if (#S2 < 1) goto ACCS3; + set @S2,#S2*$S2; + mes $S2N$ + ": " + #S2 + " x " + $S2 + "z = " + @S2 + "z"; + +ACCS3: + if (#S3 < 1) goto ACCS4; + set @S3,#S3*$S3; + mes $S3N$ + ": " + #S3 + " x " + $S3 + "z = " + @S3 + "z"; + +ACCS4: + if (#S4 < 1) goto ACCS5; + set @S4,#S4*$S4; + mes $S4N$ + ": " + #S4 + " x " + $S4 + "z = " + @S4 + "z"; + +ACCS5: + if (#S5 < 1) goto ACCS6; + set @S5,#S5*$S5; + mes $S5N$ + ": " + #S5 + " x " + $S5 + "z = " + @S5 + "z"; + +ACCS6: + if (#S6 < 1) goto ACCS7; + set @S6,#S6*$S6; + mes $S6N$ + ": " + #S6 + " x " + $S6 + "z = " + @S6 + "z"; + +ACCS7: + if (#S7 < 1) goto ACCS8; + set @S7,#S7*$S7; + mes $S7N$ + ": " + #S7 + " x " + $S7 + "z = " + @S7 + "z"; + +ACCS8: + if (#S8 < 1) goto ACCS9; + set @S8,#S8*$S8; + mes $S8N$ + ": " + #S8 + " x " + $S8 + "z = " + @S8 + "z"; + +ACCS9: + if (#S9 < 1) goto ACCS10; + set @S9,#S9*$S9; + mes $S9N$ + ": " + #S9 + " x " + $S9 + "z = " + @S9 + "z"; + +ACCS10: + if (#S10 < 1) goto ACCS11; + set @S10,#S10*$S10; + mes $S10N$ + ": " + #S10 + " x " + $S10 + "z = " + @S10 + "z"; + + // Total // +ACCS11: + set @total,@S1 + @S2 + @S3 + @S4 + @S5 + @S6 + @S7 + @S8 + @S9 + @S10; + mes "Total value: "+@total+"z"; + next; + goto S_Start; + + + // GM MENU // +GM_Menu: + mes "[Stock Market]"; + mes "Master, do you require anything?"; + menu "Fluctuate Market",S_Fluc,"Reset Prices",GM_Open,"Nothing",S_Start; + +S_Fluc: + set $fluc,rand (-6,6); + set $S1B,$S1; + set $S1,$S1+$fluc; + if ($S1 < 25) set $S1,$S1+3; + if ($S1 < 50) set $S1,$S1+2; + if ($S1 > 150) set $S1,$S1-2; + if ($S1 > 175) set $S1,$S1-3; + if ($S1 < 1) set $S1,1; + + set $fluc,rand (-6,6); + set $S2B,$S2; + set $S2,$S2+$fluc; + if ($S2 < 25) set $S2,$S2+3; + if ($S2 < 50) set $S2,$S2+2; + if ($S2 > 150) set $S2,$S2-2; + if ($S2 > 175) set $S2,$S2-3; + if ($S2 < 2) set $S2,1; + + set $fluc,rand (-6,6); + set $S3B,$S3; + set $S3,$S3+$fluc; + if ($S3 < 25) set $S3,$S3+3; + if ($S3 < 50) set $S3,$S3+2; + if ($S3 > 150) set $S3,$S3-2; + if ($S3 > 175) set $S3,$S3-3; + if ($S3 < 1) set $S3,1; + + set $fluc,rand (-6,6); + set $S4B,$S4; + set $S4,$S4+$fluc; + if ($S4 < 25) set $S4,$S4+3; + if ($S4 < 50) set $S4,$S4+2; + if ($S4 > 150) set $S4,$S4-2; + if ($S4 > 175) set $S4,$S4-3; + if ($S4 < 1) set $S4,1; + + set $fluc,rand (-6,6); + set $S5B,$S5; + set $S5,$S5+$fluc; + if ($S5 < 25) set $S5,$S5+3; + if ($S5 < 50) set $S5,$S5+2; + if ($S5 > 150) set $S5,$S5-2; + if ($S5 > 175) set $S5,$S5-3; + if ($S5 < 1) set $S5,1; + + set $fluc,rand (-6,6); + set $S6B,$S6; + set $S6,$S6+$fluc; + if ($S6 < 25) set $S6,$S6+3; + if ($S6 < 50) set $S6,$S6+2; + if ($S6 > 150) set $S6,$S6-2; + if ($S6 > 175) set $S6,$S6-3; + if ($S6 < 1) set $S6,1; + + set $fluc,rand (-6,6); + set $S7B,$S7; + set $S7,$S7+$fluc; + if ($S7 < 25) set $S7,$S7+3; + if ($S7 < 50) set $S7,$S7+2; + if ($S7 > 150) set $S7,$S7-2; + if ($S7 > 175) set $S7,$S7-3; + if ($S7 < 1) set $S7,1; + + set $fluc,rand (-6,6); + set $S8B,$S8; + set $S8,$S8+$fluc; + if ($S8 < 25) set $S8,$S8+3; + if ($S8 < 50) set $S8,$S8+2; + if ($S8 > 150) set $S8,$S8-2; + if ($S8 > 175) set $S8,$S8-3; + if ($S8 < 1) set $S8,1; + + set $fluc,rand (-6,6); + set $S9B,$S9; + set $S9,$S9+$fluc; + if ($S9 < 25) set $S9,$S9+3; + if ($S9 < 50) set $S9,$S9+2; + if ($S9 > 150) set $S9,$S9-2; + if ($S9 > 175) set $S9,$S9-3; + if ($S9 < 1) set $S9,1; + + set $fluc,rand (-6,6); + set $S10B,$S10; + set $S10,$S10+$fluc; + if ($S10 < 25) set $S10,$S10+3; + if ($S10 < 50) set $S10,$S10+2; + if ($S10 > 150) set $S10,$S10-2; + if ($S10 > 175) set $S10,$S10-3; + if ($S10 < 1) set $S10,1; + + set $S_LastUpd$,"GM Fluctuation"; + mes "Market fluctuated."; + close; + +GM_Open: + menu "Set prices to...",GM_Set,"Cancel",-; + mes "Farewell."; + close; + +GM_Set: + mes "Are you sure you want to reset?"; + mes "^FF0000All share values will become the same.^000000"; + next; + menu "Yes",-,"No",GM_Menu; + set @gmset,0; + input @gmset; + set $S1,@gmset; + set $S2,@gmset; + set $S3,@gmset; + set $S4,@gmset; + set $S5,@gmset; + set $S6,@gmset; + set $S7,@gmset; + set $S8,@gmset; + set $S9,@gmset; + set $S10,@gmset; + set $S1B,@gmset; + set $S2B,@gmset; + set $S3B,@gmset; + set $S4B,@gmset; + set $S5B,@gmset; + set $S6B,@gmset; + set $S7B,@gmset; + set $S8B,@gmset; + set $S9B,@gmset; + set $S10B,@gmset; + mes "All prices changed to " + @gmset + "z."; + close; + +S_Quit: + mes "[Stock Market]"; + mes "Goodbye."; + close; +} diff --git a/npc/custom/etc/wandering_poets.txt b/npc/custom/etc/wandering_poets.txt new file mode 100644 index 000000000..d9a36c0c4 --- /dev/null +++ b/npc/custom/etc/wandering_poets.txt @@ -0,0 +1,712 @@ +//===== rAthena Script ======================================= +//= Wandering Poets +//===== By: ================================================== +//= MouseJstr +//===== Current Version: ===================================== +//= 0.2a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= +//===== Additional Comments: ================================= +//= +//============================================================ + +ayothaya,58,134,5 script Louise Gluck 763,{ + mes "[Louise Gluck]"; + mes "What is the next line? "; + close; +OnTimer5000: + npcwalkto 65,129; + npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; + end; +OnTimer10000: + npcwalkto 71,131; + npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; + end; +OnTimer15000: + npcwalkto 75,127; + npctalk "Beware the Jabberwock, my son! The jaws that bite, theh claws that catch!"; + end; +OnTimer20000: + npcwalkto 80,122; + npctalk "Beware the Jubjub bird and shun The frumious Bandersnatch!"; + end; +OnTimer25000: + npcwalkto 82,118; + npctalk "He took his vorpal sword in hand: Long time the manxome foe he sought-"; + end; +OnTimer30000: + npcwalkto 93,115; + npctalk "So rested he by the Tumtum tree, And stood a while in thought."; + end; +OnTimer35000: + npcwalkto 94,112; + npctalk "And, as in uffish thought he stood, The Jabberwock, with eyes of flame,"; + end; +OnTimer40000: + npcwalkto 88,124; + npctalk "Came whiffling through the tulgey wood, And burbled as it came!"; + end; +OnTimer45000: + npcwalkto 81,129; + npctalk "One, two! One, two! And through and through The vorpal blade went snicker-snack!"; + end; +OnTimer50000: + npcwalkto 76,139; + npctalk "He left it dead, and with its head He went galumphing back."; + end; +OnTimer55000: + npcwalkto 67,138; + npctalk "And hast though slain the Jabberwock? Come to my arms beamish boy!"; + end; +OnTimer60000: + npcwalkto 59,144; + npctalk "O frabjous day! Callooh! Callay! He chortled in his joy."; + end; +OnTimer65000: + npcwalkto 55,124; + npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; + end; +OnTimer70000: + npcwalkto 58,134; + npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} + +ayothaya,212,276,0 script Romeo 50,{ + mes "[Romeo]"; + mes "What is the next line?"; + close; +OnTimer0: + npctalk "He jests at scars that never felt a wound."; + end; +OnTimer6000: + npctalk "But, soft! what light through yonder window breaks?"; + end; +OnTimer8000: + npctalk "It is the east, and Juliet is the sun."; + end; +OnTimer10000: + npctalk "Arise, fair sun, and kill the envious moon,"; + end; +OnTimer12000: + npctalk "Who is already sick and pale with grief,"; + end; +OnTimer14000: + npctalk "That thou her maid art far more fair than she:"; + end; +OnTimer16000: + npctalk "Be not her maid, since she is envious;"; + end; +OnTimer18000: + npctalk "Her vestal livery is but sick and green"; + end; +OnTimer20000: + npctalk "And none but fools do wear it; cast it off."; + end; +OnTimer22000: + npctalk "It is my lady, O, it is my love!"; + end; +OnTimer24000: + npctalk "O, that she knew she were!"; + end; +OnTimer26000: + npctalk "She speaks yet she says nothing: what of that?"; + end; +OnTimer28000: + npctalk "Her eye discourses; I will answer it."; + end; +OnTimer30000: + npctalk "I am too bold, tis not to me she speaks:"; + end; +OnTimer32000: + npctalk "Two of the fairest stars in all the heaven,"; + end; +OnTimer34000: + npctalk "Having some business, do entreat her eyes"; + end; +OnTimer36000: + npctalk "To twinkle in their spheres till they return."; + end; +OnTimer38000: + npctalk "What if her eyes were there, they in her head?"; + end; +OnTimer40000: + npctalk "The brightness of her cheek would shame those stars,"; + end; +OnTimer42000: + npctalk "As daylight doth a lamp; her eyes in heaven"; + end; +OnTimer44000: + npctalk "Would through the airy region stream so bright"; + end; +OnTimer46000: + npctalk "That birds would sing and think it were not night."; + end; +OnTimer48000: + npctalk "See, how she leans her cheek upon her hand!"; + end; +OnTimer50000: + npctalk "O, that I were a glove upon that hand,"; + end; +OnTimer52000: + npctalk "That I might touch that cheek!"; + end; +OnTimer56000: + npctalk "She speaks:"; + end; +OnTimer58000: + npctalk "O, speak again, bright angel! for thou art"; + end; +OnTimer60000: + npctalk "As glorious to this night, being oer my head"; + end; +OnTimer62000: + npctalk "As is a winged messenger of heaven"; + end; +OnTimer64000: + npctalk "Unto the white-upturned wondering eyes"; + end; +OnTimer66000: + npctalk "Of mortals that fall back to gaze on him"; + end; +OnTimer68000: + npctalk "When he bestrides the lazy-pacing clouds"; + end; +OnTimer70000: + npctalk "And sails upon the bosom of the air."; + end; +OnTimer80000: + npctalk "Shall I hear more, or shall I speak at this?"; + end; +OnTimer106000: + npctalk "I take thee at thy word:"; + end; +OnTimer108000: + npctalk "Call me but love, and Ill be new baptized;"; + end; +OnTimer110000: + npctalk "Henceforth I never will be Romeo."; + end; +OnTimer116000: + npctalk "By a name"; + end; +OnTimer118000: + npctalk "I know not how to tell thee who I am:"; + end; +OnTimer120000: + npctalk "My name, dear saint, is hateful to myself,"; + end; +OnTimer122000: + npctalk "Because it is an enemy to thee;"; + end; +OnTimer124000: + npctalk "Had I it written, I would tear the word."; + end; +OnTimer132000: + npctalk "Neither, fair saint, if either thee dislike."; + end; +OnTimer142000: + npctalk "With loves light wings did I oer-perch these walls;"; + end; +OnTimer144000: + npctalk "For stony limits cannot hold love out,"; + end; +OnTimer146000: + npctalk "And what love can do that dares love attempt;"; + end; +OnTimer148000: + npctalk "Therefore thy kinsmen are no let to me."; + end; +OnTimer152000: + npctalk "Alack, there lies more peril in thine eye"; + end; +OnTimer154000: + npctalk "Than twenty of their swords: look thou but sweet,"; + end; +OnTimer156000: + npctalk "And I am proof against their enmity."; + end; +OnTimer160000: + npctalk "I have nights cloak to hide me from their sight;"; + end; +OnTimer162000: + npctalk "And but thou love me, let them find me here:"; + end; +OnTimer164000: + npctalk "My life were better ended by their hate,"; + end; +OnTimer166000: + npctalk "Than death prorogued, wanting of thy love."; + end; +OnTimer170000: + npctalk "By love, who first did prompt me to inquire;"; + end; +OnTimer172000: + npctalk "He lent me counsel and I lent him eyes."; + end; +OnTimer174000: + npctalk "I am no pilot; yet, wert thou as far"; + end; +OnTimer176000: + npctalk "As that vast shore washd with the farthest sea,"; + end; +OnTimer178000: + npctalk "I would adventure for such merchandise."; + end; +OnTimer224000: + npctalk "Lady, by yonder blessed moon I swear"; + end; +OnTimer226000: + npctalk "That tips with silver all these fruit-tree tops--"; + end; +OnTimer234000: + npctalk "What shall I swear by?"; + end; +OnTimer244000: + npctalk "If my hearts dear love--"; + end; +OnTimer264000: + npctalk "O, wilt thou leave me so unsatisfied?"; + end; +OnTimer268000: + npctalk "The exchange of thy loves faithful vow for mine."; + end; +OnTimer274000: + npctalk "Wouldst thou withdraw it? for what purpose, love?"; + end; +OnTimer294000: + npctalk "O blessed, blessed night! I am afeard."; + end; +OnTimer296000: + npctalk "Being in night, all this is but a dream,"; + end; +OnTimer298000: + npctalk "Too flattering-sweet to be substantial."; + end; +OnTimer330000: + npctalk "So thrive my soul--"; + end; +OnTimer334000: + npctalk "A thousand times the worse, to want thy light."; + end; +OnTimer336000: + npctalk "Love goes toward love, as schoolboys from"; + end; +OnTimer338000: + npctalk "their books,"; + end; +OnTimer340000: + npctalk "But love from love, toward school with heavy looks."; + end; +OnTimer356000: + npctalk "It is my soul that calls upon my name:"; + end; +OnTimer358000: + npctalk "How silver-sweet sound lovers tongues by night,"; + end; +OnTimer360000: + npctalk "Like softest music to attending ears!"; + end; +OnTimer364000: + npctalk "My dear?"; + end; +OnTimer370000: + npctalk "At the hour of nine."; + end; +OnTimer376000: + npctalk "Let me stand here till thou remember it."; + end; +OnTimer382000: + npctalk "And Ill still stay, to have thee still forget,"; + end; +OnTimer384000: + npctalk "Forgetting any other home but this."; + end; +OnTimer398000: + npctalk "I would I were thy bird."; + end; +OnTimer410000: + npctalk "Sleep dwell upon thine eyes, peace in thy breast!"; + end; +OnTimer412000: + npctalk "Would I were sleep and peace, so sweet to rest!"; + end; +OnTimer414000: + npctalk "Hence will I to my ghostly fathers cell,"; + end; +OnTimer416000: + npctalk "His help to crave, and my dear hap to tell."; + end; +OnTimer538000: + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} + +ayothaya,214,279,3 script Juliet 53,{ + mes "[Juliet]"; + mes "What is the next line? "; + close; +OnTimer54000: + npctalk "Ay me!"; + end; +OnTimer72000: + npctalk "O Romeo, Romeo! wherefore art thou Romeo?"; + end; +OnTimer74000: + npctalk "Deny thy father and refuse thy name;"; + end; +OnTimer76000: + npctalk "Or, if thou wilt not, be but sworn my love,"; + end; +OnTimer78000: + npctalk "And Ill no longer be a Capulet."; + end; +OnTimer82000: + npctalk "Tis but thy name that is my enemy;"; + end; +OnTimer84000: + npctalk "Thou art thyself, though not a Montague."; + end; +OnTimer86000: + npctalk "Whats Montague? it is nor hand, nor foot,"; + end; +OnTimer88000: + npctalk "Nor arm, nor face, nor any other part"; + end; +OnTimer90000: + npctalk "Belonging to a man. O, be some other name!"; + end; +OnTimer92000: + npctalk "Whats in a name? that which we call a rose"; + end; +OnTimer94000: + npctalk "By any other name would smell as sweet;"; + end; +OnTimer96000: + npctalk "So Romeo would, were he not Romeo calld,"; + end; +OnTimer98000: + npctalk "Retain that dear perfection which he owes"; + end; +OnTimer100000: + npctalk "Without that title. Romeo, doff thy name,"; + end; +OnTimer102000: + npctalk "And for that name which is no part of thee"; + end; +OnTimer104000: + npctalk "Take all myself."; + end; +OnTimer112000: + npctalk "What man art thou that thus bescreend in night"; + end; +OnTimer114000: + npctalk "So stumblest on my counsel?"; + end; +OnTimer126000: + npctalk "My ears have not yet drunk a hundred words"; + end; +OnTimer128000: + npctalk "Of that tongues utterance, yet I know the sound:"; + end; +OnTimer130000: + npctalk "Art thou not Romeo and a Montague?"; + end; +OnTimer134000: + npctalk "How camest thou hither, tell me, and wherefore?"; + end; +OnTimer136000: + npctalk "The orchard walls are high and hard to climb,"; + end; +OnTimer138000: + npctalk "And the place death, considering who thou art,"; + end; +OnTimer140000: + npctalk "If any of my kinsmen find thee here."; + end; +OnTimer150000: + npctalk "If they do see thee, they will murder thee."; + end; +OnTimer158000: + npctalk "I would not for the world they saw thee here."; + end; +OnTimer168000: + npctalk "By whose direction foundst thou out this place?"; + end; +OnTimer180000: + npctalk "Thou knowst the mask of night is on my face,"; + end; +OnTimer182000: + npctalk "Else would a maiden blush bepaint my cheek"; + end; +OnTimer184000: + npctalk "For that which thou hast heard me speak to-night"; + end; +OnTimer186000: + npctalk "Fain would I dwell on form, fain, fain deny"; + end; +OnTimer188000: + npctalk "What I have spoke: but farewell compliment!"; + end; +OnTimer190000: + npctalk "Dost thou love me? I know thou wilt say Ay,"; + end; +OnTimer192000: + npctalk "And I will take thy word: yet if thou swearst,"; + end; +OnTimer194000: + npctalk "Thou mayst prove false; at lovers perjuries"; + end; +OnTimer196000: + npctalk "Then say, Jove laughs. O gentle Romeo,"; + end; +OnTimer198000: + npctalk "If thou dost love, pronounce it faithfully:"; + end; +OnTimer200000: + npctalk "Or if thou thinkst I am too quickly won,"; + end; +OnTimer202000: + npctalk "Ill frown and be perverse an say thee nay,"; + end; +OnTimer204000: + npctalk "So thou wilt woo; but else, not for the world."; + end; +OnTimer206000: + npctalk "In truth, fair Montague, I am too fond,"; + end; +OnTimer208000: + npctalk "And therefore thou mayst think my havior light:"; + end; +OnTimer210000: + npctalk "But trust me, gentleman, Ill prove more true"; + end; +OnTimer212000: + npctalk "Than those that have more cunning to be strange."; + end; +OnTimer214000: + npctalk "I should have been more strange, I must confess,"; + end; +OnTimer216000: + npctalk "But that thou overheardst, ere I was ware,"; + end; +OnTimer218000: + npctalk "My true loves passion: therefore pardon me,"; + end; +OnTimer220000: + npctalk "And not impute this yielding to light love,"; + end; +OnTimer222000: + npctalk "Which the dark night hath so discovered."; + end; +OnTimer228000: + npctalk "O, swear not by the moon, the inconstant moon,"; + end; +OnTimer230000: + npctalk "That monthly changes in her circled orb,"; + end; +OnTimer232000: + npctalk "Lest that thy love prove likewise variable."; + end; +OnTimer236000: + npctalk "Do not swear at all;"; + end; +OnTimer238000: + npctalk "Or, if thou wilt, swear by thy gracious self,"; + end; +OnTimer240000: + npctalk "Which is the god of my idolatry,"; + end; +OnTimer242000: + npctalk "And Ill believe thee."; + end; +OnTimer246000: + npctalk "Well, do not swear: although I joy in thee,"; + end; +OnTimer248000: + npctalk "I have no joy of this contract to-night:"; + end; +OnTimer250000: + npctalk "It is too rash, too unadvised, too sudden;"; + end; +OnTimer252000: + npctalk "Too like the lightning, which doth cease to be"; + end; +OnTimer254000: + npctalk "Ere one can say It lightens. Sweet, good night!"; + end; +OnTimer256000: + npctalk "This bud of love, by summers ripening breath,"; + end; +OnTimer258000: + npctalk "May prove a beauteous flower when next we meet."; + end; +OnTimer260000: + npctalk "Good night, good night! as sweet repose and rest"; + end; +OnTimer262000: + npctalk "Come to thy heart as that within my breast!"; + end; +OnTimer266000: + npctalk "What satisfaction canst thou have to-night?"; + end; +OnTimer270000: + npctalk "I gave thee mine before thou didst request it:"; + end; +OnTimer272000: + npctalk "And yet I would it were to give again."; + end; +OnTimer276000: + npctalk "But to be frank, and give it thee again."; + end; +OnTimer278000: + npctalk "And yet I wish but for the thing I have:"; + end; +OnTimer280000: + npctalk "My bounty is as boundless as the sea,"; + end; +OnTimer282000: + npctalk "My love as deep; the more I give to thee,"; + end; +OnTimer284000: + npctalk "The more I have, for both are infinite."; + end; +OnTimer288000: + npctalk "I hear some noise within; dear love, adieu!"; + end; +OnTimer290000: + npctalk "Anon, good nurse! Sweet Montague, be true."; + end; +OnTimer292000: + npctalk "Stay but a little, I will come again."; + end; +OnTimer302000: + npctalk "Three words, dear Romeo, and good night indeed."; + end; +OnTimer304000: + npctalk "If that thy bent of love be honourable,"; + end; +OnTimer306000: + npctalk "Thy purpose marriage, send me word to-morrow,"; + end; +OnTimer308000: + npctalk "By one that Ill procure to come to thee,"; + end; +OnTimer310000: + npctalk "Where and what time thou wilt perform the rite;"; + end; +OnTimer312000: + npctalk "And all my fortunes at thy foot Ill lay"; + end; +OnTimer314000: + npctalk "And follow thee my lord throughout the world."; + end; +OnTimer318000: + npctalk "I come, anon.--But if thou meanst not well,"; + end; +OnTimer320000: + npctalk "I do beseech thee--"; + end; +OnTimer324000: + npctalk "By and by, I come:--"; + end; +OnTimer326000: + npctalk "To cease thy suit, and leave me to my grief:"; + end; +OnTimer328000: + npctalk "To-morrow will I send."; + end; +OnTimer332000: + npctalk "A thousand times good night!"; + end; +OnTimer344000: + npctalk "Hist! Romeo, hist! O, for a falconers voice,"; + end; +OnTimer346000: + npctalk "To lure this tassel-gentle back again!"; + end; +OnTimer348000: + npctalk "Bondage is hoarse, and may not speak aloud;"; + end; +OnTimer350000: + npctalk "Else would I tear the cave where Echo lies,"; + end; +OnTimer352000: + npctalk "And make her airy tongue more hoarse than mine,"; + end; +OnTimer354000: + npctalk "With repetition of my Romeos name."; + end; +OnTimer362000: + npctalk "Romeo!"; + end; +OnTimer366000: + npctalk "At what oclock to-morrow"; + end; +OnTimer368000: + npctalk "Shall I send to thee?"; + end; +OnTimer372000: + npctalk "I will not fail: tis twenty years till then."; + end; +OnTimer374000: + npctalk "I have forgot why I did call thee back."; + end; +OnTimer378000: + npctalk "I shall forget, to have thee still stand there,"; + end; +OnTimer380000: + npctalk "Remembering how I love thy company."; + end; +OnTimer386000: + npctalk "Tis almost morning; I would have thee gone:"; + end; +OnTimer388000: + npctalk "And yet no further than a wantons bird;"; + end; +OnTimer390000: + npctalk "Who lets it hop a little from her hand,"; + end; +OnTimer392000: + npctalk "Like a poor prisoner in his twisted gyves,"; + end; +OnTimer394000: + npctalk "And with a silk thread plucks it back again,"; + end; +OnTimer396000: + npctalk "So loving-jealous of his liberty."; + end; +OnTimer400000: + npctalk "Sweet, so would I:"; + end; +OnTimer402000: + npctalk "Yet I should kill thee with much cherishing."; + end; +OnTimer404000: + npctalk "Good night, good night! parting is such"; + end; +OnTimer406000: + npctalk "sweet sorrow,"; + end; +OnTimer408000: + npctalk "That I shall say good night till it be morrow."; + end; +OnTimer538000: + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} -- cgit v1.2.3-70-g09d2 From 74b92bb34163160e59e24dd6a07c16e30e9743be Mon Sep 17 00:00:00 2001 From: brianluau Date: Fri, 1 Jun 2012 03:40:58 +0000 Subject: - Follow up to r16164 and r16193: used SVN Copy/Move so SVN History is preserved. - Added svn:eol-style=native property for some recently added text files. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16194 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/etc/airplane.txt | 884 ++--- npc/custom/etc/bank.txt | 236 +- npc/custom/etc/bank_kafra.txt | 232 +- npc/custom/etc/blackjack.txt | 694 ++-- npc/custom/etc/floating_rates.txt | 86 +- npc/custom/etc/lottery.txt | 908 ++--- npc/custom/etc/market.txt | 78 +- npc/custom/etc/monster_arena.txt | 1802 ++++----- npc/custom/etc/morroc_raceway.txt | 476 +-- npc/custom/etc/mvp_arena.txt | 642 ++-- npc/custom/etc/penal_servitude.txt | 386 +- npc/custom/etc/rpsroulette.txt | 572 +-- npc/custom/etc/shifty_assassin.txt | 398 +- npc/custom/etc/stock_market.txt | 1582 ++++---- npc/custom/etc/wandering_poets.txt | 1424 +++---- npc/custom/healer.txt | 96 +- npc/custom/item_signer.txt | 446 +-- npc/custom/itemmall.txt | 86 +- npc/custom/jobmaster.txt | 638 ++-- npc/custom/quest_warper.txt | 4274 ++++++++++----------- npc/custom/resetnpc.txt | 122 +- npc/custom/stylist.txt | 64 +- npc/merchants/falcon_flute.txt | 246 +- npc/quests/collection/quest_disguiseloliruri.txt | 300 +- npc/quests/collection/quest_mantis.txt | 202 +- npc/quests/collection/quest_zhupolong.txt | 202 +- npc/quests/eden/56-70.txt | 2878 +++++++------- npc/quests/magic_books.txt | 4322 +++++++++++----------- npc/quests/pile_bunker.txt | 118 +- src/login/login.h | 2 +- 30 files changed, 12198 insertions(+), 12198 deletions(-) (limited to 'npc/custom/etc') diff --git a/npc/custom/etc/airplane.txt b/npc/custom/etc/airplane.txt index fe03c2bf8..2469b6a24 100644 --- a/npc/custom/etc/airplane.txt +++ b/npc/custom/etc/airplane.txt @@ -1,442 +1,442 @@ -//===== rAthena Script ======================================= -//= elRO Airship -//===== By: ================================================== -//= Draike, Bluto, Hephaestus -//===== Current Version: ===================================== -//= 2.2a -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= It's the elRO airship. XD -//===== Additional Comments: ================================= -//= ALWAYS HAVE AT LEAST TWELVE (12) LOCATIONS AS THE MINIMUM. This is unless you modify to OnMinutes and change the schedule around. -//= If you have "airplane,103,72,0 warp airs02a 1,1,airplane,102,200" as a warp, remove it. Where it's supposed to go, I have no clue. -//= 2.1 Removed Duplicates [Silent] -//= 2.2 Added missing next;'s [Evera] -//============================================================ - -payon,153,43,5 script itinsetter -1,{ - //This is just OnInit stuff to set the hourly intinerary. -OnInit: - deletearray $locationsname$[0],500; - deletearray $locationsmap$[0],500; - deletearray $locationsx[0],500; - deletearray $locationsy[0],500; - deletearray $alreadygoneto[0],500; - setarray $locationsname$[0],"Airport"; - setarray $locationsname$[1],"Prontera"; - setarray $locationsname$[2],"Payon"; - setarray $locationsname$[3],"Aldebaran"; - setarray $locationsname$[4],"Alberta"; - setarray $locationsname$[5],"Geffen"; - setarray $locationsname$[6],"Morocc"; - setarray $locationsname$[7],"Glast Heim"; - setarray $locationsname$[8],"Umbala"; - setarray $locationsname$[9],"Comodo"; - setarray $locationsname$[10],"Amatsu"; - setarray $locationsname$[11],"Niflheim"; - setarray $locationsname$[12],"Lutie"; - setarray $locationsname$[13],"Louyang"; - setarray $locationsname$[14],"Gonryun"; - setarray $locationsname$[15],"Yuno"; - setarray $locationsname$[16],"Ant Hell"; - setarray $locationsname$[17],"Jawaii"; - setarray $locationsname$[18],"Orc Village"; - setarray $locationsname$[19],"Mjolnir Coal Mines"; - setarray $locationsname$[20],"Gefenia Ruins"; - setarray $locationsname$[21],"Ayothaya"; - setarray $locationsname$[22],"Lighthalzen"; - setarray $locationsname$[23],"Juperos"; - setarray $locationsmap$[0],"airport"; - setarray $locationsmap$[1],"prt_fild08"; - setarray $locationsmap$[2],"pay_fild08"; - setarray $locationsmap$[3],"mjolnir_12"; - setarray $locationsmap$[4],"pay_fild03"; - setarray $locationsmap$[5],"gef_fild00"; - setarray $locationsmap$[6],"moc_fild10"; - setarray $locationsmap$[7],"glast_01"; - setarray $locationsmap$[8],"umbala"; - setarray $locationsmap$[9],"comodo"; - setarray $locationsmap$[10],"amatsu"; - setarray $locationsmap$[11],"niflheim"; - setarray $locationsmap$[12],"xmas"; - setarray $locationsmap$[13],"louyang"; - setarray $locationsmap$[14],"gonryun"; - setarray $locationsmap$[15],"yuno"; - setarray $locationsmap$[16],"moc_fild04"; - setarray $locationsmap$[17],"jawaii"; - setarray $locationsmap$[18],"gef_fild10"; - setarray $locationsmap$[19],"mjolnir_02"; - setarray $locationsmap$[20],"gefenia01"; - setarray $locationsmap$[21],"ayothaya"; - setarray $locationsmap$[22],"lighthalzen"; - setarray $locationsmap$[23],"jupe_gate"; - setarray $locationsx[0],148; - setarray $locationsx[1],206; - setarray $locationsx[2],159; - setarray $locationsx[3],62; - setarray $locationsx[4],194; - setarray $locationsx[5],50; - setarray $locationsx[6],163; - setarray $locationsx[7],196; - setarray $locationsx[8],187; - setarray $locationsx[9],203; - setarray $locationsx[10],115; - setarray $locationsx[11],132; - setarray $locationsx[12],232; - setarray $locationsx[13],36; - setarray $locationsx[14],82; - setarray $locationsx[15],58; - setarray $locationsx[16],209; - setarray $locationsx[17],248; - setarray $locationsx[18],158; - setarray $locationsx[19],76; - setarray $locationsx[20],98; - setarray $locationsx[21],183; - setarray $locationsx[22],99; - setarray $locationsx[23],46; - setarray $locationsy[0],45; - setarray $locationsy[1],280; - setarray $locationsy[2],92; - setarray $locationsy[3],381; - setarray $locationsy[4],182; - setarray $locationsy[5],365; - setarray $locationsy[6],172; - setarray $locationsy[7],327; - setarray $locationsy[8],98; - setarray $locationsy[9],76; - setarray $locationsy[10],79; - setarray $locationsy[11],241; - setarray $locationsy[12],308; - setarray $locationsy[13],279; - setarray $locationsy[14],96; - setarray $locationsy[15],194; - setarray $locationsy[16],326; - setarray $locationsy[17],175; - setarray $locationsy[18],95; - setarray $locationsy[19],363; - setarray $locationsy[20],21; - setarray $locationsy[21],104; - setarray $locationsy[22],240; - setarray $locationsy[23],19; - goto resetgoneto; - end; - -setrandomitin: - set $@settervariable,$@settervariable + 1; - setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1); - if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1; - if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin; - setarray $alreadygoneto[$locationn[$@settervariable]], 1; - if($@settervariable<12)goto setrandomitin; - end; - -resetgoneto: - deletearray $alreadygoneto[0], 500; - set $@currenttime, 0; - goto setrandomitin; - -OnMinute00: - set $@currenttime, 1; - callfunc "F_Itinreset",12,1,2; - -OnMinute03: - set $destination,250; - end; - -OnMinute05: - set $@currenttime, 2; - callfunc "F_Itinreset",1,2,3; - -OnMinute08: - set $destination,250; - end; - -OnMinute10: - set $@currenttime, 3; - callfunc "F_Itinreset",2,3,4; - -OnMinute13: - set $destination,250; - end; - -OnMinute15: - set $@currenttime, 4; - callfunc "F_Itinreset",3,4,5; - -OnMinute18: - set $destination,250; - end; - -OnMinute20: - set $@currenttime, 5; - callfunc "F_Itinreset",4,5,6; - -OnMinute23: - set $destination,250; - end; - -OnMinute25: - set $@currenttime, 6; - callfunc "F_Itinreset",5,6,7; - -OnMinute28: - set $destination,250; - end; - -OnMinute30: - set $@currenttime, 7; - callfunc "F_Itinreset",6,7,8; - -OnMinute33: - set $destination,250; - end; - -OnMinute35: - set $@currenttime, 8; - callfunc "F_Itinreset",7,8,9; - -OnMinute38: - set $destination,250; - end; - -OnMinute40: - set $@currenttime, 9; - callfunc "F_Itinreset",8,9,10; - -OnMinute43: - set $destination,250; - end; - -OnMinute45: - set $@currenttime, 10; - callfunc "F_Itinreset",9,10,11; - -OnMinute48: - set $destination,250; - end; - -OnMinute50: - set $@currenttime, 11; - callfunc "F_Itinreset",10,11,12; - -OnMinute53: - set $destination,250; - end; - -OnMinute55: - set $@currenttime, 12; - callfunc "F_Itinreset",11,12,1; - -OnMinute58: - set $destination,250; - end; -} - -function script F_Porter { - if($destination==getarg(0))goto Board; - if($destination!=getarg(0))goto Notime; - -Board: - mes "^FF0000[Porter]^000000"; - mes "The plane is currently ported. Would you like to board?"; - next; - menu "Yes.",L_Yes,"No.",L_Nope,"View Hourly Itinerary.",Itin; - -L_Yes: - if($destination!=getarg(0))goto Notime; - warp "airplane", 105, 72; - specialeffect2 501; -L_Nope: - mes "^FF0000[Porter]^000000"; - mes "Have a good day. Thank you for traveling with Airship."; - close; - -Notime: - mes "^FF0000[Porter]^000000"; - if(sex==0) mes "Sorry, ma'am, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; - if(sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; - next; - menu "Yes, please.",Itin,"No thanks.",L_Nope; - close; - end; - -Itin: - mes "^FF0000[Porter]^000000"; - callfunc "F_Itin"; -} - -airport,153,43,5 script Airport Porter 774,{ - callfunc "F_Porter",0; -} -prt_fild08,206,279,5 script Porter#01 774,{ - callfunc "F_Porter",1; -} -gef_fild00,50,364,5 script Porter#02 774,{ - callfunc "F_Porter",5; -} -moc_fild10,163,173,5 script Porter#03 774,{ - callfunc "F_Porter",6; -} -mjolnir_12,61,380,5 script Porter#04 774,{ - callfunc "F_Porter",3; -} -pay_fild08,159,91,5 script Porter#05 774,{ - callfunc "F_Porter",2; -} -pay_fild03,194,181,5 script Porter#06 774,{ - callfunc "F_Porter",4; -} -glast_01,196,326,1 script Porter#07 774,{ - callfunc "F_Porter",7; -} -umbala,188,98,3 script Porter#08 774,{ - callfunc "F_Porter",8; -} -comodo,203,75,8 script Porter#09 774,{ - callfunc "F_Porter",9; -} -amatsu,115,78,8 script Porter#10 774,{ - callfunc "F_Porter",10; -} -niflheim,132,242,5 script Porter#11 774,{ - callfunc "F_Porter",11; -} -xmas,232,309,5 script Porter#12 774,{ - callfunc "F_Porter",12; -} -louyang,35,279,8 script Porter#13 774,{ - callfunc "F_Porter",13; -} -gonryun,82,95,7 script Porter#14 774,{ - callfunc "F_Porter",14; -} -yuno,58,195,4 script Porter#15 774,{ - callfunc "F_Porter",15; -} -moc_fild04,210,326,2 script Porter#16 774,{ - callfunc "F_Porter",16; -} -jawaii,247,174,7 script Porter#17 774,{ - callfunc "F_Porter",17; -} -gef_fild10,159,95,2 script Porter#18 774,{ - callfunc "F_Porter",18; -} -mjolnir_02,76,364,5 script Porter#19 774,{ - callfunc "F_Porter",19; -} -gefenia01,97,22,6 script Porter#20 774,{ - callfunc "F_Porter",20; -} -ayothaya,182,105,5 script Porter#21 774,{ - callfunc "F_Porter",21; -} -lighthalzen,99,241,4 script Porter#22 774,{ - callfunc "F_Porter",22; -} -jupe_gate,46,18,7 script Porter#23 774,{ - callfunc "F_Porter",23; -} -airport,141,43,5 script Itinerary Schedule 837,{ - mes "^FF0000[Itinerary]^000000"; - callfunc "F_Itin"; -} - -airplane,102,68,5 script Docker 852,{ - if($destination == 250) goto Nowhere; - mes "^FF0000[Airplane Attendant]^000000"; - if($destination == 250)goto Notime; - set @dockky, $destination; - if($destination != 250)mes "We are currently docked at "+$locationsname$[$destination]+". Would you like to exit?"; - next; - menu "Yes.",Lyes,"No.",Lnope; - -Lyes: - if($destination == 250)goto Notime; - if($destination != @dockky)goto Notime; - warp $locationsmap$[$destination], $locationsx[$destination], $locationsy[$destination]; - specialeffect2 501; - -Lnope: - mes "^FF0000[Airplane Attendant]^000000"; - mes "Have a good day. Thank you for traveling with us."; - close; - -Notime: - mes "^FF0000[Airplane Attendant]^000000"; - if(sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait."; - if(sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait."; - close; - -Nowhere: - mes "^FF0000[Airplane Attendant]^000000"; - mes "We're currently in air. Please wait until the pilot has announced that we have safely landed."; - close; -} - -function script F_Itin { - //This is the itinerary's function. It should work well enough. - if($@currenttime==0)mes "Try again later. A recent server reboot or rehash has messed the itinerary up for a bit."; - if($@currenttime==0)close; - if($@currenttime==0)end; - set @tempo, 0; - set @tempo, $@currenttime - 1; - goto seta; - close; - -seta: - set @tempo, @tempo + 1; - set @time, gettime(3); - set @minutes, 5 * @tempo - 5; - set @minutess, 5 * @tempo - 2; - if(@minutes<10)set @minutes$, "0" + @minutes; - if(@minutes>9)set @minutes$, @minutes; - if(@minutess<10)set @minutess$, "0" + @minutess; - if(@minutess>9)set @minutess$, @minutess; - if(@time<12)set @time$,@time; - if(@time==12)set @time$,12; - if(@time>12)set @time$,@time - 12; - if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; - if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; - if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$ + ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; - if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; - if(@tempo<12)goto seta; - set @tempo, 0; - goto setb; - -setb: - if($@currenttime - 1==@tempo)goto setc; - set @tempo, @tempo + 1; - set @time, gettime(3) + 1; - set @minutes, 5 * @tempo - 5; - set @minutess, 5 * @tempo - 2; - if(@minutes<10)set @minutes$, "0" + @minutes; - if(@minutes>9)set @minutes$, @minutes; - if(@minutess<10)set @minutess$, "0" + @minutess; - if(@minutess>9)set @minutess$, @minutess; - if(@time<12)set @time$,@time; - if(@time==12)set @time$,12; - if(@time>12)set @time$,@time - 12; - if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; - if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; - if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; - if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; - goto setb; - -setc: - close; - end; -} - -function script F_Itinreset { - setarray $alreadygoneto[$locationn[getarg(0)]], 0; - goto sest; -sest: - setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1); - if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest; - setarray $alreadygoneto[$locationn[getarg(0)]], 1; - set $destination,$locationn[$@currenttime]; - announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16; - end; -} +//===== rAthena Script ======================================= +//= elRO Airship +//===== By: ================================================== +//= Draike, Bluto, Hephaestus +//===== Current Version: ===================================== +//= 2.2a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= It's the elRO airship. XD +//===== Additional Comments: ================================= +//= ALWAYS HAVE AT LEAST TWELVE (12) LOCATIONS AS THE MINIMUM. This is unless you modify to OnMinutes and change the schedule around. +//= If you have "airplane,103,72,0 warp airs02a 1,1,airplane,102,200" as a warp, remove it. Where it's supposed to go, I have no clue. +//= 2.1 Removed Duplicates [Silent] +//= 2.2 Added missing next;'s [Evera] +//============================================================ + +payon,153,43,5 script itinsetter -1,{ + //This is just OnInit stuff to set the hourly intinerary. +OnInit: + deletearray $locationsname$[0],500; + deletearray $locationsmap$[0],500; + deletearray $locationsx[0],500; + deletearray $locationsy[0],500; + deletearray $alreadygoneto[0],500; + setarray $locationsname$[0],"Airport"; + setarray $locationsname$[1],"Prontera"; + setarray $locationsname$[2],"Payon"; + setarray $locationsname$[3],"Aldebaran"; + setarray $locationsname$[4],"Alberta"; + setarray $locationsname$[5],"Geffen"; + setarray $locationsname$[6],"Morocc"; + setarray $locationsname$[7],"Glast Heim"; + setarray $locationsname$[8],"Umbala"; + setarray $locationsname$[9],"Comodo"; + setarray $locationsname$[10],"Amatsu"; + setarray $locationsname$[11],"Niflheim"; + setarray $locationsname$[12],"Lutie"; + setarray $locationsname$[13],"Louyang"; + setarray $locationsname$[14],"Gonryun"; + setarray $locationsname$[15],"Yuno"; + setarray $locationsname$[16],"Ant Hell"; + setarray $locationsname$[17],"Jawaii"; + setarray $locationsname$[18],"Orc Village"; + setarray $locationsname$[19],"Mjolnir Coal Mines"; + setarray $locationsname$[20],"Gefenia Ruins"; + setarray $locationsname$[21],"Ayothaya"; + setarray $locationsname$[22],"Lighthalzen"; + setarray $locationsname$[23],"Juperos"; + setarray $locationsmap$[0],"airport"; + setarray $locationsmap$[1],"prt_fild08"; + setarray $locationsmap$[2],"pay_fild08"; + setarray $locationsmap$[3],"mjolnir_12"; + setarray $locationsmap$[4],"pay_fild03"; + setarray $locationsmap$[5],"gef_fild00"; + setarray $locationsmap$[6],"moc_fild10"; + setarray $locationsmap$[7],"glast_01"; + setarray $locationsmap$[8],"umbala"; + setarray $locationsmap$[9],"comodo"; + setarray $locationsmap$[10],"amatsu"; + setarray $locationsmap$[11],"niflheim"; + setarray $locationsmap$[12],"xmas"; + setarray $locationsmap$[13],"louyang"; + setarray $locationsmap$[14],"gonryun"; + setarray $locationsmap$[15],"yuno"; + setarray $locationsmap$[16],"moc_fild04"; + setarray $locationsmap$[17],"jawaii"; + setarray $locationsmap$[18],"gef_fild10"; + setarray $locationsmap$[19],"mjolnir_02"; + setarray $locationsmap$[20],"gefenia01"; + setarray $locationsmap$[21],"ayothaya"; + setarray $locationsmap$[22],"lighthalzen"; + setarray $locationsmap$[23],"jupe_gate"; + setarray $locationsx[0],148; + setarray $locationsx[1],206; + setarray $locationsx[2],159; + setarray $locationsx[3],62; + setarray $locationsx[4],194; + setarray $locationsx[5],50; + setarray $locationsx[6],163; + setarray $locationsx[7],196; + setarray $locationsx[8],187; + setarray $locationsx[9],203; + setarray $locationsx[10],115; + setarray $locationsx[11],132; + setarray $locationsx[12],232; + setarray $locationsx[13],36; + setarray $locationsx[14],82; + setarray $locationsx[15],58; + setarray $locationsx[16],209; + setarray $locationsx[17],248; + setarray $locationsx[18],158; + setarray $locationsx[19],76; + setarray $locationsx[20],98; + setarray $locationsx[21],183; + setarray $locationsx[22],99; + setarray $locationsx[23],46; + setarray $locationsy[0],45; + setarray $locationsy[1],280; + setarray $locationsy[2],92; + setarray $locationsy[3],381; + setarray $locationsy[4],182; + setarray $locationsy[5],365; + setarray $locationsy[6],172; + setarray $locationsy[7],327; + setarray $locationsy[8],98; + setarray $locationsy[9],76; + setarray $locationsy[10],79; + setarray $locationsy[11],241; + setarray $locationsy[12],308; + setarray $locationsy[13],279; + setarray $locationsy[14],96; + setarray $locationsy[15],194; + setarray $locationsy[16],326; + setarray $locationsy[17],175; + setarray $locationsy[18],95; + setarray $locationsy[19],363; + setarray $locationsy[20],21; + setarray $locationsy[21],104; + setarray $locationsy[22],240; + setarray $locationsy[23],19; + goto resetgoneto; + end; + +setrandomitin: + set $@settervariable,$@settervariable + 1; + setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1); + if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1; + if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin; + setarray $alreadygoneto[$locationn[$@settervariable]], 1; + if($@settervariable<12)goto setrandomitin; + end; + +resetgoneto: + deletearray $alreadygoneto[0], 500; + set $@currenttime, 0; + goto setrandomitin; + +OnMinute00: + set $@currenttime, 1; + callfunc "F_Itinreset",12,1,2; + +OnMinute03: + set $destination,250; + end; + +OnMinute05: + set $@currenttime, 2; + callfunc "F_Itinreset",1,2,3; + +OnMinute08: + set $destination,250; + end; + +OnMinute10: + set $@currenttime, 3; + callfunc "F_Itinreset",2,3,4; + +OnMinute13: + set $destination,250; + end; + +OnMinute15: + set $@currenttime, 4; + callfunc "F_Itinreset",3,4,5; + +OnMinute18: + set $destination,250; + end; + +OnMinute20: + set $@currenttime, 5; + callfunc "F_Itinreset",4,5,6; + +OnMinute23: + set $destination,250; + end; + +OnMinute25: + set $@currenttime, 6; + callfunc "F_Itinreset",5,6,7; + +OnMinute28: + set $destination,250; + end; + +OnMinute30: + set $@currenttime, 7; + callfunc "F_Itinreset",6,7,8; + +OnMinute33: + set $destination,250; + end; + +OnMinute35: + set $@currenttime, 8; + callfunc "F_Itinreset",7,8,9; + +OnMinute38: + set $destination,250; + end; + +OnMinute40: + set $@currenttime, 9; + callfunc "F_Itinreset",8,9,10; + +OnMinute43: + set $destination,250; + end; + +OnMinute45: + set $@currenttime, 10; + callfunc "F_Itinreset",9,10,11; + +OnMinute48: + set $destination,250; + end; + +OnMinute50: + set $@currenttime, 11; + callfunc "F_Itinreset",10,11,12; + +OnMinute53: + set $destination,250; + end; + +OnMinute55: + set $@currenttime, 12; + callfunc "F_Itinreset",11,12,1; + +OnMinute58: + set $destination,250; + end; +} + +function script F_Porter { + if($destination==getarg(0))goto Board; + if($destination!=getarg(0))goto Notime; + +Board: + mes "^FF0000[Porter]^000000"; + mes "The plane is currently ported. Would you like to board?"; + next; + menu "Yes.",L_Yes,"No.",L_Nope,"View Hourly Itinerary.",Itin; + +L_Yes: + if($destination!=getarg(0))goto Notime; + warp "airplane", 105, 72; + specialeffect2 501; +L_Nope: + mes "^FF0000[Porter]^000000"; + mes "Have a good day. Thank you for traveling with Airship."; + close; + +Notime: + mes "^FF0000[Porter]^000000"; + if(sex==0) mes "Sorry, ma'am, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; + if(sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; + next; + menu "Yes, please.",Itin,"No thanks.",L_Nope; + close; + end; + +Itin: + mes "^FF0000[Porter]^000000"; + callfunc "F_Itin"; +} + +airport,153,43,5 script Airport Porter 774,{ + callfunc "F_Porter",0; +} +prt_fild08,206,279,5 script Porter#01 774,{ + callfunc "F_Porter",1; +} +gef_fild00,50,364,5 script Porter#02 774,{ + callfunc "F_Porter",5; +} +moc_fild10,163,173,5 script Porter#03 774,{ + callfunc "F_Porter",6; +} +mjolnir_12,61,380,5 script Porter#04 774,{ + callfunc "F_Porter",3; +} +pay_fild08,159,91,5 script Porter#05 774,{ + callfunc "F_Porter",2; +} +pay_fild03,194,181,5 script Porter#06 774,{ + callfunc "F_Porter",4; +} +glast_01,196,326,1 script Porter#07 774,{ + callfunc "F_Porter",7; +} +umbala,188,98,3 script Porter#08 774,{ + callfunc "F_Porter",8; +} +comodo,203,75,8 script Porter#09 774,{ + callfunc "F_Porter",9; +} +amatsu,115,78,8 script Porter#10 774,{ + callfunc "F_Porter",10; +} +niflheim,132,242,5 script Porter#11 774,{ + callfunc "F_Porter",11; +} +xmas,232,309,5 script Porter#12 774,{ + callfunc "F_Porter",12; +} +louyang,35,279,8 script Porter#13 774,{ + callfunc "F_Porter",13; +} +gonryun,82,95,7 script Porter#14 774,{ + callfunc "F_Porter",14; +} +yuno,58,195,4 script Porter#15 774,{ + callfunc "F_Porter",15; +} +moc_fild04,210,326,2 script Porter#16 774,{ + callfunc "F_Porter",16; +} +jawaii,247,174,7 script Porter#17 774,{ + callfunc "F_Porter",17; +} +gef_fild10,159,95,2 script Porter#18 774,{ + callfunc "F_Porter",18; +} +mjolnir_02,76,364,5 script Porter#19 774,{ + callfunc "F_Porter",19; +} +gefenia01,97,22,6 script Porter#20 774,{ + callfunc "F_Porter",20; +} +ayothaya,182,105,5 script Porter#21 774,{ + callfunc "F_Porter",21; +} +lighthalzen,99,241,4 script Porter#22 774,{ + callfunc "F_Porter",22; +} +jupe_gate,46,18,7 script Porter#23 774,{ + callfunc "F_Porter",23; +} +airport,141,43,5 script Itinerary Schedule 837,{ + mes "^FF0000[Itinerary]^000000"; + callfunc "F_Itin"; +} + +airplane,102,68,5 script Docker 852,{ + if($destination == 250) goto Nowhere; + mes "^FF0000[Airplane Attendant]^000000"; + if($destination == 250)goto Notime; + set @dockky, $destination; + if($destination != 250)mes "We are currently docked at "+$locationsname$[$destination]+". Would you like to exit?"; + next; + menu "Yes.",Lyes,"No.",Lnope; + +Lyes: + if($destination == 250)goto Notime; + if($destination != @dockky)goto Notime; + warp $locationsmap$[$destination], $locationsx[$destination], $locationsy[$destination]; + specialeffect2 501; + +Lnope: + mes "^FF0000[Airplane Attendant]^000000"; + mes "Have a good day. Thank you for traveling with us."; + close; + +Notime: + mes "^FF0000[Airplane Attendant]^000000"; + if(sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait."; + if(sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait."; + close; + +Nowhere: + mes "^FF0000[Airplane Attendant]^000000"; + mes "We're currently in air. Please wait until the pilot has announced that we have safely landed."; + close; +} + +function script F_Itin { + //This is the itinerary's function. It should work well enough. + if($@currenttime==0)mes "Try again later. A recent server reboot or rehash has messed the itinerary up for a bit."; + if($@currenttime==0)close; + if($@currenttime==0)end; + set @tempo, 0; + set @tempo, $@currenttime - 1; + goto seta; + close; + +seta: + set @tempo, @tempo + 1; + set @time, gettime(3); + set @minutes, 5 * @tempo - 5; + set @minutess, 5 * @tempo - 2; + if(@minutes<10)set @minutes$, "0" + @minutes; + if(@minutes>9)set @minutes$, @minutes; + if(@minutess<10)set @minutess$, "0" + @minutess; + if(@minutess>9)set @minutess$, @minutess; + if(@time<12)set @time$,@time; + if(@time==12)set @time$,12; + if(@time>12)set @time$,@time - 12; + if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$ + ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@tempo<12)goto seta; + set @tempo, 0; + goto setb; + +setb: + if($@currenttime - 1==@tempo)goto setc; + set @tempo, @tempo + 1; + set @time, gettime(3) + 1; + set @minutes, 5 * @tempo - 5; + set @minutess, 5 * @tempo - 2; + if(@minutes<10)set @minutes$, "0" + @minutes; + if(@minutes>9)set @minutes$, @minutes; + if(@minutess<10)set @minutess$, "0" + @minutess; + if(@minutess>9)set @minutess$, @minutess; + if(@time<12)set @time$,@time; + if(@time==12)set @time$,12; + if(@time>12)set @time$,@time - 12; + if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + goto setb; + +setc: + close; + end; +} + +function script F_Itinreset { + setarray $alreadygoneto[$locationn[getarg(0)]], 0; + goto sest; +sest: + setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1); + if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest; + setarray $alreadygoneto[$locationn[getarg(0)]], 1; + set $destination,$locationn[$@currenttime]; + announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16; + end; +} diff --git a/npc/custom/etc/bank.txt b/npc/custom/etc/bank.txt index 7003e2f65..33fc558f9 100644 --- a/npc/custom/etc/bank.txt +++ b/npc/custom/etc/bank.txt @@ -1,119 +1,119 @@ -//===== rAthena Script ======================================= -//= Banker Script -//===== By: ================================================== -//= Syrus22 (1.0) -//===== Current Version: ===================================== -//= 2.0 -//===== Compatible With: ===================================== -//= Any rAthena version with Account variables. -//===== Description: ========================================= -//= An account wide Banker to store Zeny -//===== Additional Comments: ================================= -//= Syrus22 - There's an optional transaction fee at the top of -//= the script. To use it simply change the first set command -//= to set the cost variable to whatever you want the fee to be. -//= Version 2.0: Optimized and brought the script up to standard. [Jguy] -//============================================================ - -prontera,132,217,5 script Banker 109,{ -set @cost,500; -mes "[Banker]"; -mes "Welcome to the First Bank of Prontera. How can I help you today?"; -next; -switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's my current balance?:Cancel")) { - case 1: - mes "[Banker]"; - mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny."; - next; - if (@cost > 0) { - mes "[Banker]"; - mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!"; - next; - } - input @deposit; - if (@deposit < 1) { - mes "Make sure you ask me to deposit a real amount."; - close; - } - else if (@deposit > Zeny) { - mes "It does not appear like you have the amount of zeny you're trying to deposit!"; - close; - } - else if (@deposit > (Zeny - @cost)) { - mes "You need " + @cost + " Zeny to cover the transaction fee!"; - close; - } - else { - set Zeny,Zeny - @deposit; - set Zeny,Zeny - @cost; - set #bankstorage,#bankstorage + @deposit; - mes "[Banker]"; - mes "Thank you very much... Your zeny is in good hands."; - close; - } - - case 2: - mes "[Banker]"; - mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny"; - next; - if (@cost > 0) { - mes "[Banker]"; - mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!"; - next; - } - input @withdrawl; - if (@withdrawl < 1) { - mes "Please don't play games. I need a real amount to withdraw."; - close; - } - else if (@withdrawl > #bankstorage) { - mes "I show you only have ^00FF00" + #bankstorage +"^000000 zeny in your account!"; - close; - } - else if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) { - mes "[Banker]"; - mes "You don't have the Zeny for the transaction fee right now. Would you like me to take the fee directly from your withdrawl?"; - next; - switch(select("Yes please.:No, Thanks")){ - case 1: - mes "[Banker]"; - mes "Removing " + @cost + " from your withdrawl to cover the deposit fee..."; - set @withdrawl,@withdrawl - @cost; - set #bankstorage,#bankstorage - @cost; - set @cost,0; - next; - set Zeny,Zeny - @cost; - set Zeny,Zeny + @withdrawl; - set #bankstorage,#bankstorage - @withdrawl; - mes "[Banker]"; - mes "There's your Zeny. Have a good day."; - close; - case 2: - mes "[Banker]"; - mes "Very well... come again soon."; - close; - } - } - else { - set Zeny,Zeny - @cost; - set Zeny,Zeny + @withdrawl; - set #bankstorage,#bankstorage - @withdrawl; - mes "[Banker]"; - mes "There's your Zeny. Have a good day."; - close; - } - case 3: - mes "[Banker]"; - mes "Hmmmm let me check some paper work."; - next; - mes "*Rustle, Rustle*"; - next; - mes "[Banker]"; - mes "You currently have " + #bankstorage + " Zeny in your account."; - close; - case 4: - mes "[Banker]"; - mes "Very well... come again soon."; - close; - } +//===== rAthena Script ======================================= +//= Banker Script +//===== By: ================================================== +//= Syrus22 (1.0) +//===== Current Version: ===================================== +//= 2.0 +//===== Compatible With: ===================================== +//= Any rAthena version with Account variables. +//===== Description: ========================================= +//= An account wide Banker to store Zeny +//===== Additional Comments: ================================= +//= Syrus22 - There's an optional transaction fee at the top of +//= the script. To use it simply change the first set command +//= to set the cost variable to whatever you want the fee to be. +//= Version 2.0: Optimized and brought the script up to standard. [Jguy] +//============================================================ + +prontera,132,217,5 script Banker 109,{ +set @cost,500; +mes "[Banker]"; +mes "Welcome to the First Bank of Prontera. How can I help you today?"; +next; +switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's my current balance?:Cancel")) { + case 1: + mes "[Banker]"; + mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny."; + next; + if (@cost > 0) { + mes "[Banker]"; + mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!"; + next; + } + input @deposit; + if (@deposit < 1) { + mes "Make sure you ask me to deposit a real amount."; + close; + } + else if (@deposit > Zeny) { + mes "It does not appear like you have the amount of zeny you're trying to deposit!"; + close; + } + else if (@deposit > (Zeny - @cost)) { + mes "You need " + @cost + " Zeny to cover the transaction fee!"; + close; + } + else { + set Zeny,Zeny - @deposit; + set Zeny,Zeny - @cost; + set #bankstorage,#bankstorage + @deposit; + mes "[Banker]"; + mes "Thank you very much... Your zeny is in good hands."; + close; + } + + case 2: + mes "[Banker]"; + mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny"; + next; + if (@cost > 0) { + mes "[Banker]"; + mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!"; + next; + } + input @withdrawl; + if (@withdrawl < 1) { + mes "Please don't play games. I need a real amount to withdraw."; + close; + } + else if (@withdrawl > #bankstorage) { + mes "I show you only have ^00FF00" + #bankstorage +"^000000 zeny in your account!"; + close; + } + else if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) { + mes "[Banker]"; + mes "You don't have the Zeny for the transaction fee right now. Would you like me to take the fee directly from your withdrawl?"; + next; + switch(select("Yes please.:No, Thanks")){ + case 1: + mes "[Banker]"; + mes "Removing " + @cost + " from your withdrawl to cover the deposit fee..."; + set @withdrawl,@withdrawl - @cost; + set #bankstorage,#bankstorage - @cost; + set @cost,0; + next; + set Zeny,Zeny - @cost; + set Zeny,Zeny + @withdrawl; + set #bankstorage,#bankstorage - @withdrawl; + mes "[Banker]"; + mes "There's your Zeny. Have a good day."; + close; + case 2: + mes "[Banker]"; + mes "Very well... come again soon."; + close; + } + } + else { + set Zeny,Zeny - @cost; + set Zeny,Zeny + @withdrawl; + set #bankstorage,#bankstorage - @withdrawl; + mes "[Banker]"; + mes "There's your Zeny. Have a good day."; + close; + } + case 3: + mes "[Banker]"; + mes "Hmmmm let me check some paper work."; + next; + mes "*Rustle, Rustle*"; + next; + mes "[Banker]"; + mes "You currently have " + #bankstorage + " Zeny in your account."; + close; + case 4: + mes "[Banker]"; + mes "Very well... come again soon."; + close; + } } // EOF \ No newline at end of file diff --git a/npc/custom/etc/bank_kafra.txt b/npc/custom/etc/bank_kafra.txt index 3c9cba5c4..734c129d5 100644 --- a/npc/custom/etc/bank_kafra.txt +++ b/npc/custom/etc/bank_kafra.txt @@ -1,116 +1,116 @@ -//===== rAthena Script ======================================= -//= The 2nd Bank of Prontera (with daily 0.01% income!) -//===== By: ================================================== -//= Lupus (1.0) -//===== Current Version: ===================================== -//= 1.2a -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= A bank which has an interest % -//===== Additional Comments: ================================= -// Look for this formula and setup your Bank daily % interest -// #kafrabank/1000 = 0.1% of interest per day -// #kafrabank/100 = 1% of interest per day -// #kafrabank/10 = 10% of interest per day -// -// 1.1 Added log of bank operation -> logmes "some info"; -// 1.2 Set max income to 100,000z. It would help to avoid -// zeny exploits when you change DATE at your server -// 1.2a Corrected bad duplicate names. (bugreport:921) [Samuray22] -//============================================================ - -- script Bank Clerk::bankg 833,{ - mes"[Maniss]"; - mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!"; - - set @kb_int,(gettime(6)*31)+gettime(5); //today's number - set @income,0; - //calculate % - if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday; - set @income,(#kafrabank/1000)*(@kb_int-#kb_int); //@income == % of the sum - //max income constant: - if (@income>100000) set @income,100000; -L_NoIncomeToday: - set #kb_int,@kb_int; //reset days timer - - if(#kafrabank==0) mes "We could open you an account."; - if(@income>0) mes "Today's income: ^135445" + @income + "^000000 zeny."; - set #kafrabank,#kafrabank+@income; - if(#kafrabank>0) mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; - mes "What would you like?"; - next; - if(#kafrabank==0) menu "-Open an account",-,"-Quit",B_EXIT2; - if(#kafrabank>0) menu "-Deposit money",-,"-Withdraw money",M_WITHDRAW,"-Quit",B_EXIT2; - - mes"[Maniss]"; - mes "Please, tell me how much zeny you would like to deposit."; - next; - if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; - - if(@kafrabank<1000) goto L_LESS_1000; - if(@kafrabank>zeny) goto L_NOT_ENOUGH; - set zeny,zeny-@kafrabank; - set #kafrabank,#kafrabank+@kafrabank; - mes"[Maniss]"; - mes "You've made a deposit of ^135445" + @kafrabank + "z^000000."; - //we log these zeny operations into the log db - logmes "Bank %: " + @income +"z, Deposit: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; - goto B_EXIT; - -M_WITHDRAW: - if(#kafrabank==0) goto L_ZERO_ACCOUNT; - mes"[Maniss]"; - mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; - mes "How much zeny would you like to withdraw?"; - next; - if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; - - if(@kafrabank<1) goto B_EXIT2; - if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH; - set #kafrabank,#kafrabank-@kafrabank; - set zeny,zeny+@kafrabank; - mes"[Maniss]"; - mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here..."; - //we log these zeny operations into the log db - logmes "Bank %: " + @income +"z, Withdraw: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; - goto B_EXIT; - -L_NOT_ENOUGH: - mes"[Maniss]"; - mes "You don't have enough zeny for this operation."; - next; - goto B_EXIT2; - -L_ZERO_ACCOUNT: - mes"[Maniss]"; - mes "You don't have any zeny on your account!"; - next; - goto B_EXIT2; - -L_TOO_BIG_AMOUNT: - mes"[Maniss]"; - mes "Sorry. The maximum deposit you can make on a time is 10,000,000 zeny."; - next; - goto B_EXIT2; - -L_LESS_1000: - mes"[Maniss]"; - mes "We're sorry, the minimum amount of zeny you can deposit is 1,000 zeny."; - next; - goto B_EXIT2; - -B_EXIT: - mes "Very well... Come again soon!"; - next; - -B_EXIT2: - mes"[Maniss]"; - mes "Thank you for using our Bank Service. We hope to see you again soon."; - close; -} - -prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 833 -geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 833 -izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 833 -morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 833 +//===== rAthena Script ======================================= +//= The 2nd Bank of Prontera (with daily 0.01% income!) +//===== By: ================================================== +//= Lupus (1.0) +//===== Current Version: ===================================== +//= 1.2a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= A bank which has an interest % +//===== Additional Comments: ================================= +// Look for this formula and setup your Bank daily % interest +// #kafrabank/1000 = 0.1% of interest per day +// #kafrabank/100 = 1% of interest per day +// #kafrabank/10 = 10% of interest per day +// +// 1.1 Added log of bank operation -> logmes "some info"; +// 1.2 Set max income to 100,000z. It would help to avoid +// zeny exploits when you change DATE at your server +// 1.2a Corrected bad duplicate names. (bugreport:921) [Samuray22] +//============================================================ + +- script Bank Clerk::bankg 833,{ + mes"[Maniss]"; + mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!"; + + set @kb_int,(gettime(6)*31)+gettime(5); //today's number + set @income,0; + //calculate % + if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday; + set @income,(#kafrabank/1000)*(@kb_int-#kb_int); //@income == % of the sum + //max income constant: + if (@income>100000) set @income,100000; +L_NoIncomeToday: + set #kb_int,@kb_int; //reset days timer + + if(#kafrabank==0) mes "We could open you an account."; + if(@income>0) mes "Today's income: ^135445" + @income + "^000000 zeny."; + set #kafrabank,#kafrabank+@income; + if(#kafrabank>0) mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; + mes "What would you like?"; + next; + if(#kafrabank==0) menu "-Open an account",-,"-Quit",B_EXIT2; + if(#kafrabank>0) menu "-Deposit money",-,"-Withdraw money",M_WITHDRAW,"-Quit",B_EXIT2; + + mes"[Maniss]"; + mes "Please, tell me how much zeny you would like to deposit."; + next; + if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; + + if(@kafrabank<1000) goto L_LESS_1000; + if(@kafrabank>zeny) goto L_NOT_ENOUGH; + set zeny,zeny-@kafrabank; + set #kafrabank,#kafrabank+@kafrabank; + mes"[Maniss]"; + mes "You've made a deposit of ^135445" + @kafrabank + "z^000000."; + //we log these zeny operations into the log db + logmes "Bank %: " + @income +"z, Deposit: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; + goto B_EXIT; + +M_WITHDRAW: + if(#kafrabank==0) goto L_ZERO_ACCOUNT; + mes"[Maniss]"; + mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; + mes "How much zeny would you like to withdraw?"; + next; + if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; + + if(@kafrabank<1) goto B_EXIT2; + if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH; + set #kafrabank,#kafrabank-@kafrabank; + set zeny,zeny+@kafrabank; + mes"[Maniss]"; + mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here..."; + //we log these zeny operations into the log db + logmes "Bank %: " + @income +"z, Withdraw: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; + goto B_EXIT; + +L_NOT_ENOUGH: + mes"[Maniss]"; + mes "You don't have enough zeny for this operation."; + next; + goto B_EXIT2; + +L_ZERO_ACCOUNT: + mes"[Maniss]"; + mes "You don't have any zeny on your account!"; + next; + goto B_EXIT2; + +L_TOO_BIG_AMOUNT: + mes"[Maniss]"; + mes "Sorry. The maximum deposit you can make on a time is 10,000,000 zeny."; + next; + goto B_EXIT2; + +L_LESS_1000: + mes"[Maniss]"; + mes "We're sorry, the minimum amount of zeny you can deposit is 1,000 zeny."; + next; + goto B_EXIT2; + +B_EXIT: + mes "Very well... Come again soon!"; + next; + +B_EXIT2: + mes"[Maniss]"; + mes "Thank you for using our Bank Service. We hope to see you again soon."; + close; +} + +prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 833 +geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 833 +izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 833 +morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 833 diff --git a/npc/custom/etc/blackjack.txt b/npc/custom/etc/blackjack.txt index 8362ac5ab..951af3f68 100644 --- a/npc/custom/etc/blackjack.txt +++ b/npc/custom/etc/blackjack.txt @@ -1,347 +1,347 @@ -//===== rAthena Script ======================================= -//= Black Jack -//===== By: ================================================== -//= kobra_k88 -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Black Jack card game. Gameplay based off standard casino -//= black jack rules. Dealer must have at least 17 to stay and will -//= automatically stay at 17 and up. Player must have at least -//= 13 to stay. Aces counted as 11 or 1. Option to "Double Down". -//= Currently does not allow for "insurance", or "splitting" -//= of pairs. -//===== Additional Comments: ================================= -//= -//============================================================ - -cmd_in02,188,89,1 script Black Jack Dealer 57,{ - mes "[Dealer]"; - mes "Hello there! Would you like to play a game of Black Jack?"; -M_Menu: - next; - menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End; - -M_0: - mes "[Dealer]"; - mes "What would you like to know?"; -sM_Menu0: - next; - menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c, - "Ace value.",sM_0d, "Nothing.",M_Menu; - -sM_0a: - mes "[Dealer]"; - mes "Black Jack is a card game in which the goal is to get 21, or as"; - mes "close to 21 points as possible, without going over 21."; - next; - mes "[Dealer]"; - mes "Before the game starts, the player must make a bet. Once the bet"; - mes "has been made, both the dealer and the player are dealt 2 cards"; - mes "each. Depending on what cards you have, you can choose to ^5533FF'stay'^000000,"; - mes "or you can choose to ^5533FF'pull'^000000."; - next; - mes "[Dealer]"; - mes "When you choose to 'stay', you are telling the dealer that you don't"; - mes "need anymore cards. This allows the dealer to pull if he/she"; - mes "wants to. In order to stay, you must have ^FF3355at least 13 points^000000. The"; - mes "dealer can only stay when he/she has^FF3355 17 points or more^000000."; - next; - mes "[Dealer]"; - mes "When you choose to 'pull', you are telling the dealer that you want"; - mes "another card. By pulling more cards you can increase your point"; - mes "total. As long has you have ^FF3355less than 21^000000 points you can pull a"; - mes "card from the deck."; - goto sM_Menu0; -sM_0b: - mes "[Dealer]"; - mes "There are 3 ways to win and loose at Black Jack."; - next; - mes "[Dealer]"; - mes "1.) At the end of a Black Jack round, if you have more points"; - mes "than the dealer you will win the round. Conversely if you have"; - mes "less points than the dealer you will loose."; - next; - mes "[Dealer]"; - mes "2.) If you pull a card that makes your point total go over 21 you"; - mes "will automatically loose the round. This is called a ^5533FF'bust'^000000. If"; - mes "the dealer busts then you will win the round."; - next; - mes "[Dealer]"; - mes "3.) If you have a point total of 21 with the first 2 cards, you"; - mes "will automatically win the round. This is called a ^5533FF'Black Jack'^000000"; - mes "and happens when you get an 'Ace' and a '10 valued' card. If the"; - mes "dealer gets a Black Jack he/she will automatically win the round."; - next; - mes "[Dealer]"; - mes "4.) Besides winning and loosing, you can tie with the dealer. If"; - mes "both you and the dealer have the same point total at the end of a"; - mes "round, this will result in a tie with no winner and no loss or gain"; - mes "in money."; - next; - mes "[Dealer]"; - mes "This is called a ^5533FF'push'^000000 with the dealer. This also"; - mes "applies to both you and the dealer having Black Jack at the same"; - mes "time."; - goto sM_Menu0; -sM_0c: - mes "[Dealer]"; - mes "The 'Double Down' option allows you to double your current bet,"; - mes "but with the drawback that you will only be able to pull one"; - mes "additional card. This option is only available at the beggining of"; - mes "each round."; - next; - mes "[Dealer]"; - mes "An example of when doubling down is useful, is when"; - mes "your first 2 cards give you a point total of 11. You have a good"; - mes "chance of getting 21 or 20 with the next card that you draw. This"; - mes "would be a good hand to double down on."; - goto sM_Menu0; -sM_0d: - mes "[Dealer]"; - mes "The 'Ace' card is a unique card in the game of Black Jack because"; - mes "it can have 2 values. An Ace can be counted as either 11 points,"; - mes "or just 1 point. For example if you had an Ace and a 4, that would"; - mes "give you either 15 or 5 points."; - next; - mes "[Dealer]"; - mes "If you decided to stay, the Ace would automatically be counted as"; - mes "11 points to give you 15 points total."; - next; - mes "[Dealer]"; - mes "If you had decided to pull and received a 9, the ace would"; - mes "automatically be counted as 1 point to give you a total of 14"; - mes "points. If the Ace was counted as 11 points, you would have a"; - mes "point total over 21 and would have lost."; - next; - mes "[Dealer]"; - mes "It is because of the flexibilty you have with the 'Ace' that makes"; - mes "it the most powerfull card in the game."; - goto sM_Menu0; -M_End: - mes "[Dealer]"; - mes "Feel free to come back anytime"; - close; - -//================ -L_Play: - mes "[Dealer]"; - mes "Please place your bets..."; - next; - menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End; - -M_1a: - if(Zeny < 2) goto sL_NotEnuf; - set @bet, 2; - goto L_Cont0; -M_1b: - if(Zeny < 10) goto sL_NotEnuf; - set @bet, 10; - goto L_Cont0; -M_1c: - if(Zeny < 20) goto sL_NotEnuf; - set @bet, 20; - goto L_Cont0; -M_1d: - if(Zeny < 100) goto sL_NotEnuf; - set @bet, 100; - goto L_Cont0; - -sL_NotEnuf: - mes "[Dealer]"; - mes "I'm sorry but you don't have enough zeny to make that bet."; - close; - -L_Cont0: - mes "(the cards are being dealt)"; - next; - deletearray $@card[0],13; - set @dealerTurn, 0; - set @numP, 0; - set @numD, 0; - set @pAce, 0; - set @dAce, 0; - callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; - callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; - callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; - callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; - -//============== -L_Start: - callsub sF_GetTot; - - mes "- Here are the ^FF5533DEALER'S^000000 cards:"; - if (@numD==2) callsub sF_D2cards; - if (@numD==3) callsub sF_D3cards; - if (@numD==4) callsub sF_D4cards; - if (@numD==5) callsub sF_D5cards; - mes " The DEALER has: ^FF5533"+@dealTot+"^000000"; - mes " "; - mes "- Here are ^5533FFYOUR^000000 cards:"; - if (@numP==2) callsub sF_P2cards; - if (@numP==3) callsub sF_P3cards; - if (@numP==4) callsub sF_P4cards; - if (@numP==5) callsub sF_P5cards; - if(@pAce != 1 || @playTot == 21) mes " YOU have: ^5533FF" +@playTot+ "^000000"; - if(@pAce == 1 && @playTot != 21) mes " You have: ^5533FF" +@playTot+ "^000000, or ^5533FF" +(@playTot-10)+ "^000000"; - next; - if(@playTot==21 && @dealTot==21) goto sL_Push; - if(@numP==2 && @playTot == 21) goto sL_Win; - if(@numD==2 && @dealTot == 21) goto sL_Lose; - if(@playTot > 21) goto sL_Lose; - if(@dealTot > 21) goto sL_Win; - if(@numP==2 && @dealerTurn==0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay, "Double Down",M_Double; - if(@dealerTurn == 0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay; - -M_Stay: - mes "[Dealer]"; - if(@playTot < 13) goto sL_PlayToLow; - if(@dealTot > 16) mes "The Dealer stays."; - if(@dealTot > 16 || @numD == 5) goto L_Check; - mes "The Dealer is going to pull"; - next; - callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; - set @dealerTurn, 1; - goto L_Start; - -sL_PlayToLow: - mes "I'm sorry but you do not have a high enough total to stay. You must pull."; - next; - goto M_Hit; - -M_Hit: - if(@numP == 5) goto M_Stay; - callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; - goto L_Start; -M_Double: - mes "[Dealer]"; - mes "Player has chosen to Double Down. You're current bet will be"; - mes "doubled, and you will only be able to pull 1 extra card."; - next; - set @dealerTurn, 1; - set @bet, @bet*2; - callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; - goto L_Start; - -//============= -L_Check: - next; - if(@playTot < @dealTot) goto sL_Lose; - if(@playTot == @dealTot) goto sL_Push; - -sL_Win: - mes "[Dealer]"; - mes "Congratulations, you've won!"; - next; - set Zeny, Zeny + @bet; - goto L_Play; -sL_Lose: - mes "[Dealer]"; - mes "I'm sorry but you've lost."; - set Zeny, Zeny - @bet; - next; - goto L_Play; -sL_Push: - mes "[Dealer]"; - mes "Its a push. You tied with the Dealer."; - next; - goto L_Play; - - -//================================== - // Sub function for dealing/pulling the cards -sF_GetCards: - set @rnd, rand(1,13); - if($@card[@rnd] == 4) goto sF_GetCards; - set $@card[@rnd], $@card[@rnd] + 1; - set getarg(1), @rnd; - if(getarg(1) > 10) set getarg(1), 10; - if(getarg(1) == 1 && getarg(3) < 1) set getarg(1), 11; - if(getarg(1) == 11) set getarg(3), 1; - set getarg(2), " " + getarg(1) + " "; - if(@rnd == 10) set getarg(2), getarg(1); - if(@rnd == 1) set getarg(2), " A "; - if(@rnd == 11) set getarg(2), " J "; - if(@rnd == 12) set getarg(2), " Q "; - if(@rnd == 13) set getarg(2), " K "; - set getarg(0), getarg(0) + 1; - return; - -//================================== - // Sub function for getting the total score for each hand -sF_GetTot: - set @i, 0; - set @dealTot, 0; - set @playTot, 0; - -GetDealTot: - set @dealTot, @dealTot + @dealCard[@i]; - set @i, @i + 1; - if(@i < @numD) goto GetDealTot; - if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10; - set @i, 0; -GetPlayTot: - set @playTot, @playTot + @playCard[@i]; - set @i, @i + 1; - if(@i < @numP) goto GetPlayTot; - if(@pAce == 1 && @playTot > 21) set @pAce, 2; - if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10; - return; - -//======================================= - // Sub function for displaying the Cards -sF_D2cards: - mes " .-----. .-----. "; - mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | "; - mes " '-----' '-----' "; - return; -sF_P2cards: - mes " .-----. .-----. "; - mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | "; - mes " '-----' '-----' "; - return; -sF_D3cards: - mes " .-----. .-----. .-----. "; - mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; - mes " '-----' '-----' '-----' "; - return; -sF_P3cards: - mes " .-----. .-----. .-----. "; - mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | "; - mes " '-----' '-----' '-----' "; - return; -sF_D4cards: - mes " .-----. .-----. .-----. "; - mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; - mes " '-----' '-----' '-----' "; - mes " .-----. "; - mes " | "+@dealCard$[3]+" |"; - mes " '-----' "; - return; -sF_P4cards: - mes " .-----. .-----. .-----. "; - mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" |"; - mes " '-----' '-----' '-----' "; - mes " .-----. "; - mes " | "+@playCard$[3]+" |"; - mes " '-----' "; - return; -sF_D5cards: - mes " .-----. .-----. .-----. "; - mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; - mes " '-----' '-----' '-----' "; - mes " .-----. .-----. "; - mes " | "+@dealCard$[3]+" | | "+@dealCard$[4]+" | "; - mes " '-----' '-----' "; - return; -sF_P5cards: - mes " .-----. .-----. .-----. "; - mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | "; - mes " '-----' '-----' '-----' "; - mes " .-----. .-----. "; - mes " | "+@playCard$[3]+" | | "+@playCard$[4]+" | "; - mes " '-----' '-----' "; - return; -} +//===== rAthena Script ======================================= +//= Black Jack +//===== By: ================================================== +//= kobra_k88 +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Black Jack card game. Gameplay based off standard casino +//= black jack rules. Dealer must have at least 17 to stay and will +//= automatically stay at 17 and up. Player must have at least +//= 13 to stay. Aces counted as 11 or 1. Option to "Double Down". +//= Currently does not allow for "insurance", or "splitting" +//= of pairs. +//===== Additional Comments: ================================= +//= +//============================================================ + +cmd_in02,188,89,1 script Black Jack Dealer 57,{ + mes "[Dealer]"; + mes "Hello there! Would you like to play a game of Black Jack?"; +M_Menu: + next; + menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End; + +M_0: + mes "[Dealer]"; + mes "What would you like to know?"; +sM_Menu0: + next; + menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c, + "Ace value.",sM_0d, "Nothing.",M_Menu; + +sM_0a: + mes "[Dealer]"; + mes "Black Jack is a card game in which the goal is to get 21, or as"; + mes "close to 21 points as possible, without going over 21."; + next; + mes "[Dealer]"; + mes "Before the game starts, the player must make a bet. Once the bet"; + mes "has been made, both the dealer and the player are dealt 2 cards"; + mes "each. Depending on what cards you have, you can choose to ^5533FF'stay'^000000,"; + mes "or you can choose to ^5533FF'pull'^000000."; + next; + mes "[Dealer]"; + mes "When you choose to 'stay', you are telling the dealer that you don't"; + mes "need anymore cards. This allows the dealer to pull if he/she"; + mes "wants to. In order to stay, you must have ^FF3355at least 13 points^000000. The"; + mes "dealer can only stay when he/she has^FF3355 17 points or more^000000."; + next; + mes "[Dealer]"; + mes "When you choose to 'pull', you are telling the dealer that you want"; + mes "another card. By pulling more cards you can increase your point"; + mes "total. As long has you have ^FF3355less than 21^000000 points you can pull a"; + mes "card from the deck."; + goto sM_Menu0; +sM_0b: + mes "[Dealer]"; + mes "There are 3 ways to win and loose at Black Jack."; + next; + mes "[Dealer]"; + mes "1.) At the end of a Black Jack round, if you have more points"; + mes "than the dealer you will win the round. Conversely if you have"; + mes "less points than the dealer you will loose."; + next; + mes "[Dealer]"; + mes "2.) If you pull a card that makes your point total go over 21 you"; + mes "will automatically loose the round. This is called a ^5533FF'bust'^000000. If"; + mes "the dealer busts then you will win the round."; + next; + mes "[Dealer]"; + mes "3.) If you have a point total of 21 with the first 2 cards, you"; + mes "will automatically win the round. This is called a ^5533FF'Black Jack'^000000"; + mes "and happens when you get an 'Ace' and a '10 valued' card. If the"; + mes "dealer gets a Black Jack he/she will automatically win the round."; + next; + mes "[Dealer]"; + mes "4.) Besides winning and loosing, you can tie with the dealer. If"; + mes "both you and the dealer have the same point total at the end of a"; + mes "round, this will result in a tie with no winner and no loss or gain"; + mes "in money."; + next; + mes "[Dealer]"; + mes "This is called a ^5533FF'push'^000000 with the dealer. This also"; + mes "applies to both you and the dealer having Black Jack at the same"; + mes "time."; + goto sM_Menu0; +sM_0c: + mes "[Dealer]"; + mes "The 'Double Down' option allows you to double your current bet,"; + mes "but with the drawback that you will only be able to pull one"; + mes "additional card. This option is only available at the beggining of"; + mes "each round."; + next; + mes "[Dealer]"; + mes "An example of when doubling down is useful, is when"; + mes "your first 2 cards give you a point total of 11. You have a good"; + mes "chance of getting 21 or 20 with the next card that you draw. This"; + mes "would be a good hand to double down on."; + goto sM_Menu0; +sM_0d: + mes "[Dealer]"; + mes "The 'Ace' card is a unique card in the game of Black Jack because"; + mes "it can have 2 values. An Ace can be counted as either 11 points,"; + mes "or just 1 point. For example if you had an Ace and a 4, that would"; + mes "give you either 15 or 5 points."; + next; + mes "[Dealer]"; + mes "If you decided to stay, the Ace would automatically be counted as"; + mes "11 points to give you 15 points total."; + next; + mes "[Dealer]"; + mes "If you had decided to pull and received a 9, the ace would"; + mes "automatically be counted as 1 point to give you a total of 14"; + mes "points. If the Ace was counted as 11 points, you would have a"; + mes "point total over 21 and would have lost."; + next; + mes "[Dealer]"; + mes "It is because of the flexibilty you have with the 'Ace' that makes"; + mes "it the most powerfull card in the game."; + goto sM_Menu0; +M_End: + mes "[Dealer]"; + mes "Feel free to come back anytime"; + close; + +//================ +L_Play: + mes "[Dealer]"; + mes "Please place your bets..."; + next; + menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End; + +M_1a: + if(Zeny < 2) goto sL_NotEnuf; + set @bet, 2; + goto L_Cont0; +M_1b: + if(Zeny < 10) goto sL_NotEnuf; + set @bet, 10; + goto L_Cont0; +M_1c: + if(Zeny < 20) goto sL_NotEnuf; + set @bet, 20; + goto L_Cont0; +M_1d: + if(Zeny < 100) goto sL_NotEnuf; + set @bet, 100; + goto L_Cont0; + +sL_NotEnuf: + mes "[Dealer]"; + mes "I'm sorry but you don't have enough zeny to make that bet."; + close; + +L_Cont0: + mes "(the cards are being dealt)"; + next; + deletearray $@card[0],13; + set @dealerTurn, 0; + set @numP, 0; + set @numD, 0; + set @pAce, 0; + set @dAce, 0; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; + callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; + +//============== +L_Start: + callsub sF_GetTot; + + mes "- Here are the ^FF5533DEALER'S^000000 cards:"; + if (@numD==2) callsub sF_D2cards; + if (@numD==3) callsub sF_D3cards; + if (@numD==4) callsub sF_D4cards; + if (@numD==5) callsub sF_D5cards; + mes " The DEALER has: ^FF5533"+@dealTot+"^000000"; + mes " "; + mes "- Here are ^5533FFYOUR^000000 cards:"; + if (@numP==2) callsub sF_P2cards; + if (@numP==3) callsub sF_P3cards; + if (@numP==4) callsub sF_P4cards; + if (@numP==5) callsub sF_P5cards; + if(@pAce != 1 || @playTot == 21) mes " YOU have: ^5533FF" +@playTot+ "^000000"; + if(@pAce == 1 && @playTot != 21) mes " You have: ^5533FF" +@playTot+ "^000000, or ^5533FF" +(@playTot-10)+ "^000000"; + next; + if(@playTot==21 && @dealTot==21) goto sL_Push; + if(@numP==2 && @playTot == 21) goto sL_Win; + if(@numD==2 && @dealTot == 21) goto sL_Lose; + if(@playTot > 21) goto sL_Lose; + if(@dealTot > 21) goto sL_Win; + if(@numP==2 && @dealerTurn==0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay, "Double Down",M_Double; + if(@dealerTurn == 0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay; + +M_Stay: + mes "[Dealer]"; + if(@playTot < 13) goto sL_PlayToLow; + if(@dealTot > 16) mes "The Dealer stays."; + if(@dealTot > 16 || @numD == 5) goto L_Check; + mes "The Dealer is going to pull"; + next; + callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; + set @dealerTurn, 1; + goto L_Start; + +sL_PlayToLow: + mes "I'm sorry but you do not have a high enough total to stay. You must pull."; + next; + goto M_Hit; + +M_Hit: + if(@numP == 5) goto M_Stay; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + goto L_Start; +M_Double: + mes "[Dealer]"; + mes "Player has chosen to Double Down. You're current bet will be"; + mes "doubled, and you will only be able to pull 1 extra card."; + next; + set @dealerTurn, 1; + set @bet, @bet*2; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + goto L_Start; + +//============= +L_Check: + next; + if(@playTot < @dealTot) goto sL_Lose; + if(@playTot == @dealTot) goto sL_Push; + +sL_Win: + mes "[Dealer]"; + mes "Congratulations, you've won!"; + next; + set Zeny, Zeny + @bet; + goto L_Play; +sL_Lose: + mes "[Dealer]"; + mes "I'm sorry but you've lost."; + set Zeny, Zeny - @bet; + next; + goto L_Play; +sL_Push: + mes "[Dealer]"; + mes "Its a push. You tied with the Dealer."; + next; + goto L_Play; + + +//================================== + // Sub function for dealing/pulling the cards +sF_GetCards: + set @rnd, rand(1,13); + if($@card[@rnd] == 4) goto sF_GetCards; + set $@card[@rnd], $@card[@rnd] + 1; + set getarg(1), @rnd; + if(getarg(1) > 10) set getarg(1), 10; + if(getarg(1) == 1 && getarg(3) < 1) set getarg(1), 11; + if(getarg(1) == 11) set getarg(3), 1; + set getarg(2), " " + getarg(1) + " "; + if(@rnd == 10) set getarg(2), getarg(1); + if(@rnd == 1) set getarg(2), " A "; + if(@rnd == 11) set getarg(2), " J "; + if(@rnd == 12) set getarg(2), " Q "; + if(@rnd == 13) set getarg(2), " K "; + set getarg(0), getarg(0) + 1; + return; + +//================================== + // Sub function for getting the total score for each hand +sF_GetTot: + set @i, 0; + set @dealTot, 0; + set @playTot, 0; + +GetDealTot: + set @dealTot, @dealTot + @dealCard[@i]; + set @i, @i + 1; + if(@i < @numD) goto GetDealTot; + if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10; + set @i, 0; +GetPlayTot: + set @playTot, @playTot + @playCard[@i]; + set @i, @i + 1; + if(@i < @numP) goto GetPlayTot; + if(@pAce == 1 && @playTot > 21) set @pAce, 2; + if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10; + return; + +//======================================= + // Sub function for displaying the Cards +sF_D2cards: + mes " .-----. .-----. "; + mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | "; + mes " '-----' '-----' "; + return; +sF_P2cards: + mes " .-----. .-----. "; + mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | "; + mes " '-----' '-----' "; + return; +sF_D3cards: + mes " .-----. .-----. .-----. "; + mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + return; +sF_P3cards: + mes " .-----. .-----. .-----. "; + mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + return; +sF_D4cards: + mes " .-----. .-----. .-----. "; + mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + mes " .-----. "; + mes " | "+@dealCard$[3]+" |"; + mes " '-----' "; + return; +sF_P4cards: + mes " .-----. .-----. .-----. "; + mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" |"; + mes " '-----' '-----' '-----' "; + mes " .-----. "; + mes " | "+@playCard$[3]+" |"; + mes " '-----' "; + return; +sF_D5cards: + mes " .-----. .-----. .-----. "; + mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + mes " .-----. .-----. "; + mes " | "+@dealCard$[3]+" | | "+@dealCard$[4]+" | "; + mes " '-----' '-----' "; + return; +sF_P5cards: + mes " .-----. .-----. .-----. "; + mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | "; + mes " '-----' '-----' '-----' "; + mes " .-----. .-----. "; + mes " | "+@playCard$[3]+" | | "+@playCard$[4]+" | "; + mes " '-----' '-----' "; + return; +} diff --git a/npc/custom/etc/floating_rates.txt b/npc/custom/etc/floating_rates.txt index 84d16ba9a..daa11878e 100644 --- a/npc/custom/etc/floating_rates.txt +++ b/npc/custom/etc/floating_rates.txt @@ -1,43 +1,43 @@ -//===== rAthena Script ======================================= -//= Floating Server Rates -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= It's a simply example of setbattleflag -//= This script will change your server rates from 1x to 1.5x every 6 hours -//= Note: It doesn't affect Card granted drops, MVP & Treasure Chests drops ^_- -//= It also doesn't affect CARD drops, because they are just 0.01% -//===== Additional Comments: ================================= -//= You can make incredible scripts with 'setbattleflag'! -//============================================================ - -- script FloatingRates -1,{ -OnInit: -//add any other HOURS -OnHour00: -OnHour06: -OnHour12: -OnHour18: -//------------------- - set $@brate,rand(100,150); - set $@jrate,rand(100,150); - set $@drate,rand(100,150); - //Base exp - setbattleflag("base_exp_rate",$@brate); - //Job exp - setbattleflag("job_exp_rate",$@jrate); - //Drops - setbattleflag("item_rate_common",$@drate); - setbattleflag("item_rate_heal",$@drate); - setbattleflag("item_rate_use",$@drate); - setbattleflag("item_rate_equip",$@drate); - //we don't change card drops rate, because these values won't change them anyway - atcommand "@reloadmobdb"; - - announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060; - end; -} +//===== rAthena Script ======================================= +//= Floating Server Rates +//===== By: ================================================== +//= Lupus +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= It's a simply example of setbattleflag +//= This script will change your server rates from 1x to 1.5x every 6 hours +//= Note: It doesn't affect Card granted drops, MVP & Treasure Chests drops ^_- +//= It also doesn't affect CARD drops, because they are just 0.01% +//===== Additional Comments: ================================= +//= You can make incredible scripts with 'setbattleflag'! +//============================================================ + +- script FloatingRates -1,{ +OnInit: +//add any other HOURS +OnHour00: +OnHour06: +OnHour12: +OnHour18: +//------------------- + set $@brate,rand(100,150); + set $@jrate,rand(100,150); + set $@drate,rand(100,150); + //Base exp + setbattleflag("base_exp_rate",$@brate); + //Job exp + setbattleflag("job_exp_rate",$@jrate); + //Drops + setbattleflag("item_rate_common",$@drate); + setbattleflag("item_rate_heal",$@drate); + setbattleflag("item_rate_use",$@drate); + setbattleflag("item_rate_equip",$@drate); + //we don't change card drops rate, because these values won't change them anyway + atcommand "@reloadmobdb"; + + announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060; + end; +} diff --git a/npc/custom/etc/lottery.txt b/npc/custom/etc/lottery.txt index 1b6d9f7ee..7cc9a53f1 100644 --- a/npc/custom/etc/lottery.txt +++ b/npc/custom/etc/lottery.txt @@ -1,454 +1,454 @@ -//===== rAthena Script ======================================= -//= Lottery -//===== By: ================================================== -//= acky -//===== Current Version: ===================================== -//= 1.2.1a -//===== Compatible With: ===================================== -//= rAthena SVN -//===== 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,{ -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 "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; - 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; -} +//===== rAthena Script ======================================= +//= Lottery +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.2.1a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== 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,{ +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 "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; + 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; +} diff --git a/npc/custom/etc/market.txt b/npc/custom/etc/market.txt index b8f39644d..d07eabac8 100644 --- a/npc/custom/etc/market.txt +++ b/npc/custom/etc/market.txt @@ -1,39 +1,39 @@ -//===== rAthena Script ======================================= -//= Market Place -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= This script should move vending crowds from Prontera -//= streets to a suitable market place. Save your traffic 8) -//===== Additional Comments: ================================= -//= 1.1 Optimized it, Removed labels. [Spre] -//============================================================ - -prontera,144,174,3 script Market Place 722,{ - mes"[Market Place]"; - mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000."; - next; - if (select("Yes Please:No") == 2) { - close; - } - // I didn't see the need to check and show venders.... Since it didnt even work - warp "gon_test",27+rand(5),98; - end; -} - -gon_test,73,103,0 script MarketExit 45,1,2,{ - warp "prontera",155,177-rand(10); - end; -} - -//disable vending in Prontera -prontera mapflag novending -prt_in mapflag novending -//Market Place settings -gon_test mapflag noteleport -gon_test mapflag nomemo -gon_test mapflag nobranch +//===== rAthena Script ======================================= +//= Market Place +//===== By: ================================================== +//= Lupus +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= This script should move vending crowds from Prontera +//= streets to a suitable market place. Save your traffic 8) +//===== Additional Comments: ================================= +//= 1.1 Optimized it, Removed labels. [Spre] +//============================================================ + +prontera,144,174,3 script Market Place 722,{ + mes"[Market Place]"; + mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000."; + next; + if (select("Yes Please:No") == 2) { + close; + } + // I didn't see the need to check and show venders.... Since it didnt even work + warp "gon_test",27+rand(5),98; + end; +} + +gon_test,73,103,0 script MarketExit 45,1,2,{ + warp "prontera",155,177-rand(10); + end; +} + +//disable vending in Prontera +prontera mapflag novending +prt_in mapflag novending +//Market Place settings +gon_test mapflag noteleport +gon_test mapflag nomemo +gon_test mapflag nobranch diff --git a/npc/custom/etc/monster_arena.txt b/npc/custom/etc/monster_arena.txt index a6f52846c..251759a7c 100644 --- a/npc/custom/etc/monster_arena.txt +++ b/npc/custom/etc/monster_arena.txt @@ -1,901 +1,901 @@ -//===== rAthena Script ======================================= -//= Monster vs Monster -//===== By: ================================================== -//= acky -//===== Current Version: ===================================== -//= 1.2 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Players train monsters and battle other players. -//= Experience can be earned and monsters upgraded. -//===== Additional Comments: ================================= -//= To add monsters, add lines after the commends labled: -//= '// #. ---Change to Add Monsters--- //' -//= There are 6 steps to add a monster at the moment. -//= Added Duel Room -//= --------------------------------------------------------- -//= Script is messy! Be careful! -//= 1.1.2 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious] -//= 1.1.3 Removed Duplicate Names [Silent] -//= 1.1.4 Fixed SummonPad syntax. [KarLaeda] -//= 1.1.5 Some cleanup & optimization [KarLaeda] -//= 1.2 Replaced effect numerics with constants. [Samuray22] -//============================================================ - -// Entrance // -prontera,158,193,6 script Monster Arena 702,{ - mes "[Monster Arena]"; - mes "Would you like to enter the Monster Arena?"; - mes "Currently ^FF0000" + getmapusers("gon_test") + "^000000 players"; - mes "^FF0000Note:^000000 Pecos, Falcons and Carts will be lost on entry."; -L_Menu: - next; - menu "Enter",-,"Information",L_Info,"Cancel",L_Exit; - - set @marena,1; - savepoint "gon_test",56,99; - set @battle,0; - warp "gon_test",57,99; - close; - -L_Exit: - mes "[Monster Arena]"; - mes "Come back any time."; - close; - -L_Info: - mes "[Monster Arena]"; - mes "You must purchase a pet from the Monster Tamer to start fighting."; - next; - mes "[Monster Arena]"; - mes "Then talk to the Usher and tell him you would like to compete."; - next; - mes "[Monster Arena]"; - mes "Talk to the referee to summon your monster."; - mes "Once your monster has fought, you must talk to the Usher again and choose to spectate."; - next; - mes "[Monster Arena]"; - mes "Talk to the Monster Trainer, he will ask you to heal your pet."; - next; - mes "[Monster Arena]"; - mes "To do this, click the Nurse repearedly until it says your pet is healed."; - next; - mes "[Monster Arena]"; - mes "The more monsters you kill, the more exp you get and the quicker you can upgrade."; - next; - mes "[Monster Arena]"; - mes "The stronger your monster is, the longer it will take to summon again."; - - goto L_Menu; -} - -// Monster Summon Function // -function script monstersummon { - // 1. ---Change to Add Monsters--- // - if (#monster == 10) summon strcharinfo(0) + "'s Poring",1002, "OnPoringKilled"; - if (#monster == 20) summon strcharinfo(0) + "'s Fabre",1007, "OnFaberKilled"; - if (#monster == 30) summon strcharinfo(0) + "'s Lunatic",1063, "OnLunaticKilled"; - if (#monster == 31) summon strcharinfo(0) + "'s Drops",1113, "OnDropsKilled"; - if (#monster == 32) summon strcharinfo(0) + "'s Picky",1049, "OnPickyKilled"; - if (#monster == 40) summon strcharinfo(0) + "'s ChonChon",1011, "OnChonChonKilled"; - if (#monster == 41) summon strcharinfo(0) + "'s Super Picky",1050, "OnSPickyKilled"; - if (#monster == 42) summon strcharinfo(0) + "'s Willow",1010, "OnWillowKilled"; - if (#monster == 50) summon strcharinfo(0) + "'s Roda Frog",1012, "OnRodaKilled"; - if (#monster == 51) summon strcharinfo(0) + "'s Condor",1009, "OnCondorKilled"; - if (#monster == 60) summon strcharinfo(0) + "'s Thief Bug Larva",1051, "OnThiefKilled"; - if (#monster == 70) summon strcharinfo(0) + "'s Savage Babe",1167, "OnSavageKilled"; - if (#monster == 80) summon strcharinfo(0) + "'s Familiar",1005, "OnFamiliarKilled"; - if (#monster == 81) summon strcharinfo(0) + "'s Hornet",1004, "OnHornetKilled"; - if (#monster == 90) summon strcharinfo(0) + "'s Desert Wolf Puppy",1107, "OnPuppyKilled"; - if (#monster == 91) summon strcharinfo(0) + "'s Spore",1014, "OnSporeKilled"; - if (#monster == 92) summon strcharinfo(0) + "'s Rocker",1052, "OnRockerKilled"; - if (#monster == 100) summon strcharinfo(0) + "'s Skeleton",1076, "OnSkeletonKilled"; - if (#monster == 101) summon strcharinfo(0) + "'s Plankton",1161, "OnPlanktonKilled"; - if (#monster == 102) summon strcharinfo(0) + "'s Antonio",1247, "OnAntonioKilled"; - if (#monster == 103) summon strcharinfo(0) + "'s Thief Bug Female",1053, "OnThiefFemaleKilled"; - close; -} - -// Referee // -- script monsterreferee 61,{ - if (@fighting == 1) end; - if (@battle == 1) goto L_Start; - end; - -L_Start: - mes "[Referee]"; - mes "Your monster is:"; - - // 2. ---Change to Add Monsters--- // - if (#monster == 10) mes "Poring"; - if (#monster == 20) mes "Faber"; - if (#monster == 30) mes "Lunatic"; - if (#monster == 31) mes "Drops"; - if (#monster == 32) mes "Picky"; - if (#monster == 40) mes "ChonChon"; - if (#monster == 41) mes "Super Picky"; - if (#monster == 42) mes "Willow"; - if (#monster == 50) mes "Roda Frog"; - if (#monster == 51) mes "Condor"; - if (#monster == 60) mes "Thief Bug Larva"; - if (#monster == 70) mes "Savage Babe"; - if (#monster == 80) mes "Familiar"; - if (#monster == 81) mes "Hornet"; - if (#monster == 90) mes "Desert Wolf Puppy"; - if (#monster == 91) mes "Spore"; - if (#monster == 92) mes "Rocker"; - if (#monster == 100) mes "Skeleton"; - if (#monster == 101) mes "Plankton"; - if (#monster == 102) mes "Antonio"; - if (#monster == 103) mes "Thief Bug Female"; - - mes "Would you like to fight?"; - next; - menu "Fight",-,"Cancel",L_Exit; - - set @fighting,1; - set #heal,1; - set @special,rand (100); // Chance of special summon - if (@special == 1) goto Special1; - if (@special == 2) goto Special2; - if (@special == 3) goto Special3; - if (@special == 4) goto Special4; - if (@special == 5) goto Special5; - - callfunc "monstersummon"; - close; - - // Special Summons // -Special1: - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; - close; - -Special2: - summon strcharinfo(0) + "'s Mastering",1090, "OnSpecialKilled"; - close; - -Special3: - summon strcharinfo(0) + "'s Eclipse",1093, "OnSpecialKilled"; - close; - -Special4: - summon strcharinfo(0) + "'s Dragon Fly",1091, "OnSpecialKilled"; - close; - -Special5: - summon strcharinfo(0) + "'s Toad",1089, "OnSpecialKilled"; - close; - -L_Exit: - mes "[Referee]"; - mes "Alright"; - close; -} -gon_test,56,91,6 duplicate(monsterreferee) Referee#01 61 - - -// Usher // -gon_test,58,94,6 script Usher 86,{ - set @marena,1; - mes "[Usher]"; - mes "What would you like to do?"; - next; - menu "^0000FFSpectate",L_Spec,"^FF0000Compete^000000",-,"Return to Town",L_Exit,"Cancel",L_Cancel; - - if (#monster == 0) goto L_NoMon; - if (#heal == 1) goto L_Heal; - - if (#monster < 40) goto L_Low; - if (#monster > 30 && #monster < 80) goto L_Med; - if (#monster > 70) goto L_High; - -L_Low: - menu "Level 1-3",L_1to3,"^FF0000All Levels",L_High; - close; - -L_Med: - menu "Level 4-7",L_4to6,"^FF0000All Levels",L_High; - close; - -L_High: - close2; - savepoint "gon_test",56,99; - set @battle,1; - atcommand strcharinfo(0) + "@option 64 0 64"; - warp "gon_test",72,87; - end; - -L_4to6: - close2; - savepoint "gon_test",56,99; - set @battle,1; - atcommand strcharinfo(0) + "@option 64 0 64"; - warp "gon_test",57,86; - end; - -L_1to3: - close2; - savepoint "gon_test",56,99; - set @battle,1; - atcommand strcharinfo(0) + "@option 64 0 64"; - warp "gon_test",43,87; - end; - -L_Exit: - close2; - savepoint "prontera",149,186; - set @battle,0; - atcommand strcharinfo(0) + "@option 0 0 0"; - warp "prontera",149,186; - end; - -L_Spec: - close2; - savepoint "gon_test",56,99; - set @battle,0; - atcommand strcharinfo(0) + "@option 0 0 0"; - warp "gon_test",57,99; - end; - -L_NoMon: - mes "[Usher]"; - mes "You haven't got a monster, you can only spectate."; - close; - -L_Heal: - mes "[Usher]"; - mes "You have to heal your monster before you can fight again."; - close; - -L_Cancel: - close; -} - -// Monster Trainer // -gon_test,52,103,6 script Monster Trainer 87,{ - mes "[Monster Trainer]"; - if (#monster != 0) goto L_Mon; - - mes "Welcome to the monster arena, would you like to start training?"; - next; - menu "Yes",-,"No",L_Exit; - - mes "[Monster Trainer]"; - mes "New trainers may only start with Porings."; - mes "They cost 1000z, Would you like to buy one?"; - next; - menu "Yes",-,"No",L_Exit; - - if (zeny < 1000) goto L_NoZeny; - set zeny,zeny-1000; - set #monster,10; - mes "[Monster Trainer]"; - mes "Congratulations!"; - mes "When your Poring earns enough experience, talk to me to upgrade."; - close; - -L_Mon: - mes "Welcome back, " + strcharinfo(0) + "."; - mes "Your monster has " + #monpoints + " exp points."; - next; - if (@fighting == 1) goto L_Heal; - menu "Upgrade Monster",L_Upgrade,"Sell Experience",L_Sell,"^FF0000Abandon Monster^000000",L_Abandon,"Cancel",L_Exit; - -L_Abandon: - mes "[Monster Trainer]"; - mes "Are you sure you want to abandon your monster?"; - next; - menu "Yes",-,"No",L_Exit; - set #monster,0; - set #monpoints,0; - mes "[Monster Trainer]"; - mes "Monster released into the wild."; - close; - -L_Sell: - mes "[Monster Trainer]"; - mes "You can sell your monster's experience for 100z each."; - next; - menu "Sell",-,"Cancel",L_Exit; - mes "[Monster Trainer]"; - mes "You have: ^FF0000" + #monpoints + "^000000 experience points"; - mes "How many would you like to sell?"; - next; - input @sellexp; - if (@sellexp > #monpoints) goto L_NoExp; - set #monpoints,#monpoints-@sellexp; - set @sellearn,100*@sellexp; // Price of exp - set zeny,zeny+@sellearn; - mes "[Monster Trainer]"; - mes "You earned ^0000FF" + @sellearn + "^000000z."; - close; - - -L_NoExp: - mes "[Monster Trainer]"; - mes "You do not have enough experience."; - next; - goto L_Exit; - - // Monster Upgrades // -L_Upgrade: - mes "[Monster Trainer]"; - // 3. ---Change to Add Monsters - May not be required--- // - if (#monster > 1 && #monster < 20) mes "You need 10 exp points to upgrade your monster."; - if (#monster > 19 && #monster < 30) mes "You need 20 exp points to upgrade your monster."; - if (#monster > 29 && #monster < 40) mes "You need 40 exp points to upgrade your monster."; - if (#monster > 39 && #monster < 50) mes "You need 80 exp points to upgrade your monster."; - if (#monster > 49 && #monster < 60) mes "You need 160 exp points to upgrade your monster."; - if (#monster > 59 && #monster < 70) mes "You need 320 exp points to upgrade your monster."; - if (#monster > 69 && #monster < 80) mes "You need 640 exp points to upgrade your monster."; - if (#monster > 79 && #monster < 90) mes "You need 1280 exp points to upgrade your monster."; - if (#monster > 89 && #monster < 100) mes "You need 2560 exp points to upgrade your monster."; - next; - menu "Continue",-,"Cancel",L_Exit; - mes "[Monster Trainer]"; - - // 4. ---Change to Add Monsters - May not be required--- // - if (#monster > 1 && #monster < 20 && #monpoints > 9) goto L_Up1; - if (#monster > 19 && #monster < 30 && #monpoints > 19) goto L_Up2; - if (#monster > 29 && #monster < 40 && #monpoints > 39) goto L_Up3; - if (#monster > 39 && #monster < 50 && #monpoints > 79) goto L_Up4; - if (#monster > 49 && #monster < 60 && #monpoints > 159) goto L_Up5; - if (#monster > 59 && #monster < 70 && #monpoints > 319) goto L_Up6; - if (#monster > 69 && #monster < 80 && #monpoints > 639) goto L_Up7; - if (#monster > 79 && #monster < 90 && #monpoints > 1279) goto L_Up8; - if (#monster > 89 && #monster < 100 && #monpoints > 2559) goto L_Up9; - - mes "Unable to upgrade."; - close; - - // 5. ---Change to Add Monsters--- // -L_Up1: - set #monster,20; - set #monpoints,#monpoints-10; - mes "Upgraded to Fabre!"; - close; - -L_Up2: - mes "Which monster would you like to upgrade to?"; - next; - menu "Lunatic",U_Lunatic,"Drops",U_Drops,"Picky",U_Picky; - -U_Drops: - set #monster,31; - set #monpoints,#monpoints-20; - mes "[Monster Trainer]"; - mes "Upgraded to Drops!"; - close; - -U_Picky: - set #monster,32; - set #monpoints,#monpoints-20; - mes "[Monster Trainer]"; - mes "Upgraded to Picky!"; - close; - -U_Lunatic: - set #monster,30; - set #monpoints,#monpoints-20; - mes "[Monster Trainer]"; - mes "Upgraded to Lunatic!"; - close; - -L_Up3: - mes "Which monster would you like to upgrade to?"; - next; - menu "ChonChon",U_ChonChon,"Super Picky",U_SPicky,"Willow",U_Willow; - -U_ChonChon: - set #monster,40; - set #monpoints,#monpoints-40; - mes "[Monster Trainer]"; - mes "Upgraded to ChonChon!"; - close; - -U_SPicky: - set #monster,41; - set #monpoints,#monpoints-40; - mes "[Monster Trainer]"; - mes "Upgraded to Super Picky!"; - close; - -U_Willow: - set #monster,42; - set #monpoints,#monpoints-40; - mes "[Monster Trainer]"; - mes "Upgraded to Willow!"; - close; - -L_Up4: - mes "Which monster would you like to upgrade to?"; - next; - menu "Condor",U_Condor,"Roda Frog",U_Roda; - -U_Condor: - set #monster,51; - set #monpoints,#monpoints-80; - mes "[Monster Trainer]"; - mes "Upgraded to Condor!"; - close; - -U_Roda: - set #monster,50; - set #monpoints,#monpoints-80; - mes "[Monster Trainer]"; - mes "Upgraded to Roda Frog!"; - close; - -L_Up5: - set #monster,60; - set #monpoints,#monpoints-160; - mes "Upgraded to Thief Bug Larva!"; - close; - -L_Up6: - set #monster,70; - set #monpoints,#monpoints-320; - mes "Upgraded to Savage Babe!"; - close; - -L_Up7: - mes "Which monster would you like to upgrade to?"; - next; - menu "Familiar",U_Familiar,"Hornet",U_Hornet; - -U_Hornet: - set #monster,81; - set #monpoints,#monpoints-640; - mes "[Monster Trainer]"; - mes "Upgraded to Hornet!"; - close; - -U_Familiar: - set #monster,80; - set #monpoints,#monpoints-640; - mes "[Monster Trainer]"; - mes "Upgraded to Familiar!"; - close; - -L_Up8: - mes "[Monster Trainer]"; - mes "Which monster would you like to upgrade to?"; - next; - menu "Desert Wolf Puppy",U_Puppy,"Spore",U_Spore,"Rocker",U_Rocker; - -U_Spore: - set #monster,91; - set #monpoints,#monpoints-1280; - mes "[Monster Trainer]"; - mes "Upgraded to Spore!"; - close; - -U_Rocker: - set #monster,92; - set #monpoints,#monpoints-1280; - mes "[Monster Trainer]"; - mes "Upgraded to Rocker!"; - close; - -U_Puppy: - set #monster,90; - set #monpoints,#monpoints-1280; - mes "[Monster Trainer]"; - mes "Upgraded to Desert Wolf Puppy!"; - close; - -L_Up9: - mes "Which monster would you like to upgrade to?"; - next; - menu "Skeleton",U_Skeleton,"Antonio",U_Antonio,"Plankton",U_Plankton,"Thief Bug Female",U_ThiefFemale; - -U_Plankton: - set #monster,101; - set #monpoints,#monpoints-2560; - mes "[Monster Trainer]"; - mes "Upgraded to Plankton!"; - close; - -U_Antonio: - set #monster,102; - set #monpoints,#monpoints-2560; - mes "[Monster Trainer]"; - mes "Upgraded to Antonio!"; - close; - -U_ThiefFemale: - set #monster,103; - set #monpoints,#monpoints-2560; - mes "[Monster Trainer]"; - mes "Upgraded to Thief Bug Female!"; - close; - -U_Skeleton: - set #monster,100; - set #monpoints,#monpoints-2560; - mes "[Monster Trainer]"; - mes "Upgraded to Skeleton!"; - close; - -L_NoZeny: - mes "[Monster Trainer]"; - mes "You don't have enough zeny!"; - close; - -L_Exit: - mes "[Monster Trainer]"; - mes "Goodbye."; - close; - -L_Heal: - mes "[Monster Trainer]"; - mes "Your monster needs to heal."; - mes "It will heal faster if you click the nurse faster."; - set #heal,1; - close; -} - -// Kill Trigger // -// 6/Final. ---Change to Add Monsters--- // -gon_test,56,91,6 script OnPoringKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+1; - announce "You killed a Poring - Gained 1 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnFaberKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+2; - announce "You killed a Faber - Gained 2 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnLunaticKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+4; - announce "You killed a Lunatic - Gained 4 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnDropsKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+4; - announce "You killed a Drops - Gained 4 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnPickyKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+4; - announce "You killed a Picky - Gained 4 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnChonChonKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+8; - announce "You killed a ChonChon - Gained 8 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnSPickyKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+8; - announce "You killed a Super Picky - Gained 8 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnWillowKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+8; - announce "You killed a Willow - Gained 8 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnRodaKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+16; - announce "You killed a Roda Frog - Gained 16 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnCondorKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+16; - announce "You killed a Condor - Gained 16 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnThiefKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+32; - announce "You killed a Theif Bug Larva - Gained 32 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnSavageKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+64; - announce "You killed a Savage Babe - Gained 64 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnFamiliarKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+128; - announce "You killed a Familiar - Gained 128 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnHornetKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+128; - announce "You killed a Hornet - Gained 128 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnPuppyKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+256; - announce "You killed a Desert Wolf Puppy - Gained 256 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnRockerKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+256; - announce "You killed a Rocker - Gained 256 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnSporeKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+256; - announce "You killed a Spore - Gained 256 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnSkeletonKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+512; - announce "You killed a Skeleton - Gained 512 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnPlanktonKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+512; - announce "You killed a Plankton - Gained 512 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnAntonioKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+512; - announce "You killed an Antonio - Gained 512 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnThiefFemaleKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+512; - announce "You killed a Thief Bug Female - Gained 512 exp",19; - callfunc "duelkill"; -} - -gon_test,56,91,6 script OnSpecialKilled -1,{ - if (@marena == 0) callfunc "illegalkill"; - set #monpoints,#monpoints+512; - announce "You killed a Special Monster - Gained 1024 exp",19; - callfunc "duelkill"; -} - -function script duelkill { - if (strcharinfo(0) == $@duelist1$ || strcharinfo(0) == $@duelist2$) goto L_Heal; - end; -L_Heal: - announce strcharinfo(0) + " won the Duel",1; - set @fighting,0; - set #heal,0; - set @healing,0; - end; -} - -function script illegalkill { - announce "Illegal Kill by " + strcharinfo(0) + " Detected",1; - percentheal -100,-100; - end; -} - -// Healer // -gon_test,55,103,6 script Nurse 90,{ - if (@battle == 1 || #heal == 0) goto L_NoHeal; - if (#heal == 1 && @healing < 100) goto L_Heal; //Total healing required - set @fighting,0; - set #heal,0; - set @healing,0; - specialeffect2 EF_VALLENTINE2; - announce "Your monster has healed.",19; - end; - -L_Heal: - set @healrate,140 / #monster; //Rate of heal per click - set @healing,@healing + @healrate; - end; - -L_NoHeal: - announce "Your monster does not need healing yet.",19; - end; -} - -// Warps players // -gon_test,57,86,5 script Summon Pad 1::SummonPad 111,2,2,{ - end; -OnTouch: - set @marena,1; - warp "gon_test",57,99; -} -gon_test,43,87,5 duplicate(SummonPad) Summon Pad 2 111,2,2 -gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2 - - - -// Skill Disabler // -gon_test,57,99,5 script Skill Disable 111,3,3,{ - atcommand strcharinfo(0) + "@skilloff"; - disablenpc "Skill Disable"; - end; -} - -// Duel Arena // -gon_test,58,103,5 script Duel Master#01 92,{ - if ($@duelist1$ == "") set @duel,0; - if ($@monster1 == "") set @duel,0; - set @marena,1; - if (#monster == 0) goto L_NoMon; - mes "[Duel Master]"; - if ($@duel == 1) goto L_Waiting; - if ($@duel == 2) goto L_Dueling; - - mes "There are currently no players dueling."; - next; - menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; - - // Player 1 Enters Duel Area // - if (#heal == 1) goto L_NeedHeal; - if ($@duel == 1) goto L_Duel2; - set $@duel,1; - if (#monster > 1 && #monster < 20) set $@monster1,1; - if (#monster > 19 && #monster < 30) set $@monster1,2; - if (#monster > 29 && #monster < 40) set $@monster1,3; - if (#monster > 39 && #monster < 50) set $@monster1,4; - if (#monster > 49 && #monster < 60) set $@monster1,5; - if (#monster > 59 && #monster < 70) set $@monster1,6; - if (#monster > 69 && #monster < 80) set $@monster1,7; - if (#monster > 79 && #monster < 90) set $@monster1,8; - if (#monster > 89 && #monster < 100) set $@monster1,9; - if (#monster > 99 && #monster < 110) set $@monster1,10; - set $@duelist1$,strcharinfo(0); - set @battle,1; - announce strcharinfo(0) + " [Monster Level: " + $@monster1 + "] is waiting for a duel",1; - atcommand strcharinfo(0) + "@option 64 0 64"; - warp "gon_test",49,5; - close; - -L_Waiting: - mes "^0000FF " + $@duelist1$ + "^000000 [Monster Level: ^FF0000" + $@monster1 + "^000000]"; - mes "Is waiting for an opponent"; - next; - menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; - - // Player 2 Enters Duel Area // - if (#heal == 1) goto L_NeedHeal; -L_Duel2: - if ($@duel == 2) goto L_Spec; - set $@duel,2; - if (#monster > 1 && #monster < 20) set $@monster2,1; - if (#monster > 19 && #monster < 30) set $@monster2,2; - if (#monster > 29 && #monster < 40) set $@monster2,3; - if (#monster > 39 && #monster < 50) set $@monster2,4; - if (#monster > 49 && #monster < 60) set $@monster2,5; - if (#monster > 59 && #monster < 70) set $@monster2,6; - if (#monster > 69 && #monster < 80) set $@monster2,7; - if (#monster > 79 && #monster < 90) set $@monster2,8; - if (#monster > 89 && #monster < 100) set $@monster2,9; - if (#monster > 99 && #monster < 110) set $@monster2,10; - set $@duelist2$,strcharinfo(0); - set @battle,1; - announce strcharinfo(0) + " [Monster Level: " + $@monster2 + "] has joined the duel",1; - atcommand strcharinfo(0) + "@option 64 0 64"; - warp "gon_test",49,5; - close; - -L_Dueling: - mes "^0000FF" + $@duelist1$ + "^000000 [Monster Level: ^0000FF" + $@monster1 + "^000000]"; - mes " VS."; - mes "^FF0000" + $@duelist2$ + "^000000 [Monster Level: ^FF0000" + $@monster2 + "^000000]"; - next; - menu "Spectate",L_Spec,"Cancel",L_Exit; - -L_Spec: - set @battle,0; - atcommand strcharinfo(0) + "@option 64 0 64"; - warp "gon_test",49,5; - close; - -L_Exit: - mes "[Duel Master]"; - mes "Goodbye."; - close; - -L_NoMon: - mes "[Duel Master]"; - mes "You haven't got a monster, you can't participate."; - close; - -L_NeedHeal: - mes "[Duel Master]"; - mes "You need to heal before you can join."; - close; -} - -// Duel Exit // -gon_test,42,8,5 script Duel Master#02 92,{ - mes "[Duel Master]"; - mes "Would you like to return?"; - menu "Yes",L_Leave,"No",-; - mes "Alright"; - close; - -L_Leave: - if ($@duelist1$ == strcharinfo(0)) goto L_Leave1; - if ($@duelist2$ == strcharinfo(0)) goto L_Leave2; - -L_Leave3: - atcommand strcharinfo(0) + "@option 0 0 0"; - set @battle,0; - warp "gon_test",57,99; - close; - -L_Leave1: - set $@duelist1$,$@duelist2$; - set $@monster1,$@monster2; - set $@duel,$@duel-1; - announce strcharinfo(0) + " stopped dueling",1; - goto L_Leave3; - -L_Leave2: - set $@duelist2$,""; - set $@monster2,0; - set $@duel,$@duel-1; - announce strcharinfo(0) + " stopped dueling",1; - goto L_Leave3; -} - -gon_test,49,5,5 duplicate(SummonPad) Summon Pad 4 111,2,2 -gon_test,55,8,6 duplicate(monsterreferee) Referee#02 61 +//===== rAthena Script ======================================= +//= Monster vs Monster +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Players train monsters and battle other players. +//= Experience can be earned and monsters upgraded. +//===== Additional Comments: ================================= +//= To add monsters, add lines after the commends labled: +//= '// #. ---Change to Add Monsters--- //' +//= There are 6 steps to add a monster at the moment. +//= Added Duel Room +//= --------------------------------------------------------- +//= Script is messy! Be careful! +//= 1.1.2 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious] +//= 1.1.3 Removed Duplicate Names [Silent] +//= 1.1.4 Fixed SummonPad syntax. [KarLaeda] +//= 1.1.5 Some cleanup & optimization [KarLaeda] +//= 1.2 Replaced effect numerics with constants. [Samuray22] +//============================================================ + +// Entrance // +prontera,158,193,6 script Monster Arena 702,{ + mes "[Monster Arena]"; + mes "Would you like to enter the Monster Arena?"; + mes "Currently ^FF0000" + getmapusers("gon_test") + "^000000 players"; + mes "^FF0000Note:^000000 Pecos, Falcons and Carts will be lost on entry."; +L_Menu: + next; + menu "Enter",-,"Information",L_Info,"Cancel",L_Exit; + + set @marena,1; + savepoint "gon_test",56,99; + set @battle,0; + warp "gon_test",57,99; + close; + +L_Exit: + mes "[Monster Arena]"; + mes "Come back any time."; + close; + +L_Info: + mes "[Monster Arena]"; + mes "You must purchase a pet from the Monster Tamer to start fighting."; + next; + mes "[Monster Arena]"; + mes "Then talk to the Usher and tell him you would like to compete."; + next; + mes "[Monster Arena]"; + mes "Talk to the referee to summon your monster."; + mes "Once your monster has fought, you must talk to the Usher again and choose to spectate."; + next; + mes "[Monster Arena]"; + mes "Talk to the Monster Trainer, he will ask you to heal your pet."; + next; + mes "[Monster Arena]"; + mes "To do this, click the Nurse repearedly until it says your pet is healed."; + next; + mes "[Monster Arena]"; + mes "The more monsters you kill, the more exp you get and the quicker you can upgrade."; + next; + mes "[Monster Arena]"; + mes "The stronger your monster is, the longer it will take to summon again."; + + goto L_Menu; +} + +// Monster Summon Function // +function script monstersummon { + // 1. ---Change to Add Monsters--- // + if (#monster == 10) summon strcharinfo(0) + "'s Poring",1002, "OnPoringKilled"; + if (#monster == 20) summon strcharinfo(0) + "'s Fabre",1007, "OnFaberKilled"; + if (#monster == 30) summon strcharinfo(0) + "'s Lunatic",1063, "OnLunaticKilled"; + if (#monster == 31) summon strcharinfo(0) + "'s Drops",1113, "OnDropsKilled"; + if (#monster == 32) summon strcharinfo(0) + "'s Picky",1049, "OnPickyKilled"; + if (#monster == 40) summon strcharinfo(0) + "'s ChonChon",1011, "OnChonChonKilled"; + if (#monster == 41) summon strcharinfo(0) + "'s Super Picky",1050, "OnSPickyKilled"; + if (#monster == 42) summon strcharinfo(0) + "'s Willow",1010, "OnWillowKilled"; + if (#monster == 50) summon strcharinfo(0) + "'s Roda Frog",1012, "OnRodaKilled"; + if (#monster == 51) summon strcharinfo(0) + "'s Condor",1009, "OnCondorKilled"; + if (#monster == 60) summon strcharinfo(0) + "'s Thief Bug Larva",1051, "OnThiefKilled"; + if (#monster == 70) summon strcharinfo(0) + "'s Savage Babe",1167, "OnSavageKilled"; + if (#monster == 80) summon strcharinfo(0) + "'s Familiar",1005, "OnFamiliarKilled"; + if (#monster == 81) summon strcharinfo(0) + "'s Hornet",1004, "OnHornetKilled"; + if (#monster == 90) summon strcharinfo(0) + "'s Desert Wolf Puppy",1107, "OnPuppyKilled"; + if (#monster == 91) summon strcharinfo(0) + "'s Spore",1014, "OnSporeKilled"; + if (#monster == 92) summon strcharinfo(0) + "'s Rocker",1052, "OnRockerKilled"; + if (#monster == 100) summon strcharinfo(0) + "'s Skeleton",1076, "OnSkeletonKilled"; + if (#monster == 101) summon strcharinfo(0) + "'s Plankton",1161, "OnPlanktonKilled"; + if (#monster == 102) summon strcharinfo(0) + "'s Antonio",1247, "OnAntonioKilled"; + if (#monster == 103) summon strcharinfo(0) + "'s Thief Bug Female",1053, "OnThiefFemaleKilled"; + close; +} + +// Referee // +- script monsterreferee 61,{ + if (@fighting == 1) end; + if (@battle == 1) goto L_Start; + end; + +L_Start: + mes "[Referee]"; + mes "Your monster is:"; + + // 2. ---Change to Add Monsters--- // + if (#monster == 10) mes "Poring"; + if (#monster == 20) mes "Faber"; + if (#monster == 30) mes "Lunatic"; + if (#monster == 31) mes "Drops"; + if (#monster == 32) mes "Picky"; + if (#monster == 40) mes "ChonChon"; + if (#monster == 41) mes "Super Picky"; + if (#monster == 42) mes "Willow"; + if (#monster == 50) mes "Roda Frog"; + if (#monster == 51) mes "Condor"; + if (#monster == 60) mes "Thief Bug Larva"; + if (#monster == 70) mes "Savage Babe"; + if (#monster == 80) mes "Familiar"; + if (#monster == 81) mes "Hornet"; + if (#monster == 90) mes "Desert Wolf Puppy"; + if (#monster == 91) mes "Spore"; + if (#monster == 92) mes "Rocker"; + if (#monster == 100) mes "Skeleton"; + if (#monster == 101) mes "Plankton"; + if (#monster == 102) mes "Antonio"; + if (#monster == 103) mes "Thief Bug Female"; + + mes "Would you like to fight?"; + next; + menu "Fight",-,"Cancel",L_Exit; + + set @fighting,1; + set #heal,1; + set @special,rand (100); // Chance of special summon + if (@special == 1) goto Special1; + if (@special == 2) goto Special2; + if (@special == 3) goto Special3; + if (@special == 4) goto Special4; + if (@special == 5) goto Special5; + + callfunc "monstersummon"; + close; + + // Special Summons // +Special1: + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + close; + +Special2: + summon strcharinfo(0) + "'s Mastering",1090, "OnSpecialKilled"; + close; + +Special3: + summon strcharinfo(0) + "'s Eclipse",1093, "OnSpecialKilled"; + close; + +Special4: + summon strcharinfo(0) + "'s Dragon Fly",1091, "OnSpecialKilled"; + close; + +Special5: + summon strcharinfo(0) + "'s Toad",1089, "OnSpecialKilled"; + close; + +L_Exit: + mes "[Referee]"; + mes "Alright"; + close; +} +gon_test,56,91,6 duplicate(monsterreferee) Referee#01 61 + + +// Usher // +gon_test,58,94,6 script Usher 86,{ + set @marena,1; + mes "[Usher]"; + mes "What would you like to do?"; + next; + menu "^0000FFSpectate",L_Spec,"^FF0000Compete^000000",-,"Return to Town",L_Exit,"Cancel",L_Cancel; + + if (#monster == 0) goto L_NoMon; + if (#heal == 1) goto L_Heal; + + if (#monster < 40) goto L_Low; + if (#monster > 30 && #monster < 80) goto L_Med; + if (#monster > 70) goto L_High; + +L_Low: + menu "Level 1-3",L_1to3,"^FF0000All Levels",L_High; + close; + +L_Med: + menu "Level 4-7",L_4to6,"^FF0000All Levels",L_High; + close; + +L_High: + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",72,87; + end; + +L_4to6: + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",57,86; + end; + +L_1to3: + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",43,87; + end; + +L_Exit: + close2; + savepoint "prontera",149,186; + set @battle,0; + atcommand strcharinfo(0) + "@option 0 0 0"; + warp "prontera",149,186; + end; + +L_Spec: + close2; + savepoint "gon_test",56,99; + set @battle,0; + atcommand strcharinfo(0) + "@option 0 0 0"; + warp "gon_test",57,99; + end; + +L_NoMon: + mes "[Usher]"; + mes "You haven't got a monster, you can only spectate."; + close; + +L_Heal: + mes "[Usher]"; + mes "You have to heal your monster before you can fight again."; + close; + +L_Cancel: + close; +} + +// Monster Trainer // +gon_test,52,103,6 script Monster Trainer 87,{ + mes "[Monster Trainer]"; + if (#monster != 0) goto L_Mon; + + mes "Welcome to the monster arena, would you like to start training?"; + next; + menu "Yes",-,"No",L_Exit; + + mes "[Monster Trainer]"; + mes "New trainers may only start with Porings."; + mes "They cost 1000z, Would you like to buy one?"; + next; + menu "Yes",-,"No",L_Exit; + + if (zeny < 1000) goto L_NoZeny; + set zeny,zeny-1000; + set #monster,10; + mes "[Monster Trainer]"; + mes "Congratulations!"; + mes "When your Poring earns enough experience, talk to me to upgrade."; + close; + +L_Mon: + mes "Welcome back, " + strcharinfo(0) + "."; + mes "Your monster has " + #monpoints + " exp points."; + next; + if (@fighting == 1) goto L_Heal; + menu "Upgrade Monster",L_Upgrade,"Sell Experience",L_Sell,"^FF0000Abandon Monster^000000",L_Abandon,"Cancel",L_Exit; + +L_Abandon: + mes "[Monster Trainer]"; + mes "Are you sure you want to abandon your monster?"; + next; + menu "Yes",-,"No",L_Exit; + set #monster,0; + set #monpoints,0; + mes "[Monster Trainer]"; + mes "Monster released into the wild."; + close; + +L_Sell: + mes "[Monster Trainer]"; + mes "You can sell your monster's experience for 100z each."; + next; + menu "Sell",-,"Cancel",L_Exit; + mes "[Monster Trainer]"; + mes "You have: ^FF0000" + #monpoints + "^000000 experience points"; + mes "How many would you like to sell?"; + next; + input @sellexp; + if (@sellexp > #monpoints) goto L_NoExp; + set #monpoints,#monpoints-@sellexp; + set @sellearn,100*@sellexp; // Price of exp + set zeny,zeny+@sellearn; + mes "[Monster Trainer]"; + mes "You earned ^0000FF" + @sellearn + "^000000z."; + close; + + +L_NoExp: + mes "[Monster Trainer]"; + mes "You do not have enough experience."; + next; + goto L_Exit; + + // Monster Upgrades // +L_Upgrade: + mes "[Monster Trainer]"; + // 3. ---Change to Add Monsters - May not be required--- // + if (#monster > 1 && #monster < 20) mes "You need 10 exp points to upgrade your monster."; + if (#monster > 19 && #monster < 30) mes "You need 20 exp points to upgrade your monster."; + if (#monster > 29 && #monster < 40) mes "You need 40 exp points to upgrade your monster."; + if (#monster > 39 && #monster < 50) mes "You need 80 exp points to upgrade your monster."; + if (#monster > 49 && #monster < 60) mes "You need 160 exp points to upgrade your monster."; + if (#monster > 59 && #monster < 70) mes "You need 320 exp points to upgrade your monster."; + if (#monster > 69 && #monster < 80) mes "You need 640 exp points to upgrade your monster."; + if (#monster > 79 && #monster < 90) mes "You need 1280 exp points to upgrade your monster."; + if (#monster > 89 && #monster < 100) mes "You need 2560 exp points to upgrade your monster."; + next; + menu "Continue",-,"Cancel",L_Exit; + mes "[Monster Trainer]"; + + // 4. ---Change to Add Monsters - May not be required--- // + if (#monster > 1 && #monster < 20 && #monpoints > 9) goto L_Up1; + if (#monster > 19 && #monster < 30 && #monpoints > 19) goto L_Up2; + if (#monster > 29 && #monster < 40 && #monpoints > 39) goto L_Up3; + if (#monster > 39 && #monster < 50 && #monpoints > 79) goto L_Up4; + if (#monster > 49 && #monster < 60 && #monpoints > 159) goto L_Up5; + if (#monster > 59 && #monster < 70 && #monpoints > 319) goto L_Up6; + if (#monster > 69 && #monster < 80 && #monpoints > 639) goto L_Up7; + if (#monster > 79 && #monster < 90 && #monpoints > 1279) goto L_Up8; + if (#monster > 89 && #monster < 100 && #monpoints > 2559) goto L_Up9; + + mes "Unable to upgrade."; + close; + + // 5. ---Change to Add Monsters--- // +L_Up1: + set #monster,20; + set #monpoints,#monpoints-10; + mes "Upgraded to Fabre!"; + close; + +L_Up2: + mes "Which monster would you like to upgrade to?"; + next; + menu "Lunatic",U_Lunatic,"Drops",U_Drops,"Picky",U_Picky; + +U_Drops: + set #monster,31; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Drops!"; + close; + +U_Picky: + set #monster,32; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Picky!"; + close; + +U_Lunatic: + set #monster,30; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Lunatic!"; + close; + +L_Up3: + mes "Which monster would you like to upgrade to?"; + next; + menu "ChonChon",U_ChonChon,"Super Picky",U_SPicky,"Willow",U_Willow; + +U_ChonChon: + set #monster,40; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to ChonChon!"; + close; + +U_SPicky: + set #monster,41; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to Super Picky!"; + close; + +U_Willow: + set #monster,42; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to Willow!"; + close; + +L_Up4: + mes "Which monster would you like to upgrade to?"; + next; + menu "Condor",U_Condor,"Roda Frog",U_Roda; + +U_Condor: + set #monster,51; + set #monpoints,#monpoints-80; + mes "[Monster Trainer]"; + mes "Upgraded to Condor!"; + close; + +U_Roda: + set #monster,50; + set #monpoints,#monpoints-80; + mes "[Monster Trainer]"; + mes "Upgraded to Roda Frog!"; + close; + +L_Up5: + set #monster,60; + set #monpoints,#monpoints-160; + mes "Upgraded to Thief Bug Larva!"; + close; + +L_Up6: + set #monster,70; + set #monpoints,#monpoints-320; + mes "Upgraded to Savage Babe!"; + close; + +L_Up7: + mes "Which monster would you like to upgrade to?"; + next; + menu "Familiar",U_Familiar,"Hornet",U_Hornet; + +U_Hornet: + set #monster,81; + set #monpoints,#monpoints-640; + mes "[Monster Trainer]"; + mes "Upgraded to Hornet!"; + close; + +U_Familiar: + set #monster,80; + set #monpoints,#monpoints-640; + mes "[Monster Trainer]"; + mes "Upgraded to Familiar!"; + close; + +L_Up8: + mes "[Monster Trainer]"; + mes "Which monster would you like to upgrade to?"; + next; + menu "Desert Wolf Puppy",U_Puppy,"Spore",U_Spore,"Rocker",U_Rocker; + +U_Spore: + set #monster,91; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Spore!"; + close; + +U_Rocker: + set #monster,92; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Rocker!"; + close; + +U_Puppy: + set #monster,90; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Desert Wolf Puppy!"; + close; + +L_Up9: + mes "Which monster would you like to upgrade to?"; + next; + menu "Skeleton",U_Skeleton,"Antonio",U_Antonio,"Plankton",U_Plankton,"Thief Bug Female",U_ThiefFemale; + +U_Plankton: + set #monster,101; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Plankton!"; + close; + +U_Antonio: + set #monster,102; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Antonio!"; + close; + +U_ThiefFemale: + set #monster,103; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Thief Bug Female!"; + close; + +U_Skeleton: + set #monster,100; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Skeleton!"; + close; + +L_NoZeny: + mes "[Monster Trainer]"; + mes "You don't have enough zeny!"; + close; + +L_Exit: + mes "[Monster Trainer]"; + mes "Goodbye."; + close; + +L_Heal: + mes "[Monster Trainer]"; + mes "Your monster needs to heal."; + mes "It will heal faster if you click the nurse faster."; + set #heal,1; + close; +} + +// Kill Trigger // +// 6/Final. ---Change to Add Monsters--- // +gon_test,56,91,6 script OnPoringKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+1; + announce "You killed a Poring - Gained 1 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnFaberKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+2; + announce "You killed a Faber - Gained 2 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnLunaticKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+4; + announce "You killed a Lunatic - Gained 4 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnDropsKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+4; + announce "You killed a Drops - Gained 4 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnPickyKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+4; + announce "You killed a Picky - Gained 4 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnChonChonKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+8; + announce "You killed a ChonChon - Gained 8 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSPickyKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+8; + announce "You killed a Super Picky - Gained 8 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnWillowKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+8; + announce "You killed a Willow - Gained 8 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnRodaKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+16; + announce "You killed a Roda Frog - Gained 16 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnCondorKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+16; + announce "You killed a Condor - Gained 16 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnThiefKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+32; + announce "You killed a Theif Bug Larva - Gained 32 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSavageKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+64; + announce "You killed a Savage Babe - Gained 64 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnFamiliarKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+128; + announce "You killed a Familiar - Gained 128 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnHornetKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+128; + announce "You killed a Hornet - Gained 128 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnPuppyKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+256; + announce "You killed a Desert Wolf Puppy - Gained 256 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnRockerKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+256; + announce "You killed a Rocker - Gained 256 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSporeKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+256; + announce "You killed a Spore - Gained 256 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSkeletonKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed a Skeleton - Gained 512 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnPlanktonKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed a Plankton - Gained 512 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnAntonioKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed an Antonio - Gained 512 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnThiefFemaleKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed a Thief Bug Female - Gained 512 exp",19; + callfunc "duelkill"; +} + +gon_test,56,91,6 script OnSpecialKilled -1,{ + if (@marena == 0) callfunc "illegalkill"; + set #monpoints,#monpoints+512; + announce "You killed a Special Monster - Gained 1024 exp",19; + callfunc "duelkill"; +} + +function script duelkill { + if (strcharinfo(0) == $@duelist1$ || strcharinfo(0) == $@duelist2$) goto L_Heal; + end; +L_Heal: + announce strcharinfo(0) + " won the Duel",1; + set @fighting,0; + set #heal,0; + set @healing,0; + end; +} + +function script illegalkill { + announce "Illegal Kill by " + strcharinfo(0) + " Detected",1; + percentheal -100,-100; + end; +} + +// Healer // +gon_test,55,103,6 script Nurse 90,{ + if (@battle == 1 || #heal == 0) goto L_NoHeal; + if (#heal == 1 && @healing < 100) goto L_Heal; //Total healing required + set @fighting,0; + set #heal,0; + set @healing,0; + specialeffect2 EF_VALLENTINE2; + announce "Your monster has healed.",19; + end; + +L_Heal: + set @healrate,140 / #monster; //Rate of heal per click + set @healing,@healing + @healrate; + end; + +L_NoHeal: + announce "Your monster does not need healing yet.",19; + end; +} + +// Warps players // +gon_test,57,86,5 script Summon Pad 1::SummonPad 111,2,2,{ + end; +OnTouch: + set @marena,1; + warp "gon_test",57,99; +} +gon_test,43,87,5 duplicate(SummonPad) Summon Pad 2 111,2,2 +gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2 + + + +// Skill Disabler // +gon_test,57,99,5 script Skill Disable 111,3,3,{ + atcommand strcharinfo(0) + "@skilloff"; + disablenpc "Skill Disable"; + end; +} + +// Duel Arena // +gon_test,58,103,5 script Duel Master#01 92,{ + if ($@duelist1$ == "") set @duel,0; + if ($@monster1 == "") set @duel,0; + set @marena,1; + if (#monster == 0) goto L_NoMon; + mes "[Duel Master]"; + if ($@duel == 1) goto L_Waiting; + if ($@duel == 2) goto L_Dueling; + + mes "There are currently no players dueling."; + next; + menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; + + // Player 1 Enters Duel Area // + if (#heal == 1) goto L_NeedHeal; + if ($@duel == 1) goto L_Duel2; + set $@duel,1; + if (#monster > 1 && #monster < 20) set $@monster1,1; + if (#monster > 19 && #monster < 30) set $@monster1,2; + if (#monster > 29 && #monster < 40) set $@monster1,3; + if (#monster > 39 && #monster < 50) set $@monster1,4; + if (#monster > 49 && #monster < 60) set $@monster1,5; + if (#monster > 59 && #monster < 70) set $@monster1,6; + if (#monster > 69 && #monster < 80) set $@monster1,7; + if (#monster > 79 && #monster < 90) set $@monster1,8; + if (#monster > 89 && #monster < 100) set $@monster1,9; + if (#monster > 99 && #monster < 110) set $@monster1,10; + set $@duelist1$,strcharinfo(0); + set @battle,1; + announce strcharinfo(0) + " [Monster Level: " + $@monster1 + "] is waiting for a duel",1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",49,5; + close; + +L_Waiting: + mes "^0000FF " + $@duelist1$ + "^000000 [Monster Level: ^FF0000" + $@monster1 + "^000000]"; + mes "Is waiting for an opponent"; + next; + menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; + + // Player 2 Enters Duel Area // + if (#heal == 1) goto L_NeedHeal; +L_Duel2: + if ($@duel == 2) goto L_Spec; + set $@duel,2; + if (#monster > 1 && #monster < 20) set $@monster2,1; + if (#monster > 19 && #monster < 30) set $@monster2,2; + if (#monster > 29 && #monster < 40) set $@monster2,3; + if (#monster > 39 && #monster < 50) set $@monster2,4; + if (#monster > 49 && #monster < 60) set $@monster2,5; + if (#monster > 59 && #monster < 70) set $@monster2,6; + if (#monster > 69 && #monster < 80) set $@monster2,7; + if (#monster > 79 && #monster < 90) set $@monster2,8; + if (#monster > 89 && #monster < 100) set $@monster2,9; + if (#monster > 99 && #monster < 110) set $@monster2,10; + set $@duelist2$,strcharinfo(0); + set @battle,1; + announce strcharinfo(0) + " [Monster Level: " + $@monster2 + "] has joined the duel",1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",49,5; + close; + +L_Dueling: + mes "^0000FF" + $@duelist1$ + "^000000 [Monster Level: ^0000FF" + $@monster1 + "^000000]"; + mes " VS."; + mes "^FF0000" + $@duelist2$ + "^000000 [Monster Level: ^FF0000" + $@monster2 + "^000000]"; + next; + menu "Spectate",L_Spec,"Cancel",L_Exit; + +L_Spec: + set @battle,0; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",49,5; + close; + +L_Exit: + mes "[Duel Master]"; + mes "Goodbye."; + close; + +L_NoMon: + mes "[Duel Master]"; + mes "You haven't got a monster, you can't participate."; + close; + +L_NeedHeal: + mes "[Duel Master]"; + mes "You need to heal before you can join."; + close; +} + +// Duel Exit // +gon_test,42,8,5 script Duel Master#02 92,{ + mes "[Duel Master]"; + mes "Would you like to return?"; + menu "Yes",L_Leave,"No",-; + mes "Alright"; + close; + +L_Leave: + if ($@duelist1$ == strcharinfo(0)) goto L_Leave1; + if ($@duelist2$ == strcharinfo(0)) goto L_Leave2; + +L_Leave3: + atcommand strcharinfo(0) + "@option 0 0 0"; + set @battle,0; + warp "gon_test",57,99; + close; + +L_Leave1: + set $@duelist1$,$@duelist2$; + set $@monster1,$@monster2; + set $@duel,$@duel-1; + announce strcharinfo(0) + " stopped dueling",1; + goto L_Leave3; + +L_Leave2: + set $@duelist2$,""; + set $@monster2,0; + set $@duel,$@duel-1; + announce strcharinfo(0) + " stopped dueling",1; + goto L_Leave3; +} + +gon_test,49,5,5 duplicate(SummonPad) Summon Pad 4 111,2,2 +gon_test,55,8,6 duplicate(monsterreferee) Referee#02 61 diff --git a/npc/custom/etc/morroc_raceway.txt b/npc/custom/etc/morroc_raceway.txt index d346083db..768084173 100644 --- a/npc/custom/etc/morroc_raceway.txt +++ b/npc/custom/etc/morroc_raceway.txt @@ -1,238 +1,238 @@ -//===== rAthena Script ======================================= -//= Morroc Raceway -//===== By: ================================================== -//= acky -//===== Current Version: ===================================== -//= 1.3 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Lets players race around Morroc (pvp_y_1-5) -//===== Additional Comments: ================================= -//= If there are more than 3 players, at least 3 people -//= must finish before a new race can be started. -//= -//= If there are less than 3 players, at least 1 person -//= must finish before a new race can be started. -//= -//= Removed permanent global variables -//= 1.2 Removed Duplicates [Silent] -//= 1.3 Replaced effect numerics with constants. [Samuray22] -//============================================================ - -//Warps you into race way -morocc,166,105,6 script Race Girl#01 116,{ - mes "[Race Girl]"; - mes "Would you like to visit ^0000FFMorroc Raceway^000000?"; - next; - menu "Yes",L_Warp,"No",-; - mes "[Race Girl]"; - mes "Alright, talk to me again when you want to go."; - close; -L_Warp: - warp "pvp_y_1-5",165,256; - close; -} - -//Warps you out of raceway -pvp_y_1-5,169,265,5 script Race Girl#02 116,{ - mes "[Race Girl]"; - mes "Welcome to Morroc Raceway!"; - next; - menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel; - mes "[Race Girl]"; - mes "Someone must click on the Starter NPC to start the race."; - next; - mes "[Race Girl]"; - mes "Once the race is started, run around Morroc anti-clockwise."; - next; - mes "[Race Girl]"; - mes "You must reach all the checkpoints - No cheating!"; - close; -L_Warp: - warp "morocc",165,101; -L_Cancel: - mes "[Race Girl]"; - mes "Come again soon!"; - close; -} - -//Counts down and starts race -pvp_y_1-5,145,269,5 script Starter 733,{ - if ($@race != 0) goto L_Started; - if ($@counting != 0) goto L_Started; - if ($@racecount == 1) goto L_Started; -L_Menu: - mes "[Race Starter]"; - mes "Please stay on the Eastern side of me."; - menu "Start Race",L_Count,"Cancel",-; - close; -L_Count: - set $@counting,1; - mes "Counting down..."; - addtimer 1000, "Starter::OnCount1000"; - addtimer 2000, "Starter::OnCount2000"; - addtimer 3000, "Starter::OnCount3000"; - addtimer 4000, "Starter::OnCount4000"; - announce strcharinfo(0) + "Started a countdown",1; - announce "Get ready to race!",1; - close; - -OnCount1000: - announce "[3]",1; - end; -OnCount2000: - announce "[2]",1; - end; -OnCount3000: - announce "[1]",1; - end; -OnCount4000: - emotion 27; - specialeffect EF_CHIMTO; - announce "[GO!]",1; - set $@race,1; - set $@position,0; - set $@counting,0; - set $@raceid,rand(100000,999999); - end; - -L_Started: - if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu; - if ($@position > 2) goto L_Menu; - mes "[Starter]"; - mes "Race in progress"; - close; - -OnInit: - set $@race,0; - set $@position,0; - set $@racecount,0; - end; -} - -//Checkpoint 1 -pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{ - end; -OnTouch: - if (@raceid != $@raceid) goto L_Started; - if (@race == 6) goto L_Finished; - if ($@race == 1) goto L_Started; - mes "The race has not started, please move back."; - close; -L_Started: - set @race,1; - set @raceid,$@raceid; - end; -L_Finished: - mes "You have already completed the race."; - close; -} - -//Checkpoint 2 -pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{ - end; -OnTouch: - if (@race != 1) goto L_Miss; - set @race,2; - announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1; - end; -L_Miss: - mes "You have missed a Checkpoint. Please go back."; - close; -} - -//Checkpoint 3 -pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{ - end; -OnTouch: - if (@race != 2) goto L_Miss; - set @race,3; - announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1; - end; -L_Miss: - mes "You have missed a Checkpoint. Please go back."; - close; -} - -//Checkpoint 3 -pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{ - end; -OnTouch: - if (@race != 3) goto L_Miss; - set @race,4; - announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1; - end; -L_Miss: - mes "You have missed a Checkpoint. Please go back."; - close; -} - -//Checkpoint 4 -pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{ - end; -OnTouch: - if (@race != 4) goto L_Miss; - set @race,5; - announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1; - end; -L_Miss: - mes "You have missed a Checkpoint. Please go back."; - close; -} - -//Finish Line -pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{ - end; -OnTouch: - if (@raceid != $@raceid) goto L_WrongRace; - if (@race != 5) goto L_Miss; - set @race,6; - set $@position,$@position+1; - announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1; - end; -L_Miss: - mes "You have missed a Checkpoint. Please go back."; - close; -L_WrongRace: - mes "You are not in this race."; - close; -} - -//Check Point Marker Flags -pvp_y_1-5,144,267,4 script Check Point 1#01 722,{ - end; -} -pvp_y_1-5,144,257,4 script Check Point 1#02 722,{ - end; -} -pvp_y_1-5,70,252,3 script Check Point 2#01 722,{ - end; -} -pvp_y_1-5,77,243,3 script Check Point 2#02 722,{ - end; -} -pvp_y_1-5,81,48,1 script Check Point 3#01 722,{ - end; -} -pvp_y_1-5,72,40,1 script Check Point 3#02 722,{ - end; -} -pvp_y_1-5,244,65,7 script Check Point 4#01 722,{ - end; -} -pvp_y_1-5,252,57,7 script Check Point 4#02 722,{ - end; -} -pvp_y_1-5,259,260,5 script Check Point 5#01 722,{ - end; -} -pvp_y_1-5,251,252,5 script Check Point 5#02 722,{ - end; -} -pvp_y_1-5,174,249,4 script Finish Line#01 722,{ - end; -} -pvp_y_1-5,174,238,4 script Finish Line#02 722,{ - end; -} +//===== rAthena Script ======================================= +//= Morroc Raceway +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.3 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Lets players race around Morroc (pvp_y_1-5) +//===== Additional Comments: ================================= +//= If there are more than 3 players, at least 3 people +//= must finish before a new race can be started. +//= +//= If there are less than 3 players, at least 1 person +//= must finish before a new race can be started. +//= +//= Removed permanent global variables +//= 1.2 Removed Duplicates [Silent] +//= 1.3 Replaced effect numerics with constants. [Samuray22] +//============================================================ + +//Warps you into race way +morocc,166,105,6 script Race Girl#01 116,{ + mes "[Race Girl]"; + mes "Would you like to visit ^0000FFMorroc Raceway^000000?"; + next; + menu "Yes",L_Warp,"No",-; + mes "[Race Girl]"; + mes "Alright, talk to me again when you want to go."; + close; +L_Warp: + warp "pvp_y_1-5",165,256; + close; +} + +//Warps you out of raceway +pvp_y_1-5,169,265,5 script Race Girl#02 116,{ + mes "[Race Girl]"; + mes "Welcome to Morroc Raceway!"; + next; + menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel; + mes "[Race Girl]"; + mes "Someone must click on the Starter NPC to start the race."; + next; + mes "[Race Girl]"; + mes "Once the race is started, run around Morroc anti-clockwise."; + next; + mes "[Race Girl]"; + mes "You must reach all the checkpoints - No cheating!"; + close; +L_Warp: + warp "morocc",165,101; +L_Cancel: + mes "[Race Girl]"; + mes "Come again soon!"; + close; +} + +//Counts down and starts race +pvp_y_1-5,145,269,5 script Starter 733,{ + if ($@race != 0) goto L_Started; + if ($@counting != 0) goto L_Started; + if ($@racecount == 1) goto L_Started; +L_Menu: + mes "[Race Starter]"; + mes "Please stay on the Eastern side of me."; + menu "Start Race",L_Count,"Cancel",-; + close; +L_Count: + set $@counting,1; + mes "Counting down..."; + addtimer 1000, "Starter::OnCount1000"; + addtimer 2000, "Starter::OnCount2000"; + addtimer 3000, "Starter::OnCount3000"; + addtimer 4000, "Starter::OnCount4000"; + announce strcharinfo(0) + "Started a countdown",1; + announce "Get ready to race!",1; + close; + +OnCount1000: + announce "[3]",1; + end; +OnCount2000: + announce "[2]",1; + end; +OnCount3000: + announce "[1]",1; + end; +OnCount4000: + emotion 27; + specialeffect EF_CHIMTO; + announce "[GO!]",1; + set $@race,1; + set $@position,0; + set $@counting,0; + set $@raceid,rand(100000,999999); + end; + +L_Started: + if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu; + if ($@position > 2) goto L_Menu; + mes "[Starter]"; + mes "Race in progress"; + close; + +OnInit: + set $@race,0; + set $@position,0; + set $@racecount,0; + end; +} + +//Checkpoint 1 +pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{ + end; +OnTouch: + if (@raceid != $@raceid) goto L_Started; + if (@race == 6) goto L_Finished; + if ($@race == 1) goto L_Started; + mes "The race has not started, please move back."; + close; +L_Started: + set @race,1; + set @raceid,$@raceid; + end; +L_Finished: + mes "You have already completed the race."; + close; +} + +//Checkpoint 2 +pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{ + end; +OnTouch: + if (@race != 1) goto L_Miss; + set @race,2; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +} + +//Checkpoint 3 +pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{ + end; +OnTouch: + if (@race != 2) goto L_Miss; + set @race,3; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +} + +//Checkpoint 3 +pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{ + end; +OnTouch: + if (@race != 3) goto L_Miss; + set @race,4; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +} + +//Checkpoint 4 +pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{ + end; +OnTouch: + if (@race != 4) goto L_Miss; + set @race,5; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +} + +//Finish Line +pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{ + end; +OnTouch: + if (@raceid != $@raceid) goto L_WrongRace; + if (@race != 5) goto L_Miss; + set @race,6; + set $@position,$@position+1; + announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1; + end; +L_Miss: + mes "You have missed a Checkpoint. Please go back."; + close; +L_WrongRace: + mes "You are not in this race."; + close; +} + +//Check Point Marker Flags +pvp_y_1-5,144,267,4 script Check Point 1#01 722,{ + end; +} +pvp_y_1-5,144,257,4 script Check Point 1#02 722,{ + end; +} +pvp_y_1-5,70,252,3 script Check Point 2#01 722,{ + end; +} +pvp_y_1-5,77,243,3 script Check Point 2#02 722,{ + end; +} +pvp_y_1-5,81,48,1 script Check Point 3#01 722,{ + end; +} +pvp_y_1-5,72,40,1 script Check Point 3#02 722,{ + end; +} +pvp_y_1-5,244,65,7 script Check Point 4#01 722,{ + end; +} +pvp_y_1-5,252,57,7 script Check Point 4#02 722,{ + end; +} +pvp_y_1-5,259,260,5 script Check Point 5#01 722,{ + end; +} +pvp_y_1-5,251,252,5 script Check Point 5#02 722,{ + end; +} +pvp_y_1-5,174,249,4 script Finish Line#01 722,{ + end; +} +pvp_y_1-5,174,238,4 script Finish Line#02 722,{ + end; +} diff --git a/npc/custom/etc/mvp_arena.txt b/npc/custom/etc/mvp_arena.txt index 51eabfb2a..7047eaa21 100644 --- a/npc/custom/etc/mvp_arena.txt +++ b/npc/custom/etc/mvp_arena.txt @@ -1,322 +1,322 @@ -//===== rAthena Script ======================================= -//= MVP Arena -//===== By: ================================================== -//= Darkchild -//===== Current Version: ===================================== -//= 1.4 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Rooms containing 16 different MVPs -//===== Additional Comments: ================================= -//= 1.0 first version of script -//= 1.1 Optimised The MVP arena [massdriller] -//= 1.2 - NPC in prontera [Silent] -//= 1.3 - Removed Duplicates -//= 1.4 - Optimized, text edited [Euphy] -//============================================================ - -// ==== Entrance ==== -prontera,154,197,3 script MVP Warper 768,{ - mes "[ ^0065DFMVP Warper^000000 ]"; - mes "Would you like to enter"; - mes "the MVP Arena?"; - if (select("Yes!","No thanks.") == 2) close; - warp "quiz_00",50,24; - close; -} - -// ==== Information NPC ==== -quiz_00,49,31,4 script MVP Arena Guide 778,{ - mes "[ ^0065DFMVP Arena Guide^000000 ]"; - mes "Welcome and behold this sacred place. Here you will find out if you truly have what it takes to call yourself a warrior."; - next; - switch(select("Information","Heal me!","Return to Prontera","Cancel")) { - case 1: - mes "[ ^0065DFMVP Arena Guide^000000 ]"; - mes "There are four Keepers, and each can spawn four different MVPs."; - mes "There are eight rooms per Keeper, and sixteen MVPs in total."; - close; - case 2: - specialeffect2 313; - percentheal 100,100; - close; - case 3: - warp "prontera",156,179; - close; - case 4: - close; } -} - -// ==== Keepers ==== -function script Keeper { - mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; - mes "Which arena would you"; - mes "like to enter?"; - set .@menu$,""; - for(set .@i,1; .@i<9; set .@i,.@i+1) - set .@menu$, .@menu$+"Arena "+.@i+" ["+getmapusers("pvp_n_"+.@i+"-"+getarg(0))+"/20]:"; - set .@i, select(.@menu$); - if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) { - mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; - mes "Sorry, this arena is full!"; - close; } - warp "pvp_n_"+.@i+"-"+getarg(0),102,102; - close; -} - -quiz_00,56,31,4 script Alpha MVP 770,{ - callfunc "Keeper",2; } -quiz_00,58,31,4 script Beta MVP 773,{ - callfunc "Keeper",3; } -quiz_00,60,31,4 script Theta MVP 774,{ - callfunc "Keeper",4; } -quiz_00,62,31,4 script Epsilon MVP 776,{ - callfunc "Keeper",5; } - -// ==== Protectors ==== -function script Protector { - switch(select(""+((getarg(0)=="")?"":"Harder Monsters")+":Heal:Exit")) { - case 1: - warp getarg(0),102,102; - close; - case 2: - specialeffect2 313; - percentheal 100,100; - close; - case 3: - warp "prontera",156,179; - close; } -} - -pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{ - callfunc "Protector","pvp_n_2-2"; } -pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{ - callfunc "Protector","pvp_n_3-2"; } -pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{ - callfunc "Protector","pvp_n_4-2"; } -pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{ - callfunc "Protector","pvp_n_5-2"; } -pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{ - callfunc "Protector","pvp_n_6-2"; } -pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{ - callfunc "Protector","pvp_n_7-2"; } -pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{ - callfunc "Protector","pvp_n_8-2"; } -pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{ - callfunc "Protector",""; } - -pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{ - callfunc "Protector","pvp_n_2-3"; } -pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{ - callfunc "Protector","pvp_n_3-3"; } -pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{ - callfunc "Protector","pvp_n_4-3"; } -pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{ - callfunc "Protector","pvp_n_5-3"; } -pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{ - callfunc "Protector","pvp_n_6-3"; } -pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{ - callfunc "Protector","pvp_n_7-3"; } -pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{ - callfunc "Protector","pvp_n_8-3"; } -pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{ - callfunc "Protector",""; } - -pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{ - callfunc "Protector","pvp_n_2-4"; } -pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{ - callfunc "Protector","pvp_n_3-4"; } -pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{ - callfunc "Protector","pvp_n_4-4"; } -pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{ - callfunc "Protector","pvp_n_5-4"; } -pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{ - callfunc "Protector","pvp_n_6-4"; } -pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{ - callfunc "Protector","pvp_n_7-4"; } -pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{ - callfunc "Protector","pvp_n_8-4"; } -pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{ - callfunc "Protector",""; } - -pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{ - callfunc "Protector","pvp_n_2-5"; } -pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{ - callfunc "Protector","pvp_n_3-5"; } -pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{ - callfunc "Protector","pvp_n_4-5"; } -pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{ - callfunc "Protector","pvp_n_5-5"; } -pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{ - callfunc "Protector","pvp_n_6-5"; } -pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{ - callfunc "Protector","pvp_n_7-5"; } -pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{ - callfunc "Protector","pvp_n_8-5"; } -pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{ - callfunc "Protector",""; } - -// ==== Alpha ==== -pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000 -pvp_n_1-2,0,0,0,0 monster Mistress 1059,1,60000,66000 -pvp_n_2-2,0,0,0,0 monster Mistress 1059,3,60000,66000 -pvp_n_2-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 -pvp_n_3-2,0,0,0,0 monster Mistress 1059,1,60000,66000 -pvp_n_3-2,0,0,0,0 monster Moonlight 1150,2,60000,66000 -pvp_n_3-2,0,0,0,0 monster Maya 1147,1,60000,66000 -pvp_n_4-2,0,0,0,0 monster Eddga 1115,1,60000,66000 -pvp_n_4-2,0,0,0,0 monster Mistress 1059,1,60000,66000 -pvp_n_4-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 -pvp_n_4-2,0,0,0,0 monster Maya 1147,1,60000,66000 -pvp_n_5-2,0,0,0,0 monster Eddga 1115,1,60000,66000 -pvp_n_5-2,0,0,0,0 monster Mistress 1059,2,60000,66000 -pvp_n_5-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 -pvp_n_5-2,0,0,0,0 monster Maya 1147,2,60000,66000 -pvp_n_6-2,0,0,0,0 monster Eddga 1115,2,60000,66000 -pvp_n_6-2,0,0,0,0 monster Mistress 1059,3,60000,66000 -pvp_n_6-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 -pvp_n_6-2,0,0,0,0 monster Maya 1147,2,60000,66000 -pvp_n_7-2,0,0,0,0 monster Eddga 1115,3,60000,66000 -pvp_n_7-2,0,0,0,0 monster Mistress 1059,3,60000,66000 -pvp_n_7-2,0,0,0,0 monster Moonlight 1150,2,60000,66000 -pvp_n_7-2,0,0,0,0 monster Maya 1147,2,60000,66000 -pvp_n_8-2,0,0,0,0 monster Eddga 1115,3,60000,66000 -pvp_n_8-2,0,0,0,0 monster Mistress 1059,3,60000,66000 -pvp_n_8-2,0,0,0,0 monster Moonlight 1150,3,60000,66000 -pvp_n_8-2,0,0,0,0 monster Maya 1147,3,60000,66000 - -// ==== Beta ==== -pvp_n_1-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 -pvp_n_1-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 -pvp_n_2-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 -pvp_n_2-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 -pvp_n_2-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 -pvp_n_3-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000 -pvp_n_3-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 -pvp_n_3-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 -pvp_n_3-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 -pvp_n_4-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 -pvp_n_4-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 -pvp_n_4-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 -pvp_n_4-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 -pvp_n_5-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000 -pvp_n_5-3,0,0,0,0 monster Turtle General 1312,2,60000,66000 -pvp_n_5-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 -pvp_n_5-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 -pvp_n_6-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 -pvp_n_6-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 -pvp_n_6-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 -pvp_n_6-3,0,0,0,0 monster Orc Lord 1190,2,60000,66000 -pvp_n_7-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 -pvp_n_7-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 -pvp_n_7-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 -pvp_n_7-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000 -pvp_n_8-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 -pvp_n_8-3,0,0,0,0 monster Turtle General 1312,3,60000,66000 -pvp_n_8-3,0,0,0,0 monster Orc Hero 1087,3,60000,66000 -pvp_n_8-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000 - -// ==== Theta ==== -pvp_n_1-4,0,0,0,0 monster Drake 1112,3,60000,66000 -pvp_n_1-4,0,0,0,0 monster Osiris 1038,1,60000,66000 -pvp_n_2-4,0,0,0,0 monster Drake 1112,2,60000,66000 -pvp_n_2-4,0,0,0,0 monster Osiris 1038,1,60000,66000 -pvp_n_2-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000 -pvp_n_3-4,0,0,0,0 monster Drake 1112,1,60000,66000 -pvp_n_3-4,0,0,0,0 monster Osiris 1038,1,60000,66000 -pvp_n_3-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000 -pvp_n_3-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 -pvp_n_4-4,0,0,0,0 monster Drake 1112,2,60000,66000 -pvp_n_4-4,0,0,0,0 monster Osiris 1038,1,60000,66000 -pvp_n_4-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 -pvp_n_4-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 -pvp_n_5-4,0,0,0,0 monster Drake 1112,3,60000,66000 -pvp_n_5-4,0,0,0,0 monster Osiris 1038,2,60000,66000 -pvp_n_5-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 -pvp_n_5-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 -pvp_n_6-4,0,0,0,0 monster Drake 1112,3,60000,66000 -pvp_n_6-4,0,0,0,0 monster Osiris 1038,2,60000,66000 -pvp_n_6-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 -pvp_n_6-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000 -pvp_n_7-4,0,0,0,0 monster Drake 1112,3,60000,66000 -pvp_n_7-4,0,0,0,0 monster Osiris 1038,2,60000,66000 -pvp_n_7-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000 -pvp_n_7-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000 -pvp_n_8-4,0,0,0,0 monster Drake 1112,3,60000,66000 -pvp_n_8-4,0,0,0,0 monster Osiris 1038,3,60000,66000 -pvp_n_8-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000 -pvp_n_8-4,0,0,0,0 monster Lord of Death 1373,3,60000,66000 - -// ==== Epsilon ==== -pvp_n_1-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 -pvp_n_1-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 -pvp_n_2-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 -pvp_n_2-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 -pvp_n_2-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 -pvp_n_3-5,0,0,0,0 monster Incantation Samurai 1492,1,60000,66000 -pvp_n_3-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 -pvp_n_3-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 -pvp_n_3-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 -pvp_n_4-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 -pvp_n_4-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 -pvp_n_4-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 -pvp_n_4-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 -pvp_n_5-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 -pvp_n_5-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 -pvp_n_5-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 -pvp_n_5-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 -pvp_n_6-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 -pvp_n_6-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 -pvp_n_6-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 -pvp_n_6-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 -pvp_n_7-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 -pvp_n_7-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 -pvp_n_7-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 -pvp_n_7-5,0,0,0,0 monster Baphomet 1039,2,60000,66000 -pvp_n_8-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 -pvp_n_8-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 -pvp_n_8-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 -pvp_n_8-5,0,0,0,0 monster Baphomet 1039,2,60000,66000 - -// ==== Mapflags ==== -pvp_n_1-1 mapflag pvp_nightmaredrop off -pvp_n_2-1 mapflag pvp_nightmaredrop off -pvp_n_3-1 mapflag pvp_nightmaredrop off -pvp_n_4-1 mapflag pvp_nightmaredrop off -pvp_n_5-1 mapflag pvp_nightmaredrop off -pvp_n_6-1 mapflag pvp_nightmaredrop off -pvp_n_7-1 mapflag pvp_nightmaredrop off -pvp_n_8-1 mapflag pvp_nightmaredrop off -pvp_n_1-2 mapflag pvp_nightmaredrop off -pvp_n_2-2 mapflag pvp_nightmaredrop off -pvp_n_3-2 mapflag pvp_nightmaredrop off -pvp_n_4-2 mapflag pvp_nightmaredrop off -pvp_n_5-2 mapflag pvp_nightmaredrop off -pvp_n_6-2 mapflag pvp_nightmaredrop off -pvp_n_7-2 mapflag pvp_nightmaredrop off -pvp_n_8-2 mapflag pvp_nightmaredrop off -pvp_n_1-3 mapflag pvp_nightmaredrop off -pvp_n_2-3 mapflag pvp_nightmaredrop off -pvp_n_3-3 mapflag pvp_nightmaredrop off -pvp_n_4-3 mapflag pvp_nightmaredrop off -pvp_n_5-3 mapflag pvp_nightmaredrop off -pvp_n_6-3 mapflag pvp_nightmaredrop off -pvp_n_7-3 mapflag pvp_nightmaredrop off -pvp_n_8-3 mapflag pvp_nightmaredrop off -pvp_n_1-4 mapflag pvp_nightmaredrop off -pvp_n_2-4 mapflag pvp_nightmaredrop off -pvp_n_3-4 mapflag pvp_nightmaredrop off -pvp_n_4-4 mapflag pvp_nightmaredrop off -pvp_n_5-4 mapflag pvp_nightmaredrop off -pvp_n_6-4 mapflag pvp_nightmaredrop off -pvp_n_7-4 mapflag pvp_nightmaredrop off -pvp_n_8-4 mapflag pvp_nightmaredrop off -pvp_n_1-5 mapflag pvp_nightmaredrop off -pvp_n_2-5 mapflag pvp_nightmaredrop off -pvp_n_3-5 mapflag pvp_nightmaredrop off -pvp_n_4-5 mapflag pvp_nightmaredrop off -pvp_n_5-5 mapflag pvp_nightmaredrop off -pvp_n_6-5 mapflag pvp_nightmaredrop off -pvp_n_7-5 mapflag pvp_nightmaredrop off +//===== rAthena Script ======================================= +//= MVP Arena +//===== By: ================================================== +//= Darkchild +//===== Current Version: ===================================== +//= 1.4 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Rooms containing 16 different MVPs +//===== Additional Comments: ================================= +//= 1.0 first version of script +//= 1.1 Optimised The MVP arena [massdriller] +//= 1.2 - NPC in prontera [Silent] +//= 1.3 - Removed Duplicates +//= 1.4 - Optimized, text edited [Euphy] +//============================================================ + +// ==== Entrance ==== +prontera,154,197,3 script MVP Warper 768,{ + mes "[ ^0065DFMVP Warper^000000 ]"; + mes "Would you like to enter"; + mes "the MVP Arena?"; + if (select("Yes!","No thanks.") == 2) close; + warp "quiz_00",50,24; + close; +} + +// ==== Information NPC ==== +quiz_00,49,31,4 script MVP Arena Guide 778,{ + mes "[ ^0065DFMVP Arena Guide^000000 ]"; + mes "Welcome and behold this sacred place. Here you will find out if you truly have what it takes to call yourself a warrior."; + next; + switch(select("Information","Heal me!","Return to Prontera","Cancel")) { + case 1: + mes "[ ^0065DFMVP Arena Guide^000000 ]"; + mes "There are four Keepers, and each can spawn four different MVPs."; + mes "There are eight rooms per Keeper, and sixteen MVPs in total."; + close; + case 2: + specialeffect2 313; + percentheal 100,100; + close; + case 3: + warp "prontera",156,179; + close; + case 4: + close; } +} + +// ==== Keepers ==== +function script Keeper { + mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; + mes "Which arena would you"; + mes "like to enter?"; + set .@menu$,""; + for(set .@i,1; .@i<9; set .@i,.@i+1) + set .@menu$, .@menu$+"Arena "+.@i+" ["+getmapusers("pvp_n_"+.@i+"-"+getarg(0))+"/20]:"; + set .@i, select(.@menu$); + if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) { + mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; + mes "Sorry, this arena is full!"; + close; } + warp "pvp_n_"+.@i+"-"+getarg(0),102,102; + close; +} + +quiz_00,56,31,4 script Alpha MVP 770,{ + callfunc "Keeper",2; } +quiz_00,58,31,4 script Beta MVP 773,{ + callfunc "Keeper",3; } +quiz_00,60,31,4 script Theta MVP 774,{ + callfunc "Keeper",4; } +quiz_00,62,31,4 script Epsilon MVP 776,{ + callfunc "Keeper",5; } + +// ==== Protectors ==== +function script Protector { + switch(select(""+((getarg(0)=="")?"":"Harder Monsters")+":Heal:Exit")) { + case 1: + warp getarg(0),102,102; + close; + case 2: + specialeffect2 313; + percentheal 100,100; + close; + case 3: + warp "prontera",156,179; + close; } +} + +pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{ + callfunc "Protector","pvp_n_2-2"; } +pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{ + callfunc "Protector","pvp_n_3-2"; } +pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{ + callfunc "Protector","pvp_n_4-2"; } +pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{ + callfunc "Protector","pvp_n_5-2"; } +pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{ + callfunc "Protector","pvp_n_6-2"; } +pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{ + callfunc "Protector","pvp_n_7-2"; } +pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{ + callfunc "Protector","pvp_n_8-2"; } +pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{ + callfunc "Protector",""; } + +pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{ + callfunc "Protector","pvp_n_2-3"; } +pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{ + callfunc "Protector","pvp_n_3-3"; } +pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{ + callfunc "Protector","pvp_n_4-3"; } +pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{ + callfunc "Protector","pvp_n_5-3"; } +pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{ + callfunc "Protector","pvp_n_6-3"; } +pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{ + callfunc "Protector","pvp_n_7-3"; } +pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{ + callfunc "Protector","pvp_n_8-3"; } +pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{ + callfunc "Protector",""; } + +pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{ + callfunc "Protector","pvp_n_2-4"; } +pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{ + callfunc "Protector","pvp_n_3-4"; } +pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{ + callfunc "Protector","pvp_n_4-4"; } +pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{ + callfunc "Protector","pvp_n_5-4"; } +pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{ + callfunc "Protector","pvp_n_6-4"; } +pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{ + callfunc "Protector","pvp_n_7-4"; } +pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{ + callfunc "Protector","pvp_n_8-4"; } +pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{ + callfunc "Protector",""; } + +pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{ + callfunc "Protector","pvp_n_2-5"; } +pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{ + callfunc "Protector","pvp_n_3-5"; } +pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{ + callfunc "Protector","pvp_n_4-5"; } +pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{ + callfunc "Protector","pvp_n_5-5"; } +pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{ + callfunc "Protector","pvp_n_6-5"; } +pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{ + callfunc "Protector","pvp_n_7-5"; } +pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{ + callfunc "Protector","pvp_n_8-5"; } +pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{ + callfunc "Protector",""; } + +// ==== Alpha ==== +pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000 +pvp_n_1-2,0,0,0,0 monster Mistress 1059,1,60000,66000 +pvp_n_2-2,0,0,0,0 monster Mistress 1059,3,60000,66000 +pvp_n_2-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 +pvp_n_3-2,0,0,0,0 monster Mistress 1059,1,60000,66000 +pvp_n_3-2,0,0,0,0 monster Moonlight 1150,2,60000,66000 +pvp_n_3-2,0,0,0,0 monster Maya 1147,1,60000,66000 +pvp_n_4-2,0,0,0,0 monster Eddga 1115,1,60000,66000 +pvp_n_4-2,0,0,0,0 monster Mistress 1059,1,60000,66000 +pvp_n_4-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 +pvp_n_4-2,0,0,0,0 monster Maya 1147,1,60000,66000 +pvp_n_5-2,0,0,0,0 monster Eddga 1115,1,60000,66000 +pvp_n_5-2,0,0,0,0 monster Mistress 1059,2,60000,66000 +pvp_n_5-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 +pvp_n_5-2,0,0,0,0 monster Maya 1147,2,60000,66000 +pvp_n_6-2,0,0,0,0 monster Eddga 1115,2,60000,66000 +pvp_n_6-2,0,0,0,0 monster Mistress 1059,3,60000,66000 +pvp_n_6-2,0,0,0,0 monster Moonlight 1150,1,60000,66000 +pvp_n_6-2,0,0,0,0 monster Maya 1147,2,60000,66000 +pvp_n_7-2,0,0,0,0 monster Eddga 1115,3,60000,66000 +pvp_n_7-2,0,0,0,0 monster Mistress 1059,3,60000,66000 +pvp_n_7-2,0,0,0,0 monster Moonlight 1150,2,60000,66000 +pvp_n_7-2,0,0,0,0 monster Maya 1147,2,60000,66000 +pvp_n_8-2,0,0,0,0 monster Eddga 1115,3,60000,66000 +pvp_n_8-2,0,0,0,0 monster Mistress 1059,3,60000,66000 +pvp_n_8-2,0,0,0,0 monster Moonlight 1150,3,60000,66000 +pvp_n_8-2,0,0,0,0 monster Maya 1147,3,60000,66000 + +// ==== Beta ==== +pvp_n_1-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 +pvp_n_1-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_2-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 +pvp_n_2-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_2-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 +pvp_n_3-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000 +pvp_n_3-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_3-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 +pvp_n_3-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 +pvp_n_4-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 +pvp_n_4-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_4-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000 +pvp_n_4-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 +pvp_n_5-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000 +pvp_n_5-3,0,0,0,0 monster Turtle General 1312,2,60000,66000 +pvp_n_5-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 +pvp_n_5-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000 +pvp_n_6-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 +pvp_n_6-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_6-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 +pvp_n_6-3,0,0,0,0 monster Orc Lord 1190,2,60000,66000 +pvp_n_7-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 +pvp_n_7-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 +pvp_n_7-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000 +pvp_n_7-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000 +pvp_n_8-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 +pvp_n_8-3,0,0,0,0 monster Turtle General 1312,3,60000,66000 +pvp_n_8-3,0,0,0,0 monster Orc Hero 1087,3,60000,66000 +pvp_n_8-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000 + +// ==== Theta ==== +pvp_n_1-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_1-4,0,0,0,0 monster Osiris 1038,1,60000,66000 +pvp_n_2-4,0,0,0,0 monster Drake 1112,2,60000,66000 +pvp_n_2-4,0,0,0,0 monster Osiris 1038,1,60000,66000 +pvp_n_2-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000 +pvp_n_3-4,0,0,0,0 monster Drake 1112,1,60000,66000 +pvp_n_3-4,0,0,0,0 monster Osiris 1038,1,60000,66000 +pvp_n_3-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000 +pvp_n_3-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 +pvp_n_4-4,0,0,0,0 monster Drake 1112,2,60000,66000 +pvp_n_4-4,0,0,0,0 monster Osiris 1038,1,60000,66000 +pvp_n_4-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 +pvp_n_4-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 +pvp_n_5-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_5-4,0,0,0,0 monster Osiris 1038,2,60000,66000 +pvp_n_5-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 +pvp_n_5-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000 +pvp_n_6-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_6-4,0,0,0,0 monster Osiris 1038,2,60000,66000 +pvp_n_6-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000 +pvp_n_6-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000 +pvp_n_7-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_7-4,0,0,0,0 monster Osiris 1038,2,60000,66000 +pvp_n_7-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000 +pvp_n_7-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000 +pvp_n_8-4,0,0,0,0 monster Drake 1112,3,60000,66000 +pvp_n_8-4,0,0,0,0 monster Osiris 1038,3,60000,66000 +pvp_n_8-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000 +pvp_n_8-4,0,0,0,0 monster Lord of Death 1373,3,60000,66000 + +// ==== Epsilon ==== +pvp_n_1-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 +pvp_n_1-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 +pvp_n_2-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 +pvp_n_2-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 +pvp_n_2-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 +pvp_n_3-5,0,0,0,0 monster Incantation Samurai 1492,1,60000,66000 +pvp_n_3-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 +pvp_n_3-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 +pvp_n_3-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 +pvp_n_4-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 +pvp_n_4-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 +pvp_n_4-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000 +pvp_n_4-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 +pvp_n_5-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 +pvp_n_5-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 +pvp_n_5-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 +pvp_n_5-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 +pvp_n_6-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 +pvp_n_6-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 +pvp_n_6-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 +pvp_n_6-5,0,0,0,0 monster Baphomet 1039,1,60000,66000 +pvp_n_7-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 +pvp_n_7-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 +pvp_n_7-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 +pvp_n_7-5,0,0,0,0 monster Baphomet 1039,2,60000,66000 +pvp_n_8-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 +pvp_n_8-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 +pvp_n_8-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 +pvp_n_8-5,0,0,0,0 monster Baphomet 1039,2,60000,66000 + +// ==== Mapflags ==== +pvp_n_1-1 mapflag pvp_nightmaredrop off +pvp_n_2-1 mapflag pvp_nightmaredrop off +pvp_n_3-1 mapflag pvp_nightmaredrop off +pvp_n_4-1 mapflag pvp_nightmaredrop off +pvp_n_5-1 mapflag pvp_nightmaredrop off +pvp_n_6-1 mapflag pvp_nightmaredrop off +pvp_n_7-1 mapflag pvp_nightmaredrop off +pvp_n_8-1 mapflag pvp_nightmaredrop off +pvp_n_1-2 mapflag pvp_nightmaredrop off +pvp_n_2-2 mapflag pvp_nightmaredrop off +pvp_n_3-2 mapflag pvp_nightmaredrop off +pvp_n_4-2 mapflag pvp_nightmaredrop off +pvp_n_5-2 mapflag pvp_nightmaredrop off +pvp_n_6-2 mapflag pvp_nightmaredrop off +pvp_n_7-2 mapflag pvp_nightmaredrop off +pvp_n_8-2 mapflag pvp_nightmaredrop off +pvp_n_1-3 mapflag pvp_nightmaredrop off +pvp_n_2-3 mapflag pvp_nightmaredrop off +pvp_n_3-3 mapflag pvp_nightmaredrop off +pvp_n_4-3 mapflag pvp_nightmaredrop off +pvp_n_5-3 mapflag pvp_nightmaredrop off +pvp_n_6-3 mapflag pvp_nightmaredrop off +pvp_n_7-3 mapflag pvp_nightmaredrop off +pvp_n_8-3 mapflag pvp_nightmaredrop off +pvp_n_1-4 mapflag pvp_nightmaredrop off +pvp_n_2-4 mapflag pvp_nightmaredrop off +pvp_n_3-4 mapflag pvp_nightmaredrop off +pvp_n_4-4 mapflag pvp_nightmaredrop off +pvp_n_5-4 mapflag pvp_nightmaredrop off +pvp_n_6-4 mapflag pvp_nightmaredrop off +pvp_n_7-4 mapflag pvp_nightmaredrop off +pvp_n_8-4 mapflag pvp_nightmaredrop off +pvp_n_1-5 mapflag pvp_nightmaredrop off +pvp_n_2-5 mapflag pvp_nightmaredrop off +pvp_n_3-5 mapflag pvp_nightmaredrop off +pvp_n_4-5 mapflag pvp_nightmaredrop off +pvp_n_5-5 mapflag pvp_nightmaredrop off +pvp_n_6-5 mapflag pvp_nightmaredrop off +pvp_n_7-5 mapflag pvp_nightmaredrop off pvp_n_8-5 mapflag pvp_nightmaredrop off \ No newline at end of file diff --git a/npc/custom/etc/penal_servitude.txt b/npc/custom/etc/penal_servitude.txt index 65f4feedd..bfbd39c63 100644 --- a/npc/custom/etc/penal_servitude.txt +++ b/npc/custom/etc/penal_servitude.txt @@ -1,193 +1,193 @@ -//===== rAthena Script ======================================= -//= Penal Servitude -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 1.2 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= A simple Penal Servitude Script. -//= It could cheer up your prisoners a bit. -//===== Additional Comments: ================================= -// This script uses CHEQUES of the 2nd KAFRA_BANK.TXT -// var PRISON - it counts number of your imprisonments. -// 1.1 English translation -// 1.2 Stricted the conditions a bit -//============================================================ - -sec_pri,36,58,1 script Chief Warder 105,{ - mes "[Saddeus]"; - emotion 1; - if(sex) { - mes "Mr. Prisoner #"+BaseLevel+JobLevel+","; - } else { - mes "Ms. Prisoner #"+BaseLevel+JobLevel+","; - } - mes "what's the noise over there?"; - next; - menu "Let me free, I'll pay!",-, "Let me to work off my freedom!",M_Q1, "Nothing",M_NO_THANKS; - -M_PAY: - mes "[Saddeus]"; - set @MUSTPAY,(PRISON+1)*1000000; - if (@MUSTPAY<1000000) set @MUSTPAY,1000000; - if (@MUSTPAY>100000000) set @MUSTPAY,100000000; - if (PRISON==1) mes "I can't remember you. Is it your 1st time?"; - if (PRISON>1) mes "You again? Sombody hasn't grown wiser from the very first visit..."; - mes "OK, we could release you for ^FF0000"+@MUSTPAY+"z^000000."; - next; - menu "I pay cash!",M_PAYCASH,"Do you accept cheques?",M_PAYBANK,"I've changed my mind.",-; - - mes "[Saddeus]"; - mes "You've got some time to think about..."; - close; - -M_PAYCASH: - if (@MUSTPAY>Zeny) goto L_NOCASH; - set Zeny,Zeny-@MUSTPAY; - mes "[Saddeus]"; - mes "OK, sing here and there."; - goto L_RELEASE; - -L_NOCASH: - mes "[Saddeus]"; - mes "What's this? It's not enough!"; - close; - -M_PAYBANK: - if (@MUSTPAY>#kafrabank) goto L_NOBANK; - set #kafrabank,#kafrabank-@MUSTPAY; - mes "[Saddeus]"; - mes "OK, sign your cheque. And put down your name in my book."; - goto L_RELEASE; - -L_NOBANK: - mes "[Saddeus]"; - if (#kafrabank==0) mes "Your case says nothing about your bank accounts."; - if (#kafrabank!=0) mes "Alas, there's your bank account info... ^FF0000"+#kafrabank+"z^000000... in the case. It's not enough."; - mes "Stop your silly games now!"; - close; - -L_RELEASE: - set PRISON,PRISON+1; - next; - mes "[Saddeus]"; - mes "You are free now!"; - next; - savepoint "izlude",105,112; - warp "izlude",105,112; - close; - -M_Q1: - mes "[Saddeus]"; - mes "Our stocks are short of toadstools. Remember your morning's skilly? What about some work at our sponsored mushroom farm?"; - next; - menu "OK, I'll work off!",-, "I love this prison!",M_NO_THANKS; - - mes "[Saddeus]"; - if(checkcart() || checkfalcon() || checkriding()){ - emotion e_hmm; - mes "I'm sorry, you should release your Cart, PecoPeco or Falcon!"; - close; - } - mes "Talk to our overseer, Oliver."; - next; - - nude; - - set @rw,rand(1,4); - if (@rw==2) goto L_W2; - if (@rw==3) goto L_W3; - if (@rw==4) goto L_W4; - -L_W1: - savepoint "sec_in02",179,76; - warp "sec_in02",179,76; - close; - -L_W2: - savepoint "sec_in02",139,32; - warp "sec_in02",139,32; - close; - -L_W3: - savepoint "sec_in02",100,28; - warp "sec_in02",100,28; - close; - -L_W4: - savepoint "sec_in02",107,75; - warp "sec_in02",107,75; - close; - -M_NO_THANKS: - mes "[Saddeus]"; - if (rand(2)) mes "Is today X-Mas time, huh?"; - mes "Now shut up and back off!"; - if (rand(2)) emotion 23; - close; -} - -sec_in02,137,57,1 script Overseer 708,{ - mes "[Oliver]"; - - delitem 4002,countitem(4002);//Items: Fabre_Card, - delitem 4009,countitem(4009);//Items: Chonchon_Card, - delitem 4022,countitem(4022);//Items: Spore_Card, - delitem 4048,countitem(4048);//Items: Poison_Spore_Card, - - if (PRISON_Q <= 0 ) goto L_GET_Q; - - mes "I want you to gather ^FF0000"+PRISON_Q+" Orange Net Mushroom^000000."; - if ( countitem(1069) 1) mes "Hmm... You've been here already... Well-well..."; - - if ( countitem(1069) || countitem(1070) ) mes "Drop these mushrooms!! They are poisonous!";//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_, - delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom, - delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_, - - set PRISON_Q, PRISON*3 + BaseLevel/3; - set PRISON_Q, PRISON_Q * (readparam(bAspd)/55 + 1); - set PRISON_Q, PRISON_Q+rand(50,60); - mes "OK, you must bring me ^FF0000"+PRISON_Q+"^000000 edible ^FF0000Orange Net Mushroom^000000 toadstoo.. shrooms."; - if(readparam(bAspd)>=100) mes "You're a fast fella! You'll have to get more shrooms, then."; - if (rand(10)<4) mes "And you may eat the deadly ones for breakfast."; - close; -} - - -sec_in02 mapflag nomemo -sec_in02 mapflag nosave SavePoint -sec_in02 mapflag noteleport -sec_in02 mapflag nobranch -sec_in02 mapflag nowarp -sec_in02 mapflag nowarpto -sec_in02 mapflag noexp -sec_in02 mapflag noskill -//sec_in02 mapflag pvp -//sec_in02 mapflag pvp_noparty -//sec_in02 mapflag gvg -sec_in02 mapflag pvp_nightmaredrop random,all,300 - -sec_in02,138,55,100,100 monster Toadstool 1182,30,10000,10000,1 -sec_in02,138,55,100,100 monster Fabre 1184,10,20000,20000 -sec_in02,138,55,100,100 monster Chonchon 1183,11,20000,20000 -sec_in02,138,55,100,100 monster Spore 1014,12,20000,20000 -sec_in02,138,55,100,100 monster Poison Spore 1077,3,20000,20000 +//===== rAthena Script ======================================= +//= Penal Servitude +//===== By: ================================================== +//= Lupus +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= A simple Penal Servitude Script. +//= It could cheer up your prisoners a bit. +//===== Additional Comments: ================================= +// This script uses CHEQUES of the 2nd KAFRA_BANK.TXT +// var PRISON - it counts number of your imprisonments. +// 1.1 English translation +// 1.2 Stricted the conditions a bit +//============================================================ + +sec_pri,36,58,1 script Chief Warder 105,{ + mes "[Saddeus]"; + emotion 1; + if(sex) { + mes "Mr. Prisoner #"+BaseLevel+JobLevel+","; + } else { + mes "Ms. Prisoner #"+BaseLevel+JobLevel+","; + } + mes "what's the noise over there?"; + next; + menu "Let me free, I'll pay!",-, "Let me to work off my freedom!",M_Q1, "Nothing",M_NO_THANKS; + +M_PAY: + mes "[Saddeus]"; + set @MUSTPAY,(PRISON+1)*1000000; + if (@MUSTPAY<1000000) set @MUSTPAY,1000000; + if (@MUSTPAY>100000000) set @MUSTPAY,100000000; + if (PRISON==1) mes "I can't remember you. Is it your 1st time?"; + if (PRISON>1) mes "You again? Sombody hasn't grown wiser from the very first visit..."; + mes "OK, we could release you for ^FF0000"+@MUSTPAY+"z^000000."; + next; + menu "I pay cash!",M_PAYCASH,"Do you accept cheques?",M_PAYBANK,"I've changed my mind.",-; + + mes "[Saddeus]"; + mes "You've got some time to think about..."; + close; + +M_PAYCASH: + if (@MUSTPAY>Zeny) goto L_NOCASH; + set Zeny,Zeny-@MUSTPAY; + mes "[Saddeus]"; + mes "OK, sing here and there."; + goto L_RELEASE; + +L_NOCASH: + mes "[Saddeus]"; + mes "What's this? It's not enough!"; + close; + +M_PAYBANK: + if (@MUSTPAY>#kafrabank) goto L_NOBANK; + set #kafrabank,#kafrabank-@MUSTPAY; + mes "[Saddeus]"; + mes "OK, sign your cheque. And put down your name in my book."; + goto L_RELEASE; + +L_NOBANK: + mes "[Saddeus]"; + if (#kafrabank==0) mes "Your case says nothing about your bank accounts."; + if (#kafrabank!=0) mes "Alas, there's your bank account info... ^FF0000"+#kafrabank+"z^000000... in the case. It's not enough."; + mes "Stop your silly games now!"; + close; + +L_RELEASE: + set PRISON,PRISON+1; + next; + mes "[Saddeus]"; + mes "You are free now!"; + next; + savepoint "izlude",105,112; + warp "izlude",105,112; + close; + +M_Q1: + mes "[Saddeus]"; + mes "Our stocks are short of toadstools. Remember your morning's skilly? What about some work at our sponsored mushroom farm?"; + next; + menu "OK, I'll work off!",-, "I love this prison!",M_NO_THANKS; + + mes "[Saddeus]"; + if(checkcart() || checkfalcon() || checkriding()){ + emotion e_hmm; + mes "I'm sorry, you should release your Cart, PecoPeco or Falcon!"; + close; + } + mes "Talk to our overseer, Oliver."; + next; + + nude; + + set @rw,rand(1,4); + if (@rw==2) goto L_W2; + if (@rw==3) goto L_W3; + if (@rw==4) goto L_W4; + +L_W1: + savepoint "sec_in02",179,76; + warp "sec_in02",179,76; + close; + +L_W2: + savepoint "sec_in02",139,32; + warp "sec_in02",139,32; + close; + +L_W3: + savepoint "sec_in02",100,28; + warp "sec_in02",100,28; + close; + +L_W4: + savepoint "sec_in02",107,75; + warp "sec_in02",107,75; + close; + +M_NO_THANKS: + mes "[Saddeus]"; + if (rand(2)) mes "Is today X-Mas time, huh?"; + mes "Now shut up and back off!"; + if (rand(2)) emotion 23; + close; +} + +sec_in02,137,57,1 script Overseer 708,{ + mes "[Oliver]"; + + delitem 4002,countitem(4002);//Items: Fabre_Card, + delitem 4009,countitem(4009);//Items: Chonchon_Card, + delitem 4022,countitem(4022);//Items: Spore_Card, + delitem 4048,countitem(4048);//Items: Poison_Spore_Card, + + if (PRISON_Q <= 0 ) goto L_GET_Q; + + mes "I want you to gather ^FF0000"+PRISON_Q+" Orange Net Mushroom^000000."; + if ( countitem(1069) 1) mes "Hmm... You've been here already... Well-well..."; + + if ( countitem(1069) || countitem(1070) ) mes "Drop these mushrooms!! They are poisonous!";//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_, + delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom, + delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_, + + set PRISON_Q, PRISON*3 + BaseLevel/3; + set PRISON_Q, PRISON_Q * (readparam(bAspd)/55 + 1); + set PRISON_Q, PRISON_Q+rand(50,60); + mes "OK, you must bring me ^FF0000"+PRISON_Q+"^000000 edible ^FF0000Orange Net Mushroom^000000 toadstoo.. shrooms."; + if(readparam(bAspd)>=100) mes "You're a fast fella! You'll have to get more shrooms, then."; + if (rand(10)<4) mes "And you may eat the deadly ones for breakfast."; + close; +} + + +sec_in02 mapflag nomemo +sec_in02 mapflag nosave SavePoint +sec_in02 mapflag noteleport +sec_in02 mapflag nobranch +sec_in02 mapflag nowarp +sec_in02 mapflag nowarpto +sec_in02 mapflag noexp +sec_in02 mapflag noskill +//sec_in02 mapflag pvp +//sec_in02 mapflag pvp_noparty +//sec_in02 mapflag gvg +sec_in02 mapflag pvp_nightmaredrop random,all,300 + +sec_in02,138,55,100,100 monster Toadstool 1182,30,10000,10000,1 +sec_in02,138,55,100,100 monster Fabre 1184,10,20000,20000 +sec_in02,138,55,100,100 monster Chonchon 1183,11,20000,20000 +sec_in02,138,55,100,100 monster Spore 1014,12,20000,20000 +sec_in02,138,55,100,100 monster Poison Spore 1077,3,20000,20000 diff --git a/npc/custom/etc/rpsroulette.txt b/npc/custom/etc/rpsroulette.txt index 9d8fa278c..8e3d04a3e 100644 --- a/npc/custom/etc/rpsroulette.txt +++ b/npc/custom/etc/rpsroulette.txt @@ -1,286 +1,286 @@ -//===== rAthena Script ======================================= -//= Rock Scissors Roulette -//===== By: ================================================== -//= acky -//===== Current Version: ===================================== -//= 1.2 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Plays a hybrid Russian Roulette Rock Scissors Paper game. -//===== Additional Comments: ================================= -//= Prizes customizable, Added emotions. -//= 1.2 Fixes by Blackthunder and me [Poki#3] -//============================================================ - -cmd_in02,182,126,2 script Crazy Boris 85,{ - mes "Crazy Boris"; - set @counter,1; - mes "Hey you! Up for Rock Scissors Roulette?"; - next; - menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE; - SAME: - mes "Draw! Again!"; - next; - goto PLAY; - -WIN: - mes "Damnit, You Win!"; - emotion 19; - next; - goto OPPPULL; - -LOSE: - emotion 18; - mes "Boorah! You Lose!"; - next; - goto YOUPULL; - -PLAY: - mes "Rock... Paper..."; - set @opp,rand (1,3); - menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; - -ROCK: - if (@lastchoice == 1) set @opp,rand (1,3); - if (@opp == 1) emotion 11; - if (@opp == 2) emotion 10; - if (@opp == 3) emotion 12; - set @lastchoice,1; - if (@opp == 1) goto SAME; - if (@opp == 2) goto WIN; - if (@opp == 3) goto LOSE; - -SCISSORS: - if (@lastchoice == 2) set @opp,rand (1,2); - if (@opp == 1) emotion 11; - if (@opp == 2) emotion 10; - if (@opp == 3) emotion 12; - set @lastchoice,2; - if (@opp == 1) goto LOSE; - if (@opp == 2) goto SAME; - if (@opp == 3) goto WIN; - -PAPER: - if (@lastchoice == 3) set @opp,rand (2,3); - if (@opp == 1) emotion 11; - if (@opp == 2) emotion 10; - if (@opp == 3) emotion 12; - set @lastchoice,3; - if (@opp == 1) goto WIN; - if (@opp == 2) goto LOSE; - if (@opp == 3) goto SAME; - -YOUPULL: - if (@counter == 1) goto ONE; - if (@counter == 2) goto TWO; - if (@counter == 3) goto THREE; - if (@counter == 4) goto FOUR; - if (@counter == 5) goto FIVE; - if (@counter == 6) goto SIX; - -OPPPULL: - if (@counter == 1) goto ONEa; - if (@counter == 2) goto TWOa; - if (@counter == 3) goto THREEa; - if (@counter == 4) goto FOURa; - if (@counter == 5) goto FIVEa; - if (@counter == 6) goto SIXa; - -ONE: - set @counter,2; - mes "1 of 6"; - set @pull,rand (1,6); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -TWO: - set @counter,3; - mes "2 of 6"; - set @pull,rand (1,5); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -THREE: - set @counter,4; - mes "3 of 6"; - set @pull,rand (1,4); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -FOUR: - set @counter,5; - mes "4 of 6"; - set @pull,rand (1,3); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -FIVE: - set @counter,6; - mes "5 of 6"; - set @pull,rand (1,2); - if (@pull == 1) set @pull,rand (1,2); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -SIX: - mes "6 of 6"; - mes "Say your prayers"; - set @pull,1; - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -ONEa: - set @counter,2; - mes "1 of 6"; - set @pull,rand (1,6); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -TWOa: - set @counter,3; - mes "2 of 6"; - set @pull,rand (1,5); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -THREEa: - set @counter,4; - mes "3 of 6"; - set @pull,rand (1,4); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -FOURa: - set @counter,5; - mes "4 of 6"; - set @pull,rand (1,3); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -FIVEa: - set @counter,6; - mes "5 of 6"; - set @pull,rand (1,2); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -SIXa: - mes "6 of 6"; - mes "Say your prayers"; - set @pull,1; - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -SAFE: - emotion 32; - mes "*^0000FFClick^000000* whew..."; - goto PLAY; - -DIE: - specialeffect2 183; - emotion 29; - percentheal -100,-100; - mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; - mes "You're dead!"; - close; - -KILL: - specialeffect 183; - emotion 23; - mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; - mes "OWWW @#$%^!! THAT HURT LIKE HELL!!"; - next; - goto PRIZE; - -RULES: - mes "Ok here are the rules:"; - mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best."; - mes "Beat me to win a prize."; - menu "Let me play.",CONT,"No thanks.",LEAVE; - -CONT: - mes "Ok here we go..."; - next; - goto PLAY; - -PRIZE: - mes "Congratulations! You have won..."; - set @prize,rand (1,10); - if (@prize == 1) goto P1; - if (@prize == 2) goto P2; - if (@prize == 3) goto P3; - if (@prize == 4) goto P4; - if (@prize == 5) goto P5; - if (@prize == 6) goto P6; - if (@prize == 7) goto P7; - if (@prize == 8) goto P8; - if (@prize == 9) goto P9; - if (@prize == 10) goto P10; - -P1: - mes "10x Oridicon!"; - getitem 984,10; - close; - -P2: - mes "10x Elunium!"; - getitem 985,10; - close; - -P3: - mes "100x Fly Wings!"; - getitem 601,100; - close; - -P4: - mes "8x Old Blue Box!"; - getitem 603,8; - close; - -P5: - mes "4x Old Violet Box!"; - getitem 617,4; - close; - -P6: - mes "1x Old Card Album!"; - getitem 616,1; - close; - -P7: - mes "10x Dead Branch!"; - getitem 604,10; - close; - -P8: - mes "3x Gold!"; - getitem 969,3; - close; - -P9: - mes "10x Elunium!"; - getitem 985,10; - close; - -P10: - mes "20x Blue Potion!"; - getitem 505,20; - close; - -LEAVE: - mes "Pansy."; - close; -} +//===== rAthena Script ======================================= +//= Rock Scissors Roulette +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Plays a hybrid Russian Roulette Rock Scissors Paper game. +//===== Additional Comments: ================================= +//= Prizes customizable, Added emotions. +//= 1.2 Fixes by Blackthunder and me [Poki#3] +//============================================================ + +cmd_in02,182,126,2 script Crazy Boris 85,{ + mes "Crazy Boris"; + set @counter,1; + mes "Hey you! Up for Rock Scissors Roulette?"; + next; + menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE; + SAME: + mes "Draw! Again!"; + next; + goto PLAY; + +WIN: + mes "Damnit, You Win!"; + emotion 19; + next; + goto OPPPULL; + +LOSE: + emotion 18; + mes "Boorah! You Lose!"; + next; + goto YOUPULL; + +PLAY: + mes "Rock... Paper..."; + set @opp,rand (1,3); + menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; + +ROCK: + if (@lastchoice == 1) set @opp,rand (1,3); + if (@opp == 1) emotion 11; + if (@opp == 2) emotion 10; + if (@opp == 3) emotion 12; + set @lastchoice,1; + if (@opp == 1) goto SAME; + if (@opp == 2) goto WIN; + if (@opp == 3) goto LOSE; + +SCISSORS: + if (@lastchoice == 2) set @opp,rand (1,2); + if (@opp == 1) emotion 11; + if (@opp == 2) emotion 10; + if (@opp == 3) emotion 12; + set @lastchoice,2; + if (@opp == 1) goto LOSE; + if (@opp == 2) goto SAME; + if (@opp == 3) goto WIN; + +PAPER: + if (@lastchoice == 3) set @opp,rand (2,3); + if (@opp == 1) emotion 11; + if (@opp == 2) emotion 10; + if (@opp == 3) emotion 12; + set @lastchoice,3; + if (@opp == 1) goto WIN; + if (@opp == 2) goto LOSE; + if (@opp == 3) goto SAME; + +YOUPULL: + if (@counter == 1) goto ONE; + if (@counter == 2) goto TWO; + if (@counter == 3) goto THREE; + if (@counter == 4) goto FOUR; + if (@counter == 5) goto FIVE; + if (@counter == 6) goto SIX; + +OPPPULL: + if (@counter == 1) goto ONEa; + if (@counter == 2) goto TWOa; + if (@counter == 3) goto THREEa; + if (@counter == 4) goto FOURa; + if (@counter == 5) goto FIVEa; + if (@counter == 6) goto SIXa; + +ONE: + set @counter,2; + mes "1 of 6"; + set @pull,rand (1,6); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +TWO: + set @counter,3; + mes "2 of 6"; + set @pull,rand (1,5); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +THREE: + set @counter,4; + mes "3 of 6"; + set @pull,rand (1,4); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +FOUR: + set @counter,5; + mes "4 of 6"; + set @pull,rand (1,3); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +FIVE: + set @counter,6; + mes "5 of 6"; + set @pull,rand (1,2); + if (@pull == 1) set @pull,rand (1,2); + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +SIX: + mes "6 of 6"; + mes "Say your prayers"; + set @pull,1; + next; + if (@pull == 1) goto DIE; + if (@pull != 1) goto SAFE; + +ONEa: + set @counter,2; + mes "1 of 6"; + set @pull,rand (1,6); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +TWOa: + set @counter,3; + mes "2 of 6"; + set @pull,rand (1,5); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +THREEa: + set @counter,4; + mes "3 of 6"; + set @pull,rand (1,4); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +FOURa: + set @counter,5; + mes "4 of 6"; + set @pull,rand (1,3); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +FIVEa: + set @counter,6; + mes "5 of 6"; + set @pull,rand (1,2); + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +SIXa: + mes "6 of 6"; + mes "Say your prayers"; + set @pull,1; + next; + if (@pull == 1) goto KILL; + if (@pull != 1) goto SAFE; + +SAFE: + emotion 32; + mes "*^0000FFClick^000000* whew..."; + goto PLAY; + +DIE: + specialeffect2 183; + emotion 29; + percentheal -100,-100; + mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; + mes "You're dead!"; + close; + +KILL: + specialeffect 183; + emotion 23; + mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; + mes "OWWW @#$%^!! THAT HURT LIKE HELL!!"; + next; + goto PRIZE; + +RULES: + mes "Ok here are the rules:"; + mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best."; + mes "Beat me to win a prize."; + menu "Let me play.",CONT,"No thanks.",LEAVE; + +CONT: + mes "Ok here we go..."; + next; + goto PLAY; + +PRIZE: + mes "Congratulations! You have won..."; + set @prize,rand (1,10); + if (@prize == 1) goto P1; + if (@prize == 2) goto P2; + if (@prize == 3) goto P3; + if (@prize == 4) goto P4; + if (@prize == 5) goto P5; + if (@prize == 6) goto P6; + if (@prize == 7) goto P7; + if (@prize == 8) goto P8; + if (@prize == 9) goto P9; + if (@prize == 10) goto P10; + +P1: + mes "10x Oridicon!"; + getitem 984,10; + close; + +P2: + mes "10x Elunium!"; + getitem 985,10; + close; + +P3: + mes "100x Fly Wings!"; + getitem 601,100; + close; + +P4: + mes "8x Old Blue Box!"; + getitem 603,8; + close; + +P5: + mes "4x Old Violet Box!"; + getitem 617,4; + close; + +P6: + mes "1x Old Card Album!"; + getitem 616,1; + close; + +P7: + mes "10x Dead Branch!"; + getitem 604,10; + close; + +P8: + mes "3x Gold!"; + getitem 969,3; + close; + +P9: + mes "10x Elunium!"; + getitem 985,10; + close; + +P10: + mes "20x Blue Potion!"; + getitem 505,20; + close; + +LEAVE: + mes "Pansy."; + close; +} diff --git a/npc/custom/etc/shifty_assassin.txt b/npc/custom/etc/shifty_assassin.txt index c31d571c1..8f4bbe4cf 100644 --- a/npc/custom/etc/shifty_assassin.txt +++ b/npc/custom/etc/shifty_assassin.txt @@ -1,199 +1,199 @@ -//===== rAthena Script ======================================= -//= Shifty Assassin -//===== By: ================================================== -//= acky -//===== Current Version: ===================================== -//= 1.1.2 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Players buy ninjas to assassinate other players -//===== Additional Comments: ================================= -//= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious] -//= 1.1.2 Updated WoE Check. [Paradox924X] -//============================================================ - -morocc,148,86,5 script Shifty Assassin 725,{ - set $ninja_price,250000; - - // STARTS THE MENU // -M_Start: - mes "[Shifty Assassin]"; - mes "What do you want?"; - next; - if (getgmlevel() > 90) goto M_GM; - menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit; -M_GM: - menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit; - - // GM MENU TO ADD NINJAS // -M_Add: - mes "[Shifty Assassin]"; - mes "How many ninjas do you want to make available?"; - next; - set @add,0; - input @add; - set $ninja_avail,$ninja_avail+@add; - mes @add + " ninjas added."; - close; - - // BUY NINJAS // -M_Buy: - mes "[Shifty Assassin]"; - mes "How many ninjas do you want buy?"; - mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available."; - mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each."; - - set @buy,0; - input @buy; - next; - if ($ninja_avail < 1) goto NoNinjas; - if ($ninja_avail < @buy) goto NotEnoughNinjas; - set @price,@buy*$ninja_price; - if (zeny < @price ) goto NoZeny; - - mes "[Shifty Assassin]"; - mes "That will cost you ^0000FF" + @price + " zeny^000000."; - next; - menu "Continue",-,"Cancel",M_Exit; - - set zeny,zeny-@price; - set #ninjas,#ninjas+@buy; - set $ninja_avail,$ninja_avail-@buy; - - mes "[Shifty Assassin]"; - mes "Thank you."; - close; - - // ASSASSINATE SOMEBODY // -M_Kill: - if (agitcheck()) goto M_Busy; - mes "[Shifty Assassin]"; - mes "Enter the name of the target."; - mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000"; - next; - menu "Continue",-,"Cancel",M_Exit; - set @name$,"0"; - input @name$; - next; - mes "[Shifty Assassin]"; - mes "Active Ninjas: "+#ninjas; - mes "Resting Ninjas: "+#ninjasr; - mes "How many do you want to send?"; - set @number,0; - input @number; - if (@number < 1) goto NoNinjasSent; - if (@number > #ninjas) goto NotEnoughNinjas1; - if (@number > 10) goto TooManyNinjas; - set @chance,rand (1,12); - set #ninjas,#ninjas-@number; - set #ninjas,#ninjas+#ninjasr; - set #ninjasr,0; - if (@number < @chance) goto M_Failure; - - // SUCCESSFUL ATTACK // - mes "Sending ninjas now."; - next; - mes "[Shifty Assassin]"; - set @ninjasurvived,rand (1,@number); - set #ninjasr,@number-@ninjasurvived; - mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; - - atcommand strcharinfo(0) + "@kill "+@name$; - announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8; - close; - - // FAILED ATTACK // -M_Failure: - mes "Sending ninjas now."; - next; - mes "[Shifty Assassin]"; - set @ninjasurvived,rand (1,@number); - set #ninjasr,@number-@ninjasurvived; - mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; - - announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8; - close; - - // NINJAS BUSY FOR WOE // -M_Busy: - mes "[Shifty Assassin]"; - mes "Sorry, all my ninjas are busy doing War of Emperium."; - close; - - // CHECK YOUR NINJAS // -M_Check: - mes "[Shifty Assassin]"; - mes "You have:"; - mes "^FF0000" + #ninjas + "^000000 Active Ninjas."; - mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas."; - next; - goto M_Start; - - - // LIMIT // -NoNinjasSent: - mes "[Shifty Assassin]"; - mes "You can't kill anyone without ninjas."; - next; - goto M_Start; - -TooManyNinjas: - mes "[Shifty Assassin]"; - mes "You can only send 10 ninjas max."; - next; - goto M_Start; - -NoZeny: - mes "[Shifty Assassin]"; - mes "You do not have enough zeny."; - close; - -NotEnoughNinjas: - mes "[Shifty Assassin]"; - mes "There aren't that many ninjas to buy."; - next; - goto M_Start; - -NoNinjas: - mes "[Shifty Assassin]"; - mes "There are no ninjas left to buy."; - close; - -NotEnoughNinjas1: - mes "[Shifty Assassin]"; - mes "You do not have that many ninjas."; - next; - goto M_Start; - -M_Exit: - mes "[Shifty Assassin]"; - mes "Goodbye."; - close; - -// TIMER DELAY NINJA ADDER // -OnClock0600: - set $ninja_avail,$ninja_avail+2; - end; -OnClock1200: - set $ninja_avail,$ninja_avail+2; - end; -OnClock1500: - set $ninja_avail,$ninja_avail+2; - end; -OnClock1800: - set $ninja_avail,$ninja_avail+3; - end; -OnClock1900: - set $ninja_avail,$ninja_avail+2; - end; -OnClock2000: - set $ninja_avail,$ninja_avail+2; - end; -OnClock0000: - set $ninja_avail,$ninja_avail+2; - end; -OnInit: - set $ninja_avail,$ninja_avail+1; - end; -} +//===== rAthena Script ======================================= +//= Shifty Assassin +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Players buy ninjas to assassinate other players +//===== Additional Comments: ================================= +//= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious] +//= 1.1.2 Updated WoE Check. [Paradox924X] +//============================================================ + +morocc,148,86,5 script Shifty Assassin 725,{ + set $ninja_price,250000; + + // STARTS THE MENU // +M_Start: + mes "[Shifty Assassin]"; + mes "What do you want?"; + next; + if (getgmlevel() > 90) goto M_GM; + menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit; +M_GM: + menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit; + + // GM MENU TO ADD NINJAS // +M_Add: + mes "[Shifty Assassin]"; + mes "How many ninjas do you want to make available?"; + next; + set @add,0; + input @add; + set $ninja_avail,$ninja_avail+@add; + mes @add + " ninjas added."; + close; + + // BUY NINJAS // +M_Buy: + mes "[Shifty Assassin]"; + mes "How many ninjas do you want buy?"; + mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available."; + mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each."; + + set @buy,0; + input @buy; + next; + if ($ninja_avail < 1) goto NoNinjas; + if ($ninja_avail < @buy) goto NotEnoughNinjas; + set @price,@buy*$ninja_price; + if (zeny < @price ) goto NoZeny; + + mes "[Shifty Assassin]"; + mes "That will cost you ^0000FF" + @price + " zeny^000000."; + next; + menu "Continue",-,"Cancel",M_Exit; + + set zeny,zeny-@price; + set #ninjas,#ninjas+@buy; + set $ninja_avail,$ninja_avail-@buy; + + mes "[Shifty Assassin]"; + mes "Thank you."; + close; + + // ASSASSINATE SOMEBODY // +M_Kill: + if (agitcheck()) goto M_Busy; + mes "[Shifty Assassin]"; + mes "Enter the name of the target."; + mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000"; + next; + menu "Continue",-,"Cancel",M_Exit; + set @name$,"0"; + input @name$; + next; + mes "[Shifty Assassin]"; + mes "Active Ninjas: "+#ninjas; + mes "Resting Ninjas: "+#ninjasr; + mes "How many do you want to send?"; + set @number,0; + input @number; + if (@number < 1) goto NoNinjasSent; + if (@number > #ninjas) goto NotEnoughNinjas1; + if (@number > 10) goto TooManyNinjas; + set @chance,rand (1,12); + set #ninjas,#ninjas-@number; + set #ninjas,#ninjas+#ninjasr; + set #ninjasr,0; + if (@number < @chance) goto M_Failure; + + // SUCCESSFUL ATTACK // + mes "Sending ninjas now."; + next; + mes "[Shifty Assassin]"; + set @ninjasurvived,rand (1,@number); + set #ninjasr,@number-@ninjasurvived; + mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; + + atcommand strcharinfo(0) + "@kill "+@name$; + announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8; + close; + + // FAILED ATTACK // +M_Failure: + mes "Sending ninjas now."; + next; + mes "[Shifty Assassin]"; + set @ninjasurvived,rand (1,@number); + set #ninjasr,@number-@ninjasurvived; + mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; + + announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8; + close; + + // NINJAS BUSY FOR WOE // +M_Busy: + mes "[Shifty Assassin]"; + mes "Sorry, all my ninjas are busy doing War of Emperium."; + close; + + // CHECK YOUR NINJAS // +M_Check: + mes "[Shifty Assassin]"; + mes "You have:"; + mes "^FF0000" + #ninjas + "^000000 Active Ninjas."; + mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas."; + next; + goto M_Start; + + + // LIMIT // +NoNinjasSent: + mes "[Shifty Assassin]"; + mes "You can't kill anyone without ninjas."; + next; + goto M_Start; + +TooManyNinjas: + mes "[Shifty Assassin]"; + mes "You can only send 10 ninjas max."; + next; + goto M_Start; + +NoZeny: + mes "[Shifty Assassin]"; + mes "You do not have enough zeny."; + close; + +NotEnoughNinjas: + mes "[Shifty Assassin]"; + mes "There aren't that many ninjas to buy."; + next; + goto M_Start; + +NoNinjas: + mes "[Shifty Assassin]"; + mes "There are no ninjas left to buy."; + close; + +NotEnoughNinjas1: + mes "[Shifty Assassin]"; + mes "You do not have that many ninjas."; + next; + goto M_Start; + +M_Exit: + mes "[Shifty Assassin]"; + mes "Goodbye."; + close; + +// TIMER DELAY NINJA ADDER // +OnClock0600: + set $ninja_avail,$ninja_avail+2; + end; +OnClock1200: + set $ninja_avail,$ninja_avail+2; + end; +OnClock1500: + set $ninja_avail,$ninja_avail+2; + end; +OnClock1800: + set $ninja_avail,$ninja_avail+3; + end; +OnClock1900: + set $ninja_avail,$ninja_avail+2; + end; +OnClock2000: + set $ninja_avail,$ninja_avail+2; + end; +OnClock0000: + set $ninja_avail,$ninja_avail+2; + end; +OnInit: + set $ninja_avail,$ninja_avail+1; + end; +} diff --git a/npc/custom/etc/stock_market.txt b/npc/custom/etc/stock_market.txt index 33415e551..6f90bcaef 100644 --- a/npc/custom/etc/stock_market.txt +++ b/npc/custom/etc/stock_market.txt @@ -1,791 +1,791 @@ -//===== rAthena Script ======================================= -//= Stock Market Game -//===== By: ================================================== -//= acky -//===== Current Version: ===================================== -//= 1.3.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= NPC for a stock market game. -//===== Additional Comments: ================================= -//= GM Must activate the NPC before use. -//= Fixed MAJOR exploit. - players could buy for free -//= Low prices likely to rise, High prices likely to drop -//= Small fix by Galeon -//= Lupus: This script lets players make 40,000,000z a day -//= so use it on your own risk -//============================================================ - -- script sharenames -1,{ - end; -OnInit: - // Sets the names of the shares // - set $S1N$,"JIN"; - set $S2N$,"VNG"; - set $S3N$,"SHA"; - set $S4N$,"RGC"; - set $S5N$,"PSC"; - set $S6N$,"GNG"; - set $S7N$,"XRO"; - set $S8N$,"GRM"; - set $S9N$,"DOP"; - set $S10N$,"POR"; - - // Transaction fee // - set $S_Trans,1500; - - // Min & Max buyable // - set $S_BuyMin,1; - set $S_BuyMax,1000000; - end; - - // Average Price (Your start prices) // - set $S_Avg,100; - - // Set times of fluctuation // -OnClock1100: - set $S_LastUpd$,"12:00"; - goto S_Fluc; - end; - -OnClock0000: - set $S_LastUpd$,"00:00"; - goto S_Fluc; - end; - -OnClock0600: - set $S_LastUpd$,"06:00"; - goto S_Fluc; - end; - -OnClock1800: - set $S_LastUpd$,"18:00"; - goto S_Fluc; - end; - -OnClock2100: - set $S_LastUpd$,"21:00"; - goto S_Fluc; - end; - -OnClock0900: - set $S_LastUpd$,"09:00"; - goto S_Fluc; - end; - -OnClock1500: - set $S_LastUpd$,"15:00"; - goto S_Fluc; - end; - -S_Fluc: - set $fluc,rand (-6,6); - set $S1B,$S1; - set $S1,$S1+$fluc; - if ($S1 < 25) set $S1,$S1+3; - if ($S1 < 50) set $S1,$S1+2; - if ($S1 > 150) set $S1,$S1-2; - if ($S1 > 175) set $S1,$S1-3; - if ($S1 < 1) set $S1,1; - - set $fluc,rand (-6,6); - set $S2B,$S2; - set $S2,$S2+$fluc; - if ($S2 < 25) set $S2,$S2+3; - if ($S2 < 50) set $S2,$S2+2; - if ($S2 > 150) set $S2,$S2-2; - if ($S2 > 175) set $S2,$S2-3; - if ($S2 < 1) set $S2,1; - - set $fluc,rand (-6,6); - set $S3B,$S3; - set $S3,$S3+$fluc; - if ($S3 < 25) set $S3,$S3+3; - if ($S3 < 50) set $S3,$S3+2; - if ($S3 > 150) set $S3,$S3-2; - if ($S3 > 175) set $S3,$S3-3; - if ($S3 < 1) set $S3,1; - - set $fluc,rand (-6,6); - set $S4B,$S4; - set $S4,$S4+$fluc; - if ($S4 < 25) set $S4,$S4+3; - if ($S4 < 50) set $S4,$S4+2; - if ($S4 > 150) set $S4,$S4-2; - if ($S4 > 175) set $S4,$S4-3; - if ($S4 < 1) set $S4,1; - - set $fluc,rand (-6,6); - set $S5B,$S5; - set $S5,$S5+$fluc; - if ($S5 < 25) set $S5,$S5+3; - if ($S5 < 50) set $S5,$S5+2; - if ($S5 > 150) set $S5,$S5-2; - if ($S5 > 175) set $S5,$S5-3; - if ($S5 < 1) set $S5,1; - - set $fluc,rand (-6,6); - set $S6B,$S6; - set $S6,$S6+$fluc; - if ($S6 < 25) set $S6,$S6+3; - if ($S6 < 50) set $S6,$S6+2; - if ($S6 > 150) set $S6,$S6-2; - if ($S6 > 175) set $S6,$S6-3; - if ($S6 < 1) set $S6,1; - - set $fluc,rand (-6,6); - set $S7B,$S7; - set $S7,$S7+$fluc; - if ($S7 < 25) set $S7,$S7+3; - if ($S7 < 50) set $S7,$S7+2; - if ($S7 > 150) set $S7,$S7-2; - if ($S7 > 175) set $S7,$S7-3; - if ($S7 < 1) set $S7,1; - - set $fluc,rand (-6,6); - set $S8B,$S8; - set $S8,$S8+$fluc; - if ($S8 < 25) set $S8,$S8+3; - if ($S8 < 50) set $S8,$S8+2; - if ($S8 > 150) set $S8,$S8-2; - if ($S8 > 175) set $S8,$S8-3; - if ($S8 < 1) set $S8,1; - - set $fluc,rand (-6,6); - set $S9B,$S9; - set $S9,$S9+$fluc; - if ($S9 < 25) set $S9,$S9+3; - if ($S9 < 50) set $S9,$S9+2; - if ($S9 > 150) set $S9,$S9-2; - if ($S9 > 175) set $S9,$S9-3; - if ($S9 < 1) set $S9,1; - - set $fluc,rand (-6,6); - set $S10B,$S10; - set $S10,$S10+$fluc; - if ($S10 < 25) set $S10,$S10+3; - if ($S10 < 50) set $S10,$S10+2; - if ($S10 > 150) set $S10,$S10-2; - if ($S10 > 175) set $S10,$S10-3; - if ($S10 < 1) set $S10,1; - end; -} - -prontera,140,181,5 script Stock Market::stockmarket 109,{ - // Ensures no trading when default prices have not been set // - set @stotal,$S1+$S2+$S3+$S4+$S5+$S6+$S7+$S8+$S9+$S10; - if (@stotal > 0) goto S_Start; - mes "[Stock Market]"; - mes "Trading is currently closed."; - if (getgmlevel() > 90) goto GM_Open; - close; - - // Begining of interface // -S_Start: - mes "[Stock Market]"; - mes "Last fluctuation: " + $S_LastUpd$; - - // Loss/Gain in price // - set @S1Update,$S1-$S1B; - set @S2Update,$S2-$S2B; - set @S3Update,$S3-$S3B; - set @S4Update,$S4-$S4B; - set @S5Update,$S5-$S5B; - set @S6Update,$S6-$S6B; - set @S7Update,$S7-$S7B; - set @S8Update,$S8-$S8B; - set @S9Update,$S9-$S9B; - set @S10Update,$S10-$S10B; - - // Makes Loss/Gain Red/Green // - if (@S1Update < 0) set @S1Update$,"^FF0000"+@S1Update+"^000000"; - if (@S1Update > 0) set @S1Update$,"^00FF00+"+@S1Update+"^000000"; - if (@S1Update == 0) set @S1Update$,@S1Update; - - if (@S2Update < 0) set @S2Update$,"^FF0000"+@S2Update+"^000000"; - if (@S2Update > 0) set @S2Update$,"^00FF00+"+@S2Update+"^000000"; - if (@S2Update == 0) set @S2Update$,@S2Update; - - if (@S3Update < 0) set @S3Update$,"^FF0000"+@S3Update+"^000000"; - if (@S3Update > 0) set @S3Update$,"^00FF00+"+@S3Update+"^000000"; - if (@S3Update == 0) set @S3Update$,@S3Update; - - if (@S4Update < 0) set @S4Update$,"^FF0000"+@S4Update+"^000000"; - if (@S4Update > 0) set @S4Update$,"^00FF00+"+@S4Update+"^000000"; - if (@S4Update == 0) set @S4Update$,@S4Update; - - if (@S5Update < 0) set @S5Update$,"^FF0000"+@S5Update+"^000000"; - if (@S5Update > 0) set @S5Update$,"^00FF00+"+@S5Update+"^000000"; - if (@S5Update == 0) set @S5Update$,@S5Update; - - if (@S6Update < 0) set @S6Update$,"^FF0000"+@S6Update+"^000000"; - if (@S6Update > 0) set @S6Update$,"^00FF00+"+@S6Update+"^000000"; - if (@S6Update == 0) set @S6Update$,@S6Update; - - if (@S7Update < 0) set @S7Update$,"^FF0000"+@S7Update+"^000000"; - if (@S7Update > 0) set @S7Update$,"^00FF00+"+@S7Update+"^000000"; - if (@S7Update == 0) set @S7Update$,@S7Update; - - if (@S8Update < 0) set @S8Update$,"^FF0000"+@S8Update+"^000000"; - if (@S8Update > 0) set @S8Update$,"^00FF00+"+@S8Update+"^000000"; - if (@S8Update == 0) set @S8Update$,@S8Update; - - if (@S9Update < 0) set @S9Update$,"^FF0000"+@S9Update+"^000000"; - if (@S9Update > 0) set @S9Update$,"^00FF00+"+@S9Update+"^000000"; - if (@S9Update == 0) set @S9Update$,@S9Update; - - if (@S10Update < 0) set @S10Update$,"^FF0000"+@S10Update+"^000000"; - if (@S10Update > 0) set @S10Update$,"^00FF00+"+@S10Update+"^000000"; - if (@S10Update == 0) set @S10Update$,@S10Update; - - // Displays shares & prices // - mes "^21698F"+$S1N$+"^000000" + " " + $S1 + "z (" + @S1Update$ + ")"; - mes "^21698F"+$S2N$+"^000000" + " " + $S2 + "z (" + @S2Update$ + ")"; - mes "^21698F"+$S3N$+"^000000" + " " + $S3 + "z (" + @S3Update$ + ")"; - mes "^21698F"+$S4N$+"^000000" + " " + $S4 + "z (" + @S4Update$ + ")"; - mes "^21698F"+$S5N$+"^000000" + " " + $S5 + "z (" + @S5Update$ + ")"; - mes "^21698F"+$S6N$+"^000000" + " " + $S6 + "z (" + @S6Update$ + ")"; - mes "^21698F"+$S7N$+"^000000" + " " + $S7 + "z (" + @S7Update$ + ")"; - mes "^21698F"+$S8N$+"^000000" + " " + $S8 + "z (" + @S8Update$ + ")"; - mes "^21698F"+$S9N$+"^000000" + " " + $S9 + "z (" + @S9Update$ + ")"; - mes "^21698F"+$S10N$+"^000000" + " " + $S10 + "z (" + @S10Update$ + ")"; - next; - - // GM Menu link // - if (getgmlevel() > 90) goto GM_subMenu; - menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"Cancel",S_Quit; - -GM_subMenu: - menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"GM Menu",GM_Menu,"Cancel",S_Quit; - - // Selling Shares // -S_Sell: - mes "[Stock Market]"; - mes "Enter the name of the share you wish to sell."; - mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply."; - if (#S1 > 0) mes "^0000FF"+$S1N$+"^FF0000" + " x " + #S1 + " [" + $S1 + "z]"; - if (#S2 > 0) mes "^0000FF"+$S2N$+"^FF0000" + " x " + #S2 + " [" + $S2 + "z]"; - if (#S3 > 0) mes "^0000FF"+$S3N$+"^FF0000" + " x " + #S3 + " [" + $S3 + "z]"; - if (#S4 > 0) mes "^0000FF"+$S4N$+"^FF0000" + " x " + #S4 + " [" + $S4 + "z]"; - if (#S5 > 0) mes "^0000FF"+$S5N$+"^FF0000" + " x " + #S5 + " [" + $S5 + "z]"; - if (#S6 > 0) mes "^0000FF"+$S6N$+"^FF0000" + " x " + #S6 + " [" + $S6 + "z]"; - if (#S7 > 0) mes "^0000FF"+$S7N$+"^FF0000" + " x " + #S7 + " [" + $S7 + "z]"; - if (#S8 > 0) mes "^0000FF"+$S8N$+"^FF0000" + " x " + #S8 + " [" + $S8 + "z]"; - if (#S9 > 0) mes "^0000FF"+$S9N$+"^FF0000" + " x " + #S9 + " [" + $S9 + "z]"; - if (#S10 > 0) mes "^0000FF"+$S10N$+"^FF0000" + " x " + #S10 + " [" + $S10 + "z]"; - set @sellname$,"0"; - input @sellname$; - set @sellamount,0; - input @sellamount; - if (@sellamount < 1) goto S_SellInv; - if (zeny < $S_Trans) goto S_NoZeny; - set zeny,zeny-$S_Trans; - -SELLS1: - if (@sellname$ != $S1N$) goto SELLS2; - if (@sellamount > #S1) goto S_SellTooHigh; - set @price,@sellamount*$S1; - set #S1,#S1-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S1N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS2: - if (@sellname$ != $S2N$) goto SELLS3; - if (@sellamount > #S2) goto S_SellTooHigh; - set @price,@sellamount*$S2; - set #S2,#S2-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S2N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS3: - if (@sellname$ != $S3N$) goto SELLS4; - if (@sellamount > #S3) goto S_SellTooHigh; - set @price,@sellamount*$S3; - set #S3,#S3-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S3N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS4: - if (@sellname$ != $S4N$) goto SELLS5; - if (@sellamount > #S4) goto S_SellTooHigh; - set @price,@sellamount*$S4; - set #S4,#S4-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S4N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS5: - if (@sellname$ != $S5N$) goto SELLS6; - if (@sellamount > #S5) goto S_SellTooHigh; - set @price,@sellamount*$S5; - set #S5,#S5-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S5N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS6: - if (@sellname$ != $S6N$) goto SELLS7; - if (@sellamount > #S6) goto S_SellTooHigh; - set @price,@sellamount*$S6; - set #S6,#S6-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S6N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS7: - if (@sellname$ != $S7N$) goto SELLS8; - if (@sellamount > #S7) goto S_SellTooHigh; - set @price,@sellamount*$S7; - set #S7,#S7-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S7N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS8: - if (@sellname$ != $S8N$) goto SELLS9; - if (@sellamount > #S8) goto S_SellTooHigh; - set @price,@sellamount*$S8; - set #S8,#S8-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S8N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS9: - if (@sellname$ != $S9N$) goto SELLS10; - if (@sellamount > #S9) goto S_SellTooHigh; - set @price,@sellamount*$S9; - set #S9,#S9-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S9N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS10: - if (@sellname$ != $S10N$) goto SELLS11; - if (@sellamount > #S10) goto S_SellTooHigh; - set @price,@sellamount*$S10; - set #S10,#S10-@sellamount; - set zeny,zeny+@price; - next; - mes "Sold " + @sellamount + " " + $S10N$ + " shares."; - mes "Earned ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -SELLS11: - mes "^FF0000Invalid Share Name.^000000"; - next; - goto S_Start; - -S_SellTooHigh: - mes "^FF0000You don't have that many shares.^000000"; - next; - goto S_Start; - -S_SellInv: - mes "^FF0000Invalid integer.^000000"; - next; - goto S_Start; - - // Buying Shares // -S_Buy: - mes "[Stock Market]"; - mes "Available shares:"; - mes $S1N$; - mes $S2N$; - mes $S3N$; - mes $S4N$; - mes $S5N$; - mes $S6N$; - mes $S7N$; - mes $S8N$; - mes $S9N$; - mes $S10N$; - next; - menu "Continue",-,"Cancel",S_Start; - - mes "Enter the name of the share company"; - mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply."; - set @buyname$,"0"; - input @buyname$; - - set @buyamount,0; - input @buyamount; - // Checks valid number // - if (@buyamount < $S_BuyMin) goto S_TooLow; - if (@buyamount > $S_BuyMax) goto S_TooHigh; - if (zeny < $S_Trans) goto S_NoZeny; - set zeny,zeny-$S_Trans; - - // Purchases the shares // - -PURS1: - if (@buyname$ != $S1N$) goto PURS2; - set @price,@buyamount*$S1; - if (zeny < @price) goto S_NoZeny; - set #S1,#S1+@buyamount; - set @price,@buyamount*$S1; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S1N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS2: - if (@buyname$ != $S2N$) goto PURS3; - set @price,@buyamount*$S2; - if (zeny < @price) goto S_NoZeny; - set #S2,#S2+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S2N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS3: - if (@buyname$ != $S3N$) goto PURS4; - set @price,@buyamount*$S3; - if (zeny < @price) goto S_NoZeny; - set #S3,#S3+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S3N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS4: - if (@buyname$ != $S4N$) goto PURS5; - set @price,@buyamount*$S4; - if (zeny < @price) goto S_NoZeny; - set #S4,#S4+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S4N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS5: - if (@buyname$ != $S5N$) goto PURS6; - set @price,@buyamount*$S5; - if (zeny < @price) goto S_NoZeny; - set #S5,#S5+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S5N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS6: - if (@buyname$ != $S6N$) goto PURS7; - set @price,@buyamount*$S6; - if (zeny < @price) goto S_NoZeny; - set #S6,#S6+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S6N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS7: - if (@buyname$ != $S7N$) goto PURS8; - set @price,@buyamount*$S7; - if (zeny < @price) goto S_NoZeny; - set #S7,#S7+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S7N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS8: - if (@buyname$ != $S8N$) goto PURS9; - set @price,@buyamount*$S8; - if (zeny < @price) goto S_NoZeny; - set #S8,#S8+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S8N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS9: - if (@buyname$ != $S9N$) goto PURS10; - set @price,@buyamount*$S9; - if (zeny < @price) goto S_NoZeny; - set #S9,#S9+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S9N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS10: - if (@buyname$ != $S10N$) goto PURS11; - set @price,@buyamount*$S10; - if (zeny < @price) goto S_NoZeny; - set #S10,#S10+@buyamount; - set zeny,zeny-@price; - mes "Bought " + @buyamount + " " + $S10N$ + " shares."; - mes "Lost ^0000FF"+@price+"z^000000."; - next; - goto S_Start; - -PURS11: - goto S_InvName; - - // Number too low // -S_TooLow: - mes "^FF0000Minimum of " + $S_BuyMin + " shares can be bought at a time.^000000"; - next; - goto S_Start; - - // Number too high // -S_TooHigh: - mes "^FF0000Maximum number of " + $S_BuyMax + " shares can be bought at a time.^000000"; - next; - goto S_Start; - -S_NoZeny: - mes "^FF0000You do not have enough zeny.^000000"; - next; - goto S_Start; - - // Sends user to start if name invalid // -S_InvName: - mes "^FF0000Invalid share name.^000000"; - next; - goto S_Start; - - // Displays your total amount // -S_Port: - mes "[Stock Market]"; - -ACCS1: - if (#S1 < 1) goto ACCS2; - set @S1,#S1*$S1; - mes $S1N$ + ": " + #S1 + " x " + $S1 + "z = " + @S1 + "z"; - -ACCS2: - if (#S2 < 1) goto ACCS3; - set @S2,#S2*$S2; - mes $S2N$ + ": " + #S2 + " x " + $S2 + "z = " + @S2 + "z"; - -ACCS3: - if (#S3 < 1) goto ACCS4; - set @S3,#S3*$S3; - mes $S3N$ + ": " + #S3 + " x " + $S3 + "z = " + @S3 + "z"; - -ACCS4: - if (#S4 < 1) goto ACCS5; - set @S4,#S4*$S4; - mes $S4N$ + ": " + #S4 + " x " + $S4 + "z = " + @S4 + "z"; - -ACCS5: - if (#S5 < 1) goto ACCS6; - set @S5,#S5*$S5; - mes $S5N$ + ": " + #S5 + " x " + $S5 + "z = " + @S5 + "z"; - -ACCS6: - if (#S6 < 1) goto ACCS7; - set @S6,#S6*$S6; - mes $S6N$ + ": " + #S6 + " x " + $S6 + "z = " + @S6 + "z"; - -ACCS7: - if (#S7 < 1) goto ACCS8; - set @S7,#S7*$S7; - mes $S7N$ + ": " + #S7 + " x " + $S7 + "z = " + @S7 + "z"; - -ACCS8: - if (#S8 < 1) goto ACCS9; - set @S8,#S8*$S8; - mes $S8N$ + ": " + #S8 + " x " + $S8 + "z = " + @S8 + "z"; - -ACCS9: - if (#S9 < 1) goto ACCS10; - set @S9,#S9*$S9; - mes $S9N$ + ": " + #S9 + " x " + $S9 + "z = " + @S9 + "z"; - -ACCS10: - if (#S10 < 1) goto ACCS11; - set @S10,#S10*$S10; - mes $S10N$ + ": " + #S10 + " x " + $S10 + "z = " + @S10 + "z"; - - // Total // -ACCS11: - set @total,@S1 + @S2 + @S3 + @S4 + @S5 + @S6 + @S7 + @S8 + @S9 + @S10; - mes "Total value: "+@total+"z"; - next; - goto S_Start; - - - // GM MENU // -GM_Menu: - mes "[Stock Market]"; - mes "Master, do you require anything?"; - menu "Fluctuate Market",S_Fluc,"Reset Prices",GM_Open,"Nothing",S_Start; - -S_Fluc: - set $fluc,rand (-6,6); - set $S1B,$S1; - set $S1,$S1+$fluc; - if ($S1 < 25) set $S1,$S1+3; - if ($S1 < 50) set $S1,$S1+2; - if ($S1 > 150) set $S1,$S1-2; - if ($S1 > 175) set $S1,$S1-3; - if ($S1 < 1) set $S1,1; - - set $fluc,rand (-6,6); - set $S2B,$S2; - set $S2,$S2+$fluc; - if ($S2 < 25) set $S2,$S2+3; - if ($S2 < 50) set $S2,$S2+2; - if ($S2 > 150) set $S2,$S2-2; - if ($S2 > 175) set $S2,$S2-3; - if ($S2 < 2) set $S2,1; - - set $fluc,rand (-6,6); - set $S3B,$S3; - set $S3,$S3+$fluc; - if ($S3 < 25) set $S3,$S3+3; - if ($S3 < 50) set $S3,$S3+2; - if ($S3 > 150) set $S3,$S3-2; - if ($S3 > 175) set $S3,$S3-3; - if ($S3 < 1) set $S3,1; - - set $fluc,rand (-6,6); - set $S4B,$S4; - set $S4,$S4+$fluc; - if ($S4 < 25) set $S4,$S4+3; - if ($S4 < 50) set $S4,$S4+2; - if ($S4 > 150) set $S4,$S4-2; - if ($S4 > 175) set $S4,$S4-3; - if ($S4 < 1) set $S4,1; - - set $fluc,rand (-6,6); - set $S5B,$S5; - set $S5,$S5+$fluc; - if ($S5 < 25) set $S5,$S5+3; - if ($S5 < 50) set $S5,$S5+2; - if ($S5 > 150) set $S5,$S5-2; - if ($S5 > 175) set $S5,$S5-3; - if ($S5 < 1) set $S5,1; - - set $fluc,rand (-6,6); - set $S6B,$S6; - set $S6,$S6+$fluc; - if ($S6 < 25) set $S6,$S6+3; - if ($S6 < 50) set $S6,$S6+2; - if ($S6 > 150) set $S6,$S6-2; - if ($S6 > 175) set $S6,$S6-3; - if ($S6 < 1) set $S6,1; - - set $fluc,rand (-6,6); - set $S7B,$S7; - set $S7,$S7+$fluc; - if ($S7 < 25) set $S7,$S7+3; - if ($S7 < 50) set $S7,$S7+2; - if ($S7 > 150) set $S7,$S7-2; - if ($S7 > 175) set $S7,$S7-3; - if ($S7 < 1) set $S7,1; - - set $fluc,rand (-6,6); - set $S8B,$S8; - set $S8,$S8+$fluc; - if ($S8 < 25) set $S8,$S8+3; - if ($S8 < 50) set $S8,$S8+2; - if ($S8 > 150) set $S8,$S8-2; - if ($S8 > 175) set $S8,$S8-3; - if ($S8 < 1) set $S8,1; - - set $fluc,rand (-6,6); - set $S9B,$S9; - set $S9,$S9+$fluc; - if ($S9 < 25) set $S9,$S9+3; - if ($S9 < 50) set $S9,$S9+2; - if ($S9 > 150) set $S9,$S9-2; - if ($S9 > 175) set $S9,$S9-3; - if ($S9 < 1) set $S9,1; - - set $fluc,rand (-6,6); - set $S10B,$S10; - set $S10,$S10+$fluc; - if ($S10 < 25) set $S10,$S10+3; - if ($S10 < 50) set $S10,$S10+2; - if ($S10 > 150) set $S10,$S10-2; - if ($S10 > 175) set $S10,$S10-3; - if ($S10 < 1) set $S10,1; - - set $S_LastUpd$,"GM Fluctuation"; - mes "Market fluctuated."; - close; - -GM_Open: - menu "Set prices to...",GM_Set,"Cancel",-; - mes "Farewell."; - close; - -GM_Set: - mes "Are you sure you want to reset?"; - mes "^FF0000All share values will become the same.^000000"; - next; - menu "Yes",-,"No",GM_Menu; - set @gmset,0; - input @gmset; - set $S1,@gmset; - set $S2,@gmset; - set $S3,@gmset; - set $S4,@gmset; - set $S5,@gmset; - set $S6,@gmset; - set $S7,@gmset; - set $S8,@gmset; - set $S9,@gmset; - set $S10,@gmset; - set $S1B,@gmset; - set $S2B,@gmset; - set $S3B,@gmset; - set $S4B,@gmset; - set $S5B,@gmset; - set $S6B,@gmset; - set $S7B,@gmset; - set $S8B,@gmset; - set $S9B,@gmset; - set $S10B,@gmset; - mes "All prices changed to " + @gmset + "z."; - close; - -S_Quit: - mes "[Stock Market]"; - mes "Goodbye."; - close; -} +//===== rAthena Script ======================================= +//= Stock Market Game +//===== By: ================================================== +//= acky +//===== Current Version: ===================================== +//= 1.3.1 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= NPC for a stock market game. +//===== Additional Comments: ================================= +//= GM Must activate the NPC before use. +//= Fixed MAJOR exploit. - players could buy for free +//= Low prices likely to rise, High prices likely to drop +//= Small fix by Galeon +//= Lupus: This script lets players make 40,000,000z a day +//= so use it on your own risk +//============================================================ + +- script sharenames -1,{ + end; +OnInit: + // Sets the names of the shares // + set $S1N$,"JIN"; + set $S2N$,"VNG"; + set $S3N$,"SHA"; + set $S4N$,"RGC"; + set $S5N$,"PSC"; + set $S6N$,"GNG"; + set $S7N$,"XRO"; + set $S8N$,"GRM"; + set $S9N$,"DOP"; + set $S10N$,"POR"; + + // Transaction fee // + set $S_Trans,1500; + + // Min & Max buyable // + set $S_BuyMin,1; + set $S_BuyMax,1000000; + end; + + // Average Price (Your start prices) // + set $S_Avg,100; + + // Set times of fluctuation // +OnClock1100: + set $S_LastUpd$,"12:00"; + goto S_Fluc; + end; + +OnClock0000: + set $S_LastUpd$,"00:00"; + goto S_Fluc; + end; + +OnClock0600: + set $S_LastUpd$,"06:00"; + goto S_Fluc; + end; + +OnClock1800: + set $S_LastUpd$,"18:00"; + goto S_Fluc; + end; + +OnClock2100: + set $S_LastUpd$,"21:00"; + goto S_Fluc; + end; + +OnClock0900: + set $S_LastUpd$,"09:00"; + goto S_Fluc; + end; + +OnClock1500: + set $S_LastUpd$,"15:00"; + goto S_Fluc; + end; + +S_Fluc: + set $fluc,rand (-6,6); + set $S1B,$S1; + set $S1,$S1+$fluc; + if ($S1 < 25) set $S1,$S1+3; + if ($S1 < 50) set $S1,$S1+2; + if ($S1 > 150) set $S1,$S1-2; + if ($S1 > 175) set $S1,$S1-3; + if ($S1 < 1) set $S1,1; + + set $fluc,rand (-6,6); + set $S2B,$S2; + set $S2,$S2+$fluc; + if ($S2 < 25) set $S2,$S2+3; + if ($S2 < 50) set $S2,$S2+2; + if ($S2 > 150) set $S2,$S2-2; + if ($S2 > 175) set $S2,$S2-3; + if ($S2 < 1) set $S2,1; + + set $fluc,rand (-6,6); + set $S3B,$S3; + set $S3,$S3+$fluc; + if ($S3 < 25) set $S3,$S3+3; + if ($S3 < 50) set $S3,$S3+2; + if ($S3 > 150) set $S3,$S3-2; + if ($S3 > 175) set $S3,$S3-3; + if ($S3 < 1) set $S3,1; + + set $fluc,rand (-6,6); + set $S4B,$S4; + set $S4,$S4+$fluc; + if ($S4 < 25) set $S4,$S4+3; + if ($S4 < 50) set $S4,$S4+2; + if ($S4 > 150) set $S4,$S4-2; + if ($S4 > 175) set $S4,$S4-3; + if ($S4 < 1) set $S4,1; + + set $fluc,rand (-6,6); + set $S5B,$S5; + set $S5,$S5+$fluc; + if ($S5 < 25) set $S5,$S5+3; + if ($S5 < 50) set $S5,$S5+2; + if ($S5 > 150) set $S5,$S5-2; + if ($S5 > 175) set $S5,$S5-3; + if ($S5 < 1) set $S5,1; + + set $fluc,rand (-6,6); + set $S6B,$S6; + set $S6,$S6+$fluc; + if ($S6 < 25) set $S6,$S6+3; + if ($S6 < 50) set $S6,$S6+2; + if ($S6 > 150) set $S6,$S6-2; + if ($S6 > 175) set $S6,$S6-3; + if ($S6 < 1) set $S6,1; + + set $fluc,rand (-6,6); + set $S7B,$S7; + set $S7,$S7+$fluc; + if ($S7 < 25) set $S7,$S7+3; + if ($S7 < 50) set $S7,$S7+2; + if ($S7 > 150) set $S7,$S7-2; + if ($S7 > 175) set $S7,$S7-3; + if ($S7 < 1) set $S7,1; + + set $fluc,rand (-6,6); + set $S8B,$S8; + set $S8,$S8+$fluc; + if ($S8 < 25) set $S8,$S8+3; + if ($S8 < 50) set $S8,$S8+2; + if ($S8 > 150) set $S8,$S8-2; + if ($S8 > 175) set $S8,$S8-3; + if ($S8 < 1) set $S8,1; + + set $fluc,rand (-6,6); + set $S9B,$S9; + set $S9,$S9+$fluc; + if ($S9 < 25) set $S9,$S9+3; + if ($S9 < 50) set $S9,$S9+2; + if ($S9 > 150) set $S9,$S9-2; + if ($S9 > 175) set $S9,$S9-3; + if ($S9 < 1) set $S9,1; + + set $fluc,rand (-6,6); + set $S10B,$S10; + set $S10,$S10+$fluc; + if ($S10 < 25) set $S10,$S10+3; + if ($S10 < 50) set $S10,$S10+2; + if ($S10 > 150) set $S10,$S10-2; + if ($S10 > 175) set $S10,$S10-3; + if ($S10 < 1) set $S10,1; + end; +} + +prontera,140,181,5 script Stock Market::stockmarket 109,{ + // Ensures no trading when default prices have not been set // + set @stotal,$S1+$S2+$S3+$S4+$S5+$S6+$S7+$S8+$S9+$S10; + if (@stotal > 0) goto S_Start; + mes "[Stock Market]"; + mes "Trading is currently closed."; + if (getgmlevel() > 90) goto GM_Open; + close; + + // Begining of interface // +S_Start: + mes "[Stock Market]"; + mes "Last fluctuation: " + $S_LastUpd$; + + // Loss/Gain in price // + set @S1Update,$S1-$S1B; + set @S2Update,$S2-$S2B; + set @S3Update,$S3-$S3B; + set @S4Update,$S4-$S4B; + set @S5Update,$S5-$S5B; + set @S6Update,$S6-$S6B; + set @S7Update,$S7-$S7B; + set @S8Update,$S8-$S8B; + set @S9Update,$S9-$S9B; + set @S10Update,$S10-$S10B; + + // Makes Loss/Gain Red/Green // + if (@S1Update < 0) set @S1Update$,"^FF0000"+@S1Update+"^000000"; + if (@S1Update > 0) set @S1Update$,"^00FF00+"+@S1Update+"^000000"; + if (@S1Update == 0) set @S1Update$,@S1Update; + + if (@S2Update < 0) set @S2Update$,"^FF0000"+@S2Update+"^000000"; + if (@S2Update > 0) set @S2Update$,"^00FF00+"+@S2Update+"^000000"; + if (@S2Update == 0) set @S2Update$,@S2Update; + + if (@S3Update < 0) set @S3Update$,"^FF0000"+@S3Update+"^000000"; + if (@S3Update > 0) set @S3Update$,"^00FF00+"+@S3Update+"^000000"; + if (@S3Update == 0) set @S3Update$,@S3Update; + + if (@S4Update < 0) set @S4Update$,"^FF0000"+@S4Update+"^000000"; + if (@S4Update > 0) set @S4Update$,"^00FF00+"+@S4Update+"^000000"; + if (@S4Update == 0) set @S4Update$,@S4Update; + + if (@S5Update < 0) set @S5Update$,"^FF0000"+@S5Update+"^000000"; + if (@S5Update > 0) set @S5Update$,"^00FF00+"+@S5Update+"^000000"; + if (@S5Update == 0) set @S5Update$,@S5Update; + + if (@S6Update < 0) set @S6Update$,"^FF0000"+@S6Update+"^000000"; + if (@S6Update > 0) set @S6Update$,"^00FF00+"+@S6Update+"^000000"; + if (@S6Update == 0) set @S6Update$,@S6Update; + + if (@S7Update < 0) set @S7Update$,"^FF0000"+@S7Update+"^000000"; + if (@S7Update > 0) set @S7Update$,"^00FF00+"+@S7Update+"^000000"; + if (@S7Update == 0) set @S7Update$,@S7Update; + + if (@S8Update < 0) set @S8Update$,"^FF0000"+@S8Update+"^000000"; + if (@S8Update > 0) set @S8Update$,"^00FF00+"+@S8Update+"^000000"; + if (@S8Update == 0) set @S8Update$,@S8Update; + + if (@S9Update < 0) set @S9Update$,"^FF0000"+@S9Update+"^000000"; + if (@S9Update > 0) set @S9Update$,"^00FF00+"+@S9Update+"^000000"; + if (@S9Update == 0) set @S9Update$,@S9Update; + + if (@S10Update < 0) set @S10Update$,"^FF0000"+@S10Update+"^000000"; + if (@S10Update > 0) set @S10Update$,"^00FF00+"+@S10Update+"^000000"; + if (@S10Update == 0) set @S10Update$,@S10Update; + + // Displays shares & prices // + mes "^21698F"+$S1N$+"^000000" + " " + $S1 + "z (" + @S1Update$ + ")"; + mes "^21698F"+$S2N$+"^000000" + " " + $S2 + "z (" + @S2Update$ + ")"; + mes "^21698F"+$S3N$+"^000000" + " " + $S3 + "z (" + @S3Update$ + ")"; + mes "^21698F"+$S4N$+"^000000" + " " + $S4 + "z (" + @S4Update$ + ")"; + mes "^21698F"+$S5N$+"^000000" + " " + $S5 + "z (" + @S5Update$ + ")"; + mes "^21698F"+$S6N$+"^000000" + " " + $S6 + "z (" + @S6Update$ + ")"; + mes "^21698F"+$S7N$+"^000000" + " " + $S7 + "z (" + @S7Update$ + ")"; + mes "^21698F"+$S8N$+"^000000" + " " + $S8 + "z (" + @S8Update$ + ")"; + mes "^21698F"+$S9N$+"^000000" + " " + $S9 + "z (" + @S9Update$ + ")"; + mes "^21698F"+$S10N$+"^000000" + " " + $S10 + "z (" + @S10Update$ + ")"; + next; + + // GM Menu link // + if (getgmlevel() > 90) goto GM_subMenu; + menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"Cancel",S_Quit; + +GM_subMenu: + menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"GM Menu",GM_Menu,"Cancel",S_Quit; + + // Selling Shares // +S_Sell: + mes "[Stock Market]"; + mes "Enter the name of the share you wish to sell."; + mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply."; + if (#S1 > 0) mes "^0000FF"+$S1N$+"^FF0000" + " x " + #S1 + " [" + $S1 + "z]"; + if (#S2 > 0) mes "^0000FF"+$S2N$+"^FF0000" + " x " + #S2 + " [" + $S2 + "z]"; + if (#S3 > 0) mes "^0000FF"+$S3N$+"^FF0000" + " x " + #S3 + " [" + $S3 + "z]"; + if (#S4 > 0) mes "^0000FF"+$S4N$+"^FF0000" + " x " + #S4 + " [" + $S4 + "z]"; + if (#S5 > 0) mes "^0000FF"+$S5N$+"^FF0000" + " x " + #S5 + " [" + $S5 + "z]"; + if (#S6 > 0) mes "^0000FF"+$S6N$+"^FF0000" + " x " + #S6 + " [" + $S6 + "z]"; + if (#S7 > 0) mes "^0000FF"+$S7N$+"^FF0000" + " x " + #S7 + " [" + $S7 + "z]"; + if (#S8 > 0) mes "^0000FF"+$S8N$+"^FF0000" + " x " + #S8 + " [" + $S8 + "z]"; + if (#S9 > 0) mes "^0000FF"+$S9N$+"^FF0000" + " x " + #S9 + " [" + $S9 + "z]"; + if (#S10 > 0) mes "^0000FF"+$S10N$+"^FF0000" + " x " + #S10 + " [" + $S10 + "z]"; + set @sellname$,"0"; + input @sellname$; + set @sellamount,0; + input @sellamount; + if (@sellamount < 1) goto S_SellInv; + if (zeny < $S_Trans) goto S_NoZeny; + set zeny,zeny-$S_Trans; + +SELLS1: + if (@sellname$ != $S1N$) goto SELLS2; + if (@sellamount > #S1) goto S_SellTooHigh; + set @price,@sellamount*$S1; + set #S1,#S1-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S1N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS2: + if (@sellname$ != $S2N$) goto SELLS3; + if (@sellamount > #S2) goto S_SellTooHigh; + set @price,@sellamount*$S2; + set #S2,#S2-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S2N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS3: + if (@sellname$ != $S3N$) goto SELLS4; + if (@sellamount > #S3) goto S_SellTooHigh; + set @price,@sellamount*$S3; + set #S3,#S3-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S3N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS4: + if (@sellname$ != $S4N$) goto SELLS5; + if (@sellamount > #S4) goto S_SellTooHigh; + set @price,@sellamount*$S4; + set #S4,#S4-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S4N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS5: + if (@sellname$ != $S5N$) goto SELLS6; + if (@sellamount > #S5) goto S_SellTooHigh; + set @price,@sellamount*$S5; + set #S5,#S5-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S5N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS6: + if (@sellname$ != $S6N$) goto SELLS7; + if (@sellamount > #S6) goto S_SellTooHigh; + set @price,@sellamount*$S6; + set #S6,#S6-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S6N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS7: + if (@sellname$ != $S7N$) goto SELLS8; + if (@sellamount > #S7) goto S_SellTooHigh; + set @price,@sellamount*$S7; + set #S7,#S7-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S7N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS8: + if (@sellname$ != $S8N$) goto SELLS9; + if (@sellamount > #S8) goto S_SellTooHigh; + set @price,@sellamount*$S8; + set #S8,#S8-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S8N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS9: + if (@sellname$ != $S9N$) goto SELLS10; + if (@sellamount > #S9) goto S_SellTooHigh; + set @price,@sellamount*$S9; + set #S9,#S9-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S9N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS10: + if (@sellname$ != $S10N$) goto SELLS11; + if (@sellamount > #S10) goto S_SellTooHigh; + set @price,@sellamount*$S10; + set #S10,#S10-@sellamount; + set zeny,zeny+@price; + next; + mes "Sold " + @sellamount + " " + $S10N$ + " shares."; + mes "Earned ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +SELLS11: + mes "^FF0000Invalid Share Name.^000000"; + next; + goto S_Start; + +S_SellTooHigh: + mes "^FF0000You don't have that many shares.^000000"; + next; + goto S_Start; + +S_SellInv: + mes "^FF0000Invalid integer.^000000"; + next; + goto S_Start; + + // Buying Shares // +S_Buy: + mes "[Stock Market]"; + mes "Available shares:"; + mes $S1N$; + mes $S2N$; + mes $S3N$; + mes $S4N$; + mes $S5N$; + mes $S6N$; + mes $S7N$; + mes $S8N$; + mes $S9N$; + mes $S10N$; + next; + menu "Continue",-,"Cancel",S_Start; + + mes "Enter the name of the share company"; + mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply."; + set @buyname$,"0"; + input @buyname$; + + set @buyamount,0; + input @buyamount; + // Checks valid number // + if (@buyamount < $S_BuyMin) goto S_TooLow; + if (@buyamount > $S_BuyMax) goto S_TooHigh; + if (zeny < $S_Trans) goto S_NoZeny; + set zeny,zeny-$S_Trans; + + // Purchases the shares // + +PURS1: + if (@buyname$ != $S1N$) goto PURS2; + set @price,@buyamount*$S1; + if (zeny < @price) goto S_NoZeny; + set #S1,#S1+@buyamount; + set @price,@buyamount*$S1; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S1N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS2: + if (@buyname$ != $S2N$) goto PURS3; + set @price,@buyamount*$S2; + if (zeny < @price) goto S_NoZeny; + set #S2,#S2+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S2N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS3: + if (@buyname$ != $S3N$) goto PURS4; + set @price,@buyamount*$S3; + if (zeny < @price) goto S_NoZeny; + set #S3,#S3+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S3N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS4: + if (@buyname$ != $S4N$) goto PURS5; + set @price,@buyamount*$S4; + if (zeny < @price) goto S_NoZeny; + set #S4,#S4+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S4N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS5: + if (@buyname$ != $S5N$) goto PURS6; + set @price,@buyamount*$S5; + if (zeny < @price) goto S_NoZeny; + set #S5,#S5+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S5N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS6: + if (@buyname$ != $S6N$) goto PURS7; + set @price,@buyamount*$S6; + if (zeny < @price) goto S_NoZeny; + set #S6,#S6+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S6N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS7: + if (@buyname$ != $S7N$) goto PURS8; + set @price,@buyamount*$S7; + if (zeny < @price) goto S_NoZeny; + set #S7,#S7+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S7N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS8: + if (@buyname$ != $S8N$) goto PURS9; + set @price,@buyamount*$S8; + if (zeny < @price) goto S_NoZeny; + set #S8,#S8+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S8N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS9: + if (@buyname$ != $S9N$) goto PURS10; + set @price,@buyamount*$S9; + if (zeny < @price) goto S_NoZeny; + set #S9,#S9+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S9N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS10: + if (@buyname$ != $S10N$) goto PURS11; + set @price,@buyamount*$S10; + if (zeny < @price) goto S_NoZeny; + set #S10,#S10+@buyamount; + set zeny,zeny-@price; + mes "Bought " + @buyamount + " " + $S10N$ + " shares."; + mes "Lost ^0000FF"+@price+"z^000000."; + next; + goto S_Start; + +PURS11: + goto S_InvName; + + // Number too low // +S_TooLow: + mes "^FF0000Minimum of " + $S_BuyMin + " shares can be bought at a time.^000000"; + next; + goto S_Start; + + // Number too high // +S_TooHigh: + mes "^FF0000Maximum number of " + $S_BuyMax + " shares can be bought at a time.^000000"; + next; + goto S_Start; + +S_NoZeny: + mes "^FF0000You do not have enough zeny.^000000"; + next; + goto S_Start; + + // Sends user to start if name invalid // +S_InvName: + mes "^FF0000Invalid share name.^000000"; + next; + goto S_Start; + + // Displays your total amount // +S_Port: + mes "[Stock Market]"; + +ACCS1: + if (#S1 < 1) goto ACCS2; + set @S1,#S1*$S1; + mes $S1N$ + ": " + #S1 + " x " + $S1 + "z = " + @S1 + "z"; + +ACCS2: + if (#S2 < 1) goto ACCS3; + set @S2,#S2*$S2; + mes $S2N$ + ": " + #S2 + " x " + $S2 + "z = " + @S2 + "z"; + +ACCS3: + if (#S3 < 1) goto ACCS4; + set @S3,#S3*$S3; + mes $S3N$ + ": " + #S3 + " x " + $S3 + "z = " + @S3 + "z"; + +ACCS4: + if (#S4 < 1) goto ACCS5; + set @S4,#S4*$S4; + mes $S4N$ + ": " + #S4 + " x " + $S4 + "z = " + @S4 + "z"; + +ACCS5: + if (#S5 < 1) goto ACCS6; + set @S5,#S5*$S5; + mes $S5N$ + ": " + #S5 + " x " + $S5 + "z = " + @S5 + "z"; + +ACCS6: + if (#S6 < 1) goto ACCS7; + set @S6,#S6*$S6; + mes $S6N$ + ": " + #S6 + " x " + $S6 + "z = " + @S6 + "z"; + +ACCS7: + if (#S7 < 1) goto ACCS8; + set @S7,#S7*$S7; + mes $S7N$ + ": " + #S7 + " x " + $S7 + "z = " + @S7 + "z"; + +ACCS8: + if (#S8 < 1) goto ACCS9; + set @S8,#S8*$S8; + mes $S8N$ + ": " + #S8 + " x " + $S8 + "z = " + @S8 + "z"; + +ACCS9: + if (#S9 < 1) goto ACCS10; + set @S9,#S9*$S9; + mes $S9N$ + ": " + #S9 + " x " + $S9 + "z = " + @S9 + "z"; + +ACCS10: + if (#S10 < 1) goto ACCS11; + set @S10,#S10*$S10; + mes $S10N$ + ": " + #S10 + " x " + $S10 + "z = " + @S10 + "z"; + + // Total // +ACCS11: + set @total,@S1 + @S2 + @S3 + @S4 + @S5 + @S6 + @S7 + @S8 + @S9 + @S10; + mes "Total value: "+@total+"z"; + next; + goto S_Start; + + + // GM MENU // +GM_Menu: + mes "[Stock Market]"; + mes "Master, do you require anything?"; + menu "Fluctuate Market",S_Fluc,"Reset Prices",GM_Open,"Nothing",S_Start; + +S_Fluc: + set $fluc,rand (-6,6); + set $S1B,$S1; + set $S1,$S1+$fluc; + if ($S1 < 25) set $S1,$S1+3; + if ($S1 < 50) set $S1,$S1+2; + if ($S1 > 150) set $S1,$S1-2; + if ($S1 > 175) set $S1,$S1-3; + if ($S1 < 1) set $S1,1; + + set $fluc,rand (-6,6); + set $S2B,$S2; + set $S2,$S2+$fluc; + if ($S2 < 25) set $S2,$S2+3; + if ($S2 < 50) set $S2,$S2+2; + if ($S2 > 150) set $S2,$S2-2; + if ($S2 > 175) set $S2,$S2-3; + if ($S2 < 2) set $S2,1; + + set $fluc,rand (-6,6); + set $S3B,$S3; + set $S3,$S3+$fluc; + if ($S3 < 25) set $S3,$S3+3; + if ($S3 < 50) set $S3,$S3+2; + if ($S3 > 150) set $S3,$S3-2; + if ($S3 > 175) set $S3,$S3-3; + if ($S3 < 1) set $S3,1; + + set $fluc,rand (-6,6); + set $S4B,$S4; + set $S4,$S4+$fluc; + if ($S4 < 25) set $S4,$S4+3; + if ($S4 < 50) set $S4,$S4+2; + if ($S4 > 150) set $S4,$S4-2; + if ($S4 > 175) set $S4,$S4-3; + if ($S4 < 1) set $S4,1; + + set $fluc,rand (-6,6); + set $S5B,$S5; + set $S5,$S5+$fluc; + if ($S5 < 25) set $S5,$S5+3; + if ($S5 < 50) set $S5,$S5+2; + if ($S5 > 150) set $S5,$S5-2; + if ($S5 > 175) set $S5,$S5-3; + if ($S5 < 1) set $S5,1; + + set $fluc,rand (-6,6); + set $S6B,$S6; + set $S6,$S6+$fluc; + if ($S6 < 25) set $S6,$S6+3; + if ($S6 < 50) set $S6,$S6+2; + if ($S6 > 150) set $S6,$S6-2; + if ($S6 > 175) set $S6,$S6-3; + if ($S6 < 1) set $S6,1; + + set $fluc,rand (-6,6); + set $S7B,$S7; + set $S7,$S7+$fluc; + if ($S7 < 25) set $S7,$S7+3; + if ($S7 < 50) set $S7,$S7+2; + if ($S7 > 150) set $S7,$S7-2; + if ($S7 > 175) set $S7,$S7-3; + if ($S7 < 1) set $S7,1; + + set $fluc,rand (-6,6); + set $S8B,$S8; + set $S8,$S8+$fluc; + if ($S8 < 25) set $S8,$S8+3; + if ($S8 < 50) set $S8,$S8+2; + if ($S8 > 150) set $S8,$S8-2; + if ($S8 > 175) set $S8,$S8-3; + if ($S8 < 1) set $S8,1; + + set $fluc,rand (-6,6); + set $S9B,$S9; + set $S9,$S9+$fluc; + if ($S9 < 25) set $S9,$S9+3; + if ($S9 < 50) set $S9,$S9+2; + if ($S9 > 150) set $S9,$S9-2; + if ($S9 > 175) set $S9,$S9-3; + if ($S9 < 1) set $S9,1; + + set $fluc,rand (-6,6); + set $S10B,$S10; + set $S10,$S10+$fluc; + if ($S10 < 25) set $S10,$S10+3; + if ($S10 < 50) set $S10,$S10+2; + if ($S10 > 150) set $S10,$S10-2; + if ($S10 > 175) set $S10,$S10-3; + if ($S10 < 1) set $S10,1; + + set $S_LastUpd$,"GM Fluctuation"; + mes "Market fluctuated."; + close; + +GM_Open: + menu "Set prices to...",GM_Set,"Cancel",-; + mes "Farewell."; + close; + +GM_Set: + mes "Are you sure you want to reset?"; + mes "^FF0000All share values will become the same.^000000"; + next; + menu "Yes",-,"No",GM_Menu; + set @gmset,0; + input @gmset; + set $S1,@gmset; + set $S2,@gmset; + set $S3,@gmset; + set $S4,@gmset; + set $S5,@gmset; + set $S6,@gmset; + set $S7,@gmset; + set $S8,@gmset; + set $S9,@gmset; + set $S10,@gmset; + set $S1B,@gmset; + set $S2B,@gmset; + set $S3B,@gmset; + set $S4B,@gmset; + set $S5B,@gmset; + set $S6B,@gmset; + set $S7B,@gmset; + set $S8B,@gmset; + set $S9B,@gmset; + set $S10B,@gmset; + mes "All prices changed to " + @gmset + "z."; + close; + +S_Quit: + mes "[Stock Market]"; + mes "Goodbye."; + close; +} diff --git a/npc/custom/etc/wandering_poets.txt b/npc/custom/etc/wandering_poets.txt index d9a36c0c4..2451c5e8b 100644 --- a/npc/custom/etc/wandering_poets.txt +++ b/npc/custom/etc/wandering_poets.txt @@ -1,712 +1,712 @@ -//===== rAthena Script ======================================= -//= Wandering Poets -//===== By: ================================================== -//= MouseJstr -//===== Current Version: ===================================== -//= 0.2a -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= -//===== Additional Comments: ================================= -//= -//============================================================ - -ayothaya,58,134,5 script Louise Gluck 763,{ - mes "[Louise Gluck]"; - mes "What is the next line? "; - close; -OnTimer5000: - npcwalkto 65,129; - npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; - end; -OnTimer10000: - npcwalkto 71,131; - npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; - end; -OnTimer15000: - npcwalkto 75,127; - npctalk "Beware the Jabberwock, my son! The jaws that bite, theh claws that catch!"; - end; -OnTimer20000: - npcwalkto 80,122; - npctalk "Beware the Jubjub bird and shun The frumious Bandersnatch!"; - end; -OnTimer25000: - npcwalkto 82,118; - npctalk "He took his vorpal sword in hand: Long time the manxome foe he sought-"; - end; -OnTimer30000: - npcwalkto 93,115; - npctalk "So rested he by the Tumtum tree, And stood a while in thought."; - end; -OnTimer35000: - npcwalkto 94,112; - npctalk "And, as in uffish thought he stood, The Jabberwock, with eyes of flame,"; - end; -OnTimer40000: - npcwalkto 88,124; - npctalk "Came whiffling through the tulgey wood, And burbled as it came!"; - end; -OnTimer45000: - npcwalkto 81,129; - npctalk "One, two! One, two! And through and through The vorpal blade went snicker-snack!"; - end; -OnTimer50000: - npcwalkto 76,139; - npctalk "He left it dead, and with its head He went galumphing back."; - end; -OnTimer55000: - npcwalkto 67,138; - npctalk "And hast though slain the Jabberwock? Come to my arms beamish boy!"; - end; -OnTimer60000: - npcwalkto 59,144; - npctalk "O frabjous day! Callooh! Callay! He chortled in his joy."; - end; -OnTimer65000: - npcwalkto 55,124; - npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; - end; -OnTimer70000: - npcwalkto 58,134; - npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; - setnpctimer 0; - end; -OnInit: - npcspeed 150; - initnpctimer; - end; -} - -ayothaya,212,276,0 script Romeo 50,{ - mes "[Romeo]"; - mes "What is the next line?"; - close; -OnTimer0: - npctalk "He jests at scars that never felt a wound."; - end; -OnTimer6000: - npctalk "But, soft! what light through yonder window breaks?"; - end; -OnTimer8000: - npctalk "It is the east, and Juliet is the sun."; - end; -OnTimer10000: - npctalk "Arise, fair sun, and kill the envious moon,"; - end; -OnTimer12000: - npctalk "Who is already sick and pale with grief,"; - end; -OnTimer14000: - npctalk "That thou her maid art far more fair than she:"; - end; -OnTimer16000: - npctalk "Be not her maid, since she is envious;"; - end; -OnTimer18000: - npctalk "Her vestal livery is but sick and green"; - end; -OnTimer20000: - npctalk "And none but fools do wear it; cast it off."; - end; -OnTimer22000: - npctalk "It is my lady, O, it is my love!"; - end; -OnTimer24000: - npctalk "O, that she knew she were!"; - end; -OnTimer26000: - npctalk "She speaks yet she says nothing: what of that?"; - end; -OnTimer28000: - npctalk "Her eye discourses; I will answer it."; - end; -OnTimer30000: - npctalk "I am too bold, tis not to me she speaks:"; - end; -OnTimer32000: - npctalk "Two of the fairest stars in all the heaven,"; - end; -OnTimer34000: - npctalk "Having some business, do entreat her eyes"; - end; -OnTimer36000: - npctalk "To twinkle in their spheres till they return."; - end; -OnTimer38000: - npctalk "What if her eyes were there, they in her head?"; - end; -OnTimer40000: - npctalk "The brightness of her cheek would shame those stars,"; - end; -OnTimer42000: - npctalk "As daylight doth a lamp; her eyes in heaven"; - end; -OnTimer44000: - npctalk "Would through the airy region stream so bright"; - end; -OnTimer46000: - npctalk "That birds would sing and think it were not night."; - end; -OnTimer48000: - npctalk "See, how she leans her cheek upon her hand!"; - end; -OnTimer50000: - npctalk "O, that I were a glove upon that hand,"; - end; -OnTimer52000: - npctalk "That I might touch that cheek!"; - end; -OnTimer56000: - npctalk "She speaks:"; - end; -OnTimer58000: - npctalk "O, speak again, bright angel! for thou art"; - end; -OnTimer60000: - npctalk "As glorious to this night, being oer my head"; - end; -OnTimer62000: - npctalk "As is a winged messenger of heaven"; - end; -OnTimer64000: - npctalk "Unto the white-upturned wondering eyes"; - end; -OnTimer66000: - npctalk "Of mortals that fall back to gaze on him"; - end; -OnTimer68000: - npctalk "When he bestrides the lazy-pacing clouds"; - end; -OnTimer70000: - npctalk "And sails upon the bosom of the air."; - end; -OnTimer80000: - npctalk "Shall I hear more, or shall I speak at this?"; - end; -OnTimer106000: - npctalk "I take thee at thy word:"; - end; -OnTimer108000: - npctalk "Call me but love, and Ill be new baptized;"; - end; -OnTimer110000: - npctalk "Henceforth I never will be Romeo."; - end; -OnTimer116000: - npctalk "By a name"; - end; -OnTimer118000: - npctalk "I know not how to tell thee who I am:"; - end; -OnTimer120000: - npctalk "My name, dear saint, is hateful to myself,"; - end; -OnTimer122000: - npctalk "Because it is an enemy to thee;"; - end; -OnTimer124000: - npctalk "Had I it written, I would tear the word."; - end; -OnTimer132000: - npctalk "Neither, fair saint, if either thee dislike."; - end; -OnTimer142000: - npctalk "With loves light wings did I oer-perch these walls;"; - end; -OnTimer144000: - npctalk "For stony limits cannot hold love out,"; - end; -OnTimer146000: - npctalk "And what love can do that dares love attempt;"; - end; -OnTimer148000: - npctalk "Therefore thy kinsmen are no let to me."; - end; -OnTimer152000: - npctalk "Alack, there lies more peril in thine eye"; - end; -OnTimer154000: - npctalk "Than twenty of their swords: look thou but sweet,"; - end; -OnTimer156000: - npctalk "And I am proof against their enmity."; - end; -OnTimer160000: - npctalk "I have nights cloak to hide me from their sight;"; - end; -OnTimer162000: - npctalk "And but thou love me, let them find me here:"; - end; -OnTimer164000: - npctalk "My life were better ended by their hate,"; - end; -OnTimer166000: - npctalk "Than death prorogued, wanting of thy love."; - end; -OnTimer170000: - npctalk "By love, who first did prompt me to inquire;"; - end; -OnTimer172000: - npctalk "He lent me counsel and I lent him eyes."; - end; -OnTimer174000: - npctalk "I am no pilot; yet, wert thou as far"; - end; -OnTimer176000: - npctalk "As that vast shore washd with the farthest sea,"; - end; -OnTimer178000: - npctalk "I would adventure for such merchandise."; - end; -OnTimer224000: - npctalk "Lady, by yonder blessed moon I swear"; - end; -OnTimer226000: - npctalk "That tips with silver all these fruit-tree tops--"; - end; -OnTimer234000: - npctalk "What shall I swear by?"; - end; -OnTimer244000: - npctalk "If my hearts dear love--"; - end; -OnTimer264000: - npctalk "O, wilt thou leave me so unsatisfied?"; - end; -OnTimer268000: - npctalk "The exchange of thy loves faithful vow for mine."; - end; -OnTimer274000: - npctalk "Wouldst thou withdraw it? for what purpose, love?"; - end; -OnTimer294000: - npctalk "O blessed, blessed night! I am afeard."; - end; -OnTimer296000: - npctalk "Being in night, all this is but a dream,"; - end; -OnTimer298000: - npctalk "Too flattering-sweet to be substantial."; - end; -OnTimer330000: - npctalk "So thrive my soul--"; - end; -OnTimer334000: - npctalk "A thousand times the worse, to want thy light."; - end; -OnTimer336000: - npctalk "Love goes toward love, as schoolboys from"; - end; -OnTimer338000: - npctalk "their books,"; - end; -OnTimer340000: - npctalk "But love from love, toward school with heavy looks."; - end; -OnTimer356000: - npctalk "It is my soul that calls upon my name:"; - end; -OnTimer358000: - npctalk "How silver-sweet sound lovers tongues by night,"; - end; -OnTimer360000: - npctalk "Like softest music to attending ears!"; - end; -OnTimer364000: - npctalk "My dear?"; - end; -OnTimer370000: - npctalk "At the hour of nine."; - end; -OnTimer376000: - npctalk "Let me stand here till thou remember it."; - end; -OnTimer382000: - npctalk "And Ill still stay, to have thee still forget,"; - end; -OnTimer384000: - npctalk "Forgetting any other home but this."; - end; -OnTimer398000: - npctalk "I would I were thy bird."; - end; -OnTimer410000: - npctalk "Sleep dwell upon thine eyes, peace in thy breast!"; - end; -OnTimer412000: - npctalk "Would I were sleep and peace, so sweet to rest!"; - end; -OnTimer414000: - npctalk "Hence will I to my ghostly fathers cell,"; - end; -OnTimer416000: - npctalk "His help to crave, and my dear hap to tell."; - end; -OnTimer538000: - setnpctimer 0; - end; -OnInit: - npcspeed 150; - initnpctimer; - end; -} - -ayothaya,214,279,3 script Juliet 53,{ - mes "[Juliet]"; - mes "What is the next line? "; - close; -OnTimer54000: - npctalk "Ay me!"; - end; -OnTimer72000: - npctalk "O Romeo, Romeo! wherefore art thou Romeo?"; - end; -OnTimer74000: - npctalk "Deny thy father and refuse thy name;"; - end; -OnTimer76000: - npctalk "Or, if thou wilt not, be but sworn my love,"; - end; -OnTimer78000: - npctalk "And Ill no longer be a Capulet."; - end; -OnTimer82000: - npctalk "Tis but thy name that is my enemy;"; - end; -OnTimer84000: - npctalk "Thou art thyself, though not a Montague."; - end; -OnTimer86000: - npctalk "Whats Montague? it is nor hand, nor foot,"; - end; -OnTimer88000: - npctalk "Nor arm, nor face, nor any other part"; - end; -OnTimer90000: - npctalk "Belonging to a man. O, be some other name!"; - end; -OnTimer92000: - npctalk "Whats in a name? that which we call a rose"; - end; -OnTimer94000: - npctalk "By any other name would smell as sweet;"; - end; -OnTimer96000: - npctalk "So Romeo would, were he not Romeo calld,"; - end; -OnTimer98000: - npctalk "Retain that dear perfection which he owes"; - end; -OnTimer100000: - npctalk "Without that title. Romeo, doff thy name,"; - end; -OnTimer102000: - npctalk "And for that name which is no part of thee"; - end; -OnTimer104000: - npctalk "Take all myself."; - end; -OnTimer112000: - npctalk "What man art thou that thus bescreend in night"; - end; -OnTimer114000: - npctalk "So stumblest on my counsel?"; - end; -OnTimer126000: - npctalk "My ears have not yet drunk a hundred words"; - end; -OnTimer128000: - npctalk "Of that tongues utterance, yet I know the sound:"; - end; -OnTimer130000: - npctalk "Art thou not Romeo and a Montague?"; - end; -OnTimer134000: - npctalk "How camest thou hither, tell me, and wherefore?"; - end; -OnTimer136000: - npctalk "The orchard walls are high and hard to climb,"; - end; -OnTimer138000: - npctalk "And the place death, considering who thou art,"; - end; -OnTimer140000: - npctalk "If any of my kinsmen find thee here."; - end; -OnTimer150000: - npctalk "If they do see thee, they will murder thee."; - end; -OnTimer158000: - npctalk "I would not for the world they saw thee here."; - end; -OnTimer168000: - npctalk "By whose direction foundst thou out this place?"; - end; -OnTimer180000: - npctalk "Thou knowst the mask of night is on my face,"; - end; -OnTimer182000: - npctalk "Else would a maiden blush bepaint my cheek"; - end; -OnTimer184000: - npctalk "For that which thou hast heard me speak to-night"; - end; -OnTimer186000: - npctalk "Fain would I dwell on form, fain, fain deny"; - end; -OnTimer188000: - npctalk "What I have spoke: but farewell compliment!"; - end; -OnTimer190000: - npctalk "Dost thou love me? I know thou wilt say Ay,"; - end; -OnTimer192000: - npctalk "And I will take thy word: yet if thou swearst,"; - end; -OnTimer194000: - npctalk "Thou mayst prove false; at lovers perjuries"; - end; -OnTimer196000: - npctalk "Then say, Jove laughs. O gentle Romeo,"; - end; -OnTimer198000: - npctalk "If thou dost love, pronounce it faithfully:"; - end; -OnTimer200000: - npctalk "Or if thou thinkst I am too quickly won,"; - end; -OnTimer202000: - npctalk "Ill frown and be perverse an say thee nay,"; - end; -OnTimer204000: - npctalk "So thou wilt woo; but else, not for the world."; - end; -OnTimer206000: - npctalk "In truth, fair Montague, I am too fond,"; - end; -OnTimer208000: - npctalk "And therefore thou mayst think my havior light:"; - end; -OnTimer210000: - npctalk "But trust me, gentleman, Ill prove more true"; - end; -OnTimer212000: - npctalk "Than those that have more cunning to be strange."; - end; -OnTimer214000: - npctalk "I should have been more strange, I must confess,"; - end; -OnTimer216000: - npctalk "But that thou overheardst, ere I was ware,"; - end; -OnTimer218000: - npctalk "My true loves passion: therefore pardon me,"; - end; -OnTimer220000: - npctalk "And not impute this yielding to light love,"; - end; -OnTimer222000: - npctalk "Which the dark night hath so discovered."; - end; -OnTimer228000: - npctalk "O, swear not by the moon, the inconstant moon,"; - end; -OnTimer230000: - npctalk "That monthly changes in her circled orb,"; - end; -OnTimer232000: - npctalk "Lest that thy love prove likewise variable."; - end; -OnTimer236000: - npctalk "Do not swear at all;"; - end; -OnTimer238000: - npctalk "Or, if thou wilt, swear by thy gracious self,"; - end; -OnTimer240000: - npctalk "Which is the god of my idolatry,"; - end; -OnTimer242000: - npctalk "And Ill believe thee."; - end; -OnTimer246000: - npctalk "Well, do not swear: although I joy in thee,"; - end; -OnTimer248000: - npctalk "I have no joy of this contract to-night:"; - end; -OnTimer250000: - npctalk "It is too rash, too unadvised, too sudden;"; - end; -OnTimer252000: - npctalk "Too like the lightning, which doth cease to be"; - end; -OnTimer254000: - npctalk "Ere one can say It lightens. Sweet, good night!"; - end; -OnTimer256000: - npctalk "This bud of love, by summers ripening breath,"; - end; -OnTimer258000: - npctalk "May prove a beauteous flower when next we meet."; - end; -OnTimer260000: - npctalk "Good night, good night! as sweet repose and rest"; - end; -OnTimer262000: - npctalk "Come to thy heart as that within my breast!"; - end; -OnTimer266000: - npctalk "What satisfaction canst thou have to-night?"; - end; -OnTimer270000: - npctalk "I gave thee mine before thou didst request it:"; - end; -OnTimer272000: - npctalk "And yet I would it were to give again."; - end; -OnTimer276000: - npctalk "But to be frank, and give it thee again."; - end; -OnTimer278000: - npctalk "And yet I wish but for the thing I have:"; - end; -OnTimer280000: - npctalk "My bounty is as boundless as the sea,"; - end; -OnTimer282000: - npctalk "My love as deep; the more I give to thee,"; - end; -OnTimer284000: - npctalk "The more I have, for both are infinite."; - end; -OnTimer288000: - npctalk "I hear some noise within; dear love, adieu!"; - end; -OnTimer290000: - npctalk "Anon, good nurse! Sweet Montague, be true."; - end; -OnTimer292000: - npctalk "Stay but a little, I will come again."; - end; -OnTimer302000: - npctalk "Three words, dear Romeo, and good night indeed."; - end; -OnTimer304000: - npctalk "If that thy bent of love be honourable,"; - end; -OnTimer306000: - npctalk "Thy purpose marriage, send me word to-morrow,"; - end; -OnTimer308000: - npctalk "By one that Ill procure to come to thee,"; - end; -OnTimer310000: - npctalk "Where and what time thou wilt perform the rite;"; - end; -OnTimer312000: - npctalk "And all my fortunes at thy foot Ill lay"; - end; -OnTimer314000: - npctalk "And follow thee my lord throughout the world."; - end; -OnTimer318000: - npctalk "I come, anon.--But if thou meanst not well,"; - end; -OnTimer320000: - npctalk "I do beseech thee--"; - end; -OnTimer324000: - npctalk "By and by, I come:--"; - end; -OnTimer326000: - npctalk "To cease thy suit, and leave me to my grief:"; - end; -OnTimer328000: - npctalk "To-morrow will I send."; - end; -OnTimer332000: - npctalk "A thousand times good night!"; - end; -OnTimer344000: - npctalk "Hist! Romeo, hist! O, for a falconers voice,"; - end; -OnTimer346000: - npctalk "To lure this tassel-gentle back again!"; - end; -OnTimer348000: - npctalk "Bondage is hoarse, and may not speak aloud;"; - end; -OnTimer350000: - npctalk "Else would I tear the cave where Echo lies,"; - end; -OnTimer352000: - npctalk "And make her airy tongue more hoarse than mine,"; - end; -OnTimer354000: - npctalk "With repetition of my Romeos name."; - end; -OnTimer362000: - npctalk "Romeo!"; - end; -OnTimer366000: - npctalk "At what oclock to-morrow"; - end; -OnTimer368000: - npctalk "Shall I send to thee?"; - end; -OnTimer372000: - npctalk "I will not fail: tis twenty years till then."; - end; -OnTimer374000: - npctalk "I have forgot why I did call thee back."; - end; -OnTimer378000: - npctalk "I shall forget, to have thee still stand there,"; - end; -OnTimer380000: - npctalk "Remembering how I love thy company."; - end; -OnTimer386000: - npctalk "Tis almost morning; I would have thee gone:"; - end; -OnTimer388000: - npctalk "And yet no further than a wantons bird;"; - end; -OnTimer390000: - npctalk "Who lets it hop a little from her hand,"; - end; -OnTimer392000: - npctalk "Like a poor prisoner in his twisted gyves,"; - end; -OnTimer394000: - npctalk "And with a silk thread plucks it back again,"; - end; -OnTimer396000: - npctalk "So loving-jealous of his liberty."; - end; -OnTimer400000: - npctalk "Sweet, so would I:"; - end; -OnTimer402000: - npctalk "Yet I should kill thee with much cherishing."; - end; -OnTimer404000: - npctalk "Good night, good night! parting is such"; - end; -OnTimer406000: - npctalk "sweet sorrow,"; - end; -OnTimer408000: - npctalk "That I shall say good night till it be morrow."; - end; -OnTimer538000: - setnpctimer 0; - end; -OnInit: - npcspeed 150; - initnpctimer; - end; -} +//===== rAthena Script ======================================= +//= Wandering Poets +//===== By: ================================================== +//= MouseJstr +//===== Current Version: ===================================== +//= 0.2a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= +//===== Additional Comments: ================================= +//= +//============================================================ + +ayothaya,58,134,5 script Louise Gluck 763,{ + mes "[Louise Gluck]"; + mes "What is the next line? "; + close; +OnTimer5000: + npcwalkto 65,129; + npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; + end; +OnTimer10000: + npcwalkto 71,131; + npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; + end; +OnTimer15000: + npcwalkto 75,127; + npctalk "Beware the Jabberwock, my son! The jaws that bite, theh claws that catch!"; + end; +OnTimer20000: + npcwalkto 80,122; + npctalk "Beware the Jubjub bird and shun The frumious Bandersnatch!"; + end; +OnTimer25000: + npcwalkto 82,118; + npctalk "He took his vorpal sword in hand: Long time the manxome foe he sought-"; + end; +OnTimer30000: + npcwalkto 93,115; + npctalk "So rested he by the Tumtum tree, And stood a while in thought."; + end; +OnTimer35000: + npcwalkto 94,112; + npctalk "And, as in uffish thought he stood, The Jabberwock, with eyes of flame,"; + end; +OnTimer40000: + npcwalkto 88,124; + npctalk "Came whiffling through the tulgey wood, And burbled as it came!"; + end; +OnTimer45000: + npcwalkto 81,129; + npctalk "One, two! One, two! And through and through The vorpal blade went snicker-snack!"; + end; +OnTimer50000: + npcwalkto 76,139; + npctalk "He left it dead, and with its head He went galumphing back."; + end; +OnTimer55000: + npcwalkto 67,138; + npctalk "And hast though slain the Jabberwock? Come to my arms beamish boy!"; + end; +OnTimer60000: + npcwalkto 59,144; + npctalk "O frabjous day! Callooh! Callay! He chortled in his joy."; + end; +OnTimer65000: + npcwalkto 55,124; + npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; + end; +OnTimer70000: + npcwalkto 58,134; + npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} + +ayothaya,212,276,0 script Romeo 50,{ + mes "[Romeo]"; + mes "What is the next line?"; + close; +OnTimer0: + npctalk "He jests at scars that never felt a wound."; + end; +OnTimer6000: + npctalk "But, soft! what light through yonder window breaks?"; + end; +OnTimer8000: + npctalk "It is the east, and Juliet is the sun."; + end; +OnTimer10000: + npctalk "Arise, fair sun, and kill the envious moon,"; + end; +OnTimer12000: + npctalk "Who is already sick and pale with grief,"; + end; +OnTimer14000: + npctalk "That thou her maid art far more fair than she:"; + end; +OnTimer16000: + npctalk "Be not her maid, since she is envious;"; + end; +OnTimer18000: + npctalk "Her vestal livery is but sick and green"; + end; +OnTimer20000: + npctalk "And none but fools do wear it; cast it off."; + end; +OnTimer22000: + npctalk "It is my lady, O, it is my love!"; + end; +OnTimer24000: + npctalk "O, that she knew she were!"; + end; +OnTimer26000: + npctalk "She speaks yet she says nothing: what of that?"; + end; +OnTimer28000: + npctalk "Her eye discourses; I will answer it."; + end; +OnTimer30000: + npctalk "I am too bold, tis not to me she speaks:"; + end; +OnTimer32000: + npctalk "Two of the fairest stars in all the heaven,"; + end; +OnTimer34000: + npctalk "Having some business, do entreat her eyes"; + end; +OnTimer36000: + npctalk "To twinkle in their spheres till they return."; + end; +OnTimer38000: + npctalk "What if her eyes were there, they in her head?"; + end; +OnTimer40000: + npctalk "The brightness of her cheek would shame those stars,"; + end; +OnTimer42000: + npctalk "As daylight doth a lamp; her eyes in heaven"; + end; +OnTimer44000: + npctalk "Would through the airy region stream so bright"; + end; +OnTimer46000: + npctalk "That birds would sing and think it were not night."; + end; +OnTimer48000: + npctalk "See, how she leans her cheek upon her hand!"; + end; +OnTimer50000: + npctalk "O, that I were a glove upon that hand,"; + end; +OnTimer52000: + npctalk "That I might touch that cheek!"; + end; +OnTimer56000: + npctalk "She speaks:"; + end; +OnTimer58000: + npctalk "O, speak again, bright angel! for thou art"; + end; +OnTimer60000: + npctalk "As glorious to this night, being oer my head"; + end; +OnTimer62000: + npctalk "As is a winged messenger of heaven"; + end; +OnTimer64000: + npctalk "Unto the white-upturned wondering eyes"; + end; +OnTimer66000: + npctalk "Of mortals that fall back to gaze on him"; + end; +OnTimer68000: + npctalk "When he bestrides the lazy-pacing clouds"; + end; +OnTimer70000: + npctalk "And sails upon the bosom of the air."; + end; +OnTimer80000: + npctalk "Shall I hear more, or shall I speak at this?"; + end; +OnTimer106000: + npctalk "I take thee at thy word:"; + end; +OnTimer108000: + npctalk "Call me but love, and Ill be new baptized;"; + end; +OnTimer110000: + npctalk "Henceforth I never will be Romeo."; + end; +OnTimer116000: + npctalk "By a name"; + end; +OnTimer118000: + npctalk "I know not how to tell thee who I am:"; + end; +OnTimer120000: + npctalk "My name, dear saint, is hateful to myself,"; + end; +OnTimer122000: + npctalk "Because it is an enemy to thee;"; + end; +OnTimer124000: + npctalk "Had I it written, I would tear the word."; + end; +OnTimer132000: + npctalk "Neither, fair saint, if either thee dislike."; + end; +OnTimer142000: + npctalk "With loves light wings did I oer-perch these walls;"; + end; +OnTimer144000: + npctalk "For stony limits cannot hold love out,"; + end; +OnTimer146000: + npctalk "And what love can do that dares love attempt;"; + end; +OnTimer148000: + npctalk "Therefore thy kinsmen are no let to me."; + end; +OnTimer152000: + npctalk "Alack, there lies more peril in thine eye"; + end; +OnTimer154000: + npctalk "Than twenty of their swords: look thou but sweet,"; + end; +OnTimer156000: + npctalk "And I am proof against their enmity."; + end; +OnTimer160000: + npctalk "I have nights cloak to hide me from their sight;"; + end; +OnTimer162000: + npctalk "And but thou love me, let them find me here:"; + end; +OnTimer164000: + npctalk "My life were better ended by their hate,"; + end; +OnTimer166000: + npctalk "Than death prorogued, wanting of thy love."; + end; +OnTimer170000: + npctalk "By love, who first did prompt me to inquire;"; + end; +OnTimer172000: + npctalk "He lent me counsel and I lent him eyes."; + end; +OnTimer174000: + npctalk "I am no pilot; yet, wert thou as far"; + end; +OnTimer176000: + npctalk "As that vast shore washd with the farthest sea,"; + end; +OnTimer178000: + npctalk "I would adventure for such merchandise."; + end; +OnTimer224000: + npctalk "Lady, by yonder blessed moon I swear"; + end; +OnTimer226000: + npctalk "That tips with silver all these fruit-tree tops--"; + end; +OnTimer234000: + npctalk "What shall I swear by?"; + end; +OnTimer244000: + npctalk "If my hearts dear love--"; + end; +OnTimer264000: + npctalk "O, wilt thou leave me so unsatisfied?"; + end; +OnTimer268000: + npctalk "The exchange of thy loves faithful vow for mine."; + end; +OnTimer274000: + npctalk "Wouldst thou withdraw it? for what purpose, love?"; + end; +OnTimer294000: + npctalk "O blessed, blessed night! I am afeard."; + end; +OnTimer296000: + npctalk "Being in night, all this is but a dream,"; + end; +OnTimer298000: + npctalk "Too flattering-sweet to be substantial."; + end; +OnTimer330000: + npctalk "So thrive my soul--"; + end; +OnTimer334000: + npctalk "A thousand times the worse, to want thy light."; + end; +OnTimer336000: + npctalk "Love goes toward love, as schoolboys from"; + end; +OnTimer338000: + npctalk "their books,"; + end; +OnTimer340000: + npctalk "But love from love, toward school with heavy looks."; + end; +OnTimer356000: + npctalk "It is my soul that calls upon my name:"; + end; +OnTimer358000: + npctalk "How silver-sweet sound lovers tongues by night,"; + end; +OnTimer360000: + npctalk "Like softest music to attending ears!"; + end; +OnTimer364000: + npctalk "My dear?"; + end; +OnTimer370000: + npctalk "At the hour of nine."; + end; +OnTimer376000: + npctalk "Let me stand here till thou remember it."; + end; +OnTimer382000: + npctalk "And Ill still stay, to have thee still forget,"; + end; +OnTimer384000: + npctalk "Forgetting any other home but this."; + end; +OnTimer398000: + npctalk "I would I were thy bird."; + end; +OnTimer410000: + npctalk "Sleep dwell upon thine eyes, peace in thy breast!"; + end; +OnTimer412000: + npctalk "Would I were sleep and peace, so sweet to rest!"; + end; +OnTimer414000: + npctalk "Hence will I to my ghostly fathers cell,"; + end; +OnTimer416000: + npctalk "His help to crave, and my dear hap to tell."; + end; +OnTimer538000: + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} + +ayothaya,214,279,3 script Juliet 53,{ + mes "[Juliet]"; + mes "What is the next line? "; + close; +OnTimer54000: + npctalk "Ay me!"; + end; +OnTimer72000: + npctalk "O Romeo, Romeo! wherefore art thou Romeo?"; + end; +OnTimer74000: + npctalk "Deny thy father and refuse thy name;"; + end; +OnTimer76000: + npctalk "Or, if thou wilt not, be but sworn my love,"; + end; +OnTimer78000: + npctalk "And Ill no longer be a Capulet."; + end; +OnTimer82000: + npctalk "Tis but thy name that is my enemy;"; + end; +OnTimer84000: + npctalk "Thou art thyself, though not a Montague."; + end; +OnTimer86000: + npctalk "Whats Montague? it is nor hand, nor foot,"; + end; +OnTimer88000: + npctalk "Nor arm, nor face, nor any other part"; + end; +OnTimer90000: + npctalk "Belonging to a man. O, be some other name!"; + end; +OnTimer92000: + npctalk "Whats in a name? that which we call a rose"; + end; +OnTimer94000: + npctalk "By any other name would smell as sweet;"; + end; +OnTimer96000: + npctalk "So Romeo would, were he not Romeo calld,"; + end; +OnTimer98000: + npctalk "Retain that dear perfection which he owes"; + end; +OnTimer100000: + npctalk "Without that title. Romeo, doff thy name,"; + end; +OnTimer102000: + npctalk "And for that name which is no part of thee"; + end; +OnTimer104000: + npctalk "Take all myself."; + end; +OnTimer112000: + npctalk "What man art thou that thus bescreend in night"; + end; +OnTimer114000: + npctalk "So stumblest on my counsel?"; + end; +OnTimer126000: + npctalk "My ears have not yet drunk a hundred words"; + end; +OnTimer128000: + npctalk "Of that tongues utterance, yet I know the sound:"; + end; +OnTimer130000: + npctalk "Art thou not Romeo and a Montague?"; + end; +OnTimer134000: + npctalk "How camest thou hither, tell me, and wherefore?"; + end; +OnTimer136000: + npctalk "The orchard walls are high and hard to climb,"; + end; +OnTimer138000: + npctalk "And the place death, considering who thou art,"; + end; +OnTimer140000: + npctalk "If any of my kinsmen find thee here."; + end; +OnTimer150000: + npctalk "If they do see thee, they will murder thee."; + end; +OnTimer158000: + npctalk "I would not for the world they saw thee here."; + end; +OnTimer168000: + npctalk "By whose direction foundst thou out this place?"; + end; +OnTimer180000: + npctalk "Thou knowst the mask of night is on my face,"; + end; +OnTimer182000: + npctalk "Else would a maiden blush bepaint my cheek"; + end; +OnTimer184000: + npctalk "For that which thou hast heard me speak to-night"; + end; +OnTimer186000: + npctalk "Fain would I dwell on form, fain, fain deny"; + end; +OnTimer188000: + npctalk "What I have spoke: but farewell compliment!"; + end; +OnTimer190000: + npctalk "Dost thou love me? I know thou wilt say Ay,"; + end; +OnTimer192000: + npctalk "And I will take thy word: yet if thou swearst,"; + end; +OnTimer194000: + npctalk "Thou mayst prove false; at lovers perjuries"; + end; +OnTimer196000: + npctalk "Then say, Jove laughs. O gentle Romeo,"; + end; +OnTimer198000: + npctalk "If thou dost love, pronounce it faithfully:"; + end; +OnTimer200000: + npctalk "Or if thou thinkst I am too quickly won,"; + end; +OnTimer202000: + npctalk "Ill frown and be perverse an say thee nay,"; + end; +OnTimer204000: + npctalk "So thou wilt woo; but else, not for the world."; + end; +OnTimer206000: + npctalk "In truth, fair Montague, I am too fond,"; + end; +OnTimer208000: + npctalk "And therefore thou mayst think my havior light:"; + end; +OnTimer210000: + npctalk "But trust me, gentleman, Ill prove more true"; + end; +OnTimer212000: + npctalk "Than those that have more cunning to be strange."; + end; +OnTimer214000: + npctalk "I should have been more strange, I must confess,"; + end; +OnTimer216000: + npctalk "But that thou overheardst, ere I was ware,"; + end; +OnTimer218000: + npctalk "My true loves passion: therefore pardon me,"; + end; +OnTimer220000: + npctalk "And not impute this yielding to light love,"; + end; +OnTimer222000: + npctalk "Which the dark night hath so discovered."; + end; +OnTimer228000: + npctalk "O, swear not by the moon, the inconstant moon,"; + end; +OnTimer230000: + npctalk "That monthly changes in her circled orb,"; + end; +OnTimer232000: + npctalk "Lest that thy love prove likewise variable."; + end; +OnTimer236000: + npctalk "Do not swear at all;"; + end; +OnTimer238000: + npctalk "Or, if thou wilt, swear by thy gracious self,"; + end; +OnTimer240000: + npctalk "Which is the god of my idolatry,"; + end; +OnTimer242000: + npctalk "And Ill believe thee."; + end; +OnTimer246000: + npctalk "Well, do not swear: although I joy in thee,"; + end; +OnTimer248000: + npctalk "I have no joy of this contract to-night:"; + end; +OnTimer250000: + npctalk "It is too rash, too unadvised, too sudden;"; + end; +OnTimer252000: + npctalk "Too like the lightning, which doth cease to be"; + end; +OnTimer254000: + npctalk "Ere one can say It lightens. Sweet, good night!"; + end; +OnTimer256000: + npctalk "This bud of love, by summers ripening breath,"; + end; +OnTimer258000: + npctalk "May prove a beauteous flower when next we meet."; + end; +OnTimer260000: + npctalk "Good night, good night! as sweet repose and rest"; + end; +OnTimer262000: + npctalk "Come to thy heart as that within my breast!"; + end; +OnTimer266000: + npctalk "What satisfaction canst thou have to-night?"; + end; +OnTimer270000: + npctalk "I gave thee mine before thou didst request it:"; + end; +OnTimer272000: + npctalk "And yet I would it were to give again."; + end; +OnTimer276000: + npctalk "But to be frank, and give it thee again."; + end; +OnTimer278000: + npctalk "And yet I wish but for the thing I have:"; + end; +OnTimer280000: + npctalk "My bounty is as boundless as the sea,"; + end; +OnTimer282000: + npctalk "My love as deep; the more I give to thee,"; + end; +OnTimer284000: + npctalk "The more I have, for both are infinite."; + end; +OnTimer288000: + npctalk "I hear some noise within; dear love, adieu!"; + end; +OnTimer290000: + npctalk "Anon, good nurse! Sweet Montague, be true."; + end; +OnTimer292000: + npctalk "Stay but a little, I will come again."; + end; +OnTimer302000: + npctalk "Three words, dear Romeo, and good night indeed."; + end; +OnTimer304000: + npctalk "If that thy bent of love be honourable,"; + end; +OnTimer306000: + npctalk "Thy purpose marriage, send me word to-morrow,"; + end; +OnTimer308000: + npctalk "By one that Ill procure to come to thee,"; + end; +OnTimer310000: + npctalk "Where and what time thou wilt perform the rite;"; + end; +OnTimer312000: + npctalk "And all my fortunes at thy foot Ill lay"; + end; +OnTimer314000: + npctalk "And follow thee my lord throughout the world."; + end; +OnTimer318000: + npctalk "I come, anon.--But if thou meanst not well,"; + end; +OnTimer320000: + npctalk "I do beseech thee--"; + end; +OnTimer324000: + npctalk "By and by, I come:--"; + end; +OnTimer326000: + npctalk "To cease thy suit, and leave me to my grief:"; + end; +OnTimer328000: + npctalk "To-morrow will I send."; + end; +OnTimer332000: + npctalk "A thousand times good night!"; + end; +OnTimer344000: + npctalk "Hist! Romeo, hist! O, for a falconers voice,"; + end; +OnTimer346000: + npctalk "To lure this tassel-gentle back again!"; + end; +OnTimer348000: + npctalk "Bondage is hoarse, and may not speak aloud;"; + end; +OnTimer350000: + npctalk "Else would I tear the cave where Echo lies,"; + end; +OnTimer352000: + npctalk "And make her airy tongue more hoarse than mine,"; + end; +OnTimer354000: + npctalk "With repetition of my Romeos name."; + end; +OnTimer362000: + npctalk "Romeo!"; + end; +OnTimer366000: + npctalk "At what oclock to-morrow"; + end; +OnTimer368000: + npctalk "Shall I send to thee?"; + end; +OnTimer372000: + npctalk "I will not fail: tis twenty years till then."; + end; +OnTimer374000: + npctalk "I have forgot why I did call thee back."; + end; +OnTimer378000: + npctalk "I shall forget, to have thee still stand there,"; + end; +OnTimer380000: + npctalk "Remembering how I love thy company."; + end; +OnTimer386000: + npctalk "Tis almost morning; I would have thee gone:"; + end; +OnTimer388000: + npctalk "And yet no further than a wantons bird;"; + end; +OnTimer390000: + npctalk "Who lets it hop a little from her hand,"; + end; +OnTimer392000: + npctalk "Like a poor prisoner in his twisted gyves,"; + end; +OnTimer394000: + npctalk "And with a silk thread plucks it back again,"; + end; +OnTimer396000: + npctalk "So loving-jealous of his liberty."; + end; +OnTimer400000: + npctalk "Sweet, so would I:"; + end; +OnTimer402000: + npctalk "Yet I should kill thee with much cherishing."; + end; +OnTimer404000: + npctalk "Good night, good night! parting is such"; + end; +OnTimer406000: + npctalk "sweet sorrow,"; + end; +OnTimer408000: + npctalk "That I shall say good night till it be morrow."; + end; +OnTimer538000: + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} diff --git a/npc/custom/healer.txt b/npc/custom/healer.txt index 34f5b6a39..9b1bacfbe 100644 --- a/npc/custom/healer.txt +++ b/npc/custom/healer.txt @@ -1,49 +1,49 @@ -//===== rAthena Script ======================================= -//= Healer -//===== By: ================================================== -//= Euphy -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Basic healer script. -//============================================================ - -- script Healer -1,{ - - set .@Price,0; // Zeny required for heal - set .@Buffs,0; // Also buff players? (1: yes / 0: no) - set .@Delay,0; // Heal delay, in seconds - - if (@HD > gettimetick(2)) end; - if (.@Price) { - message strcharinfo(0),"Healing costs "+.@Price+" Zeny."; - if (Zeny < .@Price) end; - if(select("^0055FFHeal^000000:^777777Cancel^000000")==2) close; - set Zeny, Zeny-.@Price; } - specialeffect2 313; percentheal 100,100; - if (.@Buffs) { - specialeffect2 37; sc_start SC_INCREASEAGI,240000,10; - specialeffect2 42; sc_start SC_BLESSING,240000,10; } - if (.@Delay) set @HD, gettimetick(2)+.@Delay; - if (.@Price) close; - end; -} - -alberta,185,144,5 duplicate(Healer) Healer#alb 742 -aldebaran,134,123,5 duplicate(Healer) Healer#alde 742 -amatsu,200,80,5 duplicate(Healer) Healer#ama 742 -ayothaya,155,111,5 duplicate(Healer) Healer#ayo 742 -comodo,188,162,5 duplicate(Healer) Healer#com 742 -geffen,121,61,5 duplicate(Healer) Healer#gef 742 -gonryun,164,130,5 duplicate(Healer) Healer#gon 742 -izlude,125,118,5 duplicate(Healer) Healer#izl 742 -louyang,225,103,5 duplicate(Healer) Healer#lou 742 -morocc,159,96,5 duplicate(Healer) Healer#mor 742 -niflheim,188,180,5 duplicate(Healer) Healer#nif 742 -payon,180,105,5 duplicate(Healer) Healer#pay 742 -prontera,150,184,5 duplicate(Healer) Healer#pront 742 -umbala,94,162,5 duplicate(Healer) Healer#umb 742 -xmas,149,136,5 duplicate(Healer) Healer#xmas 742 +//===== rAthena Script ======================================= +//= Healer +//===== By: ================================================== +//= Euphy +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Basic healer script. +//============================================================ + +- script Healer -1,{ + + set .@Price,0; // Zeny required for heal + set .@Buffs,0; // Also buff players? (1: yes / 0: no) + set .@Delay,0; // Heal delay, in seconds + + if (@HD > gettimetick(2)) end; + if (.@Price) { + message strcharinfo(0),"Healing costs "+.@Price+" Zeny."; + if (Zeny < .@Price) end; + if(select("^0055FFHeal^000000:^777777Cancel^000000")==2) close; + set Zeny, Zeny-.@Price; } + specialeffect2 313; percentheal 100,100; + if (.@Buffs) { + specialeffect2 37; sc_start SC_INCREASEAGI,240000,10; + specialeffect2 42; sc_start SC_BLESSING,240000,10; } + if (.@Delay) set @HD, gettimetick(2)+.@Delay; + if (.@Price) close; + end; +} + +alberta,185,144,5 duplicate(Healer) Healer#alb 742 +aldebaran,134,123,5 duplicate(Healer) Healer#alde 742 +amatsu,200,80,5 duplicate(Healer) Healer#ama 742 +ayothaya,155,111,5 duplicate(Healer) Healer#ayo 742 +comodo,188,162,5 duplicate(Healer) Healer#com 742 +geffen,121,61,5 duplicate(Healer) Healer#gef 742 +gonryun,164,130,5 duplicate(Healer) Healer#gon 742 +izlude,125,118,5 duplicate(Healer) Healer#izl 742 +louyang,225,103,5 duplicate(Healer) Healer#lou 742 +morocc,159,96,5 duplicate(Healer) Healer#mor 742 +niflheim,188,180,5 duplicate(Healer) Healer#nif 742 +payon,180,105,5 duplicate(Healer) Healer#pay 742 +prontera,150,184,5 duplicate(Healer) Healer#pront 742 +umbala,94,162,5 duplicate(Healer) Healer#umb 742 +xmas,149,136,5 duplicate(Healer) Healer#xmas 742 yuno,152,186,5 duplicate(Healer) Healer#yuno 742 \ No newline at end of file diff --git a/npc/custom/item_signer.txt b/npc/custom/item_signer.txt index 98e7cf2c8..99ea97b70 100644 --- a/npc/custom/item_signer.txt +++ b/npc/custom/item_signer.txt @@ -1,223 +1,223 @@ -//===== rAthena Script ======================================= -//= Sign Your Items -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Write you name on your rare equipment or weapon ^_- -//= Original X-Mas mini-quest(could be used as a permanent one) -//===== Additional Comments: ================================= -//= -//============================================================ - -prt_in,24,61,7 script Perchik 47,{ - mes "[Perchik]"; - if(BaseJob==Job_Novice || BaseLevel<50) { - mes "Sorry, I don't help newbies. Go kill more Porings."; - emotion e_sry; - close; - } - mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold."; - next; - menu "Tell me more...",-, "Sign my items, please",M_DO; - - mes "[Perchik]"; - mes "I can put your name on any slotless equipment or weapon."; - emotion e_ic; - next; - mes "[Perchik]"; - mes "A week ago, my BOSS told me to send away newbies. I dunno why."; - next; - mes "[Perchik]"; - mes "For my work I accept ^0000803 Gift Box^000000es (gray one)"; - mes "plus ^FF00005000z^000000 per each refine of your item."; - next; - emotion e_cry; - mes "[Perchik]"; - mes "Alas, I have 12 hungry children"; - mes "and a very angry wife."; - next; - mes "[Perchik]"; - mes "Or it was... 12 angry children"; - mes "and a very hungry wife..."; - emotion e_hmm; - close; - -M_DO: - mes "[Perchik]"; - mes "Show me your items to sign..."; -M_MENU: - next; - menu getequipname(1),M_PART1,getequipname(9),M_PART9,getequipname(10),M_PART10,getequipname(2),M_PART2,getequipname(4),M_PART4, - getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8; - - //Head Gear -M_PART1: - set @part,1; - if (getequipisequiped(1)) goto L_CHECK1; - mes "[Perchik]"; - mes "A bald head under a cheap wig... There's nothing worthy to sign."; - emotion 6; - goto M_MENU; -M_PART9: - set @part,9; - if (getequipisequiped(9)) goto L_CHECK1; - mes "[Perchik]"; - mes "Glasses... I can't see any glasses..."; - emotion 20; - goto M_MENU; -M_PART10: - set @part,10; - if (getequipisequiped(10)) goto L_CHECK1; - mes "[Perchik]"; - mes "I don't see any mask here."; - emotion 20; - goto M_MENU; - //Armor -M_PART2: - set @part,2; - if (getequipisequiped(2)) goto L_CHECK1; - mes "[Perchik]"; - mes "Your belly...? Yes, it's rather fat."; - emotion 6; - goto M_MENU; - //Left Hand -M_PART3: - set @part,3; - if (getequipisequiped(3)) goto L_CHECK1; - mes "[Perchik]"; - mes "Sign your left hand? I'm not a celebrity, you know..."; - emotion 4; - goto M_MENU; - //Right Hand -M_PART4: - set @part,4; - if (getequipisequiped(4)) goto L_CHECK1; - mes "[Perchik]"; - mes "It isn't an armor... It's a mud!!! Wash your hands more often."; - emotion 4; - goto M_MENU; - //Garment -M_PART5: - set @part,5; - if (getequipisequiped(5)) goto L_CHECK1; - mes "[Perchik]"; - mes "Look... It's empty..."; - goto M_MENU; - //Foot Gear -M_PART6: - set @part,6; - if (getequipisequiped(6)) goto L_CHECK1; - mes "[Perchik]"; - mes "Aw!! I don't like stinky feet."; - emotion 16; - goto M_MENU; - //Accessory1 -M_PART7: - set @part,7; - if (getequipisequiped(7)) goto L_CHECK1; - mes "[Perchik]"; - mes "Yep... a pocket with a huge hole..."; - emotion 20; - goto M_MENU; - //Accessory2 -M_PART8: - set @part,8; - if (getequipisequiped(8)) goto L_CHECK1; - mes "[Perchik]"; - mes "I see your fat belly..."; - emotion 20; - goto M_MENU; - -L_CHECK1: - set @ref,0; - set @id,getequipid(@part); - if(getequipisidentify(@part)) goto L_CHECK2; - mes "[Perchik]"; - mes "How could you equip such unknown item?"; - npctalk "What a sneaky cheater!"; - emotion e_wah; - close; - -L_CHECK2: - set @ref,getequiprefinerycnt(@part); - mes "[Perchik]"; - mes "You want me to sign your "+getitemname(@id)+"..."; - if(BaseJob==Job_Novice) { - mes "But you're a Novice. My BOSS told me to send such weaklings away."; - emotion e_sry; - goto M_MENU; - } - set @slot0,getequipcardid(@part,0); - set @slot1,getequipcardid(@part,1); - set @slot2,getequipcardid(@part,2); - set @slot3,getequipcardid(@part,3); - - if(@slot0==255 || @slot0==254 || @slot0<0) { - mes "Alas, this item's already signed."; - mes "I would never touch masters work."; - emotion e_hmm; - goto M_MENU; - } - if(@slot0>4000 && @slot0<5000) { - mes "A card? Here?!"; - mes "As I said before, I don't sign items with cards."; - emotion e_hmm; - goto M_MENU; - } - if(getiteminfo(@id,10)) { - mes "Sorry. I don't sign slotted items."; - emotion e_sry; - goto M_MENU; - } - getinventorylist; - for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){ - if(@inventorylist_expire[.@i] != 0) { - mes "Sorry, I don't sign rental items!"; - emotion e_hmm; - goto M_MENU; - } - } - - if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time."; - mes "Give me ^0000803 gray Gift Boxes^000000"; - if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000."; - next; - menu "Ok!",-, "Leave",M_END; - if(Zeny>=(5000*@ref) && countitem(644)>=3) { - delitem 644,3; - set Zeny,Zeny-(5000*@ref); - goto L_MAKE; - } - mes "[Perchik]"; - mes "I don't work for 'thanks'."; - emotion e_sry; - close; - -L_MAKE: - if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) { - mes "[Perchik]"; - mes "Where is... "+getitemname(@id)+"?"; - npctalk "You're a snoozy cheater!"; - logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id); - emotion e_wah; - close; - } - delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3; - - mes "[Perchik]"; - mes "Done!"; - emotion e_proud; - - getitem2 @id,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff; - close; - -M_END: - mes "[Perchik]"; - mes "See you..."; - emotion e_yawn; - close; -} +//===== rAthena Script ======================================= +//= Sign Your Items +//===== By: ================================================== +//= Lupus +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Write you name on your rare equipment or weapon ^_- +//= Original X-Mas mini-quest(could be used as a permanent one) +//===== Additional Comments: ================================= +//= +//============================================================ + +prt_in,24,61,7 script Perchik 47,{ + mes "[Perchik]"; + if(BaseJob==Job_Novice || BaseLevel<50) { + mes "Sorry, I don't help newbies. Go kill more Porings."; + emotion e_sry; + close; + } + mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold."; + next; + menu "Tell me more...",-, "Sign my items, please",M_DO; + + mes "[Perchik]"; + mes "I can put your name on any slotless equipment or weapon."; + emotion e_ic; + next; + mes "[Perchik]"; + mes "A week ago, my BOSS told me to send away newbies. I dunno why."; + next; + mes "[Perchik]"; + mes "For my work I accept ^0000803 Gift Box^000000es (gray one)"; + mes "plus ^FF00005000z^000000 per each refine of your item."; + next; + emotion e_cry; + mes "[Perchik]"; + mes "Alas, I have 12 hungry children"; + mes "and a very angry wife."; + next; + mes "[Perchik]"; + mes "Or it was... 12 angry children"; + mes "and a very hungry wife..."; + emotion e_hmm; + close; + +M_DO: + mes "[Perchik]"; + mes "Show me your items to sign..."; +M_MENU: + next; + menu getequipname(1),M_PART1,getequipname(9),M_PART9,getequipname(10),M_PART10,getequipname(2),M_PART2,getequipname(4),M_PART4, + getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8; + + //Head Gear +M_PART1: + set @part,1; + if (getequipisequiped(1)) goto L_CHECK1; + mes "[Perchik]"; + mes "A bald head under a cheap wig... There's nothing worthy to sign."; + emotion 6; + goto M_MENU; +M_PART9: + set @part,9; + if (getequipisequiped(9)) goto L_CHECK1; + mes "[Perchik]"; + mes "Glasses... I can't see any glasses..."; + emotion 20; + goto M_MENU; +M_PART10: + set @part,10; + if (getequipisequiped(10)) goto L_CHECK1; + mes "[Perchik]"; + mes "I don't see any mask here."; + emotion 20; + goto M_MENU; + //Armor +M_PART2: + set @part,2; + if (getequipisequiped(2)) goto L_CHECK1; + mes "[Perchik]"; + mes "Your belly...? Yes, it's rather fat."; + emotion 6; + goto M_MENU; + //Left Hand +M_PART3: + set @part,3; + if (getequipisequiped(3)) goto L_CHECK1; + mes "[Perchik]"; + mes "Sign your left hand? I'm not a celebrity, you know..."; + emotion 4; + goto M_MENU; + //Right Hand +M_PART4: + set @part,4; + if (getequipisequiped(4)) goto L_CHECK1; + mes "[Perchik]"; + mes "It isn't an armor... It's a mud!!! Wash your hands more often."; + emotion 4; + goto M_MENU; + //Garment +M_PART5: + set @part,5; + if (getequipisequiped(5)) goto L_CHECK1; + mes "[Perchik]"; + mes "Look... It's empty..."; + goto M_MENU; + //Foot Gear +M_PART6: + set @part,6; + if (getequipisequiped(6)) goto L_CHECK1; + mes "[Perchik]"; + mes "Aw!! I don't like stinky feet."; + emotion 16; + goto M_MENU; + //Accessory1 +M_PART7: + set @part,7; + if (getequipisequiped(7)) goto L_CHECK1; + mes "[Perchik]"; + mes "Yep... a pocket with a huge hole..."; + emotion 20; + goto M_MENU; + //Accessory2 +M_PART8: + set @part,8; + if (getequipisequiped(8)) goto L_CHECK1; + mes "[Perchik]"; + mes "I see your fat belly..."; + emotion 20; + goto M_MENU; + +L_CHECK1: + set @ref,0; + set @id,getequipid(@part); + if(getequipisidentify(@part)) goto L_CHECK2; + mes "[Perchik]"; + mes "How could you equip such unknown item?"; + npctalk "What a sneaky cheater!"; + emotion e_wah; + close; + +L_CHECK2: + set @ref,getequiprefinerycnt(@part); + mes "[Perchik]"; + mes "You want me to sign your "+getitemname(@id)+"..."; + if(BaseJob==Job_Novice) { + mes "But you're a Novice. My BOSS told me to send such weaklings away."; + emotion e_sry; + goto M_MENU; + } + set @slot0,getequipcardid(@part,0); + set @slot1,getequipcardid(@part,1); + set @slot2,getequipcardid(@part,2); + set @slot3,getequipcardid(@part,3); + + if(@slot0==255 || @slot0==254 || @slot0<0) { + mes "Alas, this item's already signed."; + mes "I would never touch masters work."; + emotion e_hmm; + goto M_MENU; + } + if(@slot0>4000 && @slot0<5000) { + mes "A card? Here?!"; + mes "As I said before, I don't sign items with cards."; + emotion e_hmm; + goto M_MENU; + } + if(getiteminfo(@id,10)) { + mes "Sorry. I don't sign slotted items."; + emotion e_sry; + goto M_MENU; + } + getinventorylist; + for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){ + if(@inventorylist_expire[.@i] != 0) { + mes "Sorry, I don't sign rental items!"; + emotion e_hmm; + goto M_MENU; + } + } + + if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time."; + mes "Give me ^0000803 gray Gift Boxes^000000"; + if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000."; + next; + menu "Ok!",-, "Leave",M_END; + if(Zeny>=(5000*@ref) && countitem(644)>=3) { + delitem 644,3; + set Zeny,Zeny-(5000*@ref); + goto L_MAKE; + } + mes "[Perchik]"; + mes "I don't work for 'thanks'."; + emotion e_sry; + close; + +L_MAKE: + if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) { + mes "[Perchik]"; + mes "Where is... "+getitemname(@id)+"?"; + npctalk "You're a snoozy cheater!"; + logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id); + emotion e_wah; + close; + } + delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3; + + mes "[Perchik]"; + mes "Done!"; + emotion e_proud; + + getitem2 @id,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff; + close; + +M_END: + mes "[Perchik]"; + mes "See you..."; + emotion e_yawn; + close; +} diff --git a/npc/custom/itemmall.txt b/npc/custom/itemmall.txt index 43ecadfc6..bbc20420d 100644 --- a/npc/custom/itemmall.txt +++ b/npc/custom/itemmall.txt @@ -1,44 +1,44 @@ -//===== rAthena Script ======================================= -//= Shop Street -//===== By: ================================================== -//= Masao -//===== Current Version: ===================================== -//= 1.0 [Masao] -//===== Compatible With: ===================================== -//= Any rA SVN -//===== Description: ========================================= -//= A Shopstreet in Prontera where players can buy some Equipment. -//============================================================ - -prontera,147,240,5 shop Armor 99,2304:10000,2306:20000,2308:20000,2310:50000,2311:50000,2313:50000,2315:75000,2317:100000,2322:20000,2326:60000,2331:75000,2342:100000,2353:75000,2364:150000,2367:100000,2399:50000 -prontera,147,242,5 shop Shield 99,2102:10000,2106:60000,2108:60000,2110:85000,2114:30000,2116:30000,2123:50000,2124:50000 -prontera,147,244,5 shop Footgear 99,2404:10000,2406:20000,2409:30000,2412:50000,2417:50000,2418:50000,2424:50000,2425:20000 -prontera,147,246,5 shop Mace 99,1502:10000,1505:20000,1511:20000,1514:-1,1517:-1,1520:50000,1522:100000,1523:25000,1528:50000,1529:50000,1531:50000 -prontera,147,248,5 shop Knuckle 494,1802:20000,1804:50000,1806:60000,1808:75000,1810:70000,1812:60000,1813:100000,1814:100000,1822:150000 -prontera,147,250,5 shop Whips 494,1951:10000,1953:20000,1955:30000,1962:20000,1963:50000,1972:10000,1974:10000,1976:50000 -prontera,147,252,5 shop Instruments 494,1902:10000,1904:20000,1906:-1,1908:50000,1913:50000,1914:50000,1915:50000,1916:50000,1917:50000 -prontera,147,254,5 shop Books 494,1550:30000,1551:60000,1552:51000,1559:25000,1561:75000,1564:25000,1568:70000,1569:70000,1570:70000,1571:70000,1572:50000 -prontera,147,256,5 shop Guns 497,13103:60000,13105:100000,13106:200000,13101:10000,13150:6000,13152:30000,13153:50000,13155:60000,13156:100000,13154:30000,13159:250000,13157:150000,13161:300000,13162:500000 -prontera,147,258,5 shop Fuuma Shuriken 497,7522:500,7521:500,7523:500 -prontera,147,260,5 shop One-Handed Swords 497,1108:10000,1117:10000,1120:100000,1124:50000,1130:100000,1131:50000,1133:50000,1138:200000,1139:200000,1145:-1,1149:50000 -prontera,147,262,5 shop Two-Handed Swords 497,1155:50000,1158:90000,1163:120000,1164:50000,1165:50000,1166:75000,1168:50000,1169:500000,1172:200000,1175:75000 -prontera,147,264,5 shop Spears 731,1405:20000,1408:50000,1415:100000,1417:75000,1421:75000,1422:25000 -prontera,147,238,1 shop Dagger 731,1208:20000,1211:20000,1217:20000,1223:50000,1231:75000,1235:75000,1236:75000,1237:75000 -prontera,164,264,4 shop Axes 731,1302:10000,1306:20000,1307:45000,1309:75000,1352:20000,1355:30000,1358:75000,1363:50000,1364:50000,1365:50000,1366:50000,1371:100000 -prontera,164,262,4 shop Accessories 731,2621:-1,2622:-1,2624:30000,2618:10000,2625:30000,2626:30000,2674:10000,2648:50000,2649:50000,2627:-1,2701:75000 -prontera,164,260,4 shop Bows 731,1702:20000,1705:50000,1708:20000,1720:50000,1723:75000,1724:75000,1725:75000 -prontera,164,258,4 shop Staffs / Rods 731,1602:20000,1605:20000,1608:20000,1611:45000,1618:85000,1620:85000,1622:50000,1624:50000,1625:50000,1626:50000 -prontera,164,256,4 shop Garments 405,2504:10000,2506:40000,2507:82000,2508:56000,2514:50000,2518:60000,2519:60000,2528:85000,2531:10000,2553:10000 -prontera,164,254,4 shop Katars 405,1251:50000,1253:100000,1255:75000,1261:125000,1262:20000,1263:20000,1265:100000,1275:100000,1276:100000,1277:100000,1278:100000 -prontera,164,252,4 shop Lower Headgear 405,2218:10000,5054:30000,2267:5000,5107:100000,2265:5000,2266:50000,2269:50000,2270:50000 -prontera,164,250,4 shop Middle Headgear 405,2201:5000,2203:4000,2205:3500,2212:5000,2225:10000,2229:50000,2231:50000,2234:50000,2235:50000,2281:25000,2292:50000,2296:50000 -prontera,164,248,4 shop Upper Headgear 405,2210:1000,2211:1000,2213:10000,2214:20000,2217:10000,2221:5000,2223:10000,2246:75000,2256:75000,2264:100000,2280:20000,2299:30000 -prontera,164,246,4 shop Headgear 01 832,5380:40000,5382:40000,2269:5000,2270:5000,5107:15000,5110:15000,2247:30000:5206:10000,2245:30000,2286:35000,2296:15000,2258:45000,5161:200000,5104:40000,2295:20000,5026:30000,5032:100000,5038:30000,5229:65000,5227:65000,5228:65000,5198:50000,5058:300000,5253:80000,5252:60000,5296:100000,5231:300000,5232:300000,5233:300000,5230:300000,5234:300000,5076:50000 -prontera,164,244,4 shop Headgear 02 832,5059:100000,5235:75000,5236:75000,5237:75000,5293:150000,5303:35000,5304:65000,5312:65000,5315:45000,5317:45000,5319:75000,5320:120000,5323:588888,5336:50000,5337:50000,5338:50000,5339:50000,5346:50000 -prontera,164,242,4 shop Headgear 03 832,5181:300000,5102:500000,5016:75000,5349:150000,5013:700000,5022:500000,5171:1250000,5135:500000,5029:50000,5033:65000,5040:100000,5047:35000,5065:65000,5068:50000,5074:50000,5084:75000,5086:150000,5108:350000,5121:100000,5133:50000,5137:100000,5138:150000,5140:55000,5146:75000,5151:75000,5152:150000,5170:150000,5173:75000,5174:75000,5175:75000,5184:50000,5185:45000,5187:75000,5188:50000,5191:25000,5192:25000,5193:25000,5194:25000,5195:25000,5196:25000,5197:25000 -prontera,164,240,4 shop Headgear 04 832,5200:75000,5205:100000,5211:75000,5226:50000,5238:75000,5239:75000,5240:75000,5241:75000,5242:75000,5243:50000,5325:75000,5254:100000,5255:65000,5257:50000,5297:100000,2202:45000,5258:35000,5298:50000,5276:50000,5273:50000,5275:50000,5274:50000,5259:50000,5271:250000,5272:50000,5284:50000,5286:75000,5288:50000,5289:50000,5291:55000,5292:55000,5294:55000,5352:50000,5324:100000,5359:50000,5360:50000 -prontera,164,238,4 shop Headgear 05 832,5340:50000,5341:50000,5342:50000,5343:50000,5344:50000,5345:50000,5354:50000,5355:50000,5361:65000,5365:50000,5373:75000,5374:350000,5379:50000,5383:60000,5384:88888,5390:88888,5388:50000,5411:50000,5393:75000,5397:35000,5399:50000,5800:175000,5801:300000,5802:150000 -prontera,151,284,4 shop Ammunition 880,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50 -prontera,153,284,4 shop Alchemist Dealer 880,715:600,716:600,717:600,1025:200,7136:500,7135:500,7136:500,7137:500,7138:500,7139:500 -prontera,155,284,4 shop Street Dealer 880,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650 +//===== rAthena Script ======================================= +//= Shop Street +//===== By: ================================================== +//= Masao +//===== Current Version: ===================================== +//= 1.0 [Masao] +//===== Compatible With: ===================================== +//= Any rA SVN +//===== Description: ========================================= +//= A Shopstreet in Prontera where players can buy some Equipment. +//============================================================ + +prontera,147,240,5 shop Armor 99,2304:10000,2306:20000,2308:20000,2310:50000,2311:50000,2313:50000,2315:75000,2317:100000,2322:20000,2326:60000,2331:75000,2342:100000,2353:75000,2364:150000,2367:100000,2399:50000 +prontera,147,242,5 shop Shield 99,2102:10000,2106:60000,2108:60000,2110:85000,2114:30000,2116:30000,2123:50000,2124:50000 +prontera,147,244,5 shop Footgear 99,2404:10000,2406:20000,2409:30000,2412:50000,2417:50000,2418:50000,2424:50000,2425:20000 +prontera,147,246,5 shop Mace 99,1502:10000,1505:20000,1511:20000,1514:-1,1517:-1,1520:50000,1522:100000,1523:25000,1528:50000,1529:50000,1531:50000 +prontera,147,248,5 shop Knuckle 494,1802:20000,1804:50000,1806:60000,1808:75000,1810:70000,1812:60000,1813:100000,1814:100000,1822:150000 +prontera,147,250,5 shop Whips 494,1951:10000,1953:20000,1955:30000,1962:20000,1963:50000,1972:10000,1974:10000,1976:50000 +prontera,147,252,5 shop Instruments 494,1902:10000,1904:20000,1906:-1,1908:50000,1913:50000,1914:50000,1915:50000,1916:50000,1917:50000 +prontera,147,254,5 shop Books 494,1550:30000,1551:60000,1552:51000,1559:25000,1561:75000,1564:25000,1568:70000,1569:70000,1570:70000,1571:70000,1572:50000 +prontera,147,256,5 shop Guns 497,13103:60000,13105:100000,13106:200000,13101:10000,13150:6000,13152:30000,13153:50000,13155:60000,13156:100000,13154:30000,13159:250000,13157:150000,13161:300000,13162:500000 +prontera,147,258,5 shop Fuuma Shuriken 497,7522:500,7521:500,7523:500 +prontera,147,260,5 shop One-Handed Swords 497,1108:10000,1117:10000,1120:100000,1124:50000,1130:100000,1131:50000,1133:50000,1138:200000,1139:200000,1145:-1,1149:50000 +prontera,147,262,5 shop Two-Handed Swords 497,1155:50000,1158:90000,1163:120000,1164:50000,1165:50000,1166:75000,1168:50000,1169:500000,1172:200000,1175:75000 +prontera,147,264,5 shop Spears 731,1405:20000,1408:50000,1415:100000,1417:75000,1421:75000,1422:25000 +prontera,147,238,1 shop Dagger 731,1208:20000,1211:20000,1217:20000,1223:50000,1231:75000,1235:75000,1236:75000,1237:75000 +prontera,164,264,4 shop Axes 731,1302:10000,1306:20000,1307:45000,1309:75000,1352:20000,1355:30000,1358:75000,1363:50000,1364:50000,1365:50000,1366:50000,1371:100000 +prontera,164,262,4 shop Accessories 731,2621:-1,2622:-1,2624:30000,2618:10000,2625:30000,2626:30000,2674:10000,2648:50000,2649:50000,2627:-1,2701:75000 +prontera,164,260,4 shop Bows 731,1702:20000,1705:50000,1708:20000,1720:50000,1723:75000,1724:75000,1725:75000 +prontera,164,258,4 shop Staffs / Rods 731,1602:20000,1605:20000,1608:20000,1611:45000,1618:85000,1620:85000,1622:50000,1624:50000,1625:50000,1626:50000 +prontera,164,256,4 shop Garments 405,2504:10000,2506:40000,2507:82000,2508:56000,2514:50000,2518:60000,2519:60000,2528:85000,2531:10000,2553:10000 +prontera,164,254,4 shop Katars 405,1251:50000,1253:100000,1255:75000,1261:125000,1262:20000,1263:20000,1265:100000,1275:100000,1276:100000,1277:100000,1278:100000 +prontera,164,252,4 shop Lower Headgear 405,2218:10000,5054:30000,2267:5000,5107:100000,2265:5000,2266:50000,2269:50000,2270:50000 +prontera,164,250,4 shop Middle Headgear 405,2201:5000,2203:4000,2205:3500,2212:5000,2225:10000,2229:50000,2231:50000,2234:50000,2235:50000,2281:25000,2292:50000,2296:50000 +prontera,164,248,4 shop Upper Headgear 405,2210:1000,2211:1000,2213:10000,2214:20000,2217:10000,2221:5000,2223:10000,2246:75000,2256:75000,2264:100000,2280:20000,2299:30000 +prontera,164,246,4 shop Headgear 01 832,5380:40000,5382:40000,2269:5000,2270:5000,5107:15000,5110:15000,2247:30000:5206:10000,2245:30000,2286:35000,2296:15000,2258:45000,5161:200000,5104:40000,2295:20000,5026:30000,5032:100000,5038:30000,5229:65000,5227:65000,5228:65000,5198:50000,5058:300000,5253:80000,5252:60000,5296:100000,5231:300000,5232:300000,5233:300000,5230:300000,5234:300000,5076:50000 +prontera,164,244,4 shop Headgear 02 832,5059:100000,5235:75000,5236:75000,5237:75000,5293:150000,5303:35000,5304:65000,5312:65000,5315:45000,5317:45000,5319:75000,5320:120000,5323:588888,5336:50000,5337:50000,5338:50000,5339:50000,5346:50000 +prontera,164,242,4 shop Headgear 03 832,5181:300000,5102:500000,5016:75000,5349:150000,5013:700000,5022:500000,5171:1250000,5135:500000,5029:50000,5033:65000,5040:100000,5047:35000,5065:65000,5068:50000,5074:50000,5084:75000,5086:150000,5108:350000,5121:100000,5133:50000,5137:100000,5138:150000,5140:55000,5146:75000,5151:75000,5152:150000,5170:150000,5173:75000,5174:75000,5175:75000,5184:50000,5185:45000,5187:75000,5188:50000,5191:25000,5192:25000,5193:25000,5194:25000,5195:25000,5196:25000,5197:25000 +prontera,164,240,4 shop Headgear 04 832,5200:75000,5205:100000,5211:75000,5226:50000,5238:75000,5239:75000,5240:75000,5241:75000,5242:75000,5243:50000,5325:75000,5254:100000,5255:65000,5257:50000,5297:100000,2202:45000,5258:35000,5298:50000,5276:50000,5273:50000,5275:50000,5274:50000,5259:50000,5271:250000,5272:50000,5284:50000,5286:75000,5288:50000,5289:50000,5291:55000,5292:55000,5294:55000,5352:50000,5324:100000,5359:50000,5360:50000 +prontera,164,238,4 shop Headgear 05 832,5340:50000,5341:50000,5342:50000,5343:50000,5344:50000,5345:50000,5354:50000,5355:50000,5361:65000,5365:50000,5373:75000,5374:350000,5379:50000,5383:60000,5384:88888,5390:88888,5388:50000,5411:50000,5393:75000,5397:35000,5399:50000,5800:175000,5801:300000,5802:150000 +prontera,151,284,4 shop Ammunition 880,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50 +prontera,153,284,4 shop Alchemist Dealer 880,715:600,716:600,717:600,1025:200,7136:500,7135:500,7136:500,7137:500,7138:500,7139:500 +prontera,155,284,4 shop Street Dealer 880,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650 prontera,157,284,4 shop Sheepy Gonzales 895,12028:1000,12262:500,12016:750 \ No newline at end of file diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index fca6747a8..e11fa50c2 100644 --- a/npc/custom/jobmaster.txt +++ b/npc/custom/jobmaster.txt @@ -1,319 +1,319 @@ -//===== rAthena Script ======================================= -//= Job Master -//===== By: ================================================== -//= rAthena Dev Team [Ori:LunatikBunnie] -//===== Current Version: ===================================== -//= 1.7 -//===== Compatible With: ===================================== -//= rAthena SVN; 15624+ -//===== Description: ========================================= -//= Changes your job without asking too much -//= For other info, please contact me at Lunatikbunnie@gmail.com -//= Editted menu to avoid button mashing. -//= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus] -//= script leaves grabage variable: 'lastJob' -//= 1.4 Added NJ/GS, changed all job numbers to Job_* constants. -//= All credits go to pxxx [Skotlex] -//= 1.5 Rewrite everything from scratch. [Lance] -//= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus] -//= 1.6 Added support for both branches of 3rd classes, -//= unified response order, fixed minor quirk. -//= 1.7 Corrected typo on EAJ_THIRD to EAJL_THIRD and fixed job -//= level requirement to change to 3rd. [Rytech] -//===== TODO: ================================================ -//= Add baby 3rd classes -//= Could be restructured some more using eajobs -//============================================================ - -prontera,153,193,6 script Job Master 123,{ - mes "^ff0000[Job Master]^000000"; - if(Class >= Job_Rune_Knight) goto L_noReq; - - if(SkillPoint != 0) - { - mes "I'm sorry, please use up all your skill points before changing jobs"; - mes "Please come again soon!"; - close; - } - - if(JobLevel < 10) goto L_LvError; - - switch(Class){ - case Job_Novice_High: - case Job_Baby: - case Job_Novice: - skill 142,1,0; - skill 143,1,0; - mes "Welcome, please select the job you wish to change into"; - if(lastJob != 0 && Class == Job_Novice_High){ - switch(lastJob){ - case Job_Knight: - case Job_Crusader: - set @target_job, Job_Swordman_High; - break; - case Job_Monk: - case Job_Priest: - set @target_job, Job_Acolyte_High; - break; - case Job_Alchemist: - case Job_Blacksmith: - set @target_job, Job_Merchant_High; - break; - case Job_Rogue: - case Job_Assassin: - set @target_job, Job_Thief_High; - break; - case Job_Wizard: - case Job_Sage: - set @target_job, Job_Mage_High; - break; - case Job_Hunter: - case Job_Bard: - case Job_Dancer: - set @target_job, Job_Archer_High; - break; - } - } else { - switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", - "Super Novice","Taekwon","Gunslinger","Ninja")){ - case 7: - if(Class == Job_Novice_High) goto L_noReq; - if($@JC_SupNovM > BaseLevel) goto L_BvError; - if(Upper == 2) - set @target_job, Job_Super_Baby; - else - set @target_job, Job_SuperNovice; - break; - case 8: - if(Class == Job_Novice_High) goto L_noReq; - if(Upper == 2) goto L_noReq; - set @target_job, Job_Taekwon; - break; - case 9: - case 10: - if(Class == Job_Novice_High || Upper == 2) goto L_noReq; - set @target_job, @menu + 15; - break; - default: - set @target_job, @menu; - if(Class == Job_Novice_High) set @target_job, @target_job + 4001; - break; - } - } - mes "Are you sure you want to change to " + JobName(@target_job) + "?"; - if(select("Yes","No") == 1){ - callfunc "Job_Change", @target_job; - if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { - callfunc "F_ClearJobVar"; - } else { - if($@JC_Plat) goto L_GivePlat; - } - } - close; - break; - default: - if(JobLevel < $@JC_MinimumJB) goto L_LvError; - deletearray @job_opt, getarraysize(@job_opt); - if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ - if(lastJob != 0 && Class >= Job_Swordman_High){ // lastJob could have been set before changing back to non-trans - set @target_job, lastJob + 4001; - } else { - switch(Class){ - case Job_Swordman_High: - case Job_Baby_Swordman: - case Job_Swordman: - set @job_opt[0], Job_Knight; - set @job_opt[1], Job_Crusader; - break; - case Job_Mage_High: - case Job_Baby_Mage: - case Job_Mage: - set @job_opt[0], Job_Wizard; - set @job_opt[1], Job_Sage; - break; - case Job_Archer_High: - case Job_Baby_Archer: - case Job_Archer: - set @job_opt[0], Job_Hunter; - if(Sex == 0) - set @job_opt[1], Job_Dancer; - else - set @job_opt[1], Job_Bard; - break; - case Job_Acolyte_High: - case Job_Baby_Acolyte: - case Job_Acolyte: - set @job_opt[0], Job_Priest; - set @job_opt[1], Job_Monk; - break; - case Job_Merchant_High: - case Job_Baby_Merchant: - case Job_Merchant: - set @job_opt[0], Job_Blacksmith; - set @job_opt[1], Job_Alchemist; - break; - case Job_Thief_High: - case Job_Baby_Thief: - case Job_Thief: - set @job_opt[0], Job_Assassin; - set @job_opt[1], Job_Rogue; - break; - default: - set @job_opt[0], Job_Star_Gladiator; - set @job_opt[1], Job_Soul_Linker; - break; - } - mes "Welcome, please select the job you wish to change into"; - set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; - if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; - } - mes "Are you sure you want to change to " + JobName(@target_job) + "?"; - if(select("Yes","No")==1){ - callfunc "Job_Change", @target_job; - if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { - callfunc "F_ClearJobVar"; - } else { - if($@JC_Plat) goto L_GivePlat; - } - } - close; - } - - if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; - if(checkfalcon() || checkcart() || checkriding()) goto L_remove; - - if((Class >= Job_Knight) && (Class <= Job_Crusader2)){ - if (.thirdclass==1) { - mes "Would you like to be reborn or change to 3rd class?"; - switch(select("I want to be reborn!", "I want to change to 3rd class!", "Cancel")) - { - case 1: - mes "Are you sure you want to be reborn?"; - if(select("Yes", "No")==1){ - set lastJob, Class; - if(Class == Job_Knight2){ - set lastJob, Job_Knight; - } else { - if(Class == Job_Crusader2){ - set lastJob, Job_Crusader; - } - } - jobchange Job_Novice_High; - resetlvl(1); - skill 142,1,0; - skill 143,1,0; - } - break; - case 2: - goto L_Third; - } - close; - } - else { - mes "Are you sure you want to be reborn?"; - if(select("Yes", "No")==1){ - set lastJob, Class; - if(Class == Job_Knight2){ - set lastJob, Job_Knight; - } else { - if(Class == Job_Crusader2){ - set lastJob, Job_Crusader; - } - } - jobchange Job_Novice_High; - resetlvl(1); - skill 142,1,0; - skill 143,1,0; - } - } - } - if (Class >= Job_Lord_Knight && Class <= Job_Paladin2 && .thirdclass == 1) - { - if(JobLevel < 50) goto L_cantCh; - goto L_Third; - } - } - mes "I'm sorry, there are no further classes for your job."; - close; - -L_Third: - set @target_job, roclass(eaclass() | EAJL_THIRD); - mes "Are you sure you want to change to " + JobName(@target_job) + "?"; - if(select("Yes", "No")==1){ - callfunc "Job_Change", @target_job; - } - close; -L_GivePlat: - if (BaseClass==Job_SuperNovice) goto L_sSuperN; - if (BaseClass==Job_Swordman) goto L_sSword; - if (BaseClass==Job_Mage) goto L_sMage; - if (BaseClass==Job_Archer) goto L_sArcher; - if (BaseClass==Job_Acolyte) goto L_sAcolyte; - if (BaseClass==Job_Merchant) goto L_sMerchant; - if (BaseClass==Job_Thief) goto L_sThief; - close; -L_sSuperN: - skill 142,1,0; - close; -L_sSword: - skill 142,1,0; - skill 144,1,0; - skill 145,1,0; - skill 146,1,0; - close; -L_sMage: - skill 142,1,0; - skill 157,1,0; - close; -L_sArcher: - skill 142,1,0; - skill 147,1,0; - skill 148,1,0; - close; -L_sAcolyte: - skill 142,1,0; - skill 156,1,0; - close; -L_sMerchant: - skill 142,1,0; - skill 153,1,0; - skill 154,1,0; - skill 155,1,0; - close; -L_sThief: - skill 142,1,0; - skill 149,1,0; - skill 150,1,0; - skill 151,1,0; - skill 152,1,0; - close; - -L_cantCh: - mes "I'm sorry, you do not meet the requirements to change"; - mes "Please come again soon!"; - close; -L_LvError: - mes "I'm sorry, you do not seem to have enough Job Levels"; - mes "Please come again soon!"; - close; -L_BvError: - mes "I'm sorry, you do not seem to have enough Base Levels"; - mes "Please come again soon!"; - close; -L_noReq: - mes "I'm sorry, you do not meet the requirements to change"; - mes "Please come again soon!"; - close; -L_remove: - mes "Please remove your cart,falcon or peco"; - mes "Please come again soon!"; - close; - -OnInit: - // Variable Setup - set $@JC_MinimumJB, 40; //Minimum job level for changing to 2nd classes (Default : 40) - set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes) - set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45) - set .thirdclass, 1; // Allow players to change into third class? - end; -} +//===== rAthena Script ======================================= +//= Job Master +//===== By: ================================================== +//= rAthena Dev Team [Ori:LunatikBunnie] +//===== Current Version: ===================================== +//= 1.7 +//===== Compatible With: ===================================== +//= rAthena SVN; 15624+ +//===== Description: ========================================= +//= Changes your job without asking too much +//= For other info, please contact me at Lunatikbunnie@gmail.com +//= Editted menu to avoid button mashing. +//= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus] +//= script leaves grabage variable: 'lastJob' +//= 1.4 Added NJ/GS, changed all job numbers to Job_* constants. +//= All credits go to pxxx [Skotlex] +//= 1.5 Rewrite everything from scratch. [Lance] +//= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus] +//= 1.6 Added support for both branches of 3rd classes, +//= unified response order, fixed minor quirk. +//= 1.7 Corrected typo on EAJ_THIRD to EAJL_THIRD and fixed job +//= level requirement to change to 3rd. [Rytech] +//===== TODO: ================================================ +//= Add baby 3rd classes +//= Could be restructured some more using eajobs +//============================================================ + +prontera,153,193,6 script Job Master 123,{ + mes "^ff0000[Job Master]^000000"; + if(Class >= Job_Rune_Knight) goto L_noReq; + + if(SkillPoint != 0) + { + mes "I'm sorry, please use up all your skill points before changing jobs"; + mes "Please come again soon!"; + close; + } + + if(JobLevel < 10) goto L_LvError; + + switch(Class){ + case Job_Novice_High: + case Job_Baby: + case Job_Novice: + skill 142,1,0; + skill 143,1,0; + mes "Welcome, please select the job you wish to change into"; + if(lastJob != 0 && Class == Job_Novice_High){ + switch(lastJob){ + case Job_Knight: + case Job_Crusader: + set @target_job, Job_Swordman_High; + break; + case Job_Monk: + case Job_Priest: + set @target_job, Job_Acolyte_High; + break; + case Job_Alchemist: + case Job_Blacksmith: + set @target_job, Job_Merchant_High; + break; + case Job_Rogue: + case Job_Assassin: + set @target_job, Job_Thief_High; + break; + case Job_Wizard: + case Job_Sage: + set @target_job, Job_Mage_High; + break; + case Job_Hunter: + case Job_Bard: + case Job_Dancer: + set @target_job, Job_Archer_High; + break; + } + } else { + switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", + "Super Novice","Taekwon","Gunslinger","Ninja")){ + case 7: + if(Class == Job_Novice_High) goto L_noReq; + if($@JC_SupNovM > BaseLevel) goto L_BvError; + if(Upper == 2) + set @target_job, Job_Super_Baby; + else + set @target_job, Job_SuperNovice; + break; + case 8: + if(Class == Job_Novice_High) goto L_noReq; + if(Upper == 2) goto L_noReq; + set @target_job, Job_Taekwon; + break; + case 9: + case 10: + if(Class == Job_Novice_High || Upper == 2) goto L_noReq; + set @target_job, @menu + 15; + break; + default: + set @target_job, @menu; + if(Class == Job_Novice_High) set @target_job, @target_job + 4001; + break; + } + } + mes "Are you sure you want to change to " + JobName(@target_job) + "?"; + if(select("Yes","No") == 1){ + callfunc "Job_Change", @target_job; + if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { + callfunc "F_ClearJobVar"; + } else { + if($@JC_Plat) goto L_GivePlat; + } + } + close; + break; + default: + if(JobLevel < $@JC_MinimumJB) goto L_LvError; + deletearray @job_opt, getarraysize(@job_opt); + if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ + if(lastJob != 0 && Class >= Job_Swordman_High){ // lastJob could have been set before changing back to non-trans + set @target_job, lastJob + 4001; + } else { + switch(Class){ + case Job_Swordman_High: + case Job_Baby_Swordman: + case Job_Swordman: + set @job_opt[0], Job_Knight; + set @job_opt[1], Job_Crusader; + break; + case Job_Mage_High: + case Job_Baby_Mage: + case Job_Mage: + set @job_opt[0], Job_Wizard; + set @job_opt[1], Job_Sage; + break; + case Job_Archer_High: + case Job_Baby_Archer: + case Job_Archer: + set @job_opt[0], Job_Hunter; + if(Sex == 0) + set @job_opt[1], Job_Dancer; + else + set @job_opt[1], Job_Bard; + break; + case Job_Acolyte_High: + case Job_Baby_Acolyte: + case Job_Acolyte: + set @job_opt[0], Job_Priest; + set @job_opt[1], Job_Monk; + break; + case Job_Merchant_High: + case Job_Baby_Merchant: + case Job_Merchant: + set @job_opt[0], Job_Blacksmith; + set @job_opt[1], Job_Alchemist; + break; + case Job_Thief_High: + case Job_Baby_Thief: + case Job_Thief: + set @job_opt[0], Job_Assassin; + set @job_opt[1], Job_Rogue; + break; + default: + set @job_opt[0], Job_Star_Gladiator; + set @job_opt[1], Job_Soul_Linker; + break; + } + mes "Welcome, please select the job you wish to change into"; + set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; + if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; + } + mes "Are you sure you want to change to " + JobName(@target_job) + "?"; + if(select("Yes","No")==1){ + callfunc "Job_Change", @target_job; + if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { + callfunc "F_ClearJobVar"; + } else { + if($@JC_Plat) goto L_GivePlat; + } + } + close; + } + + if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; + if(checkfalcon() || checkcart() || checkriding()) goto L_remove; + + if((Class >= Job_Knight) && (Class <= Job_Crusader2)){ + if (.thirdclass==1) { + mes "Would you like to be reborn or change to 3rd class?"; + switch(select("I want to be reborn!", "I want to change to 3rd class!", "Cancel")) + { + case 1: + mes "Are you sure you want to be reborn?"; + if(select("Yes", "No")==1){ + set lastJob, Class; + if(Class == Job_Knight2){ + set lastJob, Job_Knight; + } else { + if(Class == Job_Crusader2){ + set lastJob, Job_Crusader; + } + } + jobchange Job_Novice_High; + resetlvl(1); + skill 142,1,0; + skill 143,1,0; + } + break; + case 2: + goto L_Third; + } + close; + } + else { + mes "Are you sure you want to be reborn?"; + if(select("Yes", "No")==1){ + set lastJob, Class; + if(Class == Job_Knight2){ + set lastJob, Job_Knight; + } else { + if(Class == Job_Crusader2){ + set lastJob, Job_Crusader; + } + } + jobchange Job_Novice_High; + resetlvl(1); + skill 142,1,0; + skill 143,1,0; + } + } + } + if (Class >= Job_Lord_Knight && Class <= Job_Paladin2 && .thirdclass == 1) + { + if(JobLevel < 50) goto L_cantCh; + goto L_Third; + } + } + mes "I'm sorry, there are no further classes for your job."; + close; + +L_Third: + set @target_job, roclass(eaclass() | EAJL_THIRD); + mes "Are you sure you want to change to " + JobName(@target_job) + "?"; + if(select("Yes", "No")==1){ + callfunc "Job_Change", @target_job; + } + close; +L_GivePlat: + if (BaseClass==Job_SuperNovice) goto L_sSuperN; + if (BaseClass==Job_Swordman) goto L_sSword; + if (BaseClass==Job_Mage) goto L_sMage; + if (BaseClass==Job_Archer) goto L_sArcher; + if (BaseClass==Job_Acolyte) goto L_sAcolyte; + if (BaseClass==Job_Merchant) goto L_sMerchant; + if (BaseClass==Job_Thief) goto L_sThief; + close; +L_sSuperN: + skill 142,1,0; + close; +L_sSword: + skill 142,1,0; + skill 144,1,0; + skill 145,1,0; + skill 146,1,0; + close; +L_sMage: + skill 142,1,0; + skill 157,1,0; + close; +L_sArcher: + skill 142,1,0; + skill 147,1,0; + skill 148,1,0; + close; +L_sAcolyte: + skill 142,1,0; + skill 156,1,0; + close; +L_sMerchant: + skill 142,1,0; + skill 153,1,0; + skill 154,1,0; + skill 155,1,0; + close; +L_sThief: + skill 142,1,0; + skill 149,1,0; + skill 150,1,0; + skill 151,1,0; + skill 152,1,0; + close; + +L_cantCh: + mes "I'm sorry, you do not meet the requirements to change"; + mes "Please come again soon!"; + close; +L_LvError: + mes "I'm sorry, you do not seem to have enough Job Levels"; + mes "Please come again soon!"; + close; +L_BvError: + mes "I'm sorry, you do not seem to have enough Base Levels"; + mes "Please come again soon!"; + close; +L_noReq: + mes "I'm sorry, you do not meet the requirements to change"; + mes "Please come again soon!"; + close; +L_remove: + mes "Please remove your cart,falcon or peco"; + mes "Please come again soon!"; + close; + +OnInit: + // Variable Setup + set $@JC_MinimumJB, 40; //Minimum job level for changing to 2nd classes (Default : 40) + set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes) + set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45) + set .thirdclass, 1; // Allow players to change into third class? + end; +} diff --git a/npc/custom/quest_warper.txt b/npc/custom/quest_warper.txt index cffaebdb4..85919fa0f 100644 --- a/npc/custom/quest_warper.txt +++ b/npc/custom/quest_warper.txt @@ -1,2137 +1,2137 @@ -//===== rAthena Script ============================================ -//= Quest Warper Script -//===== By: ======================================================= -//= DZeroX, Darkchild, Neouni -//===== Current Version: ========================================== -//= 2.2 -//===== Compatible With: ========================================== -//= rAthena SVN -//===== Description: ============================================== -//= Warper that works only after locations are unlocked -//===== Additional Comments: ====================================== -//= 1.0 - NPCs created -//= 1.1 - Add Dungeons by sturm -//= 1.2 - Add All char in account unlocked by ace_killer -//= 1.3 - Add new 7 towns and 7 dungeons by escoteiro -// - Correct bug jawaii town by escoteiro -// - Remove some excessive warpras by escoteiro -//= 1.4 - Rewrite of the Warpa system [Neouni] -// - Corrected some bugs caused by autoconverting the old script -//= 1.4a - Rewrite of menu to be custom for each player [Neouni] -// - Dungeon listing rewrite -// - Town listing rewrite -// - GameMaster can Customise Main menu -//= 1.4b - Pricing round [Neouni] -// - GM menu added for pricing -// - Town Warp pricing tags added -// - Dungeon Warp pricing tags added -//= 1.5 - storage functions pricing [Neouni] -// - storage pricing added -// - kafra points setting added -// - kafra storage code security added -// - Healing scripts pricing added -// - Heal Part script added -//= 1.6 - Dungeon warp [Neouni] (beta only) -// - added option to add a extra fee for going down deeper into dungeon -// partly by rebuilding the dungeon warping into variable menu's -//= 1.6a - alot of fixes for beta release [Neouni] (public release) -// - fixed syntax problems -// - fixed missing pyramid gats in @DGat$ array -// - removed the culver level 5 that didn't exist -// and caused quite alot of problems (i didn't check while converting) -//-1.7 - Readability of Dungeon menu building increased [Neouni] -// - Thanatos Tower & Louyang Dungeon added -//-1.8 - changed around unlock variables [Neouni] -// - Moved warp variables to mark what you have unlocked to an binary array in login based permanent variable -// (warp variables are saved in login database, so all charservers have these unlocked) -// - Town Warp unlock array max 21/(unknown max) items used instead of max account #variables 32 ! -// - Dungeon Warp unlock array 28/(unknown max) items used instead of max account #variables 32 ! -// - (max login ##variables = 16, i used 3) -// - old variables are cleared on next save -// - Extra Variable clear added for every character, just in case (request by Terces) -//-1.8a - Show ammount of users on map [Neouni] -// - Default = off, enable in GM menu -// - Requested by escoteiro -//-1.8b - Small typo fixed in stampcard script [Neouni] -// - Reported by escoteiro -//-1.9 - Making it more edit friendly [Neouni] -// - Made Dungeon warp arrays more readable & editable (QWS_Darray) -// - Made town warp arrays more readable & editable (QWS_Tarray) -//-2.0 - Special Warp menu added [Neouni] -// - when all towns and dungeons are collected a new option on the main menu will show -// - it will only show when you setup the mapname of the warp ! -// - requested by escoteiro -// - several bugs fixed -//-2.0a - Dungeon Level Limit & Split dungeon fees -// - Limits dungeon based on Depth, access special setup menu thru GM-Menu -// - Dungeon fees split up based on Basic , Advanced & Overseas -// - Old Dungeon fee system removed, all dungeon fees now set to 0 -//-2.0b -// - Special warpname menu option name bug fixed -//-2.1 Updated names to fall within retrictions. [L0ne_W0lf] -//-2.2 #kafra_code is now stored as is. [brianluau] -//================================================================= - -//========================Function=&=Script======================== - - -function script Q_Warpra { -// Quick hack for backwards compatibility pre 1.8 -if (##QWS_UP < 18) callfunc "QWS_BackComp"; -// Extra clear variables because marker is saved on all char servers and variables can be on multiple servers -if (QWS_ExtraVARClear < 18) callfunc "Extra_Variable_Clear"; - - mes "[Warpra]"; - mes "Hello,"; - mes "I can warp you to any town or dungeon, but you need to unlock them first."; - mes "To unlock them, you have to visit us."; - mes "What do you need?"; - - if(getarg(0) == 0) callfunc "QWS_MMarray",0; - if(getarg(0) == 1) callfunc "QWS_MMarray",1; - - set @MMenu,select(@Mmenulist$[0],@Mmenulist$[1],@Mmenulist$[2],@Mmenulist$[3],@Mmenulist$[4],@Mmenulist$[5],@Mmenulist$[6],@Mmenulist$[7],@Mmenulist$[8],@Mmenulist$[9],@Mmenulist$[10],@Mmenulist$[11]); - - switch(@Mmenuref[@MMenu-1]+1){ - case 1: - goto GM_Menu; - case 2: - warp $QW_SP_WarpMap$, $QW_SP_WarpX, $QW_SP_WarpY; - close2; - debugmes "Please check your special warp menu settings on the Warpra"; - end; - case 3: - goto L_town; - case 4: - goto L_dungeon; - case 5: - goto L_FewWarps; - case 6: - goto L_NoUnlock; - case 7: - goto L_heal_Full; - case 8: - goto L_heal_Part; - case 9: - goto L_Storage; - case 10: - goto L_GStorage; - case 11: - goto L_end; - default: - goto L_end; -} - -//=====================GM-Menu=Functions=========================== - -GM_Menu: -next; -//----------------Town-Warp - if ($QW_TW_OFF == 0) mes "Town warping = ^00FF00 On ^000000"; - if ($QW_TW_OFF == 1) mes "Town warping = ^FF0000 Off ^000000"; -//----------------Dungeon-Warp - if ($QW_DW_OFF == 0) mes "Dungeon warping = ^00FF00 On ^000000"; - if ($QW_DW_OFF == 1) mes "Dungeon warping = ^FF0000 Off ^000000"; -//----------------Dungeon-Depth-Limit - if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; - if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; - mes "If on Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; -//----------------ShowMapUsers - if ($QW_MapUserShow == 1) mes "Show Map Users = ^00FF00 On ^000000"; - if ($QW_MapUserShow == 0) mes "Show Map Users = ^FF0000 Off ^000000"; -//----------------Healfull - if ($QW_HF == 1) mes "Healing full = ^00FF00 On ^000000"; -//----------------Healpart - if ($QW_HP == 1) mes "Healing partly = ^00FF00 On ^000000"; - if (($QW_HF == 0)&&($QW_HP == 0)) mes "Healing = ^FF0000 Off ^000000"; -//----------------Storage - if ($QW_Stor == 1) mes "Storage = ^00FF00 On ^000000"; - if ($QW_Stor == 0) mes "Storage = ^FF0000 Off ^000000"; -//----------------GuildStorage - if ($QW_GStor == 1) mes "Guild Storage = ^00FF00 On ^000000"; - if ($QW_GStor == 0) mes "Guild Storage = ^FF0000 Off ^000000"; -//----------------KafraPoints - if ($QW_KPoint == 1) mes "Kafra points collect = ^00FF00 On ^000000"; - if ($QW_KPoint == 0) mes "Kafra points collect = ^FF0000 Off ^000000"; -//----------------GMmenu - switch(select("Town Warping","Dungeon Warping","Dungeon Level Limit","Show Map Users","Healing full","Healing partly","Storage","Guild Storage","Kafra points collect","Set Prices","Special Warp","Exit")) { - -// Using callsub and a small check to not make 1 part of the script set it on and the other turning it off again - -case 1: - if ($QW_TW_OFF == 0) { - set $QW_TW_OFF,1; - goto GM_Menu; - } else - set $QW_TW_OFF,0; - goto GM_Menu; -case 2: - if ($QW_DW_OFF == 0) { - set $QW_DW_OFF,1; - goto GM_Menu; - } else - set $QW_DW_OFF,0; - goto GM_Menu; -case 3: - goto DungeonLevelLimit; -case 4: - if ($QW_MapUserShow == 0) { - set $QW_MapUserShow,1; - goto GM_Menu; - } else - set $QW_MapUserShow,0; - goto GM_Menu; -case 5: - if ($QW_HF == 0) { - set $QW_HF,1; - set $QW_HP,0; - goto GM_Menu; - } else - set $QW_HF,0; - goto GM_Menu; -case 6: - if ($QW_HP == 0) { - set $QW_HP,1; - set $QW_HF,0; - goto GM_Menu; - } else - set $QW_HP,0; - goto GM_Menu; -case 7: - if ($QW_Stor == 0) { - set $QW_Stor,1; - goto GM_Menu; - } else - set $QW_Stor,0; - goto GM_Menu; -case 8: - if ($QW_GStor == 0) { - set $QW_GStor,1; - goto GM_Menu; - } else - set $QW_GStor,0; - goto GM_Menu; -case 9: - if ($QW_KPoint == 0) { - set $QW_KPoint,1; - goto GM_Menu; - } else - set $QW_KPoint,0; - goto GM_Menu; -case 10: - goto Setprice; -case 11: - goto SpecialWarpMenu; -default: - close; - end; -} - - -//======================GM-Menu=Pricing============================ - -Setprice: - if ($QW_DW_FEE != 0) set $QW_DW_FEE,0; - next; - mes "Scroll thru the list to see all the options"; -//----------------Warp-Basic-Price - if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; - if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; -//----------------Warp-Advanced-Price - if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; - if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; -//----------------Warp-Oversea-Price - if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; - if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; -//----------------Basic-Dungeon-Level-Warp-Fee - if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; - if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Advanced-Dungeon-Level-Warp-Fee - if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; - if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Overseas-Dungeon-Level-Warp-Fee - if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; - if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Heal-Full - if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; - if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; -//----------------Heal-Part - if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; - if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; - if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; - if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; -//----------------Storage - if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; - if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; - if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; -//----------------Guild-Storage - if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; - if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; - - switch(select("Basic - Warps","Advanced - Warps","Overseas - Warps","Basic Dungeon warp fee","Advanced Dungeon warp fee","Overseas Dungeon warp fee","Full Healing","Part Healing","Storage","Guild Storage","Back","Exit")) { - -case 1: - next; - if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; - if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; - mes "Basic - Warps are starter towns and related dungeons"; - input $QW_BW_PRICE; - goto Setprice; - -case 2: - next; - if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; - if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; - mes "Advanced - Warps are towns and dungeons on the same island but not close to any starter town"; - input $QW_AW_PRICE; - goto Setprice; - -case 3: - next; - if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; - if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; - mes "Overseas - Warps are towns and dungeons overseas reachable by boat from alberta"; - input $QW_OW_PRICE; - goto Setprice; - -case 4: - next; - if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; - if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Basic - Warps are starter town related dungeons"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_BW_FEE; - goto Setprice; - -case 5: - next; - if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; - if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Advanced - Warps are dungeons not close to any starter town"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_AW_FEE; - goto Setprice; - -case 6: - next; - if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; - if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Overseas - Warps are dungeons related to towns overseas reachable by boat from alberta"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_OW_FEE; - goto Setprice; - -case 7: - next; - if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; - if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; - mes "Instant full healing 1 price"; - input $QW_HF_PRICE; - goto Setprice; - -case 8: - next; - if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; - if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; - if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; - if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; - mes "Healing price per 1 HP"; - mes "Healing price per 1 SP"; - mes "2 inputs, first HP then SP"; - input $QW_HP_H_PRICE; - input $QW_HP_S_PRICE; - goto Setprice; - -case 9: - next; - if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; - if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; - if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; - mes "Storage cost, if set to 60 Kafra pricing will be handled"; - input $QW_S_PRICE; - goto Setprice; - -case 10: - next; - if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; - if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; - mes "Guild Storage, free on Guild Kafras"; - input $QW_GS_PRICE; - goto Setprice; -case 11: - goto GM_Menu; -default: - close; - end; -} - -//======================Special=Warp=Menu========================== - -SpecialWarpMenu: - if ($QW_SP_Warpname$ == "") set $QW_SP_Warpname$,"Special Warp"; - next; - mes "Scroll down to see all the information"; - mes "The Special warp menu option will show in the main menu when all towns & dungeons are unlocked"; - mes "And when the map for special warping has been set"; - mes "menu option name set to ^0000FF"+$QW_SP_Warpname$+"^000000"; - if ($QW_SP_WarpMap$ == "") mes "map is currently ^FF0000not^000000 set, and Special warp menu is off"; - if ($QW_SP_WarpMap$ != "") mes "map is currently set to ^0000FF"+$QW_SP_WarpMap$+"^000000 and Special Warp menu is on"; - mes "coords are set to ^0000FF"+$QW_SP_WarpX+","+$QW_SP_WarpY+"^000000"; - switch(select("Set Special Warp name to show in menu", "Set WarpMap","Set Coords","Go Back to GM_Menu","Exit")){ - -case 1: - next; - mes "set the name to show in the menu as option"; - input $QW_SP_Warpname$; - goto SpecialWarpMenu; -case 2: - next; - mes "set the map in the ^0000FFmapname^000000 format"; - mes "when this warpmap is set the option for players will show once they meet the requirments"; - mes "to disable Special Warp Menu option clear this !"; - input $QW_SP_WarpMap$; - goto SpecialWarpMenu; -case 3: - next; - mes "First input = Xcoord"; - mes "Second input = Ycoord"; - input $QW_SP_WarpX; - input $QW_SP_WarpY; - goto SpecialWarpMenu; -case 4: - goto GM_Menu; -default: - close; - end; -} - -//======================Dungeon=Level=Limit======================== -DungeonLevelLimit: - next; - if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; - if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; - mes "If^00FF00 On ^000000Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; - - switch(select("Toggle Dungeon Depth Limit", "Set Dungeon Depth Limit","Go Back to GM_Menu","Exit")){ - -case 1: - if ($QW_DL == 0) { - set $QW_DL,1; - goto DungeonLevelLimit; - } else - set $QW_DL,0; - goto DungeonLevelLimit; -case 2: - next; - mes "set limit of Dungeon Depth 0 = entrance"; - mes "Depth 1 is a map connected to 0 and so on"; - mes "Shortest Route to map counts as depth"; - input $QW_DDL; - goto DungeonLevelLimit; -case 3: - goto GM_Menu; -default: - close; - end; -} - -//===========================Towns================================= - -L_town: - callfunc "QWS_Tarray"; - -// Expected maximum is set to 25 items, if you add more options add more ",@Tmenulist$[xx]" - - set @TWMenu,select(@Tmenulist$[0],@Tmenulist$[1],@Tmenulist$[2],@Tmenulist$[3],@Tmenulist$[4],@Tmenulist$[5],@Tmenulist$[6],@Tmenulist$[7],@Tmenulist$[8],@Tmenulist$[9],@Tmenulist$[10],@Tmenulist$[11],@Tmenulist$[12],@Tmenulist$[13],@Tmenulist$[14],@Tmenulist$[15],@Tmenulist$[16],@Tmenulist$[17],@Tmenulist$[18],@Tmenulist$[19],@Tmenulist$[20],@Tmenulist$[21],@Tmenulist$[22],@Tmenulist$[23],@Tmenulist$[24]); - - if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex - - if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0; - - set Zeny, Zeny-@pTprice[@Tmenuref[@TWMenu-1]]; - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@pTprice[@Tmenuref[@TWMenu-1]]/16); - warp @pTmap$[@Tmenuref[@TWMenu-1]],@pTXcoords[@Tmenuref[@TWMenu-1]],@pTYcoords[@Tmenuref[@TWMenu-1]]; - close2; // this part safegaurds against errors/typos - set Zeny, Zeny+@pTprice[@Tmenuref[@TWMenu-1]]; - end; - -//=========================Dungeons================================ - -L_dungeon: - callfunc "QWS_Darray"; - -// Expected maximum is set to 35 items, if you add more options add more ",@Dmenulist$[xx]" - - set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30],@Dmenulist$[31],@Dmenulist$[32],@Dmenulist$[33],@Dmenulist$[34]); - - if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex - set @DwarpMenu, (@Dmenuref[@DWMenu-1]); - callfunc "QWS_DLarray"; - - next; - mes "[Warpra]"; - mes "Please select where you want to go"; - -// Expected maximum is set to 18 items, if you have dungeons with more levels add more ",@DWLmenulist$[xx]" - set @DWLMenu,select(@DWLmenulist$[0], @DWLmenulist$[1], @DWLmenulist$[2], @DWLmenulist$[3], @DWLmenulist$[4], @DWLmenulist$[5], @DWLmenulist$[6], @DWLmenulist$[7], @DWLmenulist$[8], @DWLmenulist$[9], @DWLmenulist$[10], @DWLmenulist$[11], @DWLmenulist$[12], @DWLmenulist$[13], @DWLmenulist$[14], @DWLmenulist$[15], @DWLmenulist$[16], @DWLmenulist$[17]); - - if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex - - set @Darrayref, @DWLmenuref[@DWLMenu-1]; - set @warpprice, @pDprice[@Dmenuref[@DWMenu-1]]+(getd(@pDfee$[@Dmenuref[@DWMenu-1]])*(@DDepth[@Darrayref])); - - if(Zeny<@warpprice) callsub L_Short_on_zeny,1; - - set Zeny, Zeny-(@warpprice); - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@warpprice/16); - warp @DGat$[@Darrayref],@DXcoords[@Darrayref],@DYcoords[@Darrayref]; - close2; // this part safegaurds against errors/typos - set Zeny, Zeny+@pTprice[@Tmenuref[@DWMenu-1]]; - end; - -//=============================Healing============================= - -L_heal_Full: - set @healfee, $QW_HF_PRICE; - if(Zeny<@healfee) callsub L_Short_on_zeny,4; - set Zeny, Zeny-@healfee; - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@healfee/500); - next; - mes "[Warpra]"; - mes "Close this window and I will Heal you."; - close2; - percentheal 100,100; - end; - -L_heal_Part: - set @healchoice,select("Full heal","Health Points only","Skill Points only","Exit"); - if (@healchoice == 1) callsub PHeal,1,1; - if (@healchoice == 2) callsub PHeal,1,0; - if (@healchoice == 3) callsub PHeal,0,1; - goto L_end; - -PHeal: - next; - set @Hp, MaxHp-Hp; - set @Sp, MaxSp-Sp; - set @HpPrice, @hp*$QW_HP_H_PRICE; - set @SpPrice, @sp*$QW_HP_S_PRICE; - mes "[Warpra]"; - if(getarg(0) == 1) mes ""+@HpPrice+" Zeny for "+@Hp+" health points"; - if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points"; - set @total, @HpPrice+@SpPrice; - mes "for a total of "+@total+" zeny"; - if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part; - - if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE; - if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE; - set @healfee, @HpPrice+@SpPrice; - if (getarg(0) == 1)&&(getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_Short_Both; - if (getarg(0) == 1)&&(Zeny<@healfee) goto Zeny_short_HP; - if (getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_short_SP; - set Zeny, Zeny-@healfee; - if (getarg(0) == 1)&&(getarg(1) == 1) percentheal 100,100; - if (getarg(0) == 1) percentheal 100,0; - if (getarg(1) == 1) percentheal 0,100; - close; - end; - -Zeny_Short_Both: - mes "[Warpra]"; - mes "choose another option, you can afford both."; - mes "I can heal as much as you can afford too."; - if (select("OK","Exit") == 2) goto L_end; - goto PHeal; - -Zeny_short_HP: - mes "[Warpra]"; - mes "do you want me to partly heal your HP ?"; - if (select("Yes","No") == 2) goto L_end; - set @Hp, Zeny/$QW_HP_H_PRICE; - set @HpPrice, @Hp*$QW_HP_H_PRICE; - if (@Hp == 1) mes "your not worth the effort"; - if (@Hp == 1) goto L_end; - set Zeny, Zeny-@HpPrice; - heal @Hp,0; - close; - end; - - -Zeny_short_SP: - mes "[Warpra]"; - mes "do you want me to partly heal your SP ?"; - if (select("Yes","No") == 2) goto L_end; - set @Sp, Zeny/$QW_HP_S_PRICE; - set @SpPrice, @Sp*$QW_HP_S_PRICE; - if (@Sp == 1) mes "your not worth the effort"; - if (@Sp == 1) goto L_end; - set Zeny, Zeny-@SpPrice; - heal 0,@Sp; - close; - end; - - -//=============================Storage============================= - -L_Storage: - next; - if(basicskillcheck() > 0 && getskilllv("NV_BASIC") < 6) goto L_StorageJBlow; - set @fee, $QW_S_PRICE; - if ($QW_S_PRICE == 60)&&(BaseJob == Job_Novice) set @fee, 30; - if ($QW_S_PRICE == 60)&&(BaseJob != Job_Novice) set @fee, 60; - if(Zeny<@fee) callsub L_Short_on_zeny,2; - set Zeny, Zeny-@fee; - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@fee/5); - - mes "[Warpra]"; - mes "Close this window and i will open your storage."; - - callsub F_CheckKafCode; //check your storage password thru kafra coding, if set - - close2; - openstorage; - end; - -F_CheckKafCode: - if(#kafra_code==0) return; - mes "Enter your storage password:"; - set @code_,0; - input @code_; - if(@code_ != #kafra_code) { - dispbottom "Wrong storage password."; - close; - } - set @kafcode_try,0; - set @code_,0; - return; - -L_StorageJBlow: - mes "[Warpra]"; - mes "I am sorry but you have to be at least Novice level 6 if you want to use the storage."; - return; - -L_GStorage: - if(@GID==0) goto L_NoGuild; - if(Zeny<$QW_GS_PRICE) callsub L_Short_on_zeny,3; - set Zeny, Zeny-$QW_GS_PRICE; - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + ($QW_GS_PRICE/5); - next; - mes "[Warpra]"; - mes "Close this window and i will open the ^5533FF" + GetGuildName(@GID) + "^000000 storage."; - close2; - guildopenstorage; - end; - -L_NoGuild: - next; - mes "[Warpra]"; - mes "You are not a part of a guild I can't help you."; - close; - end; - -L_end: - close; - end; - -//============================Few=Warp============================= -L_FewWarps: - next; - mes "[Warpra ]"; - mes "You need to unlock locations before they come available to you."; - mes "To unlock a location talk to my colleagues all over the world."; - mes "Each account got it's own stamp card."; - mes "Want me to check what stamps you have collected so far ?."; - if (select("Yes","No")==1) callsub stampcard; - close; - end; - - -//============================No=Unlock============================ - -L_NoUnlock: - next; - mes "[Warpra ]"; - mes "I don't unlock this location, my assistant deeper in the dungeon will unlock this place."; - close; - end; - -//=========================Short=On=Zeny=========================== -L_Short_on_zeny: - next; - if (getarg(0) == 0) mes "you don't seem to have "+@pTprice[@Tmenuref[@TWMenu-1]]+" zeny, to pay for the warp fee to "+@pTmenuitems$[@Tmenuref[@TWMenu-1]]+""; - if (getarg(0) == 1) mes "you don't seem to have "+@warpprice+" zeny, to pay for the warp fee to "+@DLevelName$[@DWLmenuref[@DWLMenu-1]]+" at "+@pDmenuitems$[@Dmenuref[@DWMenu-1]]+""; - if (getarg(0) == 2) mes "you don't seem to have "+@fee+" zeny, to pay for the storage fee"; - if (getarg(0) == 3) mes "you don't seem to have "+$QW_GS_PRICE+" zeny, to pay for the guild storage fee"; - if (getarg(0) == 4) mes "you don't seem to have "+@healfee+" zeny, to pay for your healing"; - close; - end; - -//===========================Stamp=Card============================ -stampcard: -// Counting of the ammount of places you have unlocked - next; - mes "Let me check what Towns you have"; - - callfunc "QWS_TownStamps"; - - mes "you collected^00FF00 "+@Tstamp+" of "+@MaxTstamp+" ^000000Towns."; - if (@Tstamp == 15) mes "They say there is an island you can only get to when married"; - if (@Tstamp == 15) emotion 18; - next; - - mes "Let me check what dungeons you have"; - - callfunc "QWS_DungeonStamps"; - - mes "you collected^00FF00 "+@Dstamp+" of "+@MaxDstamp+" ^000000Dungeons"; - mes "To unlock a dungeon, search for my colleague."; - mes "You can usually find them near the middle or end of the dungeon"; - return; -} - -function script QWS_TownStamps { - set @Tstamp,0; - set @MaxTstamp,21; //maximum number of towns - set @binvalue,1; - set @Tstamploop,0; - do { - if ((@binvalue & ##QWS_T_Unlock) == @binvalue) set @Tstamp,@Tstamp+1; - - set @binvalue, @binvalue *2; - set @Tstamploop, @Tstamploop + 1; - -}while (@Tstamploop < @MaxTstamp); -return; -} - -function script QWS_DungeonStamps { - set @Dstamp,0; - set @MaxDstamp,29; //maximum number of dungeons - set @binvalue,1; - set @Dstamploop,0; - do { - if ((@binvalue & ##QWS_D_Unlock) == @binvalue) set @Dstamp,@Dstamp+1; - - set @binvalue, @binvalue *2; - set @Dstamploop, @Dstamploop + 1; - -}while (@Dstamploop < @MaxDstamp); -return; -} - -//======================Main=Menu=Array============================ - -function script QWS_MMarray { - -// Currently 9 items - - setarray @pMmenuitems$[0], "GameMaster Menu", $QW_SP_Warpname$, "Warp to Towns", "Warp to Dungeons", "Why so few Warps ?", "Why don't you Unlock this location ?", "Heal", "Heal", "Storage", "Guild Storage", "Cancel"; - set @Mi,0; // That's our loop counter. - set @Mj,0; // That's the menu lines counter. -//----------------GameMaster-Menu - if (getgmlevel()>= 80) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if (getgmlevel()>= 80) set @Mmenuref[@Mj],@Mi; - if (getgmlevel()>= 80) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Special-Warp - callfunc "QWS_TownStamps"; - callfunc "QWS_DungeonStamps"; - if (@Tstamp == @MaxTstamp)&&(@Dstamp == @MaxDstamp)&&($QW_SP_WarpMap$ != "") { - set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - set @Mmenuref[@Mj],@Mi; - set @Mj,@Mj+1; - } - set @Mi,@Mi+1; -//----------------Town-Warp - if ($QW_TW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_TW_OFF == 0) set @Mmenuref[@Mj],@Mi; - if ($QW_TW_OFF == 0) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Dungeon-Warp - if ($QW_DW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_DW_OFF == 0) set @Mmenuref[@Mj],@Mi; - if ($QW_DW_OFF == 0) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Why-So-Few-Warps - set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - set @Mmenuref[@Mj],@Mi; - set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------No-Unlock - if (getarg(0) == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if (getarg(0) == 1) set @Mmenuref[@Mj],@Mi; - if (getarg(0) == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Healfull - if ($QW_HF == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_HF == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_HF == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Healpart - if ($QW_HP == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_HP == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_HP == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Storage - if ($QW_Stor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_Stor == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_Stor == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------GuildStorage - if ($QW_GStor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_GStor == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_GStor == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Cancel - set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - set @Mmenuref[@Mj],@Mi; - return; - } - - - -//======================Town=Menu=Array============================ - -//----------------Prontera // I do this to find back sections quickly altho almost the same name is a line below it now -// setarray @pTmenuitems$[@Ti], "Prontera"; // Name of Town shown in Town select Menu -// setarray @pTprice[@Ti], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) -// -// setarray @pTmap$[@Ti], "prontera"; // mapfilename of town -// setarray @pTXcoords[@Ti], 156; // X warp coords -// setarray @pTYcoords[@Ti], 187; // Y warp coords -// -// QWS_Make_Town_Menu XXX; -// -// the full wap commands send out by this script for these example would be -//warp example_01 123 123 -// -// use the same XXX number as you used when making your own town warpra -// Read below how -// -// example: -// -//syntax: -//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ -// -// Full example using fake map & coords -// -//example_01,213,213,4 script Warpra 112,{ -// callfunc "QWS_Town_Warpra",XXX,"A FAKE TOWN FOR EXAMPLE"; -// close; -// } -// use a free number for XXX, last used is 20, for Yuno - -function script QWS_Tarray { - function QWS_Make_Town_Menu; - - set @Ti,0; // That's our loop counter. - set @Tj,0; // That's the menu lines counter. -//----------------Prontera - setarray @pTmenuitems$[@Ti], "Prontera"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "prontera"; - setarray @pTXcoords[@Ti], 156; - setarray @pTYcoords[@Ti], 187; - - QWS_Make_Town_Menu 0; -//----------------Alberta - setarray @pTmenuitems$[@Ti], "Alberta"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "alberta"; - setarray @pTXcoords[@Ti], 27; - setarray @pTYcoords[@Ti], 236; - - QWS_Make_Town_Menu 1; -//----------------Aldebaran - setarray @pTmenuitems$[@Ti], "Aldebaran"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "aldebaran"; - setarray @pTXcoords[@Ti], 145; - setarray @pTYcoords[@Ti], 120; - - QWS_Make_Town_Menu 2; -//----------------Amatsu: - setarray @pTmenuitems$[@Ti], "Amatsu"; - setarray @pTprice[@Ti], $QW_OW_PRICE; - - setarray @pTmap$[@Ti], "amatsu"; - setarray @pTXcoords[@Ti], 197; - setarray @pTYcoords[@Ti], 86; - - QWS_Make_Town_Menu 3; -//----------------Ayothaya: - setarray @pTmenuitems$[@Ti], "Ayothaya"; - setarray @pTprice[@Ti], $QW_OW_PRICE; - - setarray @pTmap$[@Ti], "ayothaya"; - setarray @pTXcoords[@Ti], 150; - setarray @pTYcoords[@Ti], 57; - - QWS_Make_Town_Menu 4; -//----------------Comodo: - setarray @pTmenuitems$[@Ti], "Comodo"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "comodo"; - setarray @pTXcoords[@Ti], 188; - setarray @pTYcoords[@Ti], 161; - - QWS_Make_Town_Menu 5; -//----------------Einbech: - setarray @pTmenuitems$[@Ti], "Einbech"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "einbech"; - setarray @pTXcoords[@Ti], 172; - setarray @pTYcoords[@Ti], 126; - - QWS_Make_Town_Menu 6; -//----------------Einbroch: - setarray @pTmenuitems$[@Ti], "Einbroch"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "einbroch"; - setarray @pTXcoords[@Ti], 230; - setarray @pTYcoords[@Ti], 191; - - QWS_Make_Town_Menu 7; -//----------------Geffen: - setarray @pTmenuitems$[@Ti], "Geffen"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "geffen"; - setarray @pTXcoords[@Ti], 119; - setarray @pTYcoords[@Ti], 66; - - QWS_Make_Town_Menu 8; -//----------------Gonryun: - setarray @pTmenuitems$[@Ti], "Gonryun"; - setarray @pTprice[@Ti], $QW_OW_PRICE; - - setarray @pTmap$[@Ti], "gonryun"; - setarray @pTXcoords[@Ti], 150; - setarray @pTYcoords[@Ti], 130; - - QWS_Make_Town_Menu 9; -//----------------Hugel: - setarray @pTmenuitems$[@Ti], "Hugel"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "hugel"; - setarray @pTXcoords[@Ti], 95; - setarray @pTYcoords[@Ti], 121; - - QWS_Make_Town_Menu 10; -//----------------Izlude: - setarray @pTmenuitems$[@Ti], "Izlude"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "izlude"; - setarray @pTXcoords[@Ti], 128; - setarray @pTYcoords[@Ti], 111; - - QWS_Make_Town_Menu 11; -//----------------Jawaii: - setarray @pTmenuitems$[@Ti], "Jawaii"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "jawaii"; - setarray @pTXcoords[@Ti], 243; - setarray @pTYcoords[@Ti], 115; - - QWS_Make_Town_Menu 12; -//----------------Lighthalzen: - setarray @pTmenuitems$[@Ti], "Lighthalzen"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "lighthalzen"; - setarray @pTXcoords[@Ti], 158; - setarray @pTYcoords[@Ti], 110; - - QWS_Make_Town_Menu 13; -//----------------Louyang: - setarray @pTmenuitems$[@Ti], "Louyang"; - setarray @pTprice[@Ti], $QW_OW_PRICE; - - setarray @pTmap$[@Ti], "louyang"; - setarray @pTXcoords[@Ti], 210; - setarray @pTYcoords[@Ti], 108; - - QWS_Make_Town_Menu 14; -//----------------Lutie - setarray @pTmenuitems$[@Ti], "Lutie"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "xmas"; - setarray @pTXcoords[@Ti], 148; - setarray @pTYcoords[@Ti], 131; - - QWS_Make_Town_Menu 15; -//----------------Morroc: - setarray @pTmenuitems$[@Ti], "Morroc"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "morocc"; - setarray @pTXcoords[@Ti], 159; - setarray @pTYcoords[@Ti], 93; - - QWS_Make_Town_Menu 16; -//----------------Niflheim: - setarray @pTmenuitems$[@Ti], "Niflheim"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "niflheim"; - setarray @pTXcoords[@Ti], 195; - setarray @pTYcoords[@Ti], 186; - - QWS_Make_Town_Menu 17; -//----------------Payon: - setarray @pTmenuitems$[@Ti], "Payon"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "payon"; - setarray @pTXcoords[@Ti], 152; - setarray @pTYcoords[@Ti], 75; - - QWS_Make_Town_Menu 18; -//----------------Umbala: - setarray @pTmenuitems$[@Ti], "Umbala"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "umbala"; - setarray @pTXcoords[@Ti], 130; - setarray @pTYcoords[@Ti], 130; - - QWS_Make_Town_Menu 19; -//----------------Yuno: - setarray @pTmenuitems$[@Ti], "Yuno"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "yuno"; - setarray @pTXcoords[@Ti], 160; - setarray @pTYcoords[@Ti], 168; - - QWS_Make_Town_Menu 20; -//----------------Cancel - setarray @pTmenuitems$[@Ti], "Cancel"; - setarray @pTprice[@Ti], 0; - - set @Tmenulist$[@Tj],@pTmenuitems$[@Ti]; - set @Tmenuref[@Tj],57005; // 57005='dead' in hex - return; - - -//----------------Make Town Menu Function - -function QWS_Make_Town_Menu { - set @temptownmenubin,1; - if (getarg(0) == 0) goto menu_item; - set @templooptownmenu,0; - do { - set @temptownmenubin, @temptownmenubin * 2; - set @templooptownmenu, @templooptownmenu + 1; - }while (getarg(0) > @templooptownmenu); -// check marker and make menu item -menu_item: - if ((@temptownmenubin & ##QWS_T_Unlock) != @temptownmenubin) { - set @Ti,@Ti+1; - return; - } - if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" -> "+@pTprice[@Ti]; - if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]; - if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"+" -> "+@pTprice[@Ti]; - if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"; - set @Tmenuref[@Tj],@Ti; - set @Tj,@Tj+1; - set @Ti,@Ti+1; - return; - -} -} - -//====================Dungeon=Menu=Arrays========================== - -//----------------A FAKE DUNGEON FOR EXAMPLE // I do this to find back sections quickly altho almost the same name is a line below it now -// setarray @pDmenuitems$[@Di], "Fake Dungeon"; // Name of Dungeon shown in Dungeon select Menu -// setarray @pDprice[@Di], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) -// setarray @pDfee$[@Di], "$QW_BW_FEE"; // Identifyer for the Dungeon fee caluclation (Basic ("$QW_BW_FEE"), Advanced ("$QW_AW_FEE"), Overseas ("$QW_OW_FEE")) please use setting in relation with option above (Don't forget "") -// setarray @DLevels[@Di], 2; //number of levels in dungeon (very important if set to high will shift all leveldata!!) -// -// setarray @DGat$[@Dref], "example_01", "example_02"; // mapfilename of dungeon level -// setarray @DLevelName$[@Dref], "Example Level 1", "Example Level 2"; // level name shown in dungeon level select -// setarray @DXcoords[@Dref], 123, 234; // X warp coords -// setarray @DYcoords[@Dref], 123, 234;// Y warp coords -// setarray @DDepth[@Dref], 0, 1; // relative depth to entrance to calculate extra warp fee -// -// QWS_Make_Dungeon_Menu XXX -// -// the full wap commands send out by this scripts for these examples would be -// for Example Level 1: -//warp example_01 123 123 -// -// for Example Level 2: -//warp example_02 234 234 -// -// use the same XXX number as you used when making your own dungeon unlocker (Warpra Helper) inside the dungeon -// (usually half way near a warp to next level) -// Read below how -// -// example: -// -//syntax: -//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ -// -// Full example using fake map & coords -// -//example_01,213,213,4 script Warpra Helper 112,{ -// callfunc "QWS_Dungeon_Warpra",XXX,"A FAKE DUNGEON FOR EXAMPLE"; -// close; -// } -// use a free number for XXX, last used is 28, for Kiel Dungeon - -function script QWS_Darray { - function QWS_Make_Dungeon_Menu; - - set @Di,0; - set @Dj,0; - set @Dref,0; -//----------------ABYSS LAKE - setarray @pDmenuitems$[@Di], "Abyss Lake"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "abyss_01", "abyss_02", "abyss_03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 265, 275, 116; - setarray @DYcoords[@Dref], 273, 270, 27; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 0; - -//----------------AMATSU DUNGEON - setarray @pDmenuitems$[@Di], "Amatsu Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "ama_dun01", "ama_dun02", "ama_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 227, 32, 119; - setarray @DYcoords[@Dref], 10, 43, 15; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 1; - -//----------------ANT HELL - setarray @pDmenuitems$[@Di], "Ant Hell Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[2], 2; - - setarray @DGat$[@Dref], "anthell01", "anthell02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 32, 34; - setarray @DYcoords[@Dref], 262, 263; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 2; - -//----------------AYOTAYA - setarray @pDmenuitems$[@Di], "Ayotaya Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[3], 2; - - setarray @DGat$[@Dref], "ayo_dun01", "ayo_dun02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 275, 150; - setarray @DYcoords[@Dref], 17, 13; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 3; - -//----------------BYALAN - setarray @pDmenuitems$[@Di], "Byalan Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[4], 5; - - setarray @DGat$[@Dref], "iz_dun00", "iz_dun01", "iz_dun02", "iz_dun03", "iz_dun04"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; - setarray @DXcoords[@Dref], 168, 41, 236, 32, 26; - setarray @DYcoords[@Dref], 168, 37, 204, 63, 27; - setarray @DDepth[@Dref], 0, 1, 2, 3, 4; - - QWS_Make_Dungeon_Menu 4; - -//----------------CLOCK TOWER - setarray @pDmenuitems$[@Di], "Clock Tower Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[5], 8; - - setarray @DGat$[@Dref], "c_tower1", "c_tower2", "c_tower3", "c_tower4", "alde_dun01", "alde_dun02", "alde_dun03", "alde_dun04"; - setarray @DLevelName$[@Dref], "Clock Tower Level 1", "Clock Tower Level 2", "Clock Tower Level 3", "Clock Tower Level 4", "Basement 1F", "Basement 2F", "Basement 3F", "Basement 4F"; - setarray @DXcoords[@Dref], 200, 268, 64, 32, 197, 262, 276, 122; - setarray @DYcoords[@Dref], 163, 26, 148, 63, 25, 41, 53, 125; - setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2, 3, 4; - - QWS_Make_Dungeon_Menu 5; - -//----------------COAL MINE - setarray @pDmenuitems$[@Di], "Coal Mine Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[6], 3; - - setarray @DGat$[@Dref], "mjo_dun01", "mjo_dun02", "mjo_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 52, 381, 302; - setarray @DYcoords[@Dref], 17, 343, 261; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 6; - -//----------------CULVERT - setarray @pDmenuitems$[@Di], "Culvert Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[7], 4; - - setarray @DGat$[@Dref], "prt_sewb1", "prt_sewb2", "prt_sewb3", "prt_sewb4"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; - setarray @DXcoords[@Dref], 132, 19, 180, 100; - setarray @DYcoords[@Dref], 248, 19, 169, 92; - setarray @DDepth[@Dref], 0, 1, 2, 3; - - QWS_Make_Dungeon_Menu 7; - -//----------------EINBECH DUNGEON - setarray @pDmenuitems$[@Di], "Einbech Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[8], 2; - - setarray @DGat$[@Dref], "ein_dun01", "ein_dun02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 22, 292; - setarray @DYcoords[@Dref], 14, 290; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 8; - -//----------------GEFENIA DUNGEON - setarray @pDmenuitems$[@Di], "Gefenia Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[9], 4; - - setarray @DGat$[@Dref], "gefenia01", "gefenia02", "gefenia03", "gefenia04"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; - setarray @DXcoords[@Dref], 59, 201, 264, 33; - setarray @DYcoords[@Dref], 167, 35, 236, 270; - setarray @DDepth[@Dref], 0, 1, 2, 3; - - QWS_Make_Dungeon_Menu 9; - -//----------------GEFFEN DUNGEON - setarray @pDmenuitems$[@Di], "Geffen Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 4; - - setarray @DGat$[@Dref], "gef_dun00", "gef_dun01", "gef_dun02", "gef_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; - setarray @DXcoords[@Dref], 104, 115, 106, 203; - setarray @DYcoords[@Dref], 100, 236, 132, 200; - setarray @DDepth[@Dref], 0, 1, 2, 3; - - QWS_Make_Dungeon_Menu 10; - -//----------------GLAST HEIM - setarray @pDmenuitems$[@Di], "Glast Heim Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 17; - - setarray @DGat$[@Dref], "glast_01", "gl_church", "gl_chyard", "gl_in01", "gl_cas01", "gl_cas02", "gl_knt01", "gl_knt02", "gl_prison", "gl_prison1", "gl_step", "gl_sew01", "gl_sew02", "gl_sew03", "gl_sew04", "gl_dun01", "gl_dun02"; - setarray @DLevelName$[@Dref], "Glast Heim Entrance", "St. Abbey", "Churchyard", "Inside Glast Heim", "Castle 1", "Castle 2", "Chivalry 1", "Chivalry 2", "Prison 1", "Prison 2", "Steps", "Sewers 1", "Sewers 2", "Sewers 3", "Sewers 4", "Lowest Cave 1", "Lowest Cave 2"; - setarray @DXcoords[@Dref], 370, 156, 147, 121, 199, 104, 150, 157, 14, 150, 117, 258, 108, 171, 68, 133, 224; - setarray @DYcoords[@Dref], 300, 8, 15, 59, 29, 25, 10, 287, 70, 14, 124, 255, 291, 273, 277, 271, 274; - setarray @DDepth[@Dref], 0, 1, 2, 1, 1, 2, 1, 2, 2, 3, 1, 4, 2, 3, 4, 5, 6; - - QWS_Make_Dungeon_Menu 11; - -//----------------GONRYUN DUNGEON - setarray @pDmenuitems$[@Di], "Gonryun Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "gon_dun01", "gon_dun02", "gon_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 143, 17, 68; - setarray @DYcoords[@Dref], 59, 114, 9; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 12; - -//----------------HIDDEN DUNGEON - setarray @pDmenuitems$[@Di], "Hidden Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "prt_maze01", "prt_maze02", "prt_maze03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 176, 94, 23; - setarray @DYcoords[@Dref], 6, 19, 8; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 13; - -//----------------JUPEROS CAVE - setarray @pDmenuitems$[@Di], "Juperos Cave"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "juperos_01", "juperos_02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 53, 36; - setarray @DYcoords[@Dref], 247, 60; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 14; - -//----------------KIEL DUNGEON - setarray @pDmenuitems$[@Di], "Kiel Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "kh_dun01", "kh_dun02"; - setarray @DLevelName$[@Dref], "1st Floor", "2nd Floor"; - setarray @DXcoords[@Dref], 63, 42; - setarray @DYcoords[@Dref], 10, 197; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 28; - -//----------------LIGHTHALZEN BIO LAB - setarray @pDmenuitems$[@Di], "Lighthalzen Bio Lab"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "lhz_dun01", "lhz_dun02", "lhz_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 150, 150, 140; - setarray @DYcoords[@Dref], 287, 18, 137; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 15; - -//----------------LOUYANG DUNGEON - setarray @pDmenuitems$[@Di], "Louyang Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "lou_dun02", "lou_dun03"; - setarray @DLevelName$[@Dref], "Royal Tomb Level 1", "Royal Tomb Level 2"; - setarray @DXcoords[@Dref], 282, 165; - setarray @DYcoords[@Dref], 20, 38; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 16; - -//----------------MAGMA DUNGEON - setarray @pDmenuitems$[@Di], "Magma Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "mag_dun01", "mag_dun02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 126, 47; - setarray @DYcoords[@Dref], 69, 32; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 17; - -//----------------ODIN TEMPLE - setarray @pDmenuitems$[@Di], "Odin Temple"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 1; - - setarray @DGat$[@Dref], "odin_tem01"; - setarray @DLevelName$[@Dref], "Level 1"; - setarray @DXcoords[@Dref], 96; - setarray @DYcoords[@Dref], 145; - setarray @DDepth[@Dref], 0; - - QWS_Make_Dungeon_Menu 18; - -//----------------ORC DUNGEON - setarray @pDmenuitems$[@Di], "Orc Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "orcsdun01", "orcsdun02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 32, 21; - setarray @DYcoords[@Dref], 169, 185; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 19; - -//----------------PAYON DUNGEON - setarray @pDmenuitems$[@Di], "Payon Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 5; - - setarray @DGat$[@Dref], "pay_dun00", "pay_dun01", "pay_dun02", "pay_dun03", "pay_dun04"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; - setarray @DXcoords[@Dref], 22, 19, 19, 155, 201; - setarray @DYcoords[@Dref], 180, 33, 63, 159, 204; - setarray @DDepth[@Dref], 0, 1, 2, 3, 4; - - QWS_Make_Dungeon_Menu 20; - -//----------------PYRAMIDS - setarray @pDmenuitems$[@Di], "Pyramids Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 6; - - setarray @DGat$[@Dref], "moc_pryd01", "moc_pryd02", "moc_pryd03", "moc_pryd04", "moc_pryd05", "moc_pryd06"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Basement 1", "Basement 2"; - setarray @DXcoords[@Dref], 192, 10, 100, 181, 94, 192; - setarray @DYcoords[@Dref], 9, 192, 92, 11, 96, 8; - setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2; - - QWS_Make_Dungeon_Menu 21; - -//----------------SPHINX - setarray @pDmenuitems$[@Di], "Sphinx Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 5; - - setarray @DGat$[@Dref], "in_sphinx1", "in_sphinx2", "in_sphinx3", "in_sphinx4", "in_sphinx5"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; - setarray @DXcoords[@Dref], 192, 149, 210, 10, 100; - setarray @DYcoords[@Dref], 9, 81, 54, 222, 99; - setarray @DDepth[@Dref], 0, 1, 2, 3, 4; - - QWS_Make_Dungeon_Menu 22; - -//----------------SUNKEN SHIP - setarray @pDmenuitems$[@Di], "Sunken Ship Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "treasure01", "treasure02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 69, 102; - setarray @DYcoords[@Dref], 24, 27; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 23; - -//----------------THANATOS TOWER - setarray @pDmenuitems$[@Di], "Thanatos Tower"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 13; - - setarray @DGat$[@Dref], "tha_t01", "tha_t02", "tha_t03", "tha_t04", "tha_t05", "tha_t06", "tha_t07", "tha_t08", "tha_t09", "tha_t10", "tha_t11", "tha_t12", "thana_boss"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6", "Level 7", "Level 8", "Level 9", "Level 10", "Level 11", "Level 12", "Thanatos Boss"; - setarray @DXcoords[@Dref], 150, 150, 220, 59, 62, 206, 35, 105, 88, 168, 90, 129, 85; - setarray @DYcoords[@Dref], 35, 136, 158, 143, 11, 8, 166, 44, 145, 138, 36, 83, 76; - setarray @DDepth[@Dref], 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; - - QWS_Make_Dungeon_Menu 24; - -//----------------TOY FACTORY - setarray @pDmenuitems$[@Di], "Toy Factory Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "xmas_dun01", "xmas_dun02"; - setarray @DLevelName$[@Dref], "Factory Warehouse", "Classifying Room"; - setarray @DXcoords[@Dref], 205, 129; - setarray @DYcoords[@Dref], 16, 133; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 25; - -//----------------TURTLE ISTLAND - setarray @pDmenuitems$[@Di], "Turtle Island Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 4; - - setarray @DGat$[@Dref], "tur_dun01", "tur_dun02", "tur_dun03", "tur_dun04"; - setarray @DLevelName$[@Dref], "Outside", "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 161, 148, 132, 100; - setarray @DYcoords[@Dref], 34, 256, 190, 192; - setarray @DDepth[@Dref], 0, 0, 1, 2; - - QWS_Make_Dungeon_Menu 26; - -//----------------UMBALA - setarray @pDmenuitems$[@Di], "Umbala Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "um_dun01", "um_dun02", "yggdrasil01"; - setarray @DLevelName$[@Dref], "Carpenter's Shop in The Tree", "Passage to a Foreign World", "Hvergelmir's Fountain"; - setarray @DXcoords[@Dref], 205, 48, 40; - setarray @DYcoords[@Dref], 26, 30, 63; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 27; - -//----------------Cancel - setarray @pDmenuitems$[@Di], "Cancel"; - setarray @pDprice[@Di], 0; - - set @Dmenulist$[@Dj],@pDmenuitems$[@Di]; - set @Dmenuref[@Dj],57005; // 57005='dead' in hex - return; - - -//----------------Make Dungeon Menu Function - -function QWS_Make_Dungeon_Menu { - set @tempdungeonmenubin,1; - if (getarg(0) == 0) goto menu_item; - set @temploopdungeonmenu,0; - do { - set @tempdungeonmenubin, @tempdungeonmenubin * 2; - set @temploopdungeonmenu, @temploopdungeonmenu + 1; - }while (getarg(0) > @temploopdungeonmenu); -// check marker and make menu item -menu_item: - if ((@tempdungeonmenubin & ##QWS_D_Unlock) != @tempdungeonmenubin) { - setarray @DLocRef[@Di], @Dref; - set @Dref, @Dref+@DLevels[@Di]; - set @Di,@Di+1; - return; - } - if ($QW_MapUserShow == 1) { - set @tempmapusers,0; - set @mapusersloop,0; - do { - set @tempmapusers,(getmapusers(@DGat$[@Dref+@mapusersloop]) + @tempmapusers); - set @mapusersloop, (@mapusersloop + 1); - }while (@DLevels[@Di] > @mapusersloop); - if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"] -> "+@pDprice[@Di]; - if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"]"; - set @Dmenuref[@Dj],@Di; - set @Dj,@Dj+1; - setarray @DLocRef[@Di], @Dref; - set @Dref, @Dref+@DLevels[@Di]; - set @Di,@Di+1; - return; - } - if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di]; - if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]; - set @Dmenuref[@Dj],@Di; - set @Dj,@Dj+1; - setarray @DLocRef[@Di], @Dref; - set @Dref, @Dref+@DLevels[@Di]; - set @Di,@Di+1; - return; - -} -} - -function script QWS_DLarray { -//----------------Start building Menu - set @DWref,@DLocRef[@DwarpMenu]; // That's our reference to the arrays with leveldata. - set @DWi,0; // That's our loop counter. - set @DWj,0; // That's the menu lines counter. - cleararray @DWLmenulist$[0],"",20; // Clearing the array to get rid off ghost items in menu - do { - if ($QW_DL == 0)||($QW_DDL >= @DDepth[@DWref]) { - - set @warpprice, (@pDprice[@DwarpMenu]+ (getd(@pDfee$[@DwarpMenu])*@DDepth[@DWref])); - - if (@warpprice != 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" -> "+@warpprice; - if (@warpprice == 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]; - if (@warpprice != 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"] -> "+@warpprice; - if (@warpprice == 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"]"; - set @DWLmenuref[@DWj],@DWref; - - set @DWj,@DWj+1; - } - set @DWref, @DWref+1; - set @DWi,@DWi+1; - }while (@DWi < @DLevels[@DwarpMenu]); - set @DWLmenulist$[@DWj], "Exit"; - set @DWLmenuref[@DWj],57005; // 57005='dead' in hex - return; - } - - -//=================Backwards=Compatibility=Pre=1.8================= - -function script QWS_BackComp { -// reference where i put the towns: "Prontera"[0], "Alberta"[1], "Aldebaran"[2], "Amatsu"[3], "Ayothaya"[4], "Comodo"[5], "Einbech"[6], "Einbroch"[7], "Geffen"[8], "Gonryun"[9], "Hugel"[10], "Izlude"[11], "Jawaii"[12], "Lighthalzen"[13], "Louyang"[14], "Lutie"[15], "Morroc"[16], "Niflheim"[17], "Payon"[18], "Umbala"[19], "Yuno"[20]; -// reference where i put the dungeons: "Abyss Lake"[0], "Amatsu Dungeon"[1], "Ant Hell Dungeon"[2], "Ayotaya Dungeon"[3], "Byalan Dungeon"[4], "Clock Tower Dungeon"[5], "Coal Mine Dungeon"[6], "Culvert Dungeon"[7], "Einbech Dungeon"[8], "Gefenia Dungeon"[9], "Geffen Dungeon"[10], "Glast Heim Dungeon"[11], "Gonryun Dungeon"[12], "Hidden Dungeon"[13], "Juperos Cave"[14], "Lighthalzen Bio Lab"[15], "Louyang Dungeon"[16], "Magma Dungeon"[17], "Odin Temple"[18], "Orc Dungeon"[19], "Payon Dungeon"[20], "Pyramids Dungeon"[21], "Sphinx Dungeon"[22], "Sunken Ship Dungeon"[23], "Thanatos Tower"[24], "Toy Factory Dungeon"[25], "Turtle Island Dungeon"[26], "Umbala Dungeon"[27], "Kiel Dungeon[28]; -// also clears variables so that the account file variables can be used for something else variable 0 = variable delete on next save - -// Towns - set @towntemp,0; - if (#prontera != 0) set @towntemp,@towntemp + 1; - if (#alberta != 0) set @towntemp,@towntemp + 2; - if (#aldebaran != 0) set @towntemp,@towntemp + 4; - if (#amatsu != 0) set @towntemp,@towntemp + 8; - if (#ayotaya != 0) set @towntemp,@towntemp + 16; - if (#comodo != 0) set @towntemp,@towntemp + 32; - if (#einbech != 0) set @towntemp,@towntemp + 64; - if (#einbroch != 0) set @towntemp,@towntemp + 128; - if (#geffen != 0) set @towntemp,@towntemp + 256; - if (#gonryun != 0) set @towntemp,@towntemp + 512; - if (#hugel != 0) set @towntemp,@towntemp + 1024; - if (#izlude != 0) set @towntemp,@towntemp + 2048; - if (#jawaii != 0) set @towntemp,@towntemp + 4096; - if (#lighthalzen != 0) set @towntemp,@towntemp + 8192; - if (#louyang != 0) set @towntemp,@towntemp + 16384; - if (#xmas != 0) set @towntemp,@towntemp + 32768; - if (#morocc != 0) set @towntemp,@towntemp + 65536; - if (#niflheim != 0) set @towntemp,@towntemp + 131072; - if (#payon != 0) set @towntemp,@towntemp + 262144; - if (#umbala != 0) set @towntemp,@towntemp + 524288; - if (#yuno != 0) set @towntemp,@towntemp + 1048576; -// Clear Town variables - set #prontera,0; - set #alberta,0; - set #aldebaran,0; - set #amatsu,0; - set #ayotaya,0; - set #comodo,0; - set #einbech,0; - set #einbroch,0; - set #geffen,0; - set #gonryun,0; - set #hugel,0; - set #izlude,0; - set #jawaii,0; - set #lighthalzen,0; - set #louyang,0; - set #xmas,0; - set #morocc,0; - set #niflheim,0; - set #payon,0; - set #umbala,0; - set #yuno,0; -// set Town warp unlock variable -set ##QWS_T_Unlock, (##QWS_T_Unlock | @towntemp); - //because multiple account servers now stack on 1 variable i used a 'or' to stack them -// Dungeons - set @dungeontemp,0; - if (#abyss != 0) set @dungeontemp,@dungeontemp + 1; - if (#ama_dun != 0) set @dungeontemp,@dungeontemp + 2; - if (#anthell != 0) set @dungeontemp,@dungeontemp + 4; - if (#ayotaya_dun != 0) set @dungeontemp,@dungeontemp + 8; - if (#iz_dun != 0) set @dungeontemp,@dungeontemp + 16; - if (#c_tower != 0) set @dungeontemp,@dungeontemp + 32; - if (#mjo_dun != 0) set @dungeontemp,@dungeontemp + 64; - if (#prt_sewb != 0) set @dungeontemp,@dungeontemp + 128; - if (#einbech_dun != 0) set @dungeontemp,@dungeontemp + 256; - if (#gefenia != 0) set @dungeontemp,@dungeontemp + 512; - if (#gef_dun != 0) set @dungeontemp,@dungeontemp + 1024; - if (#gl_dun != 0) set @dungeontemp,@dungeontemp + 2048; - if (#gon_dun != 0) set @dungeontemp,@dungeontemp + 4096; - if (#hid_dun != 0) set @dungeontemp,@dungeontemp + 8192; - if (#juperos != 0) set @dungeontemp,@dungeontemp + 16384; - if (#lighthalzen_dun != 0) set @dungeontemp,@dungeontemp + 32768; - if (#louyang_dun != 0) set @dungeontemp,@dungeontemp + 65536; - if (#mag_dun != 0) set @dungeontemp,@dungeontemp + 131072; - if (#odintemple != 0) set @dungeontemp,@dungeontemp + 262144; - if (#orcsdun != 0) set @dungeontemp,@dungeontemp + 524288; - if (#pay_dun != 0) set @dungeontemp,@dungeontemp + 1048576; - if (#moc_pryd != 0) set @dungeontemp,@dungeontemp + 2097152; - if (#in_sphinx != 0) set @dungeontemp,@dungeontemp + 4194304; - if (#treasure != 0) set @dungeontemp,@dungeontemp + 8388608; - if (#thanatos_tower != 0) set @dungeontemp,@dungeontemp + 16777216; - if (#xmas_dun != 0) set @dungeontemp,@dungeontemp + 33554432; - if (#tur_dun != 0) set @dungeontemp,@dungeontemp + 67108864; - if (#um_dun != 0) set @dungeontemp,@dungeontemp + 134217728; -// Clear Dungeon variables - set #abyss,0; - set #ama_dun,0; - set #anthell,0; - set #ayotaya_dun,0; - set #iz_dun,0; - set #c_tower,0; - set #mjo_dun,0; - set #prt_sewb,0; - set #einbech_dun,0; - set #gefenia,0; - set #gef_dun,0; - set #gl_dun,0; - set #gon_dun,0; - set #hid_dun,0; - set #juperos,0; - set #lighthalzen_dun,0; - set #louyang_dun,0; - set #mag_dun,0; - set #odintemple,0; - set #orcsdun,0; - set #pay_dun,0; - set #moc_pryd,0; - set #in_sphinx,0; - set #treasure,0; - set #thanatos_tower,0; - set #xmas_dun,0; - set #tur_dun,0; - set #um_dun,0; -// set Town warp unlock variable -set ##QWS_D_Unlock, (##QWS_D_Unlock | @dungeontemp); -//mark that this character has done the upgrade to 1.8 -set ##QWS_UP,18; -return; -} - - -//===================Extra=Variable=Clear=Pre=1.8================== -function script Extra_Variable_Clear { -// Clear Town variables - set #prontera,0; - set #alberta,0; - set #aldebaran,0; - set #amatsu,0; - set #ayotaya,0; - set #comodo,0; - set #einbech,0; - set #einbroch,0; - set #geffen,0; - set #gonryun,0; - set #hugel,0; - set #izlude,0; - set #jawaii,0; - set #lighthalzen,0; - set #louyang,0; - set #xmas,0; - set #morocc,0; - set #niflheim,0; - set #payon,0; - set #umbala,0; - set #yuno,0; - -// Clear Dungeon variables - set #abyss,0; - set #ama_dun,0; - set #anthell,0; - set #ayotaya_dun,0; - set #iz_dun,0; - set #c_tower,0; - set #mjo_dun,0; - set #prt_sewb,0; - set #einbech_dun,0; - set #gefenia,0; - set #gef_dun,0; - set #gl_dun,0; - set #gon_dun,0; - set #hid_dun,0; - set #juperos,0; - set #lighthalzen_dun,0; - set #louyang_dun,0; - set #mag_dun,0; - set #odintemple,0; - set #orcsdun,0; - set #pay_dun,0; - set #moc_pryd,0; - set #in_sphinx,0; - set #treasure,0; - set #thanatos_tower,0; - set #xmas_dun,0; - set #tur_dun,0; - set #um_dun,0; - -// as the account based variables are limited just run this on every character to save some variables -set QWS_ExtraVARClear,18; -return; -} - -//================Dungeon=Warpras=That=Only=Unlock================= - -function script QWS_Dungeon_Warpra { - function QWS_D_getbin; - function QWS_D_setbin; - - if ((QWS_D_getbin(getarg(0)) == 0) && (getarg(1) != "")) { - mes "[Warpra]"; - mes getarg(1)+" unlocked!"; - QWS_D_setbin(getarg(0)); - return; - } else if (QWS_D_getbin(getarg(0)) == 1){ - mes "[Warpra]"; - mes "Sorry I can only unlock this location."; - } else - debugmes "QWS_Dungeon_Warpra error, improper syntax ?"; - return; - - -function QWS_D_setbin { - set @tempsetbindata,1; - if (getarg(0) == 0) goto binset; - set @temploopsetbin,0; - do { - set @tempsetbindata, @tempsetbindata * 2; - set @temploopsetbin, @temploopsetbin + 1; - } while (getarg(0) > @temploopsetbin); -binset: - set ##QWS_D_Unlock,(##QWS_D_Unlock | @tempsetbindata); - return; -} - -function QWS_D_getbin { - set @tempgetbindata,1; - if (getarg(0) == 0) goto binget; - set @temploopgetbin,0; - do { - set @tempgetbindata, @tempgetbindata * 2; - set @temploopgetbin, @temploopgetbin + 1; - } while (getarg(0) > @temploopgetbin); -binget: - if ((@tempgetbindata & ##QWS_D_Unlock) == @tempgetbindata) return 1; - return 0; -} -} - -//==========================Town=Warpras=========================== - -function script QWS_Town_Warpra { - function QWS_T_getbin; - function QWS_T_setbin; - - if ((QWS_T_getbin(getarg(0)) == 0) && (getarg(1) != "")) { - mes "[Warpra]"; - mes getarg(1)+" unlocked!"; - QWS_T_setbin(getarg(0)); - return; - } else if (QWS_T_getbin(getarg(0)) == 1){ -callfunc "Q_Warpra",0; - } else - debugmes "QWS_Town_Warpra error, improper syntax ?"; - return; - - -function QWS_T_setbin { - set @tempsetbindata,1; - if (getarg(0) == 0) goto binset; - set @temploopsetbin,0; - do { - set @tempsetbindata, @tempsetbindata * 2; - set @temploopsetbin, @temploopsetbin + 1; - } while (getarg(0) > @temploopsetbin); -binset: - set ##QWS_T_Unlock,(##QWS_T_Unlock | @tempsetbindata); - return; -} - -function QWS_T_getbin { - set @tempgetbindata,1; - if (getarg(0) == 0) goto binget; - set @temploopgetbin,0; - do { - set @tempgetbindata, @tempgetbindata * 2; - set @temploopgetbin, @temploopgetbin + 1; - } while (getarg(0) > @temploopgetbin); -binget: - if ((@tempgetbindata & ##QWS_T_Unlock) == @tempgetbindata) return 1; - return 0; -} -} -//============================Warpras============================== - -alb2trea,73,101,4 script Warpra#1 113,{ - callfunc "Q_Warpra",1; -} -ama_fild01,178,325,1 script Warpra#2 113,{ - callfunc "Q_Warpra",1; -} -gef_fild10,71,339,4 script Warpra#3 113,{ - callfunc "Q_Warpra",1; -} -izlu2dun,104,82,4 script Warpra#4 113,{ - callfunc "Q_Warpra",1; -} -mjolnir_02,85,363,4 script Warpra#5 113,{ - callfunc "Q_Warpra",1; -} -moc_fild04,207,331,4 script Warpra#6 113,{ - callfunc "Q_Warpra",1; -} -moc_fild19,106,97,4 script Warpra#7 113,{ - callfunc "Q_Warpra",1; -} -moc_ruins,64,166,4 script Warpra#8 113,{ - callfunc "Q_Warpra",1; -} -niflheim,197,192,3 script Warpra#9 113,{ - callfunc "Q_Warpra",1; -} -pay_arche,39,135,4 script Warpra#10 113,{ - callfunc "Q_Warpra",1; -} -prt_fild05,273,215,4 script Warpra#11 113,{ - callfunc "Q_Warpra",1; -} -tur_dun01,148,239,4 script Warpra#12 113,{ - callfunc "Q_Warpra",1; -} -valkyrie,48,35,8 script Warpra#13 113,{ - callfunc "Q_Warpra",1; -} -yuno_fild03,37,135,4 script Warpra#14 113,{ - callfunc "Q_Warpra",1; -} - -alberta,32,240,4 script Warpra#15 113,{ - callfunc "QWS_Town_Warpra",1,"Alberta Town"; - close; -} -aldebaran,146,118,4 script Warpra#16 113,{ - callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; - close; -} -ayothaya,216,171,5 script Warpra#17 113,{ - callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; - close; -} -amatsu,193,81,1 script Warpra#18 113,{ - callfunc "QWS_Town_Warpra",3,"Amatsu Town"; - close; -} -comodo,195,158,4 script Warpra#19 113,{ - callfunc "QWS_Town_Warpra",5,"Comodo Town"; - close; -} -einbroch,229,196,5 script Warpra#20 113,{ - callfunc "QWS_Town_Warpra",7,"Einbroch Town"; - close; -} -einbech,173,131,5 script Warpra#21 113,{ - callfunc "QWS_Town_Warpra",6,"Einbech Town"; - close; -} -geffen,116,66,4 script Warpra#22 113,{ - callfunc "QWS_Town_Warpra",8,"Geffen Town"; - close; -} -gonryun,152,130,4 script Warpra#23 113,{ - callfunc "QWS_Town_Warpra",9,"Gonryun Town"; - close; -} -hugel,90,127,5 script Warpra#24 113,{ - callfunc "QWS_Town_Warpra",10,"Hugel Town"; - close; -} -jawaii,107,182,5 script Warpra#25 113,{ - callfunc "QWS_Town_Warpra",12,"Jawaii Town"; - close; -} -izlude,132,116,4 script Warpra#26 113,{ - callfunc "QWS_Town_Warpra",11,"Izlude Town"; - close; -} -lighthalzen,153,100,5 script Warpra#27 113,{ - callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; - close; -} -louyang,211,106,4 script Warpra#28 113,{ - callfunc "QWS_Town_Warpra",14,"Louyang Town"; - close; -} -morocc,157,95,4 script Warpra#29 113,{ - callfunc "QWS_Town_Warpra",16,"Morroc Town"; - close; -} -nif_fild01,319,77,1 script Warpra#30 113,{ - callfunc "QWS_Town_Warpra",17,"Niflheim Town"; - close; -} -payon,183,110,4 script Warpra#31 113,{ - callfunc "QWS_Town_Warpra",18,"Payon Town"; - close; -} -prontera,147,172,5 script Warpra#32 113,{ - callfunc "QWS_Town_Warpra",0,"Prontera Town"; - close; -} -umbala,133,130,4 script Warpra#33 113,{ - callfunc "QWS_Town_Warpra",19,"Umbala Town"; - close; -} -xmas,151,136,4 script Warpra#34 113,{ - callfunc "QWS_Town_Warpra",15,"Lutie Town"; - close; -} -yuno,138,162,4 script Warpra#35 113,{ - callfunc "QWS_Town_Warpra",20,"Yuno Town"; - close; -} - -abyss_02,274,266,1 script Warpra#36 113,{ - callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; - close; -} - -ama_dun02,192,118,5 script Warpra Helper#1 112,{ - callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; - close; -} - -anthell02,170,165,3 script Warpra Helper#2 112,{ - callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; - close; -} - -ayo_dun02,258,193,5 script Warpra Helper#3 112,{ - callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; - close; -} - -ein_dun02,292,282,1 script Warpra Helper#4 112,{ - callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; - close; -} - -iz_dun03,202,47,2 script Warpra Helper#5 112,{ - callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; - close; -} - -c_tower3,129,106,4 script Warpra Helper#6 112,{ - callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; - close; -} - -mjo_dun02,39,25,4 script Warpra Helper#7 112,{ - callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; - close; -} - -prt_sewb2,176,30,3 script Warpra Helper#8 112,{ - callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; - close; -} - -gefenia03,137,34,0 script Warpra Helper#9 112,{ - callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; - close; -} - -gef_dun02,218,61,2 script Warpra Helper#10 112,{ - callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; - close; -} - -glast_01,371,308,3 script Warpra Helper#11 112,{ - callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; - close; -} - -gon_dun01,167,273,4 script Warpra Helper#12 112,{ - callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; - close; -} - -juperos_02,127,154,5 script Warpra Helper#13 112,{ - callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; - close; -} - -kh_dun01,14,224,3 script Warpra Helper#14 112,{ - callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; - close; -} - -lhz_dun02,156,151,5 script Warpra Helper#15 112,{ - callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; - close; -} - -lou_dun02,168,264,4 script Warpra Helper#16 112,{ - callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; - close; -} - -mag_dun02,46,41,3 script Warpra Helper#17 112,{ - callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; - close; -} - -odin_tem01,115,148,3 script Warpra Helper#18 112,{ - callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; - close; -} - -orcsdun01,185,11,3 script Warpra Helper#19 112,{ - callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; - close; -} - -pay_dun03,162,143,3 script Warpra Helper#20 112,{ - callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; - close; -} - -moc_pryd02,101,95,3 script Warpra Helper#21 112,{ - callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; - close; -} - -in_sphinx2,274,268,1 script Warpra Helper#22 112,{ - callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; - close; -} - -tha_t07,111,162,3 script Warpra Helper#23 112,{ - callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; - close; -} - -treasure02,104,40,3 script Warpra Helper#24 112,{ - callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; - close; -} - -xmas_dun02,124,131,3 script Warpra Helper#25 112,{ - callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; - close; -} - -um_dun02,44,28,3 script Warpra Helper#26 112,{ - callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; - close; -} - -tur_dun02,162,23,3 script Warpra Helper#27 112,{ - callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; - close; -} -prt_maze02,102,69,4 script Warpra Helper#28 112,{ - callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; - close; -} +//===== rAthena Script ============================================ +//= Quest Warper Script +//===== By: ======================================================= +//= DZeroX, Darkchild, Neouni +//===== Current Version: ========================================== +//= 2.2 +//===== Compatible With: ========================================== +//= rAthena SVN +//===== Description: ============================================== +//= Warper that works only after locations are unlocked +//===== Additional Comments: ====================================== +//= 1.0 - NPCs created +//= 1.1 - Add Dungeons by sturm +//= 1.2 - Add All char in account unlocked by ace_killer +//= 1.3 - Add new 7 towns and 7 dungeons by escoteiro +// - Correct bug jawaii town by escoteiro +// - Remove some excessive warpras by escoteiro +//= 1.4 - Rewrite of the Warpa system [Neouni] +// - Corrected some bugs caused by autoconverting the old script +//= 1.4a - Rewrite of menu to be custom for each player [Neouni] +// - Dungeon listing rewrite +// - Town listing rewrite +// - GameMaster can Customise Main menu +//= 1.4b - Pricing round [Neouni] +// - GM menu added for pricing +// - Town Warp pricing tags added +// - Dungeon Warp pricing tags added +//= 1.5 - storage functions pricing [Neouni] +// - storage pricing added +// - kafra points setting added +// - kafra storage code security added +// - Healing scripts pricing added +// - Heal Part script added +//= 1.6 - Dungeon warp [Neouni] (beta only) +// - added option to add a extra fee for going down deeper into dungeon +// partly by rebuilding the dungeon warping into variable menu's +//= 1.6a - alot of fixes for beta release [Neouni] (public release) +// - fixed syntax problems +// - fixed missing pyramid gats in @DGat$ array +// - removed the culver level 5 that didn't exist +// and caused quite alot of problems (i didn't check while converting) +//-1.7 - Readability of Dungeon menu building increased [Neouni] +// - Thanatos Tower & Louyang Dungeon added +//-1.8 - changed around unlock variables [Neouni] +// - Moved warp variables to mark what you have unlocked to an binary array in login based permanent variable +// (warp variables are saved in login database, so all charservers have these unlocked) +// - Town Warp unlock array max 21/(unknown max) items used instead of max account #variables 32 ! +// - Dungeon Warp unlock array 28/(unknown max) items used instead of max account #variables 32 ! +// - (max login ##variables = 16, i used 3) +// - old variables are cleared on next save +// - Extra Variable clear added for every character, just in case (request by Terces) +//-1.8a - Show ammount of users on map [Neouni] +// - Default = off, enable in GM menu +// - Requested by escoteiro +//-1.8b - Small typo fixed in stampcard script [Neouni] +// - Reported by escoteiro +//-1.9 - Making it more edit friendly [Neouni] +// - Made Dungeon warp arrays more readable & editable (QWS_Darray) +// - Made town warp arrays more readable & editable (QWS_Tarray) +//-2.0 - Special Warp menu added [Neouni] +// - when all towns and dungeons are collected a new option on the main menu will show +// - it will only show when you setup the mapname of the warp ! +// - requested by escoteiro +// - several bugs fixed +//-2.0a - Dungeon Level Limit & Split dungeon fees +// - Limits dungeon based on Depth, access special setup menu thru GM-Menu +// - Dungeon fees split up based on Basic , Advanced & Overseas +// - Old Dungeon fee system removed, all dungeon fees now set to 0 +//-2.0b +// - Special warpname menu option name bug fixed +//-2.1 Updated names to fall within retrictions. [L0ne_W0lf] +//-2.2 #kafra_code is now stored as is. [brianluau] +//================================================================= + +//========================Function=&=Script======================== + + +function script Q_Warpra { +// Quick hack for backwards compatibility pre 1.8 +if (##QWS_UP < 18) callfunc "QWS_BackComp"; +// Extra clear variables because marker is saved on all char servers and variables can be on multiple servers +if (QWS_ExtraVARClear < 18) callfunc "Extra_Variable_Clear"; + + mes "[Warpra]"; + mes "Hello,"; + mes "I can warp you to any town or dungeon, but you need to unlock them first."; + mes "To unlock them, you have to visit us."; + mes "What do you need?"; + + if(getarg(0) == 0) callfunc "QWS_MMarray",0; + if(getarg(0) == 1) callfunc "QWS_MMarray",1; + + set @MMenu,select(@Mmenulist$[0],@Mmenulist$[1],@Mmenulist$[2],@Mmenulist$[3],@Mmenulist$[4],@Mmenulist$[5],@Mmenulist$[6],@Mmenulist$[7],@Mmenulist$[8],@Mmenulist$[9],@Mmenulist$[10],@Mmenulist$[11]); + + switch(@Mmenuref[@MMenu-1]+1){ + case 1: + goto GM_Menu; + case 2: + warp $QW_SP_WarpMap$, $QW_SP_WarpX, $QW_SP_WarpY; + close2; + debugmes "Please check your special warp menu settings on the Warpra"; + end; + case 3: + goto L_town; + case 4: + goto L_dungeon; + case 5: + goto L_FewWarps; + case 6: + goto L_NoUnlock; + case 7: + goto L_heal_Full; + case 8: + goto L_heal_Part; + case 9: + goto L_Storage; + case 10: + goto L_GStorage; + case 11: + goto L_end; + default: + goto L_end; +} + +//=====================GM-Menu=Functions=========================== + +GM_Menu: +next; +//----------------Town-Warp + if ($QW_TW_OFF == 0) mes "Town warping = ^00FF00 On ^000000"; + if ($QW_TW_OFF == 1) mes "Town warping = ^FF0000 Off ^000000"; +//----------------Dungeon-Warp + if ($QW_DW_OFF == 0) mes "Dungeon warping = ^00FF00 On ^000000"; + if ($QW_DW_OFF == 1) mes "Dungeon warping = ^FF0000 Off ^000000"; +//----------------Dungeon-Depth-Limit + if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; + if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; + mes "If on Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; +//----------------ShowMapUsers + if ($QW_MapUserShow == 1) mes "Show Map Users = ^00FF00 On ^000000"; + if ($QW_MapUserShow == 0) mes "Show Map Users = ^FF0000 Off ^000000"; +//----------------Healfull + if ($QW_HF == 1) mes "Healing full = ^00FF00 On ^000000"; +//----------------Healpart + if ($QW_HP == 1) mes "Healing partly = ^00FF00 On ^000000"; + if (($QW_HF == 0)&&($QW_HP == 0)) mes "Healing = ^FF0000 Off ^000000"; +//----------------Storage + if ($QW_Stor == 1) mes "Storage = ^00FF00 On ^000000"; + if ($QW_Stor == 0) mes "Storage = ^FF0000 Off ^000000"; +//----------------GuildStorage + if ($QW_GStor == 1) mes "Guild Storage = ^00FF00 On ^000000"; + if ($QW_GStor == 0) mes "Guild Storage = ^FF0000 Off ^000000"; +//----------------KafraPoints + if ($QW_KPoint == 1) mes "Kafra points collect = ^00FF00 On ^000000"; + if ($QW_KPoint == 0) mes "Kafra points collect = ^FF0000 Off ^000000"; +//----------------GMmenu + switch(select("Town Warping","Dungeon Warping","Dungeon Level Limit","Show Map Users","Healing full","Healing partly","Storage","Guild Storage","Kafra points collect","Set Prices","Special Warp","Exit")) { + +// Using callsub and a small check to not make 1 part of the script set it on and the other turning it off again + +case 1: + if ($QW_TW_OFF == 0) { + set $QW_TW_OFF,1; + goto GM_Menu; + } else + set $QW_TW_OFF,0; + goto GM_Menu; +case 2: + if ($QW_DW_OFF == 0) { + set $QW_DW_OFF,1; + goto GM_Menu; + } else + set $QW_DW_OFF,0; + goto GM_Menu; +case 3: + goto DungeonLevelLimit; +case 4: + if ($QW_MapUserShow == 0) { + set $QW_MapUserShow,1; + goto GM_Menu; + } else + set $QW_MapUserShow,0; + goto GM_Menu; +case 5: + if ($QW_HF == 0) { + set $QW_HF,1; + set $QW_HP,0; + goto GM_Menu; + } else + set $QW_HF,0; + goto GM_Menu; +case 6: + if ($QW_HP == 0) { + set $QW_HP,1; + set $QW_HF,0; + goto GM_Menu; + } else + set $QW_HP,0; + goto GM_Menu; +case 7: + if ($QW_Stor == 0) { + set $QW_Stor,1; + goto GM_Menu; + } else + set $QW_Stor,0; + goto GM_Menu; +case 8: + if ($QW_GStor == 0) { + set $QW_GStor,1; + goto GM_Menu; + } else + set $QW_GStor,0; + goto GM_Menu; +case 9: + if ($QW_KPoint == 0) { + set $QW_KPoint,1; + goto GM_Menu; + } else + set $QW_KPoint,0; + goto GM_Menu; +case 10: + goto Setprice; +case 11: + goto SpecialWarpMenu; +default: + close; + end; +} + + +//======================GM-Menu=Pricing============================ + +Setprice: + if ($QW_DW_FEE != 0) set $QW_DW_FEE,0; + next; + mes "Scroll thru the list to see all the options"; +//----------------Warp-Basic-Price + if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; + if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; +//----------------Warp-Advanced-Price + if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; + if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; +//----------------Warp-Oversea-Price + if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; + if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; +//----------------Basic-Dungeon-Level-Warp-Fee + if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; + if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; +//----------------Advanced-Dungeon-Level-Warp-Fee + if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; + if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; +//----------------Overseas-Dungeon-Level-Warp-Fee + if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; + if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; +//----------------Heal-Full + if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; + if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; +//----------------Heal-Part + if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; + if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; + if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; + if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; +//----------------Storage + if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; + if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; + if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; +//----------------Guild-Storage + if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; + if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; + + switch(select("Basic - Warps","Advanced - Warps","Overseas - Warps","Basic Dungeon warp fee","Advanced Dungeon warp fee","Overseas Dungeon warp fee","Full Healing","Part Healing","Storage","Guild Storage","Back","Exit")) { + +case 1: + next; + if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; + if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; + mes "Basic - Warps are starter towns and related dungeons"; + input $QW_BW_PRICE; + goto Setprice; + +case 2: + next; + if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; + if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; + mes "Advanced - Warps are towns and dungeons on the same island but not close to any starter town"; + input $QW_AW_PRICE; + goto Setprice; + +case 3: + next; + if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; + if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; + mes "Overseas - Warps are towns and dungeons overseas reachable by boat from alberta"; + input $QW_OW_PRICE; + goto Setprice; + +case 4: + next; + if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; + if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; + mes "Basic - Warps are starter town related dungeons"; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; + mes "These costs are on top of the regular Warp costs"; + input $QW_BW_FEE; + goto Setprice; + +case 5: + next; + if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; + if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; + mes "Advanced - Warps are dungeons not close to any starter town"; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; + mes "These costs are on top of the regular Warp costs"; + input $QW_AW_FEE; + goto Setprice; + +case 6: + next; + if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; + if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; + mes "Overseas - Warps are dungeons related to towns overseas reachable by boat from alberta"; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; + mes "These costs are on top of the regular Warp costs"; + input $QW_OW_FEE; + goto Setprice; + +case 7: + next; + if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; + if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; + mes "Instant full healing 1 price"; + input $QW_HF_PRICE; + goto Setprice; + +case 8: + next; + if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; + if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; + if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; + if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; + mes "Healing price per 1 HP"; + mes "Healing price per 1 SP"; + mes "2 inputs, first HP then SP"; + input $QW_HP_H_PRICE; + input $QW_HP_S_PRICE; + goto Setprice; + +case 9: + next; + if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; + if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; + if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; + mes "Storage cost, if set to 60 Kafra pricing will be handled"; + input $QW_S_PRICE; + goto Setprice; + +case 10: + next; + if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; + if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; + mes "Guild Storage, free on Guild Kafras"; + input $QW_GS_PRICE; + goto Setprice; +case 11: + goto GM_Menu; +default: + close; + end; +} + +//======================Special=Warp=Menu========================== + +SpecialWarpMenu: + if ($QW_SP_Warpname$ == "") set $QW_SP_Warpname$,"Special Warp"; + next; + mes "Scroll down to see all the information"; + mes "The Special warp menu option will show in the main menu when all towns & dungeons are unlocked"; + mes "And when the map for special warping has been set"; + mes "menu option name set to ^0000FF"+$QW_SP_Warpname$+"^000000"; + if ($QW_SP_WarpMap$ == "") mes "map is currently ^FF0000not^000000 set, and Special warp menu is off"; + if ($QW_SP_WarpMap$ != "") mes "map is currently set to ^0000FF"+$QW_SP_WarpMap$+"^000000 and Special Warp menu is on"; + mes "coords are set to ^0000FF"+$QW_SP_WarpX+","+$QW_SP_WarpY+"^000000"; + switch(select("Set Special Warp name to show in menu", "Set WarpMap","Set Coords","Go Back to GM_Menu","Exit")){ + +case 1: + next; + mes "set the name to show in the menu as option"; + input $QW_SP_Warpname$; + goto SpecialWarpMenu; +case 2: + next; + mes "set the map in the ^0000FFmapname^000000 format"; + mes "when this warpmap is set the option for players will show once they meet the requirments"; + mes "to disable Special Warp Menu option clear this !"; + input $QW_SP_WarpMap$; + goto SpecialWarpMenu; +case 3: + next; + mes "First input = Xcoord"; + mes "Second input = Ycoord"; + input $QW_SP_WarpX; + input $QW_SP_WarpY; + goto SpecialWarpMenu; +case 4: + goto GM_Menu; +default: + close; + end; +} + +//======================Dungeon=Level=Limit======================== +DungeonLevelLimit: + next; + if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; + if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; + mes "If^00FF00 On ^000000Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; + + switch(select("Toggle Dungeon Depth Limit", "Set Dungeon Depth Limit","Go Back to GM_Menu","Exit")){ + +case 1: + if ($QW_DL == 0) { + set $QW_DL,1; + goto DungeonLevelLimit; + } else + set $QW_DL,0; + goto DungeonLevelLimit; +case 2: + next; + mes "set limit of Dungeon Depth 0 = entrance"; + mes "Depth 1 is a map connected to 0 and so on"; + mes "Shortest Route to map counts as depth"; + input $QW_DDL; + goto DungeonLevelLimit; +case 3: + goto GM_Menu; +default: + close; + end; +} + +//===========================Towns================================= + +L_town: + callfunc "QWS_Tarray"; + +// Expected maximum is set to 25 items, if you add more options add more ",@Tmenulist$[xx]" + + set @TWMenu,select(@Tmenulist$[0],@Tmenulist$[1],@Tmenulist$[2],@Tmenulist$[3],@Tmenulist$[4],@Tmenulist$[5],@Tmenulist$[6],@Tmenulist$[7],@Tmenulist$[8],@Tmenulist$[9],@Tmenulist$[10],@Tmenulist$[11],@Tmenulist$[12],@Tmenulist$[13],@Tmenulist$[14],@Tmenulist$[15],@Tmenulist$[16],@Tmenulist$[17],@Tmenulist$[18],@Tmenulist$[19],@Tmenulist$[20],@Tmenulist$[21],@Tmenulist$[22],@Tmenulist$[23],@Tmenulist$[24]); + + if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex + + if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0; + + set Zeny, Zeny-@pTprice[@Tmenuref[@TWMenu-1]]; + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@pTprice[@Tmenuref[@TWMenu-1]]/16); + warp @pTmap$[@Tmenuref[@TWMenu-1]],@pTXcoords[@Tmenuref[@TWMenu-1]],@pTYcoords[@Tmenuref[@TWMenu-1]]; + close2; // this part safegaurds against errors/typos + set Zeny, Zeny+@pTprice[@Tmenuref[@TWMenu-1]]; + end; + +//=========================Dungeons================================ + +L_dungeon: + callfunc "QWS_Darray"; + +// Expected maximum is set to 35 items, if you add more options add more ",@Dmenulist$[xx]" + + set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30],@Dmenulist$[31],@Dmenulist$[32],@Dmenulist$[33],@Dmenulist$[34]); + + if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex + set @DwarpMenu, (@Dmenuref[@DWMenu-1]); + callfunc "QWS_DLarray"; + + next; + mes "[Warpra]"; + mes "Please select where you want to go"; + +// Expected maximum is set to 18 items, if you have dungeons with more levels add more ",@DWLmenulist$[xx]" + set @DWLMenu,select(@DWLmenulist$[0], @DWLmenulist$[1], @DWLmenulist$[2], @DWLmenulist$[3], @DWLmenulist$[4], @DWLmenulist$[5], @DWLmenulist$[6], @DWLmenulist$[7], @DWLmenulist$[8], @DWLmenulist$[9], @DWLmenulist$[10], @DWLmenulist$[11], @DWLmenulist$[12], @DWLmenulist$[13], @DWLmenulist$[14], @DWLmenulist$[15], @DWLmenulist$[16], @DWLmenulist$[17]); + + if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex + + set @Darrayref, @DWLmenuref[@DWLMenu-1]; + set @warpprice, @pDprice[@Dmenuref[@DWMenu-1]]+(getd(@pDfee$[@Dmenuref[@DWMenu-1]])*(@DDepth[@Darrayref])); + + if(Zeny<@warpprice) callsub L_Short_on_zeny,1; + + set Zeny, Zeny-(@warpprice); + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@warpprice/16); + warp @DGat$[@Darrayref],@DXcoords[@Darrayref],@DYcoords[@Darrayref]; + close2; // this part safegaurds against errors/typos + set Zeny, Zeny+@pTprice[@Tmenuref[@DWMenu-1]]; + end; + +//=============================Healing============================= + +L_heal_Full: + set @healfee, $QW_HF_PRICE; + if(Zeny<@healfee) callsub L_Short_on_zeny,4; + set Zeny, Zeny-@healfee; + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@healfee/500); + next; + mes "[Warpra]"; + mes "Close this window and I will Heal you."; + close2; + percentheal 100,100; + end; + +L_heal_Part: + set @healchoice,select("Full heal","Health Points only","Skill Points only","Exit"); + if (@healchoice == 1) callsub PHeal,1,1; + if (@healchoice == 2) callsub PHeal,1,0; + if (@healchoice == 3) callsub PHeal,0,1; + goto L_end; + +PHeal: + next; + set @Hp, MaxHp-Hp; + set @Sp, MaxSp-Sp; + set @HpPrice, @hp*$QW_HP_H_PRICE; + set @SpPrice, @sp*$QW_HP_S_PRICE; + mes "[Warpra]"; + if(getarg(0) == 1) mes ""+@HpPrice+" Zeny for "+@Hp+" health points"; + if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points"; + set @total, @HpPrice+@SpPrice; + mes "for a total of "+@total+" zeny"; + if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part; + + if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE; + if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE; + set @healfee, @HpPrice+@SpPrice; + if (getarg(0) == 1)&&(getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_Short_Both; + if (getarg(0) == 1)&&(Zeny<@healfee) goto Zeny_short_HP; + if (getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_short_SP; + set Zeny, Zeny-@healfee; + if (getarg(0) == 1)&&(getarg(1) == 1) percentheal 100,100; + if (getarg(0) == 1) percentheal 100,0; + if (getarg(1) == 1) percentheal 0,100; + close; + end; + +Zeny_Short_Both: + mes "[Warpra]"; + mes "choose another option, you can afford both."; + mes "I can heal as much as you can afford too."; + if (select("OK","Exit") == 2) goto L_end; + goto PHeal; + +Zeny_short_HP: + mes "[Warpra]"; + mes "do you want me to partly heal your HP ?"; + if (select("Yes","No") == 2) goto L_end; + set @Hp, Zeny/$QW_HP_H_PRICE; + set @HpPrice, @Hp*$QW_HP_H_PRICE; + if (@Hp == 1) mes "your not worth the effort"; + if (@Hp == 1) goto L_end; + set Zeny, Zeny-@HpPrice; + heal @Hp,0; + close; + end; + + +Zeny_short_SP: + mes "[Warpra]"; + mes "do you want me to partly heal your SP ?"; + if (select("Yes","No") == 2) goto L_end; + set @Sp, Zeny/$QW_HP_S_PRICE; + set @SpPrice, @Sp*$QW_HP_S_PRICE; + if (@Sp == 1) mes "your not worth the effort"; + if (@Sp == 1) goto L_end; + set Zeny, Zeny-@SpPrice; + heal 0,@Sp; + close; + end; + + +//=============================Storage============================= + +L_Storage: + next; + if(basicskillcheck() > 0 && getskilllv("NV_BASIC") < 6) goto L_StorageJBlow; + set @fee, $QW_S_PRICE; + if ($QW_S_PRICE == 60)&&(BaseJob == Job_Novice) set @fee, 30; + if ($QW_S_PRICE == 60)&&(BaseJob != Job_Novice) set @fee, 60; + if(Zeny<@fee) callsub L_Short_on_zeny,2; + set Zeny, Zeny-@fee; + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@fee/5); + + mes "[Warpra]"; + mes "Close this window and i will open your storage."; + + callsub F_CheckKafCode; //check your storage password thru kafra coding, if set + + close2; + openstorage; + end; + +F_CheckKafCode: + if(#kafra_code==0) return; + mes "Enter your storage password:"; + set @code_,0; + input @code_; + if(@code_ != #kafra_code) { + dispbottom "Wrong storage password."; + close; + } + set @kafcode_try,0; + set @code_,0; + return; + +L_StorageJBlow: + mes "[Warpra]"; + mes "I am sorry but you have to be at least Novice level 6 if you want to use the storage."; + return; + +L_GStorage: + if(@GID==0) goto L_NoGuild; + if(Zeny<$QW_GS_PRICE) callsub L_Short_on_zeny,3; + set Zeny, Zeny-$QW_GS_PRICE; + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + ($QW_GS_PRICE/5); + next; + mes "[Warpra]"; + mes "Close this window and i will open the ^5533FF" + GetGuildName(@GID) + "^000000 storage."; + close2; + guildopenstorage; + end; + +L_NoGuild: + next; + mes "[Warpra]"; + mes "You are not a part of a guild I can't help you."; + close; + end; + +L_end: + close; + end; + +//============================Few=Warp============================= +L_FewWarps: + next; + mes "[Warpra ]"; + mes "You need to unlock locations before they come available to you."; + mes "To unlock a location talk to my colleagues all over the world."; + mes "Each account got it's own stamp card."; + mes "Want me to check what stamps you have collected so far ?."; + if (select("Yes","No")==1) callsub stampcard; + close; + end; + + +//============================No=Unlock============================ + +L_NoUnlock: + next; + mes "[Warpra ]"; + mes "I don't unlock this location, my assistant deeper in the dungeon will unlock this place."; + close; + end; + +//=========================Short=On=Zeny=========================== +L_Short_on_zeny: + next; + if (getarg(0) == 0) mes "you don't seem to have "+@pTprice[@Tmenuref[@TWMenu-1]]+" zeny, to pay for the warp fee to "+@pTmenuitems$[@Tmenuref[@TWMenu-1]]+""; + if (getarg(0) == 1) mes "you don't seem to have "+@warpprice+" zeny, to pay for the warp fee to "+@DLevelName$[@DWLmenuref[@DWLMenu-1]]+" at "+@pDmenuitems$[@Dmenuref[@DWMenu-1]]+""; + if (getarg(0) == 2) mes "you don't seem to have "+@fee+" zeny, to pay for the storage fee"; + if (getarg(0) == 3) mes "you don't seem to have "+$QW_GS_PRICE+" zeny, to pay for the guild storage fee"; + if (getarg(0) == 4) mes "you don't seem to have "+@healfee+" zeny, to pay for your healing"; + close; + end; + +//===========================Stamp=Card============================ +stampcard: +// Counting of the ammount of places you have unlocked + next; + mes "Let me check what Towns you have"; + + callfunc "QWS_TownStamps"; + + mes "you collected^00FF00 "+@Tstamp+" of "+@MaxTstamp+" ^000000Towns."; + if (@Tstamp == 15) mes "They say there is an island you can only get to when married"; + if (@Tstamp == 15) emotion 18; + next; + + mes "Let me check what dungeons you have"; + + callfunc "QWS_DungeonStamps"; + + mes "you collected^00FF00 "+@Dstamp+" of "+@MaxDstamp+" ^000000Dungeons"; + mes "To unlock a dungeon, search for my colleague."; + mes "You can usually find them near the middle or end of the dungeon"; + return; +} + +function script QWS_TownStamps { + set @Tstamp,0; + set @MaxTstamp,21; //maximum number of towns + set @binvalue,1; + set @Tstamploop,0; + do { + if ((@binvalue & ##QWS_T_Unlock) == @binvalue) set @Tstamp,@Tstamp+1; + + set @binvalue, @binvalue *2; + set @Tstamploop, @Tstamploop + 1; + +}while (@Tstamploop < @MaxTstamp); +return; +} + +function script QWS_DungeonStamps { + set @Dstamp,0; + set @MaxDstamp,29; //maximum number of dungeons + set @binvalue,1; + set @Dstamploop,0; + do { + if ((@binvalue & ##QWS_D_Unlock) == @binvalue) set @Dstamp,@Dstamp+1; + + set @binvalue, @binvalue *2; + set @Dstamploop, @Dstamploop + 1; + +}while (@Dstamploop < @MaxDstamp); +return; +} + +//======================Main=Menu=Array============================ + +function script QWS_MMarray { + +// Currently 9 items + + setarray @pMmenuitems$[0], "GameMaster Menu", $QW_SP_Warpname$, "Warp to Towns", "Warp to Dungeons", "Why so few Warps ?", "Why don't you Unlock this location ?", "Heal", "Heal", "Storage", "Guild Storage", "Cancel"; + set @Mi,0; // That's our loop counter. + set @Mj,0; // That's the menu lines counter. +//----------------GameMaster-Menu + if (getgmlevel()>= 80) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if (getgmlevel()>= 80) set @Mmenuref[@Mj],@Mi; + if (getgmlevel()>= 80) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Special-Warp + callfunc "QWS_TownStamps"; + callfunc "QWS_DungeonStamps"; + if (@Tstamp == @MaxTstamp)&&(@Dstamp == @MaxDstamp)&&($QW_SP_WarpMap$ != "") { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } + set @Mi,@Mi+1; +//----------------Town-Warp + if ($QW_TW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_TW_OFF == 0) set @Mmenuref[@Mj],@Mi; + if ($QW_TW_OFF == 0) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Dungeon-Warp + if ($QW_DW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_DW_OFF == 0) set @Mmenuref[@Mj],@Mi; + if ($QW_DW_OFF == 0) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Why-So-Few-Warps + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------No-Unlock + if (getarg(0) == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if (getarg(0) == 1) set @Mmenuref[@Mj],@Mi; + if (getarg(0) == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Healfull + if ($QW_HF == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_HF == 1) set @Mmenuref[@Mj],@Mi; + if ($QW_HF == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Healpart + if ($QW_HP == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_HP == 1) set @Mmenuref[@Mj],@Mi; + if ($QW_HP == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Storage + if ($QW_Stor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_Stor == 1) set @Mmenuref[@Mj],@Mi; + if ($QW_Stor == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------GuildStorage + if ($QW_GStor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_GStor == 1) set @Mmenuref[@Mj],@Mi; + if ($QW_GStor == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Cancel + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + return; + } + + + +//======================Town=Menu=Array============================ + +//----------------Prontera // I do this to find back sections quickly altho almost the same name is a line below it now +// setarray @pTmenuitems$[@Ti], "Prontera"; // Name of Town shown in Town select Menu +// setarray @pTprice[@Ti], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) +// +// setarray @pTmap$[@Ti], "prontera"; // mapfilename of town +// setarray @pTXcoords[@Ti], 156; // X warp coords +// setarray @pTYcoords[@Ti], 187; // Y warp coords +// +// QWS_Make_Town_Menu XXX; +// +// the full wap commands send out by this script for these example would be +//warp example_01 123 123 +// +// use the same XXX number as you used when making your own town warpra +// Read below how +// +// example: +// +//syntax: +//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ +// +// Full example using fake map & coords +// +//example_01,213,213,4 script Warpra 112,{ +// callfunc "QWS_Town_Warpra",XXX,"A FAKE TOWN FOR EXAMPLE"; +// close; +// } +// use a free number for XXX, last used is 20, for Yuno + +function script QWS_Tarray { + function QWS_Make_Town_Menu; + + set @Ti,0; // That's our loop counter. + set @Tj,0; // That's the menu lines counter. +//----------------Prontera + setarray @pTmenuitems$[@Ti], "Prontera"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "prontera"; + setarray @pTXcoords[@Ti], 156; + setarray @pTYcoords[@Ti], 187; + + QWS_Make_Town_Menu 0; +//----------------Alberta + setarray @pTmenuitems$[@Ti], "Alberta"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "alberta"; + setarray @pTXcoords[@Ti], 27; + setarray @pTYcoords[@Ti], 236; + + QWS_Make_Town_Menu 1; +//----------------Aldebaran + setarray @pTmenuitems$[@Ti], "Aldebaran"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "aldebaran"; + setarray @pTXcoords[@Ti], 145; + setarray @pTYcoords[@Ti], 120; + + QWS_Make_Town_Menu 2; +//----------------Amatsu: + setarray @pTmenuitems$[@Ti], "Amatsu"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "amatsu"; + setarray @pTXcoords[@Ti], 197; + setarray @pTYcoords[@Ti], 86; + + QWS_Make_Town_Menu 3; +//----------------Ayothaya: + setarray @pTmenuitems$[@Ti], "Ayothaya"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "ayothaya"; + setarray @pTXcoords[@Ti], 150; + setarray @pTYcoords[@Ti], 57; + + QWS_Make_Town_Menu 4; +//----------------Comodo: + setarray @pTmenuitems$[@Ti], "Comodo"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "comodo"; + setarray @pTXcoords[@Ti], 188; + setarray @pTYcoords[@Ti], 161; + + QWS_Make_Town_Menu 5; +//----------------Einbech: + setarray @pTmenuitems$[@Ti], "Einbech"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "einbech"; + setarray @pTXcoords[@Ti], 172; + setarray @pTYcoords[@Ti], 126; + + QWS_Make_Town_Menu 6; +//----------------Einbroch: + setarray @pTmenuitems$[@Ti], "Einbroch"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "einbroch"; + setarray @pTXcoords[@Ti], 230; + setarray @pTYcoords[@Ti], 191; + + QWS_Make_Town_Menu 7; +//----------------Geffen: + setarray @pTmenuitems$[@Ti], "Geffen"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "geffen"; + setarray @pTXcoords[@Ti], 119; + setarray @pTYcoords[@Ti], 66; + + QWS_Make_Town_Menu 8; +//----------------Gonryun: + setarray @pTmenuitems$[@Ti], "Gonryun"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "gonryun"; + setarray @pTXcoords[@Ti], 150; + setarray @pTYcoords[@Ti], 130; + + QWS_Make_Town_Menu 9; +//----------------Hugel: + setarray @pTmenuitems$[@Ti], "Hugel"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "hugel"; + setarray @pTXcoords[@Ti], 95; + setarray @pTYcoords[@Ti], 121; + + QWS_Make_Town_Menu 10; +//----------------Izlude: + setarray @pTmenuitems$[@Ti], "Izlude"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "izlude"; + setarray @pTXcoords[@Ti], 128; + setarray @pTYcoords[@Ti], 111; + + QWS_Make_Town_Menu 11; +//----------------Jawaii: + setarray @pTmenuitems$[@Ti], "Jawaii"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "jawaii"; + setarray @pTXcoords[@Ti], 243; + setarray @pTYcoords[@Ti], 115; + + QWS_Make_Town_Menu 12; +//----------------Lighthalzen: + setarray @pTmenuitems$[@Ti], "Lighthalzen"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "lighthalzen"; + setarray @pTXcoords[@Ti], 158; + setarray @pTYcoords[@Ti], 110; + + QWS_Make_Town_Menu 13; +//----------------Louyang: + setarray @pTmenuitems$[@Ti], "Louyang"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "louyang"; + setarray @pTXcoords[@Ti], 210; + setarray @pTYcoords[@Ti], 108; + + QWS_Make_Town_Menu 14; +//----------------Lutie + setarray @pTmenuitems$[@Ti], "Lutie"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "xmas"; + setarray @pTXcoords[@Ti], 148; + setarray @pTYcoords[@Ti], 131; + + QWS_Make_Town_Menu 15; +//----------------Morroc: + setarray @pTmenuitems$[@Ti], "Morroc"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "morocc"; + setarray @pTXcoords[@Ti], 159; + setarray @pTYcoords[@Ti], 93; + + QWS_Make_Town_Menu 16; +//----------------Niflheim: + setarray @pTmenuitems$[@Ti], "Niflheim"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "niflheim"; + setarray @pTXcoords[@Ti], 195; + setarray @pTYcoords[@Ti], 186; + + QWS_Make_Town_Menu 17; +//----------------Payon: + setarray @pTmenuitems$[@Ti], "Payon"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "payon"; + setarray @pTXcoords[@Ti], 152; + setarray @pTYcoords[@Ti], 75; + + QWS_Make_Town_Menu 18; +//----------------Umbala: + setarray @pTmenuitems$[@Ti], "Umbala"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "umbala"; + setarray @pTXcoords[@Ti], 130; + setarray @pTYcoords[@Ti], 130; + + QWS_Make_Town_Menu 19; +//----------------Yuno: + setarray @pTmenuitems$[@Ti], "Yuno"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "yuno"; + setarray @pTXcoords[@Ti], 160; + setarray @pTYcoords[@Ti], 168; + + QWS_Make_Town_Menu 20; +//----------------Cancel + setarray @pTmenuitems$[@Ti], "Cancel"; + setarray @pTprice[@Ti], 0; + + set @Tmenulist$[@Tj],@pTmenuitems$[@Ti]; + set @Tmenuref[@Tj],57005; // 57005='dead' in hex + return; + + +//----------------Make Town Menu Function + +function QWS_Make_Town_Menu { + set @temptownmenubin,1; + if (getarg(0) == 0) goto menu_item; + set @templooptownmenu,0; + do { + set @temptownmenubin, @temptownmenubin * 2; + set @templooptownmenu, @templooptownmenu + 1; + }while (getarg(0) > @templooptownmenu); +// check marker and make menu item +menu_item: + if ((@temptownmenubin & ##QWS_T_Unlock) != @temptownmenubin) { + set @Ti,@Ti+1; + return; + } + if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" -> "+@pTprice[@Ti]; + if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]; + if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"+" -> "+@pTprice[@Ti]; + if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"; + set @Tmenuref[@Tj],@Ti; + set @Tj,@Tj+1; + set @Ti,@Ti+1; + return; + +} +} + +//====================Dungeon=Menu=Arrays========================== + +//----------------A FAKE DUNGEON FOR EXAMPLE // I do this to find back sections quickly altho almost the same name is a line below it now +// setarray @pDmenuitems$[@Di], "Fake Dungeon"; // Name of Dungeon shown in Dungeon select Menu +// setarray @pDprice[@Di], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) +// setarray @pDfee$[@Di], "$QW_BW_FEE"; // Identifyer for the Dungeon fee caluclation (Basic ("$QW_BW_FEE"), Advanced ("$QW_AW_FEE"), Overseas ("$QW_OW_FEE")) please use setting in relation with option above (Don't forget "") +// setarray @DLevels[@Di], 2; //number of levels in dungeon (very important if set to high will shift all leveldata!!) +// +// setarray @DGat$[@Dref], "example_01", "example_02"; // mapfilename of dungeon level +// setarray @DLevelName$[@Dref], "Example Level 1", "Example Level 2"; // level name shown in dungeon level select +// setarray @DXcoords[@Dref], 123, 234; // X warp coords +// setarray @DYcoords[@Dref], 123, 234;// Y warp coords +// setarray @DDepth[@Dref], 0, 1; // relative depth to entrance to calculate extra warp fee +// +// QWS_Make_Dungeon_Menu XXX +// +// the full wap commands send out by this scripts for these examples would be +// for Example Level 1: +//warp example_01 123 123 +// +// for Example Level 2: +//warp example_02 234 234 +// +// use the same XXX number as you used when making your own dungeon unlocker (Warpra Helper) inside the dungeon +// (usually half way near a warp to next level) +// Read below how +// +// example: +// +//syntax: +//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ +// +// Full example using fake map & coords +// +//example_01,213,213,4 script Warpra Helper 112,{ +// callfunc "QWS_Dungeon_Warpra",XXX,"A FAKE DUNGEON FOR EXAMPLE"; +// close; +// } +// use a free number for XXX, last used is 28, for Kiel Dungeon + +function script QWS_Darray { + function QWS_Make_Dungeon_Menu; + + set @Di,0; + set @Dj,0; + set @Dref,0; +//----------------ABYSS LAKE + setarray @pDmenuitems$[@Di], "Abyss Lake"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "abyss_01", "abyss_02", "abyss_03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 265, 275, 116; + setarray @DYcoords[@Dref], 273, 270, 27; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 0; + +//----------------AMATSU DUNGEON + setarray @pDmenuitems$[@Di], "Amatsu Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "ama_dun01", "ama_dun02", "ama_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 227, 32, 119; + setarray @DYcoords[@Dref], 10, 43, 15; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 1; + +//----------------ANT HELL + setarray @pDmenuitems$[@Di], "Ant Hell Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[2], 2; + + setarray @DGat$[@Dref], "anthell01", "anthell02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 32, 34; + setarray @DYcoords[@Dref], 262, 263; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 2; + +//----------------AYOTAYA + setarray @pDmenuitems$[@Di], "Ayotaya Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[3], 2; + + setarray @DGat$[@Dref], "ayo_dun01", "ayo_dun02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 275, 150; + setarray @DYcoords[@Dref], 17, 13; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 3; + +//----------------BYALAN + setarray @pDmenuitems$[@Di], "Byalan Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[4], 5; + + setarray @DGat$[@Dref], "iz_dun00", "iz_dun01", "iz_dun02", "iz_dun03", "iz_dun04"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; + setarray @DXcoords[@Dref], 168, 41, 236, 32, 26; + setarray @DYcoords[@Dref], 168, 37, 204, 63, 27; + setarray @DDepth[@Dref], 0, 1, 2, 3, 4; + + QWS_Make_Dungeon_Menu 4; + +//----------------CLOCK TOWER + setarray @pDmenuitems$[@Di], "Clock Tower Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[5], 8; + + setarray @DGat$[@Dref], "c_tower1", "c_tower2", "c_tower3", "c_tower4", "alde_dun01", "alde_dun02", "alde_dun03", "alde_dun04"; + setarray @DLevelName$[@Dref], "Clock Tower Level 1", "Clock Tower Level 2", "Clock Tower Level 3", "Clock Tower Level 4", "Basement 1F", "Basement 2F", "Basement 3F", "Basement 4F"; + setarray @DXcoords[@Dref], 200, 268, 64, 32, 197, 262, 276, 122; + setarray @DYcoords[@Dref], 163, 26, 148, 63, 25, 41, 53, 125; + setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2, 3, 4; + + QWS_Make_Dungeon_Menu 5; + +//----------------COAL MINE + setarray @pDmenuitems$[@Di], "Coal Mine Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[6], 3; + + setarray @DGat$[@Dref], "mjo_dun01", "mjo_dun02", "mjo_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 52, 381, 302; + setarray @DYcoords[@Dref], 17, 343, 261; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 6; + +//----------------CULVERT + setarray @pDmenuitems$[@Di], "Culvert Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[7], 4; + + setarray @DGat$[@Dref], "prt_sewb1", "prt_sewb2", "prt_sewb3", "prt_sewb4"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; + setarray @DXcoords[@Dref], 132, 19, 180, 100; + setarray @DYcoords[@Dref], 248, 19, 169, 92; + setarray @DDepth[@Dref], 0, 1, 2, 3; + + QWS_Make_Dungeon_Menu 7; + +//----------------EINBECH DUNGEON + setarray @pDmenuitems$[@Di], "Einbech Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[8], 2; + + setarray @DGat$[@Dref], "ein_dun01", "ein_dun02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 22, 292; + setarray @DYcoords[@Dref], 14, 290; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 8; + +//----------------GEFENIA DUNGEON + setarray @pDmenuitems$[@Di], "Gefenia Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[9], 4; + + setarray @DGat$[@Dref], "gefenia01", "gefenia02", "gefenia03", "gefenia04"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; + setarray @DXcoords[@Dref], 59, 201, 264, 33; + setarray @DYcoords[@Dref], 167, 35, 236, 270; + setarray @DDepth[@Dref], 0, 1, 2, 3; + + QWS_Make_Dungeon_Menu 9; + +//----------------GEFFEN DUNGEON + setarray @pDmenuitems$[@Di], "Geffen Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 4; + + setarray @DGat$[@Dref], "gef_dun00", "gef_dun01", "gef_dun02", "gef_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; + setarray @DXcoords[@Dref], 104, 115, 106, 203; + setarray @DYcoords[@Dref], 100, 236, 132, 200; + setarray @DDepth[@Dref], 0, 1, 2, 3; + + QWS_Make_Dungeon_Menu 10; + +//----------------GLAST HEIM + setarray @pDmenuitems$[@Di], "Glast Heim Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 17; + + setarray @DGat$[@Dref], "glast_01", "gl_church", "gl_chyard", "gl_in01", "gl_cas01", "gl_cas02", "gl_knt01", "gl_knt02", "gl_prison", "gl_prison1", "gl_step", "gl_sew01", "gl_sew02", "gl_sew03", "gl_sew04", "gl_dun01", "gl_dun02"; + setarray @DLevelName$[@Dref], "Glast Heim Entrance", "St. Abbey", "Churchyard", "Inside Glast Heim", "Castle 1", "Castle 2", "Chivalry 1", "Chivalry 2", "Prison 1", "Prison 2", "Steps", "Sewers 1", "Sewers 2", "Sewers 3", "Sewers 4", "Lowest Cave 1", "Lowest Cave 2"; + setarray @DXcoords[@Dref], 370, 156, 147, 121, 199, 104, 150, 157, 14, 150, 117, 258, 108, 171, 68, 133, 224; + setarray @DYcoords[@Dref], 300, 8, 15, 59, 29, 25, 10, 287, 70, 14, 124, 255, 291, 273, 277, 271, 274; + setarray @DDepth[@Dref], 0, 1, 2, 1, 1, 2, 1, 2, 2, 3, 1, 4, 2, 3, 4, 5, 6; + + QWS_Make_Dungeon_Menu 11; + +//----------------GONRYUN DUNGEON + setarray @pDmenuitems$[@Di], "Gonryun Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "gon_dun01", "gon_dun02", "gon_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 143, 17, 68; + setarray @DYcoords[@Dref], 59, 114, 9; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 12; + +//----------------HIDDEN DUNGEON + setarray @pDmenuitems$[@Di], "Hidden Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "prt_maze01", "prt_maze02", "prt_maze03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 176, 94, 23; + setarray @DYcoords[@Dref], 6, 19, 8; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 13; + +//----------------JUPEROS CAVE + setarray @pDmenuitems$[@Di], "Juperos Cave"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "juperos_01", "juperos_02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 53, 36; + setarray @DYcoords[@Dref], 247, 60; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 14; + +//----------------KIEL DUNGEON + setarray @pDmenuitems$[@Di], "Kiel Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "kh_dun01", "kh_dun02"; + setarray @DLevelName$[@Dref], "1st Floor", "2nd Floor"; + setarray @DXcoords[@Dref], 63, 42; + setarray @DYcoords[@Dref], 10, 197; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 28; + +//----------------LIGHTHALZEN BIO LAB + setarray @pDmenuitems$[@Di], "Lighthalzen Bio Lab"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "lhz_dun01", "lhz_dun02", "lhz_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 150, 150, 140; + setarray @DYcoords[@Dref], 287, 18, 137; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 15; + +//----------------LOUYANG DUNGEON + setarray @pDmenuitems$[@Di], "Louyang Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "lou_dun02", "lou_dun03"; + setarray @DLevelName$[@Dref], "Royal Tomb Level 1", "Royal Tomb Level 2"; + setarray @DXcoords[@Dref], 282, 165; + setarray @DYcoords[@Dref], 20, 38; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 16; + +//----------------MAGMA DUNGEON + setarray @pDmenuitems$[@Di], "Magma Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "mag_dun01", "mag_dun02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 126, 47; + setarray @DYcoords[@Dref], 69, 32; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 17; + +//----------------ODIN TEMPLE + setarray @pDmenuitems$[@Di], "Odin Temple"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 1; + + setarray @DGat$[@Dref], "odin_tem01"; + setarray @DLevelName$[@Dref], "Level 1"; + setarray @DXcoords[@Dref], 96; + setarray @DYcoords[@Dref], 145; + setarray @DDepth[@Dref], 0; + + QWS_Make_Dungeon_Menu 18; + +//----------------ORC DUNGEON + setarray @pDmenuitems$[@Di], "Orc Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "orcsdun01", "orcsdun02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 32, 21; + setarray @DYcoords[@Dref], 169, 185; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 19; + +//----------------PAYON DUNGEON + setarray @pDmenuitems$[@Di], "Payon Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 5; + + setarray @DGat$[@Dref], "pay_dun00", "pay_dun01", "pay_dun02", "pay_dun03", "pay_dun04"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; + setarray @DXcoords[@Dref], 22, 19, 19, 155, 201; + setarray @DYcoords[@Dref], 180, 33, 63, 159, 204; + setarray @DDepth[@Dref], 0, 1, 2, 3, 4; + + QWS_Make_Dungeon_Menu 20; + +//----------------PYRAMIDS + setarray @pDmenuitems$[@Di], "Pyramids Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 6; + + setarray @DGat$[@Dref], "moc_pryd01", "moc_pryd02", "moc_pryd03", "moc_pryd04", "moc_pryd05", "moc_pryd06"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Basement 1", "Basement 2"; + setarray @DXcoords[@Dref], 192, 10, 100, 181, 94, 192; + setarray @DYcoords[@Dref], 9, 192, 92, 11, 96, 8; + setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2; + + QWS_Make_Dungeon_Menu 21; + +//----------------SPHINX + setarray @pDmenuitems$[@Di], "Sphinx Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 5; + + setarray @DGat$[@Dref], "in_sphinx1", "in_sphinx2", "in_sphinx3", "in_sphinx4", "in_sphinx5"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; + setarray @DXcoords[@Dref], 192, 149, 210, 10, 100; + setarray @DYcoords[@Dref], 9, 81, 54, 222, 99; + setarray @DDepth[@Dref], 0, 1, 2, 3, 4; + + QWS_Make_Dungeon_Menu 22; + +//----------------SUNKEN SHIP + setarray @pDmenuitems$[@Di], "Sunken Ship Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "treasure01", "treasure02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 69, 102; + setarray @DYcoords[@Dref], 24, 27; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 23; + +//----------------THANATOS TOWER + setarray @pDmenuitems$[@Di], "Thanatos Tower"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 13; + + setarray @DGat$[@Dref], "tha_t01", "tha_t02", "tha_t03", "tha_t04", "tha_t05", "tha_t06", "tha_t07", "tha_t08", "tha_t09", "tha_t10", "tha_t11", "tha_t12", "thana_boss"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6", "Level 7", "Level 8", "Level 9", "Level 10", "Level 11", "Level 12", "Thanatos Boss"; + setarray @DXcoords[@Dref], 150, 150, 220, 59, 62, 206, 35, 105, 88, 168, 90, 129, 85; + setarray @DYcoords[@Dref], 35, 136, 158, 143, 11, 8, 166, 44, 145, 138, 36, 83, 76; + setarray @DDepth[@Dref], 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; + + QWS_Make_Dungeon_Menu 24; + +//----------------TOY FACTORY + setarray @pDmenuitems$[@Di], "Toy Factory Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "xmas_dun01", "xmas_dun02"; + setarray @DLevelName$[@Dref], "Factory Warehouse", "Classifying Room"; + setarray @DXcoords[@Dref], 205, 129; + setarray @DYcoords[@Dref], 16, 133; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 25; + +//----------------TURTLE ISTLAND + setarray @pDmenuitems$[@Di], "Turtle Island Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 4; + + setarray @DGat$[@Dref], "tur_dun01", "tur_dun02", "tur_dun03", "tur_dun04"; + setarray @DLevelName$[@Dref], "Outside", "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 161, 148, 132, 100; + setarray @DYcoords[@Dref], 34, 256, 190, 192; + setarray @DDepth[@Dref], 0, 0, 1, 2; + + QWS_Make_Dungeon_Menu 26; + +//----------------UMBALA + setarray @pDmenuitems$[@Di], "Umbala Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "um_dun01", "um_dun02", "yggdrasil01"; + setarray @DLevelName$[@Dref], "Carpenter's Shop in The Tree", "Passage to a Foreign World", "Hvergelmir's Fountain"; + setarray @DXcoords[@Dref], 205, 48, 40; + setarray @DYcoords[@Dref], 26, 30, 63; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 27; + +//----------------Cancel + setarray @pDmenuitems$[@Di], "Cancel"; + setarray @pDprice[@Di], 0; + + set @Dmenulist$[@Dj],@pDmenuitems$[@Di]; + set @Dmenuref[@Dj],57005; // 57005='dead' in hex + return; + + +//----------------Make Dungeon Menu Function + +function QWS_Make_Dungeon_Menu { + set @tempdungeonmenubin,1; + if (getarg(0) == 0) goto menu_item; + set @temploopdungeonmenu,0; + do { + set @tempdungeonmenubin, @tempdungeonmenubin * 2; + set @temploopdungeonmenu, @temploopdungeonmenu + 1; + }while (getarg(0) > @temploopdungeonmenu); +// check marker and make menu item +menu_item: + if ((@tempdungeonmenubin & ##QWS_D_Unlock) != @tempdungeonmenubin) { + setarray @DLocRef[@Di], @Dref; + set @Dref, @Dref+@DLevels[@Di]; + set @Di,@Di+1; + return; + } + if ($QW_MapUserShow == 1) { + set @tempmapusers,0; + set @mapusersloop,0; + do { + set @tempmapusers,(getmapusers(@DGat$[@Dref+@mapusersloop]) + @tempmapusers); + set @mapusersloop, (@mapusersloop + 1); + }while (@DLevels[@Di] > @mapusersloop); + if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"] -> "+@pDprice[@Di]; + if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"]"; + set @Dmenuref[@Dj],@Di; + set @Dj,@Dj+1; + setarray @DLocRef[@Di], @Dref; + set @Dref, @Dref+@DLevels[@Di]; + set @Di,@Di+1; + return; + } + if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di]; + if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]; + set @Dmenuref[@Dj],@Di; + set @Dj,@Dj+1; + setarray @DLocRef[@Di], @Dref; + set @Dref, @Dref+@DLevels[@Di]; + set @Di,@Di+1; + return; + +} +} + +function script QWS_DLarray { +//----------------Start building Menu + set @DWref,@DLocRef[@DwarpMenu]; // That's our reference to the arrays with leveldata. + set @DWi,0; // That's our loop counter. + set @DWj,0; // That's the menu lines counter. + cleararray @DWLmenulist$[0],"",20; // Clearing the array to get rid off ghost items in menu + do { + if ($QW_DL == 0)||($QW_DDL >= @DDepth[@DWref]) { + + set @warpprice, (@pDprice[@DwarpMenu]+ (getd(@pDfee$[@DwarpMenu])*@DDepth[@DWref])); + + if (@warpprice != 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" -> "+@warpprice; + if (@warpprice == 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]; + if (@warpprice != 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"] -> "+@warpprice; + if (@warpprice == 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"]"; + set @DWLmenuref[@DWj],@DWref; + + set @DWj,@DWj+1; + } + set @DWref, @DWref+1; + set @DWi,@DWi+1; + }while (@DWi < @DLevels[@DwarpMenu]); + set @DWLmenulist$[@DWj], "Exit"; + set @DWLmenuref[@DWj],57005; // 57005='dead' in hex + return; + } + + +//=================Backwards=Compatibility=Pre=1.8================= + +function script QWS_BackComp { +// reference where i put the towns: "Prontera"[0], "Alberta"[1], "Aldebaran"[2], "Amatsu"[3], "Ayothaya"[4], "Comodo"[5], "Einbech"[6], "Einbroch"[7], "Geffen"[8], "Gonryun"[9], "Hugel"[10], "Izlude"[11], "Jawaii"[12], "Lighthalzen"[13], "Louyang"[14], "Lutie"[15], "Morroc"[16], "Niflheim"[17], "Payon"[18], "Umbala"[19], "Yuno"[20]; +// reference where i put the dungeons: "Abyss Lake"[0], "Amatsu Dungeon"[1], "Ant Hell Dungeon"[2], "Ayotaya Dungeon"[3], "Byalan Dungeon"[4], "Clock Tower Dungeon"[5], "Coal Mine Dungeon"[6], "Culvert Dungeon"[7], "Einbech Dungeon"[8], "Gefenia Dungeon"[9], "Geffen Dungeon"[10], "Glast Heim Dungeon"[11], "Gonryun Dungeon"[12], "Hidden Dungeon"[13], "Juperos Cave"[14], "Lighthalzen Bio Lab"[15], "Louyang Dungeon"[16], "Magma Dungeon"[17], "Odin Temple"[18], "Orc Dungeon"[19], "Payon Dungeon"[20], "Pyramids Dungeon"[21], "Sphinx Dungeon"[22], "Sunken Ship Dungeon"[23], "Thanatos Tower"[24], "Toy Factory Dungeon"[25], "Turtle Island Dungeon"[26], "Umbala Dungeon"[27], "Kiel Dungeon[28]; +// also clears variables so that the account file variables can be used for something else variable 0 = variable delete on next save + +// Towns + set @towntemp,0; + if (#prontera != 0) set @towntemp,@towntemp + 1; + if (#alberta != 0) set @towntemp,@towntemp + 2; + if (#aldebaran != 0) set @towntemp,@towntemp + 4; + if (#amatsu != 0) set @towntemp,@towntemp + 8; + if (#ayotaya != 0) set @towntemp,@towntemp + 16; + if (#comodo != 0) set @towntemp,@towntemp + 32; + if (#einbech != 0) set @towntemp,@towntemp + 64; + if (#einbroch != 0) set @towntemp,@towntemp + 128; + if (#geffen != 0) set @towntemp,@towntemp + 256; + if (#gonryun != 0) set @towntemp,@towntemp + 512; + if (#hugel != 0) set @towntemp,@towntemp + 1024; + if (#izlude != 0) set @towntemp,@towntemp + 2048; + if (#jawaii != 0) set @towntemp,@towntemp + 4096; + if (#lighthalzen != 0) set @towntemp,@towntemp + 8192; + if (#louyang != 0) set @towntemp,@towntemp + 16384; + if (#xmas != 0) set @towntemp,@towntemp + 32768; + if (#morocc != 0) set @towntemp,@towntemp + 65536; + if (#niflheim != 0) set @towntemp,@towntemp + 131072; + if (#payon != 0) set @towntemp,@towntemp + 262144; + if (#umbala != 0) set @towntemp,@towntemp + 524288; + if (#yuno != 0) set @towntemp,@towntemp + 1048576; +// Clear Town variables + set #prontera,0; + set #alberta,0; + set #aldebaran,0; + set #amatsu,0; + set #ayotaya,0; + set #comodo,0; + set #einbech,0; + set #einbroch,0; + set #geffen,0; + set #gonryun,0; + set #hugel,0; + set #izlude,0; + set #jawaii,0; + set #lighthalzen,0; + set #louyang,0; + set #xmas,0; + set #morocc,0; + set #niflheim,0; + set #payon,0; + set #umbala,0; + set #yuno,0; +// set Town warp unlock variable +set ##QWS_T_Unlock, (##QWS_T_Unlock | @towntemp); + //because multiple account servers now stack on 1 variable i used a 'or' to stack them +// Dungeons + set @dungeontemp,0; + if (#abyss != 0) set @dungeontemp,@dungeontemp + 1; + if (#ama_dun != 0) set @dungeontemp,@dungeontemp + 2; + if (#anthell != 0) set @dungeontemp,@dungeontemp + 4; + if (#ayotaya_dun != 0) set @dungeontemp,@dungeontemp + 8; + if (#iz_dun != 0) set @dungeontemp,@dungeontemp + 16; + if (#c_tower != 0) set @dungeontemp,@dungeontemp + 32; + if (#mjo_dun != 0) set @dungeontemp,@dungeontemp + 64; + if (#prt_sewb != 0) set @dungeontemp,@dungeontemp + 128; + if (#einbech_dun != 0) set @dungeontemp,@dungeontemp + 256; + if (#gefenia != 0) set @dungeontemp,@dungeontemp + 512; + if (#gef_dun != 0) set @dungeontemp,@dungeontemp + 1024; + if (#gl_dun != 0) set @dungeontemp,@dungeontemp + 2048; + if (#gon_dun != 0) set @dungeontemp,@dungeontemp + 4096; + if (#hid_dun != 0) set @dungeontemp,@dungeontemp + 8192; + if (#juperos != 0) set @dungeontemp,@dungeontemp + 16384; + if (#lighthalzen_dun != 0) set @dungeontemp,@dungeontemp + 32768; + if (#louyang_dun != 0) set @dungeontemp,@dungeontemp + 65536; + if (#mag_dun != 0) set @dungeontemp,@dungeontemp + 131072; + if (#odintemple != 0) set @dungeontemp,@dungeontemp + 262144; + if (#orcsdun != 0) set @dungeontemp,@dungeontemp + 524288; + if (#pay_dun != 0) set @dungeontemp,@dungeontemp + 1048576; + if (#moc_pryd != 0) set @dungeontemp,@dungeontemp + 2097152; + if (#in_sphinx != 0) set @dungeontemp,@dungeontemp + 4194304; + if (#treasure != 0) set @dungeontemp,@dungeontemp + 8388608; + if (#thanatos_tower != 0) set @dungeontemp,@dungeontemp + 16777216; + if (#xmas_dun != 0) set @dungeontemp,@dungeontemp + 33554432; + if (#tur_dun != 0) set @dungeontemp,@dungeontemp + 67108864; + if (#um_dun != 0) set @dungeontemp,@dungeontemp + 134217728; +// Clear Dungeon variables + set #abyss,0; + set #ama_dun,0; + set #anthell,0; + set #ayotaya_dun,0; + set #iz_dun,0; + set #c_tower,0; + set #mjo_dun,0; + set #prt_sewb,0; + set #einbech_dun,0; + set #gefenia,0; + set #gef_dun,0; + set #gl_dun,0; + set #gon_dun,0; + set #hid_dun,0; + set #juperos,0; + set #lighthalzen_dun,0; + set #louyang_dun,0; + set #mag_dun,0; + set #odintemple,0; + set #orcsdun,0; + set #pay_dun,0; + set #moc_pryd,0; + set #in_sphinx,0; + set #treasure,0; + set #thanatos_tower,0; + set #xmas_dun,0; + set #tur_dun,0; + set #um_dun,0; +// set Town warp unlock variable +set ##QWS_D_Unlock, (##QWS_D_Unlock | @dungeontemp); +//mark that this character has done the upgrade to 1.8 +set ##QWS_UP,18; +return; +} + + +//===================Extra=Variable=Clear=Pre=1.8================== +function script Extra_Variable_Clear { +// Clear Town variables + set #prontera,0; + set #alberta,0; + set #aldebaran,0; + set #amatsu,0; + set #ayotaya,0; + set #comodo,0; + set #einbech,0; + set #einbroch,0; + set #geffen,0; + set #gonryun,0; + set #hugel,0; + set #izlude,0; + set #jawaii,0; + set #lighthalzen,0; + set #louyang,0; + set #xmas,0; + set #morocc,0; + set #niflheim,0; + set #payon,0; + set #umbala,0; + set #yuno,0; + +// Clear Dungeon variables + set #abyss,0; + set #ama_dun,0; + set #anthell,0; + set #ayotaya_dun,0; + set #iz_dun,0; + set #c_tower,0; + set #mjo_dun,0; + set #prt_sewb,0; + set #einbech_dun,0; + set #gefenia,0; + set #gef_dun,0; + set #gl_dun,0; + set #gon_dun,0; + set #hid_dun,0; + set #juperos,0; + set #lighthalzen_dun,0; + set #louyang_dun,0; + set #mag_dun,0; + set #odintemple,0; + set #orcsdun,0; + set #pay_dun,0; + set #moc_pryd,0; + set #in_sphinx,0; + set #treasure,0; + set #thanatos_tower,0; + set #xmas_dun,0; + set #tur_dun,0; + set #um_dun,0; + +// as the account based variables are limited just run this on every character to save some variables +set QWS_ExtraVARClear,18; +return; +} + +//================Dungeon=Warpras=That=Only=Unlock================= + +function script QWS_Dungeon_Warpra { + function QWS_D_getbin; + function QWS_D_setbin; + + if ((QWS_D_getbin(getarg(0)) == 0) && (getarg(1) != "")) { + mes "[Warpra]"; + mes getarg(1)+" unlocked!"; + QWS_D_setbin(getarg(0)); + return; + } else if (QWS_D_getbin(getarg(0)) == 1){ + mes "[Warpra]"; + mes "Sorry I can only unlock this location."; + } else + debugmes "QWS_Dungeon_Warpra error, improper syntax ?"; + return; + + +function QWS_D_setbin { + set @tempsetbindata,1; + if (getarg(0) == 0) goto binset; + set @temploopsetbin,0; + do { + set @tempsetbindata, @tempsetbindata * 2; + set @temploopsetbin, @temploopsetbin + 1; + } while (getarg(0) > @temploopsetbin); +binset: + set ##QWS_D_Unlock,(##QWS_D_Unlock | @tempsetbindata); + return; +} + +function QWS_D_getbin { + set @tempgetbindata,1; + if (getarg(0) == 0) goto binget; + set @temploopgetbin,0; + do { + set @tempgetbindata, @tempgetbindata * 2; + set @temploopgetbin, @temploopgetbin + 1; + } while (getarg(0) > @temploopgetbin); +binget: + if ((@tempgetbindata & ##QWS_D_Unlock) == @tempgetbindata) return 1; + return 0; +} +} + +//==========================Town=Warpras=========================== + +function script QWS_Town_Warpra { + function QWS_T_getbin; + function QWS_T_setbin; + + if ((QWS_T_getbin(getarg(0)) == 0) && (getarg(1) != "")) { + mes "[Warpra]"; + mes getarg(1)+" unlocked!"; + QWS_T_setbin(getarg(0)); + return; + } else if (QWS_T_getbin(getarg(0)) == 1){ +callfunc "Q_Warpra",0; + } else + debugmes "QWS_Town_Warpra error, improper syntax ?"; + return; + + +function QWS_T_setbin { + set @tempsetbindata,1; + if (getarg(0) == 0) goto binset; + set @temploopsetbin,0; + do { + set @tempsetbindata, @tempsetbindata * 2; + set @temploopsetbin, @temploopsetbin + 1; + } while (getarg(0) > @temploopsetbin); +binset: + set ##QWS_T_Unlock,(##QWS_T_Unlock | @tempsetbindata); + return; +} + +function QWS_T_getbin { + set @tempgetbindata,1; + if (getarg(0) == 0) goto binget; + set @temploopgetbin,0; + do { + set @tempgetbindata, @tempgetbindata * 2; + set @temploopgetbin, @temploopgetbin + 1; + } while (getarg(0) > @temploopgetbin); +binget: + if ((@tempgetbindata & ##QWS_T_Unlock) == @tempgetbindata) return 1; + return 0; +} +} +//============================Warpras============================== + +alb2trea,73,101,4 script Warpra#1 113,{ + callfunc "Q_Warpra",1; +} +ama_fild01,178,325,1 script Warpra#2 113,{ + callfunc "Q_Warpra",1; +} +gef_fild10,71,339,4 script Warpra#3 113,{ + callfunc "Q_Warpra",1; +} +izlu2dun,104,82,4 script Warpra#4 113,{ + callfunc "Q_Warpra",1; +} +mjolnir_02,85,363,4 script Warpra#5 113,{ + callfunc "Q_Warpra",1; +} +moc_fild04,207,331,4 script Warpra#6 113,{ + callfunc "Q_Warpra",1; +} +moc_fild19,106,97,4 script Warpra#7 113,{ + callfunc "Q_Warpra",1; +} +moc_ruins,64,166,4 script Warpra#8 113,{ + callfunc "Q_Warpra",1; +} +niflheim,197,192,3 script Warpra#9 113,{ + callfunc "Q_Warpra",1; +} +pay_arche,39,135,4 script Warpra#10 113,{ + callfunc "Q_Warpra",1; +} +prt_fild05,273,215,4 script Warpra#11 113,{ + callfunc "Q_Warpra",1; +} +tur_dun01,148,239,4 script Warpra#12 113,{ + callfunc "Q_Warpra",1; +} +valkyrie,48,35,8 script Warpra#13 113,{ + callfunc "Q_Warpra",1; +} +yuno_fild03,37,135,4 script Warpra#14 113,{ + callfunc "Q_Warpra",1; +} + +alberta,32,240,4 script Warpra#15 113,{ + callfunc "QWS_Town_Warpra",1,"Alberta Town"; + close; +} +aldebaran,146,118,4 script Warpra#16 113,{ + callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; + close; +} +ayothaya,216,171,5 script Warpra#17 113,{ + callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; + close; +} +amatsu,193,81,1 script Warpra#18 113,{ + callfunc "QWS_Town_Warpra",3,"Amatsu Town"; + close; +} +comodo,195,158,4 script Warpra#19 113,{ + callfunc "QWS_Town_Warpra",5,"Comodo Town"; + close; +} +einbroch,229,196,5 script Warpra#20 113,{ + callfunc "QWS_Town_Warpra",7,"Einbroch Town"; + close; +} +einbech,173,131,5 script Warpra#21 113,{ + callfunc "QWS_Town_Warpra",6,"Einbech Town"; + close; +} +geffen,116,66,4 script Warpra#22 113,{ + callfunc "QWS_Town_Warpra",8,"Geffen Town"; + close; +} +gonryun,152,130,4 script Warpra#23 113,{ + callfunc "QWS_Town_Warpra",9,"Gonryun Town"; + close; +} +hugel,90,127,5 script Warpra#24 113,{ + callfunc "QWS_Town_Warpra",10,"Hugel Town"; + close; +} +jawaii,107,182,5 script Warpra#25 113,{ + callfunc "QWS_Town_Warpra",12,"Jawaii Town"; + close; +} +izlude,132,116,4 script Warpra#26 113,{ + callfunc "QWS_Town_Warpra",11,"Izlude Town"; + close; +} +lighthalzen,153,100,5 script Warpra#27 113,{ + callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; + close; +} +louyang,211,106,4 script Warpra#28 113,{ + callfunc "QWS_Town_Warpra",14,"Louyang Town"; + close; +} +morocc,157,95,4 script Warpra#29 113,{ + callfunc "QWS_Town_Warpra",16,"Morroc Town"; + close; +} +nif_fild01,319,77,1 script Warpra#30 113,{ + callfunc "QWS_Town_Warpra",17,"Niflheim Town"; + close; +} +payon,183,110,4 script Warpra#31 113,{ + callfunc "QWS_Town_Warpra",18,"Payon Town"; + close; +} +prontera,147,172,5 script Warpra#32 113,{ + callfunc "QWS_Town_Warpra",0,"Prontera Town"; + close; +} +umbala,133,130,4 script Warpra#33 113,{ + callfunc "QWS_Town_Warpra",19,"Umbala Town"; + close; +} +xmas,151,136,4 script Warpra#34 113,{ + callfunc "QWS_Town_Warpra",15,"Lutie Town"; + close; +} +yuno,138,162,4 script Warpra#35 113,{ + callfunc "QWS_Town_Warpra",20,"Yuno Town"; + close; +} + +abyss_02,274,266,1 script Warpra#36 113,{ + callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; + close; +} + +ama_dun02,192,118,5 script Warpra Helper#1 112,{ + callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; + close; +} + +anthell02,170,165,3 script Warpra Helper#2 112,{ + callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; + close; +} + +ayo_dun02,258,193,5 script Warpra Helper#3 112,{ + callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; + close; +} + +ein_dun02,292,282,1 script Warpra Helper#4 112,{ + callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; + close; +} + +iz_dun03,202,47,2 script Warpra Helper#5 112,{ + callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; + close; +} + +c_tower3,129,106,4 script Warpra Helper#6 112,{ + callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; + close; +} + +mjo_dun02,39,25,4 script Warpra Helper#7 112,{ + callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; + close; +} + +prt_sewb2,176,30,3 script Warpra Helper#8 112,{ + callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; + close; +} + +gefenia03,137,34,0 script Warpra Helper#9 112,{ + callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; + close; +} + +gef_dun02,218,61,2 script Warpra Helper#10 112,{ + callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; + close; +} + +glast_01,371,308,3 script Warpra Helper#11 112,{ + callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; + close; +} + +gon_dun01,167,273,4 script Warpra Helper#12 112,{ + callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; + close; +} + +juperos_02,127,154,5 script Warpra Helper#13 112,{ + callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; + close; +} + +kh_dun01,14,224,3 script Warpra Helper#14 112,{ + callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; + close; +} + +lhz_dun02,156,151,5 script Warpra Helper#15 112,{ + callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; + close; +} + +lou_dun02,168,264,4 script Warpra Helper#16 112,{ + callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; + close; +} + +mag_dun02,46,41,3 script Warpra Helper#17 112,{ + callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; + close; +} + +odin_tem01,115,148,3 script Warpra Helper#18 112,{ + callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; + close; +} + +orcsdun01,185,11,3 script Warpra Helper#19 112,{ + callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; + close; +} + +pay_dun03,162,143,3 script Warpra Helper#20 112,{ + callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; + close; +} + +moc_pryd02,101,95,3 script Warpra Helper#21 112,{ + callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; + close; +} + +in_sphinx2,274,268,1 script Warpra Helper#22 112,{ + callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; + close; +} + +tha_t07,111,162,3 script Warpra Helper#23 112,{ + callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; + close; +} + +treasure02,104,40,3 script Warpra Helper#24 112,{ + callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; + close; +} + +xmas_dun02,124,131,3 script Warpra Helper#25 112,{ + callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; + close; +} + +um_dun02,44,28,3 script Warpra Helper#26 112,{ + callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; + close; +} + +tur_dun02,162,23,3 script Warpra Helper#27 112,{ + callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; + close; +} +prt_maze02,102,69,4 script Warpra Helper#28 112,{ + callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; + close; +} diff --git a/npc/custom/resetnpc.txt b/npc/custom/resetnpc.txt index 4069c9f09..6d630a41f 100644 --- a/npc/custom/resetnpc.txt +++ b/npc/custom/resetnpc.txt @@ -1,62 +1,62 @@ -//===== rAthena Script ======================================= -//= Reset NPC -//===== By: ================================================== -//= rAthena Dev Team -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Resets skills, stats, or both. -//===== Additional Comments: ================================= -//= 1.0 First Version -//= 1.1 Optimized for the greater good. [Kisuka] -//= 1.2 Cleaning [Euphy] -//============================================================ - -prontera,150,193,4 script Reset Girl 124,{ - - set .@ResetStat,5000; // Zeny for stat reset - set .@ResetSkill,5000; // Zeny for skill reset - set .@ResetBoth,9000; // Zeny for resetting both together - - mes "[Reset Girl]"; - mes "I am the Reset Girl."; - mes "Reset Stats: "+ .@ResetStat +"z"; - mes "Reset Skills: "+ .@ResetSkill +"z"; - mes "Reset Both: "+ .@ResetBoth +"z"; - mes "Please select the service you want:"; - next; - switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) { - case 1: - mes "[Reset Girl]"; - if (Zeny < .@ResetSkill) { - mes "Sorry, you don't have enough Zeny."; - close; } - set Zeny, Zeny-.@ResetSkill; - ResetSkill; - mes "There you go!"; - close; - case 2: - mes "[Reset Girl]"; - if (Zeny < .@ResetStat) { - mes "Sorry, you don't have enough Zeny."; - close; } - set Zeny, Zeny-.@ResetStat; - ResetStatus; - mes "There you go!"; - close; - case 3: - mes "[Reset Girl]"; - if (Zeny < .@ResetBoth) { - mes "Sorry, you don't have enough Zeny."; - close; } - set Zeny, Zeny-.@ResetBoth; - ResetSkill; - ResetStatus; - mes "There you go!"; - close; - case 4: - close; - } +//===== rAthena Script ======================================= +//= Reset NPC +//===== By: ================================================== +//= rAthena Dev Team +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Resets skills, stats, or both. +//===== Additional Comments: ================================= +//= 1.0 First Version +//= 1.1 Optimized for the greater good. [Kisuka] +//= 1.2 Cleaning [Euphy] +//============================================================ + +prontera,150,193,4 script Reset Girl 124,{ + + set .@ResetStat,5000; // Zeny for stat reset + set .@ResetSkill,5000; // Zeny for skill reset + set .@ResetBoth,9000; // Zeny for resetting both together + + mes "[Reset Girl]"; + mes "I am the Reset Girl."; + mes "Reset Stats: "+ .@ResetStat +"z"; + mes "Reset Skills: "+ .@ResetSkill +"z"; + mes "Reset Both: "+ .@ResetBoth +"z"; + mes "Please select the service you want:"; + next; + switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) { + case 1: + mes "[Reset Girl]"; + if (Zeny < .@ResetSkill) { + mes "Sorry, you don't have enough Zeny."; + close; } + set Zeny, Zeny-.@ResetSkill; + ResetSkill; + mes "There you go!"; + close; + case 2: + mes "[Reset Girl]"; + if (Zeny < .@ResetStat) { + mes "Sorry, you don't have enough Zeny."; + close; } + set Zeny, Zeny-.@ResetStat; + ResetStatus; + mes "There you go!"; + close; + case 3: + mes "[Reset Girl]"; + if (Zeny < .@ResetBoth) { + mes "Sorry, you don't have enough Zeny."; + close; } + set Zeny, Zeny-.@ResetBoth; + ResetSkill; + ResetStatus; + mes "There you go!"; + close; + case 4: + close; + } } \ No newline at end of file diff --git a/npc/custom/stylist.txt b/npc/custom/stylist.txt index c91853b32..3bcb04c9e 100644 --- a/npc/custom/stylist.txt +++ b/npc/custom/stylist.txt @@ -1,33 +1,33 @@ -//===== rAthena Script ======================================= -//= Stylist -//===== By: ================================================== -//= Euphy -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Changes your hair style, hair color, and cloth color. -//============================================================ - -prontera,170,180,1 script Stylist#custom_stylist 122,{ - - setarray .@Styles[1],553,37,250; // Maximum dye, hair style, and hair color - - setarray .@Look[1],7,1,6; - set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); - set .@Revert, getlook(.@Look[.@s]); set .@Style,1; - while(1) { - setlook .@Look[.@s], .@Style; - message strcharinfo(0),"This is style #"+.@Style+"."; - set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; - switch(select(.@menu$)) { - case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break; - case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break; - case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+"."; - input .@Style,0,.@Styles[.@s]; - if (!.@Style) set .@Style, rand(1,.@Styles[.@s]); - break; - case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; } - } end; +//===== rAthena Script ======================================= +//= Stylist +//===== By: ================================================== +//= Euphy +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Changes your hair style, hair color, and cloth color. +//============================================================ + +prontera,170,180,1 script Stylist#custom_stylist 122,{ + + setarray .@Styles[1],553,37,250; // Maximum dye, hair style, and hair color + + setarray .@Look[1],7,1,6; + set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); + set .@Revert, getlook(.@Look[.@s]); set .@Style,1; + while(1) { + setlook .@Look[.@s], .@Style; + message strcharinfo(0),"This is style #"+.@Style+"."; + set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; + switch(select(.@menu$)) { + case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break; + case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break; + case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+"."; + input .@Style,0,.@Styles[.@s]; + if (!.@Style) set .@Style, rand(1,.@Styles[.@s]); + break; + case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; } + } end; } \ No newline at end of file diff --git a/npc/merchants/falcon_flute.txt b/npc/merchants/falcon_flute.txt index 707fee35b..738275d73 100644 --- a/npc/merchants/falcon_flute.txt +++ b/npc/merchants/falcon_flute.txt @@ -1,123 +1,123 @@ -//===== rAthena Script ======================================= -//= Falcon Flute Trader -//===== By: ================================================== -//= Masao -//= Credits to Muad_Dib for the translation & Ziu for the -//= Item ID of the Falcon Flute. -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena -//===== Description: ========================================= -//= An NPC which sells you a Falcon Flute so you're able to -//= summon a Falcon wherever you are. -//===== Additional Comments: ================================= -//= 1.0 First Version. [Masao] -//= 1.1 Added Baby Hunter and Baby Ranger check. bugreport:5728 [Masao] -//============================================================ - -- script Falcon Flute Trader::fflute -1,{ - - if (Class == Job_Baby_Hunter || Class == Job_Hunter || Class == Job_Sniper || Class == Job_Baby_Ranger || Class == Job_Ranger || Class == Job_Ranger_T) { - mes "[Falcon Flute Trader]"; - mes "Do you need a Falcon?"; - mes "With a magical Flute, you can call your Falcon from anywhere!"; - next; - mes "[Falcon Flute Trader]"; - mes "It's marvelous, isn't it? Ha ha ha!"; - next; - mes "[Falcon Flute Trader]"; - mes "Why I'm selling these Falcon Flutes?"; - mes "It's because I have no clue how they work."; - mes "Ha ha ha!"; - next; - mes "[Falcon Flute Trader]"; - mes "Of course, you'll need the Skill ^ff0000Falcon Mastery^000000."; - mes "I don't have the Skill, so I don't know how to handle Falcons."; - mes "As it's for now, I may never have a Falcon."; - next; - mes "[Falcon Flute Trader]"; - mes "But I can't give you one for free!"; - mes "I have to make money since i also need to eat!"; - next; - mes "[Falcon Flute Trader]"; - mes "If you need a Falcon Flute I will sell them for 12,500 zeny. Or is that too expensive?"; - next; - if (Class == Job_Baby_Hunter || Class == Job_Hunter || Class == Job_Sniper) { - switch (select("Don't buy one:Buy a Falcon Flute")) { - case 1: - mes "[Falcon Flute Trader]"; - mes "That's too bad. If you need one, come back!"; - close; - case 2: - if (Zeny >= 12500) { - if (countitem(12848) >= 1) { - mes "[Falcon Flute Trader]"; - mes "As i can see you already have an Falcon Flute!"; - mes "Don't worry my young friend, once you've purchased the Falcon Flute you won't need to do so again"; - mes "since the Falcon Flute won't disappear upon usage, isn't that great?"; - close; - } - mes "[Falcon Flute Trader]"; - mes "Here, take this Flute."; - mes "With it you can whistle for your Falcon from anywhere."; - set Zeny, Zeny - 12500; - getitem 12848,1; // Falcon Flute - next; - mes "[Falcon Flute Trader]"; - mes "Just a reminder."; - mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!"; - close; - } - mes "[Falcon Flute Trader]"; - mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!"; - close; - } - } - mes "[Falcon Flute Trader]"; - mes "For Rangers however, I have a special Price of 10,000 zeny!"; - next; - switch (select("Don't buy one:Buy a Falcon flute")) { - case 1: - mes "[Falcon Flute Trader]"; - mes "That's too bad. If you need one, come back!"; - close; - case 2: - if (Zeny >= 10000) { - if (countitem(12848) >= 1) { - mes "[Falcon Flute Trader]"; - mes "As i can see you already have an Falcon Flute!"; - mes "Don't worry my young friend, once you've purchased the Falcon Flute you won't need to do so again"; - mes "since the Falcon Flute won't disappear upon usage, isn't that great?"; - close; - } - mes "[Falcon Flute Trader]"; - mes "Here take this Flute."; - mes "With it you can whistle for your Falcon from anywhere."; - set Zeny, Zeny - 10000; - getitem 12848,1; // Falcon Flute - next; - mes "[Falcon Flute Trader]"; - mes "Just a reminder."; - mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!"; - close; - } - mes "[Falcon Flute Trader]"; - mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!"; - close; - } - } - if (Class == Job_Baby_Archer || Class == Job_Archer) { - mes "[Falcon Flute Trader]"; - mes "Hello young one!"; - mes "Currently i can't help you,"; - mes "but why don't you return to me when you've become an great Hunter and learned how to handle Falcons properly?"; - close; - } - mes "[Falcon Flute Trader]"; - mes "Isn't it a beautiful Day today?"; - close; -} - -hu_in01,386,306,3 duplicate(fflute) Falcon Flute Trader#fft 51 -pay_arche,91,134,3 duplicate(fflute) Falcon Flute Trader#fft2 51 \ No newline at end of file +//===== rAthena Script ======================================= +//= Falcon Flute Trader +//===== By: ================================================== +//= Masao +//= Credits to Muad_Dib for the translation & Ziu for the +//= Item ID of the Falcon Flute. +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena +//===== Description: ========================================= +//= An NPC which sells you a Falcon Flute so you're able to +//= summon a Falcon wherever you are. +//===== Additional Comments: ================================= +//= 1.0 First Version. [Masao] +//= 1.1 Added Baby Hunter and Baby Ranger check. bugreport:5728 [Masao] +//============================================================ + +- script Falcon Flute Trader::fflute -1,{ + + if (Class == Job_Baby_Hunter || Class == Job_Hunter || Class == Job_Sniper || Class == Job_Baby_Ranger || Class == Job_Ranger || Class == Job_Ranger_T) { + mes "[Falcon Flute Trader]"; + mes "Do you need a Falcon?"; + mes "With a magical Flute, you can call your Falcon from anywhere!"; + next; + mes "[Falcon Flute Trader]"; + mes "It's marvelous, isn't it? Ha ha ha!"; + next; + mes "[Falcon Flute Trader]"; + mes "Why I'm selling these Falcon Flutes?"; + mes "It's because I have no clue how they work."; + mes "Ha ha ha!"; + next; + mes "[Falcon Flute Trader]"; + mes "Of course, you'll need the Skill ^ff0000Falcon Mastery^000000."; + mes "I don't have the Skill, so I don't know how to handle Falcons."; + mes "As it's for now, I may never have a Falcon."; + next; + mes "[Falcon Flute Trader]"; + mes "But I can't give you one for free!"; + mes "I have to make money since i also need to eat!"; + next; + mes "[Falcon Flute Trader]"; + mes "If you need a Falcon Flute I will sell them for 12,500 zeny. Or is that too expensive?"; + next; + if (Class == Job_Baby_Hunter || Class == Job_Hunter || Class == Job_Sniper) { + switch (select("Don't buy one:Buy a Falcon Flute")) { + case 1: + mes "[Falcon Flute Trader]"; + mes "That's too bad. If you need one, come back!"; + close; + case 2: + if (Zeny >= 12500) { + if (countitem(12848) >= 1) { + mes "[Falcon Flute Trader]"; + mes "As i can see you already have an Falcon Flute!"; + mes "Don't worry my young friend, once you've purchased the Falcon Flute you won't need to do so again"; + mes "since the Falcon Flute won't disappear upon usage, isn't that great?"; + close; + } + mes "[Falcon Flute Trader]"; + mes "Here, take this Flute."; + mes "With it you can whistle for your Falcon from anywhere."; + set Zeny, Zeny - 12500; + getitem 12848,1; // Falcon Flute + next; + mes "[Falcon Flute Trader]"; + mes "Just a reminder."; + mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!"; + close; + } + mes "[Falcon Flute Trader]"; + mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!"; + close; + } + } + mes "[Falcon Flute Trader]"; + mes "For Rangers however, I have a special Price of 10,000 zeny!"; + next; + switch (select("Don't buy one:Buy a Falcon flute")) { + case 1: + mes "[Falcon Flute Trader]"; + mes "That's too bad. If you need one, come back!"; + close; + case 2: + if (Zeny >= 10000) { + if (countitem(12848) >= 1) { + mes "[Falcon Flute Trader]"; + mes "As i can see you already have an Falcon Flute!"; + mes "Don't worry my young friend, once you've purchased the Falcon Flute you won't need to do so again"; + mes "since the Falcon Flute won't disappear upon usage, isn't that great?"; + close; + } + mes "[Falcon Flute Trader]"; + mes "Here take this Flute."; + mes "With it you can whistle for your Falcon from anywhere."; + set Zeny, Zeny - 10000; + getitem 12848,1; // Falcon Flute + next; + mes "[Falcon Flute Trader]"; + mes "Just a reminder."; + mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!"; + close; + } + mes "[Falcon Flute Trader]"; + mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!"; + close; + } + } + if (Class == Job_Baby_Archer || Class == Job_Archer) { + mes "[Falcon Flute Trader]"; + mes "Hello young one!"; + mes "Currently i can't help you,"; + mes "but why don't you return to me when you've become an great Hunter and learned how to handle Falcons properly?"; + close; + } + mes "[Falcon Flute Trader]"; + mes "Isn't it a beautiful Day today?"; + close; +} + +hu_in01,386,306,3 duplicate(fflute) Falcon Flute Trader#fft 51 +pay_arche,91,134,3 duplicate(fflute) Falcon Flute Trader#fft2 51 diff --git a/npc/quests/collection/quest_disguiseloliruri.txt b/npc/quests/collection/quest_disguiseloliruri.txt index 6cd5f2faf..42ff4800c 100644 --- a/npc/quests/collection/quest_disguiseloliruri.txt +++ b/npc/quests/collection/quest_disguiseloliruri.txt @@ -1,150 +1,150 @@ -//===== rAthena Script ======================================= -//= iRO Repeatable EXP Quests. -//===== By: ================================================== -//= Masao -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Custom Version. -//= Repeatable EXP Quest : Kill 50 Disguise or Loli Ruri. -//===== Additional Comments: ================================= -//= 1.0 First version. -//============================================================ - -nif_fild02,332,327,4 script Deadman 795,{ - - if (checkquest(60173) != -1) { - if (checkquest(60173,HUNTING) != 2 ) { - mes "[Deadman]"; - mes "Have you finished hunting the 50 Disguise?"; - next; - switch(select("Yes:No:I want to quit")) { - case 1: - mes "[Deadman]"; - mes "Hmm, I don't think you've hunted 50 yet."; - close; - case 2: - mes "[Deadman]"; - mes "Remember, I need help hunting Disguise so go and hunt 50 of them."; - close; - case 3: - mes "[Deadman]"; - mes "Are you sure that you want to stop hunting?"; - mes "Any progress that you've made will be erased"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Deadman]"; - mes "Ok then, well come back here if you change your mind."; - erasequest 60173; - close; - case 2: - mes "[Deadman]"; - mes "Please kill 50 Disguise in order to make this a Place were people can go to and gather Experience."; - close; - } - } - } - mes "[Deadman]"; - mes "Amazing, you did that with speed."; - getexp 140600,95800; - erasequest 60173; - close; - } - if (checkquest(60176) != -1) { - if (checkquest(60176,HUNTING) != 2 ) { - mes "[Deadman]"; - mes "Have you finished hunting the 50 Loli Ruri?"; - next; - switch(select("Yes:No:I want to quit")) { - case 1: - mes "[Deadman]"; - mes "Hmm, I don't think you've hunted 50 yet."; - close; - case 2: - mes "[Deadman]"; - mes "Remember, I need help hunting Loli Ruri so go and hunt 50 of them."; - close; - case 3: - mes "[Deadman]"; - mes "Are you sure that you want to stop hunting?"; - mes "Any progress that you've made will be erased"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Deadman]"; - mes "Ok then, well come back here if you change your mind."; - erasequest 60176; - close; - case 2: - mes "[Deadman]"; - mes "Please kill 50 Loli Ruri in order to make this a Place were people can go to and gather Experience."; - close; - } - } - } - mes "[Deadman]"; - mes "Amazing, you did that with speed."; - getexp 332000,239500; - erasequest 60176; - close; - } - if ((BaseLevel > 59) && (BaseLevel < 99)) { - mes "[Deadman]"; - mes "Oh great!"; - mes "You are here to help me right?"; - mes "If not, i don't know what to do with the Monsters in this Place!"; - next; - switch(select("Sure:No")) { - case 1: - mes "[Deadman]"; - mes "Great! I knew the moment i saw you that i can count on you!"; - mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; - mes "There are to many Disguise and Loli Ruri around, which makes it impossible for the lower level players to gain good experience here."; - next; - mes "[Deadman]"; - mes "So, which of those Monsters would you like to hunt for me?"; - next; - switch(select("Disguise:Loli Ruri:Cancel")) { - case 1: - if(BaseLevel > 90){ - mes "[Deadman]"; - mes "Thank you for your great help with the Disguise!"; - mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; - close; - } - mes "[Deadman]"; - mes "Kill 50 of those Disguise and let me know when you're done. I will reward you for your efforts."; - setquest 60173; - close; - case 2: - if(BaseLevel > 98){ - mes "[Deadman]"; - mes "Thank you for your great help with the Loli Ruri!"; - mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; - close; - } - mes "[Deadman]"; - mes "Kill 50 of those Loli Ruri and let me know when you're done. I will reward you for your efforts."; - setquest 60176; - close; - case 3: - mes "[Deadman]"; - mes "If you change your mind, please come back."; - close; - } - case 2: - mes "[Deadman]"; - mes "If you change your mind, please come back."; - close; - } - } - mes "[Deadman]"; - mes "Oh boy, Oh boy!"; - next; - mes "[Deadman]"; - mes "Sorry I can't talk right now I am in a world of pain here, these darn Disguise and Loli Ruri are going to kill me."; - close; -} \ No newline at end of file +//===== rAthena Script ======================================= +//= iRO Repeatable EXP Quests. +//===== By: ================================================== +//= Masao +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Custom Version. +//= Repeatable EXP Quest : Kill 50 Disguise or Loli Ruri. +//===== Additional Comments: ================================= +//= 1.0 First version. +//============================================================ + +nif_fild02,332,327,4 script Deadman 795,{ + + if (checkquest(60173) != -1) { + if (checkquest(60173,HUNTING) != 2 ) { + mes "[Deadman]"; + mes "Have you finished hunting the 50 Disguise?"; + next; + switch(select("Yes:No:I want to quit")) { + case 1: + mes "[Deadman]"; + mes "Hmm, I don't think you've hunted 50 yet."; + close; + case 2: + mes "[Deadman]"; + mes "Remember, I need help hunting Disguise so go and hunt 50 of them."; + close; + case 3: + mes "[Deadman]"; + mes "Are you sure that you want to stop hunting?"; + mes "Any progress that you've made will be erased"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Deadman]"; + mes "Ok then, well come back here if you change your mind."; + erasequest 60173; + close; + case 2: + mes "[Deadman]"; + mes "Please kill 50 Disguise in order to make this a Place were people can go to and gather Experience."; + close; + } + } + } + mes "[Deadman]"; + mes "Amazing, you did that with speed."; + getexp 140600,95800; + erasequest 60173; + close; + } + if (checkquest(60176) != -1) { + if (checkquest(60176,HUNTING) != 2 ) { + mes "[Deadman]"; + mes "Have you finished hunting the 50 Loli Ruri?"; + next; + switch(select("Yes:No:I want to quit")) { + case 1: + mes "[Deadman]"; + mes "Hmm, I don't think you've hunted 50 yet."; + close; + case 2: + mes "[Deadman]"; + mes "Remember, I need help hunting Loli Ruri so go and hunt 50 of them."; + close; + case 3: + mes "[Deadman]"; + mes "Are you sure that you want to stop hunting?"; + mes "Any progress that you've made will be erased"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Deadman]"; + mes "Ok then, well come back here if you change your mind."; + erasequest 60176; + close; + case 2: + mes "[Deadman]"; + mes "Please kill 50 Loli Ruri in order to make this a Place were people can go to and gather Experience."; + close; + } + } + } + mes "[Deadman]"; + mes "Amazing, you did that with speed."; + getexp 332000,239500; + erasequest 60176; + close; + } + if ((BaseLevel > 59) && (BaseLevel < 99)) { + mes "[Deadman]"; + mes "Oh great!"; + mes "You are here to help me right?"; + mes "If not, i don't know what to do with the Monsters in this Place!"; + next; + switch(select("Sure:No")) { + case 1: + mes "[Deadman]"; + mes "Great! I knew the moment i saw you that i can count on you!"; + mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; + mes "There are to many Disguise and Loli Ruri around, which makes it impossible for the lower level players to gain good experience here."; + next; + mes "[Deadman]"; + mes "So, which of those Monsters would you like to hunt for me?"; + next; + switch(select("Disguise:Loli Ruri:Cancel")) { + case 1: + if(BaseLevel > 90){ + mes "[Deadman]"; + mes "Thank you for your great help with the Disguise!"; + mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; + close; + } + mes "[Deadman]"; + mes "Kill 50 of those Disguise and let me know when you're done. I will reward you for your efforts."; + setquest 60173; + close; + case 2: + if(BaseLevel > 98){ + mes "[Deadman]"; + mes "Thank you for your great help with the Loli Ruri!"; + mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; + close; + } + mes "[Deadman]"; + mes "Kill 50 of those Loli Ruri and let me know when you're done. I will reward you for your efforts."; + setquest 60176; + close; + case 3: + mes "[Deadman]"; + mes "If you change your mind, please come back."; + close; + } + case 2: + mes "[Deadman]"; + mes "If you change your mind, please come back."; + close; + } + } + mes "[Deadman]"; + mes "Oh boy, Oh boy!"; + next; + mes "[Deadman]"; + mes "Sorry I can't talk right now I am in a world of pain here, these darn Disguise and Loli Ruri are going to kill me."; + close; +} diff --git a/npc/quests/collection/quest_mantis.txt b/npc/quests/collection/quest_mantis.txt index ec4e65a5b..5e9249a1c 100644 --- a/npc/quests/collection/quest_mantis.txt +++ b/npc/quests/collection/quest_mantis.txt @@ -1,101 +1,101 @@ -//===== rAthena Script ======================================= -//= iRO Repeatable EXP Quests. -//===== By: ================================================== -//= Masao -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Custom Version. -//= Repeatable EXP Quest : Kill 50 Mantis. -//===== Additional Comments: ================================= -//= 1.0 First version. -//============================================================ - -lou_fild01,240,354,4 script Mantis Researcher 878,{ - - if (checkquest(60179) != -1) { - if (checkquest(60179,HUNTING) != 2 ) { - mes "[Mantis Researcher]"; - mes "Have you finished hunting the 50 Mantis?"; - next; - switch(select("Yes:No:I want to quit")) { - case 1: - mes "[Mantis Researcher]"; - mes "Hmm, I don't think you've hunted 50 yet."; - close; - case 2: - mes "[Mantis Researcher]"; - mes "Remember, I need help hunting Mantis so go and hunt 50 of them."; - close; - case 3: - mes "[Mantis Researcher]"; - mes "Are you sure that you want to stop hunting?"; - mes "Any progress that you've made will be erased"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Mantis Researcher]"; - mes "Ok then, well come back here if you change your mind."; - erasequest 60179; - close; - case 2: - mes "[Mantis Researcher]"; - mes "Please kill 50 Mantis in order to make this a Place were people can go to and gather Experience."; - close; - } - } - } - mes "[Mantis Researcher]"; - mes "Amazing, you did that with speed."; - getexp 18818,7527; - erasequest 60179; - close; - } - if ((BaseLevel > 34) && (BaseLevel < 71)) { - mes "[Mantis Researcher]"; - mes "Oh great!"; - mes "You are here to help me right?"; - mes "If not, i don't know what to do with the Monsters in this Place!"; - next; - switch(select("Sure:No")) { - case 1: - mes "[Mantis Researcher]"; - mes "Great! I knew the moment i saw you that i can count on you!"; - mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; - mes "There are to many Mantis around, which makes it impossible for the lower level players to gain good experience here."; - next; - mes "[Mantis Researcher]"; - mes "So, would you still like to help me?"; - next; - switch(select("Sure:Cancel")) { - case 1: - if(BaseLevel > 70){ - mes "[Mantis Researcher]"; - mes "Thank you for your great help with the Mantis!"; - mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; - close; - } - mes "[Mantis Researcher]"; - mes "Kill 50 of those Mantis and let me know when you're done. I will reward you for your efforts."; - setquest 60179; - close; - case 2: - mes "[Mantis Researcher]"; - mes "If you change your mind, please come back."; - close; - } - case 2: - mes "[Mantis Researcher]"; - mes "If you change your mind, please come back."; - close; - } - } - mes "[Mantis Researcher]"; - mes "Oh boy, Oh boy!"; - next; - mes "[Mantis Researcher]"; - mes "Sorry I can't talk right now I am in a world of pain here, these darn Mantis are going to kill me."; - close; -} \ No newline at end of file +//===== rAthena Script ======================================= +//= iRO Repeatable EXP Quests. +//===== By: ================================================== +//= Masao +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Custom Version. +//= Repeatable EXP Quest : Kill 50 Mantis. +//===== Additional Comments: ================================= +//= 1.0 First version. +//============================================================ + +lou_fild01,240,354,4 script Mantis Researcher 878,{ + + if (checkquest(60179) != -1) { + if (checkquest(60179,HUNTING) != 2 ) { + mes "[Mantis Researcher]"; + mes "Have you finished hunting the 50 Mantis?"; + next; + switch(select("Yes:No:I want to quit")) { + case 1: + mes "[Mantis Researcher]"; + mes "Hmm, I don't think you've hunted 50 yet."; + close; + case 2: + mes "[Mantis Researcher]"; + mes "Remember, I need help hunting Mantis so go and hunt 50 of them."; + close; + case 3: + mes "[Mantis Researcher]"; + mes "Are you sure that you want to stop hunting?"; + mes "Any progress that you've made will be erased"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Mantis Researcher]"; + mes "Ok then, well come back here if you change your mind."; + erasequest 60179; + close; + case 2: + mes "[Mantis Researcher]"; + mes "Please kill 50 Mantis in order to make this a Place were people can go to and gather Experience."; + close; + } + } + } + mes "[Mantis Researcher]"; + mes "Amazing, you did that with speed."; + getexp 18818,7527; + erasequest 60179; + close; + } + if ((BaseLevel > 34) && (BaseLevel < 71)) { + mes "[Mantis Researcher]"; + mes "Oh great!"; + mes "You are here to help me right?"; + mes "If not, i don't know what to do with the Monsters in this Place!"; + next; + switch(select("Sure:No")) { + case 1: + mes "[Mantis Researcher]"; + mes "Great! I knew the moment i saw you that i can count on you!"; + mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; + mes "There are to many Mantis around, which makes it impossible for the lower level players to gain good experience here."; + next; + mes "[Mantis Researcher]"; + mes "So, would you still like to help me?"; + next; + switch(select("Sure:Cancel")) { + case 1: + if(BaseLevel > 70){ + mes "[Mantis Researcher]"; + mes "Thank you for your great help with the Mantis!"; + mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; + close; + } + mes "[Mantis Researcher]"; + mes "Kill 50 of those Mantis and let me know when you're done. I will reward you for your efforts."; + setquest 60179; + close; + case 2: + mes "[Mantis Researcher]"; + mes "If you change your mind, please come back."; + close; + } + case 2: + mes "[Mantis Researcher]"; + mes "If you change your mind, please come back."; + close; + } + } + mes "[Mantis Researcher]"; + mes "Oh boy, Oh boy!"; + next; + mes "[Mantis Researcher]"; + mes "Sorry I can't talk right now I am in a world of pain here, these darn Mantis are going to kill me."; + close; +} diff --git a/npc/quests/collection/quest_zhupolong.txt b/npc/quests/collection/quest_zhupolong.txt index f33e4e6ff..bf3999683 100644 --- a/npc/quests/collection/quest_zhupolong.txt +++ b/npc/quests/collection/quest_zhupolong.txt @@ -1,101 +1,101 @@ -//===== rAthena Script ======================================= -//= iRO Repeatable EXP Quests. -//===== By: ================================================== -//= Masao -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Custom Version. -//= Repeatable EXP Quest : Kill 50 Zhu Po Long. -//===== Additional Comments: ================================= -//= 1.0 First version. -//============================================================ - -lou_dun02,161,264,4 script Dragon Hunter 732,{ - - if (checkquest(60182) != -1) { - if (checkquest(60182,HUNTING) != 2 ) { - mes "[Dragon Hunter]"; - mes "Have you finished hunting the 50 Zhu Po Long?"; - next; - switch(select("Yes:No:I want to quit")) { - case 1: - mes "[Dragon Hunter]"; - mes "Hmm, I don't think you've hunted 50 yet."; - close; - case 2: - mes "[Dragon Hunter]"; - mes "Remember, I need help hunting Zhu Po Long so go and hunt 50 of them."; - close; - case 3: - mes "[Dragon Hunter]"; - mes "Are you sure that you want to stop hunting?"; - mes "Any progress that you've made will be erased"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Dragon Hunter]"; - mes "Ok then, well come back here if you change your mind."; - erasequest 60182; - close; - case 2: - mes "[Dragon Hunter]"; - mes "Please kill 50 Zhu Po Long in order to make this a Place were people can go to and gather Experience."; - close; - } - } - } - mes "[Dragon Hunter]"; - mes "Amazing, you did that with speed."; - getexp 151300,60520; - erasequest 60182; - close; - } - if ((BaseLevel > 49) && (BaseLevel < 91)) { - mes "[Dragon Hunter]"; - mes "Oh great!"; - mes "You are here to help me right?"; - mes "If not, i don't know what to do with the Monsters in this Place!"; - next; - switch(select("Sure:No")) { - case 1: - mes "[Dragon Hunter]"; - mes "Great! I knew the moment i saw you that i can count on you!"; - mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; - mes "There are to many Zhu Po Long around, which makes it impossible for the lower level players to gain good experience here."; - next; - mes "[Dragon Hunter]"; - mes "So, would you still like to help me?"; - next; - switch(select("Sure:Cancel")) { - case 1: - if(BaseLevel > 90){ - mes "[Dragon Hunter]"; - mes "Thank you for your great help with the Zhu Po Long!"; - mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; - close; - } - mes "[Dragon Hunter]"; - mes "Kill 50 of those Zhu Po Long and let me know when you're done. I will reward you for your efforts."; - setquest 60182; - close; - case 2: - mes "[Dragon Hunter]"; - mes "If you change your mind, please come back."; - close; - } - case 2: - mes "[Dragon Hunter]"; - mes "If you change your mind, please come back."; - close; - } - } - mes "[Dragon Hunter]"; - mes "Oh boy, Oh boy!"; - next; - mes "[Dragon Hunter]"; - mes "Sorry I can't talk right now I am in a world of pain here, these darn Zhu Po Long are going to kill me."; - close; -} \ No newline at end of file +//===== rAthena Script ======================================= +//= iRO Repeatable EXP Quests. +//===== By: ================================================== +//= Masao +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Custom Version. +//= Repeatable EXP Quest : Kill 50 Zhu Po Long. +//===== Additional Comments: ================================= +//= 1.0 First version. +//============================================================ + +lou_dun02,161,264,4 script Dragon Hunter 732,{ + + if (checkquest(60182) != -1) { + if (checkquest(60182,HUNTING) != 2 ) { + mes "[Dragon Hunter]"; + mes "Have you finished hunting the 50 Zhu Po Long?"; + next; + switch(select("Yes:No:I want to quit")) { + case 1: + mes "[Dragon Hunter]"; + mes "Hmm, I don't think you've hunted 50 yet."; + close; + case 2: + mes "[Dragon Hunter]"; + mes "Remember, I need help hunting Zhu Po Long so go and hunt 50 of them."; + close; + case 3: + mes "[Dragon Hunter]"; + mes "Are you sure that you want to stop hunting?"; + mes "Any progress that you've made will be erased"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Dragon Hunter]"; + mes "Ok then, well come back here if you change your mind."; + erasequest 60182; + close; + case 2: + mes "[Dragon Hunter]"; + mes "Please kill 50 Zhu Po Long in order to make this a Place were people can go to and gather Experience."; + close; + } + } + } + mes "[Dragon Hunter]"; + mes "Amazing, you did that with speed."; + getexp 151300,60520; + erasequest 60182; + close; + } + if ((BaseLevel > 49) && (BaseLevel < 91)) { + mes "[Dragon Hunter]"; + mes "Oh great!"; + mes "You are here to help me right?"; + mes "If not, i don't know what to do with the Monsters in this Place!"; + next; + switch(select("Sure:No")) { + case 1: + mes "[Dragon Hunter]"; + mes "Great! I knew the moment i saw you that i can count on you!"; + mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; + mes "There are to many Zhu Po Long around, which makes it impossible for the lower level players to gain good experience here."; + next; + mes "[Dragon Hunter]"; + mes "So, would you still like to help me?"; + next; + switch(select("Sure:Cancel")) { + case 1: + if(BaseLevel > 90){ + mes "[Dragon Hunter]"; + mes "Thank you for your great help with the Zhu Po Long!"; + mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; + close; + } + mes "[Dragon Hunter]"; + mes "Kill 50 of those Zhu Po Long and let me know when you're done. I will reward you for your efforts."; + setquest 60182; + close; + case 2: + mes "[Dragon Hunter]"; + mes "If you change your mind, please come back."; + close; + } + case 2: + mes "[Dragon Hunter]"; + mes "If you change your mind, please come back."; + close; + } + } + mes "[Dragon Hunter]"; + mes "Oh boy, Oh boy!"; + next; + mes "[Dragon Hunter]"; + mes "Sorry I can't talk right now I am in a world of pain here, these darn Zhu Po Long are going to kill me."; + close; +} diff --git a/npc/quests/eden/56-70.txt b/npc/quests/eden/56-70.txt index da30977ce..c810aa3d3 100644 --- a/npc/quests/eden/56-70.txt +++ b/npc/quests/eden/56-70.txt @@ -1,1439 +1,1439 @@ -//===== rAthena Script ======================================= -// Eden Group Quests - Mission [56 - 70] -//===== By: ================================================== -//= L0ne_W0lf -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Repetable Quests for Players between Baselevel 55 - 71 . -//===== Additional Comments: ================================= -//= 1.0 First Version. -//= 1.1 Some little optimization here and there. [Masao] -//============================================================ - -moc_para01,42,38,3 script Mission [56 - 70] 857,{ - - if (countitem(6219) > 0) { - if (checkquest(3259) > -1) { - erasequest 3259; - } - if (checkquest(3253) > -1) { - erasequest 3253; - } - if (checkquest(3265) > -1) { - erasequest 3265; - } - mes "Here is the list of various adventures for level 55~70 adventurers."; - next; - mes "Lots of missions such as a Monster Hunting, Delivery Goods, Finding People."; - next; - switch (select("Mission Numbers 1~5:Mission Numbers 6~10:Mission Numbers 11~15")) { - case 1: - switch (select("What is this Bandage?:Dangerous Alligators.:That wasn't a mermaid...:My country is calling me!")) { - case 1: - if (checkquest(3250) == 0) { - mes "This mission is assigned by the Rekenber corporation from Lighthalzen. Below are the details."; - next; - mes "Rekenber corporation is about to launch a new project called 'Green Medical Center'. For the first product of the project, we are preparing well-being Bandages."; - next; - mes "Regarding the project, we need to research monster's reactions when they are wrapped with Rotten Bandages."; - next; - mes "If you are interested, please hunt 30 Mummies and bring 30 Rotten Bandages. You can find them in the Pyramid West of Morroc."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "- Rekenber corporation chief director 'Julie E Delph' -"; - next; - mes " "; - next; - mes "Would you like to accept this mission?"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3250; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if (checkquest(3250,HUNTING) == 1) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by the Rekenber corporation from Lighthalzen. Below are the details."; - next; - mes "Rekenber corporation is about to launch a new project called 'Green Medical Center'. For the first product of the project, we are preparing well-being Bandages."; - next; - mes "Regarding the project, we need to research monster's reactions when they are wrapped with Rotten Bandages."; - next; - mes "If you are interested, please hunt 30 Mummies and bring 30 Rotten Bandages. You can find them in the Pyramid West of Morroc."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "- Rekenber corporation chief director 'Julie E Delph' -"; - close; - case 2: - close; - } - } - if ((checkquest(3250,HUNTING) == 2) && (countitem(930) > 19)) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - delitem 930,20; //Rotten_Bandage - getexp 15000,5000; - erasequest 3250; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3250) == 2) { - mes "This mission is assigned by the Rekenber corporation from Lighthalzen. Below are the details."; - next; - mes "Rekenber corporation is about to launch a new project called 'Green Medical Center'. For the first product of the project, we are preparing well-being Bandages."; - next; - mes "Regarding the project, we need to research monster's reactions when they are wrapped with Rotten Bandages."; - next; - mes "If you are interested, please hunt 30 Mummies and bring 30 Rotten Bandages. You can find them in the Pyramid West of Morroc."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "- Rekenber corporation chief director 'Julie E Delph' -"; - next; - mes " "; - next; - mes "Would you like to accept this mission?"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3250; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 2: - if (checkquest(3251) == 0) { - mes "This mission is assigned by the Comodo cooperative society. Below are the details."; - next; - mes "Alligators have gone wild these days, they attack women and drunken people who hang out near the beach."; - next; - mes "This is a very shameful situation for us, the most wonderful vacation spot in Rune-Midgard."; - next; - mes "So, it would be very helpful if you hunt 30 Alligators to clean out this situation."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes " "; - next; - mes "Would you like to accept this mission?"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3251; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if (checkquest(3251,HUNTING) == 1) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by the Comodo cooperative society. Below are the details."; - next; - mes "Alligators have gone wild these days, they attack women and drunken people who hang out near the beach."; - next; - mes "This is a very shameful situation for us, the most wonderful vacation spot in Rune-Midgard."; - next; - mes "So, it would be very helpful if you hunt 30 Alligators to clean out this situation."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - close; - case 2: - close; - } - } - if (checkquest(3251,HUNTING) == 2) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - getexp 16000,6000; - erasequest 3251; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3251) == 2) { - mes "This mission is assigned by the Comodo cooperative society. Below are the details."; - next; - mes "Alligators have gone wild these days, they attack women and drunken people who hang out near the beach."; - next; - mes "This is a very shameful situation for us, the most wonderful vacation spot in Rune-Midgard."; - next; - mes "So, it would be very helpful if you hunt 30 Alligators to clean out this situation."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes " "; - next; - mes "Would you like to accept this mission?"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3251; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 3: - if (checkquest(3252) == 0) { - mes "This mission is assigned by an unknown client from Izlude."; - next; - mes "I have admired the beach of Izlude, ever since I was born."; - next; - mes "When I was young, I found a mysterious creature in the Izlude dungeon, I had never seen something like that before..."; - next; - mes "I instantly thought it was a mermaid. I was so supprised, I have studied about mermaids in whole my life."; - next; - mes "But, as I studied harder, I found that the creature was not a mermaid... yes, It wasn't beautiful at all like other mermaids..."; - next; - mes "I finally tracked down the fact that it was a Merman, not a Mermaid!"; - next; - mes "Merman... I have wasted my life studying this monster! So please hunt 30 Mermans to make me feel better."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Izlude 'The Lost dream mermaid' --"; - next; - mes " "; - next; - mes "Would you like to accept this mission?"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3252; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if (checkquest(3252,HUNTING) == 1) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by an unknown client from Izlude."; - next; - mes "I have admired the beach of Izlude, ever since I was born."; - next; - mes "When I was young, I found a mysterious creature in the Izlude dungeon, I had never seen something like that before."; - next; - mes "I instantly thought it was a mermaid. I was so supprised, I have studied about mermaids in whole my life."; - next; - mes "But, as I studied harder, I found that the creature was not a mermaid... yes, It wasn't beautiful at all like other mermaids..."; - next; - mes "I finally tracked down the fact that it was a Merman, not a Mermaid!"; - next; - mes " Merman... I have wasted my life studying this monster! So please hunt 30 Mermans to make me feel better."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Izlude 'The Lost dream mermaid' --"; - close; - case 2: - close; - } - } - if (checkquest(3252,HUNTING) == 2) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - getexp 17000,8000; - erasequest 3252; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3252) == 2) { - mes "This mission is assigned by an unknown client from Izlude."; - next; - mes "I have admired the beach of Izlude, ever since I was born."; - next; - mes "When I was young, I found a mysterious creature in the Izlude dungeon, I had never seen something like that before."; - next; - mes "I instantly thought it was a mermaid. I was so supprised, I have studied about mermaids in whole my life."; - next; - mes "But, as I studied harder, I found that the creature was not a mermaid... yes, It wasn't beautiful at all like other mermaids..."; - next; - mes "I finally tracked down the fact that it was a Merman, not a Mermaid!"; - next; - mes "Merman... I have wasted my life studying this monster! So please hunt 30 Mermans to make me feel better."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Izlude 'The Lost dream mermaid' --"; - next; - mes " "; - next; - mes "Would you like to accept this mission?"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3252; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 4: - if (checkquest(3254) == 0) { - mes "This mission is assigned by the government officer of the Rune-Midgarts Kingdom."; - next; - mes "To prevent a flood in Prontera, we decided to build a huge dam to regulate the water supply."; - next; - mes "But, we are shorthanded on supplies and we need to collect Fine Sand and Grit."; - next; - mes "So, we would like to ask for help. People, please bring us 10 Fine Sand and 30 Grit each so we can build the dam."; - next; - mes "You can get those materials from Sand Man, I wish you good luck!"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Government officer of the Rune-Midgarts Kingdom, Dufre Kent --"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3254; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if ((checkquest(3254) == 1) && (countitem(7043) < 10) && (countitem(1056) < 30)) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by the government officer of the Rune-Midgarts Kingdom."; - next; - mes "To prevent a flood in Prontera, we decided to build a huge dam to regulate the water supply."; - next; - mes "But, we are shorthanded on supplies and we need to collect Fine Sand and Grit."; - next; - mes "So, we would like to ask for help. People, please bring us 10 Fine Sand and 30 Grit each so we can build the dam."; - next; - mes "You can get those materials from Sand Man, I wish you good luck!"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Government officer of the Rune-Midgarts Kingdom, Dufre Kent --"; - close; - case 2: - close; - } - } - if ((checkquest(3254) == 1) && (countitem(7043) > 9) && (countitem(1056) > 29)) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - delitem 7043,10; //Fine_Sand - delitem 1056,30; //Grit - getexp 18000,8000; - erasequest 3254; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3254) == 2) { - mes "This mission is assigned by the government officer of the Rune-Midgarts Kingdom."; - next; - mes "To prevent a flood in Prontera, we decided to build a huge dam to regulate the water supply."; - next; - mes "But, we are shorthanded on supplies and we need to collect Fine Sand and Grit."; - next; - mes "So, we would like to ask for help. People, please bring us 10 Fine Sand and 30 Grit each so we can build the dam."; - next; - mes "You can get those materials from Sand Man, I wish you good luck!"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Government officer of the Rune-Midgarts Kingdom, Dufre Kent --"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3254; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - } - case 2: - switch (select("Hunt Wild Boar:Preparing the Summer:A Woman's Grudge:Special ingredients:Puppet Master's Agony")) { - case 1: - if (checkquest(3255) == 0) { - mes "This mission is assigned by the Payon town hall."; - next; - mes "Wild animals are always annoyances to farmers."; - next; - mes "They attack our farm and ruin whole crops!! We can't stand it anymore!"; - next; - mes "So, we would like to ask for the help from brave adventurers."; - next; - mes "Please, hunt 30 Savages to save our crops!"; - next; - mes "You can easily find those monsters around our town and field."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Payon town hall members --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3255; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if (checkquest(3255,HUNTING) == 1) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by the Payon town hall."; - next; - mes "Wild animals are always annoyances to farmers."; - next; - mes "They attack our farm and ruin whole crops!! We can't stand it anymore!"; - next; - mes "???????????????ð??????????????j??????????????????"; - next; - mes "Please, hunt 30 Savages to save our crops!"; - next; - mes "You can easily find those monsters around our town and field."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Payon town hall members --"; - close; - case 2: - close; - } - } - if (checkquest(3255,HUNTING) == 2) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - getexp 16000,7000; - erasequest 3255; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3255) == 2) { - mes "This mission is assigned by the Payon town hall."; - next; - mes "Wild animals are always annoyances to farmers."; - next; - mes "They attack our farm and ruin whole crops!! We can't stand it anymore!"; - next; - mes "???????????????ð??????????????j??????????????????"; - next; - mes "Please, hunt 30 Savages to save our crops!"; - next; - mes "You can easily find those monsters around our town and field."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Payon town hall members --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3255; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 2: - if (checkquest(3256) == 0) { - mes "This mission is assigned by the Morroc blacksmith Aragham."; - next; - mes "Hello~~~~, Adventurers! This is Aragham, the hottest blacksmith in Morroc!"; - next; - mes "Anyway, I have a son named Aragam Junior, the cute one. Haha."; - next; - mes "He will be attending summer camp this summer, but he doesn't know how to swim."; - next; - mes "I want to teach him, but as you know I am a blacksmith, a far cry from swimming! Hehe."; - next; - mes "But, I figured that if I make swim fins, it will be great for his confidence~!"; - next; - mes "To make it, I need 30 Sticky Webfoots from a Roda Frog. Can you bring them to me?"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "PS. Do not compare me with Hollgrehenn or Antonio!!!!"; - next; - mes "-- The hottest blacksmith, Morroc blacksmith Aragham --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3256; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if ((checkquest(3256) == 1) && (countitem(918) < 30)) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by the Morroc blacksmith Aragham."; - next; - mes "Hello~~~~, Adventurers! This is Aragham, the hottest blacksmith in Morroc!"; - next; - mes "Anyway, I have a son named Aragam Junior, the cute one. Haha."; - next; - mes "He will be attending summer camp this summer, but he doesn't know how to swim."; - next; - mes "I want to teach him, but as you know I am a blacksmith, a far cry from swimming! Hehe."; - next; - mes "But, I figured that if I make swim fins, it will be great for his confidence~!"; - next; - mes "To make it, I need 30 Sticky Webfoots from a Roda Frog. Can you bring them to me?"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "PS. Do not compare me with Hollgrehenn or Antonio!!!!"; - next; - mes "-- The hottest blacksmith, Morroc blacksmith Aragham --"; - close; - case 2: - close; - } - } - if ((checkquest(3256) == 1) && (countitem(918) > 29)) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - delitem 918,30; //Sticky_Webfoot - getexp 15000,5000; - erasequest 3256; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3256) == 2) { - mes "This mission is assigned by the Morroc blacksmith Aragham."; - next; - mes "Hello~~~~, Adventurers! This is Aragham, the hottest blacksmith in Morroc!"; - next; - mes "Anyway, I have a son named Aragam Junior, the cute one. Haha."; - next; - mes "He will be attending summer camp this summer, but he doesn't know how to swim."; - next; - mes "I want to teach him, but as you know I am a blacksmith, a far cry from swimming! Hehe."; - next; - mes "But, I figured that if I make swim fins, it will be great for his confidence~!"; - next; - mes "To make it, I need 30 Sticky Webfoots from a Roda Frog. Can you bring them to me?"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "PS. Do not compare me with Hollgrehenn or Antonio!!!!"; - next; - mes "-- The hottest blacksmith, Morroc blacksmith Aragham --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3256; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 3: - if (checkquest(3257) == 0) { - mes "This mission is assigned by an inventor Dorian from Izlude."; - next; - mes "Have you heard the story that if women have a grudge on their mind, it will bring natural disasters."; - next; - mes "Wow, so guys must watch out for those sensitive women! Make sure they don't have any grudges on you."; - next; - mes "Women can bring strange phenomenons with them!"; - next; - mes "I am so intrigued with that story that I'm trying to prove that it can be true."; - next; - mes "So I need to make women upset! Haha, I know what a mean idea, right?"; - next; - mes "But this is seriously just for studying... So please hunt 30 Sohee's who seems to be revived from victimized souls."; - next; - mes "So I can keep observing the case."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Elegance inventor Dorian --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3257; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if (checkquest(3257,HUNTING) == 1) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by an inventor Dorian from Izlude."; - next; - mes "Have you heard the story that if women have a grudge on their mind, it will bring natural disasters."; - next; - mes "Wow, so guys must watch out for those sensitive women! Make sure they don't have any grudges on you."; - next; - mes "Women can bring strange phenomenons with them!"; - next; - mes "I am so intrigued with that story that I'm trying to prove that it can be true."; - next; - mes "So I need to make women upset! Haha, I know what a mean idea, right?"; - next; - mes "But this is seriously just for studying... So please hunt 30 Sohee's who seems to be revived from victimized souls."; - next; - mes "So I can keep observing the case."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Elegance inventor Dorian --"; - close; - case 2: - close; - } - } - if (checkquest(3257,HUNTING) == 2) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - getexp 17000,8000; - erasequest 3257; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3257) == 2) { - mes "This mission is assigned by an inventor Dorian from Izlude."; - next; - mes "Have you heard the story that if women have a grudge on their mind, it will bring natural disasters."; - next; - mes "Wow, so guys must watch out for those sensitive women! Make sure they don't have any grudges on you."; - next; - mes "Women can bring strange phenomenons with them!"; - next; - mes "I am so intrigued with that story that I'm trying to prove that it can be true."; - next; - mes "So I need to make women upset! Haha, I know what a mean idea, right?"; - next; - mes "But this is seriously just for studying... So please hunt 30 Sohee's who seems to be revived from victimized souls."; - next; - mes "So I can keep observing the case."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Elegance inventor Dorian --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3257; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 4: - if (checkquest(3258) == 0) { - mes "This mission is assigned by Wallah from Payon."; - next; - mes "Hello, adventurer. How are you? How is your health?"; - next; - mes "I am a pharmacist and I am having a hard time getting special ingredients lately."; - next; - mes "Because I am a little sensitive girl, how can I possibly get those things by myself."; - next; - mes "So, please help me. Just bring 40 Huge Leafs to me, that will be enough to complete my special medicine!"; - next; - mes "Please bring it as soon as possible, people need my medicine."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Wallah --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3258; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if ((checkquest(3258) == 1) && (countitem(7198) < 40)) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by Wallah from Payon."; - next; - mes "Hello, adventurer. How are you? How is your health?"; - next; - mes "I am a pharmacist and I am having a hard time getting special ingredients lately."; - next; - mes "Because I am a little sensitive girl, how can I possibly get those things by myself."; - next; - mes "So, please help me. Just bring 40 Huge Leafs to me, that will be enough to complete my special medicine!"; - next; - mes "Please bring it as soon as possible, people need my medicine."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Wallah --"; - close; - case 2: - close; - } - } - if ((checkquest(3258) == 1) && (countitem(7198) > 39)) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - delitem 7198,40; //Great_Leaf - getexp 16000,7000; - erasequest 3258; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3258) == 2) { - mes "This mission is assigned by Wallah from Payon."; - next; - mes "Hello, adventurer. How are you? How is your health?"; - next; - mes "I am a pharmacist and I am having a hard time getting special ingredients lately."; - next; - mes "Because I am a little sensitive girl, how can I possibly get those things by myself."; - next; - mes "So, please help me. Just bring 40 Huge Leafs to me, that will be enough to complete my special medicine!"; - next; - mes "Please bring it as soon as possible, people need my medicine."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Wallah --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3258; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 5: - if (checkquest(12217) == 0) { - mes "This mission is assigned by puppet master Woonute from Geffen."; - next; - mes "You know being a puppet master is kind of a hard job to satisfy people."; - next; - mes "People can search and see so many different things on their own thesedays."; - next; - mes "Their expectations are getting high, I can't satisfy them anymore."; - next; - mes "But if I can make new toy concepts, like living toys, it will be ground breaking."; - next; - mes "I heard that there are live dolls called Marionettes. Can you hunt 30 Marionettes for me? And also bring 30 Golden Hair, those will be great materials for the new toys."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Puppet Master Woonute --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 12217; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if ((checkquest(12217,HUNTING) == 1) && (countitem(1060) < 30)) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by puppet master Woonute from Geffen."; - next; - mes "You know being a puppet master is kind of a hard job to satisfy people."; - next; - mes "People can search and see so many different things on their own thesedays."; - next; - mes "Their expectations are getting high, I can't satisfy them anymore."; - next; - mes "But if I can make new toy concepts, like living toys, it will be ground breaking."; - next; - mes "I heard that there are live dolls called Marionettes. Can you hunt 30 Marionettes for me? And also bring 30 Golden Hair, those will be great materials for the new toys."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Puppet Master Woonute --"; - close; - case 2: - close; - } - } - if ((checkquest(12217,HUNTING) == 2) && (countitem(1060) > 29)) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - delitem 1060,30; //Golden_Hair - getexp 17000,7000; - erasequest 3259; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(12217) == 2) { - mes "This mission is assigned by puppet master Woonute from Geffen."; - next; - mes "You know being a puppet master is kind of a hard job to satisfy people."; - next; - mes "People can search and see so many different things on their own thesedays."; - next; - mes "Their expectations are getting high, I can't satisfy them anymore."; - next; - mes "But if I can make new toy concepts, like living toys, it will be ground breaking."; - next; - mes "I heard that there are live dolls called Marionettes. Can you hunt 30 Marionettes for me? And also bring 30 Golden Hair, those will be great materials for the new toys."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Puppet Master Woonute --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 12217; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - } - case 3: - switch (select("Tiresome Flies:Dangerous Munak:Make the World green:Magic Wand")) { - case 1: - if (checkquest(3260) == 0) { - mes "This mission is assigned by an exterminator from Prontera."; - next; - mes "As the weather gets warmer, insects multiply more and more. It is already out of control."; - next; - mes "People in Prontera cannot sleep because of all the bugs in their house."; - next; - mes "So, please help us, hunt 30 Hunter Flies. Then the flies can be reduced slowly."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- The Prontera exterminator --"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3260; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if (checkquest(3260,HUNTING) == 1) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by an exterminator from Prontera."; - next; - mes "As the weather gets warmer, insects multiply more and more. It is already out of control."; - next; - mes "People in Prontera cannot sleep because of all the bugs in their house."; - next; - mes "So, please help us, hunt 30 Hunter Flies. Then the flies can be reduced slowly."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- The Prontera exterminator --"; - close; - case 2: - close; - } - } - if (checkquest(3260,HUNTING) == 2) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - getexp 16000,6000; - erasequest 3260; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3260) == 2) { - mes "This mission is assigned by an exterminator from Prontera."; - next; - mes "As the weather gets warmer, insects multiply more and more. It is already out of control."; - next; - mes "People in Prontera cannot sleep because of all the bugs in their house."; - next; - mes "So, please help us, hunt 30 Hunter Flies. Then the flies can be reduced slowly."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- The Prontera exterminator --"; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3260; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 2: - if (checkquest(3261) == 0) { - mes "This mission is assigned by Cheese Dongja from Payon."; - next; - mes "Have you heard about Munak?"; - next; - mes "The ugly monster Munak is threatening people in Payon."; - next; - mes "So we need brave adventurers like you!"; - next; - mes "Please hunt 30 Munaks then Payon will be in peace."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "- Payon Cheese Dongja -"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3261; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if (checkquest(3261,HUNTING) == 1) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by Cheese Dongja from Payon."; - next; - mes "Have you heard about Munak?"; - next; - mes "The ugly monster Munak is threatening people in Payon."; - next; - mes "So we need brave adventurers like you!"; - next; - mes "Please hunt 30 Munaks then Payon will be in peace."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "- Payon Cheese Dongja -"; - close; - case 2: - close; - } - } - if (checkquest(3261,HUNTING) == 2) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - getexp 16000,7000; - erasequest 3261; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3261) == 2) { - mes "This mission is assigned by Cheese Dongja from Payon."; - next; - mes "Have you heard about Munak?"; - next; - mes "The ugly monster Munak is threatening people in Payon."; - next; - mes "So we need brave adventurers like you!"; - next; - mes "Please hunt 30 Munaks then Payon will be in peace."; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "- Payon Cheese Dongja -"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3261; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 3: - if (checkquest(3262) == 0) { - mes "This mission is assigned by a gem dealer, Ibraham from Morroc."; - next; - mes "A small beautiful flower in the barren desert... What an incredible scene it would be!"; - next; - mes "Planting flowers can make the world green and it will be so pretty everywhere."; - next; - mes "I plan to plant strong flowers in the Morroc desert so the soil gets better."; - next; - mes "I need 40 Maneater Blossom from Flora, I know Maneater Blossom is an ugly flower, but still it is a plant."; - next; - mes "I hope you can hunt Flora and get me 40 Maneater Blossoms. You are making the world green! Be proud!"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Morroc Ibraham --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3262; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if ((checkquest(3262) == 1) && (countitem(1032) < 40)) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by a gem dealer, Ibraham from Morroc."; - next; - mes "A small beautiful flower in the barren desert... What an incredible scene it would be!"; - next; - mes "Planting flowers can make the world green and it will be so pretty everywhere."; - next; - mes "I plan to plant strong flowers in the Morroc desert so the soil gets better."; - next; - mes "I need 40 Maneater Blossom from Flora, I know Maneater Blossom is an ugly flower, but still it is a plant."; - next; - mes "I hope you can hunt Flora and get me 40 Maneater Blossoms. You are making the world green! Be proud!"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Morroc Ibraham --"; - close; - case 2: - close; - } - } - if ((checkquest(3262) == 1) && (countitem(1032) > 39)) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - delitem 1032,40; //Blossom_Of_Maneater - getexp 17000,7000; - erasequest 3262; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3262) == 2) { - mes "This mission is assigned by a gem dealer, Ibraham from Morroc."; - next; - mes "A small beautiful flower in the barren desert... What an incredible scene it would be!"; - next; - mes "Planting flowers can make the world green and it will be so pretty everywhere."; - next; - mes "I plan to plant strong flowers in the Morroc desert so the soil gets better."; - next; - mes "I need 40 Maneater Blossom from Flora, I know Maneater Blossom is an ugly flower, but still it is a plant."; - next; - mes "I hope you can hunt Flora and get me 40 Maneater Blossoms. You are making the world green! Be proud!"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Morroc Ibraham --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3262; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - case 4: - if (checkquest(3263) == 0) { - mes "This mission is assigned by the Payon blacksmith Antonio."; - next; - mes "Magic wand! Have you heard about it? It is an incredible wand!"; - next; - mes "If you say the magic words and swing the wand, it will make your wishes come true."; - next; - mes "So, I decided to make it by myself. Then I will be rich and powerful~! Haha!!"; - next; - mes "To make the wand, I need some special materials."; - next; - mes "Please bring me 30 Dokebi Horns and 30 Trunks. If you do so, I will lend you my magic wand once. Haha, good deal?"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Payon blacksmith Antonio --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3263; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - if ((checkquest(3263) == 1) && (countitem(1021) < 30) && (countitem(7150) < 30)) { - mes "You have an on-going mission. Would you like to check the details?"; - next; - switch (select("Check the details.:Cancel.")) { - case 1: - mes "This mission is assigned by the Payon blacksmith Antonio."; - next; - mes "Magic wand! Have you heard about it? It is an incredible wand!"; - next; - mes "If you say the magic words and swing the wand, it will make your wishes come true."; - next; - mes "So, I decided to make it by myself. Then I will be rich and powerful~! Haha!!"; - next; - mes "To make the wand, I need some special materials."; - next; - mes "Please bring me 30 Dokebi Horns and 30 Trunks. If you do so, I will lend you my magic wand once. Haha, good deal?"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Payon blacksmith Antonio --"; - close; - case 2: - close; - } - } - if ((checkquest(3263) == 1) && (countitem(1021) > 29) && (countitem(7150) > 29)) { - mes "I have done pretty well for the mission. Should I report it now?"; - next; - switch (select("Report the mission.:Do not report it yet.")) { - case 1: - delitem 1021,30; //Dokkaebi_Horn - delitem 7150,30; //Bamboo_Cut - getexp 18000,8000; - erasequest 3263; - mes "You have completed the mission. Get rewards."; - close; - case 2: - close; - } - } - if (checkquest(3263) == 2) { - mes "This mission is assigned by the Payon blacksmith Antonio."; - next; - mes "Magic wand! Have you heard about it? It is an incredible wand!"; - next; - mes "If you say the magic words and swing the wand, it will make your wishes come true."; - next; - mes "So, I decided to make it by myself. Then I will be rich and powerful~! Haha!!"; - next; - mes "To make the wand, I need some special materials."; - next; - mes "Please bring me 30 Dokebi Horns and 30 Trunks. If you do so, I will lend you my magic wand once. Haha, good deal?"; - next; - mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; - next; - mes "-- Payon blacksmith Antonio --"; - next; - mes " "; - next; - switch (select("Accept the mission.:Do not accept the mission.")) { - case 1: - if ((BaseLevel > 54) && (BaseLevel < 71)) { - setquest 3263; - mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; - next; - mes "This mission doesn't have time limits."; - close; - } - mes "These missions are not fit for my level. I should look for other missions."; - close; - case 2: - close; - } - } - close; - } - } - } - mes "To get these missions, I need to Join the Eden Group first. I must find Secretary Lime Evenor and become a member."; - close; -} \ No newline at end of file +//===== rAthena Script ======================================= +// Eden Group Quests - Mission [56 - 70] +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Repetable Quests for Players between Baselevel 55 - 71 . +//===== Additional Comments: ================================= +//= 1.0 First Version. +//= 1.1 Some little optimization here and there. [Masao] +//============================================================ + +moc_para01,42,38,3 script Mission [56 - 70] 857,{ + + if (countitem(6219) > 0) { + if (checkquest(3259) > -1) { + erasequest 3259; + } + if (checkquest(3253) > -1) { + erasequest 3253; + } + if (checkquest(3265) > -1) { + erasequest 3265; + } + mes "Here is the list of various adventures for level 55~70 adventurers."; + next; + mes "Lots of missions such as a Monster Hunting, Delivery Goods, Finding People."; + next; + switch (select("Mission Numbers 1~5:Mission Numbers 6~10:Mission Numbers 11~15")) { + case 1: + switch (select("What is this Bandage?:Dangerous Alligators.:That wasn't a mermaid...:My country is calling me!")) { + case 1: + if (checkquest(3250) == 0) { + mes "This mission is assigned by the Rekenber corporation from Lighthalzen. Below are the details."; + next; + mes "Rekenber corporation is about to launch a new project called 'Green Medical Center'. For the first product of the project, we are preparing well-being Bandages."; + next; + mes "Regarding the project, we need to research monster's reactions when they are wrapped with Rotten Bandages."; + next; + mes "If you are interested, please hunt 30 Mummies and bring 30 Rotten Bandages. You can find them in the Pyramid West of Morroc."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "- Rekenber corporation chief director 'Julie E Delph' -"; + next; + mes " "; + next; + mes "Would you like to accept this mission?"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3250; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if (checkquest(3250,HUNTING) == 1) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by the Rekenber corporation from Lighthalzen. Below are the details."; + next; + mes "Rekenber corporation is about to launch a new project called 'Green Medical Center'. For the first product of the project, we are preparing well-being Bandages."; + next; + mes "Regarding the project, we need to research monster's reactions when they are wrapped with Rotten Bandages."; + next; + mes "If you are interested, please hunt 30 Mummies and bring 30 Rotten Bandages. You can find them in the Pyramid West of Morroc."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "- Rekenber corporation chief director 'Julie E Delph' -"; + close; + case 2: + close; + } + } + if ((checkquest(3250,HUNTING) == 2) && (countitem(930) > 19)) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + delitem 930,20; //Rotten_Bandage + getexp 15000,5000; + erasequest 3250; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3250) == 2) { + mes "This mission is assigned by the Rekenber corporation from Lighthalzen. Below are the details."; + next; + mes "Rekenber corporation is about to launch a new project called 'Green Medical Center'. For the first product of the project, we are preparing well-being Bandages."; + next; + mes "Regarding the project, we need to research monster's reactions when they are wrapped with Rotten Bandages."; + next; + mes "If you are interested, please hunt 30 Mummies and bring 30 Rotten Bandages. You can find them in the Pyramid West of Morroc."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "- Rekenber corporation chief director 'Julie E Delph' -"; + next; + mes " "; + next; + mes "Would you like to accept this mission?"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3250; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 2: + if (checkquest(3251) == 0) { + mes "This mission is assigned by the Comodo cooperative society. Below are the details."; + next; + mes "Alligators have gone wild these days, they attack women and drunken people who hang out near the beach."; + next; + mes "This is a very shameful situation for us, the most wonderful vacation spot in Rune-Midgard."; + next; + mes "So, it would be very helpful if you hunt 30 Alligators to clean out this situation."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes " "; + next; + mes "Would you like to accept this mission?"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3251; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if (checkquest(3251,HUNTING) == 1) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by the Comodo cooperative society. Below are the details."; + next; + mes "Alligators have gone wild these days, they attack women and drunken people who hang out near the beach."; + next; + mes "This is a very shameful situation for us, the most wonderful vacation spot in Rune-Midgard."; + next; + mes "So, it would be very helpful if you hunt 30 Alligators to clean out this situation."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + close; + case 2: + close; + } + } + if (checkquest(3251,HUNTING) == 2) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + getexp 16000,6000; + erasequest 3251; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3251) == 2) { + mes "This mission is assigned by the Comodo cooperative society. Below are the details."; + next; + mes "Alligators have gone wild these days, they attack women and drunken people who hang out near the beach."; + next; + mes "This is a very shameful situation for us, the most wonderful vacation spot in Rune-Midgard."; + next; + mes "So, it would be very helpful if you hunt 30 Alligators to clean out this situation."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes " "; + next; + mes "Would you like to accept this mission?"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3251; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 3: + if (checkquest(3252) == 0) { + mes "This mission is assigned by an unknown client from Izlude."; + next; + mes "I have admired the beach of Izlude, ever since I was born."; + next; + mes "When I was young, I found a mysterious creature in the Izlude dungeon, I had never seen something like that before..."; + next; + mes "I instantly thought it was a mermaid. I was so supprised, I have studied about mermaids in whole my life."; + next; + mes "But, as I studied harder, I found that the creature was not a mermaid... yes, It wasn't beautiful at all like other mermaids..."; + next; + mes "I finally tracked down the fact that it was a Merman, not a Mermaid!"; + next; + mes "Merman... I have wasted my life studying this monster! So please hunt 30 Mermans to make me feel better."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Izlude 'The Lost dream mermaid' --"; + next; + mes " "; + next; + mes "Would you like to accept this mission?"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3252; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if (checkquest(3252,HUNTING) == 1) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by an unknown client from Izlude."; + next; + mes "I have admired the beach of Izlude, ever since I was born."; + next; + mes "When I was young, I found a mysterious creature in the Izlude dungeon, I had never seen something like that before."; + next; + mes "I instantly thought it was a mermaid. I was so supprised, I have studied about mermaids in whole my life."; + next; + mes "But, as I studied harder, I found that the creature was not a mermaid... yes, It wasn't beautiful at all like other mermaids..."; + next; + mes "I finally tracked down the fact that it was a Merman, not a Mermaid!"; + next; + mes " Merman... I have wasted my life studying this monster! So please hunt 30 Mermans to make me feel better."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Izlude 'The Lost dream mermaid' --"; + close; + case 2: + close; + } + } + if (checkquest(3252,HUNTING) == 2) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + getexp 17000,8000; + erasequest 3252; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3252) == 2) { + mes "This mission is assigned by an unknown client from Izlude."; + next; + mes "I have admired the beach of Izlude, ever since I was born."; + next; + mes "When I was young, I found a mysterious creature in the Izlude dungeon, I had never seen something like that before."; + next; + mes "I instantly thought it was a mermaid. I was so supprised, I have studied about mermaids in whole my life."; + next; + mes "But, as I studied harder, I found that the creature was not a mermaid... yes, It wasn't beautiful at all like other mermaids..."; + next; + mes "I finally tracked down the fact that it was a Merman, not a Mermaid!"; + next; + mes "Merman... I have wasted my life studying this monster! So please hunt 30 Mermans to make me feel better."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Izlude 'The Lost dream mermaid' --"; + next; + mes " "; + next; + mes "Would you like to accept this mission?"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3252; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 4: + if (checkquest(3254) == 0) { + mes "This mission is assigned by the government officer of the Rune-Midgarts Kingdom."; + next; + mes "To prevent a flood in Prontera, we decided to build a huge dam to regulate the water supply."; + next; + mes "But, we are shorthanded on supplies and we need to collect Fine Sand and Grit."; + next; + mes "So, we would like to ask for help. People, please bring us 10 Fine Sand and 30 Grit each so we can build the dam."; + next; + mes "You can get those materials from Sand Man, I wish you good luck!"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Government officer of the Rune-Midgarts Kingdom, Dufre Kent --"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3254; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if ((checkquest(3254) == 1) && (countitem(7043) < 10) && (countitem(1056) < 30)) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by the government officer of the Rune-Midgarts Kingdom."; + next; + mes "To prevent a flood in Prontera, we decided to build a huge dam to regulate the water supply."; + next; + mes "But, we are shorthanded on supplies and we need to collect Fine Sand and Grit."; + next; + mes "So, we would like to ask for help. People, please bring us 10 Fine Sand and 30 Grit each so we can build the dam."; + next; + mes "You can get those materials from Sand Man, I wish you good luck!"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Government officer of the Rune-Midgarts Kingdom, Dufre Kent --"; + close; + case 2: + close; + } + } + if ((checkquest(3254) == 1) && (countitem(7043) > 9) && (countitem(1056) > 29)) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + delitem 7043,10; //Fine_Sand + delitem 1056,30; //Grit + getexp 18000,8000; + erasequest 3254; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3254) == 2) { + mes "This mission is assigned by the government officer of the Rune-Midgarts Kingdom."; + next; + mes "To prevent a flood in Prontera, we decided to build a huge dam to regulate the water supply."; + next; + mes "But, we are shorthanded on supplies and we need to collect Fine Sand and Grit."; + next; + mes "So, we would like to ask for help. People, please bring us 10 Fine Sand and 30 Grit each so we can build the dam."; + next; + mes "You can get those materials from Sand Man, I wish you good luck!"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Government officer of the Rune-Midgarts Kingdom, Dufre Kent --"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3254; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + } + case 2: + switch (select("Hunt Wild Boar:Preparing the Summer:A Woman's Grudge:Special ingredients:Puppet Master's Agony")) { + case 1: + if (checkquest(3255) == 0) { + mes "This mission is assigned by the Payon town hall."; + next; + mes "Wild animals are always annoyances to farmers."; + next; + mes "They attack our farm and ruin whole crops!! We can't stand it anymore!"; + next; + mes "So, we would like to ask for the help from brave adventurers."; + next; + mes "Please, hunt 30 Savages to save our crops!"; + next; + mes "You can easily find those monsters around our town and field."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Payon town hall members --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3255; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if (checkquest(3255,HUNTING) == 1) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by the Payon town hall."; + next; + mes "Wild animals are always annoyances to farmers."; + next; + mes "They attack our farm and ruin whole crops!! We can't stand it anymore!"; + next; + mes "???????????????ð??????????????j??????????????????"; + next; + mes "Please, hunt 30 Savages to save our crops!"; + next; + mes "You can easily find those monsters around our town and field."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Payon town hall members --"; + close; + case 2: + close; + } + } + if (checkquest(3255,HUNTING) == 2) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + getexp 16000,7000; + erasequest 3255; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3255) == 2) { + mes "This mission is assigned by the Payon town hall."; + next; + mes "Wild animals are always annoyances to farmers."; + next; + mes "They attack our farm and ruin whole crops!! We can't stand it anymore!"; + next; + mes "???????????????ð??????????????j??????????????????"; + next; + mes "Please, hunt 30 Savages to save our crops!"; + next; + mes "You can easily find those monsters around our town and field."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Payon town hall members --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3255; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 2: + if (checkquest(3256) == 0) { + mes "This mission is assigned by the Morroc blacksmith Aragham."; + next; + mes "Hello~~~~, Adventurers! This is Aragham, the hottest blacksmith in Morroc!"; + next; + mes "Anyway, I have a son named Aragam Junior, the cute one. Haha."; + next; + mes "He will be attending summer camp this summer, but he doesn't know how to swim."; + next; + mes "I want to teach him, but as you know I am a blacksmith, a far cry from swimming! Hehe."; + next; + mes "But, I figured that if I make swim fins, it will be great for his confidence~!"; + next; + mes "To make it, I need 30 Sticky Webfoots from a Roda Frog. Can you bring them to me?"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "PS. Do not compare me with Hollgrehenn or Antonio!!!!"; + next; + mes "-- The hottest blacksmith, Morroc blacksmith Aragham --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3256; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if ((checkquest(3256) == 1) && (countitem(918) < 30)) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by the Morroc blacksmith Aragham."; + next; + mes "Hello~~~~, Adventurers! This is Aragham, the hottest blacksmith in Morroc!"; + next; + mes "Anyway, I have a son named Aragam Junior, the cute one. Haha."; + next; + mes "He will be attending summer camp this summer, but he doesn't know how to swim."; + next; + mes "I want to teach him, but as you know I am a blacksmith, a far cry from swimming! Hehe."; + next; + mes "But, I figured that if I make swim fins, it will be great for his confidence~!"; + next; + mes "To make it, I need 30 Sticky Webfoots from a Roda Frog. Can you bring them to me?"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "PS. Do not compare me with Hollgrehenn or Antonio!!!!"; + next; + mes "-- The hottest blacksmith, Morroc blacksmith Aragham --"; + close; + case 2: + close; + } + } + if ((checkquest(3256) == 1) && (countitem(918) > 29)) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + delitem 918,30; //Sticky_Webfoot + getexp 15000,5000; + erasequest 3256; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3256) == 2) { + mes "This mission is assigned by the Morroc blacksmith Aragham."; + next; + mes "Hello~~~~, Adventurers! This is Aragham, the hottest blacksmith in Morroc!"; + next; + mes "Anyway, I have a son named Aragam Junior, the cute one. Haha."; + next; + mes "He will be attending summer camp this summer, but he doesn't know how to swim."; + next; + mes "I want to teach him, but as you know I am a blacksmith, a far cry from swimming! Hehe."; + next; + mes "But, I figured that if I make swim fins, it will be great for his confidence~!"; + next; + mes "To make it, I need 30 Sticky Webfoots from a Roda Frog. Can you bring them to me?"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "PS. Do not compare me with Hollgrehenn or Antonio!!!!"; + next; + mes "-- The hottest blacksmith, Morroc blacksmith Aragham --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3256; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 3: + if (checkquest(3257) == 0) { + mes "This mission is assigned by an inventor Dorian from Izlude."; + next; + mes "Have you heard the story that if women have a grudge on their mind, it will bring natural disasters."; + next; + mes "Wow, so guys must watch out for those sensitive women! Make sure they don't have any grudges on you."; + next; + mes "Women can bring strange phenomenons with them!"; + next; + mes "I am so intrigued with that story that I'm trying to prove that it can be true."; + next; + mes "So I need to make women upset! Haha, I know what a mean idea, right?"; + next; + mes "But this is seriously just for studying... So please hunt 30 Sohee's who seems to be revived from victimized souls."; + next; + mes "So I can keep observing the case."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Elegance inventor Dorian --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3257; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if (checkquest(3257,HUNTING) == 1) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by an inventor Dorian from Izlude."; + next; + mes "Have you heard the story that if women have a grudge on their mind, it will bring natural disasters."; + next; + mes "Wow, so guys must watch out for those sensitive women! Make sure they don't have any grudges on you."; + next; + mes "Women can bring strange phenomenons with them!"; + next; + mes "I am so intrigued with that story that I'm trying to prove that it can be true."; + next; + mes "So I need to make women upset! Haha, I know what a mean idea, right?"; + next; + mes "But this is seriously just for studying... So please hunt 30 Sohee's who seems to be revived from victimized souls."; + next; + mes "So I can keep observing the case."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Elegance inventor Dorian --"; + close; + case 2: + close; + } + } + if (checkquest(3257,HUNTING) == 2) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + getexp 17000,8000; + erasequest 3257; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3257) == 2) { + mes "This mission is assigned by an inventor Dorian from Izlude."; + next; + mes "Have you heard the story that if women have a grudge on their mind, it will bring natural disasters."; + next; + mes "Wow, so guys must watch out for those sensitive women! Make sure they don't have any grudges on you."; + next; + mes "Women can bring strange phenomenons with them!"; + next; + mes "I am so intrigued with that story that I'm trying to prove that it can be true."; + next; + mes "So I need to make women upset! Haha, I know what a mean idea, right?"; + next; + mes "But this is seriously just for studying... So please hunt 30 Sohee's who seems to be revived from victimized souls."; + next; + mes "So I can keep observing the case."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Elegance inventor Dorian --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3257; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 4: + if (checkquest(3258) == 0) { + mes "This mission is assigned by Wallah from Payon."; + next; + mes "Hello, adventurer. How are you? How is your health?"; + next; + mes "I am a pharmacist and I am having a hard time getting special ingredients lately."; + next; + mes "Because I am a little sensitive girl, how can I possibly get those things by myself."; + next; + mes "So, please help me. Just bring 40 Huge Leafs to me, that will be enough to complete my special medicine!"; + next; + mes "Please bring it as soon as possible, people need my medicine."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Wallah --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3258; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if ((checkquest(3258) == 1) && (countitem(7198) < 40)) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by Wallah from Payon."; + next; + mes "Hello, adventurer. How are you? How is your health?"; + next; + mes "I am a pharmacist and I am having a hard time getting special ingredients lately."; + next; + mes "Because I am a little sensitive girl, how can I possibly get those things by myself."; + next; + mes "So, please help me. Just bring 40 Huge Leafs to me, that will be enough to complete my special medicine!"; + next; + mes "Please bring it as soon as possible, people need my medicine."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Wallah --"; + close; + case 2: + close; + } + } + if ((checkquest(3258) == 1) && (countitem(7198) > 39)) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + delitem 7198,40; //Great_Leaf + getexp 16000,7000; + erasequest 3258; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3258) == 2) { + mes "This mission is assigned by Wallah from Payon."; + next; + mes "Hello, adventurer. How are you? How is your health?"; + next; + mes "I am a pharmacist and I am having a hard time getting special ingredients lately."; + next; + mes "Because I am a little sensitive girl, how can I possibly get those things by myself."; + next; + mes "So, please help me. Just bring 40 Huge Leafs to me, that will be enough to complete my special medicine!"; + next; + mes "Please bring it as soon as possible, people need my medicine."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Wallah --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3258; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 5: + if (checkquest(12217) == 0) { + mes "This mission is assigned by puppet master Woonute from Geffen."; + next; + mes "You know being a puppet master is kind of a hard job to satisfy people."; + next; + mes "People can search and see so many different things on their own thesedays."; + next; + mes "Their expectations are getting high, I can't satisfy them anymore."; + next; + mes "But if I can make new toy concepts, like living toys, it will be ground breaking."; + next; + mes "I heard that there are live dolls called Marionettes. Can you hunt 30 Marionettes for me? And also bring 30 Golden Hair, those will be great materials for the new toys."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Puppet Master Woonute --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 12217; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if ((checkquest(12217,HUNTING) == 1) && (countitem(1060) < 30)) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by puppet master Woonute from Geffen."; + next; + mes "You know being a puppet master is kind of a hard job to satisfy people."; + next; + mes "People can search and see so many different things on their own thesedays."; + next; + mes "Their expectations are getting high, I can't satisfy them anymore."; + next; + mes "But if I can make new toy concepts, like living toys, it will be ground breaking."; + next; + mes "I heard that there are live dolls called Marionettes. Can you hunt 30 Marionettes for me? And also bring 30 Golden Hair, those will be great materials for the new toys."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Puppet Master Woonute --"; + close; + case 2: + close; + } + } + if ((checkquest(12217,HUNTING) == 2) && (countitem(1060) > 29)) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + delitem 1060,30; //Golden_Hair + getexp 17000,7000; + erasequest 3259; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(12217) == 2) { + mes "This mission is assigned by puppet master Woonute from Geffen."; + next; + mes "You know being a puppet master is kind of a hard job to satisfy people."; + next; + mes "People can search and see so many different things on their own thesedays."; + next; + mes "Their expectations are getting high, I can't satisfy them anymore."; + next; + mes "But if I can make new toy concepts, like living toys, it will be ground breaking."; + next; + mes "I heard that there are live dolls called Marionettes. Can you hunt 30 Marionettes for me? And also bring 30 Golden Hair, those will be great materials for the new toys."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Puppet Master Woonute --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 12217; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + } + case 3: + switch (select("Tiresome Flies:Dangerous Munak:Make the World green:Magic Wand")) { + case 1: + if (checkquest(3260) == 0) { + mes "This mission is assigned by an exterminator from Prontera."; + next; + mes "As the weather gets warmer, insects multiply more and more. It is already out of control."; + next; + mes "People in Prontera cannot sleep because of all the bugs in their house."; + next; + mes "So, please help us, hunt 30 Hunter Flies. Then the flies can be reduced slowly."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- The Prontera exterminator --"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3260; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if (checkquest(3260,HUNTING) == 1) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by an exterminator from Prontera."; + next; + mes "As the weather gets warmer, insects multiply more and more. It is already out of control."; + next; + mes "People in Prontera cannot sleep because of all the bugs in their house."; + next; + mes "So, please help us, hunt 30 Hunter Flies. Then the flies can be reduced slowly."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- The Prontera exterminator --"; + close; + case 2: + close; + } + } + if (checkquest(3260,HUNTING) == 2) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + getexp 16000,6000; + erasequest 3260; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3260) == 2) { + mes "This mission is assigned by an exterminator from Prontera."; + next; + mes "As the weather gets warmer, insects multiply more and more. It is already out of control."; + next; + mes "People in Prontera cannot sleep because of all the bugs in their house."; + next; + mes "So, please help us, hunt 30 Hunter Flies. Then the flies can be reduced slowly."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- The Prontera exterminator --"; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3260; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 2: + if (checkquest(3261) == 0) { + mes "This mission is assigned by Cheese Dongja from Payon."; + next; + mes "Have you heard about Munak?"; + next; + mes "The ugly monster Munak is threatening people in Payon."; + next; + mes "So we need brave adventurers like you!"; + next; + mes "Please hunt 30 Munaks then Payon will be in peace."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "- Payon Cheese Dongja -"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3261; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if (checkquest(3261,HUNTING) == 1) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by Cheese Dongja from Payon."; + next; + mes "Have you heard about Munak?"; + next; + mes "The ugly monster Munak is threatening people in Payon."; + next; + mes "So we need brave adventurers like you!"; + next; + mes "Please hunt 30 Munaks then Payon will be in peace."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "- Payon Cheese Dongja -"; + close; + case 2: + close; + } + } + if (checkquest(3261,HUNTING) == 2) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + getexp 16000,7000; + erasequest 3261; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3261) == 2) { + mes "This mission is assigned by Cheese Dongja from Payon."; + next; + mes "Have you heard about Munak?"; + next; + mes "The ugly monster Munak is threatening people in Payon."; + next; + mes "So we need brave adventurers like you!"; + next; + mes "Please hunt 30 Munaks then Payon will be in peace."; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "- Payon Cheese Dongja -"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3261; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 3: + if (checkquest(3262) == 0) { + mes "This mission is assigned by a gem dealer, Ibraham from Morroc."; + next; + mes "A small beautiful flower in the barren desert... What an incredible scene it would be!"; + next; + mes "Planting flowers can make the world green and it will be so pretty everywhere."; + next; + mes "I plan to plant strong flowers in the Morroc desert so the soil gets better."; + next; + mes "I need 40 Maneater Blossom from Flora, I know Maneater Blossom is an ugly flower, but still it is a plant."; + next; + mes "I hope you can hunt Flora and get me 40 Maneater Blossoms. You are making the world green! Be proud!"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Morroc Ibraham --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3262; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if ((checkquest(3262) == 1) && (countitem(1032) < 40)) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by a gem dealer, Ibraham from Morroc."; + next; + mes "A small beautiful flower in the barren desert... What an incredible scene it would be!"; + next; + mes "Planting flowers can make the world green and it will be so pretty everywhere."; + next; + mes "I plan to plant strong flowers in the Morroc desert so the soil gets better."; + next; + mes "I need 40 Maneater Blossom from Flora, I know Maneater Blossom is an ugly flower, but still it is a plant."; + next; + mes "I hope you can hunt Flora and get me 40 Maneater Blossoms. You are making the world green! Be proud!"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Morroc Ibraham --"; + close; + case 2: + close; + } + } + if ((checkquest(3262) == 1) && (countitem(1032) > 39)) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + delitem 1032,40; //Blossom_Of_Maneater + getexp 17000,7000; + erasequest 3262; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3262) == 2) { + mes "This mission is assigned by a gem dealer, Ibraham from Morroc."; + next; + mes "A small beautiful flower in the barren desert... What an incredible scene it would be!"; + next; + mes "Planting flowers can make the world green and it will be so pretty everywhere."; + next; + mes "I plan to plant strong flowers in the Morroc desert so the soil gets better."; + next; + mes "I need 40 Maneater Blossom from Flora, I know Maneater Blossom is an ugly flower, but still it is a plant."; + next; + mes "I hope you can hunt Flora and get me 40 Maneater Blossoms. You are making the world green! Be proud!"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Morroc Ibraham --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3262; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + case 4: + if (checkquest(3263) == 0) { + mes "This mission is assigned by the Payon blacksmith Antonio."; + next; + mes "Magic wand! Have you heard about it? It is an incredible wand!"; + next; + mes "If you say the magic words and swing the wand, it will make your wishes come true."; + next; + mes "So, I decided to make it by myself. Then I will be rich and powerful~! Haha!!"; + next; + mes "To make the wand, I need some special materials."; + next; + mes "Please bring me 30 Dokebi Horns and 30 Trunks. If you do so, I will lend you my magic wand once. Haha, good deal?"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Payon blacksmith Antonio --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3263; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + if ((checkquest(3263) == 1) && (countitem(1021) < 30) && (countitem(7150) < 30)) { + mes "You have an on-going mission. Would you like to check the details?"; + next; + switch (select("Check the details.:Cancel.")) { + case 1: + mes "This mission is assigned by the Payon blacksmith Antonio."; + next; + mes "Magic wand! Have you heard about it? It is an incredible wand!"; + next; + mes "If you say the magic words and swing the wand, it will make your wishes come true."; + next; + mes "So, I decided to make it by myself. Then I will be rich and powerful~! Haha!!"; + next; + mes "To make the wand, I need some special materials."; + next; + mes "Please bring me 30 Dokebi Horns and 30 Trunks. If you do so, I will lend you my magic wand once. Haha, good deal?"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Payon blacksmith Antonio --"; + close; + case 2: + close; + } + } + if ((checkquest(3263) == 1) && (countitem(1021) > 29) && (countitem(7150) > 29)) { + mes "I have done pretty well for the mission. Should I report it now?"; + next; + switch (select("Report the mission.:Do not report it yet.")) { + case 1: + delitem 1021,30; //Dokkaebi_Horn + delitem 7150,30; //Bamboo_Cut + getexp 18000,8000; + erasequest 3263; + mes "You have completed the mission. Get rewards."; + close; + case 2: + close; + } + } + if (checkquest(3263) == 2) { + mes "This mission is assigned by the Payon blacksmith Antonio."; + next; + mes "Magic wand! Have you heard about it? It is an incredible wand!"; + next; + mes "If you say the magic words and swing the wand, it will make your wishes come true."; + next; + mes "So, I decided to make it by myself. Then I will be rich and powerful~! Haha!!"; + next; + mes "To make the wand, I need some special materials."; + next; + mes "Please bring me 30 Dokebi Horns and 30 Trunks. If you do so, I will lend you my magic wand once. Haha, good deal?"; + next; + mes "Please confirm it to us after you complete the mission, then we will give you proper rewards."; + next; + mes "-- Payon blacksmith Antonio --"; + next; + mes " "; + next; + switch (select("Accept the mission.:Do not accept the mission.")) { + case 1: + if ((BaseLevel > 54) && (BaseLevel < 71)) { + setquest 3263; + mes "I have successfully accepted the mission. I have to come back and confirm my work after I complete the mission."; + next; + mes "This mission doesn't have time limits."; + close; + } + mes "These missions are not fit for my level. I should look for other missions."; + close; + case 2: + close; + } + } + close; + } + } + } + mes "To get these missions, I need to Join the Eden Group first. I must find Secretary Lime Evenor and become a member."; + close; +} diff --git a/npc/quests/magic_books.txt b/npc/quests/magic_books.txt index 40af631a1..d85bfb0d3 100644 --- a/npc/quests/magic_books.txt +++ b/npc/quests/magic_books.txt @@ -1,2161 +1,2161 @@ -//===== rAthena Script ======================================= -//= Magic Book Seller -//===== By: ================================================== -//= Masao -//= Credits to Muad_Dib for the translation. -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena -//===== Description: ========================================= -//= An NPC which sells you different kinds of Magic Books. -//===== Additional Comments: ================================= -//= 1.0 First Version. [Masao] -//============================================================ - -geffen_in,176,105,4 script Magic Book Master Velof 64,{ - - if (checkweight(1201,1) == 0) { - mes "You're carrying too many items. Please make some room in your bag first."; - close; - } - if ((MaxWeight - Weight) < 1000) { - mes "You're overweight with items. Please lose some item weight first."; - close; - } - if ((Upper == 2) && (Class != Job_Baby_Warlock)) { - mes "[Magic Book Master Velof]"; - mes "What are you, a baby?"; - mes "I'm not here to babysit. Get lost!"; - close; - } - if ((Class != Job_Warlock) && (Class != Job_Warlock_T) && (Class != Job_Baby_Warlock)) { - mes "[Magic Book Master Velof]"; - mes "Ha ha, are you also seeking new knowledge?"; - next; - mes "[Magic Book Master Velof]"; - mes "I'm sorry, but my knowledge doesn't concern you."; - close; - } - if (getskilllv(2230) < 1) { // WL_RELEASE - mes "[Magic Book Master Velof]"; - mes "Well you've met all the qualifications except one: you need the Release spell."; - next; - mes "[Magic Book Master Velof]"; - mes "Learn the spell first. I've got so many things to tell you."; - close; - } - if ((getskilllv(2230) > 0) && (Class == Job_Warlock) || (Class == Job_Warlock_T) || (Class == Job_Baby_Warlock)) { - mes "[Magic Book Master Velof]"; - mes "Welcome, my friend."; - mes "Congratulations on entering a brand new world of magic."; - next; - mes "[Magic Book Master Velof]"; - mes "We magic practitioners are always thirsty for new knowledge and power."; - next; - mes "[Magic Book Master Velof]"; - mes "We endure great hardship and pain to achieve what we want. When we finally do, the sense of accomplishment defies description. That's why both you and I have chosen the way of magic."; - next; - mes "[Magic Book Master Velof]"; - mes "By the way, what brings you to me today?"; - next; - switch (select("Nothing.:Do you know the Reading Spell Book?:What's the Freezing Spell?:Can I have a Magic Book?:Can I use the Reading Spell Book without the Freezing Spell?:About the Ultimate Magic Book")) { - case 1: - mes "[Magic Book Master Velof]"; - mes "Hah! You're silly."; - close; - case 2: - mes "[Magic Book Master Velof]"; - mes "Reading Spell Book literally means 'read a spell book.' Do you know how to use Magic Books?"; - next; - switch (select("Yes, I do.:No, I don't.")) { - case 1: - mes "[Magic Book Master Velof]"; - mes "Well then, you don't need an additional lecture."; - close; - case 2: - mes "[Magic Book Master Velof]"; - mes "Magic Books are an advanced type of magic scroll. While spells on scrolls disappear after one use, the ones in Magic Books can be cast multiple times."; - next; - mes "[Magic Book Master Velof]"; - mes "Let's compare a spell on a scroll to a wire. When the wire is used to open a door or do something else, it's bent and crushed, losing its original shape. A spell from a Magic Book is more like a shape memory alloy."; - next; - mes "[Magic Book Master Velof]"; - mes "Huh, don't you now what shape memory alloy is? Eh, just remember this: a wire made from shape memory alloy restores its shape over time."; - next; - mes "[Magic Book Master Velof]"; - mes "Like the alloy, a spell on a Magic Book remains after a use, although reusing the spell has a downtime for its restoration."; - next; - mes "[Magic Book Master Velof]"; - mes "...Oh, I didn't mean to talk for too long. Anyways, you can use Magic Books to cast spells that you've learned. Its concept is different from normal spells."; - next; - select("What's the difference?"); - mes "[Magic Book Master Velof]"; - mes "Why do you have to write your existing spells in Magic Books, you asked?"; - next; - mes "[Magic Book Master Velof]"; - mes "That's a good question. It's related to Magic Binding."; - next; - mes "[Magic Book Master Velof]"; - mes "You already learned Release, which allows you to hold the energy of the four different elements before the actual casting. Magic Binding is similar to Release."; - next; - mes "[Magic Book Master Velof]"; - mes "Since you've learned Release, you're capable of using Magic Binding as well. Well, let's talk about that later."; - next; - mes "[Magic Book Master Velof]"; - mes "You know how to hold an existing spell, and then cast it at a desired timing via Release."; - next; - mes "[Magic Book Master Velof]"; - mes "Carrying the globes of the four elements is also related to Magic Binding."; - next; - mes "[Magic Book Master Velof]"; - mes "As you know, the four elements are Fire, Water, Wind, and Earth. Being able to employ them freely is the essential principle of magic."; - next; - mes "[Magic Book Master Velof]"; - mes "We Humans use torches to keep fire, fans to blow wind, and bowls to hold water. We also use clay to make earthenware."; - next; - mes "[Magic Book Master Velof]"; - mes "Those activities may differ from magic, but both are the same in the sense of employing the four elements."; - next; - mes "[Magic Book Master Velof]"; - mes "When you use complex magic spells to summon a storm, drop lightning, or burn an area, that consumes a lot of your energy, both physically and mentally."; - next; - mes "[Magic Book Master Velof]"; - mes "When you fail to bind such powerful magic spells or fail to control them,"; - next; - mes "[Magic Book Master Velof]"; - mes "you can receive irreparable damage to your mind and body."; - next; - mes "[Magic Book Master Velof]"; - mes "That's why we use Magic Books to reduce that burden. It helps summon pre-cast spells while you're focusing on binding their magic power."; - next; - mes "[Magic Book Master Velof]"; - mes "There's one downside though: Magic Books cannot be used for spells that you haven't learned."; - next; - mes "[Magic Book Master Velof]"; - mes "As I said earlier, spells in Magic Books tend to go back to what they are."; - next; - mes "[Magic Book Master Velof]"; - mes "That said, as a Circler, you cannot change or create spells in Magic Books."; - next; - mes "[Magic Book Master Velof]"; - mes "Even if you create one, its power will be beyond your capacity."; - next; - mes "[Magic Book Master Velof]"; - mes "In order to use the Reading Spell Book, you must learn the Freezing Spell to bind magic."; - close; - } - case 3: - mes "[Magic Book Master Velof]"; - mes "The Freezing Spell is used for Magic Binding. It helps you to insert a magic spell to a circle."; - next; - mes "[Magic Book Master Velof]"; - mes "Circles of magic work organically with each other. When you use the Freezing Spell to bind a spell, the spell won't activate until you cast the release spell."; - next; - mes "[Magic Book Master Velof]"; - mes "Of course, binding a spell continuously consumes your mana, but it consumes less mana than conventional magic spells."; - next; - mes "[Magic Book Master Velof]"; - mes "Magic Binding becomes more difficult when you use more powerful magic spells."; - next; - mes "[Magic Book Master Velof]"; - mes "For weak spells, you can bind two to three of them with your circle. For more powerful spells, maybe one or two is possible."; - next; - mes "[Magic Book Master Velof]"; - mes "That all depends on your ability to control your spells. You'll have to try and experience Magic Binding after you first learn it to really understand."; - close; - case 4: - mes "[Magic Book Master Velof]"; - mes "I'm sorry, but I only have Magic Books for beginners, but they're obviously not suitable for you. Do you still want one?"; - next; - switch (select("Sure thing.:Where can I find advanced books?")) { - case 1: - mes "[Magic Book Master Velof]"; - mes "Please go talk to [Lea] in the Archive. Tell her that you need one of the Magic Books that I've stored in there."; - next; - mes "[Magic Book Master Velof]"; - mes "For your information, she won't give it to you without anything in return. Expect her to ask you for something!"; - if (wm_book < 1) { - set wm_book, 1; - } - close; - case 2: - mes "[Magic Book Master Velof]"; - mes "I'm sorry, but our management has recently decided to limit the availability of Magic Books for Multi Circlers. It's because their numbers are increasing more quickly than we expected."; - next; - mes "[Magic Book Master Velof]"; - mes "You could find one if you try hard, but I don't have any with me."; - next; - mes "[Magic Book Master Velof]"; - mes "If our management releases the restriction, you'll be the first one to know. Don't worry."; - close; - } - case 5: - mes "[Magic Book Master Velof]"; - mes "Nothing will happen when you try to bind magic without using Magic Binding because you have nothing to hold magic."; - next; - mes "[Magic Book Master Velof]"; - mes "It's like water that needs a bowl to stay in place."; - next; - mes "[Magic Book Master Velof]"; - mes "The problem is when you try to forcefully cast a spell that you haven't learned. It'll definately backfire on you."; - next; - mes "[Magic Book Master Velof]"; - mes "Of course, the damage won't be severe: you'll fall asleep or be thrown into confusion. This is all because there's a conflict between your Magic Book and the force of Magic Binding when you're trying to summon and hold a unlearned spell."; - next; - mes "[Magic Book Master Velof]"; - mes "Don't try it out just to see what happens for yourself! Falling asleep while casting a spell? There's nothing more humiliating than that to magic practitioners like us."; - close; - case 6: - if ((BaseLevel > 139) && (getskilllv(2217) > 0) || (getskilllv(2213) > 0)) { - if(mac_book < 1){ - mes "[Magic Book Master Velof]"; - mes "I'm sorry, but could you ask someone else? I'm kind of busy right now."; - close; - } - if (mac_book == 1) { - mes "[Magic Book Master Velof]"; - mes "Huh, are you looking for the Ultimate Magic Book? Who sent you?"; - next; - select("Ms. Lea."); - mes "[Magic Book Master Velof]"; - mes "I'm sorry, but there's not much information left about the Ultimate Magic Book."; - next; - mes "[Magic Book Master Velof]"; - mes "A few scholars in the Midgard Continent once tried to collect ancient Magic Books and reproduce that book, but..."; - next; - select("But what?"); - mes "[Magic Book Master Velof]"; - mes "Oh yes, perhaps he might know something."; - next; - select("Yes, I knew this was coming!"); - mes "[Magic Book Master Velof]"; - mes "My brother is just like you. He's very interested in recreating the Ultimate Magic Book."; - next; - mes "[Magic Book Master Velof]"; - mes "His name is Galfos."; - mes "He's been taking a great interest in the ancient Magic Books."; - next; - mes "[Magic Book Master Velof]"; - mes "I didn't support him or give him any advice for his research since I thought he'd give on it pretty quickly, but..."; - next; - mes "[Magic Book Master Velof]"; - mes "If he's discovered anything useful, maybe it can helpful to you."; - next; - select("Where's Galfos now?"); - mes "[Magic Book Master Velof]"; - mes "I've heard that he's near the Expedition Camp beyond the Dimensional Rift to seek information about the ancient Magic Books."; - next; - mes "[Magic Book Master Velof]"; - mes "If you want to see him, you should prepare for a long journey."; - set mac_book,2; - close; - } - if (mac_book > 1) { - mes "[Magic Book Master Velof]"; - mes "Galfos is near the Expedition Camp beyond the Dimensional Rift."; - next; - mes "[Magic Book Master Velof]"; - mes "If you want to see him, you should prepare for a long journey."; - close; - } - } - mes "[Magic Book Master Velof]"; - mes "Ha ha, I'm sorry, but you should focus on strengthening your body rather than creating Magic Books."; - close; - } - } - mes "[Magic Book Master Velof]"; - mes "Ha ha, are you also seeking new knowledge?"; - next; - mes "[Magic Book Master Velof]"; - mes "I'm sorry, but my knowledge doesn't concern you."; - close; -} - -geffen_in,175,112,4 script Lea 123,{ - - if (checkweight(1201,1) == 0) { - mes "You're carrying too many items. Please make some room in your bag first."; - close; - } - if ((MaxWeight - Weight) < 1000) { - mes "You're overweight with items. Please lose some item weight first."; - close; - } - if ((wm_book > 0) && (Class == Job_Warlock) || (Class == Job_Warlock_T) || (Class == Job_Baby_Warlock)) { - mes "[Lea]"; - mes "You can only read books here. If you'd like to borrow any books, please receive an approval from 1 manager and 1 High Mage."; - next; - mes "[Lea]"; - mes "How may I help you?"; - next; - select("Master Velof asked me to bring his Magic Book."); - mes "[Lea]"; - mes "Are you borrowing a book?"; - next; - switch (select("Let me think.:I want the Beginner's Magic Books.:I want the Intermediate Magic Books.:I want the Superior Magic Books.:I want the Ultimate Magic Book.")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - mes "[Lea]"; - mes "We're in trouble because so many people want to borrow our Magic Books."; - next; - mes "[Lea]"; - mes "Unfortunately, many of our lent books aren't returned on time. That's why we've decided to charge a security deposit."; - next; - select("A security deposit?"); - mes "[Lea]"; - mes "Yes. You may pay a minimum of 10,000 Rune-Midgarts zeny. Alternatively, you can bring 2 Old Magic Books or 50 Old Pages. Once you pay the deposit, I'll let you borrow some Magic Books."; - next; - switch (select("Where can I find Old Magic Books and Old Pages?:I'll pay with zeny.:I'll pay with Old Magic Books.:I'll pay with Old Pages.")) { - case 1: - mes "[Lea]"; - mes "I heard that you can find them from Ride Words, Death Words, Bathorys, and other monsters. I ask that you please don't strain yourself to find those items."; - next; - mes "[Lea]"; - mes "Your life is more important than anything else, you know?"; - close; - case 2: - if (Zeny > 10000) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Fire Bolt):Magic Book (Cold Bolt):Magic Book (Lightning Bolt)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6189) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 10000) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - set Zeny, Zeny - 10000; - getitem 6189,1; //Magic_Book_FB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6190) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 10000) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - set Zeny, Zeny - 10000; - getitem 6190,1; //Magic_Book_CB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6191) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 10000) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - set Zeny, Zeny - 10000; - getitem 6191,1; //Magic_Book_LB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(1006) > 1) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Fire Bolt):Magic Book (Cold Bolt):Magic Book (Lightning Bolt)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6189) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(1006) > 1) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - delitem 1006,2; //Old_Magic_Book - getitem 6189,1; //Magic_Book_FB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6190) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(1006) > 1) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - delitem 1006,2; //Old_Magic_Book - getitem 6190,1; //Magic_Book_CB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6191) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(1006) > 1) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - delitem 1006,2; //Old_Magic_Book - getitem 6191,1; //Magic_Book_LB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(1097) > 49) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Fire Bolt):Magic Book (Cold Bolt):Magic Book (Lightning Bolt)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6189) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(1097) > 49) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - delitem 1097,50; //Worn_Out_Page - getitem 6189,1; //Magic_Book_FB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6190) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(1097) > 49) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - delitem 1097,50; //Worn_Out_Page - getitem 6190,1; //Magic_Book_CB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6191) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - else if (countitem(1097) > 49) { - mes "[Lea]"; - mes "The book's return date is written on the lending card on the back cover of the book."; - next; - mes "[Lea]"; - mes "Please try not to lose or damage the book to avoid paying any extra charges."; - delitem 1097,50; //Worn_Out_Page - getitem 6191,1; //Magic_Book_LB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - case 3: - mes "[Lea]"; - mes "Ah, so you want the Intermediate Magic Books. Please pay 50,000 Rune-Midgartian zeny, or you can bring me 2 Old Blue Boxes or 9 Eluniums to borrow the Intermediate Magic Books."; - next; - switch (select("Where can I find Old Blue Boxes and Eluniums?:I'll pay 50,000 zeny.:I'll pay with Old Blue Boxes.:I'll pay with Eluniums.")) { - case 1: - mes "[Lea]"; - mes "Old Blue Boxes are quite rare to find, but they can be obtained from monsters everywhere in the world, including Myst Cases, Megalogons, Mimics, Nightmares, Krabens, Requiems, Nine Tails, Noxiouses, and Byorgues."; - mes "If you have sufficient funds, you may buy the boxes from street vendors."; - next; - mes "[Lea]"; - mes "Eluniums can be obtained from Hyeguns, Zombie Prisoners, Teddy Bears, Obsedians, and Loli Ruris. Or you can refine Rough Eluniums to Eluniums at the Forge in town, and that may be easier."; - close; - case 2: - if (Zeny > 50000) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Storm Gust):Magic Book (Lord of Vermillion):Magic Book (Meteor Storm):Magic Book (Thunderstorm):Magic Book (Jupitel Thunder):Magic Book (Water Ball):Magic Book (Heaven's Drive):Magic Book (Earth Spike)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6192) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 50000) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 50000; - getitem 6192,1; //Magic_Book_SG - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6193) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 50000) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 50000; - getitem 6193,1; //Magic_Book_LOV - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6194) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - else if (Zeny > 50000) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 50000; - getitem 6194,1; //Magic_Book_MS - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 5: - if (countitem(6197) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 50000) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 50000; - getitem 6197,1; //Magic_Book_TS - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 6: - if (countitem(6198) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 50000) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 50000; - getitem 6198,1; //Magic_Book_JT - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 7: - if (countitem(6199) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 50000) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 50000; - getitem 6199,1; //Magic_Book_WB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 8: - if (countitem(6200) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - else if (Zeny > 50000) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 50000; - getitem 6200,1; //Magic_Book_HD - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 9: - if (countitem(6201) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 50000) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 50000; - getitem 6201,1; //Magic_Book_ES - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(603) > 1) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Storm Gust):Magic Book (Lord of Vermillion):Magic Book (Meteor Storm):Magic Book (Thunderstorm):Magic Book (Jupitel Thunder):Magic Book (Water Ball):Magic Book (Heaven's Drive):Magic Book (Earth Spike)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6192) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(603) > 1) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 603,2; //Old_Blue_Box - getitem 6192,1; //Magic_Book_SG - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6193) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(603) > 1) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 603,2; //Old_Blue_Box - getitem 6193,1; //Magic_Book_LOV - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6194) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(603) > 1) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 603,2; //Old_Blue_Box - getitem 6194,1; //Magic_Book_MS - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 5: - if (countitem(6197) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(603) > 1) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 603,2; //Old_Blue_Box - getitem 6197,1; //Magic_Book_TS - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 6: - if (countitem(6198) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(603) > 1) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 603,2; //Old_Blue_Box - getitem 6198,1; //Magic_Book_JT - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 7: - if (countitem(6199) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(603) > 1) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 603,2; //Old_Blue_Box - getitem 6199,1; //Magic_Book_WB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 8: - if (countitem(6200) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(603) > 1) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 603,2; //Old_Blue_Box - getitem 6200,1; //Magic_Book_HD - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 9: - if (countitem(6201) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(603) > 1) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 603,2; //Old_Blue_Box - getitem 6201,1; //Magic_Book_ES - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(985) > 8) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Storm Gust):Magic Book (Lord of Vermillion):Magic Book (Meteor Storm):Magic Book (Thunderstorm):Magic Book (Jupitel Thunder):Magic Book (Water Ball):Magic Book (Heaven's Drive):Magic Book (Earth Spike)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6192) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(985) > 8) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 985,9; //Elunium - getitem 6192,1; //Magic_Book_SG - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6193) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(985) > 8) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 985,9; //Elunium - getitem 6193,1; //Magic_Book_LOV - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6194) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(985) > 8) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 985,9; //Elunium - getitem 6194,1; //Magic_Book_MS - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 5: - if (countitem(6197) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(985) > 8) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 985,9; //Elunium - getitem 6197,1; //Magic_Book_TS - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 6: - if (countitem(6198) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(985) > 8) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 985,9; //Elunium - getitem 6198,1; //Magic_Book_JT - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 7: - if (countitem(6199) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(985) > 8) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 985,9; //Elunium - getitem 6199,1; //Magic_Book_WB - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 8: - if (countitem(6200) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(985) > 8) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 985,9; //Elunium - getitem 6200,1; //Magic_Book_HD - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 9: - if (countitem(6201) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (countitem(985) > 8) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - delitem 985,9; //Elunium - getitem 6201,1; //Magic_Book_ES - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - case 4: - mes "[Lea]"; - mes "Oh, do you want the Superior Magic Books? For your information, borrowing those Magic Books requires many conditions and restrictions. Are you sure that you want it?"; - next; - select("Yes."); - mes "[Lea]"; - mes "I see. If you're determined to borrow the Superior Magic Books, please choose one of the following tyes of payment for the security deposit."; - next; - mes "[Lea]"; - mes "[12 Mystery Pieces and 100,000 zeny], [7 Oridecons and 100,000 zeny], or [1 Old Violet Box and 100,000 zeny]. Now how would you like to pay your deposit?"; - switch (select("Where can I find those items?:Let me think.:I'll pay with 12 Mystery Pieces and 100,000 zeny.:I'll pay with 7 Oridecons and 100,000 zeny.:I'll pay with 1 Old Violet Box and 100,000 zeny.")) { - next; - case 1: - mes "[Lea] "; - mes "Mystery Pieces can be obtained from machine creatures in the Juperos Dungeon, and they're the fountain of knowledge from the ancient civilization. Ah, I get excited thinking about those artifacts."; - next; - mes "[Lea]"; - mes "Oridecons can be obtained from Executioners, Gryphons, Jokers, and Abysmal Knights, but it'll be easier to collect Rough Oridecons than Oridecons."; - next; - mes "[Lea]"; - mes "You can refine Rough Oridecons to Oridecons at the Forge in town."; - next; - mes "[Lea]"; - mes "Old Violet Boxes can be obtained from Mimics, Megaliths, Orc Lords, Stormy Knights, and Osirises."; - next; - mes "[Lea]"; - mes "The boxes are a subject worthy of serious study since they're used to test Schrodinger's pet cat."; - close; - case 2: - mes "[Lea]"; - mes "If you're unable to collect the items for the security deposit, I can offer you an alternate payment method."; - next; - mes "[Lea]"; - mes "How does 200,000 Rune-Midgartian zeny sound?"; - switch (select("I'm sorry, but I can't pay that much.:Sounds good.")) { - next; - case 1: - mes "[Lea]"; - mes "I see."; - close; - case 2: - if (Zeny > 199999) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6202) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 199999) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 200000; - getitem 6202,1; //Magic_Book_ES_ - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6203) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 199999) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 200000; - getitem 6203,1; //Magic_Book_CL - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6204) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 199999) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 200000; - getitem 6204,1; //Magic_Book_CR - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 5: - if (countitem(6205) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if (Zeny > 199999) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 200000; - getitem 6205,1; //Magic_Book_DL - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - case 3: - if ((Zeny > 99999) && (countitem(7094) > 11)) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6202) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(7094) > 11)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 7094,12; //Mystery_Piece - getitem 6202,1; //Magic_Book_ES_ - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6203) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(7094) > 11)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 7094,12; //Mystery_Piece - getitem 6203,1; //Magic_Book_CL - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6204) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(7094) > 11)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 7094,12; //Mystery_Piece - getitem 6204,1; //Magic_Book_CR - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 5: - if (countitem(6205) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(7094) > 11)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 7094,12; //Mystery_Piece - getitem 6205,1; //Magic_Book_DL - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if ((Zeny > 99999) && (countitem(984) > 6)) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6202) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(984) > 6)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 984,7; //Oridecon - getitem 6202,1; //Magic_Book_ES_ - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6203) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(984) > 6)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 984,7; //Oridecon - getitem 6203,1; //Magic_Book_CL - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6204) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(984) > 6)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 984,7; //Oridecon - getitem 6204,1; //Magic_Book_CR - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 5: - if (countitem(6205) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(984) > 6)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 984,7; //Oridecon - getitem 6205,1; //Magic_Book_DL - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 5: - if ((Zeny > 99999) && (countitem(617) > 0)) { - mes "[Lea]"; - mes "What kind of Magic Book do you want?"; - next; - switch (select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")) { - case 1: - mes "[Lea]"; - mes "No problem."; - close; - case 2: - if (countitem(6202) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(617) > 0)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 617,1; //Old_Violet_Box - getitem 6202,1; //Magic_Book_ES_ - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 3: - if (countitem(6203) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(617) > 0)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 617,1; //Old_Violet_Box - getitem 6203,1; //Magic_Book_CL - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 4: - if (countitem(6204) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(617) > 0)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 617,1; //Old_Violet_Box - getitem 6204,1; //Magic_Book_CR - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - case 5: - if (countitem(6205) > 0) { - mes "[Lea]"; - mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; - next; - mes "[Lea]"; - mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; - close; - } - if ((Zeny > 99999) && (countitem(617) > 0)) { - mes "[Lea]"; - mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; - next; - mes "[Lea]"; - mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; - set Zeny, Zeny - 100000; - delitem 617,1; //Old_Violet_Box - getitem 6205,1; //Magic_Book_DL - close; - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - } - mes "[Lea]"; - mes "I'm sorry, but you don't have enough funds."; - close; - } - case 5: - if ((BaseLevel > 139) && (mac_book < 1) && ((getskilllv(2217) > 0) || (getskilllv(2213) > 0))) { - mes "[Lea]"; - mes "Did... Did you just say the Ultimate Magic Book?"; - next; - mes "[Lea]"; - mes "Oh, my...."; - mes "I can't believe someone actually wants that book."; - next; - select("Please don't say that you don't have it."); - mes "[Lea]"; - mes "Frankly, I've never even seen the Ultimate Magic Book."; - next; - mes "[Lea]"; - mes "You should ask Master Velof if you want to know more about that book."; - next; - mes "[Lea]"; - mes "I'm sorry that I can't help you more than that."; - set mac_book,1; - close; - } - if ((BaseLevel > 139) && (mac_book > 0) && ((getskilllv(2217) > 0) || (getskilllv(2213) > 0))) { - mes "[Lea]"; - mes "You should ask Master Velof for some information about that book."; - close; - } - mes "[Lea]"; - mes "How about practicing your magic spells for now?"; - next; - mes "[Lea]"; - mes "In order to obtain the Ultimate Magic Book, you must reach Level 140 and learn Tetera Bolt and Comet."; - next; - mes "[Lea]"; - mes "That book can't be used by just anyone, you know?"; - close; - } - } - mes "[Lea]"; - mes "Welcome to the Magic Archive. You can read and borrow books from here under certain conditions."; - close; -} - -mid_camp,255,244,4 script Galfos 735,{ - - if (checkweight(1201,1) == 0) { - mes "You're carrying too many items. Please make some room in your bag first."; - close; - } - if ((MaxWeight - Weight) < 1000) { - mes "You're overweight with items. Please lose some item weight first."; - close; - } - if (Upper == 2) { - mes "[Galfos]"; - mes "What are you, a baby?"; - mes "I'm not here to babysit. Get lost!"; - close; - } - if ((Class != Job_Warlock) && (Class != Job_Warlock_T) && (Class != Job_Baby_Warlock)) { - mes "[Galfos]"; - mes "My right arm feels hot while my left arm feels cold. I can never get used to this weird weather!"; - close; - } - if (getskilllv(2230) < 1) { - mes "[Galfos]"; - mes "Ah, I'll get myself in trouble if I stay here any longer. Maybe I'm already in..."; - close; - } - if ((BaseLevel < 140) || (getskilllv(2217) < 1) && (getskilllv(2213) < 1)) { - mes "[Galfos]"; - mes "I'm sorry, but I don't talk to people that aren't even ready for this."; - close; - } - if (mac_book < 2) { - mes "[Galfos]"; - mes "You look strong, but you don't seem to have any business with me."; - close; - } - if (mac_book == 2) { - mes "[Galfos]"; - mes "What brings you to me?"; - next; - select("I heard that you've studied the Ultimate Magic Book."); - mes "[Galfos]"; - mes "Why, are you interested too?"; - mes "I didn't know someone would actually take an interest in that book. Yes, I'm studying that magic book. How did you find that out?"; - next; - select("You're Velof's brother, right?"); - mes "[Galfos]"; - mes "Yes, I'm Galfos, and Velof is my brother."; - next; - mes "[Galfos]"; - mes "Wait a minute,"; - mes "did the old man recommend me to you?"; - next; - select("That's right."); - mes "[Galfos]"; - mes "Wow!"; - mes "This is surprising. He never took my research very seriously. I'm glad that he finally changed his mind."; - next; - mes "[Galfos]"; - mes "Heh! Your timing couldn't be better: I was looking for a test object."; - next; - select("A test object?"); - mes "[Galfos]"; - mes "Frankly, I'm only interested in creating the Ultimate Magic Book."; - next; - mes "[Galfos]"; - mes "I'm not good at using magic, not to mention that I prefer fists in fighting. Nevertheless, I find Magic Books to be incredibly intriguing."; - next; - mes "[Galfos]"; - mes "The problem is that I can't use the Ultimate Magic Book, even if I made one. That's why I can't really test it on my own."; - next; - mes "[Galfos]"; - mes "That's why I've been waiting for a true magic practitioner like you that can help me test my Ultimate Magic Book."; - next; - select("(What is he talking about?)"); - mes "[Galfos]"; - mes "My research is almost done,"; - mes "and I need to solve one last problem to create the Magic Book."; - next; - mes "[Galfos]"; - mes "To make the ancient Ultimate Magic Book, I need an artifact and some spells to fuse into it."; - next; - mes "[Galfos]"; - mes "I've perfectly restored the spells based on the ancient documents, but I still have no information about the necessary artifact."; - next; - mes "[Galfos]"; - mes "Ah, but there's a silver lining!"; - next; - select("(Now we're getting somewhere!)"); - mes "[Galfos]"; - mes "Ha ha..."; - mes "There's a great archive in El Dicastes, the Capital City of the Evil Giants, where all knowledge in this world is stored."; - next; - mes "[Galfos]"; - mes "Maybe that's the place to find some information about the artifact for this Ultimate Magic Book."; - next; - mes "[Galfos]"; - mes "You know what to do, don't you? Find information about the artifact in the El Dicastes archive, using everything in your power."; - next; - mes "[Galfos]"; - mes "Afterwards, create and bring me the artifact. We'll talk about creating the Magic Book afterwards."; - set mac_book,3; - close; - } - if (mac_book == 3) { - mes "[Galfos]"; - mes "You know what to do, don't you? Find information about the artifact in the El Dicastes archive, using everything in your power."; - next; - mes "[Galfos]"; - mes "Afterwards, create and bring me the artifact. We'll talk about creating the Magic Book afterwards."; - close; - } - if (mac_book == 4) { - mes "[Galfos]"; - mes "Oh, did you find"; - mes "anything useful?"; - next; - switch (select("I've discovered everything about Comet.:I've mastered the zenith of Tetra Vortex.")) { - case 1: - if (countitem(6195) > 0) { - mes "[Galfos]"; - mes "Are you kidding me? You already have the book!"; - close; - } - if (checkquest(12218) == 2) { - mes "[Galfos]"; - mes "Oh my, I sense incredible energy coming from you. This is great! Now we're ready to make the Ultimate Magic Book."; - next; - mes "[Galfos]"; - mes "There's one problem, though: I'm so broke that I don't even have enough money to buy the tools to make the book."; - next; - mes "[Galfos]"; - mes "I need at least ^0000aa1000,000 zeny^000000 to buy all the necessary tools. Do you have the money?"; - next; - switch (select("Wh-what? No!:Sure.")) { - case 1: - mes "[Galfos]"; - mes "Aw, you don't? It's disappointing, but there's nothing I can do. Come back when you have enough money, okay?"; - close; - case 2: - if (Zeny > 1000000) { - mes "[Galfos]"; - mes "Alright then, let's get started!"; - next; - specialeffect2 EF_DISPELL; - progressbar "ffff00",4; - specialeffect2 EF_LORD; - set Zeny, Zeny - 1000000; - getitem 6195,1; //Magic_Book_CM - mes "[Galfos]"; - mes "Man, I almost lost my control to the incredible magic energy! Here's your Magic Book."; - next; - mes "[Galfos]"; - mes "Thank you for making my dream come true. Feel free to come back if you need another one of these books."; - close; - } - mes "[Galfos]"; - mes "Hey, what did I tell you? I can't buy the tools to make the book without money!"; - close; - } - } - mes "[Galfos]"; - mes "Are you sure that you've found something? It doesn't seem like you've learned what we need..."; - close; - case 2: - if (countitem(6196) > 0) { - mes "[Galfos]"; - mes "Are you kidding me? You already have the book!"; - close; - } - if ((checkquest(12219) == 2) && (checkquest(12220) == 2) && (checkquest(12221) == 2) && (checkquest(12222) == 2)) { - mes "[Galfos]"; - mes "Oh my, I sense incredible energy coming from you. This is great! Now we're ready to make the Ultimate Magic Book."; - next; - mes "[Galfos]"; - mes "There's one problem, though: I'm so broke that I don't even have enough money to buy the tools to make the book."; - next; - mes "[Galfos]"; - mes "I need at least ^0000aa1000,000 zeny^000000 to buy all the necessary tools. Do you have the money?"; - next; - switch (select("Wh-what? No!:Sure.")) { - case 1: - mes "[Galfos]"; - mes "Aw, you don't? It's disappointing, but there's nothing I can do. Come back when you have enough money, okay?"; - close; - case 2: - if (Zeny > 1000000) { - mes "[Galfos]"; - mes "Alright then, let's get started!"; - next; - specialeffect2 EF_DISPELL; - progressbar "ffff00",4; - specialeffect2 EF_LORD; - set Zeny, Zeny - 1000000; - getitem 6196,1; //Magic_Book_TV - mes "[Galfos]"; - mes "Man, I almost lost my control to the incredible magic energy. Here's your Magic Book."; - next; - mes "[Galfos]"; - mes "Thank you for making my dream come true. Feel free to come back if you need another one of these books."; - close; - } - mes "[Galfos]"; - mes "Hey, what did I tell you? I can't buy the tools to make the book without money!"; - close; - } - } - mes "[Galfos]"; - mes "Are you sure that you've found something? It doesn't seem like you've learned what we need..."; - close; - } - } - mes "[Galfos]"; - mes "Is there anything else you need?"; - close; -} - -dic_in01,25,190,0 script Mysterious Documents 844,{ - - if (isequipped(2782) < 1) { - mes "I better not forget to equip my ring."; - close; - } - if (ep13_3_invite < 6) { - mes "When you approach the documents, an Evil Giant that looks like the archive manager tries to call Guard Galton. You should get out of here quickly."; - close; - } - if (checkquest(12165,"PLAYTIME") == 1) { - mes "The documents are making you feel nauseous. You should come back later after your stomach settles."; - close; - } - if (checkquest(12165,"PLAYTIME") == 2) { - mes "You don't feel as nauseous anymore. It should be safe to proceed now."; - erasequest 12165; - close; - } - if ((BaseLevel < 140) || (getskilllv(2217) < 1) && (getskilllv(2213) < 1)) { - mes "The documents in this container aren't legible. It's not use trying to read them."; - close; - } - specialeffect2 EF_DISPELL; - progressbar "ffff00",4; - if (mac_book < 3) { - mes "You have discovered records about magic, acceleration, and particle waves."; - close; - } - if (mac_book == 3) { - mes "You have discovered records about magic, acceleration, and particle waves. These documents must be the ones that Galfos is looking for."; - set mac_book, 4; - close; - } - if (mac_book == 4) { - if (rand(1,10) == 1) { - if (getskilllv(2213) > 0) { - if (checkquest(12218) == 1) { - mes "You already own this document."; - close; - } - mes "^660066In order to create the essence of lava, you must refine 40 Burning Hearts at the hottest place on the 2nd floor of the Thor's Volcano Dungeon.^000000"; - mes "^660066You must do this by using the greatest power in that place. The Humans have used this method to study the acceleration of magic particles since ancient times.^000000"; - next; - mes "You have discovered the ^990099Lava Essence Creation Method^000000. Please check your Quest window for more details."; - specialeffect2 EF_STEAL; - close2; - setquest 12218; - end; - } - mes "Nothing in this document looks useful."; - close; - } - if (rand(1,10) == 2) { - if (getskilllv(2217) > 0) { - if (checkquest(12219) == 1) { - mes "You already own this document."; - close; - } - mes "^660066The essence of flame can be refined on stable ground on the 1st floor of the Thor's Volcano Dungeon. 10 Love Coals are necessary to refine the essence.^000000"; - mes "^660066According to Humans' information, this essence constitutes one of the four natural elements.^000000"; - next; - mes "You have discovered the ^990099Flame Essence Creation Method^000000. Please check your Quest window for more details."; - specialeffect2 EF_STEAL; - close2; - setquest 12219; - end; - } - mes "Nothing in this document looks useful."; - close; - } - if (rand(1,10) == 3) { - if (getskilllv(2217) > 0) { - if (checkquest(12220) == 1) { - mes "You already own this document."; - close; - } - mes "^660066I succeeded in refining the essence of glacier deep inside the 3rd floor of the Ice Cave. If you'd like to try, prepare 10 Ice Hearts and go to the following location.^000000"; - next; - mes "You have discovered the ^990099Glacier Essence Creation Method^000000. Please check your Quest window for more details."; - specialeffect2 EF_STEAL; - close2; - setquest 12220; - end; - } - mes "Nothing in this document looks useful."; - close; - } - if (rand(1,10) == 4) { - if (getskilllv(2217) > 0) { - if (checkquest(12221) == 1) { - mes "You already own this document."; - close; - } - mes "^660066I was able to refine the essence of fossil from old rocks on the 2nd floor of the Mine Dungeon. So far, that place is the most stable among all the testing grounds."; - mes "If you'd like to try, prepare 10 Jubilees and go to the dungeon. Good luck.^000000"; - next; - mes "You have discovered the ^990099Fossil Essence Creation Method^000000. Please check your Quest window for more details."; - specialeffect2 EF_STEAL; - close2; - setquest 12221; - end; - } - mes "Nothing in this document looks useful."; - close; - } - if (rand(1,10) == 5) { - if (getskilllv(2217) > 0) { - if (checkquest(12222) == 1) { - mes "You already own this document."; - close; - } - mes "^660066In order to refine the essence of storm, I visited the Hermit's Checkerboard in Kunlun where the spirit of the wind resides."; - mes "The refining process was easy, but I had a hard time finding the catalyst, Dragon Teeth.^000000"; - next; - mes "You have discovered the ^990099Storm Essence Creation Method^000000. Please check your Quest window for more details."; - specialeffect2 EF_STEAL; - close2; - setquest 12222; - end; - } - mes "Nothing in this document looks useful."; - close; - } - if (rand(1,10) == 10) { - mes "You suddenly feel sick, and this nausea won't go away easily. You should try finding the documents you need later."; - setquest 12165; - close; - } - mes "Nothing here looks special."; - close; - } - mes "You no longer need to search this place."; - close; -} - -thor_v02,163,104,0 script Powerful Lava Energy#33 844,{ - - if ((MaxWeight - Weight) < 1000) { - mes "Please lighten your bag."; - close; - } - if ((checkquest(12218) == 1) && (countitem(7097) > 39)) { - specialeffect2 EF_BLIND; - specialeffect2 EF_BEGINSPELL; - progressbar "ffff00",4; - delitem 7097,40; //Burning_Heart - if (rand(1,2) == 1) { - mes "You have used 40 Burning Hearts to create ^999900Lava Essence^000000."; - next; - mes "^008800The Lava Essence will last permanently, unless there's a problem.^000000"; - completequest 12218; - specialeffect2 EF_LORD; - close; - } - mes "^008888You have failed to refine the essence using 40 Burning Hearts.^000000"; - close; - } - if (checkquest(12218) == 2) { - mes "You've already created Lava Essence in this area."; - close; - } - mes "Someone already used this area."; - close; -} - -thor_v01,185,91,0 script Powerful Flame Energy#33 844,{ - - if ((MaxWeight - Weight) < 1000) { - mes "Please lighten your bag."; - close; - } - if ((checkquest(12219) == 1) && (countitem(7098) > 9)) { - specialeffect2 EF_BLIND; - specialeffect2 EF_BEGINSPELL; - progressbar "ffff00",4; - delitem 7098,10; //Live_Coal - if (rand(1,3) == 1) { - mes "You have used 10 Live Coals to create ^999900Flame Essence^000000."; - next; - mes "^008800The Flame Essence will last permanently, unless there's a problem.^000000"; - completequest 12219; - specialeffect2 EF_LORD; - close; - } - mes "^008888You have failed to refine the essence using 10 Live Coals.^000000"; - close; - } - if (checkquest(12219) == 2) { - mes "You've already created Flame Essence in this area."; - close; - } - mes "Someone already used this area."; - close; -} - -ice_dun03,137,148,0 script Powerful Glacier Energy 844,{ - - if ((MaxWeight - Weight) < 1000) { - mes "Please lighten your bag."; - close; - } - if ((checkquest(12220) == 1) && (countitem(7561) > 9)) { - specialeffect2 EF_BLIND; - specialeffect2 EF_BEGINSPELL; - progressbar "ffff00",4; - delitem 7561,10; //Ice_Heart - if (rand(1,3) == 1) { - mes "You have used 10 Glacial Hearts to create ^999900Glacier Essence^000000."; - next; - mes "^008800The Glacier Essence will last permanently, unless there's a problem.^000000"; - completequest 12220; - specialeffect2 EF_LORD; - close; - } - mes "^008888You have failed to refine the essence using 10 Glacial Hearts.^000000"; - close; - } - if (checkquest(12220) == 2) { - mes "You've already created Glacier Essence in this area."; - close; - } - mes "Someone already used this area."; - close; -} - -ein_dun02,181,124,0 script Powerful Fossil Energy 844,{ - - if ((MaxWeight - Weight) < 1000) { - mes "Please lighten your bag."; - close; - } - if ((checkquest(12221) == 1) && (countitem(7312) > 9)) { - specialeffect2 EF_BLIND; - specialeffect2 EF_BEGINSPELL; - progressbar "ffff00",4; - delitem 7312,10; //Jubilee - if (rand(1,3) == 1) { - mes "You have used 10 Jubilees to create ^999900Fossil Essence^000000."; - next; - mes "^008800The Fossil Essence will last permanently, unless there's a problem.^000000"; - specialeffect2 EF_LORD; - completequest 12221; - close; - } - mes "^008888You have failed to refine the essence using 10 Jubilees.^000000"; - close; - } - if (checkquest(12221) == 2) { - mes "You've already created Fossil Essence in this area."; - close; - } - mes "Someone already used this area."; - close; -} - -gon_dun02,252,198,0 script Powerful Storm Energy#33 844,{ - - if ((MaxWeight - Weight) < 1000) { - mes "Please lighten your bag."; - close; - } - if ((checkquest(12222) == 1) && (countitem(7266) > 9)) { - specialeffect2 EF_BLIND; - specialeffect2 EF_BEGINSPELL; - progressbar "ffff00",4; - delitem 7266,10; //Dragon_Fang - if (rand(1,3) == 1) { - mes "You have used 10 Dragon Teeth to create ^999900Storm Essence^000000."; - next; - mes "^008800The Storm Essence will last permanently, unless there's a problem.^000000"; - specialeffect2 EF_LORD; - completequest 12222; - close; - } - mes "^008888You have failed to refine the essence using 10 Dragon Teeth.^000000"; - close; - } - if (checkquest(12222) == 2) { - mes "You've already created Storm Essence in this area."; - close; - } - mes "Someone already used this area."; - close; -} \ No newline at end of file +//===== rAthena Script ======================================= +//= Magic Book Seller +//===== By: ================================================== +//= Masao +//= Credits to Muad_Dib for the translation. +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena +//===== Description: ========================================= +//= An NPC which sells you different kinds of Magic Books. +//===== Additional Comments: ================================= +//= 1.0 First Version. [Masao] +//============================================================ + +geffen_in,176,105,4 script Magic Book Master Velof 64,{ + + if (checkweight(1201,1) == 0) { + mes "You're carrying too many items. Please make some room in your bag first."; + close; + } + if ((MaxWeight - Weight) < 1000) { + mes "You're overweight with items. Please lose some item weight first."; + close; + } + if ((Upper == 2) && (Class != Job_Baby_Warlock)) { + mes "[Magic Book Master Velof]"; + mes "What are you, a baby?"; + mes "I'm not here to babysit. Get lost!"; + close; + } + if ((Class != Job_Warlock) && (Class != Job_Warlock_T) && (Class != Job_Baby_Warlock)) { + mes "[Magic Book Master Velof]"; + mes "Ha ha, are you also seeking new knowledge?"; + next; + mes "[Magic Book Master Velof]"; + mes "I'm sorry, but my knowledge doesn't concern you."; + close; + } + if (getskilllv(2230) < 1) { // WL_RELEASE + mes "[Magic Book Master Velof]"; + mes "Well you've met all the qualifications except one: you need the Release spell."; + next; + mes "[Magic Book Master Velof]"; + mes "Learn the spell first. I've got so many things to tell you."; + close; + } + if ((getskilllv(2230) > 0) && (Class == Job_Warlock) || (Class == Job_Warlock_T) || (Class == Job_Baby_Warlock)) { + mes "[Magic Book Master Velof]"; + mes "Welcome, my friend."; + mes "Congratulations on entering a brand new world of magic."; + next; + mes "[Magic Book Master Velof]"; + mes "We magic practitioners are always thirsty for new knowledge and power."; + next; + mes "[Magic Book Master Velof]"; + mes "We endure great hardship and pain to achieve what we want. When we finally do, the sense of accomplishment defies description. That's why both you and I have chosen the way of magic."; + next; + mes "[Magic Book Master Velof]"; + mes "By the way, what brings you to me today?"; + next; + switch (select("Nothing.:Do you know the Reading Spell Book?:What's the Freezing Spell?:Can I have a Magic Book?:Can I use the Reading Spell Book without the Freezing Spell?:About the Ultimate Magic Book")) { + case 1: + mes "[Magic Book Master Velof]"; + mes "Hah! You're silly."; + close; + case 2: + mes "[Magic Book Master Velof]"; + mes "Reading Spell Book literally means 'read a spell book.' Do you know how to use Magic Books?"; + next; + switch (select("Yes, I do.:No, I don't.")) { + case 1: + mes "[Magic Book Master Velof]"; + mes "Well then, you don't need an additional lecture."; + close; + case 2: + mes "[Magic Book Master Velof]"; + mes "Magic Books are an advanced type of magic scroll. While spells on scrolls disappear after one use, the ones in Magic Books can be cast multiple times."; + next; + mes "[Magic Book Master Velof]"; + mes "Let's compare a spell on a scroll to a wire. When the wire is used to open a door or do something else, it's bent and crushed, losing its original shape. A spell from a Magic Book is more like a shape memory alloy."; + next; + mes "[Magic Book Master Velof]"; + mes "Huh, don't you now what shape memory alloy is? Eh, just remember this: a wire made from shape memory alloy restores its shape over time."; + next; + mes "[Magic Book Master Velof]"; + mes "Like the alloy, a spell on a Magic Book remains after a use, although reusing the spell has a downtime for its restoration."; + next; + mes "[Magic Book Master Velof]"; + mes "...Oh, I didn't mean to talk for too long. Anyways, you can use Magic Books to cast spells that you've learned. Its concept is different from normal spells."; + next; + select("What's the difference?"); + mes "[Magic Book Master Velof]"; + mes "Why do you have to write your existing spells in Magic Books, you asked?"; + next; + mes "[Magic Book Master Velof]"; + mes "That's a good question. It's related to Magic Binding."; + next; + mes "[Magic Book Master Velof]"; + mes "You already learned Release, which allows you to hold the energy of the four different elements before the actual casting. Magic Binding is similar to Release."; + next; + mes "[Magic Book Master Velof]"; + mes "Since you've learned Release, you're capable of using Magic Binding as well. Well, let's talk about that later."; + next; + mes "[Magic Book Master Velof]"; + mes "You know how to hold an existing spell, and then cast it at a desired timing via Release."; + next; + mes "[Magic Book Master Velof]"; + mes "Carrying the globes of the four elements is also related to Magic Binding."; + next; + mes "[Magic Book Master Velof]"; + mes "As you know, the four elements are Fire, Water, Wind, and Earth. Being able to employ them freely is the essential principle of magic."; + next; + mes "[Magic Book Master Velof]"; + mes "We Humans use torches to keep fire, fans to blow wind, and bowls to hold water. We also use clay to make earthenware."; + next; + mes "[Magic Book Master Velof]"; + mes "Those activities may differ from magic, but both are the same in the sense of employing the four elements."; + next; + mes "[Magic Book Master Velof]"; + mes "When you use complex magic spells to summon a storm, drop lightning, or burn an area, that consumes a lot of your energy, both physically and mentally."; + next; + mes "[Magic Book Master Velof]"; + mes "When you fail to bind such powerful magic spells or fail to control them,"; + next; + mes "[Magic Book Master Velof]"; + mes "you can receive irreparable damage to your mind and body."; + next; + mes "[Magic Book Master Velof]"; + mes "That's why we use Magic Books to reduce that burden. It helps summon pre-cast spells while you're focusing on binding their magic power."; + next; + mes "[Magic Book Master Velof]"; + mes "There's one downside though: Magic Books cannot be used for spells that you haven't learned."; + next; + mes "[Magic Book Master Velof]"; + mes "As I said earlier, spells in Magic Books tend to go back to what they are."; + next; + mes "[Magic Book Master Velof]"; + mes "That said, as a Circler, you cannot change or create spells in Magic Books."; + next; + mes "[Magic Book Master Velof]"; + mes "Even if you create one, its power will be beyond your capacity."; + next; + mes "[Magic Book Master Velof]"; + mes "In order to use the Reading Spell Book, you must learn the Freezing Spell to bind magic."; + close; + } + case 3: + mes "[Magic Book Master Velof]"; + mes "The Freezing Spell is used for Magic Binding. It helps you to insert a magic spell to a circle."; + next; + mes "[Magic Book Master Velof]"; + mes "Circles of magic work organically with each other. When you use the Freezing Spell to bind a spell, the spell won't activate until you cast the release spell."; + next; + mes "[Magic Book Master Velof]"; + mes "Of course, binding a spell continuously consumes your mana, but it consumes less mana than conventional magic spells."; + next; + mes "[Magic Book Master Velof]"; + mes "Magic Binding becomes more difficult when you use more powerful magic spells."; + next; + mes "[Magic Book Master Velof]"; + mes "For weak spells, you can bind two to three of them with your circle. For more powerful spells, maybe one or two is possible."; + next; + mes "[Magic Book Master Velof]"; + mes "That all depends on your ability to control your spells. You'll have to try and experience Magic Binding after you first learn it to really understand."; + close; + case 4: + mes "[Magic Book Master Velof]"; + mes "I'm sorry, but I only have Magic Books for beginners, but they're obviously not suitable for you. Do you still want one?"; + next; + switch (select("Sure thing.:Where can I find advanced books?")) { + case 1: + mes "[Magic Book Master Velof]"; + mes "Please go talk to [Lea] in the Archive. Tell her that you need one of the Magic Books that I've stored in there."; + next; + mes "[Magic Book Master Velof]"; + mes "For your information, she won't give it to you without anything in return. Expect her to ask you for something!"; + if (wm_book < 1) { + set wm_book, 1; + } + close; + case 2: + mes "[Magic Book Master Velof]"; + mes "I'm sorry, but our management has recently decided to limit the availability of Magic Books for Multi Circlers. It's because their numbers are increasing more quickly than we expected."; + next; + mes "[Magic Book Master Velof]"; + mes "You could find one if you try hard, but I don't have any with me."; + next; + mes "[Magic Book Master Velof]"; + mes "If our management releases the restriction, you'll be the first one to know. Don't worry."; + close; + } + case 5: + mes "[Magic Book Master Velof]"; + mes "Nothing will happen when you try to bind magic without using Magic Binding because you have nothing to hold magic."; + next; + mes "[Magic Book Master Velof]"; + mes "It's like water that needs a bowl to stay in place."; + next; + mes "[Magic Book Master Velof]"; + mes "The problem is when you try to forcefully cast a spell that you haven't learned. It'll definately backfire on you."; + next; + mes "[Magic Book Master Velof]"; + mes "Of course, the damage won't be severe: you'll fall asleep or be thrown into confusion. This is all because there's a conflict between your Magic Book and the force of Magic Binding when you're trying to summon and hold a unlearned spell."; + next; + mes "[Magic Book Master Velof]"; + mes "Don't try it out just to see what happens for yourself! Falling asleep while casting a spell? There's nothing more humiliating than that to magic practitioners like us."; + close; + case 6: + if ((BaseLevel > 139) && (getskilllv(2217) > 0) || (getskilllv(2213) > 0)) { + if(mac_book < 1){ + mes "[Magic Book Master Velof]"; + mes "I'm sorry, but could you ask someone else? I'm kind of busy right now."; + close; + } + if (mac_book == 1) { + mes "[Magic Book Master Velof]"; + mes "Huh, are you looking for the Ultimate Magic Book? Who sent you?"; + next; + select("Ms. Lea."); + mes "[Magic Book Master Velof]"; + mes "I'm sorry, but there's not much information left about the Ultimate Magic Book."; + next; + mes "[Magic Book Master Velof]"; + mes "A few scholars in the Midgard Continent once tried to collect ancient Magic Books and reproduce that book, but..."; + next; + select("But what?"); + mes "[Magic Book Master Velof]"; + mes "Oh yes, perhaps he might know something."; + next; + select("Yes, I knew this was coming!"); + mes "[Magic Book Master Velof]"; + mes "My brother is just like you. He's very interested in recreating the Ultimate Magic Book."; + next; + mes "[Magic Book Master Velof]"; + mes "His name is Galfos."; + mes "He's been taking a great interest in the ancient Magic Books."; + next; + mes "[Magic Book Master Velof]"; + mes "I didn't support him or give him any advice for his research since I thought he'd give on it pretty quickly, but..."; + next; + mes "[Magic Book Master Velof]"; + mes "If he's discovered anything useful, maybe it can helpful to you."; + next; + select("Where's Galfos now?"); + mes "[Magic Book Master Velof]"; + mes "I've heard that he's near the Expedition Camp beyond the Dimensional Rift to seek information about the ancient Magic Books."; + next; + mes "[Magic Book Master Velof]"; + mes "If you want to see him, you should prepare for a long journey."; + set mac_book,2; + close; + } + if (mac_book > 1) { + mes "[Magic Book Master Velof]"; + mes "Galfos is near the Expedition Camp beyond the Dimensional Rift."; + next; + mes "[Magic Book Master Velof]"; + mes "If you want to see him, you should prepare for a long journey."; + close; + } + } + mes "[Magic Book Master Velof]"; + mes "Ha ha, I'm sorry, but you should focus on strengthening your body rather than creating Magic Books."; + close; + } + } + mes "[Magic Book Master Velof]"; + mes "Ha ha, are you also seeking new knowledge?"; + next; + mes "[Magic Book Master Velof]"; + mes "I'm sorry, but my knowledge doesn't concern you."; + close; +} + +geffen_in,175,112,4 script Lea 123,{ + + if (checkweight(1201,1) == 0) { + mes "You're carrying too many items. Please make some room in your bag first."; + close; + } + if ((MaxWeight - Weight) < 1000) { + mes "You're overweight with items. Please lose some item weight first."; + close; + } + if ((wm_book > 0) && (Class == Job_Warlock) || (Class == Job_Warlock_T) || (Class == Job_Baby_Warlock)) { + mes "[Lea]"; + mes "You can only read books here. If you'd like to borrow any books, please receive an approval from 1 manager and 1 High Mage."; + next; + mes "[Lea]"; + mes "How may I help you?"; + next; + select("Master Velof asked me to bring his Magic Book."); + mes "[Lea]"; + mes "Are you borrowing a book?"; + next; + switch (select("Let me think.:I want the Beginner's Magic Books.:I want the Intermediate Magic Books.:I want the Superior Magic Books.:I want the Ultimate Magic Book.")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + mes "[Lea]"; + mes "We're in trouble because so many people want to borrow our Magic Books."; + next; + mes "[Lea]"; + mes "Unfortunately, many of our lent books aren't returned on time. That's why we've decided to charge a security deposit."; + next; + select("A security deposit?"); + mes "[Lea]"; + mes "Yes. You may pay a minimum of 10,000 Rune-Midgarts zeny. Alternatively, you can bring 2 Old Magic Books or 50 Old Pages. Once you pay the deposit, I'll let you borrow some Magic Books."; + next; + switch (select("Where can I find Old Magic Books and Old Pages?:I'll pay with zeny.:I'll pay with Old Magic Books.:I'll pay with Old Pages.")) { + case 1: + mes "[Lea]"; + mes "I heard that you can find them from Ride Words, Death Words, Bathorys, and other monsters. I ask that you please don't strain yourself to find those items."; + next; + mes "[Lea]"; + mes "Your life is more important than anything else, you know?"; + close; + case 2: + if (Zeny > 10000) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Fire Bolt):Magic Book (Cold Bolt):Magic Book (Lightning Bolt)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6189) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 10000) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + set Zeny, Zeny - 10000; + getitem 6189,1; //Magic_Book_FB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6190) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 10000) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + set Zeny, Zeny - 10000; + getitem 6190,1; //Magic_Book_CB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6191) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 10000) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + set Zeny, Zeny - 10000; + getitem 6191,1; //Magic_Book_LB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(1006) > 1) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Fire Bolt):Magic Book (Cold Bolt):Magic Book (Lightning Bolt)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6189) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(1006) > 1) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + delitem 1006,2; //Old_Magic_Book + getitem 6189,1; //Magic_Book_FB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6190) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(1006) > 1) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + delitem 1006,2; //Old_Magic_Book + getitem 6190,1; //Magic_Book_CB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6191) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(1006) > 1) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + delitem 1006,2; //Old_Magic_Book + getitem 6191,1; //Magic_Book_LB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(1097) > 49) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Fire Bolt):Magic Book (Cold Bolt):Magic Book (Lightning Bolt)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6189) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(1097) > 49) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + delitem 1097,50; //Worn_Out_Page + getitem 6189,1; //Magic_Book_FB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6190) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(1097) > 49) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + delitem 1097,50; //Worn_Out_Page + getitem 6190,1; //Magic_Book_CB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6191) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + else if (countitem(1097) > 49) { + mes "[Lea]"; + mes "The book's return date is written on the lending card on the back cover of the book."; + next; + mes "[Lea]"; + mes "Please try not to lose or damage the book to avoid paying any extra charges."; + delitem 1097,50; //Worn_Out_Page + getitem 6191,1; //Magic_Book_LB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + case 3: + mes "[Lea]"; + mes "Ah, so you want the Intermediate Magic Books. Please pay 50,000 Rune-Midgartian zeny, or you can bring me 2 Old Blue Boxes or 9 Eluniums to borrow the Intermediate Magic Books."; + next; + switch (select("Where can I find Old Blue Boxes and Eluniums?:I'll pay 50,000 zeny.:I'll pay with Old Blue Boxes.:I'll pay with Eluniums.")) { + case 1: + mes "[Lea]"; + mes "Old Blue Boxes are quite rare to find, but they can be obtained from monsters everywhere in the world, including Myst Cases, Megalogons, Mimics, Nightmares, Krabens, Requiems, Nine Tails, Noxiouses, and Byorgues."; + mes "If you have sufficient funds, you may buy the boxes from street vendors."; + next; + mes "[Lea]"; + mes "Eluniums can be obtained from Hyeguns, Zombie Prisoners, Teddy Bears, Obsedians, and Loli Ruris. Or you can refine Rough Eluniums to Eluniums at the Forge in town, and that may be easier."; + close; + case 2: + if (Zeny > 50000) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Storm Gust):Magic Book (Lord of Vermillion):Magic Book (Meteor Storm):Magic Book (Thunderstorm):Magic Book (Jupitel Thunder):Magic Book (Water Ball):Magic Book (Heaven's Drive):Magic Book (Earth Spike)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6192) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 50000) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 50000; + getitem 6192,1; //Magic_Book_SG + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6193) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 50000) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 50000; + getitem 6193,1; //Magic_Book_LOV + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6194) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + else if (Zeny > 50000) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 50000; + getitem 6194,1; //Magic_Book_MS + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 5: + if (countitem(6197) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 50000) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 50000; + getitem 6197,1; //Magic_Book_TS + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 6: + if (countitem(6198) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 50000) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 50000; + getitem 6198,1; //Magic_Book_JT + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 7: + if (countitem(6199) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 50000) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 50000; + getitem 6199,1; //Magic_Book_WB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 8: + if (countitem(6200) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + else if (Zeny > 50000) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 50000; + getitem 6200,1; //Magic_Book_HD + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 9: + if (countitem(6201) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 50000) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 50000; + getitem 6201,1; //Magic_Book_ES + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(603) > 1) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Storm Gust):Magic Book (Lord of Vermillion):Magic Book (Meteor Storm):Magic Book (Thunderstorm):Magic Book (Jupitel Thunder):Magic Book (Water Ball):Magic Book (Heaven's Drive):Magic Book (Earth Spike)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6192) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(603) > 1) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 603,2; //Old_Blue_Box + getitem 6192,1; //Magic_Book_SG + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6193) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(603) > 1) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 603,2; //Old_Blue_Box + getitem 6193,1; //Magic_Book_LOV + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6194) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(603) > 1) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 603,2; //Old_Blue_Box + getitem 6194,1; //Magic_Book_MS + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 5: + if (countitem(6197) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(603) > 1) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 603,2; //Old_Blue_Box + getitem 6197,1; //Magic_Book_TS + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 6: + if (countitem(6198) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(603) > 1) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 603,2; //Old_Blue_Box + getitem 6198,1; //Magic_Book_JT + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 7: + if (countitem(6199) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(603) > 1) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 603,2; //Old_Blue_Box + getitem 6199,1; //Magic_Book_WB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 8: + if (countitem(6200) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(603) > 1) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 603,2; //Old_Blue_Box + getitem 6200,1; //Magic_Book_HD + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 9: + if (countitem(6201) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(603) > 1) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 603,2; //Old_Blue_Box + getitem 6201,1; //Magic_Book_ES + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(985) > 8) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Storm Gust):Magic Book (Lord of Vermillion):Magic Book (Meteor Storm):Magic Book (Thunderstorm):Magic Book (Jupitel Thunder):Magic Book (Water Ball):Magic Book (Heaven's Drive):Magic Book (Earth Spike)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6192) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(985) > 8) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 985,9; //Elunium + getitem 6192,1; //Magic_Book_SG + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6193) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(985) > 8) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 985,9; //Elunium + getitem 6193,1; //Magic_Book_LOV + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6194) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(985) > 8) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 985,9; //Elunium + getitem 6194,1; //Magic_Book_MS + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 5: + if (countitem(6197) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(985) > 8) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 985,9; //Elunium + getitem 6197,1; //Magic_Book_TS + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 6: + if (countitem(6198) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(985) > 8) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 985,9; //Elunium + getitem 6198,1; //Magic_Book_JT + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 7: + if (countitem(6199) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(985) > 8) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 985,9; //Elunium + getitem 6199,1; //Magic_Book_WB + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 8: + if (countitem(6200) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(985) > 8) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 985,9; //Elunium + getitem 6200,1; //Magic_Book_HD + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 9: + if (countitem(6201) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (countitem(985) > 8) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + delitem 985,9; //Elunium + getitem 6201,1; //Magic_Book_ES + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + case 4: + mes "[Lea]"; + mes "Oh, do you want the Superior Magic Books? For your information, borrowing those Magic Books requires many conditions and restrictions. Are you sure that you want it?"; + next; + select("Yes."); + mes "[Lea]"; + mes "I see. If you're determined to borrow the Superior Magic Books, please choose one of the following tyes of payment for the security deposit."; + next; + mes "[Lea]"; + mes "[12 Mystery Pieces and 100,000 zeny], [7 Oridecons and 100,000 zeny], or [1 Old Violet Box and 100,000 zeny]. Now how would you like to pay your deposit?"; + switch (select("Where can I find those items?:Let me think.:I'll pay with 12 Mystery Pieces and 100,000 zeny.:I'll pay with 7 Oridecons and 100,000 zeny.:I'll pay with 1 Old Violet Box and 100,000 zeny.")) { + next; + case 1: + mes "[Lea] "; + mes "Mystery Pieces can be obtained from machine creatures in the Juperos Dungeon, and they're the fountain of knowledge from the ancient civilization. Ah, I get excited thinking about those artifacts."; + next; + mes "[Lea]"; + mes "Oridecons can be obtained from Executioners, Gryphons, Jokers, and Abysmal Knights, but it'll be easier to collect Rough Oridecons than Oridecons."; + next; + mes "[Lea]"; + mes "You can refine Rough Oridecons to Oridecons at the Forge in town."; + next; + mes "[Lea]"; + mes "Old Violet Boxes can be obtained from Mimics, Megaliths, Orc Lords, Stormy Knights, and Osirises."; + next; + mes "[Lea]"; + mes "The boxes are a subject worthy of serious study since they're used to test Schrodinger's pet cat."; + close; + case 2: + mes "[Lea]"; + mes "If you're unable to collect the items for the security deposit, I can offer you an alternate payment method."; + next; + mes "[Lea]"; + mes "How does 200,000 Rune-Midgartian zeny sound?"; + switch (select("I'm sorry, but I can't pay that much.:Sounds good.")) { + next; + case 1: + mes "[Lea]"; + mes "I see."; + close; + case 2: + if (Zeny > 199999) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6202) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 199999) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 200000; + getitem 6202,1; //Magic_Book_ES_ + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6203) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 199999) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 200000; + getitem 6203,1; //Magic_Book_CL + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6204) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 199999) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 200000; + getitem 6204,1; //Magic_Book_CR + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 5: + if (countitem(6205) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if (Zeny > 199999) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 200000; + getitem 6205,1; //Magic_Book_DL + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + case 3: + if ((Zeny > 99999) && (countitem(7094) > 11)) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6202) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(7094) > 11)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 7094,12; //Mystery_Piece + getitem 6202,1; //Magic_Book_ES_ + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6203) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(7094) > 11)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 7094,12; //Mystery_Piece + getitem 6203,1; //Magic_Book_CL + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6204) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(7094) > 11)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 7094,12; //Mystery_Piece + getitem 6204,1; //Magic_Book_CR + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 5: + if (countitem(6205) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(7094) > 11)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 7094,12; //Mystery_Piece + getitem 6205,1; //Magic_Book_DL + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if ((Zeny > 99999) && (countitem(984) > 6)) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6202) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(984) > 6)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 984,7; //Oridecon + getitem 6202,1; //Magic_Book_ES_ + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6203) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(984) > 6)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 984,7; //Oridecon + getitem 6203,1; //Magic_Book_CL + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6204) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(984) > 6)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 984,7; //Oridecon + getitem 6204,1; //Magic_Book_CR + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 5: + if (countitem(6205) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(984) > 6)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 984,7; //Oridecon + getitem 6205,1; //Magic_Book_DL + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 5: + if ((Zeny > 99999) && (countitem(617) > 0)) { + mes "[Lea]"; + mes "What kind of Magic Book do you want?"; + next; + switch (select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")) { + case 1: + mes "[Lea]"; + mes "No problem."; + close; + case 2: + if (countitem(6202) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(617) > 0)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 617,1; //Old_Violet_Box + getitem 6202,1; //Magic_Book_ES_ + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 3: + if (countitem(6203) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(617) > 0)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 617,1; //Old_Violet_Box + getitem 6203,1; //Magic_Book_CL + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 4: + if (countitem(6204) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(617) > 0)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 617,1; //Old_Violet_Box + getitem 6204,1; //Magic_Book_CR + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + case 5: + if (countitem(6205) > 0) { + mes "[Lea]"; + mes "You already have that Magic Book. You can't borrow a new book until you return the current one."; + next; + mes "[Lea]"; + mes "Don't you know how many others would want the book you already have? It's a bit selfish to want more than one, you know."; + close; + } + if ((Zeny > 99999) && (countitem(617) > 0)) { + mes "[Lea]"; + mes "Thank you for your deposit. The book's return date is written on the lending card on the back cover of the book. Please try not to lose or damage the book and avoid paying compensation."; + next; + mes "[Lea]"; + mes "The Intermediate and Superior Magic Books must be returned upon borrowing the Ultimate Magic Book. Remember that you're just borrowing them, so make sure you take good care of those books."; + set Zeny, Zeny - 100000; + delitem 617,1; //Old_Violet_Box + getitem 6205,1; //Magic_Book_DL + close; + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + } + mes "[Lea]"; + mes "I'm sorry, but you don't have enough funds."; + close; + } + case 5: + if ((BaseLevel > 139) && (mac_book < 1) && ((getskilllv(2217) > 0) || (getskilllv(2213) > 0))) { + mes "[Lea]"; + mes "Did... Did you just say the Ultimate Magic Book?"; + next; + mes "[Lea]"; + mes "Oh, my...."; + mes "I can't believe someone actually wants that book."; + next; + select("Please don't say that you don't have it."); + mes "[Lea]"; + mes "Frankly, I've never even seen the Ultimate Magic Book."; + next; + mes "[Lea]"; + mes "You should ask Master Velof if you want to know more about that book."; + next; + mes "[Lea]"; + mes "I'm sorry that I can't help you more than that."; + set mac_book,1; + close; + } + if ((BaseLevel > 139) && (mac_book > 0) && ((getskilllv(2217) > 0) || (getskilllv(2213) > 0))) { + mes "[Lea]"; + mes "You should ask Master Velof for some information about that book."; + close; + } + mes "[Lea]"; + mes "How about practicing your magic spells for now?"; + next; + mes "[Lea]"; + mes "In order to obtain the Ultimate Magic Book, you must reach Level 140 and learn Tetera Bolt and Comet."; + next; + mes "[Lea]"; + mes "That book can't be used by just anyone, you know?"; + close; + } + } + mes "[Lea]"; + mes "Welcome to the Magic Archive. You can read and borrow books from here under certain conditions."; + close; +} + +mid_camp,255,244,4 script Galfos 735,{ + + if (checkweight(1201,1) == 0) { + mes "You're carrying too many items. Please make some room in your bag first."; + close; + } + if ((MaxWeight - Weight) < 1000) { + mes "You're overweight with items. Please lose some item weight first."; + close; + } + if (Upper == 2) { + mes "[Galfos]"; + mes "What are you, a baby?"; + mes "I'm not here to babysit. Get lost!"; + close; + } + if ((Class != Job_Warlock) && (Class != Job_Warlock_T) && (Class != Job_Baby_Warlock)) { + mes "[Galfos]"; + mes "My right arm feels hot while my left arm feels cold. I can never get used to this weird weather!"; + close; + } + if (getskilllv(2230) < 1) { + mes "[Galfos]"; + mes "Ah, I'll get myself in trouble if I stay here any longer. Maybe I'm already in..."; + close; + } + if ((BaseLevel < 140) || (getskilllv(2217) < 1) && (getskilllv(2213) < 1)) { + mes "[Galfos]"; + mes "I'm sorry, but I don't talk to people that aren't even ready for this."; + close; + } + if (mac_book < 2) { + mes "[Galfos]"; + mes "You look strong, but you don't seem to have any business with me."; + close; + } + if (mac_book == 2) { + mes "[Galfos]"; + mes "What brings you to me?"; + next; + select("I heard that you've studied the Ultimate Magic Book."); + mes "[Galfos]"; + mes "Why, are you interested too?"; + mes "I didn't know someone would actually take an interest in that book. Yes, I'm studying that magic book. How did you find that out?"; + next; + select("You're Velof's brother, right?"); + mes "[Galfos]"; + mes "Yes, I'm Galfos, and Velof is my brother."; + next; + mes "[Galfos]"; + mes "Wait a minute,"; + mes "did the old man recommend me to you?"; + next; + select("That's right."); + mes "[Galfos]"; + mes "Wow!"; + mes "This is surprising. He never took my research very seriously. I'm glad that he finally changed his mind."; + next; + mes "[Galfos]"; + mes "Heh! Your timing couldn't be better: I was looking for a test object."; + next; + select("A test object?"); + mes "[Galfos]"; + mes "Frankly, I'm only interested in creating the Ultimate Magic Book."; + next; + mes "[Galfos]"; + mes "I'm not good at using magic, not to mention that I prefer fists in fighting. Nevertheless, I find Magic Books to be incredibly intriguing."; + next; + mes "[Galfos]"; + mes "The problem is that I can't use the Ultimate Magic Book, even if I made one. That's why I can't really test it on my own."; + next; + mes "[Galfos]"; + mes "That's why I've been waiting for a true magic practitioner like you that can help me test my Ultimate Magic Book."; + next; + select("(What is he talking about?)"); + mes "[Galfos]"; + mes "My research is almost done,"; + mes "and I need to solve one last problem to create the Magic Book."; + next; + mes "[Galfos]"; + mes "To make the ancient Ultimate Magic Book, I need an artifact and some spells to fuse into it."; + next; + mes "[Galfos]"; + mes "I've perfectly restored the spells based on the ancient documents, but I still have no information about the necessary artifact."; + next; + mes "[Galfos]"; + mes "Ah, but there's a silver lining!"; + next; + select("(Now we're getting somewhere!)"); + mes "[Galfos]"; + mes "Ha ha..."; + mes "There's a great archive in El Dicastes, the Capital City of the Evil Giants, where all knowledge in this world is stored."; + next; + mes "[Galfos]"; + mes "Maybe that's the place to find some information about the artifact for this Ultimate Magic Book."; + next; + mes "[Galfos]"; + mes "You know what to do, don't you? Find information about the artifact in the El Dicastes archive, using everything in your power."; + next; + mes "[Galfos]"; + mes "Afterwards, create and bring me the artifact. We'll talk about creating the Magic Book afterwards."; + set mac_book,3; + close; + } + if (mac_book == 3) { + mes "[Galfos]"; + mes "You know what to do, don't you? Find information about the artifact in the El Dicastes archive, using everything in your power."; + next; + mes "[Galfos]"; + mes "Afterwards, create and bring me the artifact. We'll talk about creating the Magic Book afterwards."; + close; + } + if (mac_book == 4) { + mes "[Galfos]"; + mes "Oh, did you find"; + mes "anything useful?"; + next; + switch (select("I've discovered everything about Comet.:I've mastered the zenith of Tetra Vortex.")) { + case 1: + if (countitem(6195) > 0) { + mes "[Galfos]"; + mes "Are you kidding me? You already have the book!"; + close; + } + if (checkquest(12218) == 2) { + mes "[Galfos]"; + mes "Oh my, I sense incredible energy coming from you. This is great! Now we're ready to make the Ultimate Magic Book."; + next; + mes "[Galfos]"; + mes "There's one problem, though: I'm so broke that I don't even have enough money to buy the tools to make the book."; + next; + mes "[Galfos]"; + mes "I need at least ^0000aa1000,000 zeny^000000 to buy all the necessary tools. Do you have the money?"; + next; + switch (select("Wh-what? No!:Sure.")) { + case 1: + mes "[Galfos]"; + mes "Aw, you don't? It's disappointing, but there's nothing I can do. Come back when you have enough money, okay?"; + close; + case 2: + if (Zeny > 1000000) { + mes "[Galfos]"; + mes "Alright then, let's get started!"; + next; + specialeffect2 EF_DISPELL; + progressbar "ffff00",4; + specialeffect2 EF_LORD; + set Zeny, Zeny - 1000000; + getitem 6195,1; //Magic_Book_CM + mes "[Galfos]"; + mes "Man, I almost lost my control to the incredible magic energy! Here's your Magic Book."; + next; + mes "[Galfos]"; + mes "Thank you for making my dream come true. Feel free to come back if you need another one of these books."; + close; + } + mes "[Galfos]"; + mes "Hey, what did I tell you? I can't buy the tools to make the book without money!"; + close; + } + } + mes "[Galfos]"; + mes "Are you sure that you've found something? It doesn't seem like you've learned what we need..."; + close; + case 2: + if (countitem(6196) > 0) { + mes "[Galfos]"; + mes "Are you kidding me? You already have the book!"; + close; + } + if ((checkquest(12219) == 2) && (checkquest(12220) == 2) && (checkquest(12221) == 2) && (checkquest(12222) == 2)) { + mes "[Galfos]"; + mes "Oh my, I sense incredible energy coming from you. This is great! Now we're ready to make the Ultimate Magic Book."; + next; + mes "[Galfos]"; + mes "There's one problem, though: I'm so broke that I don't even have enough money to buy the tools to make the book."; + next; + mes "[Galfos]"; + mes "I need at least ^0000aa1000,000 zeny^000000 to buy all the necessary tools. Do you have the money?"; + next; + switch (select("Wh-what? No!:Sure.")) { + case 1: + mes "[Galfos]"; + mes "Aw, you don't? It's disappointing, but there's nothing I can do. Come back when you have enough money, okay?"; + close; + case 2: + if (Zeny > 1000000) { + mes "[Galfos]"; + mes "Alright then, let's get started!"; + next; + specialeffect2 EF_DISPELL; + progressbar "ffff00",4; + specialeffect2 EF_LORD; + set Zeny, Zeny - 1000000; + getitem 6196,1; //Magic_Book_TV + mes "[Galfos]"; + mes "Man, I almost lost my control to the incredible magic energy. Here's your Magic Book."; + next; + mes "[Galfos]"; + mes "Thank you for making my dream come true. Feel free to come back if you need another one of these books."; + close; + } + mes "[Galfos]"; + mes "Hey, what did I tell you? I can't buy the tools to make the book without money!"; + close; + } + } + mes "[Galfos]"; + mes "Are you sure that you've found something? It doesn't seem like you've learned what we need..."; + close; + } + } + mes "[Galfos]"; + mes "Is there anything else you need?"; + close; +} + +dic_in01,25,190,0 script Mysterious Documents 844,{ + + if (isequipped(2782) < 1) { + mes "I better not forget to equip my ring."; + close; + } + if (ep13_3_invite < 6) { + mes "When you approach the documents, an Evil Giant that looks like the archive manager tries to call Guard Galton. You should get out of here quickly."; + close; + } + if (checkquest(12165,"PLAYTIME") == 1) { + mes "The documents are making you feel nauseous. You should come back later after your stomach settles."; + close; + } + if (checkquest(12165,"PLAYTIME") == 2) { + mes "You don't feel as nauseous anymore. It should be safe to proceed now."; + erasequest 12165; + close; + } + if ((BaseLevel < 140) || (getskilllv(2217) < 1) && (getskilllv(2213) < 1)) { + mes "The documents in this container aren't legible. It's not use trying to read them."; + close; + } + specialeffect2 EF_DISPELL; + progressbar "ffff00",4; + if (mac_book < 3) { + mes "You have discovered records about magic, acceleration, and particle waves."; + close; + } + if (mac_book == 3) { + mes "You have discovered records about magic, acceleration, and particle waves. These documents must be the ones that Galfos is looking for."; + set mac_book, 4; + close; + } + if (mac_book == 4) { + if (rand(1,10) == 1) { + if (getskilllv(2213) > 0) { + if (checkquest(12218) == 1) { + mes "You already own this document."; + close; + } + mes "^660066In order to create the essence of lava, you must refine 40 Burning Hearts at the hottest place on the 2nd floor of the Thor's Volcano Dungeon.^000000"; + mes "^660066You must do this by using the greatest power in that place. The Humans have used this method to study the acceleration of magic particles since ancient times.^000000"; + next; + mes "You have discovered the ^990099Lava Essence Creation Method^000000. Please check your Quest window for more details."; + specialeffect2 EF_STEAL; + close2; + setquest 12218; + end; + } + mes "Nothing in this document looks useful."; + close; + } + if (rand(1,10) == 2) { + if (getskilllv(2217) > 0) { + if (checkquest(12219) == 1) { + mes "You already own this document."; + close; + } + mes "^660066The essence of flame can be refined on stable ground on the 1st floor of the Thor's Volcano Dungeon. 10 Love Coals are necessary to refine the essence.^000000"; + mes "^660066According to Humans' information, this essence constitutes one of the four natural elements.^000000"; + next; + mes "You have discovered the ^990099Flame Essence Creation Method^000000. Please check your Quest window for more details."; + specialeffect2 EF_STEAL; + close2; + setquest 12219; + end; + } + mes "Nothing in this document looks useful."; + close; + } + if (rand(1,10) == 3) { + if (getskilllv(2217) > 0) { + if (checkquest(12220) == 1) { + mes "You already own this document."; + close; + } + mes "^660066I succeeded in refining the essence of glacier deep inside the 3rd floor of the Ice Cave. If you'd like to try, prepare 10 Ice Hearts and go to the following location.^000000"; + next; + mes "You have discovered the ^990099Glacier Essence Creation Method^000000. Please check your Quest window for more details."; + specialeffect2 EF_STEAL; + close2; + setquest 12220; + end; + } + mes "Nothing in this document looks useful."; + close; + } + if (rand(1,10) == 4) { + if (getskilllv(2217) > 0) { + if (checkquest(12221) == 1) { + mes "You already own this document."; + close; + } + mes "^660066I was able to refine the essence of fossil from old rocks on the 2nd floor of the Mine Dungeon. So far, that place is the most stable among all the testing grounds."; + mes "If you'd like to try, prepare 10 Jubilees and go to the dungeon. Good luck.^000000"; + next; + mes "You have discovered the ^990099Fossil Essence Creation Method^000000. Please check your Quest window for more details."; + specialeffect2 EF_STEAL; + close2; + setquest 12221; + end; + } + mes "Nothing in this document looks useful."; + close; + } + if (rand(1,10) == 5) { + if (getskilllv(2217) > 0) { + if (checkquest(12222) == 1) { + mes "You already own this document."; + close; + } + mes "^660066In order to refine the essence of storm, I visited the Hermit's Checkerboard in Kunlun where the spirit of the wind resides."; + mes "The refining process was easy, but I had a hard time finding the catalyst, Dragon Teeth.^000000"; + next; + mes "You have discovered the ^990099Storm Essence Creation Method^000000. Please check your Quest window for more details."; + specialeffect2 EF_STEAL; + close2; + setquest 12222; + end; + } + mes "Nothing in this document looks useful."; + close; + } + if (rand(1,10) == 10) { + mes "You suddenly feel sick, and this nausea won't go away easily. You should try finding the documents you need later."; + setquest 12165; + close; + } + mes "Nothing here looks special."; + close; + } + mes "You no longer need to search this place."; + close; +} + +thor_v02,163,104,0 script Powerful Lava Energy#33 844,{ + + if ((MaxWeight - Weight) < 1000) { + mes "Please lighten your bag."; + close; + } + if ((checkquest(12218) == 1) && (countitem(7097) > 39)) { + specialeffect2 EF_BLIND; + specialeffect2 EF_BEGINSPELL; + progressbar "ffff00",4; + delitem 7097,40; //Burning_Heart + if (rand(1,2) == 1) { + mes "You have used 40 Burning Hearts to create ^999900Lava Essence^000000."; + next; + mes "^008800The Lava Essence will last permanently, unless there's a problem.^000000"; + completequest 12218; + specialeffect2 EF_LORD; + close; + } + mes "^008888You have failed to refine the essence using 40 Burning Hearts.^000000"; + close; + } + if (checkquest(12218) == 2) { + mes "You've already created Lava Essence in this area."; + close; + } + mes "Someone already used this area."; + close; +} + +thor_v01,185,91,0 script Powerful Flame Energy#33 844,{ + + if ((MaxWeight - Weight) < 1000) { + mes "Please lighten your bag."; + close; + } + if ((checkquest(12219) == 1) && (countitem(7098) > 9)) { + specialeffect2 EF_BLIND; + specialeffect2 EF_BEGINSPELL; + progressbar "ffff00",4; + delitem 7098,10; //Live_Coal + if (rand(1,3) == 1) { + mes "You have used 10 Live Coals to create ^999900Flame Essence^000000."; + next; + mes "^008800The Flame Essence will last permanently, unless there's a problem.^000000"; + completequest 12219; + specialeffect2 EF_LORD; + close; + } + mes "^008888You have failed to refine the essence using 10 Live Coals.^000000"; + close; + } + if (checkquest(12219) == 2) { + mes "You've already created Flame Essence in this area."; + close; + } + mes "Someone already used this area."; + close; +} + +ice_dun03,137,148,0 script Powerful Glacier Energy 844,{ + + if ((MaxWeight - Weight) < 1000) { + mes "Please lighten your bag."; + close; + } + if ((checkquest(12220) == 1) && (countitem(7561) > 9)) { + specialeffect2 EF_BLIND; + specialeffect2 EF_BEGINSPELL; + progressbar "ffff00",4; + delitem 7561,10; //Ice_Heart + if (rand(1,3) == 1) { + mes "You have used 10 Glacial Hearts to create ^999900Glacier Essence^000000."; + next; + mes "^008800The Glacier Essence will last permanently, unless there's a problem.^000000"; + completequest 12220; + specialeffect2 EF_LORD; + close; + } + mes "^008888You have failed to refine the essence using 10 Glacial Hearts.^000000"; + close; + } + if (checkquest(12220) == 2) { + mes "You've already created Glacier Essence in this area."; + close; + } + mes "Someone already used this area."; + close; +} + +ein_dun02,181,124,0 script Powerful Fossil Energy 844,{ + + if ((MaxWeight - Weight) < 1000) { + mes "Please lighten your bag."; + close; + } + if ((checkquest(12221) == 1) && (countitem(7312) > 9)) { + specialeffect2 EF_BLIND; + specialeffect2 EF_BEGINSPELL; + progressbar "ffff00",4; + delitem 7312,10; //Jubilee + if (rand(1,3) == 1) { + mes "You have used 10 Jubilees to create ^999900Fossil Essence^000000."; + next; + mes "^008800The Fossil Essence will last permanently, unless there's a problem.^000000"; + specialeffect2 EF_LORD; + completequest 12221; + close; + } + mes "^008888You have failed to refine the essence using 10 Jubilees.^000000"; + close; + } + if (checkquest(12221) == 2) { + mes "You've already created Fossil Essence in this area."; + close; + } + mes "Someone already used this area."; + close; +} + +gon_dun02,252,198,0 script Powerful Storm Energy#33 844,{ + + if ((MaxWeight - Weight) < 1000) { + mes "Please lighten your bag."; + close; + } + if ((checkquest(12222) == 1) && (countitem(7266) > 9)) { + specialeffect2 EF_BLIND; + specialeffect2 EF_BEGINSPELL; + progressbar "ffff00",4; + delitem 7266,10; //Dragon_Fang + if (rand(1,3) == 1) { + mes "You have used 10 Dragon Teeth to create ^999900Storm Essence^000000."; + next; + mes "^008800The Storm Essence will last permanently, unless there's a problem.^000000"; + specialeffect2 EF_LORD; + completequest 12222; + close; + } + mes "^008888You have failed to refine the essence using 10 Dragon Teeth.^000000"; + close; + } + if (checkquest(12222) == 2) { + mes "You've already created Storm Essence in this area."; + close; + } + mes "Someone already used this area."; + close; +} diff --git a/npc/quests/pile_bunker.txt b/npc/quests/pile_bunker.txt index d55721f75..6f8d5ae54 100644 --- a/npc/quests/pile_bunker.txt +++ b/npc/quests/pile_bunker.txt @@ -1,59 +1,59 @@ -//===== rAthena Script ======================================= -//= Pile Bunker Quest -//===== By: ================================================== -//= JayPee Mateo -//===== Current Version: ===================================== -//= 2.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= 1.0 A Pile Bunker quest based on iRO WiKi. [JayPee Mateo] -//= iRO WiKi Link: http://irowiki.org/wiki/Pile_Bunker_quest -//= 2.0 Rewrited the Script a little so it looks a bit better. [Masao] -//============================================================ - -yuno,179,174,5 script Gomer 813,{ - - if(Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic){ - mes "[Gomer]"; - mes "Hello "+strcharinfo(0)+","; - mes "My name is Gomer and i can create Pile Bunkers for you if you bring me the required Items i need."; - next; - switch(select("Required items for Pile Bunker?:I brought the materials!")){ - case 1: - mes "[Gomer]"; - mes "These are the required Items:"; - mes "1x Brocca"; - mes "200x Steel"; - mes "30x Flexible Tube"; - close; - case 2: - if(countitem(1415) < 1 || countitem(999) < 200 || countitem(7325) < 30){ - mes "[Gomer]"; - mes "You dont have all the required items. Just talk to me when you have all the requirements."; - close; - } - mes "[Gomer]"; - mes "Great you brought me all the materials i needed!"; - next; - delitem 1415,1; // Brocca - delitem 999,50; // Steel - delitem 7325,30; // Flexible Tube - getitem 1549,1; // Pile Bunker - getitem 1360,1; // Two-Handed Axe - mes "[Gomer]"; - mes "So please, take this Pile Bunker and this Two-Handed Axe i made for you."; - mes "If you need an new Pile Bunker just come and visit me again!"; - close; - } - } - if(BaseJob == Merchant){ - mes "[Gomer]"; - mes "I'm sorry young one, but you do not seem ready yet to use the Pile Bunker."; - mes "Come back when you've grown in strength!"; - close; - } - mes "[Gomer]"; - mes "Isn't it a beautiful Day today?"; - close; -} \ No newline at end of file +//===== rAthena Script ======================================= +//= Pile Bunker Quest +//===== By: ================================================== +//= JayPee Mateo +//===== Current Version: ===================================== +//= 2.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= 1.0 A Pile Bunker quest based on iRO WiKi. [JayPee Mateo] +//= iRO WiKi Link: http://irowiki.org/wiki/Pile_Bunker_quest +//= 2.0 Rewrited the Script a little so it looks a bit better. [Masao] +//============================================================ + +yuno,179,174,5 script Gomer 813,{ + + if(Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic){ + mes "[Gomer]"; + mes "Hello "+strcharinfo(0)+","; + mes "My name is Gomer and i can create Pile Bunkers for you if you bring me the required Items i need."; + next; + switch(select("Required items for Pile Bunker?:I brought the materials!")){ + case 1: + mes "[Gomer]"; + mes "These are the required Items:"; + mes "1x Brocca"; + mes "200x Steel"; + mes "30x Flexible Tube"; + close; + case 2: + if(countitem(1415) < 1 || countitem(999) < 200 || countitem(7325) < 30){ + mes "[Gomer]"; + mes "You dont have all the required items. Just talk to me when you have all the requirements."; + close; + } + mes "[Gomer]"; + mes "Great you brought me all the materials i needed!"; + next; + delitem 1415,1; // Brocca + delitem 999,50; // Steel + delitem 7325,30; // Flexible Tube + getitem 1549,1; // Pile Bunker + getitem 1360,1; // Two-Handed Axe + mes "[Gomer]"; + mes "So please, take this Pile Bunker and this Two-Handed Axe i made for you."; + mes "If you need an new Pile Bunker just come and visit me again!"; + close; + } + } + if(BaseJob == Merchant){ + mes "[Gomer]"; + mes "I'm sorry young one, but you do not seem ready yet to use the Pile Bunker."; + mes "Come back when you've grown in strength!"; + close; + } + mes "[Gomer]"; + mes "Isn't it a beautiful Day today?"; + close; +} diff --git a/src/login/login.h b/src/login/login.h index 2092e6e71..e79f44626 100644 --- a/src/login/login.h +++ b/src/login/login.h @@ -65,7 +65,7 @@ struct Login_Config { int start_limited_time; // new account expiration time (-1: unlimited) bool use_md5_passwds; // work with password hashes instead of plaintext passwords? int group_id_to_connect; // required group id to connect - int min_group_id_to_connect; // minimum group id to connect + int min_group_id_to_connect; // minimum group id to connect bool check_client_version; // check the clientversion set in the clientinfo ? uint32 client_version_to_connect; // the client version needed to connect (if checking is enabled) -- cgit v1.2.3-70-g09d2 From b87430245ee4dad7dbeb0e2ee54ae0ff2f782fd2 Mon Sep 17 00:00:00 2001 From: brianluau Date: Fri, 1 Jun 2012 04:06:10 +0000 Subject: - Replaced more -> rAthena (follow up to r15251). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16195 54d463be-8e91-2dee-dedb-b68131a5f0ec --- CMakeLists.txt | 2 +- Makefile.in | 48 +++++++++++++++++------------------ conf/readme.txt | 4 +-- doc/packet_struct_notation.txt | 2 +- npc/custom/breeder.txt | 10 +++----- npc/custom/etc/bank.txt | 2 +- npc/custom/etc/mvp_arena.txt | 2 +- npc/custom/healer.txt | 12 +++++---- npc/custom/itemmall.txt | 4 +-- npc/custom/resetnpc.txt | 2 +- npc/custom/stylist.txt | 2 +- npc/custom/warper.txt | 2 +- npc/merchants/advanced_refiner.txt | 2 +- npc/merchants/enchan_arm.txt | 2 +- npc/merchants/gemstone.txt | 2 +- npc/other/books.txt | 2 +- npc/quests/gunslinger_quests.txt | 2 +- npc/quests/newgears/2006_headgear.txt | 2 +- npc/quests/ninja_quests.txt | 2 +- npc/scripts_main.conf | 1 - npc/warps/cities/dewata.txt | 4 +-- npc/warps/cities/dicastes.txt | 4 +-- npc/warps/cities/eclage.txt | 4 +-- npc/warps/cities/malangdo.txt | 4 +-- npc/warps/cities/malaya.txt | 4 +-- npc/warps/dungeons/dic_dun.txt | 4 +-- npc/warps/dungeons/ecl_dun.txt | 4 +-- npc/warps/fields/bif_fild.txt | 4 +-- npc/warps/fields/dic_fild.txt | 4 +-- npc/warps/other/paradise.txt | 4 +-- npc/warps/other/s_workshop.txt | 4 +-- runserver-sql.bat | 2 +- sql-files/convert_engine_innodb.sql | 2 +- sql-files/convert_engine_myisam.sql | 2 +- sql-files/upgrade_svn12975_view.sql | 2 +- src/map/atcommand.c | 7 +++-- 36 files changed, 82 insertions(+), 84 deletions(-) (limited to 'npc/custom/etc') diff --git a/CMakeLists.txt b/CMakeLists.txt index 763f64083..cfeddccbf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ # HAVE_* : internal variable indicating if we have and are using something # # Maintainer: Flávio J. Saraiva (feel free to send complaints or suggestions) -# flaviojs @ eAthena forum/irc +# flaviojs @ rAthena forum/irc # flaviojs2005 \A-T/ gmail com # ##################################################################### diff --git a/Makefile.in b/Makefile.in index ea60ed1f5..9664cc1b8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -118,33 +118,33 @@ no_plugins: install: conf/%.conf conf/%.txt $(shell read -p "WARNING: This target does not work properly yet. Press Ctrl+C to cancel or Enter to continue.") - $(shell mkdir -p /opt/eathena/bin/) - $(shell mkdir -p /opt/eathena/etc/eathena/) - $(shell mkdir -p /opt/eathena/var/log/eathena/) - $(shell mv save /opt/eathena/etc/eathena/save) - $(shell mv db /opt/eathena/etc/eathena/db) - $(shell mv conf /opt/eathena/etc/eathena/conf) - $(shell mv npc /opt/eathena/etc/eathena/npc) - $(shell mv log/* /opt/eathena/var/log/eathena/) - $(shell cp *-server* /opt/eathena/bin/) - $(shell ln -s /opt/eathena/etc/eathena/save/ /opt/eathena/bin/) - $(shell ln -s /opt/eathena/etc/eathena/db/ /opt/eathena/bin/) - $(shell ln -s /opt/eathena/etc/eathena/conf/ /opt/eathena/bin/) - $(shell ln -s /opt/eathena/etc/eathena/npc/ /opt/eathena/bin/) - $(shell ln -s /opt/eathena/var/log/eathena/ /opt/eathena/bin/log) + $(shell mkdir -p /opt/rathena/bin/) + $(shell mkdir -p /opt/rathena/etc/rathena/) + $(shell mkdir -p /opt/rathena/var/log/rathena/) + $(shell mv save /opt/rathena/etc/rathena/save) + $(shell mv db /opt/rathena/etc/rathena/db) + $(shell mv conf /opt/rathena/etc/rathena/conf) + $(shell mv npc /opt/rathena/etc/rathena/npc) + $(shell mv log/* /opt/rathena/var/log/rathena/) + $(shell cp *-server* /opt/rathena/bin/) + $(shell ln -s /opt/rathena/etc/rathena/save/ /opt/rathena/bin/) + $(shell ln -s /opt/rathena/etc/rathena/db/ /opt/rathena/bin/) + $(shell ln -s /opt/rathena/etc/rathena/conf/ /opt/rathena/bin/) + $(shell ln -s /opt/rathena/etc/rathena/npc/ /opt/rathena/bin/) + $(shell ln -s /opt/rathena/var/log/rathena/ /opt/rathena/bin/log) bin-clean: - $(shell rm /opt/eathena/bin/login-server*) - $(shell rm /opt/eathena/bin/char-server*) - $(shell rm /opt/eathena/bin/map-server*) + $(shell rm /opt/rathena/bin/login-server*) + $(shell rm /opt/rathena/bin/char-server*) + $(shell rm /opt/rathena/bin/map-server*) uninstall: $(shell read -p "WARNING: This target does not work properly yet. Press Ctrl+C to cancel or Enter to continue.") bin-clean - $(shell rm /opt/eathena/bin/save) - $(shell rm /opt/eathena/bin/db) - $(shell rm /opt/eathena/bin/conf) - $(shell rm /opt/eathena/bin/npc) - $(shell rm /opt/eathena/bin/log) - $(shell rm -rf /opt/eathena/etc/eathena) - $(shell rm -rf /opt/eathena/var/log/eathena) + $(shell rm /opt/rathena/bin/save) + $(shell rm /opt/rathena/bin/db) + $(shell rm /opt/rathena/bin/conf) + $(shell rm /opt/rathena/bin/npc) + $(shell rm /opt/rathena/bin/log) + $(shell rm -rf /opt/rathena/etc/rathena) + $(shell rm -rf /opt/rathena/var/log/rathena) diff --git a/conf/readme.txt b/conf/readme.txt index db8777680..879651ac7 100644 --- a/conf/readme.txt +++ b/conf/readme.txt @@ -5,7 +5,7 @@ what you ever did without it. The main thing it does, is provide a way for you to change your config settings without having to update the files every time you update your server. You store your changes, and -the rest are updated with eA (usually though SVN). +the rest are updated with rAthena (usually though SVN). How does this work? @@ -30,4 +30,4 @@ this file everytime you update, and your setting will always be there. Neat, isn So, yeah, that's what the import folder is for. I hope to see a lot more people use it, to make my life as a managed server runer better. -Semi-guide by Ajarn \ No newline at end of file +Semi-guide by Ajarn diff --git a/doc/packet_struct_notation.txt b/doc/packet_struct_notation.txt index 4ba30cb00..7c3974da2 100644 --- a/doc/packet_struct_notation.txt +++ b/doc/packet_struct_notation.txt @@ -31,7 +31,7 @@ The first line contain a brief description of what the packet does, or what it is good for, followed by it's AEGIS name in parentheses; first two letters of the AEGIS name specify origin (first letter) and destination (second letter) of the packet. If the packet's name -is not known or is not applicable (eAthena server-server packets), +is not known or is not applicable (rAthena server-server packets), specify at least these two letters to indicate the direction of the packet. Do not use S(end)/R(ecv) for this, as it is inaccurate and location dependent (if the description is copied to different server diff --git a/npc/custom/breeder.txt b/npc/custom/breeder.txt index 580042b45..d03928ad2 100644 --- a/npc/custom/breeder.txt +++ b/npc/custom/breeder.txt @@ -25,29 +25,27 @@ prontera,124,201,1 script Universal Rental Npc 726,{ case 1: if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) { setcart; - close; } else { mes "[Universal Rental Npc]"; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; - close; } + break; case 2: if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) { setfalcon; - close; } else { mes "[Universal Rental Npc]"; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; - close; } + break; case 3: if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) { setriding; - close; } else { mes "[Universal Rental Npc]"; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; - close; } + break; } + close; } diff --git a/npc/custom/etc/bank.txt b/npc/custom/etc/bank.txt index 33fc558f9..ed514c901 100644 --- a/npc/custom/etc/bank.txt +++ b/npc/custom/etc/bank.txt @@ -116,4 +116,4 @@ switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's mes "Very well... come again soon."; close; } -} // EOF \ No newline at end of file +} diff --git a/npc/custom/etc/mvp_arena.txt b/npc/custom/etc/mvp_arena.txt index 7047eaa21..2cc3fb36d 100644 --- a/npc/custom/etc/mvp_arena.txt +++ b/npc/custom/etc/mvp_arena.txt @@ -319,4 +319,4 @@ pvp_n_4-5 mapflag pvp_nightmaredrop off pvp_n_5-5 mapflag pvp_nightmaredrop off pvp_n_6-5 mapflag pvp_nightmaredrop off pvp_n_7-5 mapflag pvp_nightmaredrop off -pvp_n_8-5 mapflag pvp_nightmaredrop off \ No newline at end of file +pvp_n_8-5 mapflag pvp_nightmaredrop off diff --git a/npc/custom/healer.txt b/npc/custom/healer.txt index 9b1bacfbe..b8873d6b9 100644 --- a/npc/custom/healer.txt +++ b/npc/custom/healer.txt @@ -16,19 +16,21 @@ set .@Buffs,0; // Also buff players? (1: yes / 0: no) set .@Delay,0; // Heal delay, in seconds + callfunc "F_ClearGarbage",0; if (@HD > gettimetick(2)) end; if (.@Price) { message strcharinfo(0),"Healing costs "+.@Price+" Zeny."; if (Zeny < .@Price) end; if(select("^0055FFHeal^000000:^777777Cancel^000000")==2) close; - set Zeny, Zeny-.@Price; } + set Zeny, Zeny-.@Price; + } specialeffect2 313; percentheal 100,100; if (.@Buffs) { specialeffect2 37; sc_start SC_INCREASEAGI,240000,10; - specialeffect2 42; sc_start SC_BLESSING,240000,10; } + specialeffect2 42; sc_start SC_BLESSING,240000,10; + } if (.@Delay) set @HD, gettimetick(2)+.@Delay; - if (.@Price) close; - end; + close; } alberta,185,144,5 duplicate(Healer) Healer#alb 742 @@ -46,4 +48,4 @@ payon,180,105,5 duplicate(Healer) Healer#pay 742 prontera,150,184,5 duplicate(Healer) Healer#pront 742 umbala,94,162,5 duplicate(Healer) Healer#umb 742 xmas,149,136,5 duplicate(Healer) Healer#xmas 742 -yuno,152,186,5 duplicate(Healer) Healer#yuno 742 \ No newline at end of file +yuno,152,186,5 duplicate(Healer) Healer#yuno 742 diff --git a/npc/custom/itemmall.txt b/npc/custom/itemmall.txt index bbc20420d..aeff0e1fd 100644 --- a/npc/custom/itemmall.txt +++ b/npc/custom/itemmall.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.0 [Masao] //===== Compatible With: ===================================== -//= Any rA SVN +//= rAthena SVN //===== Description: ========================================= //= A Shopstreet in Prontera where players can buy some Equipment. //============================================================ @@ -41,4 +41,4 @@ prontera,164,238,4 shop Headgear 05 832,5340:50000,5341:50000,5342:50000,5343:50 prontera,151,284,4 shop Ammunition 880,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50 prontera,153,284,4 shop Alchemist Dealer 880,715:600,716:600,717:600,1025:200,7136:500,7135:500,7136:500,7137:500,7138:500,7139:500 prontera,155,284,4 shop Street Dealer 880,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650 -prontera,157,284,4 shop Sheepy Gonzales 895,12028:1000,12262:500,12016:750 \ No newline at end of file +prontera,157,284,4 shop Sheepy Gonzales 895,12028:1000,12262:500,12016:750 diff --git a/npc/custom/resetnpc.txt b/npc/custom/resetnpc.txt index 6d630a41f..bc7132651 100644 --- a/npc/custom/resetnpc.txt +++ b/npc/custom/resetnpc.txt @@ -59,4 +59,4 @@ prontera,150,193,4 script Reset Girl 124,{ case 4: close; } -} \ No newline at end of file +} diff --git a/npc/custom/stylist.txt b/npc/custom/stylist.txt index 3bcb04c9e..73c20a206 100644 --- a/npc/custom/stylist.txt +++ b/npc/custom/stylist.txt @@ -30,4 +30,4 @@ prontera,170,180,1 script Stylist#custom_stylist 122,{ break; case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; } } end; -} \ No newline at end of file +} diff --git a/npc/custom/warper.txt b/npc/custom/warper.txt index 7980f6ccd..8c85997e5 100644 --- a/npc/custom/warper.txt +++ b/npc/custom/warper.txt @@ -382,4 +382,4 @@ veins,214,123,4 duplicate(Warper) Warper#43 811 dewata,194,178,6 duplicate(Warper) Warper#44 811 eclage,107,37,4 duplicate(Warper) Warper#45 811 malaya,210,205,4 duplicate(Warper) Warper#46 811 -malangdo,220,188,6 duplicate(Warper) Warper#47 811 \ No newline at end of file +malangdo,220,188,6 duplicate(Warper) Warper#47 811 diff --git a/npc/merchants/advanced_refiner.txt b/npc/merchants/advanced_refiner.txt index 5e846fd35..70b11c167 100644 --- a/npc/merchants/advanced_refiner.txt +++ b/npc/merchants/advanced_refiner.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.4 //===== Compatible With: ===================================== -//= Eathena SVN +//= rAthena SVN //===== Description: ========================================= //= [Aegis Conversion] //= Refiner that uses Enriched ores to increase upgrade success. diff --git a/npc/merchants/enchan_arm.txt b/npc/merchants/enchan_arm.txt index 5353040a0..baa5574dd 100644 --- a/npc/merchants/enchan_arm.txt +++ b/npc/merchants/enchan_arm.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= eAhena SVN +//= rAthena SVN //===== Description: ========================================= //= [Aegis Conversion] //= Add a +1, 2, or 3, of a random stat to specified armor. diff --git a/npc/merchants/gemstone.txt b/npc/merchants/gemstone.txt index db44002d7..a6181f61a 100644 --- a/npc/merchants/gemstone.txt +++ b/npc/merchants/gemstone.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= eAhena SVN +//= rAthena SVN //===== Description: ========================================= //= [Aegis Conversion] //= Trade various colors of gemstones for other color gemstones. diff --git a/npc/other/books.txt b/npc/other/books.txt index d4623ab5d..7655b9516 100644 --- a/npc/other/books.txt +++ b/npc/other/books.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= Eathena SVN +//= rAthena SVN //===== Description: ========================================= //= [Aegis Conversion] //= Various Books found in Prontera Library diff --git a/npc/quests/gunslinger_quests.txt b/npc/quests/gunslinger_quests.txt index 84407e5d4..2f1c5b317 100644 --- a/npc/quests/gunslinger_quests.txt +++ b/npc/quests/gunslinger_quests.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.6c //===== Compatible With: ===================================== -//= SVN eA +//= rAthena SVN //===== Description: ========================================= //= Gunslinger guns and bullet quests //===== Additional Comments: ================================= diff --git a/npc/quests/newgears/2006_headgear.txt b/npc/quests/newgears/2006_headgear.txt index b3f44817f..2d9fd8236 100644 --- a/npc/quests/newgears/2006_headgear.txt +++ b/npc/quests/newgears/2006_headgear.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.4 //===== Compatible With: ===================================== -//= SVN eA +//= rAthena SVN //===== Description: ========================================= //= [Aegis Conversion] //= Censor Bar, Feather Beret, Valk. Helm, Hahoe Mask, diff --git a/npc/quests/ninja_quests.txt b/npc/quests/ninja_quests.txt index d4e119fac..76fb137b3 100644 --- a/npc/quests/ninja_quests.txt +++ b/npc/quests/ninja_quests.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= SVN eA +//= rAthena SVN //===== Description: ========================================= //= Ninja quests //===== Additional Comments: ================================= diff --git a/npc/scripts_main.conf b/npc/scripts_main.conf index 9e440cff6..0852d440a 100644 --- a/npc/scripts_main.conf +++ b/npc/scripts_main.conf @@ -33,5 +33,4 @@ import: npc/scripts_jobs.conf import: npc/scripts_guild.conf // -- Your NPCs go in this file! import: npc/scripts_custom.conf -// -- eAAC Scripts // -------------------------------------------------------------- diff --git a/npc/warps/cities/dewata.txt b/npc/warps/cities/dewata.txt index 62bf4013c..3de40d40f 100644 --- a/npc/warps/cities/dewata.txt +++ b/npc/warps/cities/dewata.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Dewata Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for Dewata //===== Additional Comments: ================================= diff --git a/npc/warps/cities/dicastes.txt b/npc/warps/cities/dicastes.txt index 7efc17a8e..9ee6338fd 100644 --- a/npc/warps/cities/dicastes.txt +++ b/npc/warps/cities/dicastes.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= El Dicastes Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for El Dicastes //===== Additional Comments: ================================= diff --git a/npc/warps/cities/eclage.txt b/npc/warps/cities/eclage.txt index b1011ba9e..c67bf202f 100644 --- a/npc/warps/cities/eclage.txt +++ b/npc/warps/cities/eclage.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Eclage Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for Eclage //===== Additional Comments: ================================= diff --git a/npc/warps/cities/malangdo.txt b/npc/warps/cities/malangdo.txt index 67d8c9334..11810196b 100644 --- a/npc/warps/cities/malangdo.txt +++ b/npc/warps/cities/malangdo.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Malangdo Island Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for Malangdo Island //===== Additional Comments: ================================= diff --git a/npc/warps/cities/malaya.txt b/npc/warps/cities/malaya.txt index 2ba7af270..3a8b1002e 100644 --- a/npc/warps/cities/malaya.txt +++ b/npc/warps/cities/malaya.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Malaya Port Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for Malaya Port //===== Additional Comments: ================================= diff --git a/npc/warps/dungeons/dic_dun.txt b/npc/warps/dungeons/dic_dun.txt index 3e1a8eedf..63d5e8f0b 100644 --- a/npc/warps/dungeons/dic_dun.txt +++ b/npc/warps/dungeons/dic_dun.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Scaraba Hole Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for Scaraba Hole //===== Additional Comments: ================================= diff --git a/npc/warps/dungeons/ecl_dun.txt b/npc/warps/dungeons/ecl_dun.txt index 4e0351238..6d6bb321a 100644 --- a/npc/warps/dungeons/ecl_dun.txt +++ b/npc/warps/dungeons/ecl_dun.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Eclage Dungeon Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for Eclage Dungeon //===== Additional Comments: ================================= diff --git a/npc/warps/fields/bif_fild.txt b/npc/warps/fields/bif_fild.txt index 45f34503b..d6f6505e4 100644 --- a/npc/warps/fields/bif_fild.txt +++ b/npc/warps/fields/bif_fild.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Bifrost Field Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for Bifrost Field //===== Additional Comments: ================================= diff --git a/npc/warps/fields/dic_fild.txt b/npc/warps/fields/dic_fild.txt index f491a836c..10c9a5635 100644 --- a/npc/warps/fields/dic_fild.txt +++ b/npc/warps/fields/dic_fild.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= El Dicastes Field Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for El Dicastes Field //===== Additional Comments: ================================= diff --git a/npc/warps/other/paradise.txt b/npc/warps/other/paradise.txt index 543bdbbfa..fec766ec4 100644 --- a/npc/warps/other/paradise.txt +++ b/npc/warps/other/paradise.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Paradise Group Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version; +//= rAthena SVN; //===== Description: ========================================= //= Warp Points for Paradise Group //===== Additional Comments: ================================= diff --git a/npc/warps/other/s_workshop.txt b/npc/warps/other/s_workshop.txt index f39d10c32..3514171ff 100644 --- a/npc/warps/other/s_workshop.txt +++ b/npc/warps/other/s_workshop.txt @@ -1,11 +1,11 @@ -//===== eAthena Script ======================================= +//===== rAthena Script ======================================= //= Shadow Workshop Warp Script //===== By: ================================================== //= Chilly //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= Warp Points for Shadow Workshop //===== Additional Comments: ================================= diff --git a/runserver-sql.bat b/runserver-sql.bat index f424a205a..f111acf46 100755 --- a/runserver-sql.bat +++ b/runserver-sql.bat @@ -1,5 +1,5 @@ @echo off -rem This is and auto-restart script for the eAthena Ragnarok Online Server Emulator. +rem This is and auto-restart script for the rAthena Ragnarok Online Server Emulator. rem It will also keep the map server OPEN after it crashes to that errors may be rem more easily identified rem Writen by Jbain diff --git a/sql-files/convert_engine_innodb.sql b/sql-files/convert_engine_innodb.sql index 9588a9536..fcb240bb1 100644 --- a/sql-files/convert_engine_innodb.sql +++ b/sql-files/convert_engine_innodb.sql @@ -1,5 +1,5 @@ -- --- eAthena Database Converter ( MyISAM -> InnoDB ) +-- rAthena Database Converter ( MyISAM -> InnoDB ) -- ALTER TABLE `auction` ENGINE = InnoDB; diff --git a/sql-files/convert_engine_myisam.sql b/sql-files/convert_engine_myisam.sql index 5ae7fb2cb..5af878f65 100644 --- a/sql-files/convert_engine_myisam.sql +++ b/sql-files/convert_engine_myisam.sql @@ -1,5 +1,5 @@ -- --- eAthena Database Converter ( InnoDB -> MyISAM ) +-- rAthena Database Converter ( InnoDB -> MyISAM ) -- ALTER TABLE `auction` ENGINE = MyISAM; diff --git a/sql-files/upgrade_svn12975_view.sql b/sql-files/upgrade_svn12975_view.sql index 2d65afd18..7f0cce743 100644 --- a/sql-files/upgrade_svn12975_view.sql +++ b/sql-files/upgrade_svn12975_view.sql @@ -1,6 +1,6 @@ -- The statements below will create a 'view' (virtual table) that mimics -- the previous `login` table layout. You can use this hack to make your db --- compatible with older eathena servers or control panels. +-- compatible with older *Athena servers or control panels. -- Note: also adjust the account.sql.account_db setting in login_athena.conf. -- Note: if your CP does not have a config setting for the `login` table name -- you'll have to either modify its code or do some table renaming. diff --git a/src/map/atcommand.c b/src/map/atcommand.c index d616efec3..65202b050 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -3944,9 +3944,8 @@ ACMD_FUNC(reloadmotd) ACMD_FUNC(reloadscript) { nullpo_retr(-1, sd); - //atcommand_broadcast( fd, sd, "@broadcast", "eAthena Server is Rehashing..." ); + //atcommand_broadcast( fd, sd, "@broadcast", "Server is reloading scripts..." ); //atcommand_broadcast( fd, sd, "@broadcast", "You will feel a bit of lag at this point !" ); - //atcommand_broadcast( fd, sd, "@broadcast", "Reloading NPCs..." ); flush_fifos(); script_reload(); @@ -6650,7 +6649,7 @@ ACMD_FUNC(mail) /*========================================== * Show Monster DB Info v 1.0 - * originally by [Lupus] eAthena + * originally by [Lupus] *------------------------------------------*/ ACMD_FUNC(mobinfo) { @@ -7112,7 +7111,7 @@ ACMD_FUNC(homshuffle) /*========================================== * Show Items DB Info v 1.0 - * originally by [Lupus] eAthena + * originally by [Lupus] *------------------------------------------*/ ACMD_FUNC(iteminfo) { -- cgit v1.2.3-70-g09d2 From 40dcd5a42ff0b8afbb776be33440876bc891e1c9 Mon Sep 17 00:00:00 2001 From: euphyy Date: Fri, 8 Jun 2012 00:35:56 +0000 Subject: * Added "eA Job System" documentation for third classes (doc\ea_job_system.txt) * Fixed Eden: Romeo#02 not setting para_suv01 upon quest completion (bugreport:5949) * Cleaned and edited "Item Signer" script for general use (custom\item_signer.txt) * Merged and cleaned "Poring Track" custom script, then moved and renamed (custom\events\p_track.txt) * Optimized "Valhallen Quests" script (custom\quests\valhallen.txt) * Optimized "Event King Items" script (custom\events\kings_items.txt) * Deleted "Market Place" script, not sure why this existed... (custom\etc\market.txt) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16239 54d463be-8e91-2dee-dedb-b68131a5f0ec --- doc/ea_job_system.txt | 20 +- npc/custom/etc/market.txt | 39 ---- npc/custom/events/kings_items.txt | 213 ++++++-------------- npc/custom/events/p_track.txt | 67 +++++++ npc/custom/events/p_track/p_track_core.txt | 44 ----- npc/custom/events/p_track/p_track_warpers.txt | 72 ------- npc/custom/item_signer.txt | 273 ++++++++------------------ npc/custom/quests/valhallen.txt | 227 +++++---------------- npc/quests/eden/eden_quests.txt | 1 + npc/scripts_custom.conf | 3 +- 10 files changed, 279 insertions(+), 680 deletions(-) delete mode 100644 npc/custom/etc/market.txt create mode 100644 npc/custom/events/p_track.txt delete mode 100644 npc/custom/events/p_track/p_track_core.txt delete mode 100644 npc/custom/events/p_track/p_track_warpers.txt (limited to 'npc/custom/etc') diff --git a/doc/ea_job_system.txt b/doc/ea_job_system.txt index 229216a9e..5a6db5e3c 100644 --- a/doc/ea_job_system.txt +++ b/doc/ea_job_system.txt @@ -3,9 +3,10 @@ //===== By ================================================ //= Skotlex //===== Version =========================================== -//= 0.1 +//= 0.2 //========================================================= //= 0.1 - First release, explained as well as I could. +//= 0.2 - Added info on third jobs. [Euphy] //===== Description ======================================= //= A reference description of eA's inner job system (for //= use on scripts through the eaclass and roclass script @@ -37,7 +38,8 @@ The eA Job System: EAJ_THIEF 0x6 EAJ_TAEKWON 0x7 EAJ_GUNSLINGER 0x9 - EAJ_NINJA 0x10 + EAJ_NINJA 0x0A + EAJ_GANGSI 0x0D - Branch: All classes can be classified as "1st Class", "2-1 Class" or "2-2 Class": @@ -45,10 +47,11 @@ The eA Job System: EAJL_2_2 0x200 EAJL_2 0x300 -- The third category is type. Classes can either be normal, rebirth/advanced or adopted. +- The third category is type. Classes can either be normal, rebirth/advanced, adopted, or third class. EAJL_UPPER 0x1000 EAJL_BABY 0x2000 + EAJL_THIRD 0x4000 So using these three categories, any job class can be constructed from the others. Let's take a swordman, for example. @@ -70,6 +73,7 @@ Or getting out the rebirth versions of a swordman: EAJ_SWORDMAN|EAJL_UPPER -> EAJ_SWORDMAN_HIGH EAJ_SWORDMAN|EAJL_2_1|EAJL_UPPER -> EAJ_LORD_KNIGHT EAJ_SWORDMAN|EAJL_2_2|EAJL_UPPER -> EAJ_PALADIN + EAJ_SWORDMAN|EAJL_2_2|EAJL_THIRD -> EAJ_ROYAL_GUARD Why are we using the bitwise OR operand ('|') rather than just adding? Because the OR is wreck-proof: @@ -105,6 +109,11 @@ EAJL_BABY: if (@job&EAJL_BABY) mes "Don't you hate being weak?"; +EAJL_THIRD: + Checks if a class is a third job. + if(@job&EAJL_THIRD) + mes "Wow, you've really grown!"; + EAJ_UPPERMASK: The upper mask can be used to "strip" the upper/baby characteristics of a class, used when you want to know if someone is a certain class regardless of rebirth/adopted status. For example, the following code would go through for Monks, Champions and Baby Monks: if ((@job&EAJ_UPPERMASK) == EAJ_MONK) @@ -119,6 +128,11 @@ EAJ_BASEMASK: Note that, like before, if you try to check versus any of the other classes (High merchant, blacksmith, etc) instead of basic merchant, the check will always fail for the same reasons previously explained. +EAJ_THIRDMASK: + This mask strips 3rd class attributes. It will give the "normal" class of a third job, regardless of rebirth/adopted status. When used on non-third class characters, it will return the second job, or, if that also doesn't exist, the first. + if ((@job&EAJ_THIRDMASK) == EAJ_WARLOCK_T) + mes "You've gone through rebirth, I see."; + The script commands eaclass, roclass: ------------------------------------------------------------------------------- diff --git a/npc/custom/etc/market.txt b/npc/custom/etc/market.txt deleted file mode 100644 index d07eabac8..000000000 --- a/npc/custom/etc/market.txt +++ /dev/null @@ -1,39 +0,0 @@ -//===== rAthena Script ======================================= -//= Market Place -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= This script should move vending crowds from Prontera -//= streets to a suitable market place. Save your traffic 8) -//===== Additional Comments: ================================= -//= 1.1 Optimized it, Removed labels. [Spre] -//============================================================ - -prontera,144,174,3 script Market Place 722,{ - mes"[Market Place]"; - mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000."; - next; - if (select("Yes Please:No") == 2) { - close; - } - // I didn't see the need to check and show venders.... Since it didnt even work - warp "gon_test",27+rand(5),98; - end; -} - -gon_test,73,103,0 script MarketExit 45,1,2,{ - warp "prontera",155,177-rand(10); - end; -} - -//disable vending in Prontera -prontera mapflag novending -prt_in mapflag novending -//Market Place settings -gon_test mapflag noteleport -gon_test mapflag nomemo -gon_test mapflag nobranch diff --git a/npc/custom/events/kings_items.txt b/npc/custom/events/kings_items.txt index a706e037c..8140827c1 100644 --- a/npc/custom/events/kings_items.txt +++ b/npc/custom/events/kings_items.txt @@ -3,176 +3,77 @@ //===== By: ================================================== //= $ephiroth //===== Current Version: ===================================== -//= 1.0 +//= 1.1 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= Grand Circlet Quest combined with Excalibur Quest. -//= Converted to rAthena format from Fusion. +//===== Additional Comments: ================================= //= 2006/09/27: 1.0 Release and fully working. [$ephiroth] +//= 1.1 Optimized. [Euphy] //============================================================ prt_castle,80,170,4 script King of Prontera 108,{ - set @npcname$,"[King of Prontera]"; - - mes @npcname$; - mes "Hello can you help me?"; - next; - menu "Sure, what can I do?",L_Sure,"No sorry I'm busy",L_Quit; - -L_Sure: - mes @npcname$; - mes "Thank you."; - mes "Well, my daughter next to me is a little rowdy"; - mes "if you got her these items I'm sure she would calm down."; - mes "If you bring me these items I'll give you my crown or my sword"; - mes "Both are very special."; - next; - menu "Ok what do you need?",L_Req,"I have the items",L_Have,"Forget it",L_Quit; - -L_Req: - mes @npcname$; - mes "If you could get me:"; - mes "^00B6FF30 Chonchon doll^000000"; - mes "^D5A50050 Poring doll^000000"; - mes "^0080FF20 Yoyo doll^000000"; - mes "^CC66331 3carat diamond^000000"; - mes "^3131FF20 Illusion Flowers^000000"; - mes "^AA00AA20 Singing Flowers^000000"; - mes "I'll give you my crown."; - next; - mes @npcname$; - mes "If you could get me:"; - mes "^0000881 Angel Band^000000"; - mes "^4422FF1 Heaven Ring^000000"; - mes "^AA00AA1 Emperium^000000"; - mes "I'll give my sword."; - mes "Once you find those, come back to me."; - close; - -L_Have: - mes @npcname$; - mes "What item you want?"; - next; - menu "Crown",L_crown,"Sword",L_sword; - -L_crown: - if(countitem(742)<30) goto L_Error; - if(countitem(741)<50) goto L_Error1; - if(countitem(753)<20) goto L_Error2; - if(countitem(732)<1) goto L_Error3; - if(countitem(710)<20) goto L_Error4; - if(countitem(629)<20) goto L_Error5; - delitem 742,30; - delitem 741,50; - delitem 753,20; - delitem 732,1; - delitem 710,20; - delitem 629,20; - mes @npcname$; - mes "THANK YOU SOO MUCH!!"; - mes "This will surely calm her down."; - mes "Let me just take the items from you."; + mes "[King of Prontera]"; + mes "Hello, can you help me?"; next; - mes @npcname$; - mes "As I promised here is my crown."; - getitem 5007,1; + if(select("Sure, what can I do?:Sorry, I'm busy.")==2) { + mes "[King of Prontera]"; + mes "Ok, that's fine, I'm sure someone else will help."; + close; } + mes "[King of Prontera]"; + mes "Thank you. Well, my daughter next to me is a little rowdy..."; + mes "If you get her these items I'm sure she'll calm down."; + mes "I'll give you my crown or my sword as a reward."; next; - mes @npcname$; - mes "Well, I have to calm her down now."; - mes "Thanks again!"; - close; -L_sword: - if(countitem(2254)<1) goto L_NoAngel; - if(countitem(2282)<1) goto L_NoHeaven; - if(countitem(714)<1) goto L_NoEmp; - delitem 2254,1; - delitem 2282,1; - delitem 714,1; - mes @npcname$; - mes "THANK YOU SOO MUCH!!"; - mes "This will surely calm her down."; - mes "Let me just take the items from you."; - next; - mes @npcname$; - mes "As I promised here is my sword."; - getitem 1137,1; - next; - mes @npcname$; - mes "Well, I have to calm her down now."; - mes "Thanks again!"; - close; - -L_NoAngel: - mes @npcname$; - mes "Sorry but you must have at least one Angel Band."; - mes "Come back after you get ALL the items."; - close; - -L_NoHeaven: - mes @npcname$; - mes "Sorry but you must have at least one Heaven Ring."; - mes "Come back after you get ALL the items."; - close; - -L_NoEmp: - mes @npcname$; - mes "Sorry but you must have at least one Emperium."; - mes "Come back after you get ALL the items."; - close; - -L_Error: - mes @npcname$; - mes "Oh darn, you need 30 Chonchon Dolls."; - close; - -L_Error1: - mes @npcname$; - mes "Oh darn, you need 50 Poring dolls."; - close; - -L_Error2: - mes @npcname$; - mes "Oh darn, you need 20 Yoyo dolls."; - close; - -L_Error3: - mes @npcname$; - mes "Oh darn, you need one 3 Carat Diamond."; - close; - -L_Error4: - mes @npcname$; - mes "Oh darn, you need 20 Illusion Flowers."; - close; - -L_Error5: - mes @npcname$; - mes "Oh darn, you need 20 Singing Flowers."; - close; - -L_Quit: - mes @npcname$; - mes "Ok, that's fine, I'm sure someone else will help."; - close; + setarray .@Items1[0],5007,742,30,741,50,753,20,732,1,710,20,629,20; + setarray .@Items2[0],1137,2254,1,2282,1,714,1; + switch(select("What do you need?:I have the items!:Forget it.")) { + case 1: + for(set .@i,1; .@i<3; set .@i,.@i+1) { + mes "[King of Prontera]"; + mes "If you could get me:"; + for(set .@j,1; .@j,{,...} (0 to disable) + setarray .@Cost[0],0,5000; // Zeny requirements: , + mes "[Perchik]"; - if(BaseJob==Job_Novice || BaseLevel<50) { - mes "Sorry, I don't help newbies. Go kill more Porings."; - emotion e_sry; - close; - } - mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold."; - next; - menu "Tell me more...",-, "Sign my items, please",M_DO; - - mes "[Perchik]"; - mes "I can put your name on any slotless equipment or weapon."; - emotion e_ic; + mes "I can ^0055FFsign your name^000000 on almost any rare item you hold."; next; - mes "[Perchik]"; - mes "A week ago, my BOSS told me to send away newbies. I dunno why."; - next; - mes "[Perchik]"; - mes "For my work I accept ^0000803 Gift Box^000000es (gray one)"; - mes "plus ^FF00005000z^000000 per each refine of your item."; - next; - emotion e_cry; - mes "[Perchik]"; - mes "Alas, I have 12 hungry children"; - mes "and a very angry wife."; - next; - mes "[Perchik]"; - mes "Or it was... 12 angry children"; - mes "and a very hungry wife..."; - emotion e_hmm; - close; - -M_DO: + if(select("Tell me more...:Sign my items, please!")==1) { + mes "[Perchik]"; + mes "I can put your name on any slotless equipment or weapon."; + emotion e_ic; + next; + mes "[Perchik]"; + if (getarraysize(.@Item) || getarraysize(.@Cost)) { + mes "For my work I accept:"; + if (getarraysize(.@Item)) + for(set .@i,0; .@i4000 && @slot0<5000) { + close; } + if (.@slot[0]>4000 && .@slot[0]<5000) { mes "A card? Here?!"; mes "As I said before, I don't sign items with cards."; emotion e_hmm; - goto M_MENU; - } - if(getiteminfo(@id,10)) { - mes "Sorry. I don't sign slotted items."; + close; } + if (getiteminfo(.@id,10)) { + mes "Sorry, I don't sign slotted items."; emotion e_sry; - goto M_MENU; - } + close; } getinventorylist; - for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){ - if(@inventorylist_expire[.@i] != 0) { + for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) + if (@inventorylist_expire[.@i] != 0) { mes "Sorry, I don't sign rental items!"; emotion e_hmm; - goto M_MENU; - } - } - - if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time."; - mes "Give me ^0000803 gray Gift Boxes^000000"; - if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000."; + close; } + set .@price, .@Cost[0]+(.@Cost[1]*.@ref); + if (getarraysize(.@Item) || .@price) { + mes "I will need:"; + if (getarraysize(.@Item)) + for(set .@i,0; .@i=(5000*@ref) && countitem(644)>=3) { - delitem 644,3; - set Zeny,Zeny-(5000*@ref); - goto L_MAKE; - } - mes "[Perchik]"; - mes "I don't work for 'thanks'."; - emotion e_sry; - close; - -L_MAKE: - if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) { + if(select("Ok!:Leave")==2) { mes "[Perchik]"; - mes "Where is... "+getitemname(@id)+"?"; + mes "See you..."; + emotion e_yawn; + close; } + mes "[Perchik]"; + if (Zeny < .@price || .@nr) { + mes "I don't work for 'thanks'."; + emotion e_sry; + close; } + if (!countitem2(.@id,1,.@ref,0,.@slot[0],.@slot[1],.@slot[2],.@slot[3])) { + mes "Where is "+getitemname(@id)+"...?"; npctalk "You're a snoozy cheater!"; logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id); emotion e_wah; - close; - } - delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3; - - mes "[Perchik]"; + close; } + if (.@price) set Zeny, Zeny-.@price; + if (getarraysize(.@Item)) + for(set .@i,0; .@i>16)&0xffff; - close; - -M_END: - mes "[Perchik]"; - mes "See you..."; - emotion e_yawn; + getitem2 .@id,1,1,.@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff; + equip .@id; close; } diff --git a/npc/custom/quests/valhallen.txt b/npc/custom/quests/valhallen.txt index e976640cc..19480b105 100644 --- a/npc/custom/quests/valhallen.txt +++ b/npc/custom/quests/valhallen.txt @@ -1,197 +1,68 @@ //===== rAthena Script ======================================= -//= Valhallen items Quests NPC +//= Valhallen Items Quests NPC //===== By: ================================================== //= Avaji //===== Current Version: ===================================== -//= 1.0 +//= 1.1 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= -//= All-in-one: Mjollnir,Sleipnir,Brisingammen,Gleipnir,Megingjard -//===== Additional Comments: ================================= +//= All-in-one: Mjolnir,Sleipnir,Brisingamen,Gleipnir,Megingjard //= Custom quest, ingredients based on official RO FAQ +//===== Additional Comments: ================================= +//= 1.1 Optimized. [Euphy] //============================================================ prontera,147,171,5 script Lenneth 811,{ mes "[Lenneth]"; mes "I come from Valhalla to aid you."; - mes "I can transmute for you many of the Valhallen items."; - mes "Although they require many rare elements to make."; - next; - mes "[Lenneth]"; - mes "What would you like?"; - next; - menu "Mjollnir",-,"Sleipnir",L_SLE,"Brisingammen",L_BRI,"Gleipnir",L_GLE,"Megingjard",L_MEG; - - mes "[Lenneth]"; - mes "^3355FFMjollnir^000000 is the mighty Hammer of Thor."; - mes "The items I need to transmute 2 ^3355FFSpanners^000000 into ^3355FFMjollnir^000000 are as follows:"; - mes "20 ^3355FFOridecon^000000 5 ^3355FFElunium^000000 and 40 ^3355FFGold^000000"; - mes "I also need the following essences:"; - mes "2 ^3355FFThor's Guntlet^000000"; - mes "4 ^3355FFIron Maiden^000000"; - mes "5 ^3355FFWrath of Valkyrie^000000"; - mes "5 ^3355FFBreath of Soul^000000"; - mes "5 ^3355FFOmen of tempest^000000"; - next; - mes "[Lenneth]"; - mes "Do you desire ^3355FFMjollnir^000000?"; - next; - menu "Yes",-,"No",L_OUT; - - if(countitem(984) < 20 || countitem(985) < 5 || countitem(969) < 40 || countitem(1531) < 2 || countitem(7089) < 5 - || countitem(7074) < 2 || countitem(7075) < 4 || countitem(7078) < 5 || countitem(7087) < 5) goto L_NOTENOUGH; - - delitem 984,20; - delitem 985,5; - delitem 969,40; - delitem 1531,2; - delitem 7074,2; - delitem 7075,4; - delitem 7078,5; - delitem 7087,5; - delitem 7089,5; - - getitem 1530,1; - - mes "[Lenneth]"; - mes "Here is your ^3355FFMjollnir^000000, may it serve you well."; - close; -L_SLE: - - mes "[Lenneth]"; - mes "^3355FFSleipnir^000000 are boots made after Odin's War Horse."; - mes "To be able to transmute 2 ^3355FFBoots^000000 into ^3355FFSleipnir^000000 I will need:"; - mes "1 ^3355FFOridecon^000000 10 ^3355FFElunium^000000 and 20 ^3355FFGold^000000"; - mes "I also need the following essences:"; - mes "3 ^3355FFWheel of the Unknown^000000"; - mes "5 ^3355FFFeather of Angel^000000"; - mes "3 ^3355FFSprirt of Fish^000000"; - mes "3 ^3355FFEmblem of the Sun God^000000"; + mes "I can transmute for you many of the Valhallen items,"; + mes "although they require many rare elements to make."; next; - mes "[Lenneth]"; - mes "Do you desire ^3355FFSleipnir^000000?"; + switch(select("Mjolnir:Sleipnir:Brisingamen:Gleipnir:Megingjard")) { + case 1: + mes "[Lenneth]"; + mes "^3355FFMjolnir^000000 is the mighty Hammer of Thor."; + setarray .@Items[0],1530,1531,2,984,20,985,5,969,40,7074,2,7075,4,7078,5,7087,5,7089,5; + break; + case 2: + mes "[Lenneth]"; + mes "^3355FFSleipnir^000000 are boots made after Odin's War Horse."; + setarray .@Items[0],2410,2406,2,984,1,969,20,985,10,7076,3,7079,5,7083,3,7086,3; + break; + case 3: + mes "[Lenneth]"; + mes "^3355FFBrisingammen^000000 is the magical Necklace of Freyja, goddess of Beauty."; + setarray .@Items[0],2630,2603,1,726,2,722,3,727,10,723,5,969,20,7073,4,7077,4,7088,3,7090,3,7092,3; + break; + case 4: + mes "[Lenneth]"; + mes "The ^3355FFGleipnir^000000 is a light yet strong rope required to make ^3355FFMegingjard^000000"; + setarray .@Items[0],7058,7080,4,7081,5,7082,4,7084,3,7085,3; + break; + case 5: + mes "[Lenneth]"; + mes "The ^3355FFMegingjard^000000 is the powerful Belt of Thor."; + setarray .@Items[0],2629,7058,1,2627,1,969,10,726,10,984,5; + break; } + mes "^FF0000The items I need are as follows:^000000"; + for(set .@i,1; .@i Date: Sat, 16 Jun 2012 22:51:54 +0000 Subject: > Reorganization: * Cleaned up "Custom Scripts" configuration file (scripts_custom.conf) * Moved "Event King Items" scripts from events to quests (custom\quests\kings_items.txt) * Moved "p_track" from events to etc (custom\etc\p_track.txt) * Renamed "lvl99_quest" to "jewel_case" for easier identification (custom\quests\jewel_case.txt) * Deleted "2006_dogs_year" event script (pointless and incomplete) > Script changes: * Cleaned/standardized "Valentine Event Script" (events\valentinesday.txt) * Cleaned "Slotted Sunglasses Quest" (custom\quests\sunglasses.txt) * Optimized "Lord Kaho's Horns Quest" (custom\quests\kahohorn.txt) * Cleaned and optimized "Balmung & Lord Kaho's Horns Quest" (custom\quests\kaho_balmung.txt) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16313 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/etc/p_track.txt | 67 +++++++++++++++ npc/custom/events/2006_dogs_year.txt | 97 --------------------- npc/custom/events/kings_items.txt | 79 ----------------- npc/custom/events/p_track.txt | 67 --------------- npc/custom/events/valentinesdayexp.txt | 2 +- npc/custom/quests/jewel_case.txt | 66 ++++++++++++++ npc/custom/quests/kaho_balmung.txt | 99 +++++++-------------- npc/custom/quests/kahohorn.txt | 119 ++++++++++---------------- npc/custom/quests/kings_items.txt | 79 +++++++++++++++++ npc/custom/quests/lvl99_quest.txt | 66 -------------- npc/custom/quests/sunglasses.txt | 151 +++++++++++++-------------------- npc/events/valentinesday.txt | 104 ++++++++++------------- npc/scripts_custom.conf | 96 +++++++++------------ 13 files changed, 437 insertions(+), 655 deletions(-) create mode 100644 npc/custom/etc/p_track.txt delete mode 100644 npc/custom/events/2006_dogs_year.txt delete mode 100644 npc/custom/events/kings_items.txt delete mode 100644 npc/custom/events/p_track.txt create mode 100644 npc/custom/quests/jewel_case.txt create mode 100644 npc/custom/quests/kings_items.txt delete mode 100644 npc/custom/quests/lvl99_quest.txt (limited to 'npc/custom/etc') diff --git a/npc/custom/etc/p_track.txt b/npc/custom/etc/p_track.txt new file mode 100644 index 000000000..87794ac28 --- /dev/null +++ b/npc/custom/etc/p_track.txt @@ -0,0 +1,67 @@ +//===== rAthena Script ======================================= +//= Poring Track Main NPCs +//===== By: ================================================== +//= erKURITA +//===== Current Version: ===================================== +//= 1.3 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Poring Track core NPCs and warpers. +//===== Additional Comments: ================================= +//= 1.2 Removed Duplicates [Silent] +//= 1.3 Merged and cleaned. [Euphy] +//============================================================ + +hugel,58,72,5 script Yan#track1 86,{ + callfunc "P_TrackEnt","[Yan]","p_track01"; + end; +} +hugel,62,68,1 script Yalmire#track1 86,{ + callfunc "P_TrackEnt","[Yalmire]","p_track02"; + end; +} + +function script P_TrackEnt { + mes getarg(0); + mes "Hi "+strcharinfo(0)+", welcome to the Poring Track!"; + next; + switch(select("Information:I want to try it!:Not today.")) { + case 1: + mes getarg(0); + mes "Well... it's quite fun, that's all I can say. Try it!"; + close; + case 2: + mes getarg(0); + mes "The entrance fee is 500z. would you like to go in?"; + next; + if(select("Yes, please!:No thanks.")==2) { + mes getarg(0); + mes "You're missing out!"; + close; } + mes getarg(0); + if (Zeny < 500) { + mes "You can't enter without paying."; close; } + mes "Here we go!"; + close2; + set Zeny, Zeny-500; + warp getarg(1),75,41; + end; + case 3: + mes getarg(0); + mes "See you later!"; + close; + } +} + +p_track01,76,36,2 script Yan#track2 86,{ end; } +p_track01,41,57,5 script Lady#track1::P_track 845,{ end; } +p_track01,67,34,6 script Erudite::P_Spectator1 107,{ end; } +p_track01,44,49,3 script Edward 881,{ end; } +p_track01,27,47,3 script Yuri#P_track 853,{ end; } + +p_track02,76,36,2 script Yalmire#track2 86,{ end; } +p_track02,30,45,3 script Nagya 755,{ end; } +p_track02,42,49,3 script Asgahrd 733,{ end; } +p_track02,67,33,1 script Blacksmith#track1 726,{ end; } +p_track02,41,57,5 duplicate(P_track) Lady#track2 845 \ No newline at end of file diff --git a/npc/custom/events/2006_dogs_year.txt b/npc/custom/events/2006_dogs_year.txt deleted file mode 100644 index 494fbb3bc..000000000 --- a/npc/custom/events/2006_dogs_year.txt +++ /dev/null @@ -1,97 +0,0 @@ -//===== rAthena Script ======================================= -//= Eastern New Year 2006 The Year Of The Fire Dog -//===== By: ================================================== -//= Lupus (1.0) -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN; 5000+ (with 'disguise' command) -//===== Description: ========================================= -//= Custom event: For 28-29 January -//===== Additional Comments: ================================= -//= 1.0 Tested, fully working.[Lupus] -//= Add some national info in English if you can. -//= (Mine was in Russian, and it's damn hard to translate 8) -//= 1.1 Commented out monster spawn as it is a custom mob and [L0ne_W0lf] -//= not in the mob database. -//============================================================ - -prontera,149,167,6 script Maria 81,{ - mes "[Maria]"; - //month - if((gettime(6)==1 && (gettime(5)==28 || gettime(5)==29))==0) { - mes "Happy New Year Of The Fire Dog! Woof!"; - close; - } - - mes "Happy New Year of The Fire Dog!"; - if(rand(2))mes "By the way, 'Dogs' fit the most to the ones, born in years of Horse, Tiger and Rabbit."; - next; - menu "Tell me about Japanese traditions",-, - "Tell me about Chinese New Year",M_NGCH, - "Tell me about Korean New Year",M_NGCO, - "I need a doggy costume!",M_PRIZE, - "Happy New Year to you.",LEnd; - - mes "[Maria]"; - mes "Japan..."; - mes "Put here some notes in English about their HNY."; - next; - mes "[Maria]"; - mes "Put here some notes in English about their HNY."; - close; - -M_NGCH: - mes "[Maria]"; - mes "China..."; - mes "Put here some notes in English about their HNY."; - next; - mes "[Maria]"; - mes "Put here some notes in English about their HNY."; - close; - -M_NGCO: - mes "[Maria]"; - mes "Korea..."; - mes "Put here some notes in English about their HNY."; - next; - mes "[Maria]"; - mes "Put here some notes in English about their HNY."; - close; - -M_PRIZE: - mes "[Maria]"; - if(countitem(12132)>9) { - mes "You should use all of your old costumes first!"; - close; - } - mes "Some buddhistic books tell us legends about humans to dogs reincarnation... Buy ^FF0000this magic doggie costume^000000 for just ^0000FF999 Zeny^000000!"; - mes "And prove old legends yourself!"; - next; - menu "I'll buy one.",-,"No, thank you.",LEnd; - - mes "[Maria]"; - if(Zeny<999) goto NoZ; - set Zeny,Zeny-999; - getitem 12132,1; - mes "Here you go. Its form will show true power of your spirit."; - emotion 15; - close; - NoZ: - mes "Oh dear, you lack of zeny. I have 7 puppies to feed, you know..."; - emotion 17; - close; - LEnd: - mes "[Maria]"; - mes "Happy New Year of the Fire Me!!! Woof-woof!"; - emotion rand(19,20); - close; - -OnInit: - //Magic Doggie Costum - setitemscript 12132,"{ misceffect 215; if(BaseLevel>97){disguise 1022;end;}if(BaseLevel>90){disguise 1296;end;}if(BaseLevel>80){disguise 1106;end;}if(BaseLevel>50){disguise 1013;end;}if(BaseLevel>40){disguise 1135;end;}disguise 1107;}"; - end; -} - -// Requires custom monster. -//prontera,0,0,0,0 monster Fire Dog 1987,50,3600000,1800000,0 diff --git a/npc/custom/events/kings_items.txt b/npc/custom/events/kings_items.txt deleted file mode 100644 index 8140827c1..000000000 --- a/npc/custom/events/kings_items.txt +++ /dev/null @@ -1,79 +0,0 @@ -//===== rAthena Script ======================================= -//= Event King Items -//===== By: ================================================== -//= $ephiroth -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Grand Circlet Quest combined with Excalibur Quest. -//===== Additional Comments: ================================= -//= 2006/09/27: 1.0 Release and fully working. [$ephiroth] -//= 1.1 Optimized. [Euphy] -//============================================================ - -prt_castle,80,170,4 script King of Prontera 108,{ - mes "[King of Prontera]"; - mes "Hello, can you help me?"; - next; - if(select("Sure, what can I do?:Sorry, I'm busy.")==2) { - mes "[King of Prontera]"; - mes "Ok, that's fine, I'm sure someone else will help."; - close; } - mes "[King of Prontera]"; - mes "Thank you. Well, my daughter next to me is a little rowdy..."; - mes "If you get her these items I'm sure she'll calm down."; - mes "I'll give you my crown or my sword as a reward."; - next; - setarray .@Items1[0],5007,742,30,741,50,753,20,732,1,710,20,629,20; - setarray .@Items2[0],1137,2254,1,2282,1,714,1; - switch(select("What do you need?:I have the items!:Forget it.")) { - case 1: - for(set .@i,1; .@i<3; set .@i,.@i+1) { - mes "[King of Prontera]"; - mes "If you could get me:"; - for(set .@j,1; .@j 5) goto L_ERR; - set @needmon,@flag_num*5000; - if (Zeny < @needmon) goto L_NOTENO; - set Zeny,Zeny - @needmon; - getitem 558,@flag_num; + input .@i; + if (.@i <= 0) close; mes "[Stephen]"; + if (.@i > 5) { + mes "I'm sorry, but I can't give you that many."; + close; } + if (Zeny < .@i*5000) { + mes "I'm sorry, but it seems you can't afford to buy these off me."; + close; } + set Zeny, Zeny - .@i*5000; + getitem 558,.@i; mes "There you go!"; mes "You can give that to someone as a gift, or enjoy it yourself!"; - mes "Mmm....sweet chocolate..."; + mes "Mmm... sweet chocolate..."; mes "Visit me anytime...!"; close; - -L_ERR: - mes "[Stephen]"; - mes "I'm sorry but I can't give you that many."; -L_NONE: - close; - -L_NOTENO: - mes "[Stephen]"; - mes "I'm sorry but it seems you can't afford to buy these off me."; - close; } // Jainie -- Gives information about Valentine Event ------------------------ @@ -97,44 +86,43 @@ prt_castle,54,34,4 script Carl Orleans 47,{ mes "[Carl Orleans]"; mes "Yes?"; next; - menu "I want some hand made chocolate...",-,"I'm lost, sorry to bother you.",M_WAT; - + if(select("I want some hand made chocolate...:I'm lost, sorry to bother you.")==2) { + mes "[Carl Orleans]"; + mes "Oh... well, if you want me to make some of my special Hand Made Chocolate...."; + mes "You will need to give me at least ^0000FF 3 Chocolates^000000."; + next; + mes "[Carl Orleans]"; + mes "That's right, only ^0000FF 3 Chocolates^000000"; + mes "Bring them to me and you'll get what you came for."; + next; + mes "[Carl Orleans]"; + mes "See You."; + close; } mes "[Carl Orleans]"; mes "Well, I just might be able to fulfill your needs..."; next; - if (countitem(558) >=3) goto L_ENO; - mes "I'm sorry you do not have enough Chocolate Bars to do this"; - close; - -L_ENO: - delitem 558,3; mes "[Carl Orleans]"; - mes "You got 3 pieces of pure chocolate I see."; + if (countitem(558) < 3) { + mes "I'm sorry, you don't have enough Chocolate Bars to do this."; + close; } + delitem 558,3; + mes "You got 3 pieces of pure chocolate, I see."; mes "Give them to me..."; next; + mes "[Carl Orleans]"; mes "Ok, now I will only create my special hand made chocolates if you promise to use it wisely."; next; + mes "[Carl Orleans]"; mes "....Hmmmmmm....."; mes "Well..."; next; - mes "Here."; + mes "[Carl Orleans]"; getitem 559,1; + mes "Here."; mes "I hope you give it to someone special, because its a special chocolate."; mes "As you know... only I can create this."; next; - mes "Enjoy."; - close; - -M_WAT: - mes "[Carl Orleans]"; - mes "Oh..well, if you want me to make some of my special Hand Made Chocolate...."; - mes "You will need to give me at least ^0000FF 3 Chocolates^000000."; - next; mes "[Carl Orleans]"; - mes "That's right, only ^0000FF 3 Chocolates^000000"; - mes "Bring them to me and you'll get what you came for."; - next; - mes "[Carl Orleans]"; - mes "See You."; + mes "Enjoy."; close; -} +} \ No newline at end of file diff --git a/npc/scripts_custom.conf b/npc/scripts_custom.conf index 0dea7ca90..2fbd6899b 100644 --- a/npc/scripts_custom.conf +++ b/npc/scripts_custom.conf @@ -40,35 +40,18 @@ //npc: npc/custom/etc/rpsroulette.txt // -- Black Jack //npc: npc/custom/etc/blackjack.txt -// -- Airplane script (unofficial) -//npc: npc/custom/etc/airplane.txt // -- Hire ninja squads to assassinate an enemy! //npc: npc/custom/etc/shifty_assassin.txt // -- Train your monsters to fight against other players' monsters //npc: npc/custom/etc/monster_arena.txt // -- Raceway mini-game //npc: npc/custom/etc/morroc_raceway.txt -// -- Dev NPCs (NPCs named after devs...) -//npc: npc/custom/etc/devnpc.txt // -- Unofficial poetry //npc: npc/custom/etc/wandering_poets.txt // -- Random change of Drop/Exp rates 1x ~ 1.5x every 6 hours on your server -//npc: npc/custom/floating_rates.txt -// -- Disable shops in the Prontera streets and open a special market place. -//npc: npc/custom/market.txt - -// -------------------------------------------------------------- -// BattleGround (please read conf/battle/battleground.conf before -// uncommenting battleground scripts). -// -------------------------------------------------------------- -//npc: npc/custom/battleground/bg_common.txt -//npc: npc/custom/battleground/bg_tierra_01.txt -//npc: npc/custom/battleground/bg_tierra_02.txt -//npc: npc/custom/battleground/bg_flavius_01.txt -//npc: npc/custom/battleground/bg_flavius_02.txt -//npc: npc/custom/battleground/bg_kvm01.txt -//npc: npc/custom/battleground/bg_kvm02.txt -//npc: npc/custom/battleground/bg_kvm03.txt +//npc: npc/custom/etc/floating_rates.txt +// -- Custom Poring Track files +//npc: npc/custom/etc/p_track.txt // ----------------------- Quest Scripts ----------------------- // -- Treasure Hunters Guild Quests (40 Quests + Special Guild Shop) @@ -77,50 +60,55 @@ //npc: npc/custom/quests/thq/THQS_QuestNPC.txt //npc: npc/custom/quests/thq/THQS_Quests.txt //npc: npc/custom/quests/thq/THQS_TTShop.txt -// -- Godly Equipments Quests -//npc: npc/custom/quests/valhallen.txt -// -- Misc +// -- Equipment Quests //npc: npc/custom/quests/magicalhatquest.txt -//npc: npc/custom/quests/fashion.txt //npc: npc/custom/quests/elvenear.txt +//npc: npc/custom/quests/fashion.txt //npc: npc/custom/quests/ironcane.txt //npc: npc/custom/quests/sunglasses.txt -//npc: npc/custom/quests/berzebub.txt -// -- Bandit Beard headgear quest (very long and safe quest) //npc: npc/custom/quests/bandit_beard.txt -// -- Dead Branch (and Bloody Branch) quest (safe to use) -//npc: npc/custom/quests/dead_branch.txt -// -- Removed Hats with official quests. Only 6 hats are left //npc: npc/custom/quests/event_6_new_hats.txt -// -- Both Lord Kaho (GM Item), but different and quest.txt has Balmung (GM Item) too -// -- Warning! It might break your server balance. -//npc: npc/custom/quests/kaho_balmung.txt -//npc: npc/custom/quests/kahohorn.txt -// -- Nice Custom thanatos Tower Statues Quest -//npc: npc/custom/quests/tha_statues.txt -// -- A quest for Jewel Case for 99 Level Players of any 2nd Class -//npc: npc/custom/quests/lvl99_quest.txt -// -- Quest for: Bird Nest,Lion Mask,Skeleton Manteau,Fashion Hip Sack,Sales Banner //npc: npc/custom/quests/may_hats.txt -// -- Extracted custom quests from the official Umbalian Quests (better, don't use) -//npc: npc/custom/quests/sphinx_mask.txt -//npc: npc/custom/quests/umbalian_language.txt -// -- Custom Kiel Mansion Dungeon Quest -//npc: npc/custom/quests/kiel_quest.txt -// -- Custom Bongun Accessory/Bongun taming item quest +//npc: npc/custom/quests/kings_items.txt +// -- Misc Item Quests +//npc: npc/custom/quests/dead_branch.txt +//npc: npc/custom/quests/berzebub.txt +//npc: npc/custom/quests/jewel_case.txt //npc: npc/custom/quests/bongunsword.txt -// -- Custom Baphomet Jr. Taming item quest. //npc: npc/custom/quests/bookofthedevil.txt -// -- A custom event for 3 holidays: X-Mas, Karachun and New Year -// -- Should be activated between 8 December and 8 January +// -- Godly Equipment Quests (be careful!) +//npc: npc/custom/quests/valhallen.txt +//npc: npc/custom/quests/kaho_balmung.txt +//npc: npc/custom/quests/kahohorn.txt + +// ----------------------- Event Scripts ----------------------- +// -- X-Mas, Karachun, and New Year (8 Dec. ~ 8 Jan.) //npc: npc/custom/events/xmas_rings_event.txt -// -- Grand Circlet Quest combined with Excalibur Quest -//npc: npc/custom/events/kings_items.txt -// -- Custom Halloween Event +// -- Custom Valentine's Day event +//npc: npc/custom/events/valentinesdayexp.txt +// -- Custom Halloween scripts //npc: npc/custom/events/hallow06.txt //npc: npc/custom/events/uneasy_cemetery.txt //npc: npc/custom/events/draculax.txt -//npc: npc/custom/events/2006_dogs_year.txt -//npc: npc/custom/events/valentinesdayexp.txt -// -- Poring track files -//npc: npc/custom/events/p_track.txt +// -- Hyegun event +//npc: npc/custom/events/hyegun_event.txt + +// ----------------------- Unofficial Scripts ----------------------- +// -- Unofficial Airplane script +//npc: npc/custom/etc/airplane.txt +// -- Thanatos Tower Statues Quest +//npc: npc/custom/quests/tha_statues.txt +// -- Custom quests from official Umbalian Quests +//npc: npc/custom/quests/sphinx_mask.txt +//npc: npc/custom/quests/umbalian_language.txt +// -- Custom Kiel Mansion Dungeon Quest +//npc: npc/custom/quests/kiel_quest.txt +// -- Unofficial Battlegrounds +//npc: npc/custom/battleground/bg_common.txt +//npc: npc/custom/battleground/bg_tierra_01.txt +//npc: npc/custom/battleground/bg_tierra_02.txt +//npc: npc/custom/battleground/bg_flavius_01.txt +//npc: npc/custom/battleground/bg_flavius_02.txt +//npc: npc/custom/battleground/bg_kvm01.txt +//npc: npc/custom/battleground/bg_kvm02.txt +//npc: npc/custom/battleground/bg_kvm03.txt \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 3911ae68834246aa93b3da90d467cab95da71f10 Mon Sep 17 00:00:00 2001 From: euphyy Date: Thu, 12 Jul 2012 00:44:42 +0000 Subject: * Optimization of Hugel's "Monster Race" script, 4000+ lines removed (other\monster_race.txt) * Deleted "Wandering Poets" custom script (custom\etc\wandering_poets.txt) * Deleted "Iron Cane" custom quest (custom\quests\ironcane.txt) * Deleted custom Poring Track script, what did this even do...? (custom\etc\p_track.txt) * Moved custom wedding script into /etc/ git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16405 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/etc/marriage.txt | 937 +++ npc/custom/etc/p_track.txt | 67 - npc/custom/etc/wandering_poets.txt | 712 -- npc/custom/marriage.txt | 937 --- npc/custom/quests/ironcane.txt | 49 - npc/pre-re/other/monster_race.txt | 12398 ++++++++++++----------------------- npc/re/other/monster_race.txt | 12398 ++++++++++++----------------------- npc/scripts_custom.conf | 9 +- 8 files changed, 9209 insertions(+), 18298 deletions(-) create mode 100644 npc/custom/etc/marriage.txt delete mode 100644 npc/custom/etc/p_track.txt delete mode 100644 npc/custom/etc/wandering_poets.txt delete mode 100644 npc/custom/marriage.txt delete mode 100644 npc/custom/quests/ironcane.txt (limited to 'npc/custom/etc') diff --git a/npc/custom/etc/marriage.txt b/npc/custom/etc/marriage.txt new file mode 100644 index 000000000..0f21c46e7 --- /dev/null +++ b/npc/custom/etc/marriage.txt @@ -0,0 +1,937 @@ +//===== rAthena Script ======================================= +//= Wedding Script +//===== By: ================================================== +//= AppleGirl, Evera +//===== Current Version: ===================================== +//= 2.9 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Fully working wedding script for all kind of weddings +//===== Additional Comments: ================================= +// 1.1 Lesbian and Gay Weddings [ShadowLady] +// 2.0 Complete Rewrite [Skotlex] +// 2.9 Somewhat iRO-official NPC names [DracoRPG] +//============================================================ + +// Configuration Variables: +- script marriage_init -1,{ +OnInit: + set $@wed_allow, 0; //If 1, allows same sex marriages. + set $@wed_veil, 0; //Set to 0 to disable veil check on the bride + +//Id of the item that is traded for the wedding ring (use 0 to disable): + set $@wed_ring, 2613; + + set $@wed_groom_reg, 1300000; //Registration cost for the Groom + set $@wed_bride_reg, 1200000; //Registration cost for the Bride + set $@wed_divorce_fee, 50000; //Divorcing fee + set $@wedding_effect, 1; //On who to display the FX: 0: Priest, 1: Bride, 2: Groom + end; +} + +// Other Configuration: +// Line 61,62: Priest location, sprite and name. +// Line 437,438: Registration location, sprite and name. +// Line 813,814: Divorcing location, sprite and name. + +// Variable Notes: +// $wed_progress Signals that there is a wedding in progress +// $wed_groom$ - Groom's name storage +// $wed_groom_sex - Groom's gender (for same marriage ring giving) +// $wed_bride$ - Bride's name storage +// $wed_bride_sex - Groom's gender (for same marriage ring giving) +// $wed_groom_progress - Notes the progress on the groom's part +// $wed_bride_progress - Notes the progress on the bride's part +// 0: Not registered. 1: Registered. 2: Accepted the partner. 3: Ready to +// Retrieve the ring. 4: Retrieved the ring. 5: All set to be wed. 6: Already +// a couple. +// ceremony. +// $wedding_effect_id - When wedding_effect is enabled, sets the ID of the +// player to show the effect on. +// $divorce_progress signals that there is a divorce in progress +// $@divorcer$ name of the person who requested divorce +// $@divorcee id of the partner, who has to accept the divorce and pay. + +//The Priest - official iRO sprite & in-dialog name (on-map name not confirmed) +prt_church,100,123,4 script Vomars 60,{ + set @name$,"Vomars"; + + function SF_wed_end; + function SF_equip_check; + function SF_Groom; + function SF_Bride; + function SF_AcceptGroom; + function SF_AcceptBride; + function SF_RetrieveRingM; + function SF_RetrieveRingF; + function SF_RingsAccepted; + function SF_StartCeremony; + + if (getpartnerid() > 0) { + mes "["+@name$+"]"; + mes "You have my blessings, have a wonderful married life."; + close; + } + if ($wed_progress == 0) { // Official iRO dialog + mes "["+@name$+"]"; + mes "You must apply for"; + mes "marriage with Happy Marry"; + mes "before you can get married."; + mes "Happy Marry will let you know"; + mes "what else you'll need to do"; + mes "to prepare for marriage"; + close; + } // End official iRO dialog + + if (strcharinfo(0) == $wed_groom$) { + SF_Groom(); + end; + } + if (strcharinfo(0) == $wed_bride$) { + SF_Bride(); + end; + } + mes "["+@name$+"]"; + if ($wed_groom_progress == 0 || $wed_bride_progress == 0) { + mes "There is a wedding being planned. I would appreciate it if you would not interrupt me."; + close; + } + if ($wed_groom_progress == 6) { + mes "I am wedding "+$wed_groom$+" and "+$wed_bride$+", and it's already too late to object. Please let me continue."; + close; + } + mes "I am going to wed "+$wed_groom$+" and "+$wed_bride$+", do you have an objection to it?"; + if (select("Sorry, please go on.","Yes, I actually do.") == 2) { + //Abort + npctalk "Ladies and gentlemen, "+strcharinfo(0)+" has an objection to the wedding!"; + SF_wed_end(); + mes "Why should they not be wed?"; + input $@msg$; + npctalk strcharinfo(0)+"'s objection is: "+$@msg$; + emotion e_sob; + mes "I see..."; + } else + mes "Very well, go sit and enjoy the ceremony."; + close; + +function SF_Groom { + if ($wed_bride_progress == 0) { + mes "["+@name$+"]"; + mes "Looks like your bride has yet to arrive and register."; + close; + } + if (SF_equip_check() == 0) + close; + + switch($wed_groom_progress) { + case 1: + SF_AcceptBride(); + break; + case 2: + mes "["+@name$+"]"; + mes "I am waiting for your partner to accept you to start the ceremony."; + close; + case 3: + SF_RetrieveRingM(); + break; + case 4: + mes "["+@name$+"]"; + mes "Your partner's wedding ring hasn't been retrieved yet. The ceremony will start as soon as you both have claimed your rings."; + close; + case 5: + mes "["+@name$+"]"; + SF_StartCeremony(); + break; + default: + mes "["+@name$+"]"; + mes "Please don't interrupt me now."; + close; + } +} + +function SF_Bride { + if ($wed_groom_progress == 0) { + mes "["+@name$+"]"; + mes "Looks like your groom has yet to arrive and register."; + close; + } + + if (SF_equip_check() == 0) + close; + + switch ($wed_bride_progress) { + case 1: + SF_AcceptGroom(); + break; + case 2: + mes "["+@name$+"]"; + mes "I am waiting for your partner to accept you to start the ceremony."; + close; + case 3: + SF_RetrieveRingF(); + break; + case 4: + mes "["+@name$+"]"; + mes "Your partner's wedding ring hasn't been retrieved yet. The ceremony will start as soon as you both have claimed your rings."; + close; + case 5: + mes "["+@name$+"]"; + SF_StartCeremony(); + break; + default: + mes "["+@name$+"]"; + mes "Please don't interrupt me now."; + close; + } +} + +function SF_AcceptGroom { + mes "["+@name$+"]"; + mes $wed_bride$+", "+$wed_groom$+" has requested to be your husband for the rest of your life. Do you accept?"; + next; + switch(select("I need time to think about it.","No, I don't!","Yes, I do!")) { + case 1: + mes "["+@name$+"]"; + mes "You what!?"; + mes "err.. *cough* *cough* very well... come back after you've made up your mind."; + emotion e_ag; + close; + case 2: + mes "["+@name$+"]"; + mes "!!"; + mes "Ah... err... ehm... okay. You two seem to have some differences to settle first."; + close2; + emotion e_omg; + npctalk "Ladies and gentlemen, "+$wed_bride$+" has rejected to marry "+$wed_groom$+"!"; + SF_wed_end(); + break; + case 3: + set $wed_bride_progress,2; + if ($wed_groom_progress == 2) { + SF_RingsAccepted(); + break; + } + emotion e_ok; + mes "["+@name$+"]"; + mes "After your groom approves, you will be given your rings, the ceremony will begin and you will be officially married."; + close; + } +} + +function SF_AcceptBride { + mes "["+@name$+"]"; + mes $wed_groom$+", "+$wed_bride$+" has requested to be your wife for the rest of your life. Do you accept?"; + next; + switch(select("I need time to think about it.","No, I don't!","Yes, I do!")) { + case 1: + mes "["+@name$+"]"; + mes "You what!?"; + mes "err.. *cough* *cough* very well... come back after you've made up your mind."; + emotion e_ag; + close; + case 2: + mes "["+@name$+"]"; + mes "!!"; + mes "Ah... err... ehm... okay. You two seem to have some differences to settle first."; + emotion e_omg; + close2; + npctalk "Ladies and gentlemen, "+$wed_groom$+" has rejected to marry "+$wed_bride$+"!"; + SF_wed_end(); + break; + case 3: + set $wed_groom_progress,2; + if ($wed_bride_progress == 2) { + SF_RingsAccepted(); + break; + } + emotion e_ok; + mes "["+@name$+"]"; + mes "After your bride approves, you will be given your rings, the ceremony will begin and you will be officially married."; + close; + } +} + +function SF_RingsAccepted { + mes "["+@name$+"]"; + mes "Now that you both have accepted, the wedding will begin. Please come forth, you and your partner, to retrieve your rings."; + set $wed_bride_progress,3; + set $wed_groom_progress,3; + announce $wed_groom$+" and "+$wed_bride$+"'s wedding ceremony will be held at the church!",8; + close2; + emotion e_lv; + npctalk "May the groom and bride please step forward and retrieve their rings?"; +} + +function SF_RetrieveRingM { + mes "["+@name$+"]"; + if ($@wed_ring && countitem($@wed_ring) < 1) { + mes "What happened to your "+getitemname($@wed_ring)+"? You didn't lose it... did you? We need it to continue with the ceremony!"; + close; + } + if ($wed_bride_sex) + set @item, 2634; //Groom's wedding ring + else + set @item, 2635; //Bride's wedding ring + if (getnameditem(@item,$wed_groom$) == 0) { + mes "You don't seem to have enough space to carry the ring... go free up some space and come back to reclaim your partner's ring."; + close; + } + mes "Here's the wedding ring for your bride."; + if ($@wed_ring) delitem $@wed_ring,1; + set $wed_groom_progress,4; + + if ($wed_bride_progress == 4) + SF_StartCeremony(); + else { + mes "Once your bride retrieves the ring, the ceremony will begin."; + close; + } +} + +function SF_RetrieveRingF { + mes "["+@name$+"]"; + if ($@wed_ring && countitem($@wed_ring) < 1) { + mes "What happened to your "+getitemname($@wed_ring)+"? You didn't lose it... did you? We need it to continue with the ceremony!"; + close; + } + if ($wed_groom_sex) + set @item, 2634; //Groom's wedding ring + else + set @item, 2635; //Bride's wedding ring + + if (getnameditem(@item,$wed_bride$) == 0) { + mes "You don't seem to have enough space to carry the ring... go free up some space and come back to reclaim your partner's ring."; + close; + } + mes "Here's the wedding ring for your groom."; + if ($@wed_ring) delitem $@wed_ring,1; + set $wed_bride_progress,4; + + if ($wed_groom_progress == 4) + SF_StartCeremony(); + else { + mes "Once your groom retrieves the ring, the ceremony will begin."; + close; + } +} + +function SF_StartCeremony { + mes "I will now start the wedding ceremony, and you will be declared forth husband and wife."; + set $wed_bride_progress,5; + set $wed_groom_progress,5; + set $@msg$,$wed_groom$; + if (strcharinfo(0) == $wed_groom$) + set $@msg$,$wed_bride$; + if (marriage($@msg$) == 0) { + next; + mes "["+@name$+"]"; + mes "Where is "+$@msg$+"?? I can't marry you both if one is missing..."; + close; + } + set $wed_bride_progress,6; + set $wed_groom_progress,6; + initnpctimer; + close; +} + +OnTimer1000: + npctalk "Ladies and Gentlemen, We will now join in holy matrimony these two lovers."; + end; + +OnTimer5000: + npctalk "Now more than ever, will both of your lives be entwined together as so will be your souls."; + end; + +OnTimer10000: + npctalk "You will both honor and cherish each other through the best and worst of times."; + end; + +OnTimer15000: + npctalk "The safety and well being of your other will now also be your responsibility."; + end; + +OnTimer20000: + npctalk "May in sickness or good health, your love burn bright like no force can extinguish it."; + end; + +OnTimer25000: + npctalk "Those here stand witness to these vows bestowed upon you, you must act accordingly to them."; + end; + +OnTimer30000: + npctalk "Understanding that, we are nothing more but mortals on this earth, but this is our triumph."; + end; + +OnTimer35000: + npctalk "We here will now join these two mortal entities, and create an immortal love."; + end; + +OnTimer40000: + npctalk $wed_groom$+", you have accepted to take "+$wed_bride$+" as your lawfully wedded wife,"; + end; + +OnTimer45000: + npctalk "and you, "+$wed_bride$+", have accepted take "+$wed_groom$+" as your lawfully wedded husband."; + end; + +OnTimer50000: + npctalk "And as such, now, by the powers vested in me..."; + end; + +OnTimer55000: + npctalk "I pronounce you Husband and Wife, you may kiss the bride and exchange rings."; + if ($wedding_effect_id && isloggedin($wedding_effect_id)) + { + attachrid($wedding_effect_id); + wedding; + detachrid; + } else + wedding; + SF_wed_end(); + stopnpctimer; + end; + +//Subfunction: Checks that the groom/bride is still wearing their stuff. +function SF_equip_check { + if (sex && getequipid(2) != 7170) { + mes "["+@name$+"]"; + mes "Child, what did you do with your "+getitemname(7170)+"?"; + emotion e_dots; + return 0; + } + if (sex == 0 && getequipid(2) != 2338) { + mes "["+@name$+"]"; + mes "Child, you are supposed to wear a "+getitemname(2338)+" at all times during the ceremony..."; + emotion e_dots; + return 0; + } + if (sex == 0 && $@wed_veil && getequipid(1) != 2206) { + mes "["+@name$+"]"; + mes "Child, you can't take off your "+getitemname(2206)+" yet...."; + emotion e_dots; + return 0; + } + return 1; +} + +//Subfunction: Resets wedding variables. +function SF_wed_end { + set $wed_groom$,""; + set $wed_groom_sex, 0; + set $wed_bride$,""; + set $wed_bride_sex, 0; + set $wed_groom_progress,0; + set $wed_bride_progress,0; + set $wed_progress,0; + set $wedding_effect_id,0; +} + +OnInit: + if ($wed_groom_progress==6) { + SF_wed_end(); + } + end; +} + +//Registration & Status +prt_church,106,99,3 script Happy Marry 67,{ + set @name$,"Marry"; + if (getpartnerid() > 0) { + mes "["+@name$+"]"; + mes "Isn't marriage beautiful?"; + close; + } + + function SF_WedProgress; + function SF_Principles; + function SF_Procedure; + function SF_Register; + function SF_TryRegister; + + if ($wed_progress) { + SF_WedProgress(); + end; + } + + do { + mes "["+@name$+"]"; + mes "Marriage... is such a beautiful thing."; + mes "Would you like to get married with someone?"; + next; + set @menu, select( + "I'll be single forever!", + "Explain the principles of marriage.", + "Explain the marriage procedure.", + "I want to get married with someone." + ); + switch (@menu) { + case 1: //Quit + mes "["+@name$+"]"; + mes "In that case, enjoy your bachelor's life."; + close; + case 2: //Principles + SF_Principles(); + break; + case 3: //Procedure + SF_Procedure(); + break; + case 4: //Register + SF_Register(); + break; + } + } while (@menu > 1); + end; + +function SF_Register { + if ($@wed_allow) { //Role select + mes "["+@name$+"]"; + mes "Very well, whom would you like to register as?"; + next; + set @submenu, select("Groom","Bride","Cancel"); + } else if (sex) { //Groom + mes "["+@name$+"]"; + mes "Very well, will you register as the Groom?"; + next; + if (select("Yes","I've changed my mind.")==1) + set @submenu, 1; + else + set @submenu, 3; + } else { //Bride + mes "["+@name$+"]"; + mes "Very well, will you register as the Bride?"; + next; + if (select("Yes","I've changed my mind.")==1) + set @submenu, 2; + else + set @submenu, 3; + } + switch (@submenu) { + case 1: //Groom + SF_TryRegister(0); + set $wed_progress,1; + mes "["+@name$+"]"; + mes "You are now registered as the groom."; + mes "Tell your bride to register as soon as possible."; + emotion e_hmm; + initnpctimer; + close; + case 2: //Bride + SF_TryRegister(1); + set $wed_progress,1; + mes "["+@name$+"]"; + mes "You are now registered as the bride."; + mes "Tell your groom to register as soon as possible."; + emotion e_hmm; + initnpctimer; + close; + default: //Cancel + mes "["+@name$+"]"; + mes "Come back when you are ready."; + close; + } +} + +function SF_WedProgress { + if (strcharinfo(0) == $wed_groom$) { + mes "["+@name$+"]"; + if ($wed_bride_progress > 0) + mes "The Priest will handle the rest of the ceremony."; + else + mes "Tell your bride to register, what is taking so long? Time is running out."; + close; + } + if (strcharinfo(0) == $wed_bride$) { + mes "["+@name$+"]"; + if ($wed_groom_progress > 0) + mes "The Priest will handle the rest of the ceremony."; + else + mes "Tell your groom to register, what is taking so long? Time is running out."; + close; + } + if (($wed_groom_progress == 0) && (sex == 1 || $@wed_allow == 1)) { + mes "["+@name$+"]"; + mes $wed_bride$+" is waiting for the groom to register. Are you the one who came to register as groom?"; + next; + if (select("Yes, I am.","Sorry, you got the wrong person.") == 1) { + SF_TryRegister(0); + stopnpctimer; + set $wed_groom_progress,1; + mes "["+@name$+"]"; + mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin."; + emotion e_no1; + close2; + npctalk "Registration finished. "+$wed_groom$+" and "+$wed_bride$+", please reaffirm your vows with the Priest."; + emotion e_no1; + end; + } else { + mes "["+@name$+"]"; + mes "I see. Sorry to have bothered you then."; + close; + } + + } + if (($wed_bride_progress == 0) && (sex == 0 || $@wed_allow == 1)) { + mes "["+@name$+"]"; + mes $wed_groom$+" is waiting for the bride to register. Are you the one who came to register as the bride?"; + next; + if(select("Yes, I am.","Sorry, you got the wrong person.") == 1) { + SF_TryRegister(1); + stopnpctimer; + mes "["+@name$+"]"; + mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin."; + emotion e_no1; + close2; + npctalk "Registration finished. "+$wed_groom$+" and "+$wed_bride$+", please reaffirm your vows with the Priest."; + emotion e_no1; + end; + } else { + mes "["+@name$+"]"; + mes "I see. Sorry to have bothered you then."; + close; + } + } + mes "["+@name$+"]"; + mes "There is a wedding in progress."; + mes "Would you like to know the progress of said wedding?"; + next; + if (select("Yes","No") != 1) { + mes "["+@name$+"]"; + mes "Enjoy the wedding."; + close; + } + //Display Progress + mes "["+@name$+"]"; + switch ($wed_groom_progress) { + case 0: + mes "The groom has not registered yet."; + break; + case 1: + mes "The groom, "+$wed_groom$+", has yet to accept the bride."; + break; + case 2: + mes "The groom, "+$wed_groom$+", is waiting for the bride's acceptance."; + break; + case 3: + mes "The groom, "+$wed_groom$+", has yet to retrieve the ring."; + break; + case 4: + mes "The groom, "+$wed_groom$+", is waiting for the bride to retrieve the ring."; + break; + } + switch ($wed_bride_progress) { + case 0: + mes "The bride has not registered yet."; + break; + case 1: + mes "The bride, "+$wed_bride$+", has yet to confirm the groom."; + break; + case 2: + mes "The bride, "+$wed_bride$+", is waiting for the groom's acceptance."; + break; + case 3: + mes "The bride, "+$wed_bride$+", has yet to retrieve the ring."; + break; + case 4: + mes "The bride, "+$wed_bride$+", is waiting for the groom to retrieve the ring."; + break; + case 5: + mes "We are just waiting for both "+$wed_groom$+" and "+$wed_bride$+" to be together to marry them."; + break; + case 6: + mes $wed_groom$+" and "+$wed_bride$+"'s wedding ceremony is already well on it's way."; + break; + } + mes "Enjoy the remaining of the wedding."; + close; +} + +OnInit: + if ($wed_groom_progress + $wed_bride_progress == 1) + initnpctimer; + end; + +OnTimer60000: + //Registration failed. + if ($wed_bride_progress == 1) + set $@msg$, $wed_bride$; + else + set $@msg$, $wed_groom$; + + npctalk "Registration timed out. Is it that noone wants to marry "+$@msg$+"..?"; + emotion e_hmm; + + set $wed_groom$,""; + set $wed_groom_sex, 0; + set $wed_bride$,""; + set $wed_bride_sex, 0; + set $wed_groom_progress,0; + set $wed_bride_progress,0; + set $wed_progress,0; + stopnpctimer; + end; + +//Subfunction SF_TryRegister (int bride) +function SF_TryRegister { + set @bride, getarg(0); + set @type$, "groom"; + if (@bride) + set @type$, "bride"; + + mes "["+@name$+"]"; + mes "Before registering as "+@type$+", let me check if you meet all the requirements..."; + next; + if (Upper == 2) { + mes "["+@name$+"]"; + mes "Oh dear, you are too young to be thinking of marriage!"; + emotion e_gasp; + close; + } + if (sex) + set @item, 7170; + else + set @item, 2338; + + if (getequipid(2) != @item) { + mes "["+@name$+"]"; + mes "You should be wearing a "+getitemname(@item)+" if you want to get married."; + close; + } + if (sex == 0 && $@wed_veil && getequipid(1) != 2206) { + mes "["+@name$+"]"; + mes "Where is your "+getitemname(2206)+"? It's a necessary complement to your dress."; + close; + } + if ($@wed_ring && countitem($@wed_ring) < 1) { + mes "["+@name$+"]"; + mes "Where's the ring? You need a "+getitemname($@wed_ring)+" for the ring exchange, dear."; + close; + } + if (@bride) + set @cost, $@wed_bride_reg; + else + set @cost, $@wed_groom_reg; + + if (Zeny < @cost) { + mes "["+@name$+"]"; + mes "I am sorry, but you don't have enough to pay for the registration fee."; + mes "Come back once you have collected "+@cost+"z."; + close; + } + set Zeny,Zeny-@cost; + sc_start SC_Wedding,3600000000,1; //Start Wedding Effect (SC_WEDDING) + if (@bride) { + set $wed_bride_progress,1; + set $wed_bride$,strcharinfo(0); + set $wed_bride_sex, sex; + if ($@wedding_effect == 1) //Store account id for effect. + set $wedding_effect_id, getcharid(3); + } else { + set $wed_groom_progress,1; + set $wed_groom$,strcharinfo(0); + set $wed_groom_sex, sex; + if ($@wedding_effect == 2) //Store account id for effect. + set $wedding_effect_id, getcharid(3); + } +} + +//Explain wedding principles... +function SF_Principles { + mes "["+@name$+"]"; + mes "Weddings are performed by our local Priest with the intent of promoting love and peace among the loving couples."; + next; + mes "["+@name$+"]"; + mes "The proposal must be done with prudence and courtesy, once the wedlocks have been made, they cannot be undone."; + next; + mes "["+@name$+"]"; + mes "The two who have been joined by marriage must remain together forever until the day death do them apart."; + next; + mes "["+@name$+"]"; + if ($@wed_allow == 1) + mes "Altough normally only males can wed females (and viceversa), our local Priest is more open-minded than that and he permits all pairings regardless of gender."; + else + mes "Males may only wed with females, and females only with males, the church will not consent any other kind of partnerships."; + next; + mes "["+@name$+"]"; + mes "If there is a significant other with whom you want to spend the rest of your life with, then don't be shy to propose."; + next; + mes "["+@name$+"]"; + mes "I wish for many blessings upon couples who wish to live happily ever after..."; + next; +} + +//Explain the wedding procedure... +function SF_Procedure { + mes "["+@name$+"]"; + mes "First of all, both groom and bride must register with me."; + next; + if ($@wed_allow == 1) { + mes "["+@name$+"]"; + mes "The registration requirements are:"; + mes "- Males must be wearing a "+getitemname(7170)+"."; + mes "- Females must be wearing a "+getitemname(2338)+"."; + if ($@wed_veil) mes "- Females must also wear a "+getitemname(2206)+"."; + if ($@wed_ring) mes "- Both must own a "+getitemname($@wed_ring)+" each."; + if ($@wed_groom_reg > 0) mes "- The registration fee for the groom is "+$@wed_groom_reg+"z."; + if ($@wed_bride_reg > 0) mes "- The registration fee for the bride is "+$@wed_bride_reg+"z."; + } else { + mes "["+@name$+"]"; + mes "The registration requirements for the groom are:"; + mes "- To be wearing a "+getitemname(7170)+"."; + if ($@wed_ring) mes "- To own a "+getitemname($@wed_ring)+"."; + if ($@wed_groom_reg > 0) mes "- Pay a Registration fee of "+$@wed_groom_reg+"z."; + next; + mes "["+@name$+"]"; + mes "The registration requirements for the bride are:"; + mes "- To be wearing a "+getitemname(2338)+"."; + if ($@wed_veil) mes "- To be wearing a "+getitemname(2206)+"."; + if ($@wed_ring) mes "- To own a "+getitemname($@wed_ring)+"."; + if ($@wed_bride_reg > 0) mes "- Pay a Registration fee of "+$@wed_bride_reg+"z."; + } + next; + mes "["+@name$+"]"; + mes "I shouldn't need to mention this, but adopted kids are too young to get married."; + mes "Both groom and bride must register within a minute of each other, or the wedding will be cancelled. So be sure you both are ready and meet the registration requirements beforehand."; + next; + mes "["+@name$+"]"; + mes "After both have registered with me, you have to go pledge your vows to the Priest and accept your registered partner. If for some reason you reject your registered partner, the wedding will be cancelled..."; + next; + mes "["+@name$+"]"; + mes "If you both accept each other, then the wedding has been decided and the ceremony will begin."; + if ($@wed_ring) { + mes "But first, you need to get your rings ready."; + next; + mes "["+@name$+"]"; + mes "Talk to the priest once more, and he will exchange your "+getitemname($@wed_ring)+" for a wedding ring. After you both have claimed the rings for exchanging, the ceremony will begin."; + } + next; + mes "["+@name$+"]"; + mes "If there are various couples who desire to marry, you should keep in order, for the Priest can only handle one wedding at a time."; + next; +} +} + +prt_church,94,99,4 script Sister Lisa 79,{ + set @name$,"Lisa"; + + function SF_DivorceEnd; + function SF_InProgress; + + if ($@divorce_progress==1) { + goto SF_InProgress; + end; + } + + do { + mes "["+@name$+"]"; + mes "Divorcing can be such a sad event..."; + if (getpartnerid() == 0) { + mes "People shouldn't make shallow vows to others, don't you think?"; + close; + } + mes "You wouldn't want to divorce, by any chance?"; + next; + set @menu, select( + "I am happy as I am, thank you.", + "Explain the divorce.", + "Explain Requirements.", + "I want to divorce." + ); + switch (@menu) { + case 1: + mes "["+@name$+"]"; + mes "Good to hear."; + close; + case 2: //Explanation + mes "["+@name$+"]"; + mes "Even though it is said that once the wedlocks have been made they cannot be undone, sometimes it is necessary to undo our mistakes from the past.."; + next; + mes "["+@name$+"]"; + mes "It is sad, but true. If you happen to have married the wrong person, it is possible to divorce, rather than spend the rest of your life with the wrong one."; + next; + break; + case 3: //Requirement + mes "["+@name$+"]"; + mes "In order to file for divorce, I need you both to agree to it."; + mes "After you file in for divorce, your spouse has one minute to agree, and then you will both be divorced."; + if ($@wed_divorce_fee > 0) mes "The fee is of "+$@wed_divorce_fee+"z and is paid by the person who confirms the divorce, so plan ahead of time how you will divide the costs."; + next; + break; + case 4: //Divorce + mes "["+@name$+"]"; + mes "You should not regret the choices you've made in life."; + mes "Are you positively sure about getting divorced?"; + next; + if (select("Wait... I need to think about it.","Absolutely") != 2) { + mes "["+@name$+"]"; + mes "You should think this through."; + close; + } + mes "["+@name$+"]"; + set $@divorcee,getpartnerid(); + set $@divorcer$,strcharinfo(0); + set $@divorce_progress,1; + initnpctimer; + mes "Very well, get your partner to confirm, and I will collect the fee for filing the divorce then."; + close; + } + } while (@menu > 1); +end; + +function SF_InProgress { + if (strcharinfo(0) == $@divorcer$) { + mes "["+@name$+"]"; + mes "...I am still waiting for your partner to confirm the divorce procedure."; + close; + } + if (getcharid(0) != $@divorcee) { + mes "["+@name$+"]"; + mes "I am in the progress of divorcing "+$@divorcer$+"."; + mes "Do you know who the spouse is?"; + close; + } + //Confirm... + mes "["+@name$+"]"; + mes $@divorcer$+" has asked to divorce you. If you accept, and have the fee of "+$@wed_divorce_fee+"z at hand, I will proceed to divorce you two."; + mes "So, should I proceed with the divorce?"; + next; + if (select("I don't want to divorce....","Yes, we have agreed to this.")!=2) { + mes "["+@name$+"]"; + mes "I hope you can work things out."; + emotion e_pat; + goto SF_DivorceEnd; + close; + } + if (Zeny < $@wed_divorce_fee) { + mes "["+@name$+"]"; + mes "Well, I can't file your divorce because you don't have enough for the fee. Get your partner to lend you some?"; + close; + } + if (!(divorce())) { + mes "["+@name$+"]"; + mes "Where has "+$@divorcer$+" gone to? I can't divorce you unless you both are here..."; + emotion e_swt2; + close; + } + set Zeny,Zeny-$@wed_divorce_fee; + announce $@divorcer$+" has just divorced "+strcharinfo(0)+"...", 8; + mes "["+@name$+"]"; + mes "Your divorce has been filed. You are no longer wed."; + emotion e_sob; + goto SF_DivorceEnd; + close; +} + +function SF_DivorceEnd { + stopnpctimer; + set $@divorce_progress,0; + set $@divorcee,0; + set $@divorcer$,""; +} + +OnTimer60000: + npctalk "Divorce confirmation time's is up. Where did "+$@divorcer$+"'s spouse go..."; + emotion e_what; + SF_DivorceEnd(); + end; +} diff --git a/npc/custom/etc/p_track.txt b/npc/custom/etc/p_track.txt deleted file mode 100644 index 87794ac28..000000000 --- a/npc/custom/etc/p_track.txt +++ /dev/null @@ -1,67 +0,0 @@ -//===== rAthena Script ======================================= -//= Poring Track Main NPCs -//===== By: ================================================== -//= erKURITA -//===== Current Version: ===================================== -//= 1.3 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Poring Track core NPCs and warpers. -//===== Additional Comments: ================================= -//= 1.2 Removed Duplicates [Silent] -//= 1.3 Merged and cleaned. [Euphy] -//============================================================ - -hugel,58,72,5 script Yan#track1 86,{ - callfunc "P_TrackEnt","[Yan]","p_track01"; - end; -} -hugel,62,68,1 script Yalmire#track1 86,{ - callfunc "P_TrackEnt","[Yalmire]","p_track02"; - end; -} - -function script P_TrackEnt { - mes getarg(0); - mes "Hi "+strcharinfo(0)+", welcome to the Poring Track!"; - next; - switch(select("Information:I want to try it!:Not today.")) { - case 1: - mes getarg(0); - mes "Well... it's quite fun, that's all I can say. Try it!"; - close; - case 2: - mes getarg(0); - mes "The entrance fee is 500z. would you like to go in?"; - next; - if(select("Yes, please!:No thanks.")==2) { - mes getarg(0); - mes "You're missing out!"; - close; } - mes getarg(0); - if (Zeny < 500) { - mes "You can't enter without paying."; close; } - mes "Here we go!"; - close2; - set Zeny, Zeny-500; - warp getarg(1),75,41; - end; - case 3: - mes getarg(0); - mes "See you later!"; - close; - } -} - -p_track01,76,36,2 script Yan#track2 86,{ end; } -p_track01,41,57,5 script Lady#track1::P_track 845,{ end; } -p_track01,67,34,6 script Erudite::P_Spectator1 107,{ end; } -p_track01,44,49,3 script Edward 881,{ end; } -p_track01,27,47,3 script Yuri#P_track 853,{ end; } - -p_track02,76,36,2 script Yalmire#track2 86,{ end; } -p_track02,30,45,3 script Nagya 755,{ end; } -p_track02,42,49,3 script Asgahrd 733,{ end; } -p_track02,67,33,1 script Blacksmith#track1 726,{ end; } -p_track02,41,57,5 duplicate(P_track) Lady#track2 845 \ No newline at end of file diff --git a/npc/custom/etc/wandering_poets.txt b/npc/custom/etc/wandering_poets.txt deleted file mode 100644 index 2451c5e8b..000000000 --- a/npc/custom/etc/wandering_poets.txt +++ /dev/null @@ -1,712 +0,0 @@ -//===== rAthena Script ======================================= -//= Wandering Poets -//===== By: ================================================== -//= MouseJstr -//===== Current Version: ===================================== -//= 0.2a -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= -//===== Additional Comments: ================================= -//= -//============================================================ - -ayothaya,58,134,5 script Louise Gluck 763,{ - mes "[Louise Gluck]"; - mes "What is the next line? "; - close; -OnTimer5000: - npcwalkto 65,129; - npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; - end; -OnTimer10000: - npcwalkto 71,131; - npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; - end; -OnTimer15000: - npcwalkto 75,127; - npctalk "Beware the Jabberwock, my son! The jaws that bite, theh claws that catch!"; - end; -OnTimer20000: - npcwalkto 80,122; - npctalk "Beware the Jubjub bird and shun The frumious Bandersnatch!"; - end; -OnTimer25000: - npcwalkto 82,118; - npctalk "He took his vorpal sword in hand: Long time the manxome foe he sought-"; - end; -OnTimer30000: - npcwalkto 93,115; - npctalk "So rested he by the Tumtum tree, And stood a while in thought."; - end; -OnTimer35000: - npcwalkto 94,112; - npctalk "And, as in uffish thought he stood, The Jabberwock, with eyes of flame,"; - end; -OnTimer40000: - npcwalkto 88,124; - npctalk "Came whiffling through the tulgey wood, And burbled as it came!"; - end; -OnTimer45000: - npcwalkto 81,129; - npctalk "One, two! One, two! And through and through The vorpal blade went snicker-snack!"; - end; -OnTimer50000: - npcwalkto 76,139; - npctalk "He left it dead, and with its head He went galumphing back."; - end; -OnTimer55000: - npcwalkto 67,138; - npctalk "And hast though slain the Jabberwock? Come to my arms beamish boy!"; - end; -OnTimer60000: - npcwalkto 59,144; - npctalk "O frabjous day! Callooh! Callay! He chortled in his joy."; - end; -OnTimer65000: - npcwalkto 55,124; - npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; - end; -OnTimer70000: - npcwalkto 58,134; - npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; - setnpctimer 0; - end; -OnInit: - npcspeed 150; - initnpctimer; - end; -} - -ayothaya,212,276,0 script Romeo 50,{ - mes "[Romeo]"; - mes "What is the next line?"; - close; -OnTimer0: - npctalk "He jests at scars that never felt a wound."; - end; -OnTimer6000: - npctalk "But, soft! what light through yonder window breaks?"; - end; -OnTimer8000: - npctalk "It is the east, and Juliet is the sun."; - end; -OnTimer10000: - npctalk "Arise, fair sun, and kill the envious moon,"; - end; -OnTimer12000: - npctalk "Who is already sick and pale with grief,"; - end; -OnTimer14000: - npctalk "That thou her maid art far more fair than she:"; - end; -OnTimer16000: - npctalk "Be not her maid, since she is envious;"; - end; -OnTimer18000: - npctalk "Her vestal livery is but sick and green"; - end; -OnTimer20000: - npctalk "And none but fools do wear it; cast it off."; - end; -OnTimer22000: - npctalk "It is my lady, O, it is my love!"; - end; -OnTimer24000: - npctalk "O, that she knew she were!"; - end; -OnTimer26000: - npctalk "She speaks yet she says nothing: what of that?"; - end; -OnTimer28000: - npctalk "Her eye discourses; I will answer it."; - end; -OnTimer30000: - npctalk "I am too bold, tis not to me she speaks:"; - end; -OnTimer32000: - npctalk "Two of the fairest stars in all the heaven,"; - end; -OnTimer34000: - npctalk "Having some business, do entreat her eyes"; - end; -OnTimer36000: - npctalk "To twinkle in their spheres till they return."; - end; -OnTimer38000: - npctalk "What if her eyes were there, they in her head?"; - end; -OnTimer40000: - npctalk "The brightness of her cheek would shame those stars,"; - end; -OnTimer42000: - npctalk "As daylight doth a lamp; her eyes in heaven"; - end; -OnTimer44000: - npctalk "Would through the airy region stream so bright"; - end; -OnTimer46000: - npctalk "That birds would sing and think it were not night."; - end; -OnTimer48000: - npctalk "See, how she leans her cheek upon her hand!"; - end; -OnTimer50000: - npctalk "O, that I were a glove upon that hand,"; - end; -OnTimer52000: - npctalk "That I might touch that cheek!"; - end; -OnTimer56000: - npctalk "She speaks:"; - end; -OnTimer58000: - npctalk "O, speak again, bright angel! for thou art"; - end; -OnTimer60000: - npctalk "As glorious to this night, being oer my head"; - end; -OnTimer62000: - npctalk "As is a winged messenger of heaven"; - end; -OnTimer64000: - npctalk "Unto the white-upturned wondering eyes"; - end; -OnTimer66000: - npctalk "Of mortals that fall back to gaze on him"; - end; -OnTimer68000: - npctalk "When he bestrides the lazy-pacing clouds"; - end; -OnTimer70000: - npctalk "And sails upon the bosom of the air."; - end; -OnTimer80000: - npctalk "Shall I hear more, or shall I speak at this?"; - end; -OnTimer106000: - npctalk "I take thee at thy word:"; - end; -OnTimer108000: - npctalk "Call me but love, and Ill be new baptized;"; - end; -OnTimer110000: - npctalk "Henceforth I never will be Romeo."; - end; -OnTimer116000: - npctalk "By a name"; - end; -OnTimer118000: - npctalk "I know not how to tell thee who I am:"; - end; -OnTimer120000: - npctalk "My name, dear saint, is hateful to myself,"; - end; -OnTimer122000: - npctalk "Because it is an enemy to thee;"; - end; -OnTimer124000: - npctalk "Had I it written, I would tear the word."; - end; -OnTimer132000: - npctalk "Neither, fair saint, if either thee dislike."; - end; -OnTimer142000: - npctalk "With loves light wings did I oer-perch these walls;"; - end; -OnTimer144000: - npctalk "For stony limits cannot hold love out,"; - end; -OnTimer146000: - npctalk "And what love can do that dares love attempt;"; - end; -OnTimer148000: - npctalk "Therefore thy kinsmen are no let to me."; - end; -OnTimer152000: - npctalk "Alack, there lies more peril in thine eye"; - end; -OnTimer154000: - npctalk "Than twenty of their swords: look thou but sweet,"; - end; -OnTimer156000: - npctalk "And I am proof against their enmity."; - end; -OnTimer160000: - npctalk "I have nights cloak to hide me from their sight;"; - end; -OnTimer162000: - npctalk "And but thou love me, let them find me here:"; - end; -OnTimer164000: - npctalk "My life were better ended by their hate,"; - end; -OnTimer166000: - npctalk "Than death prorogued, wanting of thy love."; - end; -OnTimer170000: - npctalk "By love, who first did prompt me to inquire;"; - end; -OnTimer172000: - npctalk "He lent me counsel and I lent him eyes."; - end; -OnTimer174000: - npctalk "I am no pilot; yet, wert thou as far"; - end; -OnTimer176000: - npctalk "As that vast shore washd with the farthest sea,"; - end; -OnTimer178000: - npctalk "I would adventure for such merchandise."; - end; -OnTimer224000: - npctalk "Lady, by yonder blessed moon I swear"; - end; -OnTimer226000: - npctalk "That tips with silver all these fruit-tree tops--"; - end; -OnTimer234000: - npctalk "What shall I swear by?"; - end; -OnTimer244000: - npctalk "If my hearts dear love--"; - end; -OnTimer264000: - npctalk "O, wilt thou leave me so unsatisfied?"; - end; -OnTimer268000: - npctalk "The exchange of thy loves faithful vow for mine."; - end; -OnTimer274000: - npctalk "Wouldst thou withdraw it? for what purpose, love?"; - end; -OnTimer294000: - npctalk "O blessed, blessed night! I am afeard."; - end; -OnTimer296000: - npctalk "Being in night, all this is but a dream,"; - end; -OnTimer298000: - npctalk "Too flattering-sweet to be substantial."; - end; -OnTimer330000: - npctalk "So thrive my soul--"; - end; -OnTimer334000: - npctalk "A thousand times the worse, to want thy light."; - end; -OnTimer336000: - npctalk "Love goes toward love, as schoolboys from"; - end; -OnTimer338000: - npctalk "their books,"; - end; -OnTimer340000: - npctalk "But love from love, toward school with heavy looks."; - end; -OnTimer356000: - npctalk "It is my soul that calls upon my name:"; - end; -OnTimer358000: - npctalk "How silver-sweet sound lovers tongues by night,"; - end; -OnTimer360000: - npctalk "Like softest music to attending ears!"; - end; -OnTimer364000: - npctalk "My dear?"; - end; -OnTimer370000: - npctalk "At the hour of nine."; - end; -OnTimer376000: - npctalk "Let me stand here till thou remember it."; - end; -OnTimer382000: - npctalk "And Ill still stay, to have thee still forget,"; - end; -OnTimer384000: - npctalk "Forgetting any other home but this."; - end; -OnTimer398000: - npctalk "I would I were thy bird."; - end; -OnTimer410000: - npctalk "Sleep dwell upon thine eyes, peace in thy breast!"; - end; -OnTimer412000: - npctalk "Would I were sleep and peace, so sweet to rest!"; - end; -OnTimer414000: - npctalk "Hence will I to my ghostly fathers cell,"; - end; -OnTimer416000: - npctalk "His help to crave, and my dear hap to tell."; - end; -OnTimer538000: - setnpctimer 0; - end; -OnInit: - npcspeed 150; - initnpctimer; - end; -} - -ayothaya,214,279,3 script Juliet 53,{ - mes "[Juliet]"; - mes "What is the next line? "; - close; -OnTimer54000: - npctalk "Ay me!"; - end; -OnTimer72000: - npctalk "O Romeo, Romeo! wherefore art thou Romeo?"; - end; -OnTimer74000: - npctalk "Deny thy father and refuse thy name;"; - end; -OnTimer76000: - npctalk "Or, if thou wilt not, be but sworn my love,"; - end; -OnTimer78000: - npctalk "And Ill no longer be a Capulet."; - end; -OnTimer82000: - npctalk "Tis but thy name that is my enemy;"; - end; -OnTimer84000: - npctalk "Thou art thyself, though not a Montague."; - end; -OnTimer86000: - npctalk "Whats Montague? it is nor hand, nor foot,"; - end; -OnTimer88000: - npctalk "Nor arm, nor face, nor any other part"; - end; -OnTimer90000: - npctalk "Belonging to a man. O, be some other name!"; - end; -OnTimer92000: - npctalk "Whats in a name? that which we call a rose"; - end; -OnTimer94000: - npctalk "By any other name would smell as sweet;"; - end; -OnTimer96000: - npctalk "So Romeo would, were he not Romeo calld,"; - end; -OnTimer98000: - npctalk "Retain that dear perfection which he owes"; - end; -OnTimer100000: - npctalk "Without that title. Romeo, doff thy name,"; - end; -OnTimer102000: - npctalk "And for that name which is no part of thee"; - end; -OnTimer104000: - npctalk "Take all myself."; - end; -OnTimer112000: - npctalk "What man art thou that thus bescreend in night"; - end; -OnTimer114000: - npctalk "So stumblest on my counsel?"; - end; -OnTimer126000: - npctalk "My ears have not yet drunk a hundred words"; - end; -OnTimer128000: - npctalk "Of that tongues utterance, yet I know the sound:"; - end; -OnTimer130000: - npctalk "Art thou not Romeo and a Montague?"; - end; -OnTimer134000: - npctalk "How camest thou hither, tell me, and wherefore?"; - end; -OnTimer136000: - npctalk "The orchard walls are high and hard to climb,"; - end; -OnTimer138000: - npctalk "And the place death, considering who thou art,"; - end; -OnTimer140000: - npctalk "If any of my kinsmen find thee here."; - end; -OnTimer150000: - npctalk "If they do see thee, they will murder thee."; - end; -OnTimer158000: - npctalk "I would not for the world they saw thee here."; - end; -OnTimer168000: - npctalk "By whose direction foundst thou out this place?"; - end; -OnTimer180000: - npctalk "Thou knowst the mask of night is on my face,"; - end; -OnTimer182000: - npctalk "Else would a maiden blush bepaint my cheek"; - end; -OnTimer184000: - npctalk "For that which thou hast heard me speak to-night"; - end; -OnTimer186000: - npctalk "Fain would I dwell on form, fain, fain deny"; - end; -OnTimer188000: - npctalk "What I have spoke: but farewell compliment!"; - end; -OnTimer190000: - npctalk "Dost thou love me? I know thou wilt say Ay,"; - end; -OnTimer192000: - npctalk "And I will take thy word: yet if thou swearst,"; - end; -OnTimer194000: - npctalk "Thou mayst prove false; at lovers perjuries"; - end; -OnTimer196000: - npctalk "Then say, Jove laughs. O gentle Romeo,"; - end; -OnTimer198000: - npctalk "If thou dost love, pronounce it faithfully:"; - end; -OnTimer200000: - npctalk "Or if thou thinkst I am too quickly won,"; - end; -OnTimer202000: - npctalk "Ill frown and be perverse an say thee nay,"; - end; -OnTimer204000: - npctalk "So thou wilt woo; but else, not for the world."; - end; -OnTimer206000: - npctalk "In truth, fair Montague, I am too fond,"; - end; -OnTimer208000: - npctalk "And therefore thou mayst think my havior light:"; - end; -OnTimer210000: - npctalk "But trust me, gentleman, Ill prove more true"; - end; -OnTimer212000: - npctalk "Than those that have more cunning to be strange."; - end; -OnTimer214000: - npctalk "I should have been more strange, I must confess,"; - end; -OnTimer216000: - npctalk "But that thou overheardst, ere I was ware,"; - end; -OnTimer218000: - npctalk "My true loves passion: therefore pardon me,"; - end; -OnTimer220000: - npctalk "And not impute this yielding to light love,"; - end; -OnTimer222000: - npctalk "Which the dark night hath so discovered."; - end; -OnTimer228000: - npctalk "O, swear not by the moon, the inconstant moon,"; - end; -OnTimer230000: - npctalk "That monthly changes in her circled orb,"; - end; -OnTimer232000: - npctalk "Lest that thy love prove likewise variable."; - end; -OnTimer236000: - npctalk "Do not swear at all;"; - end; -OnTimer238000: - npctalk "Or, if thou wilt, swear by thy gracious self,"; - end; -OnTimer240000: - npctalk "Which is the god of my idolatry,"; - end; -OnTimer242000: - npctalk "And Ill believe thee."; - end; -OnTimer246000: - npctalk "Well, do not swear: although I joy in thee,"; - end; -OnTimer248000: - npctalk "I have no joy of this contract to-night:"; - end; -OnTimer250000: - npctalk "It is too rash, too unadvised, too sudden;"; - end; -OnTimer252000: - npctalk "Too like the lightning, which doth cease to be"; - end; -OnTimer254000: - npctalk "Ere one can say It lightens. Sweet, good night!"; - end; -OnTimer256000: - npctalk "This bud of love, by summers ripening breath,"; - end; -OnTimer258000: - npctalk "May prove a beauteous flower when next we meet."; - end; -OnTimer260000: - npctalk "Good night, good night! as sweet repose and rest"; - end; -OnTimer262000: - npctalk "Come to thy heart as that within my breast!"; - end; -OnTimer266000: - npctalk "What satisfaction canst thou have to-night?"; - end; -OnTimer270000: - npctalk "I gave thee mine before thou didst request it:"; - end; -OnTimer272000: - npctalk "And yet I would it were to give again."; - end; -OnTimer276000: - npctalk "But to be frank, and give it thee again."; - end; -OnTimer278000: - npctalk "And yet I wish but for the thing I have:"; - end; -OnTimer280000: - npctalk "My bounty is as boundless as the sea,"; - end; -OnTimer282000: - npctalk "My love as deep; the more I give to thee,"; - end; -OnTimer284000: - npctalk "The more I have, for both are infinite."; - end; -OnTimer288000: - npctalk "I hear some noise within; dear love, adieu!"; - end; -OnTimer290000: - npctalk "Anon, good nurse! Sweet Montague, be true."; - end; -OnTimer292000: - npctalk "Stay but a little, I will come again."; - end; -OnTimer302000: - npctalk "Three words, dear Romeo, and good night indeed."; - end; -OnTimer304000: - npctalk "If that thy bent of love be honourable,"; - end; -OnTimer306000: - npctalk "Thy purpose marriage, send me word to-morrow,"; - end; -OnTimer308000: - npctalk "By one that Ill procure to come to thee,"; - end; -OnTimer310000: - npctalk "Where and what time thou wilt perform the rite;"; - end; -OnTimer312000: - npctalk "And all my fortunes at thy foot Ill lay"; - end; -OnTimer314000: - npctalk "And follow thee my lord throughout the world."; - end; -OnTimer318000: - npctalk "I come, anon.--But if thou meanst not well,"; - end; -OnTimer320000: - npctalk "I do beseech thee--"; - end; -OnTimer324000: - npctalk "By and by, I come:--"; - end; -OnTimer326000: - npctalk "To cease thy suit, and leave me to my grief:"; - end; -OnTimer328000: - npctalk "To-morrow will I send."; - end; -OnTimer332000: - npctalk "A thousand times good night!"; - end; -OnTimer344000: - npctalk "Hist! Romeo, hist! O, for a falconers voice,"; - end; -OnTimer346000: - npctalk "To lure this tassel-gentle back again!"; - end; -OnTimer348000: - npctalk "Bondage is hoarse, and may not speak aloud;"; - end; -OnTimer350000: - npctalk "Else would I tear the cave where Echo lies,"; - end; -OnTimer352000: - npctalk "And make her airy tongue more hoarse than mine,"; - end; -OnTimer354000: - npctalk "With repetition of my Romeos name."; - end; -OnTimer362000: - npctalk "Romeo!"; - end; -OnTimer366000: - npctalk "At what oclock to-morrow"; - end; -OnTimer368000: - npctalk "Shall I send to thee?"; - end; -OnTimer372000: - npctalk "I will not fail: tis twenty years till then."; - end; -OnTimer374000: - npctalk "I have forgot why I did call thee back."; - end; -OnTimer378000: - npctalk "I shall forget, to have thee still stand there,"; - end; -OnTimer380000: - npctalk "Remembering how I love thy company."; - end; -OnTimer386000: - npctalk "Tis almost morning; I would have thee gone:"; - end; -OnTimer388000: - npctalk "And yet no further than a wantons bird;"; - end; -OnTimer390000: - npctalk "Who lets it hop a little from her hand,"; - end; -OnTimer392000: - npctalk "Like a poor prisoner in his twisted gyves,"; - end; -OnTimer394000: - npctalk "And with a silk thread plucks it back again,"; - end; -OnTimer396000: - npctalk "So loving-jealous of his liberty."; - end; -OnTimer400000: - npctalk "Sweet, so would I:"; - end; -OnTimer402000: - npctalk "Yet I should kill thee with much cherishing."; - end; -OnTimer404000: - npctalk "Good night, good night! parting is such"; - end; -OnTimer406000: - npctalk "sweet sorrow,"; - end; -OnTimer408000: - npctalk "That I shall say good night till it be morrow."; - end; -OnTimer538000: - setnpctimer 0; - end; -OnInit: - npcspeed 150; - initnpctimer; - end; -} diff --git a/npc/custom/marriage.txt b/npc/custom/marriage.txt deleted file mode 100644 index 0f21c46e7..000000000 --- a/npc/custom/marriage.txt +++ /dev/null @@ -1,937 +0,0 @@ -//===== rAthena Script ======================================= -//= Wedding Script -//===== By: ================================================== -//= AppleGirl, Evera -//===== Current Version: ===================================== -//= 2.9 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Fully working wedding script for all kind of weddings -//===== Additional Comments: ================================= -// 1.1 Lesbian and Gay Weddings [ShadowLady] -// 2.0 Complete Rewrite [Skotlex] -// 2.9 Somewhat iRO-official NPC names [DracoRPG] -//============================================================ - -// Configuration Variables: -- script marriage_init -1,{ -OnInit: - set $@wed_allow, 0; //If 1, allows same sex marriages. - set $@wed_veil, 0; //Set to 0 to disable veil check on the bride - -//Id of the item that is traded for the wedding ring (use 0 to disable): - set $@wed_ring, 2613; - - set $@wed_groom_reg, 1300000; //Registration cost for the Groom - set $@wed_bride_reg, 1200000; //Registration cost for the Bride - set $@wed_divorce_fee, 50000; //Divorcing fee - set $@wedding_effect, 1; //On who to display the FX: 0: Priest, 1: Bride, 2: Groom - end; -} - -// Other Configuration: -// Line 61,62: Priest location, sprite and name. -// Line 437,438: Registration location, sprite and name. -// Line 813,814: Divorcing location, sprite and name. - -// Variable Notes: -// $wed_progress Signals that there is a wedding in progress -// $wed_groom$ - Groom's name storage -// $wed_groom_sex - Groom's gender (for same marriage ring giving) -// $wed_bride$ - Bride's name storage -// $wed_bride_sex - Groom's gender (for same marriage ring giving) -// $wed_groom_progress - Notes the progress on the groom's part -// $wed_bride_progress - Notes the progress on the bride's part -// 0: Not registered. 1: Registered. 2: Accepted the partner. 3: Ready to -// Retrieve the ring. 4: Retrieved the ring. 5: All set to be wed. 6: Already -// a couple. -// ceremony. -// $wedding_effect_id - When wedding_effect is enabled, sets the ID of the -// player to show the effect on. -// $divorce_progress signals that there is a divorce in progress -// $@divorcer$ name of the person who requested divorce -// $@divorcee id of the partner, who has to accept the divorce and pay. - -//The Priest - official iRO sprite & in-dialog name (on-map name not confirmed) -prt_church,100,123,4 script Vomars 60,{ - set @name$,"Vomars"; - - function SF_wed_end; - function SF_equip_check; - function SF_Groom; - function SF_Bride; - function SF_AcceptGroom; - function SF_AcceptBride; - function SF_RetrieveRingM; - function SF_RetrieveRingF; - function SF_RingsAccepted; - function SF_StartCeremony; - - if (getpartnerid() > 0) { - mes "["+@name$+"]"; - mes "You have my blessings, have a wonderful married life."; - close; - } - if ($wed_progress == 0) { // Official iRO dialog - mes "["+@name$+"]"; - mes "You must apply for"; - mes "marriage with Happy Marry"; - mes "before you can get married."; - mes "Happy Marry will let you know"; - mes "what else you'll need to do"; - mes "to prepare for marriage"; - close; - } // End official iRO dialog - - if (strcharinfo(0) == $wed_groom$) { - SF_Groom(); - end; - } - if (strcharinfo(0) == $wed_bride$) { - SF_Bride(); - end; - } - mes "["+@name$+"]"; - if ($wed_groom_progress == 0 || $wed_bride_progress == 0) { - mes "There is a wedding being planned. I would appreciate it if you would not interrupt me."; - close; - } - if ($wed_groom_progress == 6) { - mes "I am wedding "+$wed_groom$+" and "+$wed_bride$+", and it's already too late to object. Please let me continue."; - close; - } - mes "I am going to wed "+$wed_groom$+" and "+$wed_bride$+", do you have an objection to it?"; - if (select("Sorry, please go on.","Yes, I actually do.") == 2) { - //Abort - npctalk "Ladies and gentlemen, "+strcharinfo(0)+" has an objection to the wedding!"; - SF_wed_end(); - mes "Why should they not be wed?"; - input $@msg$; - npctalk strcharinfo(0)+"'s objection is: "+$@msg$; - emotion e_sob; - mes "I see..."; - } else - mes "Very well, go sit and enjoy the ceremony."; - close; - -function SF_Groom { - if ($wed_bride_progress == 0) { - mes "["+@name$+"]"; - mes "Looks like your bride has yet to arrive and register."; - close; - } - if (SF_equip_check() == 0) - close; - - switch($wed_groom_progress) { - case 1: - SF_AcceptBride(); - break; - case 2: - mes "["+@name$+"]"; - mes "I am waiting for your partner to accept you to start the ceremony."; - close; - case 3: - SF_RetrieveRingM(); - break; - case 4: - mes "["+@name$+"]"; - mes "Your partner's wedding ring hasn't been retrieved yet. The ceremony will start as soon as you both have claimed your rings."; - close; - case 5: - mes "["+@name$+"]"; - SF_StartCeremony(); - break; - default: - mes "["+@name$+"]"; - mes "Please don't interrupt me now."; - close; - } -} - -function SF_Bride { - if ($wed_groom_progress == 0) { - mes "["+@name$+"]"; - mes "Looks like your groom has yet to arrive and register."; - close; - } - - if (SF_equip_check() == 0) - close; - - switch ($wed_bride_progress) { - case 1: - SF_AcceptGroom(); - break; - case 2: - mes "["+@name$+"]"; - mes "I am waiting for your partner to accept you to start the ceremony."; - close; - case 3: - SF_RetrieveRingF(); - break; - case 4: - mes "["+@name$+"]"; - mes "Your partner's wedding ring hasn't been retrieved yet. The ceremony will start as soon as you both have claimed your rings."; - close; - case 5: - mes "["+@name$+"]"; - SF_StartCeremony(); - break; - default: - mes "["+@name$+"]"; - mes "Please don't interrupt me now."; - close; - } -} - -function SF_AcceptGroom { - mes "["+@name$+"]"; - mes $wed_bride$+", "+$wed_groom$+" has requested to be your husband for the rest of your life. Do you accept?"; - next; - switch(select("I need time to think about it.","No, I don't!","Yes, I do!")) { - case 1: - mes "["+@name$+"]"; - mes "You what!?"; - mes "err.. *cough* *cough* very well... come back after you've made up your mind."; - emotion e_ag; - close; - case 2: - mes "["+@name$+"]"; - mes "!!"; - mes "Ah... err... ehm... okay. You two seem to have some differences to settle first."; - close2; - emotion e_omg; - npctalk "Ladies and gentlemen, "+$wed_bride$+" has rejected to marry "+$wed_groom$+"!"; - SF_wed_end(); - break; - case 3: - set $wed_bride_progress,2; - if ($wed_groom_progress == 2) { - SF_RingsAccepted(); - break; - } - emotion e_ok; - mes "["+@name$+"]"; - mes "After your groom approves, you will be given your rings, the ceremony will begin and you will be officially married."; - close; - } -} - -function SF_AcceptBride { - mes "["+@name$+"]"; - mes $wed_groom$+", "+$wed_bride$+" has requested to be your wife for the rest of your life. Do you accept?"; - next; - switch(select("I need time to think about it.","No, I don't!","Yes, I do!")) { - case 1: - mes "["+@name$+"]"; - mes "You what!?"; - mes "err.. *cough* *cough* very well... come back after you've made up your mind."; - emotion e_ag; - close; - case 2: - mes "["+@name$+"]"; - mes "!!"; - mes "Ah... err... ehm... okay. You two seem to have some differences to settle first."; - emotion e_omg; - close2; - npctalk "Ladies and gentlemen, "+$wed_groom$+" has rejected to marry "+$wed_bride$+"!"; - SF_wed_end(); - break; - case 3: - set $wed_groom_progress,2; - if ($wed_bride_progress == 2) { - SF_RingsAccepted(); - break; - } - emotion e_ok; - mes "["+@name$+"]"; - mes "After your bride approves, you will be given your rings, the ceremony will begin and you will be officially married."; - close; - } -} - -function SF_RingsAccepted { - mes "["+@name$+"]"; - mes "Now that you both have accepted, the wedding will begin. Please come forth, you and your partner, to retrieve your rings."; - set $wed_bride_progress,3; - set $wed_groom_progress,3; - announce $wed_groom$+" and "+$wed_bride$+"'s wedding ceremony will be held at the church!",8; - close2; - emotion e_lv; - npctalk "May the groom and bride please step forward and retrieve their rings?"; -} - -function SF_RetrieveRingM { - mes "["+@name$+"]"; - if ($@wed_ring && countitem($@wed_ring) < 1) { - mes "What happened to your "+getitemname($@wed_ring)+"? You didn't lose it... did you? We need it to continue with the ceremony!"; - close; - } - if ($wed_bride_sex) - set @item, 2634; //Groom's wedding ring - else - set @item, 2635; //Bride's wedding ring - if (getnameditem(@item,$wed_groom$) == 0) { - mes "You don't seem to have enough space to carry the ring... go free up some space and come back to reclaim your partner's ring."; - close; - } - mes "Here's the wedding ring for your bride."; - if ($@wed_ring) delitem $@wed_ring,1; - set $wed_groom_progress,4; - - if ($wed_bride_progress == 4) - SF_StartCeremony(); - else { - mes "Once your bride retrieves the ring, the ceremony will begin."; - close; - } -} - -function SF_RetrieveRingF { - mes "["+@name$+"]"; - if ($@wed_ring && countitem($@wed_ring) < 1) { - mes "What happened to your "+getitemname($@wed_ring)+"? You didn't lose it... did you? We need it to continue with the ceremony!"; - close; - } - if ($wed_groom_sex) - set @item, 2634; //Groom's wedding ring - else - set @item, 2635; //Bride's wedding ring - - if (getnameditem(@item,$wed_bride$) == 0) { - mes "You don't seem to have enough space to carry the ring... go free up some space and come back to reclaim your partner's ring."; - close; - } - mes "Here's the wedding ring for your groom."; - if ($@wed_ring) delitem $@wed_ring,1; - set $wed_bride_progress,4; - - if ($wed_groom_progress == 4) - SF_StartCeremony(); - else { - mes "Once your groom retrieves the ring, the ceremony will begin."; - close; - } -} - -function SF_StartCeremony { - mes "I will now start the wedding ceremony, and you will be declared forth husband and wife."; - set $wed_bride_progress,5; - set $wed_groom_progress,5; - set $@msg$,$wed_groom$; - if (strcharinfo(0) == $wed_groom$) - set $@msg$,$wed_bride$; - if (marriage($@msg$) == 0) { - next; - mes "["+@name$+"]"; - mes "Where is "+$@msg$+"?? I can't marry you both if one is missing..."; - close; - } - set $wed_bride_progress,6; - set $wed_groom_progress,6; - initnpctimer; - close; -} - -OnTimer1000: - npctalk "Ladies and Gentlemen, We will now join in holy matrimony these two lovers."; - end; - -OnTimer5000: - npctalk "Now more than ever, will both of your lives be entwined together as so will be your souls."; - end; - -OnTimer10000: - npctalk "You will both honor and cherish each other through the best and worst of times."; - end; - -OnTimer15000: - npctalk "The safety and well being of your other will now also be your responsibility."; - end; - -OnTimer20000: - npctalk "May in sickness or good health, your love burn bright like no force can extinguish it."; - end; - -OnTimer25000: - npctalk "Those here stand witness to these vows bestowed upon you, you must act accordingly to them."; - end; - -OnTimer30000: - npctalk "Understanding that, we are nothing more but mortals on this earth, but this is our triumph."; - end; - -OnTimer35000: - npctalk "We here will now join these two mortal entities, and create an immortal love."; - end; - -OnTimer40000: - npctalk $wed_groom$+", you have accepted to take "+$wed_bride$+" as your lawfully wedded wife,"; - end; - -OnTimer45000: - npctalk "and you, "+$wed_bride$+", have accepted take "+$wed_groom$+" as your lawfully wedded husband."; - end; - -OnTimer50000: - npctalk "And as such, now, by the powers vested in me..."; - end; - -OnTimer55000: - npctalk "I pronounce you Husband and Wife, you may kiss the bride and exchange rings."; - if ($wedding_effect_id && isloggedin($wedding_effect_id)) - { - attachrid($wedding_effect_id); - wedding; - detachrid; - } else - wedding; - SF_wed_end(); - stopnpctimer; - end; - -//Subfunction: Checks that the groom/bride is still wearing their stuff. -function SF_equip_check { - if (sex && getequipid(2) != 7170) { - mes "["+@name$+"]"; - mes "Child, what did you do with your "+getitemname(7170)+"?"; - emotion e_dots; - return 0; - } - if (sex == 0 && getequipid(2) != 2338) { - mes "["+@name$+"]"; - mes "Child, you are supposed to wear a "+getitemname(2338)+" at all times during the ceremony..."; - emotion e_dots; - return 0; - } - if (sex == 0 && $@wed_veil && getequipid(1) != 2206) { - mes "["+@name$+"]"; - mes "Child, you can't take off your "+getitemname(2206)+" yet...."; - emotion e_dots; - return 0; - } - return 1; -} - -//Subfunction: Resets wedding variables. -function SF_wed_end { - set $wed_groom$,""; - set $wed_groom_sex, 0; - set $wed_bride$,""; - set $wed_bride_sex, 0; - set $wed_groom_progress,0; - set $wed_bride_progress,0; - set $wed_progress,0; - set $wedding_effect_id,0; -} - -OnInit: - if ($wed_groom_progress==6) { - SF_wed_end(); - } - end; -} - -//Registration & Status -prt_church,106,99,3 script Happy Marry 67,{ - set @name$,"Marry"; - if (getpartnerid() > 0) { - mes "["+@name$+"]"; - mes "Isn't marriage beautiful?"; - close; - } - - function SF_WedProgress; - function SF_Principles; - function SF_Procedure; - function SF_Register; - function SF_TryRegister; - - if ($wed_progress) { - SF_WedProgress(); - end; - } - - do { - mes "["+@name$+"]"; - mes "Marriage... is such a beautiful thing."; - mes "Would you like to get married with someone?"; - next; - set @menu, select( - "I'll be single forever!", - "Explain the principles of marriage.", - "Explain the marriage procedure.", - "I want to get married with someone." - ); - switch (@menu) { - case 1: //Quit - mes "["+@name$+"]"; - mes "In that case, enjoy your bachelor's life."; - close; - case 2: //Principles - SF_Principles(); - break; - case 3: //Procedure - SF_Procedure(); - break; - case 4: //Register - SF_Register(); - break; - } - } while (@menu > 1); - end; - -function SF_Register { - if ($@wed_allow) { //Role select - mes "["+@name$+"]"; - mes "Very well, whom would you like to register as?"; - next; - set @submenu, select("Groom","Bride","Cancel"); - } else if (sex) { //Groom - mes "["+@name$+"]"; - mes "Very well, will you register as the Groom?"; - next; - if (select("Yes","I've changed my mind.")==1) - set @submenu, 1; - else - set @submenu, 3; - } else { //Bride - mes "["+@name$+"]"; - mes "Very well, will you register as the Bride?"; - next; - if (select("Yes","I've changed my mind.")==1) - set @submenu, 2; - else - set @submenu, 3; - } - switch (@submenu) { - case 1: //Groom - SF_TryRegister(0); - set $wed_progress,1; - mes "["+@name$+"]"; - mes "You are now registered as the groom."; - mes "Tell your bride to register as soon as possible."; - emotion e_hmm; - initnpctimer; - close; - case 2: //Bride - SF_TryRegister(1); - set $wed_progress,1; - mes "["+@name$+"]"; - mes "You are now registered as the bride."; - mes "Tell your groom to register as soon as possible."; - emotion e_hmm; - initnpctimer; - close; - default: //Cancel - mes "["+@name$+"]"; - mes "Come back when you are ready."; - close; - } -} - -function SF_WedProgress { - if (strcharinfo(0) == $wed_groom$) { - mes "["+@name$+"]"; - if ($wed_bride_progress > 0) - mes "The Priest will handle the rest of the ceremony."; - else - mes "Tell your bride to register, what is taking so long? Time is running out."; - close; - } - if (strcharinfo(0) == $wed_bride$) { - mes "["+@name$+"]"; - if ($wed_groom_progress > 0) - mes "The Priest will handle the rest of the ceremony."; - else - mes "Tell your groom to register, what is taking so long? Time is running out."; - close; - } - if (($wed_groom_progress == 0) && (sex == 1 || $@wed_allow == 1)) { - mes "["+@name$+"]"; - mes $wed_bride$+" is waiting for the groom to register. Are you the one who came to register as groom?"; - next; - if (select("Yes, I am.","Sorry, you got the wrong person.") == 1) { - SF_TryRegister(0); - stopnpctimer; - set $wed_groom_progress,1; - mes "["+@name$+"]"; - mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin."; - emotion e_no1; - close2; - npctalk "Registration finished. "+$wed_groom$+" and "+$wed_bride$+", please reaffirm your vows with the Priest."; - emotion e_no1; - end; - } else { - mes "["+@name$+"]"; - mes "I see. Sorry to have bothered you then."; - close; - } - - } - if (($wed_bride_progress == 0) && (sex == 0 || $@wed_allow == 1)) { - mes "["+@name$+"]"; - mes $wed_groom$+" is waiting for the bride to register. Are you the one who came to register as the bride?"; - next; - if(select("Yes, I am.","Sorry, you got the wrong person.") == 1) { - SF_TryRegister(1); - stopnpctimer; - mes "["+@name$+"]"; - mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin."; - emotion e_no1; - close2; - npctalk "Registration finished. "+$wed_groom$+" and "+$wed_bride$+", please reaffirm your vows with the Priest."; - emotion e_no1; - end; - } else { - mes "["+@name$+"]"; - mes "I see. Sorry to have bothered you then."; - close; - } - } - mes "["+@name$+"]"; - mes "There is a wedding in progress."; - mes "Would you like to know the progress of said wedding?"; - next; - if (select("Yes","No") != 1) { - mes "["+@name$+"]"; - mes "Enjoy the wedding."; - close; - } - //Display Progress - mes "["+@name$+"]"; - switch ($wed_groom_progress) { - case 0: - mes "The groom has not registered yet."; - break; - case 1: - mes "The groom, "+$wed_groom$+", has yet to accept the bride."; - break; - case 2: - mes "The groom, "+$wed_groom$+", is waiting for the bride's acceptance."; - break; - case 3: - mes "The groom, "+$wed_groom$+", has yet to retrieve the ring."; - break; - case 4: - mes "The groom, "+$wed_groom$+", is waiting for the bride to retrieve the ring."; - break; - } - switch ($wed_bride_progress) { - case 0: - mes "The bride has not registered yet."; - break; - case 1: - mes "The bride, "+$wed_bride$+", has yet to confirm the groom."; - break; - case 2: - mes "The bride, "+$wed_bride$+", is waiting for the groom's acceptance."; - break; - case 3: - mes "The bride, "+$wed_bride$+", has yet to retrieve the ring."; - break; - case 4: - mes "The bride, "+$wed_bride$+", is waiting for the groom to retrieve the ring."; - break; - case 5: - mes "We are just waiting for both "+$wed_groom$+" and "+$wed_bride$+" to be together to marry them."; - break; - case 6: - mes $wed_groom$+" and "+$wed_bride$+"'s wedding ceremony is already well on it's way."; - break; - } - mes "Enjoy the remaining of the wedding."; - close; -} - -OnInit: - if ($wed_groom_progress + $wed_bride_progress == 1) - initnpctimer; - end; - -OnTimer60000: - //Registration failed. - if ($wed_bride_progress == 1) - set $@msg$, $wed_bride$; - else - set $@msg$, $wed_groom$; - - npctalk "Registration timed out. Is it that noone wants to marry "+$@msg$+"..?"; - emotion e_hmm; - - set $wed_groom$,""; - set $wed_groom_sex, 0; - set $wed_bride$,""; - set $wed_bride_sex, 0; - set $wed_groom_progress,0; - set $wed_bride_progress,0; - set $wed_progress,0; - stopnpctimer; - end; - -//Subfunction SF_TryRegister (int bride) -function SF_TryRegister { - set @bride, getarg(0); - set @type$, "groom"; - if (@bride) - set @type$, "bride"; - - mes "["+@name$+"]"; - mes "Before registering as "+@type$+", let me check if you meet all the requirements..."; - next; - if (Upper == 2) { - mes "["+@name$+"]"; - mes "Oh dear, you are too young to be thinking of marriage!"; - emotion e_gasp; - close; - } - if (sex) - set @item, 7170; - else - set @item, 2338; - - if (getequipid(2) != @item) { - mes "["+@name$+"]"; - mes "You should be wearing a "+getitemname(@item)+" if you want to get married."; - close; - } - if (sex == 0 && $@wed_veil && getequipid(1) != 2206) { - mes "["+@name$+"]"; - mes "Where is your "+getitemname(2206)+"? It's a necessary complement to your dress."; - close; - } - if ($@wed_ring && countitem($@wed_ring) < 1) { - mes "["+@name$+"]"; - mes "Where's the ring? You need a "+getitemname($@wed_ring)+" for the ring exchange, dear."; - close; - } - if (@bride) - set @cost, $@wed_bride_reg; - else - set @cost, $@wed_groom_reg; - - if (Zeny < @cost) { - mes "["+@name$+"]"; - mes "I am sorry, but you don't have enough to pay for the registration fee."; - mes "Come back once you have collected "+@cost+"z."; - close; - } - set Zeny,Zeny-@cost; - sc_start SC_Wedding,3600000000,1; //Start Wedding Effect (SC_WEDDING) - if (@bride) { - set $wed_bride_progress,1; - set $wed_bride$,strcharinfo(0); - set $wed_bride_sex, sex; - if ($@wedding_effect == 1) //Store account id for effect. - set $wedding_effect_id, getcharid(3); - } else { - set $wed_groom_progress,1; - set $wed_groom$,strcharinfo(0); - set $wed_groom_sex, sex; - if ($@wedding_effect == 2) //Store account id for effect. - set $wedding_effect_id, getcharid(3); - } -} - -//Explain wedding principles... -function SF_Principles { - mes "["+@name$+"]"; - mes "Weddings are performed by our local Priest with the intent of promoting love and peace among the loving couples."; - next; - mes "["+@name$+"]"; - mes "The proposal must be done with prudence and courtesy, once the wedlocks have been made, they cannot be undone."; - next; - mes "["+@name$+"]"; - mes "The two who have been joined by marriage must remain together forever until the day death do them apart."; - next; - mes "["+@name$+"]"; - if ($@wed_allow == 1) - mes "Altough normally only males can wed females (and viceversa), our local Priest is more open-minded than that and he permits all pairings regardless of gender."; - else - mes "Males may only wed with females, and females only with males, the church will not consent any other kind of partnerships."; - next; - mes "["+@name$+"]"; - mes "If there is a significant other with whom you want to spend the rest of your life with, then don't be shy to propose."; - next; - mes "["+@name$+"]"; - mes "I wish for many blessings upon couples who wish to live happily ever after..."; - next; -} - -//Explain the wedding procedure... -function SF_Procedure { - mes "["+@name$+"]"; - mes "First of all, both groom and bride must register with me."; - next; - if ($@wed_allow == 1) { - mes "["+@name$+"]"; - mes "The registration requirements are:"; - mes "- Males must be wearing a "+getitemname(7170)+"."; - mes "- Females must be wearing a "+getitemname(2338)+"."; - if ($@wed_veil) mes "- Females must also wear a "+getitemname(2206)+"."; - if ($@wed_ring) mes "- Both must own a "+getitemname($@wed_ring)+" each."; - if ($@wed_groom_reg > 0) mes "- The registration fee for the groom is "+$@wed_groom_reg+"z."; - if ($@wed_bride_reg > 0) mes "- The registration fee for the bride is "+$@wed_bride_reg+"z."; - } else { - mes "["+@name$+"]"; - mes "The registration requirements for the groom are:"; - mes "- To be wearing a "+getitemname(7170)+"."; - if ($@wed_ring) mes "- To own a "+getitemname($@wed_ring)+"."; - if ($@wed_groom_reg > 0) mes "- Pay a Registration fee of "+$@wed_groom_reg+"z."; - next; - mes "["+@name$+"]"; - mes "The registration requirements for the bride are:"; - mes "- To be wearing a "+getitemname(2338)+"."; - if ($@wed_veil) mes "- To be wearing a "+getitemname(2206)+"."; - if ($@wed_ring) mes "- To own a "+getitemname($@wed_ring)+"."; - if ($@wed_bride_reg > 0) mes "- Pay a Registration fee of "+$@wed_bride_reg+"z."; - } - next; - mes "["+@name$+"]"; - mes "I shouldn't need to mention this, but adopted kids are too young to get married."; - mes "Both groom and bride must register within a minute of each other, or the wedding will be cancelled. So be sure you both are ready and meet the registration requirements beforehand."; - next; - mes "["+@name$+"]"; - mes "After both have registered with me, you have to go pledge your vows to the Priest and accept your registered partner. If for some reason you reject your registered partner, the wedding will be cancelled..."; - next; - mes "["+@name$+"]"; - mes "If you both accept each other, then the wedding has been decided and the ceremony will begin."; - if ($@wed_ring) { - mes "But first, you need to get your rings ready."; - next; - mes "["+@name$+"]"; - mes "Talk to the priest once more, and he will exchange your "+getitemname($@wed_ring)+" for a wedding ring. After you both have claimed the rings for exchanging, the ceremony will begin."; - } - next; - mes "["+@name$+"]"; - mes "If there are various couples who desire to marry, you should keep in order, for the Priest can only handle one wedding at a time."; - next; -} -} - -prt_church,94,99,4 script Sister Lisa 79,{ - set @name$,"Lisa"; - - function SF_DivorceEnd; - function SF_InProgress; - - if ($@divorce_progress==1) { - goto SF_InProgress; - end; - } - - do { - mes "["+@name$+"]"; - mes "Divorcing can be such a sad event..."; - if (getpartnerid() == 0) { - mes "People shouldn't make shallow vows to others, don't you think?"; - close; - } - mes "You wouldn't want to divorce, by any chance?"; - next; - set @menu, select( - "I am happy as I am, thank you.", - "Explain the divorce.", - "Explain Requirements.", - "I want to divorce." - ); - switch (@menu) { - case 1: - mes "["+@name$+"]"; - mes "Good to hear."; - close; - case 2: //Explanation - mes "["+@name$+"]"; - mes "Even though it is said that once the wedlocks have been made they cannot be undone, sometimes it is necessary to undo our mistakes from the past.."; - next; - mes "["+@name$+"]"; - mes "It is sad, but true. If you happen to have married the wrong person, it is possible to divorce, rather than spend the rest of your life with the wrong one."; - next; - break; - case 3: //Requirement - mes "["+@name$+"]"; - mes "In order to file for divorce, I need you both to agree to it."; - mes "After you file in for divorce, your spouse has one minute to agree, and then you will both be divorced."; - if ($@wed_divorce_fee > 0) mes "The fee is of "+$@wed_divorce_fee+"z and is paid by the person who confirms the divorce, so plan ahead of time how you will divide the costs."; - next; - break; - case 4: //Divorce - mes "["+@name$+"]"; - mes "You should not regret the choices you've made in life."; - mes "Are you positively sure about getting divorced?"; - next; - if (select("Wait... I need to think about it.","Absolutely") != 2) { - mes "["+@name$+"]"; - mes "You should think this through."; - close; - } - mes "["+@name$+"]"; - set $@divorcee,getpartnerid(); - set $@divorcer$,strcharinfo(0); - set $@divorce_progress,1; - initnpctimer; - mes "Very well, get your partner to confirm, and I will collect the fee for filing the divorce then."; - close; - } - } while (@menu > 1); -end; - -function SF_InProgress { - if (strcharinfo(0) == $@divorcer$) { - mes "["+@name$+"]"; - mes "...I am still waiting for your partner to confirm the divorce procedure."; - close; - } - if (getcharid(0) != $@divorcee) { - mes "["+@name$+"]"; - mes "I am in the progress of divorcing "+$@divorcer$+"."; - mes "Do you know who the spouse is?"; - close; - } - //Confirm... - mes "["+@name$+"]"; - mes $@divorcer$+" has asked to divorce you. If you accept, and have the fee of "+$@wed_divorce_fee+"z at hand, I will proceed to divorce you two."; - mes "So, should I proceed with the divorce?"; - next; - if (select("I don't want to divorce....","Yes, we have agreed to this.")!=2) { - mes "["+@name$+"]"; - mes "I hope you can work things out."; - emotion e_pat; - goto SF_DivorceEnd; - close; - } - if (Zeny < $@wed_divorce_fee) { - mes "["+@name$+"]"; - mes "Well, I can't file your divorce because you don't have enough for the fee. Get your partner to lend you some?"; - close; - } - if (!(divorce())) { - mes "["+@name$+"]"; - mes "Where has "+$@divorcer$+" gone to? I can't divorce you unless you both are here..."; - emotion e_swt2; - close; - } - set Zeny,Zeny-$@wed_divorce_fee; - announce $@divorcer$+" has just divorced "+strcharinfo(0)+"...", 8; - mes "["+@name$+"]"; - mes "Your divorce has been filed. You are no longer wed."; - emotion e_sob; - goto SF_DivorceEnd; - close; -} - -function SF_DivorceEnd { - stopnpctimer; - set $@divorce_progress,0; - set $@divorcee,0; - set $@divorcer$,""; -} - -OnTimer60000: - npctalk "Divorce confirmation time's is up. Where did "+$@divorcer$+"'s spouse go..."; - emotion e_what; - SF_DivorceEnd(); - end; -} diff --git a/npc/custom/quests/ironcane.txt b/npc/custom/quests/ironcane.txt deleted file mode 100644 index 9ae299fab..000000000 --- a/npc/custom/quests/ironcane.txt +++ /dev/null @@ -1,49 +0,0 @@ -//===== rAthena Script ======================================= -//= Iron Cain Quest -//===== By: ================================================== -//= eA Dev Team -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Iron Cain (lower part of a full helmet) -//===== Additional Comments: ================================= -//= 1.1 Fixed exploit [Lupus] -//============================================================ - -payon,109,118,5 script Iron Cain Quest 76,{ - mes "[Iron Cain Quest]"; - mes "Here's what you need"; - mes "The requirements, should you be brave enough to collect them, are:"; - mes "- 200 Orcish vouchers"; - mes "- 1 Heroic Emblem"; - next; - mes "[Iron Cain Quest]"; - mes "Are you ready for me to make this special item?"; - next; - menu "Sure am!",-, "The requirements are unfathomable!",L_Unfathomable; - - mes "[Iron Cain Quest]"; - if(countitem(931) < 200 || countitem(968) < 1) goto L_NotEnough; - delitem 931,200; - delitem 968,1; - mes "Wow! You are brave indeed!"; - next; - mes "[Iron Cain Quest]"; - mes "Enjoy!"; - getitem 2266,1; - close; - -L_NotEnough: - mes ". . .I'm sorry. You don't have enough money and items."; - mes "I can't afford to make this if you don't bring all materials needed."; - mes "Please understand this is to benefit heroes such as yourself!"; - close; - -L_Unfathomable: - mes "[Iron Cain Quest]"; - mes "What I had to go through was more unfathomable.."; - mes "If you succeed in getting these items, you will have incredible strength!"; - close; -} diff --git a/npc/pre-re/other/monster_race.txt b/npc/pre-re/other/monster_race.txt index aa82efbbe..3fd668380 100644 --- a/npc/pre-re/other/monster_race.txt +++ b/npc/pre-re/other/monster_race.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== -//= 1.6 +//= 1.7 //===== Compatible With: ===================================== //= rAthena SVN (Trunk, r12752+) //===== Description: ========================================= @@ -20,6 +20,7 @@ //= 1.4 Fixed call to a non-existant event. [L0ne_W0lf] //= 1.5 Updated Dialog. [L0ne_W0lf] //= 1.6 Updated experience rewards. [L0ne_W0lf] +//= 1.7 Optimization, -4000 lines (more can still be done). [Euphy] //============================================================ //============================================================ @@ -2563,8566 +2564,4437 @@ p_track01,39,49,3 script Game Guide#single 845,{ close; } -p_track01,56,38,0 script starting#1 -1,0,0,{ +- script starting_1 -1,{ end; OnDisable: - enablenpc "Luk#1"; - enablenpc "Luk#2"; - enablenpc "Luk#3"; - enablenpc "Luk#4"; - enablenpc "Luk#5"; - enablenpc "Luk#6"; - enablenpc "Tire#1"; - enablenpc "Tire#2"; - enablenpc "Tire#3"; - enablenpc "Tire#4"; - enablenpc "Tire#5"; - enablenpc "Tire#6"; - set $@mr_1_luk1,0; - set $@mr_1_tire1,0; + for(set .@i,1; .@i<7; set .@i,.@i+1) + enablenpc "Luk"+((strnpcinfo(2)=="1")?"":strnpcinfo(2))+"#"+.@i; + for(set .@i,1; .@i<7; set .@i,.@i+1) + enablenpc "Tire"+((strnpcinfo(2)=="1")?"":strnpcinfo(2))+"#"+.@i; + setd "$@mr_1_luk"+strnpcinfo(2),0; + setd "$@mr_1_tire"+strnpcinfo(2),0; end; OnInit: - disablenpc "starting#1"; + disablenpc strnpcinfo(0); end; OnTouchNPC: set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } + if (.@start < 11) set .@speed,60; + else if (.@start < 21) set .@speed,70; + else if (.@start < 31) set .@speed,80; + else if (.@start < 41) set .@speed,90; + else if (.@start < 51) set .@speed,100; + else if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,5000,.@speed; end; } -p_track01,33,38,0 script Luk#1 -1,0,0,{ +- script Luk_1 -1,{ end; OnInit: - disablenpc "Luk#1"; + disablenpc strnpcinfo(0); end; OnTouchNPC: set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } + if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,10000,.@speed; end; } -p_track01,37,38,0 script Luk#2 -1,0,0,{ +- script Luk_2 -1,{ end; OnInit: - disablenpc "Luk#2"; + disablenpc strnpcinfo(0); end; OnTouchNPC: set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } + if (.@start < 61) set .@time,1000; + else if (.@start < 71) set .@time,2000; + else if (.@start < 81) set .@time,3000; + else if (.@start < 91) set .@time,4000; + if (.@time) sc_start SC_STUN,.@time,0; end; } -p_track01,53,38,0 script Luk#3 -1,0,0,{ +- script Tire_1 -1,{ end; - OnInit: - disablenpc "Luk#3"; + disablenpc strnpcinfo(0); end; OnTouchNPC: set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } + if (.@start < 61) set .@time,1000; + else if (.@start < 71) set .@time,2000; + else if (.@start < 81) set .@time,3000; + else if (.@start < 91) set .@time,4000; + if (.@time) sc_start SC_SLEEP,.@time,0; end; } -p_track01,45,38,0 script Luk#4 -1,0,0,{ - end; +p_track01,56,38,0 duplicate(starting_1) starting#1 -1,0,0 +p_track01,56,36,0 duplicate(starting_1) starting#2 -1,0,0 +p_track01,56,34,0 duplicate(starting_1) starting#3 -1,0,0 +p_track01,56,32,0 duplicate(starting_1) starting#4 -1,0,0 +p_track01,56,30,0 duplicate(starting_1) starting#5 -1,0,0 +p_track01,56,28,0 duplicate(starting_1) starting#6 -1,0,0 -OnInit: - disablenpc "Luk#4"; - end; +p_track01,33,38,0 duplicate(Luk_1) Luk#1 -1,0,0 +p_track01,37,38,0 duplicate(Luk_1) Luk#2 -1,0,0 +p_track01,53,38,0 duplicate(Luk_1) Luk#3 -1,0,0 +p_track01,45,38,0 duplicate(Luk_1) Luk#4 -1,0,0 +p_track01,33,36,0 duplicate(Luk_1) Luk2#1 -1,0,0 +p_track01,37,36,0 duplicate(Luk_1) Luk2#2 -1,0,0 +p_track01,53,36,0 duplicate(Luk_1) Luk2#3 -1,0,0 +p_track01,45,36,0 duplicate(Luk_1) Luk2#4 -1,0,0 +p_track01,33,34,0 duplicate(Luk_1) Luk3#1 -1,0,0 +p_track01,37,34,0 duplicate(Luk_1) Luk3#2 -1,0,0 +p_track01,53,34,0 duplicate(Luk_1) Luk3#3 -1,0,0 +p_track01,45,34,0 duplicate(Luk_1) Luk3#4 -1,0,0 +p_track01,33,32,0 duplicate(Luk_1) Luk4#1 -1,0,0 +p_track01,37,32,0 duplicate(Luk_1) Luk4#2 -1,0,0 +p_track01,53,32,0 duplicate(Luk_1) Luk4#3 -1,0,0 +p_track01,45,32,0 duplicate(Luk_1) Luk4#4 -1,0,0 +p_track01,33,30,0 duplicate(Luk_1) Luk5#1 -1,0,0 +p_track01,37,30,0 duplicate(Luk_1) Luk5#2 -1,0,0 +p_track01,53,30,0 duplicate(Luk_1) Luk5#3 -1,0,0 +p_track01,45,30,0 duplicate(Luk_1) Luk5#4 -1,0,0 +p_track01,33,28,0 duplicate(Luk_1) Luk6#1 -1,0,0 +p_track01,37,28,0 duplicate(Luk_1) Luk6#2 -1,0,0 +p_track01,53,28,0 duplicate(Luk_1) Luk6#3 -1,0,0 +p_track01,45,28,0 duplicate(Luk_1) Luk6#4 -1,0,0 -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} +p_track01,49,38,0 duplicate(Luk_2) Luk#5 -1,0,0 +p_track01,41,38,0 duplicate(Luk_2) Luk#6 -1,0,0 +p_track01,49,36,0 duplicate(Luk_2) Luk2#5 -1,0,0 +p_track01,41,36,0 duplicate(Luk_2) Luk2#6 -1,0,0 +p_track01,49,34,0 duplicate(Luk_2) Luk3#5 -1,0,0 +p_track01,41,34,0 duplicate(Luk_2) Luk3#6 -1,0,0 +p_track01,49,32,0 duplicate(Luk_2) Luk4#5 -1,0,0 +p_track01,41,32,0 duplicate(Luk_2) Luk4#6 -1,0,0 +p_track01,49,30,0 duplicate(Luk_2) Luk5#5 -1,0,0 +p_track01,41,30,0 duplicate(Luk_2) Luk5#6 -1,0,0 +p_track01,49,28,0 duplicate(Luk_2) Luk6#5 -1,0,0 +p_track01,41,28,0 duplicate(Luk_2) Luk6#6 -1,0,0 -p_track01,49,38,0 script Luk#5 -1,0,0,{ - end; +p_track01,43,38,0 duplicate(Tire_1) Tire#1 -1,0,0 +p_track01,39,38,0 duplicate(Tire_1) Tire#2 -1,0,0 +p_track01,35,38,0 duplicate(Tire_1) Tire#3 -1,0,0 +p_track01,55,38,0 duplicate(Tire_1) Tire#4 -1,0,0 +p_track01,51,38,0 duplicate(Tire_1) Tire#5 -1,0,0 +p_track01,47,38,0 duplicate(Tire_1) Tire#6 -1,0,0 +p_track01,43,36,0 duplicate(Tire_1) Tire2#1 -1,0,0 +p_track01,39,36,0 duplicate(Tire_1) Tire2#2 -1,0,0 +p_track01,35,36,0 duplicate(Tire_1) Tire2#3 -1,0,0 +p_track01,55,36,0 duplicate(Tire_1) Tire2#4 -1,0,0 +p_track01,51,36,0 duplicate(Tire_1) Tire2#5 -1,0,0 +p_track01,47,36,0 duplicate(Tire_1) Tire2#6 -1,0,0 +p_track01,43,34,0 duplicate(Tire_1) Tire3#1 -1,0,0 +p_track01,39,34,0 duplicate(Tire_1) Tire3#2 -1,0,0 +p_track01,35,34,0 duplicate(Tire_1) Tire3#3 -1,0,0 +p_track01,55,34,0 duplicate(Tire_1) Tire3#4 -1,0,0 +p_track01,51,34,0 duplicate(Tire_1) Tire3#5 -1,0,0 +p_track01,47,34,0 duplicate(Tire_1) Tire3#6 -1,0,0 +p_track01,43,32,0 duplicate(Tire_1) Tire4#1 -1,0,0 +p_track01,39,32,0 duplicate(Tire_1) Tire4#2 -1,0,0 +p_track01,35,32,0 duplicate(Tire_1) Tire4#3 -1,0,0 +p_track01,55,32,0 duplicate(Tire_1) Tire4#4 -1,0,0 +p_track01,51,32,0 duplicate(Tire_1) Tire4#5 -1,0,0 +p_track01,47,32,0 duplicate(Tire_1) Tire4#6 -1,0,0 +p_track01,43,30,0 duplicate(Tire_1) Tire5#1 -1,0,0 +p_track01,39,30,0 duplicate(Tire_1) Tire5#2 -1,0,0 +p_track01,35,30,0 duplicate(Tire_1) Tire5#3 -1,0,0 +p_track01,55,30,0 duplicate(Tire_1) Tire5#4 -1,0,0 +p_track01,51,30,0 duplicate(Tire_1) Tire5#5 -1,0,0 +p_track01,47,30,0 duplicate(Tire_1) Tire5#6 -1,0,0 +p_track01,43,28,0 duplicate(Tire_1) Tire6#1 -1,0,0 +p_track01,39,28,0 duplicate(Tire_1) Tire6#2 -1,0,0 +p_track01,35,28,0 duplicate(Tire_1) Tire6#3 -1,0,0 +p_track01,55,28,0 duplicate(Tire_1) Tire6#4 -1,0,0 +p_track01,51,28,0 duplicate(Tire_1) Tire6#5 -1,0,0 +p_track01,47,28,0 duplicate(Tire_1) Tire6#6 -1,0,0 +//============================================================ +// Monstrer Race - Dual Monster Race +//============================================================ +hugel,47,56,0 script #race_timer2-1 -1,{ OnInit: - disablenpc "Luk#5"; + enablenpc "#race_timer2-1"; + set $@mon_time_2_1,2; + initnpctimer; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } +OnEnable: + enablenpc "#race_timer2-1"; + set $@mon_time_2_1,2; + initnpctimer; end; -} -p_track01,41,38,0 script Luk#6 -1,0,0,{ +OnDisable: + disablenpc "#race_timer2-1"; + stopnpctimer; end; -OnInit: - disablenpc "Luk#6"; +OnTimer10000: + mapannounce "hugel","The Dual Monster Race will soon begin. We hope to see many of you participate!",bc_map,"0xffb6c1"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } +OnTimer30000: + mapannounce "hugel","The Dual Monster Race Arena has just opened.",bc_map,"0xffb6c1"; + set $@mon_time_2_1,1; + donpcevent "#race_timer2-2::OnEnable"; + enablenpc "Ticket Helper#2"; + donpcevent "TrapGlobal#race02::OnEnable"; end; -} -p_track01,43,38,0 script Tire#1 -1,0,0,{ - end; -OnInit: - disablenpc "Tire#1"; +OnTimer90000: + mapannounce "hugel","The Dual Monster Race arena is now open. Participants should enter the Arena as soon as they can.",bc_map,"0xffb6c1"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnTimer210000: + mapannounce "hugel","The entrance to the Dual Monster Race Arena will close shortly. Participants, please enter the arena now.",bc_map,"0xffb6c1"; end; -} -p_track01,39,38,0 script Tire#2 -1,0,0,{ +OnTimer270000: + mapannounce "hugel","The Dual Monster Race Arena's entrance will soon close.",bc_map,"0xffb6c1"; end; -OnInit: - disablenpc "Tire#2"; +OnTimer272000: + mapannounce "hugel","Participants, please enter the Arena before the doors close.",bc_map,"0xffb6c1"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnTimer330000: + mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0xffb6c1"; + set $@mon_time_2_1,0; + donpcevent "#race_timer2-1::OnDisable"; + stopnpctimer; end; } -p_track01,35,38,0 script Tire#3 -1,0,0,{ +p_track02,42,23,0 script #race_timer2-2 -1,{ +OnInit: + disablenpc "#race_timer2-2"; + set $@mon_time_2_2,0; end; -OnInit: - disablenpc "Tire#3"; +OnEnable: + enablenpc "#race_timer2-2"; + set $@mon_time_2_2,0; + initnpctimer; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnDisable: + disablenpc "#race_timer2-2"; + stopnpctimer; end; -} -p_track01,55,38,0 script Tire#4 -1,0,0,{ +OnTimer5000: + mapannounce "p_track02","Welcome to the Monster Race Arena.",bc_map,"0x87ceeb"; end; -OnInit: - disablenpc "Tire#4"; +OnTimer7000: + mapannounce "p_track02","Feel free to inquire at the help desk whenever you have questions.",bc_map,"0x87ceeb"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnTimer120000: + mapannounce "p_track02","The Dual Monster Race will start in 3 minutes.",bc_map,"0x87ceeb"; end; -} -p_track01,51,38,0 script Tire#5 -1,0,0,{ +OnTimer122000: + mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; end; -OnInit: - disablenpc "Tire#5"; +OnTimer240000: + mapannounce "p_track02","The Dual Monster Race will start shortly.",bc_map,"0x87ceeb"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnTimer242000: + mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; end; -} -p_track01,47,38,0 script Tire#6 -1,0,0,{ +OnTimer300000: + mapannounce "p_track02","The Monster Race is starting now. Good luck, everybody!",bc_map,"0x87ceeb"; + set $@mon_time_2_2,1; + set $@mon_race_2_1,0; + set $@mon_race_2_2,0; + disablenpc "Ticket Helper#2"; + donpcevent "#poring1::OnEnable"; + donpcevent "#lunatic1::OnEnable"; + donpcevent "#savagebebe1::OnEnable"; + donpcevent "#desertwolf1::OnEnable"; + donpcevent "#deviruchi1::OnEnable"; + donpcevent "#baphomet1::OnEnable"; + stopnpctimer; end; +} +p_track02,80,43,0 script #race_timer2-3 -1,{ OnInit: - disablenpc "Tire#6"; + disablenpc "#race_timer2-3"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnEnable: + enablenpc "#race_timer2-3"; + initnpctimer; end; -} -p_track01,56,36,0 script starting#2 -1,0,0,{ +OnDisable: + disablenpc "#race_timer2-3"; + stopnpctimer; end; -OnDisable: - enablenpc "Luk2#1"; - enablenpc "Luk2#2"; - enablenpc "Luk2#3"; - enablenpc "Luk2#4"; - enablenpc "Luk2#5"; - enablenpc "Luk2#6"; - enablenpc "Tire2#1"; - enablenpc "Tire2#2"; - enablenpc "Tire2#3"; - enablenpc "Tire2#4"; - enablenpc "Tire2#5"; - enablenpc "Tire2#6"; - set $@mr_1_luk2,0; - set $@mr_1_tire2,0; +OnTimer3000: + mapannounce "p_track02","The Monster Race is finished! Congratulations to all the winners!",bc_map,"0xFFFF00"; end; -OnInit: - disablenpc "starting#2"; +OnTimer6000: + mapannounce "p_track02","Please give your Racing Ticket to the Medal Distributor if you bet on the winning monster.",bc_map,"0xFFFF00"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } +OnTimer9000: + mapannounce "p_track02","You have 5 minutes to exchange a winning ticket for Prize Medals from the Medal Distributor.",bc_map,"0xFFFF00"; end; -} -p_track01,33,36,0 script Luk2#1 -1,0,0,{ +OnTimer12000: + mapannounce "p_track02","All tickets become void after this 5 minute period, so winners should claim their prize now.",bc_map,"0xFFFF00"; end; -OnInit: - disablenpc "Luk2#1"; +OnTimer15000: + mapannounce "p_track02","Please leave the Race Arena before this 5 minute period elapses. Thank you.",bc_map,"0xFFFF00"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } +OnTimer240000: + mapannounce "p_track02","Attention. We will being preparing for the next race shortly...",bc_map,"0xFFFF00"; end; -} -p_track01,37,36,0 script Luk2#2 -1,0,0,{ +OnTimer243000: + mapannounce "p_track02","We will close the Racing Arena in 1 minute to prepare for the next race.",bc_map,"0xFFFF00"; end; -OnInit: - disablenpc "Luk2#2"; +OnTimer246000: + mapannounce "p_track02","Participants in the last race should leave the arena as soon as possible.",bc_map,"0xFFFF00"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } +OnTimer249000: + mapannounce "p_track02","Thank you for your cooperation.",bc_map,"0xFFFF00"; end; -} -p_track01,53,36,0 script Luk2#3 -1,0,0,{ +OnTimer252000: + mapannounce "p_track02","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00"; end; -OnInit: - disablenpc "Luk2#3"; +OnTimer300000: + mapwarp "p_track02","hugel",63,73; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-1::OnEnable"; + set $@mon_race_2_1,0; + set $@mon_race_2_2,0; + donpcevent "#race_timer2-3::OnDisable"; + stopnpctimer; end; +} -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; +hugel,62,69,1 script Eckar Erenes#double 798,{ + mes "[Eckar Erenes]"; + mes "Welcome to the"; + mes "Monster Race Arena,"; + mes "the pride and joy of"; + mes "the village of Hugel!"; + mes "How may I help you?"; + next; + switch(select("Monster Race Info:Enter Monster Race")) { + case 1: + mes "[Eckar Erenes]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Eckar Erenes]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Eckar Erenes]"; + mes "Then, we have the Dual Monster"; + mes "Race in which the house odds and rewards are greater than in Single"; + mes "Monster Races: you must wager on 2 monsters, and they must place in"; + mes "1st and 2nd for you to win."; + next; + mes "[Eckar Erenes]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Eckar Erenes]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Eckar Erenes]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + break; + case 2: + break; } - else { - sc_start SC_WALKSPEED,10000,150; + mes "[Eckar Erenes]"; + mes "The entrance fee for all races"; + mes "in the Monster Race Arena is"; + mes "2,000 zeny. If you'd like to wager on a Single Monster Race,"; + mes "then please ask my brother"; + mes "Ellebird to help you."; + next; + mes "[Eckar Erenes]"; + mes "Otherwise, I'll help get you"; + mes "started if you're interested"; + mes "in a Dual Monster Race."; + mes "Would you like to wager"; + mes "on a Dual Monster Race?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + if (checkweight(909,700) == 0) { + mes "[Eckar Erenes]"; + mes "Hmm... You're toting"; + mes "too many things with you"; + mes "right now. You better put"; + mes "some of your stuff away in"; + mes "Kafra Storage before you can"; + mes "wager on any monster races..."; + close; + } + if (Zeny > 1999) { + if (countitem(7514) > 0) { + mes "[Eckar Erenes]"; + mes "Hm? What are you doing"; + mes "with an expired Racing Ticket?"; + mes "Well, I better get rid of it for you before it can get mixed up"; + mes "with your new Racing Ticket."; + delitem 7514,1; //Monster_Ticket + next; + if ($@mon_time_2_1 == 1) { + mes "[Eckar Erenes]"; + mes "Alright, I think you"; + mes "should be all set. I hope"; + mes "that you enjoy the race~"; + mes "Let me guide you inside"; + mes "the Monster Race Arena now."; + set zeny,zeny-2000; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else if ($@mon_time_2_1 == 2) { + mes "[Eckar Erenes]"; + mes "We're still finishing our"; + mes "preparations for the next"; + mes "Double Monster Race, so"; + mes "we ask that you please"; + mes "wait a little while longer..."; + close; + } + else { + if (($@mon_time_2_1 == 0) || ($@mon_time_2_2 == 0)) { + mes "[Eckar Erenes]"; + mes "Right now, a Monster Race"; + mes "is in progress. It's too late to place a wager, but if you'd like"; + mes "to watch, the fee is 500 zeny"; + mes "for spectators. Would you like to enter the Monster Race Arena?"; + next; + switch(select("Enter:Cancel")) { + case 1: + if (Zeny > 499) { + mes "[Eckar Erenes]"; + mes "Thank you~"; + mes "I hope you enjoy"; + mes "watching this race!"; + set zeny,zeny-500; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but you don't"; + mes "have enough money to pay"; + mes "the 500 zeny spectator fee."; + close; + } + case 2: + mes "[Eckar Erenes]"; + mes "Alright, then. If you'd like"; + mes "to wager on a monster"; + mes "race, please wait for the"; + mes "current race to finish. I hope"; + mes "that you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; + } + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but a monster"; + mes "race has just ended, so we're"; + mes "having the 5 minute period in"; + mes "which the winners can claim"; + mes "their Prize Medals. The gate"; + mes "will open soon, so please wait."; + close; + } + } + } + else { + if ($@mon_time_2_1 == 1) { + mes "[Eckar Erenes]"; + mes "Thanks, I hope that"; + mes "you enjoy this race."; + mes "Let me guide you now"; + mes "to the Monster Race Arena."; + set zeny,zeny-2000; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else if ($@mon_time_2_1 == 2) { + mes "[Eckar Erenes]"; + mes "We're still finishing our"; + mes "preparations for the next"; + mes "Double Monster Race, so"; + mes "we ask that you please"; + mes "wait a little while longer..."; + close; + } + else { + if (($@mon_time_2_1 == 0) || ($@mon_time_2_2 == 0)) { + mes "[Eckar Erenes]"; + mes "Right now, a Monster Race"; + mes "is in progress. It's too late to place a wager, but if you'd like"; + mes "to watch, the fee is 500 zeny"; + mes "for spectators. Would you like to enter the Monster Race Arena?"; + next; + switch(select("Enter:Cancel")) { + case 1: + if (Zeny > 499) { + mes "[Eckar Erenes]"; + mes "Thank you~"; + mes "I hope you enjoy"; + mes "watching this race!"; + set zeny,zeny-500; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but you don't"; + mes "have enough money to pay"; + mes "the 500 zeny spectator fee."; + close; + } + case 2: + mes "[Eckar Erenes]"; + mes "Alright, then. If you'd like"; + mes "to wager on a monster"; + mes "race, please wait for the"; + mes "current race to finish. I hope"; + mes "that you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; + } + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but a monster"; + mes "race has just ended, so we're"; + mes "having the 5 minute period in"; + mes "which the winners can claim"; + mes "their Prize Medals. The gate"; + mes "will open soon, so please wait."; + close; + } + } + } + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but you"; + mes "don't have enough"; + mes "money to pay the"; + mes "2,000 zeny entrance fee. "; + close; + } + case 2: + mes "[Eckar Erenes]"; + mes "Very well. I hope that"; + mes "you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; } - end; } -p_track01,45,36,0 script Luk2#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk2#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,36,0 script Luk2#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk2#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,36,0 script Luk2#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk2#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,43,36,0 script Tire2#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,36,0 script Tire2#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,36,0 script Tire2#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,36,0 script Tire2#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,36,0 script Tire2#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,36,0 script Tire2#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,56,34,0 script starting#3 -1,0,0,{ - end; - -OnDisable: - enablenpc "Luk3#1"; - enablenpc "Luk3#2"; - enablenpc "Luk3#3"; - enablenpc "Luk3#4"; - enablenpc "Luk3#5"; - enablenpc "Luk3#6"; - enablenpc "Tire3#1"; - enablenpc "Tire3#2"; - enablenpc "Tire3#3"; - enablenpc "Tire3#4"; - enablenpc "Tire3#5"; - enablenpc "Tire3#6"; - set $@mr_1_luk3,0; - set $@mr_1_tire3,0; - end; - -OnInit: - disablenpc "starting#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track01,33,34,0 script Luk3#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,37,34,0 script Luk3#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,53,34,0 script Luk3#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,45,34,0 script Luk3#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,34,0 script Luk3#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,34,0 script Luk3#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; +p_track02,73,22,1 script Ticket Helper#2 899,{ + if (checkweight(908,200) == 0) { + mes "[Ticket Helper]"; + mes "Welcome to the"; + mes "Monster Race Arena."; + mes "If you'd like to participate"; + mes "in the ^3131FFDouble Monster Race^000000,"; + mes "then please select 1 out of"; + mes "the 6 monsters from the list."; + next; + mes "[Ticket Helper]"; + mes "Wait, wait..."; + mes "I can't give you"; + mes "anything right now."; + mes "You're carrying way"; + mes "too many things..."; + close; } - end; -} - -p_track01,43,34,0 script Tire3#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,34,0 script Tire3#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,34,0 script Tire3#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,34,0 script Tire3#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,34,0 script Tire3#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,34,0 script Tire3#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,56,32,0 script starting#4 -1,0,0,{ - end; - -OnDisable: - enablenpc "starting#4"; - enablenpc "Luk4#1"; - enablenpc "Luk4#2"; - enablenpc "Luk4#3"; - enablenpc "Luk4#4"; - enablenpc "Luk4#5"; - enablenpc "Luk4#6"; - enablenpc "Tire4#1"; - enablenpc "Tire4#2"; - enablenpc "Tire4#3"; - enablenpc "Tire4#4"; - enablenpc "Tire4#5"; - enablenpc "Tire4#6"; - set $@mr_1_luk4,0; - set $@mr_1_tire4,0; - end; - -OnInit: - disablenpc "starting#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track01,33,32,0 script Luk4#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,37,32,0 script Luk4#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,53,32,0 script Luk4#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,45,32,0 script Luk4#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,32,0 script Luk4#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,32,0 script Luk4#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,43,32,0 script Tire4#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,32,0 script Tire4#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,32,0 script Tire4#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,32,0 script Tire4#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,32,0 script Tire4#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,32,0 script Tire4#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,56,30,0 script starting#5 -1,0,0,{ - end; - -OnDisable: - enablenpc "Luk5#1"; - enablenpc "Luk5#2"; - enablenpc "Luk5#3"; - enablenpc "Luk5#4"; - enablenpc "Luk5#5"; - enablenpc "Luk5#6"; - enablenpc "Tire5#1"; - enablenpc "Tire5#2"; - enablenpc "Tire5#3"; - enablenpc "Tire5#4"; - enablenpc "Tire5#5"; - enablenpc "Tire5#6"; - set $@mr_1_luk5,0; - set $@mr_1_tire5,0; - end; - -OnInit: - disablenpc "starting#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track01,33,30,0 script Luk5#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,37,30,0 script Luk5#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,53,30,0 script Luk5#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,45,30,0 script Luk5#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,30,0 script Luk5#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,30,0 script Luk5#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,43,30,0 script Tire5#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,30,0 script Tire5#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,30,0 script Tire5#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,30,0 script Tire5#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,30,0 script Tire5#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,30,0 script Tire5#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,56,28,0 script starting#6 -1,0,0,{ - end; - -OnDisable: - enablenpc "Luk6#1"; - enablenpc "Luk6#2"; - enablenpc "Luk6#3"; - enablenpc "Luk6#4"; - enablenpc "Luk6#5"; - enablenpc "Luk6#6"; - enablenpc "Tire6#1"; - enablenpc "Tire6#2"; - enablenpc "Tire6#3"; - enablenpc "Tire6#4"; - enablenpc "Tire6#5"; - enablenpc "Tire6#6"; - set $@mr_1_luk6,0; - set $@mr_1_tire6,0; - end; - -OnInit: - disablenpc "starting#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track01,33,28,0 script Luk6#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,37,28,0 script Luk6#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,53,28,0 script Luk6#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,45,28,0 script Luk6#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,28,0 script Luk6#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,28,0 script Luk6#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,43,28,0 script Tire6#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,28,0 script Tire6#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,28,0 script Tire6#3 -1,0,0,{ - end; -OnInit: - disablenpc "Tire6#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,28,0 script Tire6#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,28,0 script Tire6#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,28,0 script Tire6#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -//============================================================ -// Monstrer Race - Dual Monster Race -//============================================================ -hugel,47,56,0 script #race_timer2-1 -1,{ -OnInit: - enablenpc "#race_timer2-1"; - set $@mon_time_2_1,2; - initnpctimer; - end; - -OnEnable: - enablenpc "#race_timer2-1"; - set $@mon_time_2_1,2; - initnpctimer; - end; - -OnDisable: - disablenpc "#race_timer2-1"; - stopnpctimer; - end; - -OnTimer10000: - mapannounce "hugel","The Dual Monster Race will soon begin. We hope to see many of you participate!",bc_map,"0xffb6c1"; - end; - -OnTimer30000: - mapannounce "hugel","The Dual Monster Race Arena has just opened.",bc_map,"0xffb6c1"; - set $@mon_time_2_1,1; - donpcevent "#race_timer2-2::OnEnable"; - enablenpc "Ticket Helper#2"; - donpcevent "TrapGlobal#race02::OnEnable"; - end; - -OnTimer90000: - mapannounce "hugel","The Dual Monster Race arena is now open. Participants should enter the Arena as soon as they can.",bc_map,"0xffb6c1"; - end; - -OnTimer210000: - mapannounce "hugel","The entrance to the Dual Monster Race Arena will close shortly. Participants, please enter the arena now.",bc_map,"0xffb6c1"; - end; - -OnTimer270000: - mapannounce "hugel","The Dual Monster Race Arena's entrance will soon close.",bc_map,"0xffb6c1"; - end; - -OnTimer272000: - mapannounce "hugel","Participants, please enter the Arena before the doors close.",bc_map,"0xffb6c1"; - end; - -OnTimer330000: - mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0xffb6c1"; - set $@mon_time_2_1,0; - donpcevent "#race_timer2-1::OnDisable"; - stopnpctimer; - end; -} - -p_track02,42,23,0 script #race_timer2-2 -1,{ -OnInit: - disablenpc "#race_timer2-2"; - set $@mon_time_2_2,0; - end; - -OnEnable: - enablenpc "#race_timer2-2"; - set $@mon_time_2_2,0; - initnpctimer; - end; - -OnDisable: - disablenpc "#race_timer2-2"; - stopnpctimer; - end; - -OnTimer5000: - mapannounce "p_track02","Welcome to the Monster Race Arena.",bc_map,"0x87ceeb"; - end; - -OnTimer7000: - mapannounce "p_track02","Feel free to inquire at the help desk whenever you have questions.",bc_map,"0x87ceeb"; - end; - -OnTimer120000: - mapannounce "p_track02","The Dual Monster Race will start in 3 minutes.",bc_map,"0x87ceeb"; - end; - -OnTimer122000: - mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; - end; - -OnTimer240000: - mapannounce "p_track02","The Dual Monster Race will start shortly.",bc_map,"0x87ceeb"; - end; - -OnTimer242000: - mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; - end; - -OnTimer300000: - mapannounce "p_track02","The Monster Race is starting now. Good luck, everybody!",bc_map,"0x87ceeb"; - set $@mon_time_2_2,1; - set $@mon_race_2_1,0; - set $@mon_race_2_2,0; - disablenpc "Ticket Helper#2"; - donpcevent "#poring1::OnEnable"; - donpcevent "#lunatic1::OnEnable"; - donpcevent "#savagebebe1::OnEnable"; - donpcevent "#desertwolf1::OnEnable"; - donpcevent "#deviruchi1::OnEnable"; - donpcevent "#baphomet1::OnEnable"; - stopnpctimer; - end; -} - -p_track02,80,43,0 script #race_timer2-3 -1,{ -OnInit: - disablenpc "#race_timer2-3"; - end; - -OnEnable: - enablenpc "#race_timer2-3"; - initnpctimer; - end; - -OnDisable: - disablenpc "#race_timer2-3"; - stopnpctimer; - end; - -OnTimer3000: - mapannounce "p_track02","The Monster Race is finished! Congratulations to all the winners!",bc_map,"0xFFFF00"; - end; - -OnTimer6000: - mapannounce "p_track02","Please give your Racing Ticket to the Medal Distributor if you bet on the winning monster.",bc_map,"0xFFFF00"; - end; - -OnTimer9000: - mapannounce "p_track02","You have 5 minutes to exchange a winning ticket for Prize Medals from the Medal Distributor.",bc_map,"0xFFFF00"; - end; - -OnTimer12000: - mapannounce "p_track02","All tickets become void after this 5 minute period, so winners should claim their prize now.",bc_map,"0xFFFF00"; - end; - -OnTimer15000: - mapannounce "p_track02","Please leave the Race Arena before this 5 minute period elapses. Thank you.",bc_map,"0xFFFF00"; - end; - -OnTimer240000: - mapannounce "p_track02","Attention. We will being preparing for the next race shortly...",bc_map,"0xFFFF00"; - end; - -OnTimer243000: - mapannounce "p_track02","We will close the Racing Arena in 1 minute to prepare for the next race.",bc_map,"0xFFFF00"; - end; - -OnTimer246000: - mapannounce "p_track02","Participants in the last race should leave the arena as soon as possible.",bc_map,"0xFFFF00"; - end; - -OnTimer249000: - mapannounce "p_track02","Thank you for your cooperation.",bc_map,"0xFFFF00"; - end; - -OnTimer252000: - mapannounce "p_track02","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00"; - end; - -OnTimer300000: - mapwarp "p_track02","hugel",63,73; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-1::OnEnable"; - set $@mon_race_2_1,0; - set $@mon_race_2_2,0; - donpcevent "#race_timer2-3::OnDisable"; - stopnpctimer; - end; -} - -hugel,62,69,1 script Eckar Erenes#double 798,{ - mes "[Eckar Erenes]"; - mes "Welcome to the"; - mes "Monster Race Arena,"; - mes "the pride and joy of"; - mes "the village of Hugel!"; - mes "How may I help you?"; - next; - switch(select("Monster Race Info:Enter Monster Race")) { - case 1: - mes "[Eckar Erenes]"; - mes "Monster Races originated from"; - mes "simple children's games in which"; - mes "Cute Pets would race against each other. This grew into an adult"; - mes "pastime that is so popular, we've built a racing arena in Hugel."; - next; - mes "[Eckar Erenes]"; - mes "Our Monster Race Arena hosts"; - mes "two types of monster races. First, we have the Single Monster Race,"; - mes "in which those that wagered on the 1st place monster are rewarded."; - next; - mes "[Eckar Erenes]"; - mes "Then, we have the Dual Monster"; - mes "Race in which the house odds and rewards are greater than in Single"; - mes "Monster Races: you must wager on 2 monsters, and they must place in"; - mes "1st and 2nd for you to win."; - next; - mes "[Eckar Erenes]"; - mes "Although a small entrance"; - mes "fee is required, we only use"; - mes "the money to give rewards to"; - mes "participants and maintain this"; - mes "arena. Therefore, we're not"; - mes "profiting from this enterprise."; - next; - mes "[Eckar Erenes]"; - mes "Also, we prohibit others"; - mes "from making personal bets"; - mes "and wagers, using items and"; - mes "zeny, based on the outcomes"; - mes "of these races. That kind of"; - mes "gambling is illegal here..."; - next; - mes "[Eckar Erenes]"; - mes "Once you enter the Race Arena, you will receive a Racing Ticket."; - mes "Keep in mind that winning Racing Tickets can only be exchanged for"; - mes "Prize Medals during a 5 minute window after the end of the race."; - next; - break; - case 2: - break; - } - mes "[Eckar Erenes]"; - mes "The entrance fee for all races"; - mes "in the Monster Race Arena is"; - mes "2,000 zeny. If you'd like to wager on a Single Monster Race,"; - mes "then please ask my brother"; - mes "Ellebird to help you."; - next; - mes "[Eckar Erenes]"; - mes "Otherwise, I'll help get you"; - mes "started if you're interested"; - mes "in a Dual Monster Race."; - mes "Would you like to wager"; - mes "on a Dual Monster Race?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - if (checkweight(909,700) == 0) { - mes "[Eckar Erenes]"; - mes "Hmm... You're toting"; - mes "too many things with you"; - mes "right now. You better put"; - mes "some of your stuff away in"; - mes "Kafra Storage before you can"; - mes "wager on any monster races..."; - close; - } - if (Zeny > 1999) { - if (countitem(7514) > 0) { - mes "[Eckar Erenes]"; - mes "Hm? What are you doing"; - mes "with an expired Racing Ticket?"; - mes "Well, I better get rid of it for you before it can get mixed up"; - mes "with your new Racing Ticket."; - delitem 7514,1; //Monster_Ticket - next; - if ($@mon_time_2_1 == 1) { - mes "[Eckar Erenes]"; - mes "Alright, I think you"; - mes "should be all set. I hope"; - mes "that you enjoy the race~"; - mes "Let me guide you inside"; - mes "the Monster Race Arena now."; - set zeny,zeny-2000; - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "p_track02",75,41; - end; - } - else if ($@mon_time_2_1 == 2) { - mes "[Eckar Erenes]"; - mes "We're still finishing our"; - mes "preparations for the next"; - mes "Double Monster Race, so"; - mes "we ask that you please"; - mes "wait a little while longer..."; - close; - } - else { - if (($@mon_time_2_1 == 0) || ($@mon_time_2_2 == 0)) { - mes "[Eckar Erenes]"; - mes "Right now, a Monster Race"; - mes "is in progress. It's too late to place a wager, but if you'd like"; - mes "to watch, the fee is 500 zeny"; - mes "for spectators. Would you like to enter the Monster Race Arena?"; - next; - switch(select("Enter:Cancel")) { - case 1: - if (Zeny > 499) { - mes "[Eckar Erenes]"; - mes "Thank you~"; - mes "I hope you enjoy"; - mes "watching this race!"; - set zeny,zeny-500; - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "p_track02",75,41; - end; - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but you don't"; - mes "have enough money to pay"; - mes "the 500 zeny spectator fee."; - close; - } - case 2: - mes "[Eckar Erenes]"; - mes "Alright, then. If you'd like"; - mes "to wager on a monster"; - mes "race, please wait for the"; - mes "current race to finish. I hope"; - mes "that you enjoy your time here"; - mes "in the Monster Race Arena~"; - close; - } - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but a monster"; - mes "race has just ended, so we're"; - mes "having the 5 minute period in"; - mes "which the winners can claim"; - mes "their Prize Medals. The gate"; - mes "will open soon, so please wait."; - close; - } - } - } - else { - if ($@mon_time_2_1 == 1) { - mes "[Eckar Erenes]"; - mes "Thanks, I hope that"; - mes "you enjoy this race."; - mes "Let me guide you now"; - mes "to the Monster Race Arena."; - set zeny,zeny-2000; - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "p_track02",75,41; - end; - } - else if ($@mon_time_2_1 == 2) { - mes "[Eckar Erenes]"; - mes "We're still finishing our"; - mes "preparations for the next"; - mes "Double Monster Race, so"; - mes "we ask that you please"; - mes "wait a little while longer..."; - close; - } - else { - if (($@mon_time_2_1 == 0) || ($@mon_time_2_2 == 0)) { - mes "[Eckar Erenes]"; - mes "Right now, a Monster Race"; - mes "is in progress. It's too late to place a wager, but if you'd like"; - mes "to watch, the fee is 500 zeny"; - mes "for spectators. Would you like to enter the Monster Race Arena?"; - next; - switch(select("Enter:Cancel")) { - case 1: - if (Zeny > 499) { - mes "[Eckar Erenes]"; - mes "Thank you~"; - mes "I hope you enjoy"; - mes "watching this race!"; - set zeny,zeny-500; - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "p_track02",75,41; - end; - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but you don't"; - mes "have enough money to pay"; - mes "the 500 zeny spectator fee."; - close; - } - case 2: - mes "[Eckar Erenes]"; - mes "Alright, then. If you'd like"; - mes "to wager on a monster"; - mes "race, please wait for the"; - mes "current race to finish. I hope"; - mes "that you enjoy your time here"; - mes "in the Monster Race Arena~"; - close; - } - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but a monster"; - mes "race has just ended, so we're"; - mes "having the 5 minute period in"; - mes "which the winners can claim"; - mes "their Prize Medals. The gate"; - mes "will open soon, so please wait."; - close; - } - } - } - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but you"; - mes "don't have enough"; - mes "money to pay the"; - mes "2,000 zeny entrance fee. "; - close; - } - case 2: - mes "[Eckar Erenes]"; - mes "Very well. I hope that"; - mes "you enjoy your time here"; - mes "in the Monster Race Arena~"; - close; - } -} - -p_track02,73,22,1 script Ticket Helper#2 899,{ - if (checkweight(908,200) == 0) { - mes "[Ticket Helper]"; - mes "Welcome to the"; - mes "Monster Race Arena."; - mes "If you'd like to participate"; - mes "in the ^3131FFDouble Monster Race^000000,"; - mes "then please select 1 out of"; - mes "the 6 monsters from the list."; - next; - mes "[Ticket Helper]"; - mes "Wait, wait..."; - mes "I can't give you"; - mes "anything right now."; - mes "You're carrying way"; - mes "too many things..."; - close; - } - if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Ticket Helper]"; - mes "Hello there!"; - mes "Interested in wagering on"; - mes "the Dual Monster Race?"; - mes "I'm here to help you if you've"; - mes "got any questions, or if you"; - mes "want to place your wager."; - next; - switch(select("Check Monster Status:Wager on Race:Monster Race?:Cancel")) { - case 1: - mes "Monster 1 [^CC6600Luck^000000: " + $@mon_r02_Luk1 + "] [^EE0000HP^000000: " + $@mon_r02_tire1 + "]"; - mes "Monster 2 [^CC6600Luck^000000: " + $@mon_r02_Luk2 + "] [^EE0000HP^000000: " + $@mon_r02_Tire2 + "]"; - mes "Monster 3 [^CC6600Luck^000000: " + $@mon_r02_Luk3 + "] [^EE0000HP^000000: " + $@mon_r02_Tire3 + "]"; - mes "Monster 4 [^CC6600Luck^000000: " + $@mon_r02_Luk4 + "] [^EE0000HP^000000: " + $@mon_r02_Tire4 + "]"; - mes "Monster 5 [^CC6600Luck^000000: " + $@mon_r02_Luk5 + "] [^EE0000HP^000000: " + $@mon_r02_Tire5 + "]"; - mes "Monster 6 [^CC6600Luck^000000: " + $@mon_r02_Luk6 + "] [^EE0000HP^000000: " + $@mon_r02_Tire6 + "]"; - close; - case 2: - mes "[Ticket Helper]"; - mes "Alright, please choose which"; - mes "two monsters that you think"; - mes "will win 1st and 2nd place."; - mes "If both your monsters come"; - mes "in 1st and 2nd, in any order,"; - mes "you'll win the wager."; - next; - mes "[Ticket Helper]"; - mes "Now, please tell me"; - mes "your first choice for one"; - mes "of the monsters that"; - mes "will win this race."; - next; - switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 2:Monster 3:Monster 4:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 1^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 1^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000 and"; - mes "^0000FFMonster 4^000000."; - mes "I wish you good luck."; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - break; - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 1^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 1^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 1:Monster 3:Monster 4:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?."; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 4^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 1:Monster 2:Monster 4:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 4^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 1:Monster 2:Monster 3:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?."; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - break; - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?."; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 4^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 6: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Then, please pick your 2nd choice."; - next; - switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 5")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 4^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 3: - mes "[Ticket Helper]"; - mes "Monster Races originated from"; - mes "simple children's games in which"; - mes "Cute Pets would race against each other. This grew into an adult"; - mes "pastime that is so popular, we've built a racing arena in Hugel."; - next; - mes "[Ticket Helper]"; - mes "Our Monster Race Arena hosts"; - mes "two types of monster races. First, we have the Single Monster Race,"; - mes "in which those that wagered on the 1st place monster are rewarded."; - next; - mes "[Eclar Ellbird]"; - mes "Then, we have the Dual Monster"; - mes "Race in which those that wagered on the 1st and 2nd place monsters"; - mes "are equally rewarded. The house"; - mes "odds and wager rewards are greater in Dual Races than Single Races."; - next; - mes "[Ticket Helper]"; - mes "Although a small entrance"; - mes "fee is required, we only use"; - mes "the money to give rewards to"; - mes "participants and maintain this"; - mes "arena. Therefore, we're not"; - mes "profiting from this enterprise."; - next; - mes "[Ticket Helper]"; - mes "Also, we prohibit others"; - mes "from making personal bets"; - mes "and wagers, using items and"; - mes "zeny, based on the outcomes"; - mes "of these races. That kind of"; - mes "gambling is illegal here..."; - next; - mes "[Ticket Helper]"; - mes "Once you enter the Race Arena, you will receive a Racing Ticket."; - mes "Keep in mind that winning Racing Tickets can only be exchanged for"; - mes "Prize Medals during a 5 minute window after the end of the race."; - next; - mes "[Ticket Helper]"; - mes "You're already here"; - mes "inside the Monster Race"; - mes "Arena, so you may as well"; - mes "try placing a wager. It's"; - mes "more fun than you'd think~"; - close; - case 4: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - else { - if (countitem(7514) > 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster " + monster_race_2_1 + "^000000 and ^0000FFMonster " + monster_race_2_2 + "^000000"; - mes "for this Dual Monster Race."; - next; - mes "[Ticket Helper]"; - mes "The start of the race will be"; - mes "announced through a broadcast."; - mes "You can refer to your Mini-Map"; - mes "to track the monsters' race"; - mes "positions. Thank you, and"; - mes "have a good time!"; - viewpoint 1,43,35,0,0xFF0000; - close; - } - else { - mes "[Ticket Helper]"; - mes "The start of the race will be"; - mes "announced through a broadcast."; - mes "You can refer to your Mini-Map"; - mes "to track the monsters' race"; - mes "positions. Thank you, and"; - mes "have a good time!"; - viewpoint 1,43,35,0,0xFF0000; - close; - } - } - -OnInit: - disablenpc "Ticket Helper#2"; - end; -} - -p_track02,39,49,3 script Game Guide#double 845,{ - mes "[Game Guide]"; - mes "Welcome to the"; - mes "Monster Race Arena."; - mes "How can I help you?"; - next; - switch(select("Monster Race Info:Wager Info:Ticket Redemption Info")) { - case 1: - mes "[Game Guide]"; - mes "Monster Races originated from"; - mes "simple children's games in which"; - mes "Cute Pets would race against each other. This grew into an adult"; - mes "pastime that is so popular, we've built a racing arena in Hugel."; - next; - mes "[Game Guide]"; - mes "Our Monster Race Arena hosts"; - mes "two types of monster races. First, we have the Single Monster Race,"; - mes "in which those that wagered on the 1st place monster are rewarded."; - next; - mes "[Game Guide]"; - mes "Then, we have the Dual Monster"; - mes "Race in which the house odds and rewards are greater than in Single"; - mes "Monster Races: you must wager on 2 monsters, and they must place in"; - mes "1st and 2nd for you to win."; - next; - mes "[Game Guide]"; - mes "Although a small entrance"; - mes "fee is required, we only use"; - mes "the money to give rewards to"; - mes "participants and maintain this"; - mes "arena. Therefore, we're not"; - mes "profiting from this enterprise."; - next; - mes "[Game Guide]"; - mes "Also, we prohibit others"; - mes "from making personal bets"; - mes "and wagers, using items and"; - mes "zeny, based on the outcomes"; - mes "of these races. That kind of"; - mes "gambling is illegal here..."; - next; - mes "[Game Guide]"; - mes "Once you enter the Race Arena, you will receive a Racing Ticket."; - mes "Keep in mind that winning Racing Tickets can only be exchanged for"; - mes "Prize Medals during a 5 minute window after the end of the race."; - next; - break; - case 2: - mes "[Game Guide]"; - mes "Before placing a wager, you"; - mes "must get a free Racing Ticket"; - mes "from the Ticket Helper. There,"; - mes "I've marked the Ticket Helper"; - mes "on your Mini-Map, so you can"; - mes "find him pretty easily."; - viewpoint 1,73,22,1,0xFF3355; - next; - break; - case 3: - mes "[Game Guide]"; - mes "If you wagered on the winner"; - mes "of a Single Monster Race, or"; - mes "on the 1st or 2nd place winners"; - mes "in a Dual Monster Race, then"; - mes "you can exchange your Racing"; - mes "Ticket for Prize Medals."; - next; - mes "[Game Guide]"; - mes "However, you must exchange"; - mes "your Racing Ticket with the"; - mes "Medal Distributor within the"; - mes "5 minute window after the end"; - mes "of the race. ^FF0000Your ticket becomes^FFFFFF ^FF0000 void after these 5 minutes.^000000"; - next; - mes "[Game Guide]"; - mes "When this 5 minute window"; - mes "elapses, you will be teleported outside, and we will immediately"; - mes "begin preparing for the next race. Make sure that you remember this"; - mes "information when you wager."; - next; - mes "[Game Guide]"; - mes "If you haven't received"; - mes "your free Racing Ticket,"; - mes "then please visit the Ticket"; - mes "Helper. There, I've just marked"; - mes "his location on your Mini-Map."; - viewpoint 1,67,45,2,0xCE6300; - next; - break; - } - mes "[Game Guide]"; - mes "Thank you, and"; - mes "I hope you enjoy"; - mes "your time here in the"; - mes "Monster Racing Arena."; - close; -} - -p_track02,67,45,5 script Medal Distributor#medal 845,{ - if (checkweight(909,20) == 0) { - mes "[Medal Distributor]"; - mes "I'm sorry, but I can't"; - mes "reward you with any medals"; - mes "until you make more space"; - mes "available in your Inventory."; - close; - } - if (countitem(7514) > 0) { - mes "[Medal Distributor]"; - mes "Hello there~"; - mes "If you've wagered on the"; - mes "winning monster in a recent"; - mes "race, then you can exchange"; - mes "your game ticket here for"; - mes "some Prize Medals."; - next; - mes "[Medal Distributor]"; - mes "Please remember that you can"; - mes "only exchange winning Game"; - mes "Tickets for Prize Medals right"; - mes "after the race finishes. Prize"; - mes "Medals may be given to Wayne"; - mes "in Hugel in exchange for items."; - next; - if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 2)) || (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 2)) || ((monster_race_2_1 == 2) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 3)) || (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 3)) || ((monster_race_2_1 == 3) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 3)) || (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 2)) { - if ((monster_race_2_1 == 2) && (monster_race_2_2 == 3)) || ((monster_race_2_1 == 3) && (monster_race_2_2 == 2)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 2)) { - if ((monster_race_2_1 == 2) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 2)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 2)) { - if ((monster_race_2_1 == 2) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 2)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 2)) { - if ((monster_race_2_1 == 2) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 2)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 3)) { - if ((monster_race_2_1 == 3) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 3)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 3)) { - if ((monster_race_2_1 == 3) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 3)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 3)) { - if ((monster_race_2_1 == 3) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 3)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 4)) { - if ((monster_race_2_1 == 4) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 4)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 4)) { - if ((monster_race_2_1 == 4) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 4)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 5)) { - if ((monster_race_2_1 == 5) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 5)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else { - mes "[Medal Distributor]"; - mes "Hello there~"; - mes "If you've wagered on the"; - mes "winning monster in a recent"; - mes "race, then you can exchange"; - mes "your game ticket here for"; - mes "some Prize Medals."; - next; - mes "[Medal Distributor]"; - mes "Please remember that you can"; - mes "only exchange winning Game"; - mes "Tickets for Prize Medals right"; - mes "after the race finishes. Prize"; - mes "Medals may be given to Wayne"; - mes "in Hugel in exchange for items."; - close; - } - } - else { - mes "[Medal Distributor]"; - mes "Hello there~"; - mes "If you've wagered on the"; - mes "winning monster in a recent"; - mes "race, then you can exchange"; - mes "your game ticket here for"; - mes "some Prize Medals."; - next; - mes "[Medal Distributor]"; - mes "Please remember that you can"; - mes "only exchange winning Game"; - mes "Tickets for Prize Medals right"; - mes "after the race finishes. Prize"; - mes "Medals may be given to Wayne"; - mes "in Hugel in exchange for items."; - close; - } - -OnInit: - disablenpc "Medal Distributor#medal"; - end; -} - -p_track02,76,38,1 script Exit Guide#double 798,{ - mes "[Exit Guide]"; - mes "If you have a winning Racing"; - mes "Ticket, please make sure that"; - mes "you redeem it for Prize Medals"; - mes "now. All Racing Tickets become"; - mes "void once the next race begins."; - next; - mes "[Exit Guide]"; - mes "If you wish to leave"; - mes "the arena, then I can guide"; - mes "you outside. Would you like"; - mes "to leave the arena right now?"; - next; - switch(select("Yes:No")) { - case 1: - if (countitem(7514) == 0) { - mes "[Exit Guide]"; - mes "Thank you for"; - mes "your patronage, and"; - mes "I hope that you come"; - mes "visit us again soon~"; - } - else { - mes "[Exit Guide]"; - mes "In accordance with our"; - mes "policies, I must take your"; - mes "Racing Ticket before you leave."; - mes "Thank you for your patronage,"; - mes "and I hope you enjoy your time"; - mes "here in the Monster Race Arena."; - delitem 7514,1; //Monster_Ticket - } - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "hugel",63,73; - end; - case 2: - mes "[Exit Guide]"; - mes "Alright, then."; - mes "Just let me know"; - mes "whenever you're"; - mes "ready to leave."; - close; - } -} - -p_track02,30,38,0 script #poring1 139,0,0,{ -OnInit: - disablenpc "#poring1"; - end; - -OnEnable: - enablenpc "#poring1"; - monster "p_track02",58,38,"Monster 1",1725,1,"#poring1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#poring1::OnMyMobDead"; - disablenpc "#poring1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_lv; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 1 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,1; - donpcevent "#poring1::OnDisable"; - } - else { - emotion e_lv; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 1 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,1; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,36,0 script #lunatic1 139,0,0,{ -OnInit: - disablenpc "#lunatic1"; - end; - -OnEnable: - enablenpc "#lunatic1"; - monster "p_track02",58,36,"Monster No. 2",1726,1,"#lunatic1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#lunatic1::OnMyMobDead"; - disablenpc "#lunatic1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_ho; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 2 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,2; - donpcevent "#lunatic1::OnDisable"; - } - else { - emotion e_ho; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 2 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,2; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,34,0 script #savagebebe1 139,0,0,{ -OnInit: - disablenpc "#savagebebe1"; - end; - -OnEnable: - enablenpc "#savagebebe1"; - monster "p_track02",58,34,"Monster No. 3",1727,1,"#savagebebe1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#savagebebe1::OnMyMobDead"; - disablenpc "#savagebebe1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_heh; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 3 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,3; - donpcevent "#savagebebe1::OnDisable"; - } - else { - emotion e_heh; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 3 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,3; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,32,0 script #desertwolf1 139,0,0,{ -OnInit: - disablenpc "#desertwolf1"; - end; - -OnEnable: - enablenpc "#desertwolf1"; - monster "p_track02",58,32,"Monster No. 4",1728,1,"#desertwolf1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#desertwolf1::OnMyMobDead"; - disablenpc "#desertwolf1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_kis; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 4 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,4; - donpcevent "#desertwolf1::OnDisable"; - } - else { - emotion e_kis; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 4 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,4; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,30,0 script #deviruchi1 139,0,0,{ -OnInit: - disablenpc "#deviruchi1"; - end; - -OnEnable: - enablenpc "#deviruchi1"; - monster "p_track02",58,30,"Monster No. 5",1730,1,"#deviruchi1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#deviruchi1::OnMyMobDead"; - disablenpc "#deviruchi1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_gg; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 5 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,5; - donpcevent "#deviruchi1::OnDisable"; - } - else { - emotion e_gg; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 5 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,5; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,28,0 script #baphomet1 139,0,0,{ -OnInit: - disablenpc "#baphomet1"; - end; - -OnEnable: - enablenpc "#baphomet1"; - monster "p_track02",58,28,"Monster No. 6",1729,1,"#baphomet1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#baphomet1::OnMyMobDead"; - disablenpc "#baphomet1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_pif; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 6 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,6; - donpcevent "#baphomet1::OnDisable"; - } - else { - emotion e_pif; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 6 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,6; - donpcevent "#baphomet1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,19,48,0 script TrapGlobal#race02 -1,{ -OnInit: - set $@mon_r02_luk1,0; - set $@mon_r02_luk2,0; - set $@mon_r02_luk3,0; - set $@mon_r02_luk4,0; - set $@mon_r02_luk5,0; - set $@mon_r02_luk6,0; - set $@mon_r02_tire1,0; - set $@mon_r02_tire2,0; - set $@mon_r02_tire3,0; - set $@mon_r02_tire4,0; - set $@mon_r02_tire5,0; - set $@mon_r02_tire6,0; - end; - -OnEnable: - enablenpc "TrapGlobal#race02"; - enablenpc "starting#race02_1"; - enablenpc "starting#race02_2"; - enablenpc "starting#race02_3"; - enablenpc "starting#race02_4"; - enablenpc "starting#race02_5"; - enablenpc "starting#race02_6"; - //------------------------------------------------------------- - // Monster No. 1, Poring - //------------------------------------------------------------- - set .@firstline,rand(1,70); - if ((.@firstline > 0) && (.@firstline < 11)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_5"; - enablenpc "Luk#race02_1_6"; - set .@firsttired,rand(50,60); - if (.@firsttired > 49) && (.@firsttired < 61) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - } - } - else if ((.@firstline > 10) && (.@firstline < 31)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_5"; - set .@firsttired,rand(40,60); - if (.@firsttired > 49) && (.@firsttired < 61) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - } - } - else if ((.@firstline > 20) && (.@firstline < 41)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - set .@firsttired,rand(30,50); - if (.@firsttired > 39) && (.@firsttired < 51) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - } - } - else if ((.@firstline > 40) && (.@firstline < 51)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - enablenpc "Luk#race02_1_2"; - set .@firsttired,rand(20,40); - if (.@firsttired > 29) && (.@firsttired < 41) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - } - } - else if ((.@firstline > 50) && (.@firstline < 61)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - enablenpc "Luk#race02_1_2"; - enablenpc "Luk#race02_1_3"; - set .@firsttired,rand(10,30); - if (.@firsttired > 19) && (.@firsttired < 31) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - } - } - else if ((.@firstline > 60) && (.@firstline < 71)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - enablenpc "Luk#race02_1_2"; - enablenpc "Luk#race02_1_3"; - enablenpc "Luk#race02_1_4"; - set .@firsttired,rand(0,20); - if (.@firsttired > 9) && (.@firsttired < 21) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - enablenpc "Tire#race02_1_6"; - } - } - else { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - enablenpc "Luk#race02_1_2"; - enablenpc "Luk#race02_1_3"; - enablenpc "Luk#race02_1_4"; - set .@firsttired,rand(0,20); - if (.@firsttired > 9) && (.@firsttired < 21) { - set $@mon_r02_tire1,.@firstline; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - } - else { - set $@mon_r02_tire1,.@firstline; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - enablenpc "Tire#race02_1_6"; - } - } - //------------------------------------------------------------- - // Monster No. 2, Lunatic - //------------------------------------------------------------- - set .@secondline,rand(1,70); - if ((.@secondline > 0) && (.@secondline < 11)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_5"; - enablenpc "Luk#race02_2_6"; - set .@secondtired,rand(50,60); - if (.@secondtired > 49) && (.@secondtired < 61) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - } - } - else if ((.@secondline > 10) && (.@secondline < 31)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_5"; - set .@secondtired,rand(40,60); - if (.@secondtired > 49) && (.@secondtired < 61) { - set $@mon_r02_tire2,.@secondline; - enablenpc "Tire#race02_2_1"; - } - else { - set $@mon_r02_tire2,.@secondline; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - } - } - else if ((.@secondline > 20) && (.@secondline < 41)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - set .@secondtired,rand(30,50); - if (.@secondtired > 39) && (.@secondtired < 51) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - } - } - else if ((.@secondline > 40) && (.@secondline < 51)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - enablenpc "Luk#race02_2_2"; - set .@secondtired,rand(20,40); - if (.@secondtired > 29) && (.@secondtired < 41) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - } - } - else if ((.@secondline > 50) && (.@secondline < 61)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - enablenpc "Luk#race02_2_2"; - enablenpc "Luk#race02_2_3"; - set .@secondtired,rand(10,30); - if (.@secondtired > 19) && (.@secondtired < 31) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - } - } - else if ((.@secondline > 60) && (.@secondline < 71)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - enablenpc "Luk#race02_2_2"; - enablenpc "Luk#race02_2_3"; - enablenpc "Luk#race02_2_4"; - set .@secondtired,rand(0,20); - if (.@secondtired > 9) && (.@secondtired < 21) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - enablenpc "Tire#race02_2_6"; - } - } - else { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - enablenpc "Luk#race02_2_2"; - enablenpc "Luk#race02_2_3"; - enablenpc "Luk#race02_2_4"; - set .@secondtired,rand(0,20); - if (.@secondtired > 9) && (.@secondtired < 21) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - enablenpc "Tire#race02_2_6"; - } - } - //------------------------------------------------------------- - // Monster No. 3, Savage Babe - //------------------------------------------------------------- - set .@thirdline,rand(1,70); - if ((.@thirdline > 0) && (.@thirdline < 11)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_5"; - enablenpc "Luk#race02_3_6"; - set .@thridtired,rand(50,60); - if (.@thridtired > 49) && (.@thridtired < 61) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - } - } - else if ((.@thirdline > 10) && (.@thirdline < 31)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_5"; - set .@thridtired,rand(40,60); - if (.@thridtired > 49) && (.@thridtired < 61) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - } - } - else if ((.@thirdline > 20) && (.@thirdline < 41)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - set .@thridtired,rand(30,50); - if (.@thridtired > 39) && (.@thridtired < 51) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - } - } - else if ((.@thirdline > 40) && (.@thirdline < 51)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - enablenpc "Luk#race02_3_2"; - set .@thridtired,rand(20,40); - if (.@thridtired > 29) && (.@thridtired < 41) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - } - } - else if ((.@thirdline > 50) && (.@thirdline < 61)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - enablenpc "Luk#race02_3_2"; - enablenpc "Luk#race02_3_3"; - set .@thridtired,rand(10,30); - if (.@thridtired > 19) && (.@thridtired < 31) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - } - } - else if ((.@thirdline > 60) && (.@thirdline < 71)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - enablenpc "Luk#race02_3_2"; - enablenpc "Luk#race02_3_3"; - enablenpc "Luk#race02_3_4"; - set .@thridtired,rand(0,20); - if (.@thridtired > 9) && (.@thridtired < 21) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - enablenpc "Tire#race02_3_6"; - } - } - else { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - enablenpc "Luk#race02_3_2"; - enablenpc "Luk#race02_3_3"; - enablenpc "Luk#race02_3_4"; - set .@thridtired,rand(0,20); - if (.@thridtired > 9) && (.@thridtired < 21) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - enablenpc "Tire#race02_3_6"; - } - } - //------------------------------------------------------------- - // Monster No. 4, Baby Desert Wolf - //------------------------------------------------------------- - set .@fourthline,rand(1,70); - if ((.@fourthline > 0) && (.@fourthline < 11)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_5"; - enablenpc "Luk#race02_4_6"; - set .@fourthtired,rand(50,60); - if (.@fourthtired > 49) && (.@fourthtired < 61) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - } - } - else if ((.@fourthline > 10) && (.@fourthline < 31)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_5"; - set .@fourthtired,rand(40,60); - if (.@fourthtired > 49) && (.@fourthtired < 61) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - } - } - else if ((.@fourthline > 20) && (.@fourthline < 41)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - set .@fourthtired,rand(30,50); - if (.@fourthtired > 39) && (.@fourthtired < 51) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - } - } - else if ((.@fourthline > 40) && (.@fourthline < 51)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - enablenpc "Luk#race02_4_2"; - set .@fourthtired,rand(20,40); - if (.@fourthtired > 29) && (.@fourthtired < 41) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - } - } - else if ((.@fourthline > 50) && (.@fourthline < 61)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - enablenpc "Luk#race02_4_2"; - enablenpc "Luk#race02_4_3"; - set .@fourthtired,rand(10,30); - if (.@fourthtired > 19) && (.@fourthtired < 31) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - } - } - else if ((.@fourthline > 60) && (.@fourthline < 71)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - enablenpc "Luk#race02_4_2"; - enablenpc "Luk#race02_4_3"; - enablenpc "Luk#race02_4_4"; - set .@fourthtired,rand(0,20); - if (.@fourthtired > 9) && (.@fourthtired < 21) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - enablenpc "Tire#race02_4_6"; - } - } - else { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - enablenpc "Luk#race02_4_2"; - enablenpc "Luk#race02_4_3"; - enablenpc "Luk#race02_4_4"; - set .@fourthtired,rand(0,20); - if (.@fourthtired > 9) && (.@fourthtired < 21) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - enablenpc "Tire#race02_4_6"; - } - } - //------------------------------------------------------------- - // Monster No. 5, Deviruchi - //------------------------------------------------------------- - set .@fifthline,rand(1,70); - if ((.@fifthline > 0) && (.@fifthline < 11)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_5"; - set .@fifthtired,rand(50,60); - if (.@fifthtired > 49) && (.@fifthtired < 61) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - } - } - else if ((.@fifthline > 10) && (.@fifthline < 31)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_5"; - set .@fifthtired,rand(40,60); - if (.@fifthtired > 49) && (.@fifthtired < 61) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - } - } - else if ((.@fifthline > 20) && (.@fifthline < 41)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - set .@fifthtired,rand(30,50); - if (.@fifthtired > 39) && (.@fifthtired < 51) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - } - } - else if ((.@fifthline > 40) && (.@fifthline < 51)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - enablenpc "Luk#race02_5_2"; - set .@fifthtired,rand(20,40); - if (.@fifthtired > 29) && (.@fifthtired < 41) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - } - } - else if ((.@fifthline > 50) && (.@fifthline < 61)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - enablenpc "Luk#race02_5_2"; - enablenpc "Luk#race02_5_3"; - set .@fifthtired,rand(10,30); - if (.@fifthtired > 19) && (.@fifthtired < 31) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - } - } - else if ((.@fifthline > 60) && (.@fifthline < 71)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - enablenpc "Luk#race02_5_2"; - enablenpc "Luk#race02_5_3"; - enablenpc "Luk#race02_5_4"; - set .@fifthtired,rand(0,20); - if (.@fifthtired > 9) && (.@fifthtired < 21) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - enablenpc "Tire#race02_5_6"; - } - } - else { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - enablenpc "Luk#race02_5_2"; - enablenpc "Luk#race02_5_3"; - enablenpc "Luk#race02_5_4"; - set .@fifthtired,rand(0,20); - if (.@fifthtired > 9) && (.@fifthtired < 21) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - enablenpc "Tire#race02_5_6"; - } - } - //------------------------------------------------------------- - // Monster No. 6, Baphomet Jr. - //------------------------------------------------------------- - set .@sixthline,rand(1,70); - if ((.@sixthline > 0) && (.@sixthline < 11)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_5"; - enablenpc "Luk#race02_6_6"; - set .@sixthtired,rand(50,60); - if (.@sixthtired > 49) && (.@sixthtired < 61) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - } - } - else if ((.@sixthline > 10) && (.@sixthline < 31)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_5"; - set .@sixthtired,rand(40,60); - if (.@sixthtired > 49) && (.@sixthtired < 61) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - } - } - else if ((.@sixthline > 20) && (.@sixthline < 41)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - set .@sixthtired,rand(30,50); - if (.@sixthtired > 39) && (.@sixthtired < 51) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - } - } - else if ((.@sixthline > 40) && (.@sixthline < 51)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - enablenpc "Luk#race02_6_2"; - set .@sixthtired,rand(20,40); - if (.@sixthtired > 29) && (.@sixthtired < 41) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - } - } - else if ((.@sixthline > 50) && (.@sixthline < 61)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - enablenpc "Luk#race02_6_2"; - enablenpc "Luk#race02_6_3"; - set .@sixthtired,rand(10,30); - if (.@sixthtired > 19) && (.@sixthtired < 31) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - } - } - else if ((.@sixthline > 60) && (.@sixthline < 71)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - enablenpc "Luk#race02_6_2"; - enablenpc "Luk#race02_6_3"; - enablenpc "Luk#race02_6_4"; - set .@sixthtired,rand(0,20); - if (.@sixthtired > 9) && (.@sixthtired < 21) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - enablenpc "Tire#race02_6_6"; - } - } - else { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - enablenpc "Luk#race02_6_2"; - enablenpc "Luk#race02_6_3"; - enablenpc "Luk#race02_6_4"; - set .@sixthtired,rand(0,20); - if (.@sixthtired > 9) && (.@sixthtired < 21) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - enablenpc "Tire#race02_6_6"; - } - } - end; - -OnDisable: - disablenpc "TrapGlobal#race02"; - donpcevent "starting#race02_1::OnDisable"; - donpcevent "starting#race02_2::OnDisable"; - donpcevent "starting#race02_3::OnDisable"; - donpcevent "starting#race02_4::OnDisable"; - donpcevent "starting#race02_5::OnDisable"; - donpcevent "starting#race02_6::OnDisable"; - end; -} - -p_track02,56,38,0 script starting#race02_1 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_1"; - end; - -OnDisable: - disablenpc "starting#race02_1"; - disablenpc "Luk#race02_1_1"; - disablenpc "Luk#race02_1_2"; - disablenpc "Luk#race02_1_3"; - disablenpc "Luk#race02_1_4"; - disablenpc "Luk#race02_1_5"; - disablenpc "Luk#race02_1_6"; - disablenpc "Tire#race02_1_1"; - disablenpc "Tire#race02_1_2"; - disablenpc "Tire#race02_1_3"; - disablenpc "Tire#race02_1_4"; - disablenpc "Tire#race02_1_5"; - disablenpc "Tire#race02_1_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,38,0 script Luk#race02_1_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,38,0 script Luk#race02_1_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,53,38,0 script Luk#race02_1_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,38,0 script Luk#race02_1_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,49,38,0 script Luk#race02_1_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,41,38,0 script Luk#race02_1_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,43,38,0 script Tire#race02_1_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,39,38,0 script Tire#race02_1_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,35,38,0 script Tire#race02_1_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,55,38,0 script Tire#race02_1_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,51,38,0 script Tire#race02_1_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,47,38,0 script Tire#race02_1_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,56,36,0 script starting#race02_2 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_2"; - end; - -OnDisable: - disablenpc "starting#race02_2"; - disablenpc "Luk#race02_2_1"; - disablenpc "Luk#race02_2_1"; - disablenpc "Luk#race02_2_1"; - disablenpc "Luk#race02_2_4"; - disablenpc "Luk#race02_2_5"; - disablenpc "Luk#race02_2_6"; - disablenpc "Tire#race02_2_1"; - disablenpc "Tire#race02_2_2"; - disablenpc "Tire#race02_2_3"; - disablenpc "Tire#race02_2_4"; - disablenpc "Tire#race02_2_5"; - disablenpc "Tire#race02_2_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,36,0 script Luk#race02_2_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,36,0 script Luk#race02_2_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,53,36,0 script Luk#race02_2_3 -1,0,0,{ -OnInit: - disablenpc "Luk#race02_2_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,36,0 script Luk#race02_2_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,49,36,0 script Luk#race02_2_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,41,36,0 script Luk#race02_2_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,43,36,0 script Tire#race02_2_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,39,36,0 script Tire#race02_2_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,35,36,0 script Tire#race02_2_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,55,36,0 script Tire#race02_2_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,51,36,0 script Tire#race02_2_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,47,36,0 script Tire#race02_2_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,56,34,0 script starting#race02_3 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_3"; - end; - -OnDisable: - disablenpc "starting#race02_3"; - disablenpc "Luk#race02_3_1"; - disablenpc "Luk#race02_3_2"; - disablenpc "Luk#race02_3_3"; - disablenpc "Luk#race02_3_4"; - disablenpc "Luk#race02_3_5"; - disablenpc "Luk#race02_3_6"; - disablenpc "Tire#race02_3_1"; - disablenpc "Tire#race02_3_2"; - disablenpc "Tire#race02_3_3"; - disablenpc "Tire#race02_3_4"; - disablenpc "Tire#race02_3_5"; - disablenpc "Tire#race02_3_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,34,0 script Luk#race02_3_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,34,0 script Luk#race02_3_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,53,34,0 script Luk#race02_3_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,34,0 script Luk#race02_3_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,49,34,0 script Luk#race02_3_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,41,34,0 script Luk#race02_3_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,43,34,0 script Tire#race02_3_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,39,34,0 script Tire#race02_3_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,35,34,0 script Tire#race02_3_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,55,34,0 script Tire#race02_3_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,51,34,0 script Tire#race02_3_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,47,34,0 script Tire#race02_3_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,56,32,0 script starting#race02_4 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_4"; - end; - -OnEnable: - enablenpc "starting#race02_4"; - end; - -OnDisable: - disablenpc "starting#race02_4"; - disablenpc "Luk#race02_4_1"; - disablenpc "Luk#race02_4_2"; - disablenpc "Luk#race02_4_3"; - disablenpc "Luk#race02_4_4"; - disablenpc "Luk#race02_4_5"; - disablenpc "Luk#race02_4_6"; - disablenpc "Tire#race02_4_1"; - disablenpc "Tire#race02_4_2"; - disablenpc "Tire#race02_4_3"; - disablenpc "Tire#race02_4_4"; - disablenpc "Tire#race02_4_5"; - disablenpc "Tire#race02_4_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,32,0 script Luk#race02_4_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,32,0 script Luk#race02_4_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,53,32,0 script Luk#race02_4_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,32,0 script Luk#race02_4_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,49,32,0 script Luk#race02_4_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,41,32,0 script Luk#race02_4_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,43,32,0 script Tire#race02_4_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,39,32,0 script Tire#race02_4_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,35,32,0 script Tire#race02_4_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,55,32,0 script Tire#race02_4_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,51,32,0 script Tire#race02_4_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,47,32,0 script Tire#race02_4_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,56,30,0 script starting#race02_5 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_5"; - end; - -OnEnable: - enablenpc "starting#race02_5"; - end; - -OnDisable: - disablenpc "starting#race02_5"; - disablenpc "Luk#race02_5_1"; - disablenpc "Luk#race02_5_2"; - disablenpc "Luk#race02_5_3"; - disablenpc "Luk#race02_5_4"; - disablenpc "Luk#race02_5_5"; - disablenpc "Luk#race02_5_6"; - disablenpc "Tire#race02_5_1"; - disablenpc "Tire#race02_5_2"; - disablenpc "Tire#race02_5_3"; - disablenpc "Tire#race02_5_4"; - disablenpc "Tire#race02_5_5"; - disablenpc "Tire#race02_5_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,30,0 script Luk#race02_5_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_5_1"; - end; - -OnEnable: - enablenpc "Luk#race02_5_1"; - end; - -OnDisable: - disablenpc "Luk#race02_5_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Ticket Helper]"; + mes "Hello there!"; + mes "Interested in wagering on"; + mes "the Dual Monster Race?"; + mes "I'm here to help you if you've"; + mes "got any questions, or if you"; + mes "want to place your wager."; + next; + switch(select("Check Monster Status:Wager on Race:Monster Race?:Cancel")) { + case 1: + mes "Monster 1 [^CC6600Luck^000000: " + $@mon_r02_Luk1 + "] [^EE0000HP^000000: " + $@mon_r02_tire1 + "]"; + mes "Monster 2 [^CC6600Luck^000000: " + $@mon_r02_Luk2 + "] [^EE0000HP^000000: " + $@mon_r02_Tire2 + "]"; + mes "Monster 3 [^CC6600Luck^000000: " + $@mon_r02_Luk3 + "] [^EE0000HP^000000: " + $@mon_r02_Tire3 + "]"; + mes "Monster 4 [^CC6600Luck^000000: " + $@mon_r02_Luk4 + "] [^EE0000HP^000000: " + $@mon_r02_Tire4 + "]"; + mes "Monster 5 [^CC6600Luck^000000: " + $@mon_r02_Luk5 + "] [^EE0000HP^000000: " + $@mon_r02_Tire5 + "]"; + mes "Monster 6 [^CC6600Luck^000000: " + $@mon_r02_Luk6 + "] [^EE0000HP^000000: " + $@mon_r02_Tire6 + "]"; + close; + case 2: + mes "[Ticket Helper]"; + mes "Alright, please choose which"; + mes "two monsters that you think"; + mes "will win 1st and 2nd place."; + mes "If both your monsters come"; + mes "in 1st and 2nd, in any order,"; + mes "you'll win the wager."; + next; + mes "[Ticket Helper]"; + mes "Now, please tell me"; + mes "your first choice for one"; + mes "of the monsters that"; + mes "will win this race."; + next; + switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 2:Monster 3:Monster 4:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 1^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 1^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000 and"; + mes "^0000FFMonster 4^000000."; + mes "I wish you good luck."; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + break; + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 1^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 1^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 1:Monster 3:Monster 4:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?."; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 4^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 1:Monster 2:Monster 4:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 4^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 1:Monster 2:Monster 3:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?."; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + break; + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?."; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 4^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 6: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Then, please pick your 2nd choice."; + next; + switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 5")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 4^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 3: + mes "[Ticket Helper]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Ticket Helper]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Eclar Ellbird]"; + mes "Then, we have the Dual Monster"; + mes "Race in which those that wagered on the 1st and 2nd place monsters"; + mes "are equally rewarded. The house"; + mes "odds and wager rewards are greater in Dual Races than Single Races."; + next; + mes "[Ticket Helper]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Ticket Helper]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Ticket Helper]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + mes "[Ticket Helper]"; + mes "You're already here"; + mes "inside the Monster Race"; + mes "Arena, so you may as well"; + mes "try placing a wager. It's"; + mes "more fun than you'd think~"; + close; + case 4: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } } else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,30,0 script Luk#race02_5_2 -1,0,0,{ - end; + if (countitem(7514) > 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster " + monster_race_2_1 + "^000000 and ^0000FFMonster " + monster_race_2_2 + "^000000"; + mes "for this Dual Monster Race."; + next; + mes "[Ticket Helper]"; + mes "The start of the race will be"; + mes "announced through a broadcast."; + mes "You can refer to your Mini-Map"; + mes "to track the monsters' race"; + mes "positions. Thank you, and"; + mes "have a good time!"; + viewpoint 1,43,35,0,0xFF0000; + close; + } + else { + mes "[Ticket Helper]"; + mes "The start of the race will be"; + mes "announced through a broadcast."; + mes "You can refer to your Mini-Map"; + mes "to track the monsters' race"; + mes "positions. Thank you, and"; + mes "have a good time!"; + viewpoint 1,43,35,0,0xFF0000; + close; + } + } OnInit: - disablenpc "Luk#race02_5_2"; - end; - -OnEnable: - enablenpc "Luk#race02_5_2"; - end; - -OnDisable: - disablenpc "Luk#race02_5_2"; + disablenpc "Ticket Helper#2"; end; +} -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; +p_track02,39,49,3 script Game Guide#double 845,{ + mes "[Game Guide]"; + mes "Welcome to the"; + mes "Monster Race Arena."; + mes "How can I help you?"; + next; + switch(select("Monster Race Info:Wager Info:Ticket Redemption Info")) { + case 1: + mes "[Game Guide]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Game Guide]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Game Guide]"; + mes "Then, we have the Dual Monster"; + mes "Race in which the house odds and rewards are greater than in Single"; + mes "Monster Races: you must wager on 2 monsters, and they must place in"; + mes "1st and 2nd for you to win."; + next; + mes "[Game Guide]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Game Guide]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Game Guide]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + break; + case 2: + mes "[Game Guide]"; + mes "Before placing a wager, you"; + mes "must get a free Racing Ticket"; + mes "from the Ticket Helper. There,"; + mes "I've marked the Ticket Helper"; + mes "on your Mini-Map, so you can"; + mes "find him pretty easily."; + viewpoint 1,73,22,1,0xFF3355; + next; + break; + case 3: + mes "[Game Guide]"; + mes "If you wagered on the winner"; + mes "of a Single Monster Race, or"; + mes "on the 1st or 2nd place winners"; + mes "in a Dual Monster Race, then"; + mes "you can exchange your Racing"; + mes "Ticket for Prize Medals."; + next; + mes "[Game Guide]"; + mes "However, you must exchange"; + mes "your Racing Ticket with the"; + mes "Medal Distributor within the"; + mes "5 minute window after the end"; + mes "of the race. ^FF0000Your ticket becomes^FFFFFF ^FF0000 void after these 5 minutes.^000000"; + next; + mes "[Game Guide]"; + mes "When this 5 minute window"; + mes "elapses, you will be teleported outside, and we will immediately"; + mes "begin preparing for the next race. Make sure that you remember this"; + mes "information when you wager."; + next; + mes "[Game Guide]"; + mes "If you haven't received"; + mes "your free Racing Ticket,"; + mes "then please visit the Ticket"; + mes "Helper. There, I've just marked"; + mes "his location on your Mini-Map."; + viewpoint 1,67,45,2,0xCE6300; + next; + break; } - end; + mes "[Game Guide]"; + mes "Thank you, and"; + mes "I hope you enjoy"; + mes "your time here in the"; + mes "Monster Racing Arena."; + close; } -p_track02,53,30,0 script Luk#race02_5_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_5_3"; - end; - -OnEnable: - enablenpc "Luk#race02_5_3"; - end; - -OnDisable: - disablenpc "Luk#race02_5_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; +p_track02,67,45,5 script Medal Distributor#medal 845,{ + if (checkweight(909,20) == 0) { + mes "[Medal Distributor]"; + mes "I'm sorry, but I can't"; + mes "reward you with any medals"; + mes "until you make more space"; + mes "available in your Inventory."; + close; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + if (countitem(7514) > 0) { + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + next; + if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 2)) || (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 2)) || ((monster_race_2_1 == 2) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 3)) || (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 3)) || ((monster_race_2_1 == 3) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 3)) || (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 2)) { + if ((monster_race_2_1 == 2) && (monster_race_2_2 == 3)) || ((monster_race_2_1 == 3) && (monster_race_2_2 == 2)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 2)) { + if ((monster_race_2_1 == 2) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 2)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 2)) { + if ((monster_race_2_1 == 2) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 2)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 2)) { + if ((monster_race_2_1 == 2) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 2)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 3)) { + if ((monster_race_2_1 == 3) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 3)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 3)) { + if ((monster_race_2_1 == 3) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 3)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 3)) { + if ((monster_race_2_1 == 3) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 3)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 4)) { + if ((monster_race_2_1 == 4) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 4)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 4)) { + if ((monster_race_2_1 == 4) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 4)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 5)) { + if ((monster_race_2_1 == 5) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 5)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else { + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + close; + } } else { - sc_start SC_WALKSPEED,10000,150; + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + close; } - end; -} - -p_track02,45,30,0 script Luk#race02_5_4 -1,0,0,{ - end; OnInit: - disablenpc "Luk#race02_5_4"; - end; - -OnEnable: - enablenpc "Luk#race02_5_4"; - end; - -OnDisable: - disablenpc "Luk#race02_5_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } + disablenpc "Medal Distributor#medal"; end; } -p_track02,49,30,0 script Luk#race02_5_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_5_5"; - end; - -OnEnable: - enablenpc "Luk#race02_5_5"; - end; - -OnDisable: - disablenpc "Luk#race02_5_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; +p_track02,76,38,1 script Exit Guide#double 798,{ + mes "[Exit Guide]"; + mes "If you have a winning Racing"; + mes "Ticket, please make sure that"; + mes "you redeem it for Prize Medals"; + mes "now. All Racing Tickets become"; + mes "void once the next race begins."; + next; + mes "[Exit Guide]"; + mes "If you wish to leave"; + mes "the arena, then I can guide"; + mes "you outside. Would you like"; + mes "to leave the arena right now?"; + next; + switch(select("Yes:No")) { + case 1: + if (countitem(7514) == 0) { + mes "[Exit Guide]"; + mes "Thank you for"; + mes "your patronage, and"; + mes "I hope that you come"; + mes "visit us again soon~"; + } + else { + mes "[Exit Guide]"; + mes "In accordance with our"; + mes "policies, I must take your"; + mes "Racing Ticket before you leave."; + mes "Thank you for your patronage,"; + mes "and I hope you enjoy your time"; + mes "here in the Monster Race Arena."; + delitem 7514,1; //Monster_Ticket + } + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "hugel",63,73; + end; + case 2: + mes "[Exit Guide]"; + mes "Alright, then."; + mes "Just let me know"; + mes "whenever you're"; + mes "ready to leave."; + close; } - end; } -p_track02,41,30,0 script Luk#race02_5_6 -1,0,0,{ - end; - +p_track02,30,38,0 script #poring1 139,0,0,{ OnInit: - disablenpc "Luk#race02_5_6"; + disablenpc "#poring1"; end; OnEnable: - enablenpc "Luk#race02_5_6"; + enablenpc "#poring1"; + monster "p_track02",58,38,"Monster 1",1725,1,"#poring1::OnMyMobDead"; end; OnDisable: - disablenpc "Luk#race02_5_6"; + killmonster "p_track02","#poring1::OnMyMobDead"; + disablenpc "#poring1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_lv; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 1 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,1; + donpcevent "#poring1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; + else { + emotion e_lv; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 1 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,1; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} - -p_track02,43,30,0 script Tire#race02_5_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_5_1"; - end; -OnEnable: - enablenpc "Tire#race02_5_1"; - end; - -OnDisable: - disablenpc "Tire#race02_5_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnMyMobDead: end; } -p_track02,39,30,0 script Tire#race02_5_2 -1,0,0,{ - end; - +p_track02,30,36,0 script #lunatic1 139,0,0,{ OnInit: - disablenpc "Tire#race02_5_2"; + disablenpc "#lunatic1"; end; OnEnable: - enablenpc "Tire#race02_5_2"; + enablenpc "#lunatic1"; + monster "p_track02",58,36,"Monster No. 2",1726,1,"#lunatic1::OnMyMobDead"; end; OnDisable: - disablenpc "Tire#race02_5_2"; + killmonster "p_track02","#lunatic1::OnMyMobDead"; + disablenpc "#lunatic1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_ho; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 2 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,2; + donpcevent "#lunatic1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + emotion e_ho; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 2 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,2; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} - -p_track02,35,30,0 script Tire#race02_5_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_5_3"; - end; - -OnEnable: - enablenpc "Tire#race02_5_3"; - end; - -OnDisable: - disablenpc "Tire#race02_5_3"; - end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnMyMobDead: end; } -p_track02,55,30,0 script Tire#race02_5_4 -1,0,0,{ - end; - +p_track02,30,34,0 script #savagebebe1 139,0,0,{ OnInit: - disablenpc "Tire#race02_5_4"; + disablenpc "#savagebebe1"; end; OnEnable: - enablenpc "Tire#race02_5_4"; + enablenpc "#savagebebe1"; + monster "p_track02",58,34,"Monster No. 3",1727,1,"#savagebebe1::OnMyMobDead"; end; OnDisable: - disablenpc "Tire#race02_5_4"; + killmonster "p_track02","#savagebebe1::OnMyMobDead"; + disablenpc "#savagebebe1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_heh; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 3 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,3; + donpcevent "#savagebebe1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + emotion e_heh; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 3 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,3; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} -p_track02,51,30,0 script Tire#race02_5_5 -1,0,0,{ +OnMyMobDead: end; +} +p_track02,30,32,0 script #desertwolf1 139,0,0,{ OnInit: - disablenpc "Tire#race02_5_5"; + disablenpc "#desertwolf1"; end; OnEnable: - enablenpc "Tire#race02_5_5"; + enablenpc "#desertwolf1"; + monster "p_track02",58,32,"Monster No. 4",1728,1,"#desertwolf1::OnMyMobDead"; end; OnDisable: - disablenpc "Tire#race02_5_5"; + killmonster "p_track02","#desertwolf1::OnMyMobDead"; + disablenpc "#desertwolf1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_kis; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 4 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,4; + donpcevent "#desertwolf1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + emotion e_kis; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 4 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,4; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} -p_track02,47,30,0 script Tire#race02_5_6 -1,0,0,{ +OnMyMobDead: end; +} +p_track02,30,30,0 script #deviruchi1 139,0,0,{ OnInit: - disablenpc "Tire#race02_5_6"; + disablenpc "#deviruchi1"; end; OnEnable: - enablenpc "Tire#race02_5_6"; + enablenpc "#deviruchi1"; + monster "p_track02",58,30,"Monster No. 5",1730,1,"#deviruchi1::OnMyMobDead"; end; OnDisable: - disablenpc "Tire#race02_5_6"; + killmonster "p_track02","#deviruchi1::OnMyMobDead"; + disablenpc "#deviruchi1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_gg; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 5 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,5; + donpcevent "#deviruchi1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + emotion e_gg; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 5 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,5; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} -p_track02,56,28,0 script starting#race02_6 -1,0,0,{ +OnMyMobDead: end; +} +p_track02,30,28,0 script #baphomet1 139,0,0,{ OnInit: - disablenpc "starting#race02_6"; + disablenpc "#baphomet1"; end; OnEnable: - enablenpc "starting#race02_6"; + enablenpc "#baphomet1"; + monster "p_track02",58,28,"Monster No. 6",1729,1,"#baphomet1::OnMyMobDead"; end; OnDisable: - disablenpc "starting#race02_6"; - disablenpc "Luk#race02_6_1"; - disablenpc "Luk#race02_6_2"; - disablenpc "Luk#race02_6_3"; - disablenpc "Luk#race02_6_4"; - disablenpc "Luk#race02_6_5"; - disablenpc "Luk#race02_6_6"; - disablenpc "Tire#race02_6_1"; - disablenpc "Tire#race02_6_2"; - disablenpc "Tire#race02_6_3"; - disablenpc "Tire#race02_6_4"; - disablenpc "Tire#race02_6_5"; - disablenpc "Tire#race02_6_6"; + killmonster "p_track02","#baphomet1::OnMyMobDead"; + disablenpc "#baphomet1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; + if ($@mon_race_2_1 == 0) { + emotion e_pif; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 6 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,6; + donpcevent "#baphomet1::OnDisable"; } else { - sc_start SC_WALKSPEED,5000,150; + emotion e_pif; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 6 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,6; + donpcevent "#baphomet1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} -p_track02,33,28,0 script Luk#race02_6_1 -1,0,0,{ +OnMyMobDead: end; +} +p_track02,19,48,0 script TrapGlobal#race02 -1,{ OnInit: - disablenpc "Luk#race02_6_1"; + set $@mon_r02_luk1,0; + set $@mon_r02_luk2,0; + set $@mon_r02_luk3,0; + set $@mon_r02_luk4,0; + set $@mon_r02_luk5,0; + set $@mon_r02_luk6,0; + set $@mon_r02_tire1,0; + set $@mon_r02_tire2,0; + set $@mon_r02_tire3,0; + set $@mon_r02_tire4,0; + set $@mon_r02_tire5,0; + set $@mon_r02_tire6,0; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; +OnEnable: + enablenpc "TrapGlobal#race02"; + enablenpc "starting#race02_1"; + enablenpc "starting#race02_2"; + enablenpc "starting#race02_3"; + enablenpc "starting#race02_4"; + enablenpc "starting#race02_5"; + enablenpc "starting#race02_6"; + //------------------------------------------------------------- + // Monster No. 1, Poring + //------------------------------------------------------------- + set .@firstline,rand(1,70); + if ((.@firstline > 0) && (.@firstline < 11)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_5"; + enablenpc "Luk#race02_1_6"; + set .@firsttired,rand(50,60); + if (.@firsttired > 49) && (.@firsttired < 61) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; + else if ((.@firstline > 10) && (.@firstline < 31)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_5"; + set .@firsttired,rand(40,60); + if (.@firsttired > 49) && (.@firsttired < 61) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + else if ((.@firstline > 20) && (.@firstline < 41)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + set .@firsttired,rand(30,50); + if (.@firsttired > 39) && (.@firsttired < 51) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + } } - else { - sc_start SC_WALKSPEED,10000,150; + else if ((.@firstline > 40) && (.@firstline < 51)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + enablenpc "Luk#race02_1_2"; + set .@firsttired,rand(20,40); + if (.@firsttired > 29) && (.@firsttired < 41) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + } } - end; -} - -p_track02,37,28,0 script Luk#race02_6_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; + else if ((.@firstline > 50) && (.@firstline < 61)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + enablenpc "Luk#race02_1_2"; + enablenpc "Luk#race02_1_3"; + set .@firsttired,rand(10,30); + if (.@firsttired > 19) && (.@firsttired < 31) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; + else if ((.@firstline > 60) && (.@firstline < 71)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + enablenpc "Luk#race02_1_2"; + enablenpc "Luk#race02_1_3"; + enablenpc "Luk#race02_1_4"; + set .@firsttired,rand(0,20); + if (.@firsttired > 9) && (.@firsttired < 21) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + enablenpc "Tire#race02_1_6"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; + else { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + enablenpc "Luk#race02_1_2"; + enablenpc "Luk#race02_1_3"; + enablenpc "Luk#race02_1_4"; + set .@firsttired,rand(0,20); + if (.@firsttired > 9) && (.@firsttired < 21) { + set $@mon_r02_tire1,.@firstline; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + } + else { + set $@mon_r02_tire1,.@firstline; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + enablenpc "Tire#race02_1_6"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + //------------------------------------------------------------- + // Monster No. 2, Lunatic + //------------------------------------------------------------- + set .@secondline,rand(1,70); + if ((.@secondline > 0) && (.@secondline < 11)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_5"; + enablenpc "Luk#race02_2_6"; + set .@secondtired,rand(50,60); + if (.@secondtired > 49) && (.@secondtired < 61) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + } } - else { - sc_start SC_WALKSPEED,10000,150; + else if ((.@secondline > 10) && (.@secondline < 31)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_5"; + set .@secondtired,rand(40,60); + if (.@secondtired > 49) && (.@secondtired < 61) { + set $@mon_r02_tire2,.@secondline; + enablenpc "Tire#race02_2_1"; + } + else { + set $@mon_r02_tire2,.@secondline; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + } } - end; -} - -p_track02,53,28,0 script Luk#race02_6_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; + else if ((.@secondline > 20) && (.@secondline < 41)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + set .@secondtired,rand(30,50); + if (.@secondtired > 39) && (.@secondtired < 51) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; + else if ((.@secondline > 40) && (.@secondline < 51)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + enablenpc "Luk#race02_2_2"; + set .@secondtired,rand(20,40); + if (.@secondtired > 29) && (.@secondtired < 41) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; + else if ((.@secondline > 50) && (.@secondline < 61)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + enablenpc "Luk#race02_2_2"; + enablenpc "Luk#race02_2_3"; + set .@secondtired,rand(10,30); + if (.@secondtired > 19) && (.@secondtired < 31) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + else if ((.@secondline > 60) && (.@secondline < 71)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + enablenpc "Luk#race02_2_2"; + enablenpc "Luk#race02_2_3"; + enablenpc "Luk#race02_2_4"; + set .@secondtired,rand(0,20); + if (.@secondtired > 9) && (.@secondtired < 21) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + enablenpc "Tire#race02_2_6"; + } } else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,28,0 script Luk#race02_6_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + enablenpc "Luk#race02_2_2"; + enablenpc "Luk#race02_2_3"; + enablenpc "Luk#race02_2_4"; + set .@secondtired,rand(0,20); + if (.@secondtired > 9) && (.@secondtired < 21) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + enablenpc "Tire#race02_2_6"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; + //------------------------------------------------------------- + // Monster No. 3, Savage Babe + //------------------------------------------------------------- + set .@thirdline,rand(1,70); + if ((.@thirdline > 0) && (.@thirdline < 11)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_5"; + enablenpc "Luk#race02_3_6"; + set .@thridtired,rand(50,60); + if (.@thridtired > 49) && (.@thridtired < 61) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; + else if ((.@thirdline > 10) && (.@thirdline < 31)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_5"; + set .@thridtired,rand(40,60); + if (.@thridtired > 49) && (.@thridtired < 61) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + else if ((.@thirdline > 20) && (.@thirdline < 41)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + set .@thridtired,rand(30,50); + if (.@thridtired > 39) && (.@thridtired < 51) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + } } - else { - sc_start SC_WALKSPEED,10000,150; + else if ((.@thirdline > 40) && (.@thirdline < 51)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + enablenpc "Luk#race02_3_2"; + set .@thridtired,rand(20,40); + if (.@thridtired > 29) && (.@thridtired < 41) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + } } - end; -} - -p_track02,49,28,0 script Luk#race02_6_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; + else if ((.@thirdline > 50) && (.@thirdline < 61)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + enablenpc "Luk#race02_3_2"; + enablenpc "Luk#race02_3_3"; + set .@thridtired,rand(10,30); + if (.@thridtired > 19) && (.@thridtired < 31) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; + else if ((.@thirdline > 60) && (.@thirdline < 71)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + enablenpc "Luk#race02_3_2"; + enablenpc "Luk#race02_3_3"; + enablenpc "Luk#race02_3_4"; + set .@thridtired,rand(0,20); + if (.@thridtired > 9) && (.@thridtired < 21) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + enablenpc "Tire#race02_3_6"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; + else { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + enablenpc "Luk#race02_3_2"; + enablenpc "Luk#race02_3_3"; + enablenpc "Luk#race02_3_4"; + set .@thridtired,rand(0,20); + if (.@thridtired > 9) && (.@thridtired < 21) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + enablenpc "Tire#race02_3_6"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; + //------------------------------------------------------------- + // Monster No. 4, Baby Desert Wolf + //------------------------------------------------------------- + set .@fourthline,rand(1,70); + if ((.@fourthline > 0) && (.@fourthline < 11)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_5"; + enablenpc "Luk#race02_4_6"; + set .@fourthtired,rand(50,60); + if (.@fourthtired > 49) && (.@fourthtired < 61) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + } } - end; -} - -p_track02,41,28,0 script Luk#race02_6_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; + else if ((.@fourthline > 10) && (.@fourthline < 31)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_5"; + set .@fourthtired,rand(40,60); + if (.@fourthtired > 49) && (.@fourthtired < 61) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; + else if ((.@fourthline > 20) && (.@fourthline < 41)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + set .@fourthtired,rand(30,50); + if (.@fourthtired > 39) && (.@fourthtired < 51) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; + else if ((.@fourthline > 40) && (.@fourthline < 51)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + enablenpc "Luk#race02_4_2"; + set .@fourthtired,rand(20,40); + if (.@fourthtired > 29) && (.@fourthtired < 41) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; + else if ((.@fourthline > 50) && (.@fourthline < 61)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + enablenpc "Luk#race02_4_2"; + enablenpc "Luk#race02_4_3"; + set .@fourthtired,rand(10,30); + if (.@fourthtired > 19) && (.@fourthtired < 31) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + } } - end; -} - -p_track02,43,28,0 script Tire#race02_6_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; + else if ((.@fourthline > 60) && (.@fourthline < 71)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + enablenpc "Luk#race02_4_2"; + enablenpc "Luk#race02_4_3"; + enablenpc "Luk#race02_4_4"; + set .@fourthtired,rand(0,20); + if (.@fourthtired > 9) && (.@fourthtired < 21) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + enablenpc "Tire#race02_4_6"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; + else { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + enablenpc "Luk#race02_4_2"; + enablenpc "Luk#race02_4_3"; + enablenpc "Luk#race02_4_4"; + set .@fourthtired,rand(0,20); + if (.@fourthtired > 9) && (.@fourthtired < 21) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + enablenpc "Tire#race02_4_6"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + //------------------------------------------------------------- + // Monster No. 5, Deviruchi + //------------------------------------------------------------- + set .@fifthline,rand(1,70); + if ((.@fifthline > 0) && (.@fifthline < 11)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_5"; + set .@fifthtired,rand(50,60); + if (.@fifthtired > 49) && (.@fifthtired < 61) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else if ((.@fifthline > 10) && (.@fifthline < 31)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_5"; + set .@fifthtired,rand(40,60); + if (.@fifthtired > 49) && (.@fifthtired < 61) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + } } - end; -} - -p_track02,39,28,0 script Tire#race02_6_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; + else if ((.@fifthline > 20) && (.@fifthline < 41)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + set .@fifthtired,rand(30,50); + if (.@fifthtired > 39) && (.@fifthtired < 51) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; + else if ((.@fifthline > 40) && (.@fifthline < 51)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + enablenpc "Luk#race02_5_2"; + set .@fifthtired,rand(20,40); + if (.@fifthtired > 29) && (.@fifthtired < 41) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + else if ((.@fifthline > 50) && (.@fifthline < 61)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + enablenpc "Luk#race02_5_2"; + enablenpc "Luk#race02_5_3"; + set .@fifthtired,rand(10,30); + if (.@fifthtired > 19) && (.@fifthtired < 31) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else if ((.@fifthline > 60) && (.@fifthline < 71)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + enablenpc "Luk#race02_5_2"; + enablenpc "Luk#race02_5_3"; + enablenpc "Luk#race02_5_4"; + set .@fifthtired,rand(0,20); + if (.@fifthtired > 9) && (.@fifthtired < 21) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + enablenpc "Tire#race02_5_6"; + } } - end; -} - -p_track02,35,28,0 script Tire#race02_6_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; + else { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + enablenpc "Luk#race02_5_2"; + enablenpc "Luk#race02_5_3"; + enablenpc "Luk#race02_5_4"; + set .@fifthtired,rand(0,20); + if (.@fifthtired > 9) && (.@fifthtired < 21) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + enablenpc "Tire#race02_5_6"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; + //------------------------------------------------------------- + // Monster No. 6, Baphomet Jr. + //------------------------------------------------------------- + set .@sixthline,rand(1,70); + if ((.@sixthline > 0) && (.@sixthline < 11)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_5"; + enablenpc "Luk#race02_6_6"; + set .@sixthtired,rand(50,60); + if (.@sixthtired > 49) && (.@sixthtired < 61) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + else if ((.@sixthline > 10) && (.@sixthline < 31)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_5"; + set .@sixthtired,rand(40,60); + if (.@sixthtired > 49) && (.@sixthtired < 61) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else if ((.@sixthline > 20) && (.@sixthline < 41)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + set .@sixthtired,rand(30,50); + if (.@sixthtired > 39) && (.@sixthtired < 51) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + } } - end; -} - -p_track02,55,28,0 script Tire#race02_6_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; + else if ((.@sixthline > 40) && (.@sixthline < 51)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + enablenpc "Luk#race02_6_2"; + set .@sixthtired,rand(20,40); + if (.@sixthtired > 29) && (.@sixthtired < 41) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; + else if ((.@sixthline > 50) && (.@sixthline < 61)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + enablenpc "Luk#race02_6_2"; + enablenpc "Luk#race02_6_3"; + set .@sixthtired,rand(10,30); + if (.@sixthtired > 19) && (.@sixthtired < 31) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + else if ((.@sixthline > 60) && (.@sixthline < 71)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + enablenpc "Luk#race02_6_2"; + enablenpc "Luk#race02_6_3"; + enablenpc "Luk#race02_6_4"; + set .@sixthtired,rand(0,20); + if (.@sixthtired > 9) && (.@sixthtired < 21) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + enablenpc "Tire#race02_6_6"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + enablenpc "Luk#race02_6_2"; + enablenpc "Luk#race02_6_3"; + enablenpc "Luk#race02_6_4"; + set .@sixthtired,rand(0,20); + if (.@sixthtired > 9) && (.@sixthtired < 21) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + enablenpc "Tire#race02_6_6"; + } } end; -} - -p_track02,51,28,0 script Tire#race02_6_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_5"; - end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnDisable: + disablenpc "TrapGlobal#race02"; + donpcevent "starting#race02_1::OnDisable"; + donpcevent "starting#race02_2::OnDisable"; + donpcevent "starting#race02_3::OnDisable"; + donpcevent "starting#race02_4::OnDisable"; + donpcevent "starting#race02_5::OnDisable"; + donpcevent "starting#race02_6::OnDisable"; end; } -p_track02,47,28,0 script Tire#race02_6_6 -1,0,0,{ +- script starting_2 -1,{ end; OnInit: - disablenpc "Tire#race02_6_6"; + disablenpc strnpcinfo(0); end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} +OnDisable: + disablenpc strnpcinfo(0); + for(set .@i,1; .@i<7; set .@i,.@i+1) + disablenpc "Luk#"+strnpcinfo(2)+"_"+.@i; + for(set .@i,1; .@i<7; set .@i,.@i+1) + disablenpc "Tire#"+strnpcinfo(2)+"_"+.@i; + end; + +OnTouchNPC: + set .@start,rand(1,100); + if (.@start < 11) set .@speed,60; + else if (.@start < 21) set .@speed,70; + else if (.@start < 31) set .@speed,80; + else if (.@start < 41) set .@speed,90; + else if (.@start < 51) set .@speed,100; + else if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,5000,.@speed; + end; +} + +p_track02,56,38,0 duplicate(starting_2) starting#race02_1 -1,0,0 +p_track02,56,36,0 duplicate(starting_2) starting#race02_2 -1,0,0 +p_track02,56,34,0 duplicate(starting_2) starting#race02_3 -1,0,0 +p_track02,56,32,0 duplicate(starting_2) starting#race02_4 -1,0,0 +p_track02,56,30,0 duplicate(starting_2) starting#race02_5 -1,0,0 +p_track02,56,28,0 duplicate(starting_2) starting#race02_6 -1,0,0 + +p_track02,33,38,0 duplicate(Luk_1) Luk#race02_1_1 -1,0,0 +p_track02,37,38,0 duplicate(Luk_1) Luk#race02_1_2 -1,0,0 +p_track02,53,38,0 duplicate(Luk_1) Luk#race02_1_3 -1,0,0 +p_track02,45,38,0 duplicate(Luk_1) Luk#race02_1_4 -1,0,0 +p_track02,33,36,0 duplicate(Luk_1) Luk#race02_2_1 -1,0,0 +p_track02,37,36,0 duplicate(Luk_1) Luk#race02_2_2 -1,0,0 +p_track02,53,36,0 duplicate(Luk_1) Luk#race02_2_3 -1,0,0 +p_track02,45,36,0 duplicate(Luk_1) Luk#race02_2_4 -1,0,0 +p_track02,33,34,0 duplicate(Luk_1) Luk#race02_3_1 -1,0,0 +p_track02,37,34,0 duplicate(Luk_1) Luk#race02_3_2 -1,0,0 +p_track02,53,34,0 duplicate(Luk_1) Luk#race02_3_3 -1,0,0 +p_track02,45,34,0 duplicate(Luk_1) Luk#race02_3_4 -1,0,0 +p_track02,33,32,0 duplicate(Luk_1) Luk#race02_4_1 -1,0,0 +p_track02,37,32,0 duplicate(Luk_1) Luk#race02_4_2 -1,0,0 +p_track02,53,32,0 duplicate(Luk_1) Luk#race02_4_3 -1,0,0 +p_track02,45,32,0 duplicate(Luk_1) Luk#race02_4_4 -1,0,0 +p_track02,33,30,0 duplicate(Luk_1) Luk#race02_5_1 -1,0,0 +p_track02,37,30,0 duplicate(Luk_1) Luk#race02_5_2 -1,0,0 +p_track02,53,30,0 duplicate(Luk_1) Luk#race02_5_3 -1,0,0 +p_track02,45,30,0 duplicate(Luk_1) Luk#race02_5_4 -1,0,0 +p_track02,33,28,0 duplicate(Luk_1) Luk#race02_6_1 -1,0,0 +p_track02,37,28,0 duplicate(Luk_1) Luk#race02_6_2 -1,0,0 +p_track02,53,28,0 duplicate(Luk_1) Luk#race02_6_3 -1,0,0 +p_track02,45,28,0 duplicate(Luk_1) Luk#race02_6_4 -1,0,0 + +p_track02,49,38,0 duplicate(Luk_2) Luk#race02_1_5 -1,0,0 +p_track02,41,38,0 duplicate(Luk_2) Luk#race02_1_6 -1,0,0 +p_track02,49,36,0 duplicate(Luk_2) Luk#race02_2_5 -1,0,0 +p_track02,41,36,0 duplicate(Luk_2) Luk#race02_2_6 -1,0,0 +p_track02,49,34,0 duplicate(Luk_2) Luk#race02_3_5 -1,0,0 +p_track02,41,34,0 duplicate(Luk_2) Luk#race02_3_6 -1,0,0 +p_track02,49,32,0 duplicate(Luk_2) Luk#race02_4_5 -1,0,0 +p_track02,41,32,0 duplicate(Luk_2) Luk#race02_4_6 -1,0,0 +p_track02,49,30,0 duplicate(Luk_2) Luk#race02_5_5 -1,0,0 +p_track02,41,30,0 duplicate(Luk_2) Luk#race02_5_6 -1,0,0 +p_track02,49,28,0 duplicate(Luk_2) Luk#race02_6_5 -1,0,0 +p_track02,41,28,0 duplicate(Luk_2) Luk#race02_6_6 -1,0,0 + +p_track02,43,38,0 duplicate(Tire_1) Tire#race02_1_1 -1,0,0 +p_track02,39,38,0 duplicate(Tire_1) Tire#race02_1_2 -1,0,0 +p_track02,35,38,0 duplicate(Tire_1) Tire#race02_1_3 -1,0,0 +p_track02,55,38,0 duplicate(Tire_1) Tire#race02_1_4 -1,0,0 +p_track02,51,38,0 duplicate(Tire_1) Tire#race02_1_5 -1,0,0 +p_track02,47,38,0 duplicate(Tire_1) Tire#race02_1_6 -1,0,0 +p_track02,43,36,0 duplicate(Tire_1) Tire#race02_2_1 -1,0,0 +p_track02,39,36,0 duplicate(Tire_1) Tire#race02_2_2 -1,0,0 +p_track02,35,36,0 duplicate(Tire_1) Tire#race02_2_3 -1,0,0 +p_track02,55,36,0 duplicate(Tire_1) Tire#race02_2_4 -1,0,0 +p_track02,51,36,0 duplicate(Tire_1) Tire#race02_2_5 -1,0,0 +p_track02,47,36,0 duplicate(Tire_1) Tire#race02_2_6 -1,0,0 +p_track02,43,34,0 duplicate(Tire_1) Tire#race02_3_1 -1,0,0 +p_track02,39,34,0 duplicate(Tire_1) Tire#race02_3_2 -1,0,0 +p_track02,35,34,0 duplicate(Tire_1) Tire#race02_3_3 -1,0,0 +p_track02,55,34,0 duplicate(Tire_1) Tire#race02_3_4 -1,0,0 +p_track02,51,34,0 duplicate(Tire_1) Tire#race02_3_5 -1,0,0 +p_track02,47,34,0 duplicate(Tire_1) Tire#race02_3_6 -1,0,0 +p_track02,43,32,0 duplicate(Tire_1) Tire#race02_4_1 -1,0,0 +p_track02,39,32,0 duplicate(Tire_1) Tire#race02_4_2 -1,0,0 +p_track02,35,32,0 duplicate(Tire_1) Tire#race02_4_3 -1,0,0 +p_track02,55,32,0 duplicate(Tire_1) Tire#race02_4_4 -1,0,0 +p_track02,51,32,0 duplicate(Tire_1) Tire#race02_4_5 -1,0,0 +p_track02,47,32,0 duplicate(Tire_1) Tire#race02_4_6 -1,0,0 +p_track02,43,30,0 duplicate(Tire_1) Tire#race02_5_1 -1,0,0 +p_track02,39,30,0 duplicate(Tire_1) Tire#race02_5_2 -1,0,0 +p_track02,35,30,0 duplicate(Tire_1) Tire#race02_5_3 -1,0,0 +p_track02,55,30,0 duplicate(Tire_1) Tire#race02_5_4 -1,0,0 +p_track02,51,30,0 duplicate(Tire_1) Tire#race02_5_5 -1,0,0 +p_track02,47,30,0 duplicate(Tire_1) Tire#race02_5_6 -1,0,0 +p_track02,43,28,0 duplicate(Tire_1) Tire#race02_6_1 -1,0,0 +p_track02,39,28,0 duplicate(Tire_1) Tire#race02_6_2 -1,0,0 +p_track02,35,28,0 duplicate(Tire_1) Tire#race02_6_3 -1,0,0 +p_track02,55,28,0 duplicate(Tire_1) Tire#race02_6_4 -1,0,0 +p_track02,51,28,0 duplicate(Tire_1) Tire#race02_6_5 -1,0,0 +p_track02,47,28,0 duplicate(Tire_1) Tire#race02_6_6 -1,0,0 //============================================================ // NPCs for Redeeming Price Medals (Einbroch and Hugel) diff --git a/npc/re/other/monster_race.txt b/npc/re/other/monster_race.txt index aa82efbbe..3fd668380 100644 --- a/npc/re/other/monster_race.txt +++ b/npc/re/other/monster_race.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== -//= 1.6 +//= 1.7 //===== Compatible With: ===================================== //= rAthena SVN (Trunk, r12752+) //===== Description: ========================================= @@ -20,6 +20,7 @@ //= 1.4 Fixed call to a non-existant event. [L0ne_W0lf] //= 1.5 Updated Dialog. [L0ne_W0lf] //= 1.6 Updated experience rewards. [L0ne_W0lf] +//= 1.7 Optimization, -4000 lines (more can still be done). [Euphy] //============================================================ //============================================================ @@ -2563,8566 +2564,4437 @@ p_track01,39,49,3 script Game Guide#single 845,{ close; } -p_track01,56,38,0 script starting#1 -1,0,0,{ +- script starting_1 -1,{ end; OnDisable: - enablenpc "Luk#1"; - enablenpc "Luk#2"; - enablenpc "Luk#3"; - enablenpc "Luk#4"; - enablenpc "Luk#5"; - enablenpc "Luk#6"; - enablenpc "Tire#1"; - enablenpc "Tire#2"; - enablenpc "Tire#3"; - enablenpc "Tire#4"; - enablenpc "Tire#5"; - enablenpc "Tire#6"; - set $@mr_1_luk1,0; - set $@mr_1_tire1,0; + for(set .@i,1; .@i<7; set .@i,.@i+1) + enablenpc "Luk"+((strnpcinfo(2)=="1")?"":strnpcinfo(2))+"#"+.@i; + for(set .@i,1; .@i<7; set .@i,.@i+1) + enablenpc "Tire"+((strnpcinfo(2)=="1")?"":strnpcinfo(2))+"#"+.@i; + setd "$@mr_1_luk"+strnpcinfo(2),0; + setd "$@mr_1_tire"+strnpcinfo(2),0; end; OnInit: - disablenpc "starting#1"; + disablenpc strnpcinfo(0); end; OnTouchNPC: set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } + if (.@start < 11) set .@speed,60; + else if (.@start < 21) set .@speed,70; + else if (.@start < 31) set .@speed,80; + else if (.@start < 41) set .@speed,90; + else if (.@start < 51) set .@speed,100; + else if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,5000,.@speed; end; } -p_track01,33,38,0 script Luk#1 -1,0,0,{ +- script Luk_1 -1,{ end; OnInit: - disablenpc "Luk#1"; + disablenpc strnpcinfo(0); end; OnTouchNPC: set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } + if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,10000,.@speed; end; } -p_track01,37,38,0 script Luk#2 -1,0,0,{ +- script Luk_2 -1,{ end; OnInit: - disablenpc "Luk#2"; + disablenpc strnpcinfo(0); end; OnTouchNPC: set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } + if (.@start < 61) set .@time,1000; + else if (.@start < 71) set .@time,2000; + else if (.@start < 81) set .@time,3000; + else if (.@start < 91) set .@time,4000; + if (.@time) sc_start SC_STUN,.@time,0; end; } -p_track01,53,38,0 script Luk#3 -1,0,0,{ +- script Tire_1 -1,{ end; - OnInit: - disablenpc "Luk#3"; + disablenpc strnpcinfo(0); end; OnTouchNPC: set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } + if (.@start < 61) set .@time,1000; + else if (.@start < 71) set .@time,2000; + else if (.@start < 81) set .@time,3000; + else if (.@start < 91) set .@time,4000; + if (.@time) sc_start SC_SLEEP,.@time,0; end; } -p_track01,45,38,0 script Luk#4 -1,0,0,{ - end; +p_track01,56,38,0 duplicate(starting_1) starting#1 -1,0,0 +p_track01,56,36,0 duplicate(starting_1) starting#2 -1,0,0 +p_track01,56,34,0 duplicate(starting_1) starting#3 -1,0,0 +p_track01,56,32,0 duplicate(starting_1) starting#4 -1,0,0 +p_track01,56,30,0 duplicate(starting_1) starting#5 -1,0,0 +p_track01,56,28,0 duplicate(starting_1) starting#6 -1,0,0 -OnInit: - disablenpc "Luk#4"; - end; +p_track01,33,38,0 duplicate(Luk_1) Luk#1 -1,0,0 +p_track01,37,38,0 duplicate(Luk_1) Luk#2 -1,0,0 +p_track01,53,38,0 duplicate(Luk_1) Luk#3 -1,0,0 +p_track01,45,38,0 duplicate(Luk_1) Luk#4 -1,0,0 +p_track01,33,36,0 duplicate(Luk_1) Luk2#1 -1,0,0 +p_track01,37,36,0 duplicate(Luk_1) Luk2#2 -1,0,0 +p_track01,53,36,0 duplicate(Luk_1) Luk2#3 -1,0,0 +p_track01,45,36,0 duplicate(Luk_1) Luk2#4 -1,0,0 +p_track01,33,34,0 duplicate(Luk_1) Luk3#1 -1,0,0 +p_track01,37,34,0 duplicate(Luk_1) Luk3#2 -1,0,0 +p_track01,53,34,0 duplicate(Luk_1) Luk3#3 -1,0,0 +p_track01,45,34,0 duplicate(Luk_1) Luk3#4 -1,0,0 +p_track01,33,32,0 duplicate(Luk_1) Luk4#1 -1,0,0 +p_track01,37,32,0 duplicate(Luk_1) Luk4#2 -1,0,0 +p_track01,53,32,0 duplicate(Luk_1) Luk4#3 -1,0,0 +p_track01,45,32,0 duplicate(Luk_1) Luk4#4 -1,0,0 +p_track01,33,30,0 duplicate(Luk_1) Luk5#1 -1,0,0 +p_track01,37,30,0 duplicate(Luk_1) Luk5#2 -1,0,0 +p_track01,53,30,0 duplicate(Luk_1) Luk5#3 -1,0,0 +p_track01,45,30,0 duplicate(Luk_1) Luk5#4 -1,0,0 +p_track01,33,28,0 duplicate(Luk_1) Luk6#1 -1,0,0 +p_track01,37,28,0 duplicate(Luk_1) Luk6#2 -1,0,0 +p_track01,53,28,0 duplicate(Luk_1) Luk6#3 -1,0,0 +p_track01,45,28,0 duplicate(Luk_1) Luk6#4 -1,0,0 -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} +p_track01,49,38,0 duplicate(Luk_2) Luk#5 -1,0,0 +p_track01,41,38,0 duplicate(Luk_2) Luk#6 -1,0,0 +p_track01,49,36,0 duplicate(Luk_2) Luk2#5 -1,0,0 +p_track01,41,36,0 duplicate(Luk_2) Luk2#6 -1,0,0 +p_track01,49,34,0 duplicate(Luk_2) Luk3#5 -1,0,0 +p_track01,41,34,0 duplicate(Luk_2) Luk3#6 -1,0,0 +p_track01,49,32,0 duplicate(Luk_2) Luk4#5 -1,0,0 +p_track01,41,32,0 duplicate(Luk_2) Luk4#6 -1,0,0 +p_track01,49,30,0 duplicate(Luk_2) Luk5#5 -1,0,0 +p_track01,41,30,0 duplicate(Luk_2) Luk5#6 -1,0,0 +p_track01,49,28,0 duplicate(Luk_2) Luk6#5 -1,0,0 +p_track01,41,28,0 duplicate(Luk_2) Luk6#6 -1,0,0 -p_track01,49,38,0 script Luk#5 -1,0,0,{ - end; +p_track01,43,38,0 duplicate(Tire_1) Tire#1 -1,0,0 +p_track01,39,38,0 duplicate(Tire_1) Tire#2 -1,0,0 +p_track01,35,38,0 duplicate(Tire_1) Tire#3 -1,0,0 +p_track01,55,38,0 duplicate(Tire_1) Tire#4 -1,0,0 +p_track01,51,38,0 duplicate(Tire_1) Tire#5 -1,0,0 +p_track01,47,38,0 duplicate(Tire_1) Tire#6 -1,0,0 +p_track01,43,36,0 duplicate(Tire_1) Tire2#1 -1,0,0 +p_track01,39,36,0 duplicate(Tire_1) Tire2#2 -1,0,0 +p_track01,35,36,0 duplicate(Tire_1) Tire2#3 -1,0,0 +p_track01,55,36,0 duplicate(Tire_1) Tire2#4 -1,0,0 +p_track01,51,36,0 duplicate(Tire_1) Tire2#5 -1,0,0 +p_track01,47,36,0 duplicate(Tire_1) Tire2#6 -1,0,0 +p_track01,43,34,0 duplicate(Tire_1) Tire3#1 -1,0,0 +p_track01,39,34,0 duplicate(Tire_1) Tire3#2 -1,0,0 +p_track01,35,34,0 duplicate(Tire_1) Tire3#3 -1,0,0 +p_track01,55,34,0 duplicate(Tire_1) Tire3#4 -1,0,0 +p_track01,51,34,0 duplicate(Tire_1) Tire3#5 -1,0,0 +p_track01,47,34,0 duplicate(Tire_1) Tire3#6 -1,0,0 +p_track01,43,32,0 duplicate(Tire_1) Tire4#1 -1,0,0 +p_track01,39,32,0 duplicate(Tire_1) Tire4#2 -1,0,0 +p_track01,35,32,0 duplicate(Tire_1) Tire4#3 -1,0,0 +p_track01,55,32,0 duplicate(Tire_1) Tire4#4 -1,0,0 +p_track01,51,32,0 duplicate(Tire_1) Tire4#5 -1,0,0 +p_track01,47,32,0 duplicate(Tire_1) Tire4#6 -1,0,0 +p_track01,43,30,0 duplicate(Tire_1) Tire5#1 -1,0,0 +p_track01,39,30,0 duplicate(Tire_1) Tire5#2 -1,0,0 +p_track01,35,30,0 duplicate(Tire_1) Tire5#3 -1,0,0 +p_track01,55,30,0 duplicate(Tire_1) Tire5#4 -1,0,0 +p_track01,51,30,0 duplicate(Tire_1) Tire5#5 -1,0,0 +p_track01,47,30,0 duplicate(Tire_1) Tire5#6 -1,0,0 +p_track01,43,28,0 duplicate(Tire_1) Tire6#1 -1,0,0 +p_track01,39,28,0 duplicate(Tire_1) Tire6#2 -1,0,0 +p_track01,35,28,0 duplicate(Tire_1) Tire6#3 -1,0,0 +p_track01,55,28,0 duplicate(Tire_1) Tire6#4 -1,0,0 +p_track01,51,28,0 duplicate(Tire_1) Tire6#5 -1,0,0 +p_track01,47,28,0 duplicate(Tire_1) Tire6#6 -1,0,0 +//============================================================ +// Monstrer Race - Dual Monster Race +//============================================================ +hugel,47,56,0 script #race_timer2-1 -1,{ OnInit: - disablenpc "Luk#5"; + enablenpc "#race_timer2-1"; + set $@mon_time_2_1,2; + initnpctimer; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } +OnEnable: + enablenpc "#race_timer2-1"; + set $@mon_time_2_1,2; + initnpctimer; end; -} -p_track01,41,38,0 script Luk#6 -1,0,0,{ +OnDisable: + disablenpc "#race_timer2-1"; + stopnpctimer; end; -OnInit: - disablenpc "Luk#6"; +OnTimer10000: + mapannounce "hugel","The Dual Monster Race will soon begin. We hope to see many of you participate!",bc_map,"0xffb6c1"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } +OnTimer30000: + mapannounce "hugel","The Dual Monster Race Arena has just opened.",bc_map,"0xffb6c1"; + set $@mon_time_2_1,1; + donpcevent "#race_timer2-2::OnEnable"; + enablenpc "Ticket Helper#2"; + donpcevent "TrapGlobal#race02::OnEnable"; end; -} -p_track01,43,38,0 script Tire#1 -1,0,0,{ - end; -OnInit: - disablenpc "Tire#1"; +OnTimer90000: + mapannounce "hugel","The Dual Monster Race arena is now open. Participants should enter the Arena as soon as they can.",bc_map,"0xffb6c1"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnTimer210000: + mapannounce "hugel","The entrance to the Dual Monster Race Arena will close shortly. Participants, please enter the arena now.",bc_map,"0xffb6c1"; end; -} -p_track01,39,38,0 script Tire#2 -1,0,0,{ +OnTimer270000: + mapannounce "hugel","The Dual Monster Race Arena's entrance will soon close.",bc_map,"0xffb6c1"; end; -OnInit: - disablenpc "Tire#2"; +OnTimer272000: + mapannounce "hugel","Participants, please enter the Arena before the doors close.",bc_map,"0xffb6c1"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnTimer330000: + mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0xffb6c1"; + set $@mon_time_2_1,0; + donpcevent "#race_timer2-1::OnDisable"; + stopnpctimer; end; } -p_track01,35,38,0 script Tire#3 -1,0,0,{ +p_track02,42,23,0 script #race_timer2-2 -1,{ +OnInit: + disablenpc "#race_timer2-2"; + set $@mon_time_2_2,0; end; -OnInit: - disablenpc "Tire#3"; +OnEnable: + enablenpc "#race_timer2-2"; + set $@mon_time_2_2,0; + initnpctimer; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnDisable: + disablenpc "#race_timer2-2"; + stopnpctimer; end; -} -p_track01,55,38,0 script Tire#4 -1,0,0,{ +OnTimer5000: + mapannounce "p_track02","Welcome to the Monster Race Arena.",bc_map,"0x87ceeb"; end; -OnInit: - disablenpc "Tire#4"; +OnTimer7000: + mapannounce "p_track02","Feel free to inquire at the help desk whenever you have questions.",bc_map,"0x87ceeb"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnTimer120000: + mapannounce "p_track02","The Dual Monster Race will start in 3 minutes.",bc_map,"0x87ceeb"; end; -} -p_track01,51,38,0 script Tire#5 -1,0,0,{ +OnTimer122000: + mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; end; -OnInit: - disablenpc "Tire#5"; +OnTimer240000: + mapannounce "p_track02","The Dual Monster Race will start shortly.",bc_map,"0x87ceeb"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnTimer242000: + mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; end; -} -p_track01,47,38,0 script Tire#6 -1,0,0,{ +OnTimer300000: + mapannounce "p_track02","The Monster Race is starting now. Good luck, everybody!",bc_map,"0x87ceeb"; + set $@mon_time_2_2,1; + set $@mon_race_2_1,0; + set $@mon_race_2_2,0; + disablenpc "Ticket Helper#2"; + donpcevent "#poring1::OnEnable"; + donpcevent "#lunatic1::OnEnable"; + donpcevent "#savagebebe1::OnEnable"; + donpcevent "#desertwolf1::OnEnable"; + donpcevent "#deviruchi1::OnEnable"; + donpcevent "#baphomet1::OnEnable"; + stopnpctimer; end; +} +p_track02,80,43,0 script #race_timer2-3 -1,{ OnInit: - disablenpc "Tire#6"; + disablenpc "#race_timer2-3"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnEnable: + enablenpc "#race_timer2-3"; + initnpctimer; end; -} -p_track01,56,36,0 script starting#2 -1,0,0,{ +OnDisable: + disablenpc "#race_timer2-3"; + stopnpctimer; end; -OnDisable: - enablenpc "Luk2#1"; - enablenpc "Luk2#2"; - enablenpc "Luk2#3"; - enablenpc "Luk2#4"; - enablenpc "Luk2#5"; - enablenpc "Luk2#6"; - enablenpc "Tire2#1"; - enablenpc "Tire2#2"; - enablenpc "Tire2#3"; - enablenpc "Tire2#4"; - enablenpc "Tire2#5"; - enablenpc "Tire2#6"; - set $@mr_1_luk2,0; - set $@mr_1_tire2,0; +OnTimer3000: + mapannounce "p_track02","The Monster Race is finished! Congratulations to all the winners!",bc_map,"0xFFFF00"; end; -OnInit: - disablenpc "starting#2"; +OnTimer6000: + mapannounce "p_track02","Please give your Racing Ticket to the Medal Distributor if you bet on the winning monster.",bc_map,"0xFFFF00"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } +OnTimer9000: + mapannounce "p_track02","You have 5 minutes to exchange a winning ticket for Prize Medals from the Medal Distributor.",bc_map,"0xFFFF00"; end; -} -p_track01,33,36,0 script Luk2#1 -1,0,0,{ +OnTimer12000: + mapannounce "p_track02","All tickets become void after this 5 minute period, so winners should claim their prize now.",bc_map,"0xFFFF00"; end; -OnInit: - disablenpc "Luk2#1"; +OnTimer15000: + mapannounce "p_track02","Please leave the Race Arena before this 5 minute period elapses. Thank you.",bc_map,"0xFFFF00"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } +OnTimer240000: + mapannounce "p_track02","Attention. We will being preparing for the next race shortly...",bc_map,"0xFFFF00"; end; -} -p_track01,37,36,0 script Luk2#2 -1,0,0,{ +OnTimer243000: + mapannounce "p_track02","We will close the Racing Arena in 1 minute to prepare for the next race.",bc_map,"0xFFFF00"; end; -OnInit: - disablenpc "Luk2#2"; +OnTimer246000: + mapannounce "p_track02","Participants in the last race should leave the arena as soon as possible.",bc_map,"0xFFFF00"; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } +OnTimer249000: + mapannounce "p_track02","Thank you for your cooperation.",bc_map,"0xFFFF00"; end; -} -p_track01,53,36,0 script Luk2#3 -1,0,0,{ +OnTimer252000: + mapannounce "p_track02","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00"; end; -OnInit: - disablenpc "Luk2#3"; +OnTimer300000: + mapwarp "p_track02","hugel",63,73; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-1::OnEnable"; + set $@mon_race_2_1,0; + set $@mon_race_2_2,0; + donpcevent "#race_timer2-3::OnDisable"; + stopnpctimer; end; +} -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; +hugel,62,69,1 script Eckar Erenes#double 798,{ + mes "[Eckar Erenes]"; + mes "Welcome to the"; + mes "Monster Race Arena,"; + mes "the pride and joy of"; + mes "the village of Hugel!"; + mes "How may I help you?"; + next; + switch(select("Monster Race Info:Enter Monster Race")) { + case 1: + mes "[Eckar Erenes]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Eckar Erenes]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Eckar Erenes]"; + mes "Then, we have the Dual Monster"; + mes "Race in which the house odds and rewards are greater than in Single"; + mes "Monster Races: you must wager on 2 monsters, and they must place in"; + mes "1st and 2nd for you to win."; + next; + mes "[Eckar Erenes]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Eckar Erenes]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Eckar Erenes]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + break; + case 2: + break; } - else { - sc_start SC_WALKSPEED,10000,150; + mes "[Eckar Erenes]"; + mes "The entrance fee for all races"; + mes "in the Monster Race Arena is"; + mes "2,000 zeny. If you'd like to wager on a Single Monster Race,"; + mes "then please ask my brother"; + mes "Ellebird to help you."; + next; + mes "[Eckar Erenes]"; + mes "Otherwise, I'll help get you"; + mes "started if you're interested"; + mes "in a Dual Monster Race."; + mes "Would you like to wager"; + mes "on a Dual Monster Race?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + if (checkweight(909,700) == 0) { + mes "[Eckar Erenes]"; + mes "Hmm... You're toting"; + mes "too many things with you"; + mes "right now. You better put"; + mes "some of your stuff away in"; + mes "Kafra Storage before you can"; + mes "wager on any monster races..."; + close; + } + if (Zeny > 1999) { + if (countitem(7514) > 0) { + mes "[Eckar Erenes]"; + mes "Hm? What are you doing"; + mes "with an expired Racing Ticket?"; + mes "Well, I better get rid of it for you before it can get mixed up"; + mes "with your new Racing Ticket."; + delitem 7514,1; //Monster_Ticket + next; + if ($@mon_time_2_1 == 1) { + mes "[Eckar Erenes]"; + mes "Alright, I think you"; + mes "should be all set. I hope"; + mes "that you enjoy the race~"; + mes "Let me guide you inside"; + mes "the Monster Race Arena now."; + set zeny,zeny-2000; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else if ($@mon_time_2_1 == 2) { + mes "[Eckar Erenes]"; + mes "We're still finishing our"; + mes "preparations for the next"; + mes "Double Monster Race, so"; + mes "we ask that you please"; + mes "wait a little while longer..."; + close; + } + else { + if (($@mon_time_2_1 == 0) || ($@mon_time_2_2 == 0)) { + mes "[Eckar Erenes]"; + mes "Right now, a Monster Race"; + mes "is in progress. It's too late to place a wager, but if you'd like"; + mes "to watch, the fee is 500 zeny"; + mes "for spectators. Would you like to enter the Monster Race Arena?"; + next; + switch(select("Enter:Cancel")) { + case 1: + if (Zeny > 499) { + mes "[Eckar Erenes]"; + mes "Thank you~"; + mes "I hope you enjoy"; + mes "watching this race!"; + set zeny,zeny-500; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but you don't"; + mes "have enough money to pay"; + mes "the 500 zeny spectator fee."; + close; + } + case 2: + mes "[Eckar Erenes]"; + mes "Alright, then. If you'd like"; + mes "to wager on a monster"; + mes "race, please wait for the"; + mes "current race to finish. I hope"; + mes "that you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; + } + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but a monster"; + mes "race has just ended, so we're"; + mes "having the 5 minute period in"; + mes "which the winners can claim"; + mes "their Prize Medals. The gate"; + mes "will open soon, so please wait."; + close; + } + } + } + else { + if ($@mon_time_2_1 == 1) { + mes "[Eckar Erenes]"; + mes "Thanks, I hope that"; + mes "you enjoy this race."; + mes "Let me guide you now"; + mes "to the Monster Race Arena."; + set zeny,zeny-2000; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else if ($@mon_time_2_1 == 2) { + mes "[Eckar Erenes]"; + mes "We're still finishing our"; + mes "preparations for the next"; + mes "Double Monster Race, so"; + mes "we ask that you please"; + mes "wait a little while longer..."; + close; + } + else { + if (($@mon_time_2_1 == 0) || ($@mon_time_2_2 == 0)) { + mes "[Eckar Erenes]"; + mes "Right now, a Monster Race"; + mes "is in progress. It's too late to place a wager, but if you'd like"; + mes "to watch, the fee is 500 zeny"; + mes "for spectators. Would you like to enter the Monster Race Arena?"; + next; + switch(select("Enter:Cancel")) { + case 1: + if (Zeny > 499) { + mes "[Eckar Erenes]"; + mes "Thank you~"; + mes "I hope you enjoy"; + mes "watching this race!"; + set zeny,zeny-500; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but you don't"; + mes "have enough money to pay"; + mes "the 500 zeny spectator fee."; + close; + } + case 2: + mes "[Eckar Erenes]"; + mes "Alright, then. If you'd like"; + mes "to wager on a monster"; + mes "race, please wait for the"; + mes "current race to finish. I hope"; + mes "that you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; + } + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but a monster"; + mes "race has just ended, so we're"; + mes "having the 5 minute period in"; + mes "which the winners can claim"; + mes "their Prize Medals. The gate"; + mes "will open soon, so please wait."; + close; + } + } + } + } + else { + mes "[Eckar Erenes]"; + mes "I'm sorry, but you"; + mes "don't have enough"; + mes "money to pay the"; + mes "2,000 zeny entrance fee. "; + close; + } + case 2: + mes "[Eckar Erenes]"; + mes "Very well. I hope that"; + mes "you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; } - end; } -p_track01,45,36,0 script Luk2#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk2#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,36,0 script Luk2#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk2#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,36,0 script Luk2#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk2#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,43,36,0 script Tire2#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,36,0 script Tire2#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,36,0 script Tire2#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,36,0 script Tire2#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,36,0 script Tire2#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,36,0 script Tire2#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire2#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,56,34,0 script starting#3 -1,0,0,{ - end; - -OnDisable: - enablenpc "Luk3#1"; - enablenpc "Luk3#2"; - enablenpc "Luk3#3"; - enablenpc "Luk3#4"; - enablenpc "Luk3#5"; - enablenpc "Luk3#6"; - enablenpc "Tire3#1"; - enablenpc "Tire3#2"; - enablenpc "Tire3#3"; - enablenpc "Tire3#4"; - enablenpc "Tire3#5"; - enablenpc "Tire3#6"; - set $@mr_1_luk3,0; - set $@mr_1_tire3,0; - end; - -OnInit: - disablenpc "starting#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track01,33,34,0 script Luk3#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,37,34,0 script Luk3#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,53,34,0 script Luk3#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,45,34,0 script Luk3#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,34,0 script Luk3#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,34,0 script Luk3#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk3#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; +p_track02,73,22,1 script Ticket Helper#2 899,{ + if (checkweight(908,200) == 0) { + mes "[Ticket Helper]"; + mes "Welcome to the"; + mes "Monster Race Arena."; + mes "If you'd like to participate"; + mes "in the ^3131FFDouble Monster Race^000000,"; + mes "then please select 1 out of"; + mes "the 6 monsters from the list."; + next; + mes "[Ticket Helper]"; + mes "Wait, wait..."; + mes "I can't give you"; + mes "anything right now."; + mes "You're carrying way"; + mes "too many things..."; + close; } - end; -} - -p_track01,43,34,0 script Tire3#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,34,0 script Tire3#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,34,0 script Tire3#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,34,0 script Tire3#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,34,0 script Tire3#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,34,0 script Tire3#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire3#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,56,32,0 script starting#4 -1,0,0,{ - end; - -OnDisable: - enablenpc "starting#4"; - enablenpc "Luk4#1"; - enablenpc "Luk4#2"; - enablenpc "Luk4#3"; - enablenpc "Luk4#4"; - enablenpc "Luk4#5"; - enablenpc "Luk4#6"; - enablenpc "Tire4#1"; - enablenpc "Tire4#2"; - enablenpc "Tire4#3"; - enablenpc "Tire4#4"; - enablenpc "Tire4#5"; - enablenpc "Tire4#6"; - set $@mr_1_luk4,0; - set $@mr_1_tire4,0; - end; - -OnInit: - disablenpc "starting#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track01,33,32,0 script Luk4#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,37,32,0 script Luk4#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,53,32,0 script Luk4#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,45,32,0 script Luk4#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,32,0 script Luk4#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,32,0 script Luk4#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk4#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,43,32,0 script Tire4#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,32,0 script Tire4#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,32,0 script Tire4#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,32,0 script Tire4#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,32,0 script Tire4#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,32,0 script Tire4#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire4#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,56,30,0 script starting#5 -1,0,0,{ - end; - -OnDisable: - enablenpc "Luk5#1"; - enablenpc "Luk5#2"; - enablenpc "Luk5#3"; - enablenpc "Luk5#4"; - enablenpc "Luk5#5"; - enablenpc "Luk5#6"; - enablenpc "Tire5#1"; - enablenpc "Tire5#2"; - enablenpc "Tire5#3"; - enablenpc "Tire5#4"; - enablenpc "Tire5#5"; - enablenpc "Tire5#6"; - set $@mr_1_luk5,0; - set $@mr_1_tire5,0; - end; - -OnInit: - disablenpc "starting#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track01,33,30,0 script Luk5#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,37,30,0 script Luk5#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,53,30,0 script Luk5#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,45,30,0 script Luk5#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,30,0 script Luk5#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,30,0 script Luk5#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk5#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,43,30,0 script Tire5#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,30,0 script Tire5#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,30,0 script Tire5#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,30,0 script Tire5#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,30,0 script Tire5#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,30,0 script Tire5#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire5#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,56,28,0 script starting#6 -1,0,0,{ - end; - -OnDisable: - enablenpc "Luk6#1"; - enablenpc "Luk6#2"; - enablenpc "Luk6#3"; - enablenpc "Luk6#4"; - enablenpc "Luk6#5"; - enablenpc "Luk6#6"; - enablenpc "Tire6#1"; - enablenpc "Tire6#2"; - enablenpc "Tire6#3"; - enablenpc "Tire6#4"; - enablenpc "Tire6#5"; - enablenpc "Tire6#6"; - set $@mr_1_luk6,0; - set $@mr_1_tire6,0; - end; - -OnInit: - disablenpc "starting#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track01,33,28,0 script Luk6#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,37,28,0 script Luk6#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,53,28,0 script Luk6#3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,45,28,0 script Luk6#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track01,49,28,0 script Luk6#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,41,28,0 script Luk6#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk6#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track01,43,28,0 script Tire6#1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,39,28,0 script Tire6#2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,35,28,0 script Tire6#3 -1,0,0,{ - end; -OnInit: - disablenpc "Tire6#3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,55,28,0 script Tire6#4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,51,28,0 script Tire6#5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track01,47,28,0 script Tire6#6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire6#6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -//============================================================ -// Monstrer Race - Dual Monster Race -//============================================================ -hugel,47,56,0 script #race_timer2-1 -1,{ -OnInit: - enablenpc "#race_timer2-1"; - set $@mon_time_2_1,2; - initnpctimer; - end; - -OnEnable: - enablenpc "#race_timer2-1"; - set $@mon_time_2_1,2; - initnpctimer; - end; - -OnDisable: - disablenpc "#race_timer2-1"; - stopnpctimer; - end; - -OnTimer10000: - mapannounce "hugel","The Dual Monster Race will soon begin. We hope to see many of you participate!",bc_map,"0xffb6c1"; - end; - -OnTimer30000: - mapannounce "hugel","The Dual Monster Race Arena has just opened.",bc_map,"0xffb6c1"; - set $@mon_time_2_1,1; - donpcevent "#race_timer2-2::OnEnable"; - enablenpc "Ticket Helper#2"; - donpcevent "TrapGlobal#race02::OnEnable"; - end; - -OnTimer90000: - mapannounce "hugel","The Dual Monster Race arena is now open. Participants should enter the Arena as soon as they can.",bc_map,"0xffb6c1"; - end; - -OnTimer210000: - mapannounce "hugel","The entrance to the Dual Monster Race Arena will close shortly. Participants, please enter the arena now.",bc_map,"0xffb6c1"; - end; - -OnTimer270000: - mapannounce "hugel","The Dual Monster Race Arena's entrance will soon close.",bc_map,"0xffb6c1"; - end; - -OnTimer272000: - mapannounce "hugel","Participants, please enter the Arena before the doors close.",bc_map,"0xffb6c1"; - end; - -OnTimer330000: - mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0xffb6c1"; - set $@mon_time_2_1,0; - donpcevent "#race_timer2-1::OnDisable"; - stopnpctimer; - end; -} - -p_track02,42,23,0 script #race_timer2-2 -1,{ -OnInit: - disablenpc "#race_timer2-2"; - set $@mon_time_2_2,0; - end; - -OnEnable: - enablenpc "#race_timer2-2"; - set $@mon_time_2_2,0; - initnpctimer; - end; - -OnDisable: - disablenpc "#race_timer2-2"; - stopnpctimer; - end; - -OnTimer5000: - mapannounce "p_track02","Welcome to the Monster Race Arena.",bc_map,"0x87ceeb"; - end; - -OnTimer7000: - mapannounce "p_track02","Feel free to inquire at the help desk whenever you have questions.",bc_map,"0x87ceeb"; - end; - -OnTimer120000: - mapannounce "p_track02","The Dual Monster Race will start in 3 minutes.",bc_map,"0x87ceeb"; - end; - -OnTimer122000: - mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; - end; - -OnTimer240000: - mapannounce "p_track02","The Dual Monster Race will start shortly.",bc_map,"0x87ceeb"; - end; - -OnTimer242000: - mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; - end; - -OnTimer300000: - mapannounce "p_track02","The Monster Race is starting now. Good luck, everybody!",bc_map,"0x87ceeb"; - set $@mon_time_2_2,1; - set $@mon_race_2_1,0; - set $@mon_race_2_2,0; - disablenpc "Ticket Helper#2"; - donpcevent "#poring1::OnEnable"; - donpcevent "#lunatic1::OnEnable"; - donpcevent "#savagebebe1::OnEnable"; - donpcevent "#desertwolf1::OnEnable"; - donpcevent "#deviruchi1::OnEnable"; - donpcevent "#baphomet1::OnEnable"; - stopnpctimer; - end; -} - -p_track02,80,43,0 script #race_timer2-3 -1,{ -OnInit: - disablenpc "#race_timer2-3"; - end; - -OnEnable: - enablenpc "#race_timer2-3"; - initnpctimer; - end; - -OnDisable: - disablenpc "#race_timer2-3"; - stopnpctimer; - end; - -OnTimer3000: - mapannounce "p_track02","The Monster Race is finished! Congratulations to all the winners!",bc_map,"0xFFFF00"; - end; - -OnTimer6000: - mapannounce "p_track02","Please give your Racing Ticket to the Medal Distributor if you bet on the winning monster.",bc_map,"0xFFFF00"; - end; - -OnTimer9000: - mapannounce "p_track02","You have 5 minutes to exchange a winning ticket for Prize Medals from the Medal Distributor.",bc_map,"0xFFFF00"; - end; - -OnTimer12000: - mapannounce "p_track02","All tickets become void after this 5 minute period, so winners should claim their prize now.",bc_map,"0xFFFF00"; - end; - -OnTimer15000: - mapannounce "p_track02","Please leave the Race Arena before this 5 minute period elapses. Thank you.",bc_map,"0xFFFF00"; - end; - -OnTimer240000: - mapannounce "p_track02","Attention. We will being preparing for the next race shortly...",bc_map,"0xFFFF00"; - end; - -OnTimer243000: - mapannounce "p_track02","We will close the Racing Arena in 1 minute to prepare for the next race.",bc_map,"0xFFFF00"; - end; - -OnTimer246000: - mapannounce "p_track02","Participants in the last race should leave the arena as soon as possible.",bc_map,"0xFFFF00"; - end; - -OnTimer249000: - mapannounce "p_track02","Thank you for your cooperation.",bc_map,"0xFFFF00"; - end; - -OnTimer252000: - mapannounce "p_track02","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00"; - end; - -OnTimer300000: - mapwarp "p_track02","hugel",63,73; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-1::OnEnable"; - set $@mon_race_2_1,0; - set $@mon_race_2_2,0; - donpcevent "#race_timer2-3::OnDisable"; - stopnpctimer; - end; -} - -hugel,62,69,1 script Eckar Erenes#double 798,{ - mes "[Eckar Erenes]"; - mes "Welcome to the"; - mes "Monster Race Arena,"; - mes "the pride and joy of"; - mes "the village of Hugel!"; - mes "How may I help you?"; - next; - switch(select("Monster Race Info:Enter Monster Race")) { - case 1: - mes "[Eckar Erenes]"; - mes "Monster Races originated from"; - mes "simple children's games in which"; - mes "Cute Pets would race against each other. This grew into an adult"; - mes "pastime that is so popular, we've built a racing arena in Hugel."; - next; - mes "[Eckar Erenes]"; - mes "Our Monster Race Arena hosts"; - mes "two types of monster races. First, we have the Single Monster Race,"; - mes "in which those that wagered on the 1st place monster are rewarded."; - next; - mes "[Eckar Erenes]"; - mes "Then, we have the Dual Monster"; - mes "Race in which the house odds and rewards are greater than in Single"; - mes "Monster Races: you must wager on 2 monsters, and they must place in"; - mes "1st and 2nd for you to win."; - next; - mes "[Eckar Erenes]"; - mes "Although a small entrance"; - mes "fee is required, we only use"; - mes "the money to give rewards to"; - mes "participants and maintain this"; - mes "arena. Therefore, we're not"; - mes "profiting from this enterprise."; - next; - mes "[Eckar Erenes]"; - mes "Also, we prohibit others"; - mes "from making personal bets"; - mes "and wagers, using items and"; - mes "zeny, based on the outcomes"; - mes "of these races. That kind of"; - mes "gambling is illegal here..."; - next; - mes "[Eckar Erenes]"; - mes "Once you enter the Race Arena, you will receive a Racing Ticket."; - mes "Keep in mind that winning Racing Tickets can only be exchanged for"; - mes "Prize Medals during a 5 minute window after the end of the race."; - next; - break; - case 2: - break; - } - mes "[Eckar Erenes]"; - mes "The entrance fee for all races"; - mes "in the Monster Race Arena is"; - mes "2,000 zeny. If you'd like to wager on a Single Monster Race,"; - mes "then please ask my brother"; - mes "Ellebird to help you."; - next; - mes "[Eckar Erenes]"; - mes "Otherwise, I'll help get you"; - mes "started if you're interested"; - mes "in a Dual Monster Race."; - mes "Would you like to wager"; - mes "on a Dual Monster Race?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - if (checkweight(909,700) == 0) { - mes "[Eckar Erenes]"; - mes "Hmm... You're toting"; - mes "too many things with you"; - mes "right now. You better put"; - mes "some of your stuff away in"; - mes "Kafra Storage before you can"; - mes "wager on any monster races..."; - close; - } - if (Zeny > 1999) { - if (countitem(7514) > 0) { - mes "[Eckar Erenes]"; - mes "Hm? What are you doing"; - mes "with an expired Racing Ticket?"; - mes "Well, I better get rid of it for you before it can get mixed up"; - mes "with your new Racing Ticket."; - delitem 7514,1; //Monster_Ticket - next; - if ($@mon_time_2_1 == 1) { - mes "[Eckar Erenes]"; - mes "Alright, I think you"; - mes "should be all set. I hope"; - mes "that you enjoy the race~"; - mes "Let me guide you inside"; - mes "the Monster Race Arena now."; - set zeny,zeny-2000; - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "p_track02",75,41; - end; - } - else if ($@mon_time_2_1 == 2) { - mes "[Eckar Erenes]"; - mes "We're still finishing our"; - mes "preparations for the next"; - mes "Double Monster Race, so"; - mes "we ask that you please"; - mes "wait a little while longer..."; - close; - } - else { - if (($@mon_time_2_1 == 0) || ($@mon_time_2_2 == 0)) { - mes "[Eckar Erenes]"; - mes "Right now, a Monster Race"; - mes "is in progress. It's too late to place a wager, but if you'd like"; - mes "to watch, the fee is 500 zeny"; - mes "for spectators. Would you like to enter the Monster Race Arena?"; - next; - switch(select("Enter:Cancel")) { - case 1: - if (Zeny > 499) { - mes "[Eckar Erenes]"; - mes "Thank you~"; - mes "I hope you enjoy"; - mes "watching this race!"; - set zeny,zeny-500; - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "p_track02",75,41; - end; - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but you don't"; - mes "have enough money to pay"; - mes "the 500 zeny spectator fee."; - close; - } - case 2: - mes "[Eckar Erenes]"; - mes "Alright, then. If you'd like"; - mes "to wager on a monster"; - mes "race, please wait for the"; - mes "current race to finish. I hope"; - mes "that you enjoy your time here"; - mes "in the Monster Race Arena~"; - close; - } - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but a monster"; - mes "race has just ended, so we're"; - mes "having the 5 minute period in"; - mes "which the winners can claim"; - mes "their Prize Medals. The gate"; - mes "will open soon, so please wait."; - close; - } - } - } - else { - if ($@mon_time_2_1 == 1) { - mes "[Eckar Erenes]"; - mes "Thanks, I hope that"; - mes "you enjoy this race."; - mes "Let me guide you now"; - mes "to the Monster Race Arena."; - set zeny,zeny-2000; - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "p_track02",75,41; - end; - } - else if ($@mon_time_2_1 == 2) { - mes "[Eckar Erenes]"; - mes "We're still finishing our"; - mes "preparations for the next"; - mes "Double Monster Race, so"; - mes "we ask that you please"; - mes "wait a little while longer..."; - close; - } - else { - if (($@mon_time_2_1 == 0) || ($@mon_time_2_2 == 0)) { - mes "[Eckar Erenes]"; - mes "Right now, a Monster Race"; - mes "is in progress. It's too late to place a wager, but if you'd like"; - mes "to watch, the fee is 500 zeny"; - mes "for spectators. Would you like to enter the Monster Race Arena?"; - next; - switch(select("Enter:Cancel")) { - case 1: - if (Zeny > 499) { - mes "[Eckar Erenes]"; - mes "Thank you~"; - mes "I hope you enjoy"; - mes "watching this race!"; - set zeny,zeny-500; - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "p_track02",75,41; - end; - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but you don't"; - mes "have enough money to pay"; - mes "the 500 zeny spectator fee."; - close; - } - case 2: - mes "[Eckar Erenes]"; - mes "Alright, then. If you'd like"; - mes "to wager on a monster"; - mes "race, please wait for the"; - mes "current race to finish. I hope"; - mes "that you enjoy your time here"; - mes "in the Monster Race Arena~"; - close; - } - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but a monster"; - mes "race has just ended, so we're"; - mes "having the 5 minute period in"; - mes "which the winners can claim"; - mes "their Prize Medals. The gate"; - mes "will open soon, so please wait."; - close; - } - } - } - } - else { - mes "[Eckar Erenes]"; - mes "I'm sorry, but you"; - mes "don't have enough"; - mes "money to pay the"; - mes "2,000 zeny entrance fee. "; - close; - } - case 2: - mes "[Eckar Erenes]"; - mes "Very well. I hope that"; - mes "you enjoy your time here"; - mes "in the Monster Race Arena~"; - close; - } -} - -p_track02,73,22,1 script Ticket Helper#2 899,{ - if (checkweight(908,200) == 0) { - mes "[Ticket Helper]"; - mes "Welcome to the"; - mes "Monster Race Arena."; - mes "If you'd like to participate"; - mes "in the ^3131FFDouble Monster Race^000000,"; - mes "then please select 1 out of"; - mes "the 6 monsters from the list."; - next; - mes "[Ticket Helper]"; - mes "Wait, wait..."; - mes "I can't give you"; - mes "anything right now."; - mes "You're carrying way"; - mes "too many things..."; - close; - } - if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Ticket Helper]"; - mes "Hello there!"; - mes "Interested in wagering on"; - mes "the Dual Monster Race?"; - mes "I'm here to help you if you've"; - mes "got any questions, or if you"; - mes "want to place your wager."; - next; - switch(select("Check Monster Status:Wager on Race:Monster Race?:Cancel")) { - case 1: - mes "Monster 1 [^CC6600Luck^000000: " + $@mon_r02_Luk1 + "] [^EE0000HP^000000: " + $@mon_r02_tire1 + "]"; - mes "Monster 2 [^CC6600Luck^000000: " + $@mon_r02_Luk2 + "] [^EE0000HP^000000: " + $@mon_r02_Tire2 + "]"; - mes "Monster 3 [^CC6600Luck^000000: " + $@mon_r02_Luk3 + "] [^EE0000HP^000000: " + $@mon_r02_Tire3 + "]"; - mes "Monster 4 [^CC6600Luck^000000: " + $@mon_r02_Luk4 + "] [^EE0000HP^000000: " + $@mon_r02_Tire4 + "]"; - mes "Monster 5 [^CC6600Luck^000000: " + $@mon_r02_Luk5 + "] [^EE0000HP^000000: " + $@mon_r02_Tire5 + "]"; - mes "Monster 6 [^CC6600Luck^000000: " + $@mon_r02_Luk6 + "] [^EE0000HP^000000: " + $@mon_r02_Tire6 + "]"; - close; - case 2: - mes "[Ticket Helper]"; - mes "Alright, please choose which"; - mes "two monsters that you think"; - mes "will win 1st and 2nd place."; - mes "If both your monsters come"; - mes "in 1st and 2nd, in any order,"; - mes "you'll win the wager."; - next; - mes "[Ticket Helper]"; - mes "Now, please tell me"; - mes "your first choice for one"; - mes "of the monsters that"; - mes "will win this race."; - next; - switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 2:Monster 3:Monster 4:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 1^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 1^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000 and"; - mes "^0000FFMonster 4^000000."; - mes "I wish you good luck."; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - break; - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 1^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 1^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,1; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 1:Monster 3:Monster 4:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?."; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 4^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 2^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,2; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 1:Monster 2:Monster 4:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 4^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 3^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,3; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 1:Monster 2:Monster 3:Monster 5:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?."; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - break; - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 4^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,4; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Now, please make"; - mes "your second choice"; - mes "for the monster that"; - mes "you think will place"; - mes "1st or 2nd in this race."; - next; - switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 6")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?."; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 4^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 5^000000 and ^0000FFMonster 6^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,5; - set monster_race_2_2,6; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 6: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 6^000000, a naughty"; - mes "Baphomet Jr. monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - mes "[Ticket Helper]"; - mes "Then, please pick your 2nd choice."; - next; - switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 5")) { - case 1: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 1^000000, a friendly"; - mes "Poring type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 1^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,1; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 2^000000, an adorable"; - mes "Lunatic type monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 2^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,2; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 3: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 3^000000, a darling"; - mes "Savage Bebe monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 3^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,3; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 4: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 4^000000, a gentle Baby"; - mes "Desert Wolf monster."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 4^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,4; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - case 5: - mes "[Ticket Helper]"; - mes "You've chosen"; - mes "^0000FFMonster 5^000000, a small, yet"; - mes "demonic, Deviruchi."; - mes "Are you sure you want"; - mes "to choose this monster?"; - next; - switch(select("Yes:No")) { - case 1: - if ($@mon_time_2_2 == 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster 6^000000 and ^0000FFMonster 5^000000"; - mes "to win this race. Good luck!"; - mes "I really hope that the odds"; - mes "work out in your favor~"; - emotion e_kis; - set monster_race_2_1,6; - set monster_race_2_2,5; - getitem 7514,1; //Monster_Ticket - close; - } - else { - mes "[Ticket Helper]"; - mes "I'm very sorry, but a"; - mes "monster race is underway."; - mes "Please wait, and then place"; - mes "your wager for the next race."; - close; - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 2: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - case 3: - mes "[Ticket Helper]"; - mes "Monster Races originated from"; - mes "simple children's games in which"; - mes "Cute Pets would race against each other. This grew into an adult"; - mes "pastime that is so popular, we've built a racing arena in Hugel."; - next; - mes "[Ticket Helper]"; - mes "Our Monster Race Arena hosts"; - mes "two types of monster races. First, we have the Single Monster Race,"; - mes "in which those that wagered on the 1st place monster are rewarded."; - next; - mes "[Eclar Ellbird]"; - mes "Then, we have the Dual Monster"; - mes "Race in which those that wagered on the 1st and 2nd place monsters"; - mes "are equally rewarded. The house"; - mes "odds and wager rewards are greater in Dual Races than Single Races."; - next; - mes "[Ticket Helper]"; - mes "Although a small entrance"; - mes "fee is required, we only use"; - mes "the money to give rewards to"; - mes "participants and maintain this"; - mes "arena. Therefore, we're not"; - mes "profiting from this enterprise."; - next; - mes "[Ticket Helper]"; - mes "Also, we prohibit others"; - mes "from making personal bets"; - mes "and wagers, using items and"; - mes "zeny, based on the outcomes"; - mes "of these races. That kind of"; - mes "gambling is illegal here..."; - next; - mes "[Ticket Helper]"; - mes "Once you enter the Race Arena, you will receive a Racing Ticket."; - mes "Keep in mind that winning Racing Tickets can only be exchanged for"; - mes "Prize Medals during a 5 minute window after the end of the race."; - next; - mes "[Ticket Helper]"; - mes "You're already here"; - mes "inside the Monster Race"; - mes "Arena, so you may as well"; - mes "try placing a wager. It's"; - mes "more fun than you'd think~"; - close; - case 4: - mes "[Ticket Helper]"; - mes "You have canceled"; - mes "your wager. Okay,"; - mes "I understand. Perhaps"; - mes "you'd feel more comfortable"; - mes "checking the monsters first?"; - close; - } - } - else { - if (countitem(7514) > 0) { - mes "[Ticket Helper]"; - mes "You've wagered on"; - mes "^0000FFMonster " + monster_race_2_1 + "^000000 and ^0000FFMonster " + monster_race_2_2 + "^000000"; - mes "for this Dual Monster Race."; - next; - mes "[Ticket Helper]"; - mes "The start of the race will be"; - mes "announced through a broadcast."; - mes "You can refer to your Mini-Map"; - mes "to track the monsters' race"; - mes "positions. Thank you, and"; - mes "have a good time!"; - viewpoint 1,43,35,0,0xFF0000; - close; - } - else { - mes "[Ticket Helper]"; - mes "The start of the race will be"; - mes "announced through a broadcast."; - mes "You can refer to your Mini-Map"; - mes "to track the monsters' race"; - mes "positions. Thank you, and"; - mes "have a good time!"; - viewpoint 1,43,35,0,0xFF0000; - close; - } - } - -OnInit: - disablenpc "Ticket Helper#2"; - end; -} - -p_track02,39,49,3 script Game Guide#double 845,{ - mes "[Game Guide]"; - mes "Welcome to the"; - mes "Monster Race Arena."; - mes "How can I help you?"; - next; - switch(select("Monster Race Info:Wager Info:Ticket Redemption Info")) { - case 1: - mes "[Game Guide]"; - mes "Monster Races originated from"; - mes "simple children's games in which"; - mes "Cute Pets would race against each other. This grew into an adult"; - mes "pastime that is so popular, we've built a racing arena in Hugel."; - next; - mes "[Game Guide]"; - mes "Our Monster Race Arena hosts"; - mes "two types of monster races. First, we have the Single Monster Race,"; - mes "in which those that wagered on the 1st place monster are rewarded."; - next; - mes "[Game Guide]"; - mes "Then, we have the Dual Monster"; - mes "Race in which the house odds and rewards are greater than in Single"; - mes "Monster Races: you must wager on 2 monsters, and they must place in"; - mes "1st and 2nd for you to win."; - next; - mes "[Game Guide]"; - mes "Although a small entrance"; - mes "fee is required, we only use"; - mes "the money to give rewards to"; - mes "participants and maintain this"; - mes "arena. Therefore, we're not"; - mes "profiting from this enterprise."; - next; - mes "[Game Guide]"; - mes "Also, we prohibit others"; - mes "from making personal bets"; - mes "and wagers, using items and"; - mes "zeny, based on the outcomes"; - mes "of these races. That kind of"; - mes "gambling is illegal here..."; - next; - mes "[Game Guide]"; - mes "Once you enter the Race Arena, you will receive a Racing Ticket."; - mes "Keep in mind that winning Racing Tickets can only be exchanged for"; - mes "Prize Medals during a 5 minute window after the end of the race."; - next; - break; - case 2: - mes "[Game Guide]"; - mes "Before placing a wager, you"; - mes "must get a free Racing Ticket"; - mes "from the Ticket Helper. There,"; - mes "I've marked the Ticket Helper"; - mes "on your Mini-Map, so you can"; - mes "find him pretty easily."; - viewpoint 1,73,22,1,0xFF3355; - next; - break; - case 3: - mes "[Game Guide]"; - mes "If you wagered on the winner"; - mes "of a Single Monster Race, or"; - mes "on the 1st or 2nd place winners"; - mes "in a Dual Monster Race, then"; - mes "you can exchange your Racing"; - mes "Ticket for Prize Medals."; - next; - mes "[Game Guide]"; - mes "However, you must exchange"; - mes "your Racing Ticket with the"; - mes "Medal Distributor within the"; - mes "5 minute window after the end"; - mes "of the race. ^FF0000Your ticket becomes^FFFFFF ^FF0000 void after these 5 minutes.^000000"; - next; - mes "[Game Guide]"; - mes "When this 5 minute window"; - mes "elapses, you will be teleported outside, and we will immediately"; - mes "begin preparing for the next race. Make sure that you remember this"; - mes "information when you wager."; - next; - mes "[Game Guide]"; - mes "If you haven't received"; - mes "your free Racing Ticket,"; - mes "then please visit the Ticket"; - mes "Helper. There, I've just marked"; - mes "his location on your Mini-Map."; - viewpoint 1,67,45,2,0xCE6300; - next; - break; - } - mes "[Game Guide]"; - mes "Thank you, and"; - mes "I hope you enjoy"; - mes "your time here in the"; - mes "Monster Racing Arena."; - close; -} - -p_track02,67,45,5 script Medal Distributor#medal 845,{ - if (checkweight(909,20) == 0) { - mes "[Medal Distributor]"; - mes "I'm sorry, but I can't"; - mes "reward you with any medals"; - mes "until you make more space"; - mes "available in your Inventory."; - close; - } - if (countitem(7514) > 0) { - mes "[Medal Distributor]"; - mes "Hello there~"; - mes "If you've wagered on the"; - mes "winning monster in a recent"; - mes "race, then you can exchange"; - mes "your game ticket here for"; - mes "some Prize Medals."; - next; - mes "[Medal Distributor]"; - mes "Please remember that you can"; - mes "only exchange winning Game"; - mes "Tickets for Prize Medals right"; - mes "after the race finishes. Prize"; - mes "Medals may be given to Wayne"; - mes "in Hugel in exchange for items."; - next; - if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 2)) || (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 2)) || ((monster_race_2_1 == 2) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 3)) || (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 3)) || ((monster_race_2_1 == 3) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 1)) { - if ((monster_race_2_1 == 1) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 1)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 3)) || (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 2)) { - if ((monster_race_2_1 == 2) && (monster_race_2_2 == 3)) || ((monster_race_2_1 == 3) && (monster_race_2_2 == 2)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 2)) { - if ((monster_race_2_1 == 2) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 2)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 2)) { - if ((monster_race_2_1 == 2) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 2)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 2)) { - if ((monster_race_2_1 == 2) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 2)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 3)) { - if ((monster_race_2_1 == 3) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 3)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 3)) { - if ((monster_race_2_1 == 3) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 3)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 3)) { - if ((monster_race_2_1 == 3) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 3)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 4)) { - if ((monster_race_2_1 == 4) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 4)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 4)) { - if ((monster_race_2_1 == 4) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 4)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else if (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 5)) { - if ((monster_race_2_1 == 5) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 5)) { - mes "[Medal Distributor]"; - mes "Congratulations! It's really"; - mes "difficult to guess the winners"; - mes "of a Dual Monster Race, so you"; - mes "must be really lucky! Would you"; - mes "like to exchange your winning"; - mes "Racing Ticket for Prize Medals?"; - next; - switch(select("Yes, please.:No, thanks.")) { - case 1: - mes "[Medal Distributor]"; - mes "Okay, everything looks good,"; - mes "so here's your Prize Medals~"; - mes "If you want to trade these"; - mes "medals for items, please"; - mes "visit Wayne in Hugel. We hope"; - mes "you enjoyed the Monster Race~"; - delitem 7514,1; //Monster_Ticket - set monster_race_2_1,7; - set monster_race_2_2,7; - getitem 7515,15; //Marvelous_Medal - close; - case 2: - mes "[Medal Distributor]"; - mes "Um, are you sure? You "; - mes "can only exchange a winning"; - mes "Racing Ticket for Prize Medals"; - mes "for a short time after the race. If you made a mistake, you"; - mes "should ask me again quickly."; - close; - } - } - else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { - mes "[Medal Distributor]"; - mes "Well, better luck next time..."; - mes "Although you can't always"; - mes "be lucky, it's always fun to"; - mes "wager on the monster races!"; - close; - } - else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { - mes "[Medal Distributor]"; - mes "Thanks for visiting the"; - mes "Monster Race Arena, and"; - mes "I hope you enjoy your time"; - mes "here. I'll see you next time~"; - close; - } - else { - mes "[Medal Distributor]"; - mes "You may not have wagered"; - mes "on the winning monster in"; - mes "the last race, but I hope that"; - mes "you get lucky next time~"; - close; - } - } - else { - mes "[Medal Distributor]"; - mes "Hello there~"; - mes "If you've wagered on the"; - mes "winning monster in a recent"; - mes "race, then you can exchange"; - mes "your game ticket here for"; - mes "some Prize Medals."; - next; - mes "[Medal Distributor]"; - mes "Please remember that you can"; - mes "only exchange winning Game"; - mes "Tickets for Prize Medals right"; - mes "after the race finishes. Prize"; - mes "Medals may be given to Wayne"; - mes "in Hugel in exchange for items."; - close; - } - } - else { - mes "[Medal Distributor]"; - mes "Hello there~"; - mes "If you've wagered on the"; - mes "winning monster in a recent"; - mes "race, then you can exchange"; - mes "your game ticket here for"; - mes "some Prize Medals."; - next; - mes "[Medal Distributor]"; - mes "Please remember that you can"; - mes "only exchange winning Game"; - mes "Tickets for Prize Medals right"; - mes "after the race finishes. Prize"; - mes "Medals may be given to Wayne"; - mes "in Hugel in exchange for items."; - close; - } - -OnInit: - disablenpc "Medal Distributor#medal"; - end; -} - -p_track02,76,38,1 script Exit Guide#double 798,{ - mes "[Exit Guide]"; - mes "If you have a winning Racing"; - mes "Ticket, please make sure that"; - mes "you redeem it for Prize Medals"; - mes "now. All Racing Tickets become"; - mes "void once the next race begins."; - next; - mes "[Exit Guide]"; - mes "If you wish to leave"; - mes "the arena, then I can guide"; - mes "you outside. Would you like"; - mes "to leave the arena right now?"; - next; - switch(select("Yes:No")) { - case 1: - if (countitem(7514) == 0) { - mes "[Exit Guide]"; - mes "Thank you for"; - mes "your patronage, and"; - mes "I hope that you come"; - mes "visit us again soon~"; - } - else { - mes "[Exit Guide]"; - mes "In accordance with our"; - mes "policies, I must take your"; - mes "Racing Ticket before you leave."; - mes "Thank you for your patronage,"; - mes "and I hope you enjoy your time"; - mes "here in the Monster Race Arena."; - delitem 7514,1; //Monster_Ticket - } - set monster_race_2_1,0; - set monster_race_2_2,0; - close2; - warp "hugel",63,73; - end; - case 2: - mes "[Exit Guide]"; - mes "Alright, then."; - mes "Just let me know"; - mes "whenever you're"; - mes "ready to leave."; - close; - } -} - -p_track02,30,38,0 script #poring1 139,0,0,{ -OnInit: - disablenpc "#poring1"; - end; - -OnEnable: - enablenpc "#poring1"; - monster "p_track02",58,38,"Monster 1",1725,1,"#poring1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#poring1::OnMyMobDead"; - disablenpc "#poring1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_lv; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 1 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,1; - donpcevent "#poring1::OnDisable"; - } - else { - emotion e_lv; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 1 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,1; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,36,0 script #lunatic1 139,0,0,{ -OnInit: - disablenpc "#lunatic1"; - end; - -OnEnable: - enablenpc "#lunatic1"; - monster "p_track02",58,36,"Monster No. 2",1726,1,"#lunatic1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#lunatic1::OnMyMobDead"; - disablenpc "#lunatic1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_ho; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 2 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,2; - donpcevent "#lunatic1::OnDisable"; - } - else { - emotion e_ho; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 2 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,2; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,34,0 script #savagebebe1 139,0,0,{ -OnInit: - disablenpc "#savagebebe1"; - end; - -OnEnable: - enablenpc "#savagebebe1"; - monster "p_track02",58,34,"Monster No. 3",1727,1,"#savagebebe1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#savagebebe1::OnMyMobDead"; - disablenpc "#savagebebe1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_heh; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 3 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,3; - donpcevent "#savagebebe1::OnDisable"; - } - else { - emotion e_heh; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 3 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,3; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,32,0 script #desertwolf1 139,0,0,{ -OnInit: - disablenpc "#desertwolf1"; - end; - -OnEnable: - enablenpc "#desertwolf1"; - monster "p_track02",58,32,"Monster No. 4",1728,1,"#desertwolf1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#desertwolf1::OnMyMobDead"; - disablenpc "#desertwolf1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_kis; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 4 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,4; - donpcevent "#desertwolf1::OnDisable"; - } - else { - emotion e_kis; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 4 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,4; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,30,0 script #deviruchi1 139,0,0,{ -OnInit: - disablenpc "#deviruchi1"; - end; - -OnEnable: - enablenpc "#deviruchi1"; - monster "p_track02",58,30,"Monster No. 5",1730,1,"#deviruchi1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#deviruchi1::OnMyMobDead"; - disablenpc "#deviruchi1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_gg; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 5 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,5; - donpcevent "#deviruchi1::OnDisable"; - } - else { - emotion e_gg; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 5 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,5; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#baphomet1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,30,28,0 script #baphomet1 139,0,0,{ -OnInit: - disablenpc "#baphomet1"; - end; - -OnEnable: - enablenpc "#baphomet1"; - monster "p_track02",58,28,"Monster No. 6",1729,1,"#baphomet1::OnMyMobDead"; - end; - -OnDisable: - killmonster "p_track02","#baphomet1::OnMyMobDead"; - disablenpc "#baphomet1"; - end; - -OnTouchNPC: - if ($@mon_race_2_1 == 0) { - emotion e_pif; - specialeffect EF_MVP; - mapannounce "p_track02","Monster 6 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_1,6; - donpcevent "#baphomet1::OnDisable"; - } - else { - emotion e_pif; - specialeffect EF_MVP; - mapannounce "p_track02","The race is over! Monster 6 has reached the Finish Line!",bc_map,"0x66FFCC"; - set $@mon_race_2_2,6; - donpcevent "#baphomet1::OnDisable"; - donpcevent "#poring1::OnDisable"; - donpcevent "#lunatic1::OnDisable"; - donpcevent "#savagebebe1::OnDisable"; - donpcevent "#desertwolf1::OnDisable"; - donpcevent "#deviruchi1::OnDisable"; - donpcevent "TrapGlobal#race02::OnDisable"; - enablenpc "Medal Distributor#medal"; - donpcevent "#race_timer2-3::OnEnable"; - } - end; - -OnMyMobDead: - end; -} - -p_track02,19,48,0 script TrapGlobal#race02 -1,{ -OnInit: - set $@mon_r02_luk1,0; - set $@mon_r02_luk2,0; - set $@mon_r02_luk3,0; - set $@mon_r02_luk4,0; - set $@mon_r02_luk5,0; - set $@mon_r02_luk6,0; - set $@mon_r02_tire1,0; - set $@mon_r02_tire2,0; - set $@mon_r02_tire3,0; - set $@mon_r02_tire4,0; - set $@mon_r02_tire5,0; - set $@mon_r02_tire6,0; - end; - -OnEnable: - enablenpc "TrapGlobal#race02"; - enablenpc "starting#race02_1"; - enablenpc "starting#race02_2"; - enablenpc "starting#race02_3"; - enablenpc "starting#race02_4"; - enablenpc "starting#race02_5"; - enablenpc "starting#race02_6"; - //------------------------------------------------------------- - // Monster No. 1, Poring - //------------------------------------------------------------- - set .@firstline,rand(1,70); - if ((.@firstline > 0) && (.@firstline < 11)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_5"; - enablenpc "Luk#race02_1_6"; - set .@firsttired,rand(50,60); - if (.@firsttired > 49) && (.@firsttired < 61) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - } - } - else if ((.@firstline > 10) && (.@firstline < 31)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_5"; - set .@firsttired,rand(40,60); - if (.@firsttired > 49) && (.@firsttired < 61) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - } - } - else if ((.@firstline > 20) && (.@firstline < 41)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - set .@firsttired,rand(30,50); - if (.@firsttired > 39) && (.@firsttired < 51) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - } - } - else if ((.@firstline > 40) && (.@firstline < 51)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - enablenpc "Luk#race02_1_2"; - set .@firsttired,rand(20,40); - if (.@firsttired > 29) && (.@firsttired < 41) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - } - } - else if ((.@firstline > 50) && (.@firstline < 61)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - enablenpc "Luk#race02_1_2"; - enablenpc "Luk#race02_1_3"; - set .@firsttired,rand(10,30); - if (.@firsttired > 19) && (.@firsttired < 31) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - } - } - else if ((.@firstline > 60) && (.@firstline < 71)) { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - enablenpc "Luk#race02_1_2"; - enablenpc "Luk#race02_1_3"; - enablenpc "Luk#race02_1_4"; - set .@firsttired,rand(0,20); - if (.@firsttired > 9) && (.@firsttired < 21) { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - } - else { - set $@mon_r02_tire1,.@firsttired; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - enablenpc "Tire#race02_1_6"; - } - } - else { - set $@mon_r02_luk1,.@firstline; - enablenpc "Luk#race02_1_1"; - enablenpc "Luk#race02_1_2"; - enablenpc "Luk#race02_1_3"; - enablenpc "Luk#race02_1_4"; - set .@firsttired,rand(0,20); - if (.@firsttired > 9) && (.@firsttired < 21) { - set $@mon_r02_tire1,.@firstline; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - } - else { - set $@mon_r02_tire1,.@firstline; - enablenpc "Tire#race02_1_1"; - enablenpc "Tire#race02_1_2"; - enablenpc "Tire#race02_1_3"; - enablenpc "Tire#race02_1_4"; - enablenpc "Tire#race02_1_5"; - enablenpc "Tire#race02_1_6"; - } - } - //------------------------------------------------------------- - // Monster No. 2, Lunatic - //------------------------------------------------------------- - set .@secondline,rand(1,70); - if ((.@secondline > 0) && (.@secondline < 11)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_5"; - enablenpc "Luk#race02_2_6"; - set .@secondtired,rand(50,60); - if (.@secondtired > 49) && (.@secondtired < 61) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - } - } - else if ((.@secondline > 10) && (.@secondline < 31)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_5"; - set .@secondtired,rand(40,60); - if (.@secondtired > 49) && (.@secondtired < 61) { - set $@mon_r02_tire2,.@secondline; - enablenpc "Tire#race02_2_1"; - } - else { - set $@mon_r02_tire2,.@secondline; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - } - } - else if ((.@secondline > 20) && (.@secondline < 41)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - set .@secondtired,rand(30,50); - if (.@secondtired > 39) && (.@secondtired < 51) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - } - } - else if ((.@secondline > 40) && (.@secondline < 51)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - enablenpc "Luk#race02_2_2"; - set .@secondtired,rand(20,40); - if (.@secondtired > 29) && (.@secondtired < 41) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - } - } - else if ((.@secondline > 50) && (.@secondline < 61)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - enablenpc "Luk#race02_2_2"; - enablenpc "Luk#race02_2_3"; - set .@secondtired,rand(10,30); - if (.@secondtired > 19) && (.@secondtired < 31) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - } - } - else if ((.@secondline > 60) && (.@secondline < 71)) { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - enablenpc "Luk#race02_2_2"; - enablenpc "Luk#race02_2_3"; - enablenpc "Luk#race02_2_4"; - set .@secondtired,rand(0,20); - if (.@secondtired > 9) && (.@secondtired < 21) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - enablenpc "Tire#race02_2_6"; - } - } - else { - set $@mon_r02_luk2,.@secondline; - enablenpc "Luk#race02_2_1"; - enablenpc "Luk#race02_2_2"; - enablenpc "Luk#race02_2_3"; - enablenpc "Luk#race02_2_4"; - set .@secondtired,rand(0,20); - if (.@secondtired > 9) && (.@secondtired < 21) { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - } - else { - set $@mon_r02_tire2,.@secondtired; - enablenpc "Tire#race02_2_1"; - enablenpc "Tire#race02_2_2"; - enablenpc "Tire#race02_2_3"; - enablenpc "Tire#race02_2_4"; - enablenpc "Tire#race02_2_5"; - enablenpc "Tire#race02_2_6"; - } - } - //------------------------------------------------------------- - // Monster No. 3, Savage Babe - //------------------------------------------------------------- - set .@thirdline,rand(1,70); - if ((.@thirdline > 0) && (.@thirdline < 11)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_5"; - enablenpc "Luk#race02_3_6"; - set .@thridtired,rand(50,60); - if (.@thridtired > 49) && (.@thridtired < 61) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - } - } - else if ((.@thirdline > 10) && (.@thirdline < 31)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_5"; - set .@thridtired,rand(40,60); - if (.@thridtired > 49) && (.@thridtired < 61) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - } - } - else if ((.@thirdline > 20) && (.@thirdline < 41)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - set .@thridtired,rand(30,50); - if (.@thridtired > 39) && (.@thridtired < 51) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - } - } - else if ((.@thirdline > 40) && (.@thirdline < 51)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - enablenpc "Luk#race02_3_2"; - set .@thridtired,rand(20,40); - if (.@thridtired > 29) && (.@thridtired < 41) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - } - } - else if ((.@thirdline > 50) && (.@thirdline < 61)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - enablenpc "Luk#race02_3_2"; - enablenpc "Luk#race02_3_3"; - set .@thridtired,rand(10,30); - if (.@thridtired > 19) && (.@thridtired < 31) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - } - } - else if ((.@thirdline > 60) && (.@thirdline < 71)) { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - enablenpc "Luk#race02_3_2"; - enablenpc "Luk#race02_3_3"; - enablenpc "Luk#race02_3_4"; - set .@thridtired,rand(0,20); - if (.@thridtired > 9) && (.@thridtired < 21) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - enablenpc "Tire#race02_3_6"; - } - } - else { - set $@mon_r02_luk3,.@thirdline; - enablenpc "Luk#race02_3_1"; - enablenpc "Luk#race02_3_2"; - enablenpc "Luk#race02_3_3"; - enablenpc "Luk#race02_3_4"; - set .@thridtired,rand(0,20); - if (.@thridtired > 9) && (.@thridtired < 21) { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - } - else { - set $@mon_r02_tire3,.@thridtired; - enablenpc "Tire#race02_3_1"; - enablenpc "Tire#race02_3_2"; - enablenpc "Tire#race02_3_3"; - enablenpc "Tire#race02_3_4"; - enablenpc "Tire#race02_3_5"; - enablenpc "Tire#race02_3_6"; - } - } - //------------------------------------------------------------- - // Monster No. 4, Baby Desert Wolf - //------------------------------------------------------------- - set .@fourthline,rand(1,70); - if ((.@fourthline > 0) && (.@fourthline < 11)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_5"; - enablenpc "Luk#race02_4_6"; - set .@fourthtired,rand(50,60); - if (.@fourthtired > 49) && (.@fourthtired < 61) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - } - } - else if ((.@fourthline > 10) && (.@fourthline < 31)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_5"; - set .@fourthtired,rand(40,60); - if (.@fourthtired > 49) && (.@fourthtired < 61) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - } - } - else if ((.@fourthline > 20) && (.@fourthline < 41)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - set .@fourthtired,rand(30,50); - if (.@fourthtired > 39) && (.@fourthtired < 51) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - } - } - else if ((.@fourthline > 40) && (.@fourthline < 51)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - enablenpc "Luk#race02_4_2"; - set .@fourthtired,rand(20,40); - if (.@fourthtired > 29) && (.@fourthtired < 41) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - } - } - else if ((.@fourthline > 50) && (.@fourthline < 61)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - enablenpc "Luk#race02_4_2"; - enablenpc "Luk#race02_4_3"; - set .@fourthtired,rand(10,30); - if (.@fourthtired > 19) && (.@fourthtired < 31) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - } - } - else if ((.@fourthline > 60) && (.@fourthline < 71)) { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - enablenpc "Luk#race02_4_2"; - enablenpc "Luk#race02_4_3"; - enablenpc "Luk#race02_4_4"; - set .@fourthtired,rand(0,20); - if (.@fourthtired > 9) && (.@fourthtired < 21) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - enablenpc "Tire#race02_4_6"; - } - } - else { - set $@mon_r02_luk4,.@fourthline; - enablenpc "Luk#race02_4_1"; - enablenpc "Luk#race02_4_2"; - enablenpc "Luk#race02_4_3"; - enablenpc "Luk#race02_4_4"; - set .@fourthtired,rand(0,20); - if (.@fourthtired > 9) && (.@fourthtired < 21) { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - } - else { - set $@mon_r02_tire4,.@fourthtired; - enablenpc "Tire#race02_4_1"; - enablenpc "Tire#race02_4_2"; - enablenpc "Tire#race02_4_3"; - enablenpc "Tire#race02_4_4"; - enablenpc "Tire#race02_4_5"; - enablenpc "Tire#race02_4_6"; - } - } - //------------------------------------------------------------- - // Monster No. 5, Deviruchi - //------------------------------------------------------------- - set .@fifthline,rand(1,70); - if ((.@fifthline > 0) && (.@fifthline < 11)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_5"; - set .@fifthtired,rand(50,60); - if (.@fifthtired > 49) && (.@fifthtired < 61) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - } - } - else if ((.@fifthline > 10) && (.@fifthline < 31)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_5"; - set .@fifthtired,rand(40,60); - if (.@fifthtired > 49) && (.@fifthtired < 61) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - } - } - else if ((.@fifthline > 20) && (.@fifthline < 41)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - set .@fifthtired,rand(30,50); - if (.@fifthtired > 39) && (.@fifthtired < 51) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - } - } - else if ((.@fifthline > 40) && (.@fifthline < 51)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - enablenpc "Luk#race02_5_2"; - set .@fifthtired,rand(20,40); - if (.@fifthtired > 29) && (.@fifthtired < 41) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - } - } - else if ((.@fifthline > 50) && (.@fifthline < 61)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - enablenpc "Luk#race02_5_2"; - enablenpc "Luk#race02_5_3"; - set .@fifthtired,rand(10,30); - if (.@fifthtired > 19) && (.@fifthtired < 31) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - } - } - else if ((.@fifthline > 60) && (.@fifthline < 71)) { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - enablenpc "Luk#race02_5_2"; - enablenpc "Luk#race02_5_3"; - enablenpc "Luk#race02_5_4"; - set .@fifthtired,rand(0,20); - if (.@fifthtired > 9) && (.@fifthtired < 21) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - enablenpc "Tire#race02_5_6"; - } - } - else { - set $@mon_r02_luk5,.@fifthline; - enablenpc "Luk#race02_5_1"; - enablenpc "Luk#race02_5_2"; - enablenpc "Luk#race02_5_3"; - enablenpc "Luk#race02_5_4"; - set .@fifthtired,rand(0,20); - if (.@fifthtired > 9) && (.@fifthtired < 21) { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - } - else { - set $@mon_r02_tire5,.@fifthtired; - enablenpc "Tire#race02_5_1"; - enablenpc "Tire#race02_5_2"; - enablenpc "Tire#race02_5_3"; - enablenpc "Tire#race02_5_4"; - enablenpc "Tire#race02_5_5"; - enablenpc "Tire#race02_5_6"; - } - } - //------------------------------------------------------------- - // Monster No. 6, Baphomet Jr. - //------------------------------------------------------------- - set .@sixthline,rand(1,70); - if ((.@sixthline > 0) && (.@sixthline < 11)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_5"; - enablenpc "Luk#race02_6_6"; - set .@sixthtired,rand(50,60); - if (.@sixthtired > 49) && (.@sixthtired < 61) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - } - } - else if ((.@sixthline > 10) && (.@sixthline < 31)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_5"; - set .@sixthtired,rand(40,60); - if (.@sixthtired > 49) && (.@sixthtired < 61) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - } - } - else if ((.@sixthline > 20) && (.@sixthline < 41)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - set .@sixthtired,rand(30,50); - if (.@sixthtired > 39) && (.@sixthtired < 51) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - } - } - else if ((.@sixthline > 40) && (.@sixthline < 51)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - enablenpc "Luk#race02_6_2"; - set .@sixthtired,rand(20,40); - if (.@sixthtired > 29) && (.@sixthtired < 41) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - } - } - else if ((.@sixthline > 50) && (.@sixthline < 61)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - enablenpc "Luk#race02_6_2"; - enablenpc "Luk#race02_6_3"; - set .@sixthtired,rand(10,30); - if (.@sixthtired > 19) && (.@sixthtired < 31) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - } - } - else if ((.@sixthline > 60) && (.@sixthline < 71)) { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - enablenpc "Luk#race02_6_2"; - enablenpc "Luk#race02_6_3"; - enablenpc "Luk#race02_6_4"; - set .@sixthtired,rand(0,20); - if (.@sixthtired > 9) && (.@sixthtired < 21) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - enablenpc "Tire#race02_6_6"; - } - } - else { - set $@mon_r02_luk6,.@sixthline; - enablenpc "Luk#race02_6_1"; - enablenpc "Luk#race02_6_2"; - enablenpc "Luk#race02_6_3"; - enablenpc "Luk#race02_6_4"; - set .@sixthtired,rand(0,20); - if (.@sixthtired > 9) && (.@sixthtired < 21) { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - } - else { - set $@mon_r02_tire6,.@sixthtired; - enablenpc "Tire#race02_6_1"; - enablenpc "Tire#race02_6_2"; - enablenpc "Tire#race02_6_3"; - enablenpc "Tire#race02_6_4"; - enablenpc "Tire#race02_6_5"; - enablenpc "Tire#race02_6_6"; - } - } - end; - -OnDisable: - disablenpc "TrapGlobal#race02"; - donpcevent "starting#race02_1::OnDisable"; - donpcevent "starting#race02_2::OnDisable"; - donpcevent "starting#race02_3::OnDisable"; - donpcevent "starting#race02_4::OnDisable"; - donpcevent "starting#race02_5::OnDisable"; - donpcevent "starting#race02_6::OnDisable"; - end; -} - -p_track02,56,38,0 script starting#race02_1 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_1"; - end; - -OnDisable: - disablenpc "starting#race02_1"; - disablenpc "Luk#race02_1_1"; - disablenpc "Luk#race02_1_2"; - disablenpc "Luk#race02_1_3"; - disablenpc "Luk#race02_1_4"; - disablenpc "Luk#race02_1_5"; - disablenpc "Luk#race02_1_6"; - disablenpc "Tire#race02_1_1"; - disablenpc "Tire#race02_1_2"; - disablenpc "Tire#race02_1_3"; - disablenpc "Tire#race02_1_4"; - disablenpc "Tire#race02_1_5"; - disablenpc "Tire#race02_1_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,38,0 script Luk#race02_1_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,38,0 script Luk#race02_1_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,53,38,0 script Luk#race02_1_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,38,0 script Luk#race02_1_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,49,38,0 script Luk#race02_1_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,41,38,0 script Luk#race02_1_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_1_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,43,38,0 script Tire#race02_1_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,39,38,0 script Tire#race02_1_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,35,38,0 script Tire#race02_1_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,55,38,0 script Tire#race02_1_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,51,38,0 script Tire#race02_1_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,47,38,0 script Tire#race02_1_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_1_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,56,36,0 script starting#race02_2 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_2"; - end; - -OnDisable: - disablenpc "starting#race02_2"; - disablenpc "Luk#race02_2_1"; - disablenpc "Luk#race02_2_1"; - disablenpc "Luk#race02_2_1"; - disablenpc "Luk#race02_2_4"; - disablenpc "Luk#race02_2_5"; - disablenpc "Luk#race02_2_6"; - disablenpc "Tire#race02_2_1"; - disablenpc "Tire#race02_2_2"; - disablenpc "Tire#race02_2_3"; - disablenpc "Tire#race02_2_4"; - disablenpc "Tire#race02_2_5"; - disablenpc "Tire#race02_2_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,36,0 script Luk#race02_2_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,36,0 script Luk#race02_2_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,53,36,0 script Luk#race02_2_3 -1,0,0,{ -OnInit: - disablenpc "Luk#race02_2_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,36,0 script Luk#race02_2_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,49,36,0 script Luk#race02_2_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,41,36,0 script Luk#race02_2_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_2_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,43,36,0 script Tire#race02_2_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,39,36,0 script Tire#race02_2_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,35,36,0 script Tire#race02_2_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,55,36,0 script Tire#race02_2_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,51,36,0 script Tire#race02_2_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,47,36,0 script Tire#race02_2_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_2_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,56,34,0 script starting#race02_3 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_3"; - end; - -OnDisable: - disablenpc "starting#race02_3"; - disablenpc "Luk#race02_3_1"; - disablenpc "Luk#race02_3_2"; - disablenpc "Luk#race02_3_3"; - disablenpc "Luk#race02_3_4"; - disablenpc "Luk#race02_3_5"; - disablenpc "Luk#race02_3_6"; - disablenpc "Tire#race02_3_1"; - disablenpc "Tire#race02_3_2"; - disablenpc "Tire#race02_3_3"; - disablenpc "Tire#race02_3_4"; - disablenpc "Tire#race02_3_5"; - disablenpc "Tire#race02_3_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,34,0 script Luk#race02_3_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,34,0 script Luk#race02_3_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,53,34,0 script Luk#race02_3_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,34,0 script Luk#race02_3_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,49,34,0 script Luk#race02_3_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,41,34,0 script Luk#race02_3_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_3_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,43,34,0 script Tire#race02_3_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,39,34,0 script Tire#race02_3_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,35,34,0 script Tire#race02_3_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,55,34,0 script Tire#race02_3_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,51,34,0 script Tire#race02_3_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,47,34,0 script Tire#race02_3_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_3_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,56,32,0 script starting#race02_4 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_4"; - end; - -OnEnable: - enablenpc "starting#race02_4"; - end; - -OnDisable: - disablenpc "starting#race02_4"; - disablenpc "Luk#race02_4_1"; - disablenpc "Luk#race02_4_2"; - disablenpc "Luk#race02_4_3"; - disablenpc "Luk#race02_4_4"; - disablenpc "Luk#race02_4_5"; - disablenpc "Luk#race02_4_6"; - disablenpc "Tire#race02_4_1"; - disablenpc "Tire#race02_4_2"; - disablenpc "Tire#race02_4_3"; - disablenpc "Tire#race02_4_4"; - disablenpc "Tire#race02_4_5"; - disablenpc "Tire#race02_4_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,32,0 script Luk#race02_4_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,32,0 script Luk#race02_4_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,53,32,0 script Luk#race02_4_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,32,0 script Luk#race02_4_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,49,32,0 script Luk#race02_4_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,41,32,0 script Luk#race02_4_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_4_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; - } - end; -} - -p_track02,43,32,0 script Tire#race02_4_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,39,32,0 script Tire#race02_4_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,35,32,0 script Tire#race02_4_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,55,32,0 script Tire#race02_4_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,51,32,0 script Tire#race02_4_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,47,32,0 script Tire#race02_4_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_4_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} - -p_track02,56,30,0 script starting#race02_5 -1,0,0,{ - end; - -OnInit: - disablenpc "starting#race02_5"; - end; - -OnEnable: - enablenpc "starting#race02_5"; - end; - -OnDisable: - disablenpc "starting#race02_5"; - disablenpc "Luk#race02_5_1"; - disablenpc "Luk#race02_5_2"; - disablenpc "Luk#race02_5_3"; - disablenpc "Luk#race02_5_4"; - disablenpc "Luk#race02_5_5"; - disablenpc "Luk#race02_5_6"; - disablenpc "Tire#race02_5_1"; - disablenpc "Tire#race02_5_2"; - disablenpc "Tire#race02_5_3"; - disablenpc "Tire#race02_5_4"; - disablenpc "Tire#race02_5_5"; - disablenpc "Tire#race02_5_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; - } - else { - sc_start SC_WALKSPEED,5000,150; - } - end; -} - -p_track02,33,30,0 script Luk#race02_5_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_5_1"; - end; - -OnEnable: - enablenpc "Luk#race02_5_1"; - end; - -OnDisable: - disablenpc "Luk#race02_5_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Ticket Helper]"; + mes "Hello there!"; + mes "Interested in wagering on"; + mes "the Dual Monster Race?"; + mes "I'm here to help you if you've"; + mes "got any questions, or if you"; + mes "want to place your wager."; + next; + switch(select("Check Monster Status:Wager on Race:Monster Race?:Cancel")) { + case 1: + mes "Monster 1 [^CC6600Luck^000000: " + $@mon_r02_Luk1 + "] [^EE0000HP^000000: " + $@mon_r02_tire1 + "]"; + mes "Monster 2 [^CC6600Luck^000000: " + $@mon_r02_Luk2 + "] [^EE0000HP^000000: " + $@mon_r02_Tire2 + "]"; + mes "Monster 3 [^CC6600Luck^000000: " + $@mon_r02_Luk3 + "] [^EE0000HP^000000: " + $@mon_r02_Tire3 + "]"; + mes "Monster 4 [^CC6600Luck^000000: " + $@mon_r02_Luk4 + "] [^EE0000HP^000000: " + $@mon_r02_Tire4 + "]"; + mes "Monster 5 [^CC6600Luck^000000: " + $@mon_r02_Luk5 + "] [^EE0000HP^000000: " + $@mon_r02_Tire5 + "]"; + mes "Monster 6 [^CC6600Luck^000000: " + $@mon_r02_Luk6 + "] [^EE0000HP^000000: " + $@mon_r02_Tire6 + "]"; + close; + case 2: + mes "[Ticket Helper]"; + mes "Alright, please choose which"; + mes "two monsters that you think"; + mes "will win 1st and 2nd place."; + mes "If both your monsters come"; + mes "in 1st and 2nd, in any order,"; + mes "you'll win the wager."; + next; + mes "[Ticket Helper]"; + mes "Now, please tell me"; + mes "your first choice for one"; + mes "of the monsters that"; + mes "will win this race."; + next; + switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 2:Monster 3:Monster 4:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 1^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 1^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000 and"; + mes "^0000FFMonster 4^000000."; + mes "I wish you good luck."; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + break; + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 1^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 1^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,1; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 1:Monster 3:Monster 4:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?."; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 4^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 2^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,2; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 1:Monster 2:Monster 4:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 4^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 3^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,3; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 1:Monster 2:Monster 3:Monster 5:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?."; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + break; + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 4^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,4; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 6")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?."; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 4^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 5^000000 and ^0000FFMonster 6^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,5; + set monster_race_2_2,6; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 6: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 6^000000, a naughty"; + mes "Baphomet Jr. monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + mes "[Ticket Helper]"; + mes "Then, please pick your 2nd choice."; + next; + switch(select("Monster 1:Monster 2:Monster 3:Monster 4:Monster 5")) { + case 1: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 1^000000, a friendly"; + mes "Poring type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 1^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,1; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 2^000000, an adorable"; + mes "Lunatic type monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 2^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,2; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 3: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 3^000000, a darling"; + mes "Savage Bebe monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 3^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,3; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 4: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 4^000000, a gentle Baby"; + mes "Desert Wolf monster."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 4^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,4; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + case 5: + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster 5^000000, a small, yet"; + mes "demonic, Deviruchi."; + mes "Are you sure you want"; + mes "to choose this monster?"; + next; + switch(select("Yes:No")) { + case 1: + if ($@mon_time_2_2 == 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster 6^000000 and ^0000FFMonster 5^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,6; + set monster_race_2_2,5; + getitem 7514,1; //Monster_Ticket + close; + } + else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 2: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } + case 3: + mes "[Ticket Helper]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Ticket Helper]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Eclar Ellbird]"; + mes "Then, we have the Dual Monster"; + mes "Race in which those that wagered on the 1st and 2nd place monsters"; + mes "are equally rewarded. The house"; + mes "odds and wager rewards are greater in Dual Races than Single Races."; + next; + mes "[Ticket Helper]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Ticket Helper]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Ticket Helper]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + mes "[Ticket Helper]"; + mes "You're already here"; + mes "inside the Monster Race"; + mes "Arena, so you may as well"; + mes "try placing a wager. It's"; + mes "more fun than you'd think~"; + close; + case 4: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } } else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,37,30,0 script Luk#race02_5_2 -1,0,0,{ - end; + if (countitem(7514) > 0) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster " + monster_race_2_1 + "^000000 and ^0000FFMonster " + monster_race_2_2 + "^000000"; + mes "for this Dual Monster Race."; + next; + mes "[Ticket Helper]"; + mes "The start of the race will be"; + mes "announced through a broadcast."; + mes "You can refer to your Mini-Map"; + mes "to track the monsters' race"; + mes "positions. Thank you, and"; + mes "have a good time!"; + viewpoint 1,43,35,0,0xFF0000; + close; + } + else { + mes "[Ticket Helper]"; + mes "The start of the race will be"; + mes "announced through a broadcast."; + mes "You can refer to your Mini-Map"; + mes "to track the monsters' race"; + mes "positions. Thank you, and"; + mes "have a good time!"; + viewpoint 1,43,35,0,0xFF0000; + close; + } + } OnInit: - disablenpc "Luk#race02_5_2"; - end; - -OnEnable: - enablenpc "Luk#race02_5_2"; - end; - -OnDisable: - disablenpc "Luk#race02_5_2"; + disablenpc "Ticket Helper#2"; end; +} -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; +p_track02,39,49,3 script Game Guide#double 845,{ + mes "[Game Guide]"; + mes "Welcome to the"; + mes "Monster Race Arena."; + mes "How can I help you?"; + next; + switch(select("Monster Race Info:Wager Info:Ticket Redemption Info")) { + case 1: + mes "[Game Guide]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Game Guide]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Game Guide]"; + mes "Then, we have the Dual Monster"; + mes "Race in which the house odds and rewards are greater than in Single"; + mes "Monster Races: you must wager on 2 monsters, and they must place in"; + mes "1st and 2nd for you to win."; + next; + mes "[Game Guide]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Game Guide]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Game Guide]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + break; + case 2: + mes "[Game Guide]"; + mes "Before placing a wager, you"; + mes "must get a free Racing Ticket"; + mes "from the Ticket Helper. There,"; + mes "I've marked the Ticket Helper"; + mes "on your Mini-Map, so you can"; + mes "find him pretty easily."; + viewpoint 1,73,22,1,0xFF3355; + next; + break; + case 3: + mes "[Game Guide]"; + mes "If you wagered on the winner"; + mes "of a Single Monster Race, or"; + mes "on the 1st or 2nd place winners"; + mes "in a Dual Monster Race, then"; + mes "you can exchange your Racing"; + mes "Ticket for Prize Medals."; + next; + mes "[Game Guide]"; + mes "However, you must exchange"; + mes "your Racing Ticket with the"; + mes "Medal Distributor within the"; + mes "5 minute window after the end"; + mes "of the race. ^FF0000Your ticket becomes^FFFFFF ^FF0000 void after these 5 minutes.^000000"; + next; + mes "[Game Guide]"; + mes "When this 5 minute window"; + mes "elapses, you will be teleported outside, and we will immediately"; + mes "begin preparing for the next race. Make sure that you remember this"; + mes "information when you wager."; + next; + mes "[Game Guide]"; + mes "If you haven't received"; + mes "your free Racing Ticket,"; + mes "then please visit the Ticket"; + mes "Helper. There, I've just marked"; + mes "his location on your Mini-Map."; + viewpoint 1,67,45,2,0xCE6300; + next; + break; } - end; + mes "[Game Guide]"; + mes "Thank you, and"; + mes "I hope you enjoy"; + mes "your time here in the"; + mes "Monster Racing Arena."; + close; } -p_track02,53,30,0 script Luk#race02_5_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_5_3"; - end; - -OnEnable: - enablenpc "Luk#race02_5_3"; - end; - -OnDisable: - disablenpc "Luk#race02_5_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; +p_track02,67,45,5 script Medal Distributor#medal 845,{ + if (checkweight(909,20) == 0) { + mes "[Medal Distributor]"; + mes "I'm sorry, but I can't"; + mes "reward you with any medals"; + mes "until you make more space"; + mes "available in your Inventory."; + close; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + if (countitem(7514) > 0) { + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + next; + if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 2)) || (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 2)) || ((monster_race_2_1 == 2) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 3)) || (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 3)) || ((monster_race_2_1 == 3) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 1) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 1)) { + if ((monster_race_2_1 == 1) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 1)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 3)) || (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 2)) { + if ((monster_race_2_1 == 2) && (monster_race_2_2 == 3)) || ((monster_race_2_1 == 3) && (monster_race_2_2 == 2)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 2)) { + if ((monster_race_2_1 == 2) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 2)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 2)) { + if ((monster_race_2_1 == 2) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 2)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 2) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 2)) { + if ((monster_race_2_1 == 2) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 2)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 4)) || (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 3)) { + if ((monster_race_2_1 == 3) && (monster_race_2_2 == 4)) || ((monster_race_2_1 == 4) && (monster_race_2_2 == 3)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 3)) { + if ((monster_race_2_1 == 3) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 3)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 3) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 3)) { + if ((monster_race_2_1 == 3) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 3)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 5)) || (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 4)) { + if ((monster_race_2_1 == 4) && (monster_race_2_2 == 5)) || ((monster_race_2_1 == 5) && (monster_race_2_2 == 4)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 4) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 4)) { + if ((monster_race_2_1 == 4) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 4)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else if (($@mon_race_2_1 == 5) && ($@mon_race_2_2 == 6)) || (($@mon_race_2_1 == 6) && ($@mon_race_2_2 == 5)) { + if ((monster_race_2_1 == 5) && (monster_race_2_2 == 6)) || ((monster_race_2_1 == 6) && (monster_race_2_2 == 5)) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + switch(select("Yes, please.:No, thanks.")) { + case 1: + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + case 2: + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + } + else if ((monster_race_2_1 == 0) && (monster_race_2_2 == 0)) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } + else if ((monster_race_2_1 == 7) && (monster_race_2_2 == 7)) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } + else { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + else { + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + close; + } } else { - sc_start SC_WALKSPEED,10000,150; + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + close; } - end; -} - -p_track02,45,30,0 script Luk#race02_5_4 -1,0,0,{ - end; OnInit: - disablenpc "Luk#race02_5_4"; - end; - -OnEnable: - enablenpc "Luk#race02_5_4"; - end; - -OnDisable: - disablenpc "Luk#race02_5_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; - } - else { - sc_start SC_WALKSPEED,10000,150; - } + disablenpc "Medal Distributor#medal"; end; } -p_track02,49,30,0 script Luk#race02_5_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_5_5"; - end; - -OnEnable: - enablenpc "Luk#race02_5_5"; - end; - -OnDisable: - disablenpc "Luk#race02_5_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; +p_track02,76,38,1 script Exit Guide#double 798,{ + mes "[Exit Guide]"; + mes "If you have a winning Racing"; + mes "Ticket, please make sure that"; + mes "you redeem it for Prize Medals"; + mes "now. All Racing Tickets become"; + mes "void once the next race begins."; + next; + mes "[Exit Guide]"; + mes "If you wish to leave"; + mes "the arena, then I can guide"; + mes "you outside. Would you like"; + mes "to leave the arena right now?"; + next; + switch(select("Yes:No")) { + case 1: + if (countitem(7514) == 0) { + mes "[Exit Guide]"; + mes "Thank you for"; + mes "your patronage, and"; + mes "I hope that you come"; + mes "visit us again soon~"; + } + else { + mes "[Exit Guide]"; + mes "In accordance with our"; + mes "policies, I must take your"; + mes "Racing Ticket before you leave."; + mes "Thank you for your patronage,"; + mes "and I hope you enjoy your time"; + mes "here in the Monster Race Arena."; + delitem 7514,1; //Monster_Ticket + } + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "hugel",63,73; + end; + case 2: + mes "[Exit Guide]"; + mes "Alright, then."; + mes "Just let me know"; + mes "whenever you're"; + mes "ready to leave."; + close; } - end; } -p_track02,41,30,0 script Luk#race02_5_6 -1,0,0,{ - end; - +p_track02,30,38,0 script #poring1 139,0,0,{ OnInit: - disablenpc "Luk#race02_5_6"; + disablenpc "#poring1"; end; OnEnable: - enablenpc "Luk#race02_5_6"; + enablenpc "#poring1"; + monster "p_track02",58,38,"Monster 1",1725,1,"#poring1::OnMyMobDead"; end; OnDisable: - disablenpc "Luk#race02_5_6"; + killmonster "p_track02","#poring1::OnMyMobDead"; + disablenpc "#poring1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_lv; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 1 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,1; + donpcevent "#poring1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; + else { + emotion e_lv; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 1 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,1; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} - -p_track02,43,30,0 script Tire#race02_5_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_5_1"; - end; -OnEnable: - enablenpc "Tire#race02_5_1"; - end; - -OnDisable: - disablenpc "Tire#race02_5_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnMyMobDead: end; } -p_track02,39,30,0 script Tire#race02_5_2 -1,0,0,{ - end; - +p_track02,30,36,0 script #lunatic1 139,0,0,{ OnInit: - disablenpc "Tire#race02_5_2"; + disablenpc "#lunatic1"; end; OnEnable: - enablenpc "Tire#race02_5_2"; + enablenpc "#lunatic1"; + monster "p_track02",58,36,"Monster No. 2",1726,1,"#lunatic1::OnMyMobDead"; end; OnDisable: - disablenpc "Tire#race02_5_2"; + killmonster "p_track02","#lunatic1::OnMyMobDead"; + disablenpc "#lunatic1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_ho; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 2 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,2; + donpcevent "#lunatic1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + emotion e_ho; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 2 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,2; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} - -p_track02,35,30,0 script Tire#race02_5_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_5_3"; - end; - -OnEnable: - enablenpc "Tire#race02_5_3"; - end; - -OnDisable: - disablenpc "Tire#race02_5_3"; - end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnMyMobDead: end; } -p_track02,55,30,0 script Tire#race02_5_4 -1,0,0,{ - end; - +p_track02,30,34,0 script #savagebebe1 139,0,0,{ OnInit: - disablenpc "Tire#race02_5_4"; + disablenpc "#savagebebe1"; end; OnEnable: - enablenpc "Tire#race02_5_4"; + enablenpc "#savagebebe1"; + monster "p_track02",58,34,"Monster No. 3",1727,1,"#savagebebe1::OnMyMobDead"; end; OnDisable: - disablenpc "Tire#race02_5_4"; + killmonster "p_track02","#savagebebe1::OnMyMobDead"; + disablenpc "#savagebebe1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_heh; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 3 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,3; + donpcevent "#savagebebe1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + emotion e_heh; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 3 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,3; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} -p_track02,51,30,0 script Tire#race02_5_5 -1,0,0,{ +OnMyMobDead: end; +} +p_track02,30,32,0 script #desertwolf1 139,0,0,{ OnInit: - disablenpc "Tire#race02_5_5"; + disablenpc "#desertwolf1"; end; OnEnable: - enablenpc "Tire#race02_5_5"; + enablenpc "#desertwolf1"; + monster "p_track02",58,32,"Monster No. 4",1728,1,"#desertwolf1::OnMyMobDead"; end; OnDisable: - disablenpc "Tire#race02_5_5"; + killmonster "p_track02","#desertwolf1::OnMyMobDead"; + disablenpc "#desertwolf1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_kis; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 4 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,4; + donpcevent "#desertwolf1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + emotion e_kis; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 4 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,4; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} -p_track02,47,30,0 script Tire#race02_5_6 -1,0,0,{ +OnMyMobDead: end; +} +p_track02,30,30,0 script #deviruchi1 139,0,0,{ OnInit: - disablenpc "Tire#race02_5_6"; + disablenpc "#deviruchi1"; end; OnEnable: - enablenpc "Tire#race02_5_6"; + enablenpc "#deviruchi1"; + monster "p_track02",58,30,"Monster No. 5",1730,1,"#deviruchi1::OnMyMobDead"; end; OnDisable: - disablenpc "Tire#race02_5_6"; + killmonster "p_track02","#deviruchi1::OnMyMobDead"; + disablenpc "#deviruchi1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + if ($@mon_race_2_1 == 0) { + emotion e_gg; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 5 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,5; + donpcevent "#deviruchi1::OnDisable"; } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + emotion e_gg; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 5 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,5; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} -p_track02,56,28,0 script starting#race02_6 -1,0,0,{ +OnMyMobDead: end; +} +p_track02,30,28,0 script #baphomet1 139,0,0,{ OnInit: - disablenpc "starting#race02_6"; + disablenpc "#baphomet1"; end; OnEnable: - enablenpc "starting#race02_6"; + enablenpc "#baphomet1"; + monster "p_track02",58,28,"Monster No. 6",1729,1,"#baphomet1::OnMyMobDead"; end; OnDisable: - disablenpc "starting#race02_6"; - disablenpc "Luk#race02_6_1"; - disablenpc "Luk#race02_6_2"; - disablenpc "Luk#race02_6_3"; - disablenpc "Luk#race02_6_4"; - disablenpc "Luk#race02_6_5"; - disablenpc "Luk#race02_6_6"; - disablenpc "Tire#race02_6_1"; - disablenpc "Tire#race02_6_2"; - disablenpc "Tire#race02_6_3"; - disablenpc "Tire#race02_6_4"; - disablenpc "Tire#race02_6_5"; - disablenpc "Tire#race02_6_6"; + killmonster "p_track02","#baphomet1::OnMyMobDead"; + disablenpc "#baphomet1"; end; OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 11) { - sc_start SC_WALKSPEED,5000,60; - } - else if (.@start > 10) && (.@start < 21) { - sc_start SC_WALKSPEED,5000,70; - } - else if (.@start > 20) && (.@start < 31) { - sc_start SC_WALKSPEED,5000,80; - } - else if (.@start > 30) && (.@start < 41) { - sc_start SC_WALKSPEED,5000,90; - } - else if (.@start > 40) && (.@start < 51) { - sc_start SC_WALKSPEED,5000,100; - } - else if (.@start > 50) && (.@start < 61) { - sc_start SC_WALKSPEED,5000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,5000,120; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,5000,130; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,5000,140; + if ($@mon_race_2_1 == 0) { + emotion e_pif; + specialeffect EF_MVP; + mapannounce "p_track02","Monster 6 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,6; + donpcevent "#baphomet1::OnDisable"; } else { - sc_start SC_WALKSPEED,5000,150; + emotion e_pif; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster 6 has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,6; + donpcevent "#baphomet1::OnDisable"; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; } end; -} -p_track02,33,28,0 script Luk#race02_6_1 -1,0,0,{ +OnMyMobDead: end; +} +p_track02,19,48,0 script TrapGlobal#race02 -1,{ OnInit: - disablenpc "Luk#race02_6_1"; + set $@mon_r02_luk1,0; + set $@mon_r02_luk2,0; + set $@mon_r02_luk3,0; + set $@mon_r02_luk4,0; + set $@mon_r02_luk5,0; + set $@mon_r02_luk6,0; + set $@mon_r02_tire1,0; + set $@mon_r02_tire2,0; + set $@mon_r02_tire3,0; + set $@mon_r02_tire4,0; + set $@mon_r02_tire5,0; + set $@mon_r02_tire6,0; end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; +OnEnable: + enablenpc "TrapGlobal#race02"; + enablenpc "starting#race02_1"; + enablenpc "starting#race02_2"; + enablenpc "starting#race02_3"; + enablenpc "starting#race02_4"; + enablenpc "starting#race02_5"; + enablenpc "starting#race02_6"; + //------------------------------------------------------------- + // Monster No. 1, Poring + //------------------------------------------------------------- + set .@firstline,rand(1,70); + if ((.@firstline > 0) && (.@firstline < 11)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_5"; + enablenpc "Luk#race02_1_6"; + set .@firsttired,rand(50,60); + if (.@firsttired > 49) && (.@firsttired < 61) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; + else if ((.@firstline > 10) && (.@firstline < 31)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_5"; + set .@firsttired,rand(40,60); + if (.@firsttired > 49) && (.@firsttired < 61) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + else if ((.@firstline > 20) && (.@firstline < 41)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + set .@firsttired,rand(30,50); + if (.@firsttired > 39) && (.@firsttired < 51) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + } } - else { - sc_start SC_WALKSPEED,10000,150; + else if ((.@firstline > 40) && (.@firstline < 51)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + enablenpc "Luk#race02_1_2"; + set .@firsttired,rand(20,40); + if (.@firsttired > 29) && (.@firsttired < 41) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + } } - end; -} - -p_track02,37,28,0 script Luk#race02_6_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; + else if ((.@firstline > 50) && (.@firstline < 61)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + enablenpc "Luk#race02_1_2"; + enablenpc "Luk#race02_1_3"; + set .@firsttired,rand(10,30); + if (.@firsttired > 19) && (.@firsttired < 31) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; + else if ((.@firstline > 60) && (.@firstline < 71)) { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + enablenpc "Luk#race02_1_2"; + enablenpc "Luk#race02_1_3"; + enablenpc "Luk#race02_1_4"; + set .@firsttired,rand(0,20); + if (.@firsttired > 9) && (.@firsttired < 21) { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + } + else { + set $@mon_r02_tire1,.@firsttired; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + enablenpc "Tire#race02_1_6"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; + else { + set $@mon_r02_luk1,.@firstline; + enablenpc "Luk#race02_1_1"; + enablenpc "Luk#race02_1_2"; + enablenpc "Luk#race02_1_3"; + enablenpc "Luk#race02_1_4"; + set .@firsttired,rand(0,20); + if (.@firsttired > 9) && (.@firsttired < 21) { + set $@mon_r02_tire1,.@firstline; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + } + else { + set $@mon_r02_tire1,.@firstline; + enablenpc "Tire#race02_1_1"; + enablenpc "Tire#race02_1_2"; + enablenpc "Tire#race02_1_3"; + enablenpc "Tire#race02_1_4"; + enablenpc "Tire#race02_1_5"; + enablenpc "Tire#race02_1_6"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + //------------------------------------------------------------- + // Monster No. 2, Lunatic + //------------------------------------------------------------- + set .@secondline,rand(1,70); + if ((.@secondline > 0) && (.@secondline < 11)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_5"; + enablenpc "Luk#race02_2_6"; + set .@secondtired,rand(50,60); + if (.@secondtired > 49) && (.@secondtired < 61) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + } } - else { - sc_start SC_WALKSPEED,10000,150; + else if ((.@secondline > 10) && (.@secondline < 31)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_5"; + set .@secondtired,rand(40,60); + if (.@secondtired > 49) && (.@secondtired < 61) { + set $@mon_r02_tire2,.@secondline; + enablenpc "Tire#race02_2_1"; + } + else { + set $@mon_r02_tire2,.@secondline; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + } } - end; -} - -p_track02,53,28,0 script Luk#race02_6_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; + else if ((.@secondline > 20) && (.@secondline < 41)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + set .@secondtired,rand(30,50); + if (.@secondtired > 39) && (.@secondtired < 51) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; + else if ((.@secondline > 40) && (.@secondline < 51)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + enablenpc "Luk#race02_2_2"; + set .@secondtired,rand(20,40); + if (.@secondtired > 29) && (.@secondtired < 41) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; + else if ((.@secondline > 50) && (.@secondline < 61)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + enablenpc "Luk#race02_2_2"; + enablenpc "Luk#race02_2_3"; + set .@secondtired,rand(10,30); + if (.@secondtired > 19) && (.@secondtired < 31) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + else if ((.@secondline > 60) && (.@secondline < 71)) { + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + enablenpc "Luk#race02_2_2"; + enablenpc "Luk#race02_2_3"; + enablenpc "Luk#race02_2_4"; + set .@secondtired,rand(0,20); + if (.@secondtired > 9) && (.@secondtired < 21) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + enablenpc "Tire#race02_2_6"; + } } else { - sc_start SC_WALKSPEED,10000,150; - } - end; -} - -p_track02,45,28,0 script Luk#race02_6_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_WALKSPEED,10000,110; + set $@mon_r02_luk2,.@secondline; + enablenpc "Luk#race02_2_1"; + enablenpc "Luk#race02_2_2"; + enablenpc "Luk#race02_2_3"; + enablenpc "Luk#race02_2_4"; + set .@secondtired,rand(0,20); + if (.@secondtired > 9) && (.@secondtired < 21) { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + } + else { + set $@mon_r02_tire2,.@secondtired; + enablenpc "Tire#race02_2_1"; + enablenpc "Tire#race02_2_2"; + enablenpc "Tire#race02_2_3"; + enablenpc "Tire#race02_2_4"; + enablenpc "Tire#race02_2_5"; + enablenpc "Tire#race02_2_6"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_WALKSPEED,10000,120; + //------------------------------------------------------------- + // Monster No. 3, Savage Babe + //------------------------------------------------------------- + set .@thirdline,rand(1,70); + if ((.@thirdline > 0) && (.@thirdline < 11)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_5"; + enablenpc "Luk#race02_3_6"; + set .@thridtired,rand(50,60); + if (.@thridtired > 49) && (.@thridtired < 61) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_WALKSPEED,10000,130; + else if ((.@thirdline > 10) && (.@thirdline < 31)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_5"; + set .@thridtired,rand(40,60); + if (.@thridtired > 49) && (.@thridtired < 61) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_WALKSPEED,10000,140; + else if ((.@thirdline > 20) && (.@thirdline < 41)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + set .@thridtired,rand(30,50); + if (.@thridtired > 39) && (.@thridtired < 51) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + } } - else { - sc_start SC_WALKSPEED,10000,150; + else if ((.@thirdline > 40) && (.@thirdline < 51)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + enablenpc "Luk#race02_3_2"; + set .@thridtired,rand(20,40); + if (.@thridtired > 29) && (.@thridtired < 41) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + } } - end; -} - -p_track02,49,28,0 script Luk#race02_6_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_5"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; + else if ((.@thirdline > 50) && (.@thirdline < 61)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + enablenpc "Luk#race02_3_2"; + enablenpc "Luk#race02_3_3"; + set .@thridtired,rand(10,30); + if (.@thridtired > 19) && (.@thridtired < 31) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; + else if ((.@thirdline > 60) && (.@thirdline < 71)) { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + enablenpc "Luk#race02_3_2"; + enablenpc "Luk#race02_3_3"; + enablenpc "Luk#race02_3_4"; + set .@thridtired,rand(0,20); + if (.@thridtired > 9) && (.@thridtired < 21) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + enablenpc "Tire#race02_3_6"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; + else { + set $@mon_r02_luk3,.@thirdline; + enablenpc "Luk#race02_3_1"; + enablenpc "Luk#race02_3_2"; + enablenpc "Luk#race02_3_3"; + enablenpc "Luk#race02_3_4"; + set .@thridtired,rand(0,20); + if (.@thridtired > 9) && (.@thridtired < 21) { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + } + else { + set $@mon_r02_tire3,.@thridtired; + enablenpc "Tire#race02_3_1"; + enablenpc "Tire#race02_3_2"; + enablenpc "Tire#race02_3_3"; + enablenpc "Tire#race02_3_4"; + enablenpc "Tire#race02_3_5"; + enablenpc "Tire#race02_3_6"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; + //------------------------------------------------------------- + // Monster No. 4, Baby Desert Wolf + //------------------------------------------------------------- + set .@fourthline,rand(1,70); + if ((.@fourthline > 0) && (.@fourthline < 11)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_5"; + enablenpc "Luk#race02_4_6"; + set .@fourthtired,rand(50,60); + if (.@fourthtired > 49) && (.@fourthtired < 61) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + } } - end; -} - -p_track02,41,28,0 script Luk#race02_6_6 -1,0,0,{ - end; - -OnInit: - disablenpc "Luk#race02_6_6"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_STUN,1000,0; + else if ((.@fourthline > 10) && (.@fourthline < 31)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_5"; + set .@fourthtired,rand(40,60); + if (.@fourthtired > 49) && (.@fourthtired < 61) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_STUN,2000,0; + else if ((.@fourthline > 20) && (.@fourthline < 41)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + set .@fourthtired,rand(30,50); + if (.@fourthtired > 39) && (.@fourthtired < 51) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_STUN,3000,0; + else if ((.@fourthline > 40) && (.@fourthline < 51)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + enablenpc "Luk#race02_4_2"; + set .@fourthtired,rand(20,40); + if (.@fourthtired > 29) && (.@fourthtired < 41) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_STUN,4000,0; + else if ((.@fourthline > 50) && (.@fourthline < 61)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + enablenpc "Luk#race02_4_2"; + enablenpc "Luk#race02_4_3"; + set .@fourthtired,rand(10,30); + if (.@fourthtired > 19) && (.@fourthtired < 31) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + } } - end; -} - -p_track02,43,28,0 script Tire#race02_6_1 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_1"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; + else if ((.@fourthline > 60) && (.@fourthline < 71)) { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + enablenpc "Luk#race02_4_2"; + enablenpc "Luk#race02_4_3"; + enablenpc "Luk#race02_4_4"; + set .@fourthtired,rand(0,20); + if (.@fourthtired > 9) && (.@fourthtired < 21) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + enablenpc "Tire#race02_4_6"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; + else { + set $@mon_r02_luk4,.@fourthline; + enablenpc "Luk#race02_4_1"; + enablenpc "Luk#race02_4_2"; + enablenpc "Luk#race02_4_3"; + enablenpc "Luk#race02_4_4"; + set .@fourthtired,rand(0,20); + if (.@fourthtired > 9) && (.@fourthtired < 21) { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + } + else { + set $@mon_r02_tire4,.@fourthtired; + enablenpc "Tire#race02_4_1"; + enablenpc "Tire#race02_4_2"; + enablenpc "Tire#race02_4_3"; + enablenpc "Tire#race02_4_4"; + enablenpc "Tire#race02_4_5"; + enablenpc "Tire#race02_4_6"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + //------------------------------------------------------------- + // Monster No. 5, Deviruchi + //------------------------------------------------------------- + set .@fifthline,rand(1,70); + if ((.@fifthline > 0) && (.@fifthline < 11)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_5"; + set .@fifthtired,rand(50,60); + if (.@fifthtired > 49) && (.@fifthtired < 61) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else if ((.@fifthline > 10) && (.@fifthline < 31)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_5"; + set .@fifthtired,rand(40,60); + if (.@fifthtired > 49) && (.@fifthtired < 61) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + } } - end; -} - -p_track02,39,28,0 script Tire#race02_6_2 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_2"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; + else if ((.@fifthline > 20) && (.@fifthline < 41)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + set .@fifthtired,rand(30,50); + if (.@fifthtired > 39) && (.@fifthtired < 51) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; + else if ((.@fifthline > 40) && (.@fifthline < 51)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + enablenpc "Luk#race02_5_2"; + set .@fifthtired,rand(20,40); + if (.@fifthtired > 29) && (.@fifthtired < 41) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + else if ((.@fifthline > 50) && (.@fifthline < 61)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + enablenpc "Luk#race02_5_2"; + enablenpc "Luk#race02_5_3"; + set .@fifthtired,rand(10,30); + if (.@fifthtired > 19) && (.@fifthtired < 31) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else if ((.@fifthline > 60) && (.@fifthline < 71)) { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + enablenpc "Luk#race02_5_2"; + enablenpc "Luk#race02_5_3"; + enablenpc "Luk#race02_5_4"; + set .@fifthtired,rand(0,20); + if (.@fifthtired > 9) && (.@fifthtired < 21) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + enablenpc "Tire#race02_5_6"; + } } - end; -} - -p_track02,35,28,0 script Tire#race02_6_3 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_3"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; + else { + set $@mon_r02_luk5,.@fifthline; + enablenpc "Luk#race02_5_1"; + enablenpc "Luk#race02_5_2"; + enablenpc "Luk#race02_5_3"; + enablenpc "Luk#race02_5_4"; + set .@fifthtired,rand(0,20); + if (.@fifthtired > 9) && (.@fifthtired < 21) { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + } + else { + set $@mon_r02_tire5,.@fifthtired; + enablenpc "Tire#race02_5_1"; + enablenpc "Tire#race02_5_2"; + enablenpc "Tire#race02_5_3"; + enablenpc "Tire#race02_5_4"; + enablenpc "Tire#race02_5_5"; + enablenpc "Tire#race02_5_6"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; + //------------------------------------------------------------- + // Monster No. 6, Baphomet Jr. + //------------------------------------------------------------- + set .@sixthline,rand(1,70); + if ((.@sixthline > 0) && (.@sixthline < 11)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_5"; + enablenpc "Luk#race02_6_6"; + set .@sixthtired,rand(50,60); + if (.@sixthtired > 49) && (.@sixthtired < 61) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + else if ((.@sixthline > 10) && (.@sixthline < 31)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_5"; + set .@sixthtired,rand(40,60); + if (.@sixthtired > 49) && (.@sixthtired < 61) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else if ((.@sixthline > 20) && (.@sixthline < 41)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + set .@sixthtired,rand(30,50); + if (.@sixthtired > 39) && (.@sixthtired < 51) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + } } - end; -} - -p_track02,55,28,0 script Tire#race02_6_4 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_4"; - end; - -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; + else if ((.@sixthline > 40) && (.@sixthline < 51)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + enablenpc "Luk#race02_6_2"; + set .@sixthtired,rand(20,40); + if (.@sixthtired > 29) && (.@sixthtired < 41) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + } } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; + else if ((.@sixthline > 50) && (.@sixthline < 61)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + enablenpc "Luk#race02_6_2"; + enablenpc "Luk#race02_6_3"; + set .@sixthtired,rand(10,30); + if (.@sixthtired > 19) && (.@sixthtired < 31) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + } } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; + else if ((.@sixthline > 60) && (.@sixthline < 71)) { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + enablenpc "Luk#race02_6_2"; + enablenpc "Luk#race02_6_3"; + enablenpc "Luk#race02_6_4"; + set .@sixthtired,rand(0,20); + if (.@sixthtired > 9) && (.@sixthtired < 21) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + enablenpc "Tire#race02_6_6"; + } } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; + else { + set $@mon_r02_luk6,.@sixthline; + enablenpc "Luk#race02_6_1"; + enablenpc "Luk#race02_6_2"; + enablenpc "Luk#race02_6_3"; + enablenpc "Luk#race02_6_4"; + set .@sixthtired,rand(0,20); + if (.@sixthtired > 9) && (.@sixthtired < 21) { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + } + else { + set $@mon_r02_tire6,.@sixthtired; + enablenpc "Tire#race02_6_1"; + enablenpc "Tire#race02_6_2"; + enablenpc "Tire#race02_6_3"; + enablenpc "Tire#race02_6_4"; + enablenpc "Tire#race02_6_5"; + enablenpc "Tire#race02_6_6"; + } } end; -} - -p_track02,51,28,0 script Tire#race02_6_5 -1,0,0,{ - end; - -OnInit: - disablenpc "Tire#race02_6_5"; - end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } +OnDisable: + disablenpc "TrapGlobal#race02"; + donpcevent "starting#race02_1::OnDisable"; + donpcevent "starting#race02_2::OnDisable"; + donpcevent "starting#race02_3::OnDisable"; + donpcevent "starting#race02_4::OnDisable"; + donpcevent "starting#race02_5::OnDisable"; + donpcevent "starting#race02_6::OnDisable"; end; } -p_track02,47,28,0 script Tire#race02_6_6 -1,0,0,{ +- script starting_2 -1,{ end; OnInit: - disablenpc "Tire#race02_6_6"; + disablenpc strnpcinfo(0); end; -OnTouchNPC: - set .@start,rand(1,100); - if (.@start > 0) && (.@start < 61) { - sc_start SC_SLEEP,1000,0; - } - else if (.@start > 60) && (.@start < 71) { - sc_start SC_SLEEP,2000,0; - } - else if (.@start > 70) && (.@start < 81) { - sc_start SC_SLEEP,3000,0; - } - else if (.@start > 80) && (.@start < 91) { - sc_start SC_SLEEP,4000,0; - } - end; -} +OnDisable: + disablenpc strnpcinfo(0); + for(set .@i,1; .@i<7; set .@i,.@i+1) + disablenpc "Luk#"+strnpcinfo(2)+"_"+.@i; + for(set .@i,1; .@i<7; set .@i,.@i+1) + disablenpc "Tire#"+strnpcinfo(2)+"_"+.@i; + end; + +OnTouchNPC: + set .@start,rand(1,100); + if (.@start < 11) set .@speed,60; + else if (.@start < 21) set .@speed,70; + else if (.@start < 31) set .@speed,80; + else if (.@start < 41) set .@speed,90; + else if (.@start < 51) set .@speed,100; + else if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,5000,.@speed; + end; +} + +p_track02,56,38,0 duplicate(starting_2) starting#race02_1 -1,0,0 +p_track02,56,36,0 duplicate(starting_2) starting#race02_2 -1,0,0 +p_track02,56,34,0 duplicate(starting_2) starting#race02_3 -1,0,0 +p_track02,56,32,0 duplicate(starting_2) starting#race02_4 -1,0,0 +p_track02,56,30,0 duplicate(starting_2) starting#race02_5 -1,0,0 +p_track02,56,28,0 duplicate(starting_2) starting#race02_6 -1,0,0 + +p_track02,33,38,0 duplicate(Luk_1) Luk#race02_1_1 -1,0,0 +p_track02,37,38,0 duplicate(Luk_1) Luk#race02_1_2 -1,0,0 +p_track02,53,38,0 duplicate(Luk_1) Luk#race02_1_3 -1,0,0 +p_track02,45,38,0 duplicate(Luk_1) Luk#race02_1_4 -1,0,0 +p_track02,33,36,0 duplicate(Luk_1) Luk#race02_2_1 -1,0,0 +p_track02,37,36,0 duplicate(Luk_1) Luk#race02_2_2 -1,0,0 +p_track02,53,36,0 duplicate(Luk_1) Luk#race02_2_3 -1,0,0 +p_track02,45,36,0 duplicate(Luk_1) Luk#race02_2_4 -1,0,0 +p_track02,33,34,0 duplicate(Luk_1) Luk#race02_3_1 -1,0,0 +p_track02,37,34,0 duplicate(Luk_1) Luk#race02_3_2 -1,0,0 +p_track02,53,34,0 duplicate(Luk_1) Luk#race02_3_3 -1,0,0 +p_track02,45,34,0 duplicate(Luk_1) Luk#race02_3_4 -1,0,0 +p_track02,33,32,0 duplicate(Luk_1) Luk#race02_4_1 -1,0,0 +p_track02,37,32,0 duplicate(Luk_1) Luk#race02_4_2 -1,0,0 +p_track02,53,32,0 duplicate(Luk_1) Luk#race02_4_3 -1,0,0 +p_track02,45,32,0 duplicate(Luk_1) Luk#race02_4_4 -1,0,0 +p_track02,33,30,0 duplicate(Luk_1) Luk#race02_5_1 -1,0,0 +p_track02,37,30,0 duplicate(Luk_1) Luk#race02_5_2 -1,0,0 +p_track02,53,30,0 duplicate(Luk_1) Luk#race02_5_3 -1,0,0 +p_track02,45,30,0 duplicate(Luk_1) Luk#race02_5_4 -1,0,0 +p_track02,33,28,0 duplicate(Luk_1) Luk#race02_6_1 -1,0,0 +p_track02,37,28,0 duplicate(Luk_1) Luk#race02_6_2 -1,0,0 +p_track02,53,28,0 duplicate(Luk_1) Luk#race02_6_3 -1,0,0 +p_track02,45,28,0 duplicate(Luk_1) Luk#race02_6_4 -1,0,0 + +p_track02,49,38,0 duplicate(Luk_2) Luk#race02_1_5 -1,0,0 +p_track02,41,38,0 duplicate(Luk_2) Luk#race02_1_6 -1,0,0 +p_track02,49,36,0 duplicate(Luk_2) Luk#race02_2_5 -1,0,0 +p_track02,41,36,0 duplicate(Luk_2) Luk#race02_2_6 -1,0,0 +p_track02,49,34,0 duplicate(Luk_2) Luk#race02_3_5 -1,0,0 +p_track02,41,34,0 duplicate(Luk_2) Luk#race02_3_6 -1,0,0 +p_track02,49,32,0 duplicate(Luk_2) Luk#race02_4_5 -1,0,0 +p_track02,41,32,0 duplicate(Luk_2) Luk#race02_4_6 -1,0,0 +p_track02,49,30,0 duplicate(Luk_2) Luk#race02_5_5 -1,0,0 +p_track02,41,30,0 duplicate(Luk_2) Luk#race02_5_6 -1,0,0 +p_track02,49,28,0 duplicate(Luk_2) Luk#race02_6_5 -1,0,0 +p_track02,41,28,0 duplicate(Luk_2) Luk#race02_6_6 -1,0,0 + +p_track02,43,38,0 duplicate(Tire_1) Tire#race02_1_1 -1,0,0 +p_track02,39,38,0 duplicate(Tire_1) Tire#race02_1_2 -1,0,0 +p_track02,35,38,0 duplicate(Tire_1) Tire#race02_1_3 -1,0,0 +p_track02,55,38,0 duplicate(Tire_1) Tire#race02_1_4 -1,0,0 +p_track02,51,38,0 duplicate(Tire_1) Tire#race02_1_5 -1,0,0 +p_track02,47,38,0 duplicate(Tire_1) Tire#race02_1_6 -1,0,0 +p_track02,43,36,0 duplicate(Tire_1) Tire#race02_2_1 -1,0,0 +p_track02,39,36,0 duplicate(Tire_1) Tire#race02_2_2 -1,0,0 +p_track02,35,36,0 duplicate(Tire_1) Tire#race02_2_3 -1,0,0 +p_track02,55,36,0 duplicate(Tire_1) Tire#race02_2_4 -1,0,0 +p_track02,51,36,0 duplicate(Tire_1) Tire#race02_2_5 -1,0,0 +p_track02,47,36,0 duplicate(Tire_1) Tire#race02_2_6 -1,0,0 +p_track02,43,34,0 duplicate(Tire_1) Tire#race02_3_1 -1,0,0 +p_track02,39,34,0 duplicate(Tire_1) Tire#race02_3_2 -1,0,0 +p_track02,35,34,0 duplicate(Tire_1) Tire#race02_3_3 -1,0,0 +p_track02,55,34,0 duplicate(Tire_1) Tire#race02_3_4 -1,0,0 +p_track02,51,34,0 duplicate(Tire_1) Tire#race02_3_5 -1,0,0 +p_track02,47,34,0 duplicate(Tire_1) Tire#race02_3_6 -1,0,0 +p_track02,43,32,0 duplicate(Tire_1) Tire#race02_4_1 -1,0,0 +p_track02,39,32,0 duplicate(Tire_1) Tire#race02_4_2 -1,0,0 +p_track02,35,32,0 duplicate(Tire_1) Tire#race02_4_3 -1,0,0 +p_track02,55,32,0 duplicate(Tire_1) Tire#race02_4_4 -1,0,0 +p_track02,51,32,0 duplicate(Tire_1) Tire#race02_4_5 -1,0,0 +p_track02,47,32,0 duplicate(Tire_1) Tire#race02_4_6 -1,0,0 +p_track02,43,30,0 duplicate(Tire_1) Tire#race02_5_1 -1,0,0 +p_track02,39,30,0 duplicate(Tire_1) Tire#race02_5_2 -1,0,0 +p_track02,35,30,0 duplicate(Tire_1) Tire#race02_5_3 -1,0,0 +p_track02,55,30,0 duplicate(Tire_1) Tire#race02_5_4 -1,0,0 +p_track02,51,30,0 duplicate(Tire_1) Tire#race02_5_5 -1,0,0 +p_track02,47,30,0 duplicate(Tire_1) Tire#race02_5_6 -1,0,0 +p_track02,43,28,0 duplicate(Tire_1) Tire#race02_6_1 -1,0,0 +p_track02,39,28,0 duplicate(Tire_1) Tire#race02_6_2 -1,0,0 +p_track02,35,28,0 duplicate(Tire_1) Tire#race02_6_3 -1,0,0 +p_track02,55,28,0 duplicate(Tire_1) Tire#race02_6_4 -1,0,0 +p_track02,51,28,0 duplicate(Tire_1) Tire#race02_6_5 -1,0,0 +p_track02,47,28,0 duplicate(Tire_1) Tire#race02_6_6 -1,0,0 //============================================================ // NPCs for Redeeming Price Medals (Einbroch and Hugel) diff --git a/npc/scripts_custom.conf b/npc/scripts_custom.conf index 5d98c6fc1..62e7f0659 100644 --- a/npc/scripts_custom.conf +++ b/npc/scripts_custom.conf @@ -18,8 +18,6 @@ //npc: npc/custom/card_remover.txt //npc: npc/custom/item_signer.txt //npc: npc/custom/woe_controller.txt -// -- Wedding script that supports same-sex marriages -//npc: npc/custom/marriage.txt // -- Warper that works only after locations are unlocked //npc: npc/custom/quest_warper.txt @@ -45,12 +43,10 @@ //npc: npc/custom/etc/monster_arena.txt // -- Raceway mini-game //npc: npc/custom/etc/morroc_raceway.txt -// -- Unofficial poetry -//npc: npc/custom/etc/wandering_poets.txt // -- Random change of Drop/Exp rates 1x ~ 1.5x every 6 hours on your server //npc: npc/custom/etc/floating_rates.txt -// -- Custom Poring Track files -//npc: npc/custom/etc/p_track.txt +// -- Wedding script that supports same-sex marriages +//npc: npc/custom/etc/marriage.txt // ----------------------- Quest Scripts ----------------------- // -- Treasure Hunters Guild Quests (40 Quests + Special Guild Shop) @@ -63,7 +59,6 @@ //npc: npc/custom/quests/magicalhatquest.txt //npc: npc/custom/quests/elvenear.txt //npc: npc/custom/quests/fashion.txt -//npc: npc/custom/quests/ironcane.txt //npc: npc/custom/quests/sunglasses.txt //npc: npc/custom/quests/bandit_beard.txt //npc: npc/custom/quests/event_6_new_hats.txt -- cgit v1.2.3-70-g09d2 From b07b02bc7899abd47d043731869b4bfa7626f8e4 Mon Sep 17 00:00:00 2001 From: euphyy Date: Fri, 13 Jul 2012 03:35:32 +0000 Subject: * Added mine and tr0n's quest scripts to /custom/quests/ * Added GmOcean's Disguise Event, Mysterious' Mushroom Event, and Keale's Cluckers Event (all edited) to /custom/events/ * Moved Quest Warper into /etc/ * Deleted custom Fashionable Glasses quest, duplicate of official NPC "Zic" (custom/quests/fashion.txt) * Deleted custom Hyegun event (custom/events/hyegun_event.txt) * Deleted custom Dracula event (custom/events/draculax.txt) * Deleted custom Wizard Hat quest (custom/quests/magicalhatquest.txt) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16421 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/etc/quest_warper.txt | 2137 +++++++++++++++++++++++++++++++++ npc/custom/events/cluckers.txt | 114 ++ npc/custom/events/disguise.txt | 244 ++++ npc/custom/events/draculax.txt | 129 -- npc/custom/events/hyegun_event.txt | 77 -- npc/custom/events/mushroom_event.txt | 62 + npc/custom/quest_warper.txt | 2137 --------------------------------- npc/custom/quests/fashion.txt | 69 -- npc/custom/quests/magicalhatquest.txt | 58 - npc/custom/quests/quest_shop.txt | 148 +++ npc/custom/quests/questboard.txt | 300 +++++ npc/scripts_custom.conf | 19 +- 12 files changed, 3015 insertions(+), 2479 deletions(-) create mode 100644 npc/custom/etc/quest_warper.txt create mode 100644 npc/custom/events/cluckers.txt create mode 100644 npc/custom/events/disguise.txt delete mode 100644 npc/custom/events/draculax.txt delete mode 100644 npc/custom/events/hyegun_event.txt create mode 100644 npc/custom/events/mushroom_event.txt delete mode 100644 npc/custom/quest_warper.txt delete mode 100644 npc/custom/quests/fashion.txt delete mode 100644 npc/custom/quests/magicalhatquest.txt create mode 100644 npc/custom/quests/quest_shop.txt create mode 100644 npc/custom/quests/questboard.txt (limited to 'npc/custom/etc') diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt new file mode 100644 index 000000000..85919fa0f --- /dev/null +++ b/npc/custom/etc/quest_warper.txt @@ -0,0 +1,2137 @@ +//===== rAthena Script ============================================ +//= Quest Warper Script +//===== By: ======================================================= +//= DZeroX, Darkchild, Neouni +//===== Current Version: ========================================== +//= 2.2 +//===== Compatible With: ========================================== +//= rAthena SVN +//===== Description: ============================================== +//= Warper that works only after locations are unlocked +//===== Additional Comments: ====================================== +//= 1.0 - NPCs created +//= 1.1 - Add Dungeons by sturm +//= 1.2 - Add All char in account unlocked by ace_killer +//= 1.3 - Add new 7 towns and 7 dungeons by escoteiro +// - Correct bug jawaii town by escoteiro +// - Remove some excessive warpras by escoteiro +//= 1.4 - Rewrite of the Warpa system [Neouni] +// - Corrected some bugs caused by autoconverting the old script +//= 1.4a - Rewrite of menu to be custom for each player [Neouni] +// - Dungeon listing rewrite +// - Town listing rewrite +// - GameMaster can Customise Main menu +//= 1.4b - Pricing round [Neouni] +// - GM menu added for pricing +// - Town Warp pricing tags added +// - Dungeon Warp pricing tags added +//= 1.5 - storage functions pricing [Neouni] +// - storage pricing added +// - kafra points setting added +// - kafra storage code security added +// - Healing scripts pricing added +// - Heal Part script added +//= 1.6 - Dungeon warp [Neouni] (beta only) +// - added option to add a extra fee for going down deeper into dungeon +// partly by rebuilding the dungeon warping into variable menu's +//= 1.6a - alot of fixes for beta release [Neouni] (public release) +// - fixed syntax problems +// - fixed missing pyramid gats in @DGat$ array +// - removed the culver level 5 that didn't exist +// and caused quite alot of problems (i didn't check while converting) +//-1.7 - Readability of Dungeon menu building increased [Neouni] +// - Thanatos Tower & Louyang Dungeon added +//-1.8 - changed around unlock variables [Neouni] +// - Moved warp variables to mark what you have unlocked to an binary array in login based permanent variable +// (warp variables are saved in login database, so all charservers have these unlocked) +// - Town Warp unlock array max 21/(unknown max) items used instead of max account #variables 32 ! +// - Dungeon Warp unlock array 28/(unknown max) items used instead of max account #variables 32 ! +// - (max login ##variables = 16, i used 3) +// - old variables are cleared on next save +// - Extra Variable clear added for every character, just in case (request by Terces) +//-1.8a - Show ammount of users on map [Neouni] +// - Default = off, enable in GM menu +// - Requested by escoteiro +//-1.8b - Small typo fixed in stampcard script [Neouni] +// - Reported by escoteiro +//-1.9 - Making it more edit friendly [Neouni] +// - Made Dungeon warp arrays more readable & editable (QWS_Darray) +// - Made town warp arrays more readable & editable (QWS_Tarray) +//-2.0 - Special Warp menu added [Neouni] +// - when all towns and dungeons are collected a new option on the main menu will show +// - it will only show when you setup the mapname of the warp ! +// - requested by escoteiro +// - several bugs fixed +//-2.0a - Dungeon Level Limit & Split dungeon fees +// - Limits dungeon based on Depth, access special setup menu thru GM-Menu +// - Dungeon fees split up based on Basic , Advanced & Overseas +// - Old Dungeon fee system removed, all dungeon fees now set to 0 +//-2.0b +// - Special warpname menu option name bug fixed +//-2.1 Updated names to fall within retrictions. [L0ne_W0lf] +//-2.2 #kafra_code is now stored as is. [brianluau] +//================================================================= + +//========================Function=&=Script======================== + + +function script Q_Warpra { +// Quick hack for backwards compatibility pre 1.8 +if (##QWS_UP < 18) callfunc "QWS_BackComp"; +// Extra clear variables because marker is saved on all char servers and variables can be on multiple servers +if (QWS_ExtraVARClear < 18) callfunc "Extra_Variable_Clear"; + + mes "[Warpra]"; + mes "Hello,"; + mes "I can warp you to any town or dungeon, but you need to unlock them first."; + mes "To unlock them, you have to visit us."; + mes "What do you need?"; + + if(getarg(0) == 0) callfunc "QWS_MMarray",0; + if(getarg(0) == 1) callfunc "QWS_MMarray",1; + + set @MMenu,select(@Mmenulist$[0],@Mmenulist$[1],@Mmenulist$[2],@Mmenulist$[3],@Mmenulist$[4],@Mmenulist$[5],@Mmenulist$[6],@Mmenulist$[7],@Mmenulist$[8],@Mmenulist$[9],@Mmenulist$[10],@Mmenulist$[11]); + + switch(@Mmenuref[@MMenu-1]+1){ + case 1: + goto GM_Menu; + case 2: + warp $QW_SP_WarpMap$, $QW_SP_WarpX, $QW_SP_WarpY; + close2; + debugmes "Please check your special warp menu settings on the Warpra"; + end; + case 3: + goto L_town; + case 4: + goto L_dungeon; + case 5: + goto L_FewWarps; + case 6: + goto L_NoUnlock; + case 7: + goto L_heal_Full; + case 8: + goto L_heal_Part; + case 9: + goto L_Storage; + case 10: + goto L_GStorage; + case 11: + goto L_end; + default: + goto L_end; +} + +//=====================GM-Menu=Functions=========================== + +GM_Menu: +next; +//----------------Town-Warp + if ($QW_TW_OFF == 0) mes "Town warping = ^00FF00 On ^000000"; + if ($QW_TW_OFF == 1) mes "Town warping = ^FF0000 Off ^000000"; +//----------------Dungeon-Warp + if ($QW_DW_OFF == 0) mes "Dungeon warping = ^00FF00 On ^000000"; + if ($QW_DW_OFF == 1) mes "Dungeon warping = ^FF0000 Off ^000000"; +//----------------Dungeon-Depth-Limit + if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; + if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; + mes "If on Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; +//----------------ShowMapUsers + if ($QW_MapUserShow == 1) mes "Show Map Users = ^00FF00 On ^000000"; + if ($QW_MapUserShow == 0) mes "Show Map Users = ^FF0000 Off ^000000"; +//----------------Healfull + if ($QW_HF == 1) mes "Healing full = ^00FF00 On ^000000"; +//----------------Healpart + if ($QW_HP == 1) mes "Healing partly = ^00FF00 On ^000000"; + if (($QW_HF == 0)&&($QW_HP == 0)) mes "Healing = ^FF0000 Off ^000000"; +//----------------Storage + if ($QW_Stor == 1) mes "Storage = ^00FF00 On ^000000"; + if ($QW_Stor == 0) mes "Storage = ^FF0000 Off ^000000"; +//----------------GuildStorage + if ($QW_GStor == 1) mes "Guild Storage = ^00FF00 On ^000000"; + if ($QW_GStor == 0) mes "Guild Storage = ^FF0000 Off ^000000"; +//----------------KafraPoints + if ($QW_KPoint == 1) mes "Kafra points collect = ^00FF00 On ^000000"; + if ($QW_KPoint == 0) mes "Kafra points collect = ^FF0000 Off ^000000"; +//----------------GMmenu + switch(select("Town Warping","Dungeon Warping","Dungeon Level Limit","Show Map Users","Healing full","Healing partly","Storage","Guild Storage","Kafra points collect","Set Prices","Special Warp","Exit")) { + +// Using callsub and a small check to not make 1 part of the script set it on and the other turning it off again + +case 1: + if ($QW_TW_OFF == 0) { + set $QW_TW_OFF,1; + goto GM_Menu; + } else + set $QW_TW_OFF,0; + goto GM_Menu; +case 2: + if ($QW_DW_OFF == 0) { + set $QW_DW_OFF,1; + goto GM_Menu; + } else + set $QW_DW_OFF,0; + goto GM_Menu; +case 3: + goto DungeonLevelLimit; +case 4: + if ($QW_MapUserShow == 0) { + set $QW_MapUserShow,1; + goto GM_Menu; + } else + set $QW_MapUserShow,0; + goto GM_Menu; +case 5: + if ($QW_HF == 0) { + set $QW_HF,1; + set $QW_HP,0; + goto GM_Menu; + } else + set $QW_HF,0; + goto GM_Menu; +case 6: + if ($QW_HP == 0) { + set $QW_HP,1; + set $QW_HF,0; + goto GM_Menu; + } else + set $QW_HP,0; + goto GM_Menu; +case 7: + if ($QW_Stor == 0) { + set $QW_Stor,1; + goto GM_Menu; + } else + set $QW_Stor,0; + goto GM_Menu; +case 8: + if ($QW_GStor == 0) { + set $QW_GStor,1; + goto GM_Menu; + } else + set $QW_GStor,0; + goto GM_Menu; +case 9: + if ($QW_KPoint == 0) { + set $QW_KPoint,1; + goto GM_Menu; + } else + set $QW_KPoint,0; + goto GM_Menu; +case 10: + goto Setprice; +case 11: + goto SpecialWarpMenu; +default: + close; + end; +} + + +//======================GM-Menu=Pricing============================ + +Setprice: + if ($QW_DW_FEE != 0) set $QW_DW_FEE,0; + next; + mes "Scroll thru the list to see all the options"; +//----------------Warp-Basic-Price + if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; + if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; +//----------------Warp-Advanced-Price + if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; + if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; +//----------------Warp-Oversea-Price + if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; + if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; +//----------------Basic-Dungeon-Level-Warp-Fee + if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; + if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; +//----------------Advanced-Dungeon-Level-Warp-Fee + if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; + if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; +//----------------Overseas-Dungeon-Level-Warp-Fee + if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; + if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; +//----------------Heal-Full + if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; + if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; +//----------------Heal-Part + if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; + if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; + if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; + if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; +//----------------Storage + if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; + if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; + if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; +//----------------Guild-Storage + if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; + if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; + + switch(select("Basic - Warps","Advanced - Warps","Overseas - Warps","Basic Dungeon warp fee","Advanced Dungeon warp fee","Overseas Dungeon warp fee","Full Healing","Part Healing","Storage","Guild Storage","Back","Exit")) { + +case 1: + next; + if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; + if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; + mes "Basic - Warps are starter towns and related dungeons"; + input $QW_BW_PRICE; + goto Setprice; + +case 2: + next; + if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; + if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; + mes "Advanced - Warps are towns and dungeons on the same island but not close to any starter town"; + input $QW_AW_PRICE; + goto Setprice; + +case 3: + next; + if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; + if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; + mes "Overseas - Warps are towns and dungeons overseas reachable by boat from alberta"; + input $QW_OW_PRICE; + goto Setprice; + +case 4: + next; + if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; + if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; + mes "Basic - Warps are starter town related dungeons"; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; + mes "These costs are on top of the regular Warp costs"; + input $QW_BW_FEE; + goto Setprice; + +case 5: + next; + if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; + if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; + mes "Advanced - Warps are dungeons not close to any starter town"; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; + mes "These costs are on top of the regular Warp costs"; + input $QW_AW_FEE; + goto Setprice; + +case 6: + next; + if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; + if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; + mes "Overseas - Warps are dungeons related to towns overseas reachable by boat from alberta"; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; + mes "These costs are on top of the regular Warp costs"; + input $QW_OW_FEE; + goto Setprice; + +case 7: + next; + if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; + if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; + mes "Instant full healing 1 price"; + input $QW_HF_PRICE; + goto Setprice; + +case 8: + next; + if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; + if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; + if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; + if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; + mes "Healing price per 1 HP"; + mes "Healing price per 1 SP"; + mes "2 inputs, first HP then SP"; + input $QW_HP_H_PRICE; + input $QW_HP_S_PRICE; + goto Setprice; + +case 9: + next; + if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; + if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; + if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; + mes "Storage cost, if set to 60 Kafra pricing will be handled"; + input $QW_S_PRICE; + goto Setprice; + +case 10: + next; + if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; + if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; + mes "Guild Storage, free on Guild Kafras"; + input $QW_GS_PRICE; + goto Setprice; +case 11: + goto GM_Menu; +default: + close; + end; +} + +//======================Special=Warp=Menu========================== + +SpecialWarpMenu: + if ($QW_SP_Warpname$ == "") set $QW_SP_Warpname$,"Special Warp"; + next; + mes "Scroll down to see all the information"; + mes "The Special warp menu option will show in the main menu when all towns & dungeons are unlocked"; + mes "And when the map for special warping has been set"; + mes "menu option name set to ^0000FF"+$QW_SP_Warpname$+"^000000"; + if ($QW_SP_WarpMap$ == "") mes "map is currently ^FF0000not^000000 set, and Special warp menu is off"; + if ($QW_SP_WarpMap$ != "") mes "map is currently set to ^0000FF"+$QW_SP_WarpMap$+"^000000 and Special Warp menu is on"; + mes "coords are set to ^0000FF"+$QW_SP_WarpX+","+$QW_SP_WarpY+"^000000"; + switch(select("Set Special Warp name to show in menu", "Set WarpMap","Set Coords","Go Back to GM_Menu","Exit")){ + +case 1: + next; + mes "set the name to show in the menu as option"; + input $QW_SP_Warpname$; + goto SpecialWarpMenu; +case 2: + next; + mes "set the map in the ^0000FFmapname^000000 format"; + mes "when this warpmap is set the option for players will show once they meet the requirments"; + mes "to disable Special Warp Menu option clear this !"; + input $QW_SP_WarpMap$; + goto SpecialWarpMenu; +case 3: + next; + mes "First input = Xcoord"; + mes "Second input = Ycoord"; + input $QW_SP_WarpX; + input $QW_SP_WarpY; + goto SpecialWarpMenu; +case 4: + goto GM_Menu; +default: + close; + end; +} + +//======================Dungeon=Level=Limit======================== +DungeonLevelLimit: + next; + if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; + if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; + mes "If^00FF00 On ^000000Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; + + switch(select("Toggle Dungeon Depth Limit", "Set Dungeon Depth Limit","Go Back to GM_Menu","Exit")){ + +case 1: + if ($QW_DL == 0) { + set $QW_DL,1; + goto DungeonLevelLimit; + } else + set $QW_DL,0; + goto DungeonLevelLimit; +case 2: + next; + mes "set limit of Dungeon Depth 0 = entrance"; + mes "Depth 1 is a map connected to 0 and so on"; + mes "Shortest Route to map counts as depth"; + input $QW_DDL; + goto DungeonLevelLimit; +case 3: + goto GM_Menu; +default: + close; + end; +} + +//===========================Towns================================= + +L_town: + callfunc "QWS_Tarray"; + +// Expected maximum is set to 25 items, if you add more options add more ",@Tmenulist$[xx]" + + set @TWMenu,select(@Tmenulist$[0],@Tmenulist$[1],@Tmenulist$[2],@Tmenulist$[3],@Tmenulist$[4],@Tmenulist$[5],@Tmenulist$[6],@Tmenulist$[7],@Tmenulist$[8],@Tmenulist$[9],@Tmenulist$[10],@Tmenulist$[11],@Tmenulist$[12],@Tmenulist$[13],@Tmenulist$[14],@Tmenulist$[15],@Tmenulist$[16],@Tmenulist$[17],@Tmenulist$[18],@Tmenulist$[19],@Tmenulist$[20],@Tmenulist$[21],@Tmenulist$[22],@Tmenulist$[23],@Tmenulist$[24]); + + if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex + + if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0; + + set Zeny, Zeny-@pTprice[@Tmenuref[@TWMenu-1]]; + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@pTprice[@Tmenuref[@TWMenu-1]]/16); + warp @pTmap$[@Tmenuref[@TWMenu-1]],@pTXcoords[@Tmenuref[@TWMenu-1]],@pTYcoords[@Tmenuref[@TWMenu-1]]; + close2; // this part safegaurds against errors/typos + set Zeny, Zeny+@pTprice[@Tmenuref[@TWMenu-1]]; + end; + +//=========================Dungeons================================ + +L_dungeon: + callfunc "QWS_Darray"; + +// Expected maximum is set to 35 items, if you add more options add more ",@Dmenulist$[xx]" + + set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30],@Dmenulist$[31],@Dmenulist$[32],@Dmenulist$[33],@Dmenulist$[34]); + + if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex + set @DwarpMenu, (@Dmenuref[@DWMenu-1]); + callfunc "QWS_DLarray"; + + next; + mes "[Warpra]"; + mes "Please select where you want to go"; + +// Expected maximum is set to 18 items, if you have dungeons with more levels add more ",@DWLmenulist$[xx]" + set @DWLMenu,select(@DWLmenulist$[0], @DWLmenulist$[1], @DWLmenulist$[2], @DWLmenulist$[3], @DWLmenulist$[4], @DWLmenulist$[5], @DWLmenulist$[6], @DWLmenulist$[7], @DWLmenulist$[8], @DWLmenulist$[9], @DWLmenulist$[10], @DWLmenulist$[11], @DWLmenulist$[12], @DWLmenulist$[13], @DWLmenulist$[14], @DWLmenulist$[15], @DWLmenulist$[16], @DWLmenulist$[17]); + + if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex + + set @Darrayref, @DWLmenuref[@DWLMenu-1]; + set @warpprice, @pDprice[@Dmenuref[@DWMenu-1]]+(getd(@pDfee$[@Dmenuref[@DWMenu-1]])*(@DDepth[@Darrayref])); + + if(Zeny<@warpprice) callsub L_Short_on_zeny,1; + + set Zeny, Zeny-(@warpprice); + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@warpprice/16); + warp @DGat$[@Darrayref],@DXcoords[@Darrayref],@DYcoords[@Darrayref]; + close2; // this part safegaurds against errors/typos + set Zeny, Zeny+@pTprice[@Tmenuref[@DWMenu-1]]; + end; + +//=============================Healing============================= + +L_heal_Full: + set @healfee, $QW_HF_PRICE; + if(Zeny<@healfee) callsub L_Short_on_zeny,4; + set Zeny, Zeny-@healfee; + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@healfee/500); + next; + mes "[Warpra]"; + mes "Close this window and I will Heal you."; + close2; + percentheal 100,100; + end; + +L_heal_Part: + set @healchoice,select("Full heal","Health Points only","Skill Points only","Exit"); + if (@healchoice == 1) callsub PHeal,1,1; + if (@healchoice == 2) callsub PHeal,1,0; + if (@healchoice == 3) callsub PHeal,0,1; + goto L_end; + +PHeal: + next; + set @Hp, MaxHp-Hp; + set @Sp, MaxSp-Sp; + set @HpPrice, @hp*$QW_HP_H_PRICE; + set @SpPrice, @sp*$QW_HP_S_PRICE; + mes "[Warpra]"; + if(getarg(0) == 1) mes ""+@HpPrice+" Zeny for "+@Hp+" health points"; + if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points"; + set @total, @HpPrice+@SpPrice; + mes "for a total of "+@total+" zeny"; + if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part; + + if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE; + if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE; + set @healfee, @HpPrice+@SpPrice; + if (getarg(0) == 1)&&(getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_Short_Both; + if (getarg(0) == 1)&&(Zeny<@healfee) goto Zeny_short_HP; + if (getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_short_SP; + set Zeny, Zeny-@healfee; + if (getarg(0) == 1)&&(getarg(1) == 1) percentheal 100,100; + if (getarg(0) == 1) percentheal 100,0; + if (getarg(1) == 1) percentheal 0,100; + close; + end; + +Zeny_Short_Both: + mes "[Warpra]"; + mes "choose another option, you can afford both."; + mes "I can heal as much as you can afford too."; + if (select("OK","Exit") == 2) goto L_end; + goto PHeal; + +Zeny_short_HP: + mes "[Warpra]"; + mes "do you want me to partly heal your HP ?"; + if (select("Yes","No") == 2) goto L_end; + set @Hp, Zeny/$QW_HP_H_PRICE; + set @HpPrice, @Hp*$QW_HP_H_PRICE; + if (@Hp == 1) mes "your not worth the effort"; + if (@Hp == 1) goto L_end; + set Zeny, Zeny-@HpPrice; + heal @Hp,0; + close; + end; + + +Zeny_short_SP: + mes "[Warpra]"; + mes "do you want me to partly heal your SP ?"; + if (select("Yes","No") == 2) goto L_end; + set @Sp, Zeny/$QW_HP_S_PRICE; + set @SpPrice, @Sp*$QW_HP_S_PRICE; + if (@Sp == 1) mes "your not worth the effort"; + if (@Sp == 1) goto L_end; + set Zeny, Zeny-@SpPrice; + heal 0,@Sp; + close; + end; + + +//=============================Storage============================= + +L_Storage: + next; + if(basicskillcheck() > 0 && getskilllv("NV_BASIC") < 6) goto L_StorageJBlow; + set @fee, $QW_S_PRICE; + if ($QW_S_PRICE == 60)&&(BaseJob == Job_Novice) set @fee, 30; + if ($QW_S_PRICE == 60)&&(BaseJob != Job_Novice) set @fee, 60; + if(Zeny<@fee) callsub L_Short_on_zeny,2; + set Zeny, Zeny-@fee; + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@fee/5); + + mes "[Warpra]"; + mes "Close this window and i will open your storage."; + + callsub F_CheckKafCode; //check your storage password thru kafra coding, if set + + close2; + openstorage; + end; + +F_CheckKafCode: + if(#kafra_code==0) return; + mes "Enter your storage password:"; + set @code_,0; + input @code_; + if(@code_ != #kafra_code) { + dispbottom "Wrong storage password."; + close; + } + set @kafcode_try,0; + set @code_,0; + return; + +L_StorageJBlow: + mes "[Warpra]"; + mes "I am sorry but you have to be at least Novice level 6 if you want to use the storage."; + return; + +L_GStorage: + if(@GID==0) goto L_NoGuild; + if(Zeny<$QW_GS_PRICE) callsub L_Short_on_zeny,3; + set Zeny, Zeny-$QW_GS_PRICE; + if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + ($QW_GS_PRICE/5); + next; + mes "[Warpra]"; + mes "Close this window and i will open the ^5533FF" + GetGuildName(@GID) + "^000000 storage."; + close2; + guildopenstorage; + end; + +L_NoGuild: + next; + mes "[Warpra]"; + mes "You are not a part of a guild I can't help you."; + close; + end; + +L_end: + close; + end; + +//============================Few=Warp============================= +L_FewWarps: + next; + mes "[Warpra ]"; + mes "You need to unlock locations before they come available to you."; + mes "To unlock a location talk to my colleagues all over the world."; + mes "Each account got it's own stamp card."; + mes "Want me to check what stamps you have collected so far ?."; + if (select("Yes","No")==1) callsub stampcard; + close; + end; + + +//============================No=Unlock============================ + +L_NoUnlock: + next; + mes "[Warpra ]"; + mes "I don't unlock this location, my assistant deeper in the dungeon will unlock this place."; + close; + end; + +//=========================Short=On=Zeny=========================== +L_Short_on_zeny: + next; + if (getarg(0) == 0) mes "you don't seem to have "+@pTprice[@Tmenuref[@TWMenu-1]]+" zeny, to pay for the warp fee to "+@pTmenuitems$[@Tmenuref[@TWMenu-1]]+""; + if (getarg(0) == 1) mes "you don't seem to have "+@warpprice+" zeny, to pay for the warp fee to "+@DLevelName$[@DWLmenuref[@DWLMenu-1]]+" at "+@pDmenuitems$[@Dmenuref[@DWMenu-1]]+""; + if (getarg(0) == 2) mes "you don't seem to have "+@fee+" zeny, to pay for the storage fee"; + if (getarg(0) == 3) mes "you don't seem to have "+$QW_GS_PRICE+" zeny, to pay for the guild storage fee"; + if (getarg(0) == 4) mes "you don't seem to have "+@healfee+" zeny, to pay for your healing"; + close; + end; + +//===========================Stamp=Card============================ +stampcard: +// Counting of the ammount of places you have unlocked + next; + mes "Let me check what Towns you have"; + + callfunc "QWS_TownStamps"; + + mes "you collected^00FF00 "+@Tstamp+" of "+@MaxTstamp+" ^000000Towns."; + if (@Tstamp == 15) mes "They say there is an island you can only get to when married"; + if (@Tstamp == 15) emotion 18; + next; + + mes "Let me check what dungeons you have"; + + callfunc "QWS_DungeonStamps"; + + mes "you collected^00FF00 "+@Dstamp+" of "+@MaxDstamp+" ^000000Dungeons"; + mes "To unlock a dungeon, search for my colleague."; + mes "You can usually find them near the middle or end of the dungeon"; + return; +} + +function script QWS_TownStamps { + set @Tstamp,0; + set @MaxTstamp,21; //maximum number of towns + set @binvalue,1; + set @Tstamploop,0; + do { + if ((@binvalue & ##QWS_T_Unlock) == @binvalue) set @Tstamp,@Tstamp+1; + + set @binvalue, @binvalue *2; + set @Tstamploop, @Tstamploop + 1; + +}while (@Tstamploop < @MaxTstamp); +return; +} + +function script QWS_DungeonStamps { + set @Dstamp,0; + set @MaxDstamp,29; //maximum number of dungeons + set @binvalue,1; + set @Dstamploop,0; + do { + if ((@binvalue & ##QWS_D_Unlock) == @binvalue) set @Dstamp,@Dstamp+1; + + set @binvalue, @binvalue *2; + set @Dstamploop, @Dstamploop + 1; + +}while (@Dstamploop < @MaxDstamp); +return; +} + +//======================Main=Menu=Array============================ + +function script QWS_MMarray { + +// Currently 9 items + + setarray @pMmenuitems$[0], "GameMaster Menu", $QW_SP_Warpname$, "Warp to Towns", "Warp to Dungeons", "Why so few Warps ?", "Why don't you Unlock this location ?", "Heal", "Heal", "Storage", "Guild Storage", "Cancel"; + set @Mi,0; // That's our loop counter. + set @Mj,0; // That's the menu lines counter. +//----------------GameMaster-Menu + if (getgmlevel()>= 80) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if (getgmlevel()>= 80) set @Mmenuref[@Mj],@Mi; + if (getgmlevel()>= 80) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Special-Warp + callfunc "QWS_TownStamps"; + callfunc "QWS_DungeonStamps"; + if (@Tstamp == @MaxTstamp)&&(@Dstamp == @MaxDstamp)&&($QW_SP_WarpMap$ != "") { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } + set @Mi,@Mi+1; +//----------------Town-Warp + if ($QW_TW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_TW_OFF == 0) set @Mmenuref[@Mj],@Mi; + if ($QW_TW_OFF == 0) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Dungeon-Warp + if ($QW_DW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_DW_OFF == 0) set @Mmenuref[@Mj],@Mi; + if ($QW_DW_OFF == 0) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Why-So-Few-Warps + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------No-Unlock + if (getarg(0) == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if (getarg(0) == 1) set @Mmenuref[@Mj],@Mi; + if (getarg(0) == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Healfull + if ($QW_HF == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_HF == 1) set @Mmenuref[@Mj],@Mi; + if ($QW_HF == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Healpart + if ($QW_HP == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_HP == 1) set @Mmenuref[@Mj],@Mi; + if ($QW_HP == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Storage + if ($QW_Stor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_Stor == 1) set @Mmenuref[@Mj],@Mi; + if ($QW_Stor == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------GuildStorage + if ($QW_GStor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + if ($QW_GStor == 1) set @Mmenuref[@Mj],@Mi; + if ($QW_GStor == 1) set @Mj,@Mj+1; + set @Mi,@Mi+1; +//----------------Cancel + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + return; + } + + + +//======================Town=Menu=Array============================ + +//----------------Prontera // I do this to find back sections quickly altho almost the same name is a line below it now +// setarray @pTmenuitems$[@Ti], "Prontera"; // Name of Town shown in Town select Menu +// setarray @pTprice[@Ti], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) +// +// setarray @pTmap$[@Ti], "prontera"; // mapfilename of town +// setarray @pTXcoords[@Ti], 156; // X warp coords +// setarray @pTYcoords[@Ti], 187; // Y warp coords +// +// QWS_Make_Town_Menu XXX; +// +// the full wap commands send out by this script for these example would be +//warp example_01 123 123 +// +// use the same XXX number as you used when making your own town warpra +// Read below how +// +// example: +// +//syntax: +//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ +// +// Full example using fake map & coords +// +//example_01,213,213,4 script Warpra 112,{ +// callfunc "QWS_Town_Warpra",XXX,"A FAKE TOWN FOR EXAMPLE"; +// close; +// } +// use a free number for XXX, last used is 20, for Yuno + +function script QWS_Tarray { + function QWS_Make_Town_Menu; + + set @Ti,0; // That's our loop counter. + set @Tj,0; // That's the menu lines counter. +//----------------Prontera + setarray @pTmenuitems$[@Ti], "Prontera"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "prontera"; + setarray @pTXcoords[@Ti], 156; + setarray @pTYcoords[@Ti], 187; + + QWS_Make_Town_Menu 0; +//----------------Alberta + setarray @pTmenuitems$[@Ti], "Alberta"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "alberta"; + setarray @pTXcoords[@Ti], 27; + setarray @pTYcoords[@Ti], 236; + + QWS_Make_Town_Menu 1; +//----------------Aldebaran + setarray @pTmenuitems$[@Ti], "Aldebaran"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "aldebaran"; + setarray @pTXcoords[@Ti], 145; + setarray @pTYcoords[@Ti], 120; + + QWS_Make_Town_Menu 2; +//----------------Amatsu: + setarray @pTmenuitems$[@Ti], "Amatsu"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "amatsu"; + setarray @pTXcoords[@Ti], 197; + setarray @pTYcoords[@Ti], 86; + + QWS_Make_Town_Menu 3; +//----------------Ayothaya: + setarray @pTmenuitems$[@Ti], "Ayothaya"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "ayothaya"; + setarray @pTXcoords[@Ti], 150; + setarray @pTYcoords[@Ti], 57; + + QWS_Make_Town_Menu 4; +//----------------Comodo: + setarray @pTmenuitems$[@Ti], "Comodo"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "comodo"; + setarray @pTXcoords[@Ti], 188; + setarray @pTYcoords[@Ti], 161; + + QWS_Make_Town_Menu 5; +//----------------Einbech: + setarray @pTmenuitems$[@Ti], "Einbech"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "einbech"; + setarray @pTXcoords[@Ti], 172; + setarray @pTYcoords[@Ti], 126; + + QWS_Make_Town_Menu 6; +//----------------Einbroch: + setarray @pTmenuitems$[@Ti], "Einbroch"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "einbroch"; + setarray @pTXcoords[@Ti], 230; + setarray @pTYcoords[@Ti], 191; + + QWS_Make_Town_Menu 7; +//----------------Geffen: + setarray @pTmenuitems$[@Ti], "Geffen"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "geffen"; + setarray @pTXcoords[@Ti], 119; + setarray @pTYcoords[@Ti], 66; + + QWS_Make_Town_Menu 8; +//----------------Gonryun: + setarray @pTmenuitems$[@Ti], "Gonryun"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "gonryun"; + setarray @pTXcoords[@Ti], 150; + setarray @pTYcoords[@Ti], 130; + + QWS_Make_Town_Menu 9; +//----------------Hugel: + setarray @pTmenuitems$[@Ti], "Hugel"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "hugel"; + setarray @pTXcoords[@Ti], 95; + setarray @pTYcoords[@Ti], 121; + + QWS_Make_Town_Menu 10; +//----------------Izlude: + setarray @pTmenuitems$[@Ti], "Izlude"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "izlude"; + setarray @pTXcoords[@Ti], 128; + setarray @pTYcoords[@Ti], 111; + + QWS_Make_Town_Menu 11; +//----------------Jawaii: + setarray @pTmenuitems$[@Ti], "Jawaii"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "jawaii"; + setarray @pTXcoords[@Ti], 243; + setarray @pTYcoords[@Ti], 115; + + QWS_Make_Town_Menu 12; +//----------------Lighthalzen: + setarray @pTmenuitems$[@Ti], "Lighthalzen"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "lighthalzen"; + setarray @pTXcoords[@Ti], 158; + setarray @pTYcoords[@Ti], 110; + + QWS_Make_Town_Menu 13; +//----------------Louyang: + setarray @pTmenuitems$[@Ti], "Louyang"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "louyang"; + setarray @pTXcoords[@Ti], 210; + setarray @pTYcoords[@Ti], 108; + + QWS_Make_Town_Menu 14; +//----------------Lutie + setarray @pTmenuitems$[@Ti], "Lutie"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "xmas"; + setarray @pTXcoords[@Ti], 148; + setarray @pTYcoords[@Ti], 131; + + QWS_Make_Town_Menu 15; +//----------------Morroc: + setarray @pTmenuitems$[@Ti], "Morroc"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "morocc"; + setarray @pTXcoords[@Ti], 159; + setarray @pTYcoords[@Ti], 93; + + QWS_Make_Town_Menu 16; +//----------------Niflheim: + setarray @pTmenuitems$[@Ti], "Niflheim"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "niflheim"; + setarray @pTXcoords[@Ti], 195; + setarray @pTYcoords[@Ti], 186; + + QWS_Make_Town_Menu 17; +//----------------Payon: + setarray @pTmenuitems$[@Ti], "Payon"; + setarray @pTprice[@Ti], $QW_BW_PRICE; + + setarray @pTmap$[@Ti], "payon"; + setarray @pTXcoords[@Ti], 152; + setarray @pTYcoords[@Ti], 75; + + QWS_Make_Town_Menu 18; +//----------------Umbala: + setarray @pTmenuitems$[@Ti], "Umbala"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "umbala"; + setarray @pTXcoords[@Ti], 130; + setarray @pTYcoords[@Ti], 130; + + QWS_Make_Town_Menu 19; +//----------------Yuno: + setarray @pTmenuitems$[@Ti], "Yuno"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "yuno"; + setarray @pTXcoords[@Ti], 160; + setarray @pTYcoords[@Ti], 168; + + QWS_Make_Town_Menu 20; +//----------------Cancel + setarray @pTmenuitems$[@Ti], "Cancel"; + setarray @pTprice[@Ti], 0; + + set @Tmenulist$[@Tj],@pTmenuitems$[@Ti]; + set @Tmenuref[@Tj],57005; // 57005='dead' in hex + return; + + +//----------------Make Town Menu Function + +function QWS_Make_Town_Menu { + set @temptownmenubin,1; + if (getarg(0) == 0) goto menu_item; + set @templooptownmenu,0; + do { + set @temptownmenubin, @temptownmenubin * 2; + set @templooptownmenu, @templooptownmenu + 1; + }while (getarg(0) > @templooptownmenu); +// check marker and make menu item +menu_item: + if ((@temptownmenubin & ##QWS_T_Unlock) != @temptownmenubin) { + set @Ti,@Ti+1; + return; + } + if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" -> "+@pTprice[@Ti]; + if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]; + if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"+" -> "+@pTprice[@Ti]; + if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"; + set @Tmenuref[@Tj],@Ti; + set @Tj,@Tj+1; + set @Ti,@Ti+1; + return; + +} +} + +//====================Dungeon=Menu=Arrays========================== + +//----------------A FAKE DUNGEON FOR EXAMPLE // I do this to find back sections quickly altho almost the same name is a line below it now +// setarray @pDmenuitems$[@Di], "Fake Dungeon"; // Name of Dungeon shown in Dungeon select Menu +// setarray @pDprice[@Di], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) +// setarray @pDfee$[@Di], "$QW_BW_FEE"; // Identifyer for the Dungeon fee caluclation (Basic ("$QW_BW_FEE"), Advanced ("$QW_AW_FEE"), Overseas ("$QW_OW_FEE")) please use setting in relation with option above (Don't forget "") +// setarray @DLevels[@Di], 2; //number of levels in dungeon (very important if set to high will shift all leveldata!!) +// +// setarray @DGat$[@Dref], "example_01", "example_02"; // mapfilename of dungeon level +// setarray @DLevelName$[@Dref], "Example Level 1", "Example Level 2"; // level name shown in dungeon level select +// setarray @DXcoords[@Dref], 123, 234; // X warp coords +// setarray @DYcoords[@Dref], 123, 234;// Y warp coords +// setarray @DDepth[@Dref], 0, 1; // relative depth to entrance to calculate extra warp fee +// +// QWS_Make_Dungeon_Menu XXX +// +// the full wap commands send out by this scripts for these examples would be +// for Example Level 1: +//warp example_01 123 123 +// +// for Example Level 2: +//warp example_02 234 234 +// +// use the same XXX number as you used when making your own dungeon unlocker (Warpra Helper) inside the dungeon +// (usually half way near a warp to next level) +// Read below how +// +// example: +// +//syntax: +//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ +// +// Full example using fake map & coords +// +//example_01,213,213,4 script Warpra Helper 112,{ +// callfunc "QWS_Dungeon_Warpra",XXX,"A FAKE DUNGEON FOR EXAMPLE"; +// close; +// } +// use a free number for XXX, last used is 28, for Kiel Dungeon + +function script QWS_Darray { + function QWS_Make_Dungeon_Menu; + + set @Di,0; + set @Dj,0; + set @Dref,0; +//----------------ABYSS LAKE + setarray @pDmenuitems$[@Di], "Abyss Lake"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "abyss_01", "abyss_02", "abyss_03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 265, 275, 116; + setarray @DYcoords[@Dref], 273, 270, 27; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 0; + +//----------------AMATSU DUNGEON + setarray @pDmenuitems$[@Di], "Amatsu Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "ama_dun01", "ama_dun02", "ama_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 227, 32, 119; + setarray @DYcoords[@Dref], 10, 43, 15; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 1; + +//----------------ANT HELL + setarray @pDmenuitems$[@Di], "Ant Hell Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[2], 2; + + setarray @DGat$[@Dref], "anthell01", "anthell02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 32, 34; + setarray @DYcoords[@Dref], 262, 263; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 2; + +//----------------AYOTAYA + setarray @pDmenuitems$[@Di], "Ayotaya Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[3], 2; + + setarray @DGat$[@Dref], "ayo_dun01", "ayo_dun02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 275, 150; + setarray @DYcoords[@Dref], 17, 13; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 3; + +//----------------BYALAN + setarray @pDmenuitems$[@Di], "Byalan Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[4], 5; + + setarray @DGat$[@Dref], "iz_dun00", "iz_dun01", "iz_dun02", "iz_dun03", "iz_dun04"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; + setarray @DXcoords[@Dref], 168, 41, 236, 32, 26; + setarray @DYcoords[@Dref], 168, 37, 204, 63, 27; + setarray @DDepth[@Dref], 0, 1, 2, 3, 4; + + QWS_Make_Dungeon_Menu 4; + +//----------------CLOCK TOWER + setarray @pDmenuitems$[@Di], "Clock Tower Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[5], 8; + + setarray @DGat$[@Dref], "c_tower1", "c_tower2", "c_tower3", "c_tower4", "alde_dun01", "alde_dun02", "alde_dun03", "alde_dun04"; + setarray @DLevelName$[@Dref], "Clock Tower Level 1", "Clock Tower Level 2", "Clock Tower Level 3", "Clock Tower Level 4", "Basement 1F", "Basement 2F", "Basement 3F", "Basement 4F"; + setarray @DXcoords[@Dref], 200, 268, 64, 32, 197, 262, 276, 122; + setarray @DYcoords[@Dref], 163, 26, 148, 63, 25, 41, 53, 125; + setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2, 3, 4; + + QWS_Make_Dungeon_Menu 5; + +//----------------COAL MINE + setarray @pDmenuitems$[@Di], "Coal Mine Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[6], 3; + + setarray @DGat$[@Dref], "mjo_dun01", "mjo_dun02", "mjo_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 52, 381, 302; + setarray @DYcoords[@Dref], 17, 343, 261; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 6; + +//----------------CULVERT + setarray @pDmenuitems$[@Di], "Culvert Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[7], 4; + + setarray @DGat$[@Dref], "prt_sewb1", "prt_sewb2", "prt_sewb3", "prt_sewb4"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; + setarray @DXcoords[@Dref], 132, 19, 180, 100; + setarray @DYcoords[@Dref], 248, 19, 169, 92; + setarray @DDepth[@Dref], 0, 1, 2, 3; + + QWS_Make_Dungeon_Menu 7; + +//----------------EINBECH DUNGEON + setarray @pDmenuitems$[@Di], "Einbech Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[8], 2; + + setarray @DGat$[@Dref], "ein_dun01", "ein_dun02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 22, 292; + setarray @DYcoords[@Dref], 14, 290; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 8; + +//----------------GEFENIA DUNGEON + setarray @pDmenuitems$[@Di], "Gefenia Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[9], 4; + + setarray @DGat$[@Dref], "gefenia01", "gefenia02", "gefenia03", "gefenia04"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; + setarray @DXcoords[@Dref], 59, 201, 264, 33; + setarray @DYcoords[@Dref], 167, 35, 236, 270; + setarray @DDepth[@Dref], 0, 1, 2, 3; + + QWS_Make_Dungeon_Menu 9; + +//----------------GEFFEN DUNGEON + setarray @pDmenuitems$[@Di], "Geffen Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 4; + + setarray @DGat$[@Dref], "gef_dun00", "gef_dun01", "gef_dun02", "gef_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; + setarray @DXcoords[@Dref], 104, 115, 106, 203; + setarray @DYcoords[@Dref], 100, 236, 132, 200; + setarray @DDepth[@Dref], 0, 1, 2, 3; + + QWS_Make_Dungeon_Menu 10; + +//----------------GLAST HEIM + setarray @pDmenuitems$[@Di], "Glast Heim Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 17; + + setarray @DGat$[@Dref], "glast_01", "gl_church", "gl_chyard", "gl_in01", "gl_cas01", "gl_cas02", "gl_knt01", "gl_knt02", "gl_prison", "gl_prison1", "gl_step", "gl_sew01", "gl_sew02", "gl_sew03", "gl_sew04", "gl_dun01", "gl_dun02"; + setarray @DLevelName$[@Dref], "Glast Heim Entrance", "St. Abbey", "Churchyard", "Inside Glast Heim", "Castle 1", "Castle 2", "Chivalry 1", "Chivalry 2", "Prison 1", "Prison 2", "Steps", "Sewers 1", "Sewers 2", "Sewers 3", "Sewers 4", "Lowest Cave 1", "Lowest Cave 2"; + setarray @DXcoords[@Dref], 370, 156, 147, 121, 199, 104, 150, 157, 14, 150, 117, 258, 108, 171, 68, 133, 224; + setarray @DYcoords[@Dref], 300, 8, 15, 59, 29, 25, 10, 287, 70, 14, 124, 255, 291, 273, 277, 271, 274; + setarray @DDepth[@Dref], 0, 1, 2, 1, 1, 2, 1, 2, 2, 3, 1, 4, 2, 3, 4, 5, 6; + + QWS_Make_Dungeon_Menu 11; + +//----------------GONRYUN DUNGEON + setarray @pDmenuitems$[@Di], "Gonryun Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "gon_dun01", "gon_dun02", "gon_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 143, 17, 68; + setarray @DYcoords[@Dref], 59, 114, 9; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 12; + +//----------------HIDDEN DUNGEON + setarray @pDmenuitems$[@Di], "Hidden Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "prt_maze01", "prt_maze02", "prt_maze03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 176, 94, 23; + setarray @DYcoords[@Dref], 6, 19, 8; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 13; + +//----------------JUPEROS CAVE + setarray @pDmenuitems$[@Di], "Juperos Cave"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "juperos_01", "juperos_02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 53, 36; + setarray @DYcoords[@Dref], 247, 60; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 14; + +//----------------KIEL DUNGEON + setarray @pDmenuitems$[@Di], "Kiel Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "kh_dun01", "kh_dun02"; + setarray @DLevelName$[@Dref], "1st Floor", "2nd Floor"; + setarray @DXcoords[@Dref], 63, 42; + setarray @DYcoords[@Dref], 10, 197; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 28; + +//----------------LIGHTHALZEN BIO LAB + setarray @pDmenuitems$[@Di], "Lighthalzen Bio Lab"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "lhz_dun01", "lhz_dun02", "lhz_dun03"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 150, 150, 140; + setarray @DYcoords[@Dref], 287, 18, 137; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 15; + +//----------------LOUYANG DUNGEON + setarray @pDmenuitems$[@Di], "Louyang Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "lou_dun02", "lou_dun03"; + setarray @DLevelName$[@Dref], "Royal Tomb Level 1", "Royal Tomb Level 2"; + setarray @DXcoords[@Dref], 282, 165; + setarray @DYcoords[@Dref], 20, 38; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 16; + +//----------------MAGMA DUNGEON + setarray @pDmenuitems$[@Di], "Magma Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "mag_dun01", "mag_dun02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 126, 47; + setarray @DYcoords[@Dref], 69, 32; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 17; + +//----------------ODIN TEMPLE + setarray @pDmenuitems$[@Di], "Odin Temple"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 1; + + setarray @DGat$[@Dref], "odin_tem01"; + setarray @DLevelName$[@Dref], "Level 1"; + setarray @DXcoords[@Dref], 96; + setarray @DYcoords[@Dref], 145; + setarray @DDepth[@Dref], 0; + + QWS_Make_Dungeon_Menu 18; + +//----------------ORC DUNGEON + setarray @pDmenuitems$[@Di], "Orc Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "orcsdun01", "orcsdun02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 32, 21; + setarray @DYcoords[@Dref], 169, 185; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 19; + +//----------------PAYON DUNGEON + setarray @pDmenuitems$[@Di], "Payon Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 5; + + setarray @DGat$[@Dref], "pay_dun00", "pay_dun01", "pay_dun02", "pay_dun03", "pay_dun04"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; + setarray @DXcoords[@Dref], 22, 19, 19, 155, 201; + setarray @DYcoords[@Dref], 180, 33, 63, 159, 204; + setarray @DDepth[@Dref], 0, 1, 2, 3, 4; + + QWS_Make_Dungeon_Menu 20; + +//----------------PYRAMIDS + setarray @pDmenuitems$[@Di], "Pyramids Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 6; + + setarray @DGat$[@Dref], "moc_pryd01", "moc_pryd02", "moc_pryd03", "moc_pryd04", "moc_pryd05", "moc_pryd06"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Basement 1", "Basement 2"; + setarray @DXcoords[@Dref], 192, 10, 100, 181, 94, 192; + setarray @DYcoords[@Dref], 9, 192, 92, 11, 96, 8; + setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2; + + QWS_Make_Dungeon_Menu 21; + +//----------------SPHINX + setarray @pDmenuitems$[@Di], "Sphinx Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 5; + + setarray @DGat$[@Dref], "in_sphinx1", "in_sphinx2", "in_sphinx3", "in_sphinx4", "in_sphinx5"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; + setarray @DXcoords[@Dref], 192, 149, 210, 10, 100; + setarray @DYcoords[@Dref], 9, 81, 54, 222, 99; + setarray @DDepth[@Dref], 0, 1, 2, 3, 4; + + QWS_Make_Dungeon_Menu 22; + +//----------------SUNKEN SHIP + setarray @pDmenuitems$[@Di], "Sunken Ship Dungeon"; + setarray @pDprice[@Di], $QW_BW_PRICE; + setarray @pDfee$[@Di], "$QW_BW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "treasure01", "treasure02"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2"; + setarray @DXcoords[@Dref], 69, 102; + setarray @DYcoords[@Dref], 24, 27; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 23; + +//----------------THANATOS TOWER + setarray @pDmenuitems$[@Di], "Thanatos Tower"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 13; + + setarray @DGat$[@Dref], "tha_t01", "tha_t02", "tha_t03", "tha_t04", "tha_t05", "tha_t06", "tha_t07", "tha_t08", "tha_t09", "tha_t10", "tha_t11", "tha_t12", "thana_boss"; + setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6", "Level 7", "Level 8", "Level 9", "Level 10", "Level 11", "Level 12", "Thanatos Boss"; + setarray @DXcoords[@Dref], 150, 150, 220, 59, 62, 206, 35, 105, 88, 168, 90, 129, 85; + setarray @DYcoords[@Dref], 35, 136, 158, 143, 11, 8, 166, 44, 145, 138, 36, 83, 76; + setarray @DDepth[@Dref], 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; + + QWS_Make_Dungeon_Menu 24; + +//----------------TOY FACTORY + setarray @pDmenuitems$[@Di], "Toy Factory Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 2; + + setarray @DGat$[@Dref], "xmas_dun01", "xmas_dun02"; + setarray @DLevelName$[@Dref], "Factory Warehouse", "Classifying Room"; + setarray @DXcoords[@Dref], 205, 129; + setarray @DYcoords[@Dref], 16, 133; + setarray @DDepth[@Dref], 0, 1; + + QWS_Make_Dungeon_Menu 25; + +//----------------TURTLE ISTLAND + setarray @pDmenuitems$[@Di], "Turtle Island Dungeon"; + setarray @pDprice[@Di], $QW_AW_PRICE; + setarray @pDfee$[@Di], "$QW_AW_FEE"; + setarray @DLevels[@Di], 4; + + setarray @DGat$[@Dref], "tur_dun01", "tur_dun02", "tur_dun03", "tur_dun04"; + setarray @DLevelName$[@Dref], "Outside", "Level 1", "Level 2", "Level 3"; + setarray @DXcoords[@Dref], 161, 148, 132, 100; + setarray @DYcoords[@Dref], 34, 256, 190, 192; + setarray @DDepth[@Dref], 0, 0, 1, 2; + + QWS_Make_Dungeon_Menu 26; + +//----------------UMBALA + setarray @pDmenuitems$[@Di], "Umbala Dungeon"; + setarray @pDprice[@Di], $QW_OW_PRICE; + setarray @pDfee$[@Di], "$QW_OW_FEE"; + setarray @DLevels[@Di], 3; + + setarray @DGat$[@Dref], "um_dun01", "um_dun02", "yggdrasil01"; + setarray @DLevelName$[@Dref], "Carpenter's Shop in The Tree", "Passage to a Foreign World", "Hvergelmir's Fountain"; + setarray @DXcoords[@Dref], 205, 48, 40; + setarray @DYcoords[@Dref], 26, 30, 63; + setarray @DDepth[@Dref], 0, 1, 2; + + QWS_Make_Dungeon_Menu 27; + +//----------------Cancel + setarray @pDmenuitems$[@Di], "Cancel"; + setarray @pDprice[@Di], 0; + + set @Dmenulist$[@Dj],@pDmenuitems$[@Di]; + set @Dmenuref[@Dj],57005; // 57005='dead' in hex + return; + + +//----------------Make Dungeon Menu Function + +function QWS_Make_Dungeon_Menu { + set @tempdungeonmenubin,1; + if (getarg(0) == 0) goto menu_item; + set @temploopdungeonmenu,0; + do { + set @tempdungeonmenubin, @tempdungeonmenubin * 2; + set @temploopdungeonmenu, @temploopdungeonmenu + 1; + }while (getarg(0) > @temploopdungeonmenu); +// check marker and make menu item +menu_item: + if ((@tempdungeonmenubin & ##QWS_D_Unlock) != @tempdungeonmenubin) { + setarray @DLocRef[@Di], @Dref; + set @Dref, @Dref+@DLevels[@Di]; + set @Di,@Di+1; + return; + } + if ($QW_MapUserShow == 1) { + set @tempmapusers,0; + set @mapusersloop,0; + do { + set @tempmapusers,(getmapusers(@DGat$[@Dref+@mapusersloop]) + @tempmapusers); + set @mapusersloop, (@mapusersloop + 1); + }while (@DLevels[@Di] > @mapusersloop); + if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"] -> "+@pDprice[@Di]; + if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"]"; + set @Dmenuref[@Dj],@Di; + set @Dj,@Dj+1; + setarray @DLocRef[@Di], @Dref; + set @Dref, @Dref+@DLevels[@Di]; + set @Di,@Di+1; + return; + } + if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di]; + if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]; + set @Dmenuref[@Dj],@Di; + set @Dj,@Dj+1; + setarray @DLocRef[@Di], @Dref; + set @Dref, @Dref+@DLevels[@Di]; + set @Di,@Di+1; + return; + +} +} + +function script QWS_DLarray { +//----------------Start building Menu + set @DWref,@DLocRef[@DwarpMenu]; // That's our reference to the arrays with leveldata. + set @DWi,0; // That's our loop counter. + set @DWj,0; // That's the menu lines counter. + cleararray @DWLmenulist$[0],"",20; // Clearing the array to get rid off ghost items in menu + do { + if ($QW_DL == 0)||($QW_DDL >= @DDepth[@DWref]) { + + set @warpprice, (@pDprice[@DwarpMenu]+ (getd(@pDfee$[@DwarpMenu])*@DDepth[@DWref])); + + if (@warpprice != 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" -> "+@warpprice; + if (@warpprice == 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]; + if (@warpprice != 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"] -> "+@warpprice; + if (@warpprice == 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"]"; + set @DWLmenuref[@DWj],@DWref; + + set @DWj,@DWj+1; + } + set @DWref, @DWref+1; + set @DWi,@DWi+1; + }while (@DWi < @DLevels[@DwarpMenu]); + set @DWLmenulist$[@DWj], "Exit"; + set @DWLmenuref[@DWj],57005; // 57005='dead' in hex + return; + } + + +//=================Backwards=Compatibility=Pre=1.8================= + +function script QWS_BackComp { +// reference where i put the towns: "Prontera"[0], "Alberta"[1], "Aldebaran"[2], "Amatsu"[3], "Ayothaya"[4], "Comodo"[5], "Einbech"[6], "Einbroch"[7], "Geffen"[8], "Gonryun"[9], "Hugel"[10], "Izlude"[11], "Jawaii"[12], "Lighthalzen"[13], "Louyang"[14], "Lutie"[15], "Morroc"[16], "Niflheim"[17], "Payon"[18], "Umbala"[19], "Yuno"[20]; +// reference where i put the dungeons: "Abyss Lake"[0], "Amatsu Dungeon"[1], "Ant Hell Dungeon"[2], "Ayotaya Dungeon"[3], "Byalan Dungeon"[4], "Clock Tower Dungeon"[5], "Coal Mine Dungeon"[6], "Culvert Dungeon"[7], "Einbech Dungeon"[8], "Gefenia Dungeon"[9], "Geffen Dungeon"[10], "Glast Heim Dungeon"[11], "Gonryun Dungeon"[12], "Hidden Dungeon"[13], "Juperos Cave"[14], "Lighthalzen Bio Lab"[15], "Louyang Dungeon"[16], "Magma Dungeon"[17], "Odin Temple"[18], "Orc Dungeon"[19], "Payon Dungeon"[20], "Pyramids Dungeon"[21], "Sphinx Dungeon"[22], "Sunken Ship Dungeon"[23], "Thanatos Tower"[24], "Toy Factory Dungeon"[25], "Turtle Island Dungeon"[26], "Umbala Dungeon"[27], "Kiel Dungeon[28]; +// also clears variables so that the account file variables can be used for something else variable 0 = variable delete on next save + +// Towns + set @towntemp,0; + if (#prontera != 0) set @towntemp,@towntemp + 1; + if (#alberta != 0) set @towntemp,@towntemp + 2; + if (#aldebaran != 0) set @towntemp,@towntemp + 4; + if (#amatsu != 0) set @towntemp,@towntemp + 8; + if (#ayotaya != 0) set @towntemp,@towntemp + 16; + if (#comodo != 0) set @towntemp,@towntemp + 32; + if (#einbech != 0) set @towntemp,@towntemp + 64; + if (#einbroch != 0) set @towntemp,@towntemp + 128; + if (#geffen != 0) set @towntemp,@towntemp + 256; + if (#gonryun != 0) set @towntemp,@towntemp + 512; + if (#hugel != 0) set @towntemp,@towntemp + 1024; + if (#izlude != 0) set @towntemp,@towntemp + 2048; + if (#jawaii != 0) set @towntemp,@towntemp + 4096; + if (#lighthalzen != 0) set @towntemp,@towntemp + 8192; + if (#louyang != 0) set @towntemp,@towntemp + 16384; + if (#xmas != 0) set @towntemp,@towntemp + 32768; + if (#morocc != 0) set @towntemp,@towntemp + 65536; + if (#niflheim != 0) set @towntemp,@towntemp + 131072; + if (#payon != 0) set @towntemp,@towntemp + 262144; + if (#umbala != 0) set @towntemp,@towntemp + 524288; + if (#yuno != 0) set @towntemp,@towntemp + 1048576; +// Clear Town variables + set #prontera,0; + set #alberta,0; + set #aldebaran,0; + set #amatsu,0; + set #ayotaya,0; + set #comodo,0; + set #einbech,0; + set #einbroch,0; + set #geffen,0; + set #gonryun,0; + set #hugel,0; + set #izlude,0; + set #jawaii,0; + set #lighthalzen,0; + set #louyang,0; + set #xmas,0; + set #morocc,0; + set #niflheim,0; + set #payon,0; + set #umbala,0; + set #yuno,0; +// set Town warp unlock variable +set ##QWS_T_Unlock, (##QWS_T_Unlock | @towntemp); + //because multiple account servers now stack on 1 variable i used a 'or' to stack them +// Dungeons + set @dungeontemp,0; + if (#abyss != 0) set @dungeontemp,@dungeontemp + 1; + if (#ama_dun != 0) set @dungeontemp,@dungeontemp + 2; + if (#anthell != 0) set @dungeontemp,@dungeontemp + 4; + if (#ayotaya_dun != 0) set @dungeontemp,@dungeontemp + 8; + if (#iz_dun != 0) set @dungeontemp,@dungeontemp + 16; + if (#c_tower != 0) set @dungeontemp,@dungeontemp + 32; + if (#mjo_dun != 0) set @dungeontemp,@dungeontemp + 64; + if (#prt_sewb != 0) set @dungeontemp,@dungeontemp + 128; + if (#einbech_dun != 0) set @dungeontemp,@dungeontemp + 256; + if (#gefenia != 0) set @dungeontemp,@dungeontemp + 512; + if (#gef_dun != 0) set @dungeontemp,@dungeontemp + 1024; + if (#gl_dun != 0) set @dungeontemp,@dungeontemp + 2048; + if (#gon_dun != 0) set @dungeontemp,@dungeontemp + 4096; + if (#hid_dun != 0) set @dungeontemp,@dungeontemp + 8192; + if (#juperos != 0) set @dungeontemp,@dungeontemp + 16384; + if (#lighthalzen_dun != 0) set @dungeontemp,@dungeontemp + 32768; + if (#louyang_dun != 0) set @dungeontemp,@dungeontemp + 65536; + if (#mag_dun != 0) set @dungeontemp,@dungeontemp + 131072; + if (#odintemple != 0) set @dungeontemp,@dungeontemp + 262144; + if (#orcsdun != 0) set @dungeontemp,@dungeontemp + 524288; + if (#pay_dun != 0) set @dungeontemp,@dungeontemp + 1048576; + if (#moc_pryd != 0) set @dungeontemp,@dungeontemp + 2097152; + if (#in_sphinx != 0) set @dungeontemp,@dungeontemp + 4194304; + if (#treasure != 0) set @dungeontemp,@dungeontemp + 8388608; + if (#thanatos_tower != 0) set @dungeontemp,@dungeontemp + 16777216; + if (#xmas_dun != 0) set @dungeontemp,@dungeontemp + 33554432; + if (#tur_dun != 0) set @dungeontemp,@dungeontemp + 67108864; + if (#um_dun != 0) set @dungeontemp,@dungeontemp + 134217728; +// Clear Dungeon variables + set #abyss,0; + set #ama_dun,0; + set #anthell,0; + set #ayotaya_dun,0; + set #iz_dun,0; + set #c_tower,0; + set #mjo_dun,0; + set #prt_sewb,0; + set #einbech_dun,0; + set #gefenia,0; + set #gef_dun,0; + set #gl_dun,0; + set #gon_dun,0; + set #hid_dun,0; + set #juperos,0; + set #lighthalzen_dun,0; + set #louyang_dun,0; + set #mag_dun,0; + set #odintemple,0; + set #orcsdun,0; + set #pay_dun,0; + set #moc_pryd,0; + set #in_sphinx,0; + set #treasure,0; + set #thanatos_tower,0; + set #xmas_dun,0; + set #tur_dun,0; + set #um_dun,0; +// set Town warp unlock variable +set ##QWS_D_Unlock, (##QWS_D_Unlock | @dungeontemp); +//mark that this character has done the upgrade to 1.8 +set ##QWS_UP,18; +return; +} + + +//===================Extra=Variable=Clear=Pre=1.8================== +function script Extra_Variable_Clear { +// Clear Town variables + set #prontera,0; + set #alberta,0; + set #aldebaran,0; + set #amatsu,0; + set #ayotaya,0; + set #comodo,0; + set #einbech,0; + set #einbroch,0; + set #geffen,0; + set #gonryun,0; + set #hugel,0; + set #izlude,0; + set #jawaii,0; + set #lighthalzen,0; + set #louyang,0; + set #xmas,0; + set #morocc,0; + set #niflheim,0; + set #payon,0; + set #umbala,0; + set #yuno,0; + +// Clear Dungeon variables + set #abyss,0; + set #ama_dun,0; + set #anthell,0; + set #ayotaya_dun,0; + set #iz_dun,0; + set #c_tower,0; + set #mjo_dun,0; + set #prt_sewb,0; + set #einbech_dun,0; + set #gefenia,0; + set #gef_dun,0; + set #gl_dun,0; + set #gon_dun,0; + set #hid_dun,0; + set #juperos,0; + set #lighthalzen_dun,0; + set #louyang_dun,0; + set #mag_dun,0; + set #odintemple,0; + set #orcsdun,0; + set #pay_dun,0; + set #moc_pryd,0; + set #in_sphinx,0; + set #treasure,0; + set #thanatos_tower,0; + set #xmas_dun,0; + set #tur_dun,0; + set #um_dun,0; + +// as the account based variables are limited just run this on every character to save some variables +set QWS_ExtraVARClear,18; +return; +} + +//================Dungeon=Warpras=That=Only=Unlock================= + +function script QWS_Dungeon_Warpra { + function QWS_D_getbin; + function QWS_D_setbin; + + if ((QWS_D_getbin(getarg(0)) == 0) && (getarg(1) != "")) { + mes "[Warpra]"; + mes getarg(1)+" unlocked!"; + QWS_D_setbin(getarg(0)); + return; + } else if (QWS_D_getbin(getarg(0)) == 1){ + mes "[Warpra]"; + mes "Sorry I can only unlock this location."; + } else + debugmes "QWS_Dungeon_Warpra error, improper syntax ?"; + return; + + +function QWS_D_setbin { + set @tempsetbindata,1; + if (getarg(0) == 0) goto binset; + set @temploopsetbin,0; + do { + set @tempsetbindata, @tempsetbindata * 2; + set @temploopsetbin, @temploopsetbin + 1; + } while (getarg(0) > @temploopsetbin); +binset: + set ##QWS_D_Unlock,(##QWS_D_Unlock | @tempsetbindata); + return; +} + +function QWS_D_getbin { + set @tempgetbindata,1; + if (getarg(0) == 0) goto binget; + set @temploopgetbin,0; + do { + set @tempgetbindata, @tempgetbindata * 2; + set @temploopgetbin, @temploopgetbin + 1; + } while (getarg(0) > @temploopgetbin); +binget: + if ((@tempgetbindata & ##QWS_D_Unlock) == @tempgetbindata) return 1; + return 0; +} +} + +//==========================Town=Warpras=========================== + +function script QWS_Town_Warpra { + function QWS_T_getbin; + function QWS_T_setbin; + + if ((QWS_T_getbin(getarg(0)) == 0) && (getarg(1) != "")) { + mes "[Warpra]"; + mes getarg(1)+" unlocked!"; + QWS_T_setbin(getarg(0)); + return; + } else if (QWS_T_getbin(getarg(0)) == 1){ +callfunc "Q_Warpra",0; + } else + debugmes "QWS_Town_Warpra error, improper syntax ?"; + return; + + +function QWS_T_setbin { + set @tempsetbindata,1; + if (getarg(0) == 0) goto binset; + set @temploopsetbin,0; + do { + set @tempsetbindata, @tempsetbindata * 2; + set @temploopsetbin, @temploopsetbin + 1; + } while (getarg(0) > @temploopsetbin); +binset: + set ##QWS_T_Unlock,(##QWS_T_Unlock | @tempsetbindata); + return; +} + +function QWS_T_getbin { + set @tempgetbindata,1; + if (getarg(0) == 0) goto binget; + set @temploopgetbin,0; + do { + set @tempgetbindata, @tempgetbindata * 2; + set @temploopgetbin, @temploopgetbin + 1; + } while (getarg(0) > @temploopgetbin); +binget: + if ((@tempgetbindata & ##QWS_T_Unlock) == @tempgetbindata) return 1; + return 0; +} +} +//============================Warpras============================== + +alb2trea,73,101,4 script Warpra#1 113,{ + callfunc "Q_Warpra",1; +} +ama_fild01,178,325,1 script Warpra#2 113,{ + callfunc "Q_Warpra",1; +} +gef_fild10,71,339,4 script Warpra#3 113,{ + callfunc "Q_Warpra",1; +} +izlu2dun,104,82,4 script Warpra#4 113,{ + callfunc "Q_Warpra",1; +} +mjolnir_02,85,363,4 script Warpra#5 113,{ + callfunc "Q_Warpra",1; +} +moc_fild04,207,331,4 script Warpra#6 113,{ + callfunc "Q_Warpra",1; +} +moc_fild19,106,97,4 script Warpra#7 113,{ + callfunc "Q_Warpra",1; +} +moc_ruins,64,166,4 script Warpra#8 113,{ + callfunc "Q_Warpra",1; +} +niflheim,197,192,3 script Warpra#9 113,{ + callfunc "Q_Warpra",1; +} +pay_arche,39,135,4 script Warpra#10 113,{ + callfunc "Q_Warpra",1; +} +prt_fild05,273,215,4 script Warpra#11 113,{ + callfunc "Q_Warpra",1; +} +tur_dun01,148,239,4 script Warpra#12 113,{ + callfunc "Q_Warpra",1; +} +valkyrie,48,35,8 script Warpra#13 113,{ + callfunc "Q_Warpra",1; +} +yuno_fild03,37,135,4 script Warpra#14 113,{ + callfunc "Q_Warpra",1; +} + +alberta,32,240,4 script Warpra#15 113,{ + callfunc "QWS_Town_Warpra",1,"Alberta Town"; + close; +} +aldebaran,146,118,4 script Warpra#16 113,{ + callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; + close; +} +ayothaya,216,171,5 script Warpra#17 113,{ + callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; + close; +} +amatsu,193,81,1 script Warpra#18 113,{ + callfunc "QWS_Town_Warpra",3,"Amatsu Town"; + close; +} +comodo,195,158,4 script Warpra#19 113,{ + callfunc "QWS_Town_Warpra",5,"Comodo Town"; + close; +} +einbroch,229,196,5 script Warpra#20 113,{ + callfunc "QWS_Town_Warpra",7,"Einbroch Town"; + close; +} +einbech,173,131,5 script Warpra#21 113,{ + callfunc "QWS_Town_Warpra",6,"Einbech Town"; + close; +} +geffen,116,66,4 script Warpra#22 113,{ + callfunc "QWS_Town_Warpra",8,"Geffen Town"; + close; +} +gonryun,152,130,4 script Warpra#23 113,{ + callfunc "QWS_Town_Warpra",9,"Gonryun Town"; + close; +} +hugel,90,127,5 script Warpra#24 113,{ + callfunc "QWS_Town_Warpra",10,"Hugel Town"; + close; +} +jawaii,107,182,5 script Warpra#25 113,{ + callfunc "QWS_Town_Warpra",12,"Jawaii Town"; + close; +} +izlude,132,116,4 script Warpra#26 113,{ + callfunc "QWS_Town_Warpra",11,"Izlude Town"; + close; +} +lighthalzen,153,100,5 script Warpra#27 113,{ + callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; + close; +} +louyang,211,106,4 script Warpra#28 113,{ + callfunc "QWS_Town_Warpra",14,"Louyang Town"; + close; +} +morocc,157,95,4 script Warpra#29 113,{ + callfunc "QWS_Town_Warpra",16,"Morroc Town"; + close; +} +nif_fild01,319,77,1 script Warpra#30 113,{ + callfunc "QWS_Town_Warpra",17,"Niflheim Town"; + close; +} +payon,183,110,4 script Warpra#31 113,{ + callfunc "QWS_Town_Warpra",18,"Payon Town"; + close; +} +prontera,147,172,5 script Warpra#32 113,{ + callfunc "QWS_Town_Warpra",0,"Prontera Town"; + close; +} +umbala,133,130,4 script Warpra#33 113,{ + callfunc "QWS_Town_Warpra",19,"Umbala Town"; + close; +} +xmas,151,136,4 script Warpra#34 113,{ + callfunc "QWS_Town_Warpra",15,"Lutie Town"; + close; +} +yuno,138,162,4 script Warpra#35 113,{ + callfunc "QWS_Town_Warpra",20,"Yuno Town"; + close; +} + +abyss_02,274,266,1 script Warpra#36 113,{ + callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; + close; +} + +ama_dun02,192,118,5 script Warpra Helper#1 112,{ + callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; + close; +} + +anthell02,170,165,3 script Warpra Helper#2 112,{ + callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; + close; +} + +ayo_dun02,258,193,5 script Warpra Helper#3 112,{ + callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; + close; +} + +ein_dun02,292,282,1 script Warpra Helper#4 112,{ + callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; + close; +} + +iz_dun03,202,47,2 script Warpra Helper#5 112,{ + callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; + close; +} + +c_tower3,129,106,4 script Warpra Helper#6 112,{ + callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; + close; +} + +mjo_dun02,39,25,4 script Warpra Helper#7 112,{ + callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; + close; +} + +prt_sewb2,176,30,3 script Warpra Helper#8 112,{ + callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; + close; +} + +gefenia03,137,34,0 script Warpra Helper#9 112,{ + callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; + close; +} + +gef_dun02,218,61,2 script Warpra Helper#10 112,{ + callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; + close; +} + +glast_01,371,308,3 script Warpra Helper#11 112,{ + callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; + close; +} + +gon_dun01,167,273,4 script Warpra Helper#12 112,{ + callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; + close; +} + +juperos_02,127,154,5 script Warpra Helper#13 112,{ + callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; + close; +} + +kh_dun01,14,224,3 script Warpra Helper#14 112,{ + callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; + close; +} + +lhz_dun02,156,151,5 script Warpra Helper#15 112,{ + callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; + close; +} + +lou_dun02,168,264,4 script Warpra Helper#16 112,{ + callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; + close; +} + +mag_dun02,46,41,3 script Warpra Helper#17 112,{ + callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; + close; +} + +odin_tem01,115,148,3 script Warpra Helper#18 112,{ + callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; + close; +} + +orcsdun01,185,11,3 script Warpra Helper#19 112,{ + callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; + close; +} + +pay_dun03,162,143,3 script Warpra Helper#20 112,{ + callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; + close; +} + +moc_pryd02,101,95,3 script Warpra Helper#21 112,{ + callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; + close; +} + +in_sphinx2,274,268,1 script Warpra Helper#22 112,{ + callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; + close; +} + +tha_t07,111,162,3 script Warpra Helper#23 112,{ + callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; + close; +} + +treasure02,104,40,3 script Warpra Helper#24 112,{ + callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; + close; +} + +xmas_dun02,124,131,3 script Warpra Helper#25 112,{ + callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; + close; +} + +um_dun02,44,28,3 script Warpra Helper#26 112,{ + callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; + close; +} + +tur_dun02,162,23,3 script Warpra Helper#27 112,{ + callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; + close; +} +prt_maze02,102,69,4 script Warpra Helper#28 112,{ + callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; + close; +} diff --git a/npc/custom/events/cluckers.txt b/npc/custom/events/cluckers.txt new file mode 100644 index 000000000..9d0253164 --- /dev/null +++ b/npc/custom/events/cluckers.txt @@ -0,0 +1,114 @@ +//===== rAthena Script ======================================= +//= Cluck! Cluck! Boom! +//===== By: ================================================== +//= Keale +//===== Current Version: ===================================== +//= 1.2 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Click the chicken and try retrieve the item at a low +//= chance. If you fail he will nuke, freeze, stone, +//= stun, or make you fall asleep. +//= The prize is configurable and triggered by the NPC. +//===== Additional Comments: ================================= +//= 1.0 First release. +//= 1.1 Using 'switch rand' instead. +//= 1.2 Cleaned and standardized. [Euphy] +//============================================================ + +prontera,156,219,4 script Cluckers 800,{ + + set .@GMAccess,80; // GM level required to access NPC + + if (.startcluck) { + specialeffect2 2; + switch(rand(15)) { + case 0: npctalk "CLUUUUUUCK!!!"; atcommand "@nuke "+strcharinfo(0); emotion 23; break; + case 1: npctalk "Cluuuuuck!~"; break; + case 2: atcommand "@nuke "+strcharinfo(0); break; + case 3: sc_start SC_Freeze,10000,0; break; + case 4: npctalk "CLUUUUUUUUUCK!!!"; atcommand "@nuke "+strcharinfo(0); emotion 23; break; + case 5: sc_start SC_Sleep,10000,0; break; + case 6: sc_start SC_Stone,10000,0; emotion 29; break; + case 7: npctalk "CLUUUUUUCK!!!"; atcommand "@nuke "+strcharinfo(0); emotion 23; break; + case 8: npctalk "Cluck! CLUUUCK!!"; atcommand "@nuke "+strcharinfo(0); emotion 23; break; + case 9: sc_start SC_Stun,10000,0; break; + case 10: sc_start SC_Sleep,10000,0; emotion 29; break; + case 11: npctalk "Cluck! Cluck!"; break; + case 12: sc_start SC_Stun,10000,0; break; + case 13: atcommand "@nuke "+strcharinfo(0); break; + default: + if (rand(50) < 4) { + npctalk "WOOF!..........."; + specialeffect2 72; + announce "[Cluck! Cluck! Boom!] " + strcharinfo(0) + " squeezed out the prize! Well done!",0; + getitem $cluck_item_id,$cluck_item_amount; + set .startcluck,0; + } else { + npctalk "Cluck! CLUUUCK!!"; + atcommand "@nuke "+strcharinfo(0); + } + break; + } + end; + } + mes "[Cluckers]"; + if (getgmlevel() >= .@GMAccess) { + mes "Cluck cluck! Cluuuuuck? ^FF0000~Hi GM " + strcharinfo(0) + ", Wanna play today?~^000000"; + mes "Cluck cluck... CLUCK! ^FF0000~Just tell me what to do!~^000000"; + next; + while(1) switch(select("Start Event:Check Prize:Set Prize:Not today Cluckers")) { + case 1: + mes "[Cluckers]"; + mes "CLUCK! ^FF0000~Sure thing!~^000000"; + emotion 33; + close2; + announce "[Cluck! Cluck! Boom!] is about to start in Prontera!",bc_blue; + initnpctimer; + end; + case 2: + mes "[Cluckers]"; + mes "Cluck, cluck cluck... Cluck! ^FF0000~The current prize is^000000 ^008000"+ $cluck_item_amount +" "+ getitemname($cluck_item_id) +".^000000"; + next; + break; + case 3: + mes "[Cluckers]"; + mes "Cluck cluck? Cluck??? ^FF0000~What should the prize for winning be? Please input the ID.~^000000"; + input $cluck_item_id; + next; + mes "[Cluckers]"; + mes "Cluck? cluuuck? ^FF0000~How many if this item should I give away?~^000000"; + input $cluck_item_amount; + next; + mes "[Cluckers]"; + mes "Cluck cluck..? Cluck. ^FF0000~So, the prize is^000000 ^008000"+ $cluck_item_amount +" "+ getitemname($cluck_item_id) +"^000000? ^FF0000Great.~^000000"; + emotion 33; + next; + break; + case 4: + mes "[Cluckers]"; + mes "Cluck cluck cluck..."; + close; + } + } + mes "Cluck cluck! Cluuuuuck?"; + mes "Cluck...."; + close; + +OnTimer10000: + announce "Please hurry behind the fountain if you want to play with the crazy chicken!",bc_blue; + end; +OnTimer20000: + announce "Cluckers has eaten one of my items! I'm too scared to retrieve it!",bc_blue; + end; +OnTimer30000: + announce "Click the insane chicken and try squeeze out the item, if you're lucky you'll win! Are you ready?",bc_blue; + end; +OnTimer40000: + announce "GO! Click the chicken to get the prize!",bc_blue; + if (!$cluck_item_id) set $cluck_item_id,512; + if (!$cluck_item_amount) set $cluck_item_amount,1; + set .startcluck,1; + end; +} \ No newline at end of file diff --git a/npc/custom/events/disguise.txt b/npc/custom/events/disguise.txt new file mode 100644 index 000000000..12db534df --- /dev/null +++ b/npc/custom/events/disguise.txt @@ -0,0 +1,244 @@ +//===== rAthena Script ======================================= +//= Disguise Event +//===== By: ================================================== +//= GmOcean +//===== Current Version: ===================================== +//= 5.1 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Additional Comments: ================================= +//= 5.0 Last update by GmOcean. +//= 5.1 Cleaned and standardized, mostly. [Euphy] +//============================================================ + +prontera,160,155,4 script Disguise Event 795,{ + + // Currently set to run every two hours. + // To change times, edit the OnClock labels below. + + set .@GMLevel,60; // GM level required to access NPC. + set .@n$,"[^0000FFDisguise NPC^000000]"; + + if (getgmlevel()>=.@GMLevel) { + mes .@n$; + mes "Select an option."; + next; + switch(select("Turn ON/OFF Event:Event Settings")) { + case 1: + mes .@n$; + if ($@EventON) { + mes "The Event is currently: [^0000FFON^000000]"; + mes "Would you like to turn it OFF?"; } + else { + mes "The Event is currently: [^FF0000OFF^000000]"; + mes "Would you like to turn it ON?"; } + if(select("Yes:No")==2) close; + if ($@EventON) { + set $@EventON,0; set $@Timer,0; + setnpctimer 0; stopnpctimer; + announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue; + deletepset 1; + setnpcdisplay "Disguise Event",795; + close; } + set $@EventON,1; set $@Timer,1; setnpctimer 0; initnpctimer; + set $@ResetCounter,$@ResetCounter+1; + announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; + announce "The Event is being held in Prontera.",bc_all | bc_blue; + close; + case 2: + mes .@n$; + mes "Pick a setting to modify."; + next; + switch(select("Monster Display:Number of Rounds:Prize Settings")) { + case 1: + setarray .@r$[0],"Disguise as all monsters.","Disguise as MVPs only."; + mes .@n$; + mes "Choose a disguise rule."; + next; + set $Rule, select(implode(.@r$,":")); + mes .@n$; + mes "The Disguise Rule has been set:"; + mes " > ^0055FF"+.@r$[$Rule-1]+"^000000"; + close; + case 2: + mes .@n$; + mes "Input the number of rounds you want the event to last."; + mes "Current number: [^0000FF"+$Rounds+"^000000]"; + next; + input .@Rounds; + set $Rounds,.@Rounds; + mes .@n$; + mes "The number of rounds has been changed to "+$Rounds+"."; + close; + case 3: + mes .@n$; + mes "Input the Item ID of the prize given each round."; + mes "Current item: [^0000FF"+getitemname($Prize)+"^000000] (ID #"+$Prize+")"; + next; + input .@Prize; + mes .@n$; + if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null") { + mes "That item does not exist. Please try again."; + close; } + set $Prize,.@Prize; + mes "Input the amount to be given."; + next; + input .@amount; + mes .@n$; + if (.@amount<=0 || .@amount>=10000) { + mes "That amount is invalid. Using default ammount of 1."; + set .@amount,1; + next; + mes .@n$; } + set $PrizeAmt,.@amount; + mes "The Prize has been changed successfully."; + mes "Prize: "+$PrizeAmt+"x [^0000FF"+getitemname($Prize)+"^000000]"; + close; + } + } + } + if ($@EventON) end; + mes .@n$; + mes "Welcome."; + mes "How may I be of assistance?"; + if(select("Information:Nothing, just passing through.")==2) close; + next; + mes .@n$; + mes "This event is quite simple."; + mes "At the start of the event, I will"; + mes "disguise myself as a random"; + mes "monster. You have to shout"; + mes "that monter's name out loud."; + next; + mes "If you are correct, you will receive"; + mes "a prize. If not, keep trying!"; + mes "That's all that there is to this event."; + close; + +OnInit: + defpattern 1,"([^:]+):.\\s*OMFGBBQLEETSAUCEGMOCEANRULESHAI!!.*", "iCorrect"; + activatepset 1; + set $@EventON,0; + set $@Wait,0; + set $@Winner,0; + set $@ResetCounter,0; + set $Points,$Points; + if (!$Rounds) set $Rounds,10; + else set $Rounds,$Rounds; + if (!$Prize) set $Prize,512; + else set $Prize,$Prize; + if (!$PrizeAmt) set $PrizeAmt,1; + else set $PrizeAmt,$PrizeAmt; + if ($Rule) set $Rule,1; + else set $Rule,$Rule; + setarray $@MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, + 1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688, + 1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131, + 2156,2165; + setarray $@BlackList[0], 1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168,1171,1172,1173,1181,1210,1217,1218, + 1222,1223,1224,1225,1226,1227,1228,1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001, + 2002,2003,2004,2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035,2036, + 2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054, + 2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2075,2076,2077,2078,2079, + 2080,2081,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098, + 2099,2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116, + 2117,2118; + setarray $@BlackList2[0],2119,2120,2121,2123,2124,2125,1496; + end; +OnClock0000: +OnClock0200: +OnClock0400: +OnClock0600: +OnClock0800: +OnClock1000: +OnClock1200: +OnClock1400: +OnClock1600: +OnClock1800: +OnClock2000: +OnClock2200: + set $@ResetCounter,$@ResetCounter+1; + set $@EventON,1; + set $@Timer,1; + set $@Wait,1; + announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; + announce "The Event is being held in Prontera.",bc_all | bc_blue; + setnpctimer 0; + initnpctimer; + end; +OnTimer10000: + if ($@Timer || $@Change) end; + set $@Wait,0; + goto iDisguise; + end; +OnTimer30000: + if ($@Timer) end; + set $@Change,0; + setnpcdisplay "Disguise Event",795; + npctalk "You took too long to guess what I was. Please wait 10 seconds while I disguise again."; + specialeffect 725; + set $MonsterName$,""; + deletepset 1; + stopnpctimer; + setnpctimer 0; + initnpctimer; + end; +OnTimer60000: + if ($@Timer!=1) end; + announce "The Disguise Event will begin in 2 minutes.",bc_all | bc_blue; + announce "The Event is being held in Prontera.",bc_all | bc_blue; + end; +OnTimer120000: + if ($@Timer!=1) end; + announce "The Disguise Event will begin 1 minute.",bc_all | bc_blue; + announce "The Event is being held in Prontera.",bc_all | bc_blue; + end; +OnTimer180000: + if ($@Timer!=1) end; + announce "The Disguise Event has begun!",bc_all | bc_blue; + announce "The Event is being held in Prontera.",bc_all | bc_blue; + set $@Timer,0; stopnpctimer; + setnpctimer 0; initnpctimer; + goto iDisguise; + end; +iDisguise: + if ($Rule==1) { + set $@Winner,0; + set $@Monster,1000+rand(1,995); + for(set .@BL,0; .@BL=$Rounds) { + setnpcdisplay "Disguise Event",795; + set $@RoundCount,0; set $@Change,0; set $@EventON,0; + setnpctimer 0; stopnpctimer; + npctalk "Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; + end; } + setnpcdisplay "Disguise Event",795; + set $@Change,0; + setnpctimer 0; + end; +} \ No newline at end of file diff --git a/npc/custom/events/draculax.txt b/npc/custom/events/draculax.txt deleted file mode 100644 index 13eb8fc8f..000000000 --- a/npc/custom/events/draculax.txt +++ /dev/null @@ -1,129 +0,0 @@ -//===== rAthena Script ======================================= -//= Dracula X -//===== By: ================================================== -//= valaris (1.0) -//===== Current Version: ===================================== -//= 1.0a -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Custom Dracula X Event -//============================================================ - -mag_dun02,72,182,1 script Dracula's Coffin::Dracula_Init -1,{ - -OnInit: - set $dracula_event,0; - end; - -OnKilled: - MapAnnounce "mag_dun02","Dracula's curse has been lifted!",17; - set $dracula_event,0; - initnpctimer; - end; - -OnTimer7200000: - if($dracula_event==0) - stopnpctimer; - enablenpc "Dracula_Event"; - end; -} - -mag_dun02,72,182,1 script Dracula's Coffin::Dracula_Event 801,{ - - if($dracula_event==1) - close; - - set $dracula_event,1; - MapAnnounce "mag_dun02","Count Dracula : Who has awakened me from my slumber?",17; - npcskilleffect 21,10,66,175; - initnpctimer; - end; - -OnTimer500: - npcskilleffect 21,10,74,187; - end; - -OnTimer1000: - npcskilleffect 21,10,80,180; - end; - -OnTimer1500: - npcskilleffect 21,10,79,183; - end; - -OnTimer2000: - npcskilleffect 21,10,66,175; - end; - -OnTimer2500: - npcskilleffect 21,10,63,186; - end; - -OnTimer3000: - npcskilleffect 21,10,75,186; - end; - -OnTimer3500: - npcskilleffect 21,10,75,173; - end; - -OnTimer4000: - npcskilleffect 21,10,80,170; - end; - -OnTimer4500: - npcskilleffect 21,10,60,179; - end; - -OnTimer5000: - npcskilleffect 21,10,74,187; - end; - -OnTimer6000: - npcskilleffect 21,10,69,182; - end; - -OnTimer6500: - npcskilleffect 21,10,80,180; - end; - -OnTimer7000: - npcskilleffect 21,10,60,179; - end; - -OnTimer7500: - npcskilleffect 21,10,66,175; - end; - -OnTimer8000: - npcskilleffect 21,10,80,187; - end; - -OnTimer8500: - npcskilleffect 21,10,75,186; - end; - -OnTimer9000: - npcskilleffect 21,10,75,173; - end; - -OnTimer9500: - npcskilleffect 21,10,80,170; - end; - -OnTimer10000: - npcskilleffect 21,10,63,186; - end; - -OnTimer10500: - npcskilleffect 21,10,74,187; - end; - -OnTimer11000: - npcskilleffect 21,10,72,182; - monster "mag_dun02",72,182,"Count Dracula",1389,1,"Dracula_Init::OnKilled"; - stopnpctimer; - disablenpc "Dracula_Event"; - end; -} diff --git a/npc/custom/events/hyegun_event.txt b/npc/custom/events/hyegun_event.txt deleted file mode 100644 index 084df8eca..000000000 --- a/npc/custom/events/hyegun_event.txt +++ /dev/null @@ -1,77 +0,0 @@ -//===== rAthena Script ======================================= -//= HyeGun Event -//===== By: ================================================== -//= Synesthesia -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Event similar to iRO's Christmas event when searching for Antonios. -//===== Additional Comments: ================================= -//= Drink Jakada! -//============================================================ - -//HyeGun Mob spawning -anthell01,0,0,0,0 monster Hyegun 1512,3,180000,30000,0 -mag_dun01,0,0,0,0 monster Hyegun 1512,3,180000,30000,0 -alde_dun01,0,0,0,0 monster Hyegun 1512,3,180000,30000,0 -in_sphinx1,0,0,0,0 monster Hyegun 1512,3,180000,30000,0 - -//Munak Quest -pay_dun01,53,269,6 script Munak 1026,{ - if(event_hyegun==3) goto Lfinished; - mes "[^FF0000Munak^000000]"; - mes "Hello, kinda strange talking to a Munak huh?"; - mes "I'm a friendly Munak that wants to tell you something."; - menu "Listen to her story",Lok,"Leave",Lno; - -Lok: - mes "[^FF0000Munak^000000]"; - mes "Well see our father ^666600HyeGun^000000 has been terrible to us Munaks."; - mes "We would like you to get revenge for what he has done to us."; - next; - mes "When you find him, kill him."; - mes "He will drop an item that you will have to bring to me to prove his death."; - mes "Bring me ^FF00003 ^008800Yggdrasil Dew^000000 and I'll give you a reward."; - mes "Remember, you may only do this quest ^FF00003 times."; - menu "Info about HyeGun",Lhyeinfo,"Give her the items",Litem,"Leave",Lno; - -Lhyeinfo: - mes "[^FF0000Munak^000000]"; - mes "- HyeGun looks like us but he's a tanish color type with long hair."; - mes "- He's been last seen in the first level of the 4 most popular dungeons."; - mes "He doesn't hang out here because there's so many of us."; - mes "Anything else?"; - menu "Info about HyeGun",Lhyeinfo,"Give her the items",Litem,"Leave",Lno; - -Litem: - mes "[^FF0000Munak^000000]"; - mes "Ahh so you've completed the task so soon?"; - mes "Good job"; - mes "Let's see if you've got the right stuff."; - next; - if (countitem(7141) < 3)goto Lnoitem; - mes "Good job, here's your reward."; - next; - delitem 7141,3; - getitem 617,1; - set event_hyegun,event_hyegun+1; - close; - -Lfinished: - mes "[^FF0000Munak^000000]"; - mes "I'm sorry, you've already completed my task 3 times."; - close; - -Lno: - mes "[^FF0000Munak^000000]"; - mes "Okay then, when you feel brave enough, come on back."; - close; - -Lnoitem: - mes "[^FF0000Munak^000000]"; - mes "Hey, you don't have the Yggdrasil Dew."; - mes "Come back when you've gotten 3 of them."; - close; -} diff --git a/npc/custom/events/mushroom_event.txt b/npc/custom/events/mushroom_event.txt new file mode 100644 index 000000000..bbb8e91ab --- /dev/null +++ b/npc/custom/events/mushroom_event.txt @@ -0,0 +1,62 @@ +//===== rAthena Script ======================================= +//= Find the Mushroom +//===== By: ================================================== +//= Mysterious +//===== Current Version: ===================================== +//= 3.6a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Find the Mushroom - random amount of Mushrooms spawns in random maps. +//= Players need to find these mushrooms and kill them to gain prizes! +//===== Additional Comments: ================================= +//= 3.0 Fully Functional with Rewritten script. [Mysterious] +//= 3.6a Slightly edited. [Euphy] +//============================================================ + +prontera,142,228,6 script Find the Mushroom 1084,{ + mes "[ Find The Mushroom ]"; + if (!.Status) + mes "There is no event at the moment!"; + else { + mes "There are "+.Spawn+" Mushrooms left in "+.Map$+"!"; + mes "Find and kill the mushrooms to gain "+getitemname(.Prize)+"!"; + } + if (.Status || getgmlevel() < .GM) close; + mes "Start the event?"; + next; + if(select("- No:- Yes") == 1) close; + donpcevent strnpcinfo(0)+"::OnMinute10"; + mes "[ Find The Mushroom ]"; + mes "Event started!"; + close; + +OnInit: + set .Prize,512; // Reward item ID + set .Amount,10; // Reward item amount + set .GM,60; // GM level required to access NPC + setarray .Maps$[0],"izlude","geffen","morocc","prontera"; // Possible maps + end; + +OnMinute10: // Start time (every hour) + if (.Status) end; + set .Status,1; + set .Spawn,rand(1,10); // How many Mushrooms should spawn? + set .Map$,.Maps$[rand(getarraysize(.Maps$))]; + killmonster .Map$,"All"; + monster .Map$,0,0,"Please don't kill me!",1084,.Spawn,strnpcinfo(0)+"::OnMobKilled"; + announce "Find the Mushroom : Total of "+.Spawn+" Mushrooms have been spawned in "+.Map$+"!",0; + sleep 2500; + announce "Find the Mushroom : Every Mushroom you kill will give you "+getitemname(.Prize)+"!",0; + end; + +OnMobKilled: + set .Spawn, .Spawn - 1; + getitem .Prize, .Amount; + if (.Spawn) announce "[ "+strcharinfo(0)+" ] has killed a Mushroom. There are now "+.Spawn+" Mushroom(s) left.",bc_map; + else { + announce "The Find the Mushroom Event has ended. All the Mushrooms have been killed.",0; + set .Status,0; + } + end; +} \ No newline at end of file diff --git a/npc/custom/quest_warper.txt b/npc/custom/quest_warper.txt deleted file mode 100644 index 85919fa0f..000000000 --- a/npc/custom/quest_warper.txt +++ /dev/null @@ -1,2137 +0,0 @@ -//===== rAthena Script ============================================ -//= Quest Warper Script -//===== By: ======================================================= -//= DZeroX, Darkchild, Neouni -//===== Current Version: ========================================== -//= 2.2 -//===== Compatible With: ========================================== -//= rAthena SVN -//===== Description: ============================================== -//= Warper that works only after locations are unlocked -//===== Additional Comments: ====================================== -//= 1.0 - NPCs created -//= 1.1 - Add Dungeons by sturm -//= 1.2 - Add All char in account unlocked by ace_killer -//= 1.3 - Add new 7 towns and 7 dungeons by escoteiro -// - Correct bug jawaii town by escoteiro -// - Remove some excessive warpras by escoteiro -//= 1.4 - Rewrite of the Warpa system [Neouni] -// - Corrected some bugs caused by autoconverting the old script -//= 1.4a - Rewrite of menu to be custom for each player [Neouni] -// - Dungeon listing rewrite -// - Town listing rewrite -// - GameMaster can Customise Main menu -//= 1.4b - Pricing round [Neouni] -// - GM menu added for pricing -// - Town Warp pricing tags added -// - Dungeon Warp pricing tags added -//= 1.5 - storage functions pricing [Neouni] -// - storage pricing added -// - kafra points setting added -// - kafra storage code security added -// - Healing scripts pricing added -// - Heal Part script added -//= 1.6 - Dungeon warp [Neouni] (beta only) -// - added option to add a extra fee for going down deeper into dungeon -// partly by rebuilding the dungeon warping into variable menu's -//= 1.6a - alot of fixes for beta release [Neouni] (public release) -// - fixed syntax problems -// - fixed missing pyramid gats in @DGat$ array -// - removed the culver level 5 that didn't exist -// and caused quite alot of problems (i didn't check while converting) -//-1.7 - Readability of Dungeon menu building increased [Neouni] -// - Thanatos Tower & Louyang Dungeon added -//-1.8 - changed around unlock variables [Neouni] -// - Moved warp variables to mark what you have unlocked to an binary array in login based permanent variable -// (warp variables are saved in login database, so all charservers have these unlocked) -// - Town Warp unlock array max 21/(unknown max) items used instead of max account #variables 32 ! -// - Dungeon Warp unlock array 28/(unknown max) items used instead of max account #variables 32 ! -// - (max login ##variables = 16, i used 3) -// - old variables are cleared on next save -// - Extra Variable clear added for every character, just in case (request by Terces) -//-1.8a - Show ammount of users on map [Neouni] -// - Default = off, enable in GM menu -// - Requested by escoteiro -//-1.8b - Small typo fixed in stampcard script [Neouni] -// - Reported by escoteiro -//-1.9 - Making it more edit friendly [Neouni] -// - Made Dungeon warp arrays more readable & editable (QWS_Darray) -// - Made town warp arrays more readable & editable (QWS_Tarray) -//-2.0 - Special Warp menu added [Neouni] -// - when all towns and dungeons are collected a new option on the main menu will show -// - it will only show when you setup the mapname of the warp ! -// - requested by escoteiro -// - several bugs fixed -//-2.0a - Dungeon Level Limit & Split dungeon fees -// - Limits dungeon based on Depth, access special setup menu thru GM-Menu -// - Dungeon fees split up based on Basic , Advanced & Overseas -// - Old Dungeon fee system removed, all dungeon fees now set to 0 -//-2.0b -// - Special warpname menu option name bug fixed -//-2.1 Updated names to fall within retrictions. [L0ne_W0lf] -//-2.2 #kafra_code is now stored as is. [brianluau] -//================================================================= - -//========================Function=&=Script======================== - - -function script Q_Warpra { -// Quick hack for backwards compatibility pre 1.8 -if (##QWS_UP < 18) callfunc "QWS_BackComp"; -// Extra clear variables because marker is saved on all char servers and variables can be on multiple servers -if (QWS_ExtraVARClear < 18) callfunc "Extra_Variable_Clear"; - - mes "[Warpra]"; - mes "Hello,"; - mes "I can warp you to any town or dungeon, but you need to unlock them first."; - mes "To unlock them, you have to visit us."; - mes "What do you need?"; - - if(getarg(0) == 0) callfunc "QWS_MMarray",0; - if(getarg(0) == 1) callfunc "QWS_MMarray",1; - - set @MMenu,select(@Mmenulist$[0],@Mmenulist$[1],@Mmenulist$[2],@Mmenulist$[3],@Mmenulist$[4],@Mmenulist$[5],@Mmenulist$[6],@Mmenulist$[7],@Mmenulist$[8],@Mmenulist$[9],@Mmenulist$[10],@Mmenulist$[11]); - - switch(@Mmenuref[@MMenu-1]+1){ - case 1: - goto GM_Menu; - case 2: - warp $QW_SP_WarpMap$, $QW_SP_WarpX, $QW_SP_WarpY; - close2; - debugmes "Please check your special warp menu settings on the Warpra"; - end; - case 3: - goto L_town; - case 4: - goto L_dungeon; - case 5: - goto L_FewWarps; - case 6: - goto L_NoUnlock; - case 7: - goto L_heal_Full; - case 8: - goto L_heal_Part; - case 9: - goto L_Storage; - case 10: - goto L_GStorage; - case 11: - goto L_end; - default: - goto L_end; -} - -//=====================GM-Menu=Functions=========================== - -GM_Menu: -next; -//----------------Town-Warp - if ($QW_TW_OFF == 0) mes "Town warping = ^00FF00 On ^000000"; - if ($QW_TW_OFF == 1) mes "Town warping = ^FF0000 Off ^000000"; -//----------------Dungeon-Warp - if ($QW_DW_OFF == 0) mes "Dungeon warping = ^00FF00 On ^000000"; - if ($QW_DW_OFF == 1) mes "Dungeon warping = ^FF0000 Off ^000000"; -//----------------Dungeon-Depth-Limit - if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; - if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; - mes "If on Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; -//----------------ShowMapUsers - if ($QW_MapUserShow == 1) mes "Show Map Users = ^00FF00 On ^000000"; - if ($QW_MapUserShow == 0) mes "Show Map Users = ^FF0000 Off ^000000"; -//----------------Healfull - if ($QW_HF == 1) mes "Healing full = ^00FF00 On ^000000"; -//----------------Healpart - if ($QW_HP == 1) mes "Healing partly = ^00FF00 On ^000000"; - if (($QW_HF == 0)&&($QW_HP == 0)) mes "Healing = ^FF0000 Off ^000000"; -//----------------Storage - if ($QW_Stor == 1) mes "Storage = ^00FF00 On ^000000"; - if ($QW_Stor == 0) mes "Storage = ^FF0000 Off ^000000"; -//----------------GuildStorage - if ($QW_GStor == 1) mes "Guild Storage = ^00FF00 On ^000000"; - if ($QW_GStor == 0) mes "Guild Storage = ^FF0000 Off ^000000"; -//----------------KafraPoints - if ($QW_KPoint == 1) mes "Kafra points collect = ^00FF00 On ^000000"; - if ($QW_KPoint == 0) mes "Kafra points collect = ^FF0000 Off ^000000"; -//----------------GMmenu - switch(select("Town Warping","Dungeon Warping","Dungeon Level Limit","Show Map Users","Healing full","Healing partly","Storage","Guild Storage","Kafra points collect","Set Prices","Special Warp","Exit")) { - -// Using callsub and a small check to not make 1 part of the script set it on and the other turning it off again - -case 1: - if ($QW_TW_OFF == 0) { - set $QW_TW_OFF,1; - goto GM_Menu; - } else - set $QW_TW_OFF,0; - goto GM_Menu; -case 2: - if ($QW_DW_OFF == 0) { - set $QW_DW_OFF,1; - goto GM_Menu; - } else - set $QW_DW_OFF,0; - goto GM_Menu; -case 3: - goto DungeonLevelLimit; -case 4: - if ($QW_MapUserShow == 0) { - set $QW_MapUserShow,1; - goto GM_Menu; - } else - set $QW_MapUserShow,0; - goto GM_Menu; -case 5: - if ($QW_HF == 0) { - set $QW_HF,1; - set $QW_HP,0; - goto GM_Menu; - } else - set $QW_HF,0; - goto GM_Menu; -case 6: - if ($QW_HP == 0) { - set $QW_HP,1; - set $QW_HF,0; - goto GM_Menu; - } else - set $QW_HP,0; - goto GM_Menu; -case 7: - if ($QW_Stor == 0) { - set $QW_Stor,1; - goto GM_Menu; - } else - set $QW_Stor,0; - goto GM_Menu; -case 8: - if ($QW_GStor == 0) { - set $QW_GStor,1; - goto GM_Menu; - } else - set $QW_GStor,0; - goto GM_Menu; -case 9: - if ($QW_KPoint == 0) { - set $QW_KPoint,1; - goto GM_Menu; - } else - set $QW_KPoint,0; - goto GM_Menu; -case 10: - goto Setprice; -case 11: - goto SpecialWarpMenu; -default: - close; - end; -} - - -//======================GM-Menu=Pricing============================ - -Setprice: - if ($QW_DW_FEE != 0) set $QW_DW_FEE,0; - next; - mes "Scroll thru the list to see all the options"; -//----------------Warp-Basic-Price - if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; - if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; -//----------------Warp-Advanced-Price - if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; - if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; -//----------------Warp-Oversea-Price - if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; - if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; -//----------------Basic-Dungeon-Level-Warp-Fee - if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; - if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Advanced-Dungeon-Level-Warp-Fee - if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; - if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Overseas-Dungeon-Level-Warp-Fee - if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; - if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Heal-Full - if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; - if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; -//----------------Heal-Part - if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; - if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; - if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; - if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; -//----------------Storage - if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; - if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; - if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; -//----------------Guild-Storage - if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; - if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; - - switch(select("Basic - Warps","Advanced - Warps","Overseas - Warps","Basic Dungeon warp fee","Advanced Dungeon warp fee","Overseas Dungeon warp fee","Full Healing","Part Healing","Storage","Guild Storage","Back","Exit")) { - -case 1: - next; - if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; - if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; - mes "Basic - Warps are starter towns and related dungeons"; - input $QW_BW_PRICE; - goto Setprice; - -case 2: - next; - if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; - if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; - mes "Advanced - Warps are towns and dungeons on the same island but not close to any starter town"; - input $QW_AW_PRICE; - goto Setprice; - -case 3: - next; - if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; - if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; - mes "Overseas - Warps are towns and dungeons overseas reachable by boat from alberta"; - input $QW_OW_PRICE; - goto Setprice; - -case 4: - next; - if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; - if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Basic - Warps are starter town related dungeons"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_BW_FEE; - goto Setprice; - -case 5: - next; - if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; - if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Advanced - Warps are dungeons not close to any starter town"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_AW_FEE; - goto Setprice; - -case 6: - next; - if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; - if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Overseas - Warps are dungeons related to towns overseas reachable by boat from alberta"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_OW_FEE; - goto Setprice; - -case 7: - next; - if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; - if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; - mes "Instant full healing 1 price"; - input $QW_HF_PRICE; - goto Setprice; - -case 8: - next; - if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; - if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; - if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; - if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; - mes "Healing price per 1 HP"; - mes "Healing price per 1 SP"; - mes "2 inputs, first HP then SP"; - input $QW_HP_H_PRICE; - input $QW_HP_S_PRICE; - goto Setprice; - -case 9: - next; - if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; - if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; - if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; - mes "Storage cost, if set to 60 Kafra pricing will be handled"; - input $QW_S_PRICE; - goto Setprice; - -case 10: - next; - if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; - if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; - mes "Guild Storage, free on Guild Kafras"; - input $QW_GS_PRICE; - goto Setprice; -case 11: - goto GM_Menu; -default: - close; - end; -} - -//======================Special=Warp=Menu========================== - -SpecialWarpMenu: - if ($QW_SP_Warpname$ == "") set $QW_SP_Warpname$,"Special Warp"; - next; - mes "Scroll down to see all the information"; - mes "The Special warp menu option will show in the main menu when all towns & dungeons are unlocked"; - mes "And when the map for special warping has been set"; - mes "menu option name set to ^0000FF"+$QW_SP_Warpname$+"^000000"; - if ($QW_SP_WarpMap$ == "") mes "map is currently ^FF0000not^000000 set, and Special warp menu is off"; - if ($QW_SP_WarpMap$ != "") mes "map is currently set to ^0000FF"+$QW_SP_WarpMap$+"^000000 and Special Warp menu is on"; - mes "coords are set to ^0000FF"+$QW_SP_WarpX+","+$QW_SP_WarpY+"^000000"; - switch(select("Set Special Warp name to show in menu", "Set WarpMap","Set Coords","Go Back to GM_Menu","Exit")){ - -case 1: - next; - mes "set the name to show in the menu as option"; - input $QW_SP_Warpname$; - goto SpecialWarpMenu; -case 2: - next; - mes "set the map in the ^0000FFmapname^000000 format"; - mes "when this warpmap is set the option for players will show once they meet the requirments"; - mes "to disable Special Warp Menu option clear this !"; - input $QW_SP_WarpMap$; - goto SpecialWarpMenu; -case 3: - next; - mes "First input = Xcoord"; - mes "Second input = Ycoord"; - input $QW_SP_WarpX; - input $QW_SP_WarpY; - goto SpecialWarpMenu; -case 4: - goto GM_Menu; -default: - close; - end; -} - -//======================Dungeon=Level=Limit======================== -DungeonLevelLimit: - next; - if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; - if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; - mes "If^00FF00 On ^000000Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; - - switch(select("Toggle Dungeon Depth Limit", "Set Dungeon Depth Limit","Go Back to GM_Menu","Exit")){ - -case 1: - if ($QW_DL == 0) { - set $QW_DL,1; - goto DungeonLevelLimit; - } else - set $QW_DL,0; - goto DungeonLevelLimit; -case 2: - next; - mes "set limit of Dungeon Depth 0 = entrance"; - mes "Depth 1 is a map connected to 0 and so on"; - mes "Shortest Route to map counts as depth"; - input $QW_DDL; - goto DungeonLevelLimit; -case 3: - goto GM_Menu; -default: - close; - end; -} - -//===========================Towns================================= - -L_town: - callfunc "QWS_Tarray"; - -// Expected maximum is set to 25 items, if you add more options add more ",@Tmenulist$[xx]" - - set @TWMenu,select(@Tmenulist$[0],@Tmenulist$[1],@Tmenulist$[2],@Tmenulist$[3],@Tmenulist$[4],@Tmenulist$[5],@Tmenulist$[6],@Tmenulist$[7],@Tmenulist$[8],@Tmenulist$[9],@Tmenulist$[10],@Tmenulist$[11],@Tmenulist$[12],@Tmenulist$[13],@Tmenulist$[14],@Tmenulist$[15],@Tmenulist$[16],@Tmenulist$[17],@Tmenulist$[18],@Tmenulist$[19],@Tmenulist$[20],@Tmenulist$[21],@Tmenulist$[22],@Tmenulist$[23],@Tmenulist$[24]); - - if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex - - if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0; - - set Zeny, Zeny-@pTprice[@Tmenuref[@TWMenu-1]]; - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@pTprice[@Tmenuref[@TWMenu-1]]/16); - warp @pTmap$[@Tmenuref[@TWMenu-1]],@pTXcoords[@Tmenuref[@TWMenu-1]],@pTYcoords[@Tmenuref[@TWMenu-1]]; - close2; // this part safegaurds against errors/typos - set Zeny, Zeny+@pTprice[@Tmenuref[@TWMenu-1]]; - end; - -//=========================Dungeons================================ - -L_dungeon: - callfunc "QWS_Darray"; - -// Expected maximum is set to 35 items, if you add more options add more ",@Dmenulist$[xx]" - - set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30],@Dmenulist$[31],@Dmenulist$[32],@Dmenulist$[33],@Dmenulist$[34]); - - if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex - set @DwarpMenu, (@Dmenuref[@DWMenu-1]); - callfunc "QWS_DLarray"; - - next; - mes "[Warpra]"; - mes "Please select where you want to go"; - -// Expected maximum is set to 18 items, if you have dungeons with more levels add more ",@DWLmenulist$[xx]" - set @DWLMenu,select(@DWLmenulist$[0], @DWLmenulist$[1], @DWLmenulist$[2], @DWLmenulist$[3], @DWLmenulist$[4], @DWLmenulist$[5], @DWLmenulist$[6], @DWLmenulist$[7], @DWLmenulist$[8], @DWLmenulist$[9], @DWLmenulist$[10], @DWLmenulist$[11], @DWLmenulist$[12], @DWLmenulist$[13], @DWLmenulist$[14], @DWLmenulist$[15], @DWLmenulist$[16], @DWLmenulist$[17]); - - if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex - - set @Darrayref, @DWLmenuref[@DWLMenu-1]; - set @warpprice, @pDprice[@Dmenuref[@DWMenu-1]]+(getd(@pDfee$[@Dmenuref[@DWMenu-1]])*(@DDepth[@Darrayref])); - - if(Zeny<@warpprice) callsub L_Short_on_zeny,1; - - set Zeny, Zeny-(@warpprice); - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@warpprice/16); - warp @DGat$[@Darrayref],@DXcoords[@Darrayref],@DYcoords[@Darrayref]; - close2; // this part safegaurds against errors/typos - set Zeny, Zeny+@pTprice[@Tmenuref[@DWMenu-1]]; - end; - -//=============================Healing============================= - -L_heal_Full: - set @healfee, $QW_HF_PRICE; - if(Zeny<@healfee) callsub L_Short_on_zeny,4; - set Zeny, Zeny-@healfee; - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@healfee/500); - next; - mes "[Warpra]"; - mes "Close this window and I will Heal you."; - close2; - percentheal 100,100; - end; - -L_heal_Part: - set @healchoice,select("Full heal","Health Points only","Skill Points only","Exit"); - if (@healchoice == 1) callsub PHeal,1,1; - if (@healchoice == 2) callsub PHeal,1,0; - if (@healchoice == 3) callsub PHeal,0,1; - goto L_end; - -PHeal: - next; - set @Hp, MaxHp-Hp; - set @Sp, MaxSp-Sp; - set @HpPrice, @hp*$QW_HP_H_PRICE; - set @SpPrice, @sp*$QW_HP_S_PRICE; - mes "[Warpra]"; - if(getarg(0) == 1) mes ""+@HpPrice+" Zeny for "+@Hp+" health points"; - if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points"; - set @total, @HpPrice+@SpPrice; - mes "for a total of "+@total+" zeny"; - if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part; - - if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE; - if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE; - set @healfee, @HpPrice+@SpPrice; - if (getarg(0) == 1)&&(getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_Short_Both; - if (getarg(0) == 1)&&(Zeny<@healfee) goto Zeny_short_HP; - if (getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_short_SP; - set Zeny, Zeny-@healfee; - if (getarg(0) == 1)&&(getarg(1) == 1) percentheal 100,100; - if (getarg(0) == 1) percentheal 100,0; - if (getarg(1) == 1) percentheal 0,100; - close; - end; - -Zeny_Short_Both: - mes "[Warpra]"; - mes "choose another option, you can afford both."; - mes "I can heal as much as you can afford too."; - if (select("OK","Exit") == 2) goto L_end; - goto PHeal; - -Zeny_short_HP: - mes "[Warpra]"; - mes "do you want me to partly heal your HP ?"; - if (select("Yes","No") == 2) goto L_end; - set @Hp, Zeny/$QW_HP_H_PRICE; - set @HpPrice, @Hp*$QW_HP_H_PRICE; - if (@Hp == 1) mes "your not worth the effort"; - if (@Hp == 1) goto L_end; - set Zeny, Zeny-@HpPrice; - heal @Hp,0; - close; - end; - - -Zeny_short_SP: - mes "[Warpra]"; - mes "do you want me to partly heal your SP ?"; - if (select("Yes","No") == 2) goto L_end; - set @Sp, Zeny/$QW_HP_S_PRICE; - set @SpPrice, @Sp*$QW_HP_S_PRICE; - if (@Sp == 1) mes "your not worth the effort"; - if (@Sp == 1) goto L_end; - set Zeny, Zeny-@SpPrice; - heal 0,@Sp; - close; - end; - - -//=============================Storage============================= - -L_Storage: - next; - if(basicskillcheck() > 0 && getskilllv("NV_BASIC") < 6) goto L_StorageJBlow; - set @fee, $QW_S_PRICE; - if ($QW_S_PRICE == 60)&&(BaseJob == Job_Novice) set @fee, 30; - if ($QW_S_PRICE == 60)&&(BaseJob != Job_Novice) set @fee, 60; - if(Zeny<@fee) callsub L_Short_on_zeny,2; - set Zeny, Zeny-@fee; - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@fee/5); - - mes "[Warpra]"; - mes "Close this window and i will open your storage."; - - callsub F_CheckKafCode; //check your storage password thru kafra coding, if set - - close2; - openstorage; - end; - -F_CheckKafCode: - if(#kafra_code==0) return; - mes "Enter your storage password:"; - set @code_,0; - input @code_; - if(@code_ != #kafra_code) { - dispbottom "Wrong storage password."; - close; - } - set @kafcode_try,0; - set @code_,0; - return; - -L_StorageJBlow: - mes "[Warpra]"; - mes "I am sorry but you have to be at least Novice level 6 if you want to use the storage."; - return; - -L_GStorage: - if(@GID==0) goto L_NoGuild; - if(Zeny<$QW_GS_PRICE) callsub L_Short_on_zeny,3; - set Zeny, Zeny-$QW_GS_PRICE; - if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + ($QW_GS_PRICE/5); - next; - mes "[Warpra]"; - mes "Close this window and i will open the ^5533FF" + GetGuildName(@GID) + "^000000 storage."; - close2; - guildopenstorage; - end; - -L_NoGuild: - next; - mes "[Warpra]"; - mes "You are not a part of a guild I can't help you."; - close; - end; - -L_end: - close; - end; - -//============================Few=Warp============================= -L_FewWarps: - next; - mes "[Warpra ]"; - mes "You need to unlock locations before they come available to you."; - mes "To unlock a location talk to my colleagues all over the world."; - mes "Each account got it's own stamp card."; - mes "Want me to check what stamps you have collected so far ?."; - if (select("Yes","No")==1) callsub stampcard; - close; - end; - - -//============================No=Unlock============================ - -L_NoUnlock: - next; - mes "[Warpra ]"; - mes "I don't unlock this location, my assistant deeper in the dungeon will unlock this place."; - close; - end; - -//=========================Short=On=Zeny=========================== -L_Short_on_zeny: - next; - if (getarg(0) == 0) mes "you don't seem to have "+@pTprice[@Tmenuref[@TWMenu-1]]+" zeny, to pay for the warp fee to "+@pTmenuitems$[@Tmenuref[@TWMenu-1]]+""; - if (getarg(0) == 1) mes "you don't seem to have "+@warpprice+" zeny, to pay for the warp fee to "+@DLevelName$[@DWLmenuref[@DWLMenu-1]]+" at "+@pDmenuitems$[@Dmenuref[@DWMenu-1]]+""; - if (getarg(0) == 2) mes "you don't seem to have "+@fee+" zeny, to pay for the storage fee"; - if (getarg(0) == 3) mes "you don't seem to have "+$QW_GS_PRICE+" zeny, to pay for the guild storage fee"; - if (getarg(0) == 4) mes "you don't seem to have "+@healfee+" zeny, to pay for your healing"; - close; - end; - -//===========================Stamp=Card============================ -stampcard: -// Counting of the ammount of places you have unlocked - next; - mes "Let me check what Towns you have"; - - callfunc "QWS_TownStamps"; - - mes "you collected^00FF00 "+@Tstamp+" of "+@MaxTstamp+" ^000000Towns."; - if (@Tstamp == 15) mes "They say there is an island you can only get to when married"; - if (@Tstamp == 15) emotion 18; - next; - - mes "Let me check what dungeons you have"; - - callfunc "QWS_DungeonStamps"; - - mes "you collected^00FF00 "+@Dstamp+" of "+@MaxDstamp+" ^000000Dungeons"; - mes "To unlock a dungeon, search for my colleague."; - mes "You can usually find them near the middle or end of the dungeon"; - return; -} - -function script QWS_TownStamps { - set @Tstamp,0; - set @MaxTstamp,21; //maximum number of towns - set @binvalue,1; - set @Tstamploop,0; - do { - if ((@binvalue & ##QWS_T_Unlock) == @binvalue) set @Tstamp,@Tstamp+1; - - set @binvalue, @binvalue *2; - set @Tstamploop, @Tstamploop + 1; - -}while (@Tstamploop < @MaxTstamp); -return; -} - -function script QWS_DungeonStamps { - set @Dstamp,0; - set @MaxDstamp,29; //maximum number of dungeons - set @binvalue,1; - set @Dstamploop,0; - do { - if ((@binvalue & ##QWS_D_Unlock) == @binvalue) set @Dstamp,@Dstamp+1; - - set @binvalue, @binvalue *2; - set @Dstamploop, @Dstamploop + 1; - -}while (@Dstamploop < @MaxDstamp); -return; -} - -//======================Main=Menu=Array============================ - -function script QWS_MMarray { - -// Currently 9 items - - setarray @pMmenuitems$[0], "GameMaster Menu", $QW_SP_Warpname$, "Warp to Towns", "Warp to Dungeons", "Why so few Warps ?", "Why don't you Unlock this location ?", "Heal", "Heal", "Storage", "Guild Storage", "Cancel"; - set @Mi,0; // That's our loop counter. - set @Mj,0; // That's the menu lines counter. -//----------------GameMaster-Menu - if (getgmlevel()>= 80) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if (getgmlevel()>= 80) set @Mmenuref[@Mj],@Mi; - if (getgmlevel()>= 80) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Special-Warp - callfunc "QWS_TownStamps"; - callfunc "QWS_DungeonStamps"; - if (@Tstamp == @MaxTstamp)&&(@Dstamp == @MaxDstamp)&&($QW_SP_WarpMap$ != "") { - set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - set @Mmenuref[@Mj],@Mi; - set @Mj,@Mj+1; - } - set @Mi,@Mi+1; -//----------------Town-Warp - if ($QW_TW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_TW_OFF == 0) set @Mmenuref[@Mj],@Mi; - if ($QW_TW_OFF == 0) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Dungeon-Warp - if ($QW_DW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_DW_OFF == 0) set @Mmenuref[@Mj],@Mi; - if ($QW_DW_OFF == 0) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Why-So-Few-Warps - set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - set @Mmenuref[@Mj],@Mi; - set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------No-Unlock - if (getarg(0) == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if (getarg(0) == 1) set @Mmenuref[@Mj],@Mi; - if (getarg(0) == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Healfull - if ($QW_HF == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_HF == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_HF == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Healpart - if ($QW_HP == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_HP == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_HP == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Storage - if ($QW_Stor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_Stor == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_Stor == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------GuildStorage - if ($QW_GStor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_GStor == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_GStor == 1) set @Mj,@Mj+1; - set @Mi,@Mi+1; -//----------------Cancel - set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - set @Mmenuref[@Mj],@Mi; - return; - } - - - -//======================Town=Menu=Array============================ - -//----------------Prontera // I do this to find back sections quickly altho almost the same name is a line below it now -// setarray @pTmenuitems$[@Ti], "Prontera"; // Name of Town shown in Town select Menu -// setarray @pTprice[@Ti], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) -// -// setarray @pTmap$[@Ti], "prontera"; // mapfilename of town -// setarray @pTXcoords[@Ti], 156; // X warp coords -// setarray @pTYcoords[@Ti], 187; // Y warp coords -// -// QWS_Make_Town_Menu XXX; -// -// the full wap commands send out by this script for these example would be -//warp example_01 123 123 -// -// use the same XXX number as you used when making your own town warpra -// Read below how -// -// example: -// -//syntax: -//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ -// -// Full example using fake map & coords -// -//example_01,213,213,4 script Warpra 112,{ -// callfunc "QWS_Town_Warpra",XXX,"A FAKE TOWN FOR EXAMPLE"; -// close; -// } -// use a free number for XXX, last used is 20, for Yuno - -function script QWS_Tarray { - function QWS_Make_Town_Menu; - - set @Ti,0; // That's our loop counter. - set @Tj,0; // That's the menu lines counter. -//----------------Prontera - setarray @pTmenuitems$[@Ti], "Prontera"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "prontera"; - setarray @pTXcoords[@Ti], 156; - setarray @pTYcoords[@Ti], 187; - - QWS_Make_Town_Menu 0; -//----------------Alberta - setarray @pTmenuitems$[@Ti], "Alberta"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "alberta"; - setarray @pTXcoords[@Ti], 27; - setarray @pTYcoords[@Ti], 236; - - QWS_Make_Town_Menu 1; -//----------------Aldebaran - setarray @pTmenuitems$[@Ti], "Aldebaran"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "aldebaran"; - setarray @pTXcoords[@Ti], 145; - setarray @pTYcoords[@Ti], 120; - - QWS_Make_Town_Menu 2; -//----------------Amatsu: - setarray @pTmenuitems$[@Ti], "Amatsu"; - setarray @pTprice[@Ti], $QW_OW_PRICE; - - setarray @pTmap$[@Ti], "amatsu"; - setarray @pTXcoords[@Ti], 197; - setarray @pTYcoords[@Ti], 86; - - QWS_Make_Town_Menu 3; -//----------------Ayothaya: - setarray @pTmenuitems$[@Ti], "Ayothaya"; - setarray @pTprice[@Ti], $QW_OW_PRICE; - - setarray @pTmap$[@Ti], "ayothaya"; - setarray @pTXcoords[@Ti], 150; - setarray @pTYcoords[@Ti], 57; - - QWS_Make_Town_Menu 4; -//----------------Comodo: - setarray @pTmenuitems$[@Ti], "Comodo"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "comodo"; - setarray @pTXcoords[@Ti], 188; - setarray @pTYcoords[@Ti], 161; - - QWS_Make_Town_Menu 5; -//----------------Einbech: - setarray @pTmenuitems$[@Ti], "Einbech"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "einbech"; - setarray @pTXcoords[@Ti], 172; - setarray @pTYcoords[@Ti], 126; - - QWS_Make_Town_Menu 6; -//----------------Einbroch: - setarray @pTmenuitems$[@Ti], "Einbroch"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "einbroch"; - setarray @pTXcoords[@Ti], 230; - setarray @pTYcoords[@Ti], 191; - - QWS_Make_Town_Menu 7; -//----------------Geffen: - setarray @pTmenuitems$[@Ti], "Geffen"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "geffen"; - setarray @pTXcoords[@Ti], 119; - setarray @pTYcoords[@Ti], 66; - - QWS_Make_Town_Menu 8; -//----------------Gonryun: - setarray @pTmenuitems$[@Ti], "Gonryun"; - setarray @pTprice[@Ti], $QW_OW_PRICE; - - setarray @pTmap$[@Ti], "gonryun"; - setarray @pTXcoords[@Ti], 150; - setarray @pTYcoords[@Ti], 130; - - QWS_Make_Town_Menu 9; -//----------------Hugel: - setarray @pTmenuitems$[@Ti], "Hugel"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "hugel"; - setarray @pTXcoords[@Ti], 95; - setarray @pTYcoords[@Ti], 121; - - QWS_Make_Town_Menu 10; -//----------------Izlude: - setarray @pTmenuitems$[@Ti], "Izlude"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "izlude"; - setarray @pTXcoords[@Ti], 128; - setarray @pTYcoords[@Ti], 111; - - QWS_Make_Town_Menu 11; -//----------------Jawaii: - setarray @pTmenuitems$[@Ti], "Jawaii"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "jawaii"; - setarray @pTXcoords[@Ti], 243; - setarray @pTYcoords[@Ti], 115; - - QWS_Make_Town_Menu 12; -//----------------Lighthalzen: - setarray @pTmenuitems$[@Ti], "Lighthalzen"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "lighthalzen"; - setarray @pTXcoords[@Ti], 158; - setarray @pTYcoords[@Ti], 110; - - QWS_Make_Town_Menu 13; -//----------------Louyang: - setarray @pTmenuitems$[@Ti], "Louyang"; - setarray @pTprice[@Ti], $QW_OW_PRICE; - - setarray @pTmap$[@Ti], "louyang"; - setarray @pTXcoords[@Ti], 210; - setarray @pTYcoords[@Ti], 108; - - QWS_Make_Town_Menu 14; -//----------------Lutie - setarray @pTmenuitems$[@Ti], "Lutie"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "xmas"; - setarray @pTXcoords[@Ti], 148; - setarray @pTYcoords[@Ti], 131; - - QWS_Make_Town_Menu 15; -//----------------Morroc: - setarray @pTmenuitems$[@Ti], "Morroc"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "morocc"; - setarray @pTXcoords[@Ti], 159; - setarray @pTYcoords[@Ti], 93; - - QWS_Make_Town_Menu 16; -//----------------Niflheim: - setarray @pTmenuitems$[@Ti], "Niflheim"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "niflheim"; - setarray @pTXcoords[@Ti], 195; - setarray @pTYcoords[@Ti], 186; - - QWS_Make_Town_Menu 17; -//----------------Payon: - setarray @pTmenuitems$[@Ti], "Payon"; - setarray @pTprice[@Ti], $QW_BW_PRICE; - - setarray @pTmap$[@Ti], "payon"; - setarray @pTXcoords[@Ti], 152; - setarray @pTYcoords[@Ti], 75; - - QWS_Make_Town_Menu 18; -//----------------Umbala: - setarray @pTmenuitems$[@Ti], "Umbala"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "umbala"; - setarray @pTXcoords[@Ti], 130; - setarray @pTYcoords[@Ti], 130; - - QWS_Make_Town_Menu 19; -//----------------Yuno: - setarray @pTmenuitems$[@Ti], "Yuno"; - setarray @pTprice[@Ti], $QW_AW_PRICE; - - setarray @pTmap$[@Ti], "yuno"; - setarray @pTXcoords[@Ti], 160; - setarray @pTYcoords[@Ti], 168; - - QWS_Make_Town_Menu 20; -//----------------Cancel - setarray @pTmenuitems$[@Ti], "Cancel"; - setarray @pTprice[@Ti], 0; - - set @Tmenulist$[@Tj],@pTmenuitems$[@Ti]; - set @Tmenuref[@Tj],57005; // 57005='dead' in hex - return; - - -//----------------Make Town Menu Function - -function QWS_Make_Town_Menu { - set @temptownmenubin,1; - if (getarg(0) == 0) goto menu_item; - set @templooptownmenu,0; - do { - set @temptownmenubin, @temptownmenubin * 2; - set @templooptownmenu, @templooptownmenu + 1; - }while (getarg(0) > @templooptownmenu); -// check marker and make menu item -menu_item: - if ((@temptownmenubin & ##QWS_T_Unlock) != @temptownmenubin) { - set @Ti,@Ti+1; - return; - } - if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" -> "+@pTprice[@Ti]; - if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]; - if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"+" -> "+@pTprice[@Ti]; - if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 1) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" ["+getmapusers(@pTmap$[@Ti])+"]"; - set @Tmenuref[@Tj],@Ti; - set @Tj,@Tj+1; - set @Ti,@Ti+1; - return; - -} -} - -//====================Dungeon=Menu=Arrays========================== - -//----------------A FAKE DUNGEON FOR EXAMPLE // I do this to find back sections quickly altho almost the same name is a line below it now -// setarray @pDmenuitems$[@Di], "Fake Dungeon"; // Name of Dungeon shown in Dungeon select Menu -// setarray @pDprice[@Di], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) -// setarray @pDfee$[@Di], "$QW_BW_FEE"; // Identifyer for the Dungeon fee caluclation (Basic ("$QW_BW_FEE"), Advanced ("$QW_AW_FEE"), Overseas ("$QW_OW_FEE")) please use setting in relation with option above (Don't forget "") -// setarray @DLevels[@Di], 2; //number of levels in dungeon (very important if set to high will shift all leveldata!!) -// -// setarray @DGat$[@Dref], "example_01", "example_02"; // mapfilename of dungeon level -// setarray @DLevelName$[@Dref], "Example Level 1", "Example Level 2"; // level name shown in dungeon level select -// setarray @DXcoords[@Dref], 123, 234; // X warp coords -// setarray @DYcoords[@Dref], 123, 234;// Y warp coords -// setarray @DDepth[@Dref], 0, 1; // relative depth to entrance to calculate extra warp fee -// -// QWS_Make_Dungeon_Menu XXX -// -// the full wap commands send out by this scripts for these examples would be -// for Example Level 1: -//warp example_01 123 123 -// -// for Example Level 2: -//warp example_02 234 234 -// -// use the same XXX number as you used when making your own dungeon unlocker (Warpra Helper) inside the dungeon -// (usually half way near a warp to next level) -// Read below how -// -// example: -// -//syntax: -//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ -// -// Full example using fake map & coords -// -//example_01,213,213,4 script Warpra Helper 112,{ -// callfunc "QWS_Dungeon_Warpra",XXX,"A FAKE DUNGEON FOR EXAMPLE"; -// close; -// } -// use a free number for XXX, last used is 28, for Kiel Dungeon - -function script QWS_Darray { - function QWS_Make_Dungeon_Menu; - - set @Di,0; - set @Dj,0; - set @Dref,0; -//----------------ABYSS LAKE - setarray @pDmenuitems$[@Di], "Abyss Lake"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "abyss_01", "abyss_02", "abyss_03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 265, 275, 116; - setarray @DYcoords[@Dref], 273, 270, 27; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 0; - -//----------------AMATSU DUNGEON - setarray @pDmenuitems$[@Di], "Amatsu Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "ama_dun01", "ama_dun02", "ama_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 227, 32, 119; - setarray @DYcoords[@Dref], 10, 43, 15; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 1; - -//----------------ANT HELL - setarray @pDmenuitems$[@Di], "Ant Hell Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[2], 2; - - setarray @DGat$[@Dref], "anthell01", "anthell02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 32, 34; - setarray @DYcoords[@Dref], 262, 263; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 2; - -//----------------AYOTAYA - setarray @pDmenuitems$[@Di], "Ayotaya Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[3], 2; - - setarray @DGat$[@Dref], "ayo_dun01", "ayo_dun02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 275, 150; - setarray @DYcoords[@Dref], 17, 13; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 3; - -//----------------BYALAN - setarray @pDmenuitems$[@Di], "Byalan Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[4], 5; - - setarray @DGat$[@Dref], "iz_dun00", "iz_dun01", "iz_dun02", "iz_dun03", "iz_dun04"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; - setarray @DXcoords[@Dref], 168, 41, 236, 32, 26; - setarray @DYcoords[@Dref], 168, 37, 204, 63, 27; - setarray @DDepth[@Dref], 0, 1, 2, 3, 4; - - QWS_Make_Dungeon_Menu 4; - -//----------------CLOCK TOWER - setarray @pDmenuitems$[@Di], "Clock Tower Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[5], 8; - - setarray @DGat$[@Dref], "c_tower1", "c_tower2", "c_tower3", "c_tower4", "alde_dun01", "alde_dun02", "alde_dun03", "alde_dun04"; - setarray @DLevelName$[@Dref], "Clock Tower Level 1", "Clock Tower Level 2", "Clock Tower Level 3", "Clock Tower Level 4", "Basement 1F", "Basement 2F", "Basement 3F", "Basement 4F"; - setarray @DXcoords[@Dref], 200, 268, 64, 32, 197, 262, 276, 122; - setarray @DYcoords[@Dref], 163, 26, 148, 63, 25, 41, 53, 125; - setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2, 3, 4; - - QWS_Make_Dungeon_Menu 5; - -//----------------COAL MINE - setarray @pDmenuitems$[@Di], "Coal Mine Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[6], 3; - - setarray @DGat$[@Dref], "mjo_dun01", "mjo_dun02", "mjo_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 52, 381, 302; - setarray @DYcoords[@Dref], 17, 343, 261; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 6; - -//----------------CULVERT - setarray @pDmenuitems$[@Di], "Culvert Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[7], 4; - - setarray @DGat$[@Dref], "prt_sewb1", "prt_sewb2", "prt_sewb3", "prt_sewb4"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; - setarray @DXcoords[@Dref], 132, 19, 180, 100; - setarray @DYcoords[@Dref], 248, 19, 169, 92; - setarray @DDepth[@Dref], 0, 1, 2, 3; - - QWS_Make_Dungeon_Menu 7; - -//----------------EINBECH DUNGEON - setarray @pDmenuitems$[@Di], "Einbech Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[8], 2; - - setarray @DGat$[@Dref], "ein_dun01", "ein_dun02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 22, 292; - setarray @DYcoords[@Dref], 14, 290; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 8; - -//----------------GEFENIA DUNGEON - setarray @pDmenuitems$[@Di], "Gefenia Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[9], 4; - - setarray @DGat$[@Dref], "gefenia01", "gefenia02", "gefenia03", "gefenia04"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; - setarray @DXcoords[@Dref], 59, 201, 264, 33; - setarray @DYcoords[@Dref], 167, 35, 236, 270; - setarray @DDepth[@Dref], 0, 1, 2, 3; - - QWS_Make_Dungeon_Menu 9; - -//----------------GEFFEN DUNGEON - setarray @pDmenuitems$[@Di], "Geffen Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 4; - - setarray @DGat$[@Dref], "gef_dun00", "gef_dun01", "gef_dun02", "gef_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4"; - setarray @DXcoords[@Dref], 104, 115, 106, 203; - setarray @DYcoords[@Dref], 100, 236, 132, 200; - setarray @DDepth[@Dref], 0, 1, 2, 3; - - QWS_Make_Dungeon_Menu 10; - -//----------------GLAST HEIM - setarray @pDmenuitems$[@Di], "Glast Heim Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 17; - - setarray @DGat$[@Dref], "glast_01", "gl_church", "gl_chyard", "gl_in01", "gl_cas01", "gl_cas02", "gl_knt01", "gl_knt02", "gl_prison", "gl_prison1", "gl_step", "gl_sew01", "gl_sew02", "gl_sew03", "gl_sew04", "gl_dun01", "gl_dun02"; - setarray @DLevelName$[@Dref], "Glast Heim Entrance", "St. Abbey", "Churchyard", "Inside Glast Heim", "Castle 1", "Castle 2", "Chivalry 1", "Chivalry 2", "Prison 1", "Prison 2", "Steps", "Sewers 1", "Sewers 2", "Sewers 3", "Sewers 4", "Lowest Cave 1", "Lowest Cave 2"; - setarray @DXcoords[@Dref], 370, 156, 147, 121, 199, 104, 150, 157, 14, 150, 117, 258, 108, 171, 68, 133, 224; - setarray @DYcoords[@Dref], 300, 8, 15, 59, 29, 25, 10, 287, 70, 14, 124, 255, 291, 273, 277, 271, 274; - setarray @DDepth[@Dref], 0, 1, 2, 1, 1, 2, 1, 2, 2, 3, 1, 4, 2, 3, 4, 5, 6; - - QWS_Make_Dungeon_Menu 11; - -//----------------GONRYUN DUNGEON - setarray @pDmenuitems$[@Di], "Gonryun Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "gon_dun01", "gon_dun02", "gon_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 143, 17, 68; - setarray @DYcoords[@Dref], 59, 114, 9; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 12; - -//----------------HIDDEN DUNGEON - setarray @pDmenuitems$[@Di], "Hidden Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "prt_maze01", "prt_maze02", "prt_maze03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 176, 94, 23; - setarray @DYcoords[@Dref], 6, 19, 8; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 13; - -//----------------JUPEROS CAVE - setarray @pDmenuitems$[@Di], "Juperos Cave"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "juperos_01", "juperos_02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 53, 36; - setarray @DYcoords[@Dref], 247, 60; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 14; - -//----------------KIEL DUNGEON - setarray @pDmenuitems$[@Di], "Kiel Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "kh_dun01", "kh_dun02"; - setarray @DLevelName$[@Dref], "1st Floor", "2nd Floor"; - setarray @DXcoords[@Dref], 63, 42; - setarray @DYcoords[@Dref], 10, 197; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 28; - -//----------------LIGHTHALZEN BIO LAB - setarray @pDmenuitems$[@Di], "Lighthalzen Bio Lab"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "lhz_dun01", "lhz_dun02", "lhz_dun03"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 150, 150, 140; - setarray @DYcoords[@Dref], 287, 18, 137; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 15; - -//----------------LOUYANG DUNGEON - setarray @pDmenuitems$[@Di], "Louyang Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "lou_dun02", "lou_dun03"; - setarray @DLevelName$[@Dref], "Royal Tomb Level 1", "Royal Tomb Level 2"; - setarray @DXcoords[@Dref], 282, 165; - setarray @DYcoords[@Dref], 20, 38; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 16; - -//----------------MAGMA DUNGEON - setarray @pDmenuitems$[@Di], "Magma Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "mag_dun01", "mag_dun02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 126, 47; - setarray @DYcoords[@Dref], 69, 32; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 17; - -//----------------ODIN TEMPLE - setarray @pDmenuitems$[@Di], "Odin Temple"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 1; - - setarray @DGat$[@Dref], "odin_tem01"; - setarray @DLevelName$[@Dref], "Level 1"; - setarray @DXcoords[@Dref], 96; - setarray @DYcoords[@Dref], 145; - setarray @DDepth[@Dref], 0; - - QWS_Make_Dungeon_Menu 18; - -//----------------ORC DUNGEON - setarray @pDmenuitems$[@Di], "Orc Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "orcsdun01", "orcsdun02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 32, 21; - setarray @DYcoords[@Dref], 169, 185; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 19; - -//----------------PAYON DUNGEON - setarray @pDmenuitems$[@Di], "Payon Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 5; - - setarray @DGat$[@Dref], "pay_dun00", "pay_dun01", "pay_dun02", "pay_dun03", "pay_dun04"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; - setarray @DXcoords[@Dref], 22, 19, 19, 155, 201; - setarray @DYcoords[@Dref], 180, 33, 63, 159, 204; - setarray @DDepth[@Dref], 0, 1, 2, 3, 4; - - QWS_Make_Dungeon_Menu 20; - -//----------------PYRAMIDS - setarray @pDmenuitems$[@Di], "Pyramids Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 6; - - setarray @DGat$[@Dref], "moc_pryd01", "moc_pryd02", "moc_pryd03", "moc_pryd04", "moc_pryd05", "moc_pryd06"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Basement 1", "Basement 2"; - setarray @DXcoords[@Dref], 192, 10, 100, 181, 94, 192; - setarray @DYcoords[@Dref], 9, 192, 92, 11, 96, 8; - setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2; - - QWS_Make_Dungeon_Menu 21; - -//----------------SPHINX - setarray @pDmenuitems$[@Di], "Sphinx Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 5; - - setarray @DGat$[@Dref], "in_sphinx1", "in_sphinx2", "in_sphinx3", "in_sphinx4", "in_sphinx5"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5"; - setarray @DXcoords[@Dref], 192, 149, 210, 10, 100; - setarray @DYcoords[@Dref], 9, 81, 54, 222, 99; - setarray @DDepth[@Dref], 0, 1, 2, 3, 4; - - QWS_Make_Dungeon_Menu 22; - -//----------------SUNKEN SHIP - setarray @pDmenuitems$[@Di], "Sunken Ship Dungeon"; - setarray @pDprice[@Di], $QW_BW_PRICE; - setarray @pDfee$[@Di], "$QW_BW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "treasure01", "treasure02"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2"; - setarray @DXcoords[@Dref], 69, 102; - setarray @DYcoords[@Dref], 24, 27; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 23; - -//----------------THANATOS TOWER - setarray @pDmenuitems$[@Di], "Thanatos Tower"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 13; - - setarray @DGat$[@Dref], "tha_t01", "tha_t02", "tha_t03", "tha_t04", "tha_t05", "tha_t06", "tha_t07", "tha_t08", "tha_t09", "tha_t10", "tha_t11", "tha_t12", "thana_boss"; - setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6", "Level 7", "Level 8", "Level 9", "Level 10", "Level 11", "Level 12", "Thanatos Boss"; - setarray @DXcoords[@Dref], 150, 150, 220, 59, 62, 206, 35, 105, 88, 168, 90, 129, 85; - setarray @DYcoords[@Dref], 35, 136, 158, 143, 11, 8, 166, 44, 145, 138, 36, 83, 76; - setarray @DDepth[@Dref], 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; - - QWS_Make_Dungeon_Menu 24; - -//----------------TOY FACTORY - setarray @pDmenuitems$[@Di], "Toy Factory Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 2; - - setarray @DGat$[@Dref], "xmas_dun01", "xmas_dun02"; - setarray @DLevelName$[@Dref], "Factory Warehouse", "Classifying Room"; - setarray @DXcoords[@Dref], 205, 129; - setarray @DYcoords[@Dref], 16, 133; - setarray @DDepth[@Dref], 0, 1; - - QWS_Make_Dungeon_Menu 25; - -//----------------TURTLE ISTLAND - setarray @pDmenuitems$[@Di], "Turtle Island Dungeon"; - setarray @pDprice[@Di], $QW_AW_PRICE; - setarray @pDfee$[@Di], "$QW_AW_FEE"; - setarray @DLevels[@Di], 4; - - setarray @DGat$[@Dref], "tur_dun01", "tur_dun02", "tur_dun03", "tur_dun04"; - setarray @DLevelName$[@Dref], "Outside", "Level 1", "Level 2", "Level 3"; - setarray @DXcoords[@Dref], 161, 148, 132, 100; - setarray @DYcoords[@Dref], 34, 256, 190, 192; - setarray @DDepth[@Dref], 0, 0, 1, 2; - - QWS_Make_Dungeon_Menu 26; - -//----------------UMBALA - setarray @pDmenuitems$[@Di], "Umbala Dungeon"; - setarray @pDprice[@Di], $QW_OW_PRICE; - setarray @pDfee$[@Di], "$QW_OW_FEE"; - setarray @DLevels[@Di], 3; - - setarray @DGat$[@Dref], "um_dun01", "um_dun02", "yggdrasil01"; - setarray @DLevelName$[@Dref], "Carpenter's Shop in The Tree", "Passage to a Foreign World", "Hvergelmir's Fountain"; - setarray @DXcoords[@Dref], 205, 48, 40; - setarray @DYcoords[@Dref], 26, 30, 63; - setarray @DDepth[@Dref], 0, 1, 2; - - QWS_Make_Dungeon_Menu 27; - -//----------------Cancel - setarray @pDmenuitems$[@Di], "Cancel"; - setarray @pDprice[@Di], 0; - - set @Dmenulist$[@Dj],@pDmenuitems$[@Di]; - set @Dmenuref[@Dj],57005; // 57005='dead' in hex - return; - - -//----------------Make Dungeon Menu Function - -function QWS_Make_Dungeon_Menu { - set @tempdungeonmenubin,1; - if (getarg(0) == 0) goto menu_item; - set @temploopdungeonmenu,0; - do { - set @tempdungeonmenubin, @tempdungeonmenubin * 2; - set @temploopdungeonmenu, @temploopdungeonmenu + 1; - }while (getarg(0) > @temploopdungeonmenu); -// check marker and make menu item -menu_item: - if ((@tempdungeonmenubin & ##QWS_D_Unlock) != @tempdungeonmenubin) { - setarray @DLocRef[@Di], @Dref; - set @Dref, @Dref+@DLevels[@Di]; - set @Di,@Di+1; - return; - } - if ($QW_MapUserShow == 1) { - set @tempmapusers,0; - set @mapusersloop,0; - do { - set @tempmapusers,(getmapusers(@DGat$[@Dref+@mapusersloop]) + @tempmapusers); - set @mapusersloop, (@mapusersloop + 1); - }while (@DLevels[@Di] > @mapusersloop); - if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"] -> "+@pDprice[@Di]; - if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"]"; - set @Dmenuref[@Dj],@Di; - set @Dj,@Dj+1; - setarray @DLocRef[@Di], @Dref; - set @Dref, @Dref+@DLevels[@Di]; - set @Di,@Di+1; - return; - } - if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di]; - if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]; - set @Dmenuref[@Dj],@Di; - set @Dj,@Dj+1; - setarray @DLocRef[@Di], @Dref; - set @Dref, @Dref+@DLevels[@Di]; - set @Di,@Di+1; - return; - -} -} - -function script QWS_DLarray { -//----------------Start building Menu - set @DWref,@DLocRef[@DwarpMenu]; // That's our reference to the arrays with leveldata. - set @DWi,0; // That's our loop counter. - set @DWj,0; // That's the menu lines counter. - cleararray @DWLmenulist$[0],"",20; // Clearing the array to get rid off ghost items in menu - do { - if ($QW_DL == 0)||($QW_DDL >= @DDepth[@DWref]) { - - set @warpprice, (@pDprice[@DwarpMenu]+ (getd(@pDfee$[@DwarpMenu])*@DDepth[@DWref])); - - if (@warpprice != 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" -> "+@warpprice; - if (@warpprice == 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]; - if (@warpprice != 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"] -> "+@warpprice; - if (@warpprice == 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"]"; - set @DWLmenuref[@DWj],@DWref; - - set @DWj,@DWj+1; - } - set @DWref, @DWref+1; - set @DWi,@DWi+1; - }while (@DWi < @DLevels[@DwarpMenu]); - set @DWLmenulist$[@DWj], "Exit"; - set @DWLmenuref[@DWj],57005; // 57005='dead' in hex - return; - } - - -//=================Backwards=Compatibility=Pre=1.8================= - -function script QWS_BackComp { -// reference where i put the towns: "Prontera"[0], "Alberta"[1], "Aldebaran"[2], "Amatsu"[3], "Ayothaya"[4], "Comodo"[5], "Einbech"[6], "Einbroch"[7], "Geffen"[8], "Gonryun"[9], "Hugel"[10], "Izlude"[11], "Jawaii"[12], "Lighthalzen"[13], "Louyang"[14], "Lutie"[15], "Morroc"[16], "Niflheim"[17], "Payon"[18], "Umbala"[19], "Yuno"[20]; -// reference where i put the dungeons: "Abyss Lake"[0], "Amatsu Dungeon"[1], "Ant Hell Dungeon"[2], "Ayotaya Dungeon"[3], "Byalan Dungeon"[4], "Clock Tower Dungeon"[5], "Coal Mine Dungeon"[6], "Culvert Dungeon"[7], "Einbech Dungeon"[8], "Gefenia Dungeon"[9], "Geffen Dungeon"[10], "Glast Heim Dungeon"[11], "Gonryun Dungeon"[12], "Hidden Dungeon"[13], "Juperos Cave"[14], "Lighthalzen Bio Lab"[15], "Louyang Dungeon"[16], "Magma Dungeon"[17], "Odin Temple"[18], "Orc Dungeon"[19], "Payon Dungeon"[20], "Pyramids Dungeon"[21], "Sphinx Dungeon"[22], "Sunken Ship Dungeon"[23], "Thanatos Tower"[24], "Toy Factory Dungeon"[25], "Turtle Island Dungeon"[26], "Umbala Dungeon"[27], "Kiel Dungeon[28]; -// also clears variables so that the account file variables can be used for something else variable 0 = variable delete on next save - -// Towns - set @towntemp,0; - if (#prontera != 0) set @towntemp,@towntemp + 1; - if (#alberta != 0) set @towntemp,@towntemp + 2; - if (#aldebaran != 0) set @towntemp,@towntemp + 4; - if (#amatsu != 0) set @towntemp,@towntemp + 8; - if (#ayotaya != 0) set @towntemp,@towntemp + 16; - if (#comodo != 0) set @towntemp,@towntemp + 32; - if (#einbech != 0) set @towntemp,@towntemp + 64; - if (#einbroch != 0) set @towntemp,@towntemp + 128; - if (#geffen != 0) set @towntemp,@towntemp + 256; - if (#gonryun != 0) set @towntemp,@towntemp + 512; - if (#hugel != 0) set @towntemp,@towntemp + 1024; - if (#izlude != 0) set @towntemp,@towntemp + 2048; - if (#jawaii != 0) set @towntemp,@towntemp + 4096; - if (#lighthalzen != 0) set @towntemp,@towntemp + 8192; - if (#louyang != 0) set @towntemp,@towntemp + 16384; - if (#xmas != 0) set @towntemp,@towntemp + 32768; - if (#morocc != 0) set @towntemp,@towntemp + 65536; - if (#niflheim != 0) set @towntemp,@towntemp + 131072; - if (#payon != 0) set @towntemp,@towntemp + 262144; - if (#umbala != 0) set @towntemp,@towntemp + 524288; - if (#yuno != 0) set @towntemp,@towntemp + 1048576; -// Clear Town variables - set #prontera,0; - set #alberta,0; - set #aldebaran,0; - set #amatsu,0; - set #ayotaya,0; - set #comodo,0; - set #einbech,0; - set #einbroch,0; - set #geffen,0; - set #gonryun,0; - set #hugel,0; - set #izlude,0; - set #jawaii,0; - set #lighthalzen,0; - set #louyang,0; - set #xmas,0; - set #morocc,0; - set #niflheim,0; - set #payon,0; - set #umbala,0; - set #yuno,0; -// set Town warp unlock variable -set ##QWS_T_Unlock, (##QWS_T_Unlock | @towntemp); - //because multiple account servers now stack on 1 variable i used a 'or' to stack them -// Dungeons - set @dungeontemp,0; - if (#abyss != 0) set @dungeontemp,@dungeontemp + 1; - if (#ama_dun != 0) set @dungeontemp,@dungeontemp + 2; - if (#anthell != 0) set @dungeontemp,@dungeontemp + 4; - if (#ayotaya_dun != 0) set @dungeontemp,@dungeontemp + 8; - if (#iz_dun != 0) set @dungeontemp,@dungeontemp + 16; - if (#c_tower != 0) set @dungeontemp,@dungeontemp + 32; - if (#mjo_dun != 0) set @dungeontemp,@dungeontemp + 64; - if (#prt_sewb != 0) set @dungeontemp,@dungeontemp + 128; - if (#einbech_dun != 0) set @dungeontemp,@dungeontemp + 256; - if (#gefenia != 0) set @dungeontemp,@dungeontemp + 512; - if (#gef_dun != 0) set @dungeontemp,@dungeontemp + 1024; - if (#gl_dun != 0) set @dungeontemp,@dungeontemp + 2048; - if (#gon_dun != 0) set @dungeontemp,@dungeontemp + 4096; - if (#hid_dun != 0) set @dungeontemp,@dungeontemp + 8192; - if (#juperos != 0) set @dungeontemp,@dungeontemp + 16384; - if (#lighthalzen_dun != 0) set @dungeontemp,@dungeontemp + 32768; - if (#louyang_dun != 0) set @dungeontemp,@dungeontemp + 65536; - if (#mag_dun != 0) set @dungeontemp,@dungeontemp + 131072; - if (#odintemple != 0) set @dungeontemp,@dungeontemp + 262144; - if (#orcsdun != 0) set @dungeontemp,@dungeontemp + 524288; - if (#pay_dun != 0) set @dungeontemp,@dungeontemp + 1048576; - if (#moc_pryd != 0) set @dungeontemp,@dungeontemp + 2097152; - if (#in_sphinx != 0) set @dungeontemp,@dungeontemp + 4194304; - if (#treasure != 0) set @dungeontemp,@dungeontemp + 8388608; - if (#thanatos_tower != 0) set @dungeontemp,@dungeontemp + 16777216; - if (#xmas_dun != 0) set @dungeontemp,@dungeontemp + 33554432; - if (#tur_dun != 0) set @dungeontemp,@dungeontemp + 67108864; - if (#um_dun != 0) set @dungeontemp,@dungeontemp + 134217728; -// Clear Dungeon variables - set #abyss,0; - set #ama_dun,0; - set #anthell,0; - set #ayotaya_dun,0; - set #iz_dun,0; - set #c_tower,0; - set #mjo_dun,0; - set #prt_sewb,0; - set #einbech_dun,0; - set #gefenia,0; - set #gef_dun,0; - set #gl_dun,0; - set #gon_dun,0; - set #hid_dun,0; - set #juperos,0; - set #lighthalzen_dun,0; - set #louyang_dun,0; - set #mag_dun,0; - set #odintemple,0; - set #orcsdun,0; - set #pay_dun,0; - set #moc_pryd,0; - set #in_sphinx,0; - set #treasure,0; - set #thanatos_tower,0; - set #xmas_dun,0; - set #tur_dun,0; - set #um_dun,0; -// set Town warp unlock variable -set ##QWS_D_Unlock, (##QWS_D_Unlock | @dungeontemp); -//mark that this character has done the upgrade to 1.8 -set ##QWS_UP,18; -return; -} - - -//===================Extra=Variable=Clear=Pre=1.8================== -function script Extra_Variable_Clear { -// Clear Town variables - set #prontera,0; - set #alberta,0; - set #aldebaran,0; - set #amatsu,0; - set #ayotaya,0; - set #comodo,0; - set #einbech,0; - set #einbroch,0; - set #geffen,0; - set #gonryun,0; - set #hugel,0; - set #izlude,0; - set #jawaii,0; - set #lighthalzen,0; - set #louyang,0; - set #xmas,0; - set #morocc,0; - set #niflheim,0; - set #payon,0; - set #umbala,0; - set #yuno,0; - -// Clear Dungeon variables - set #abyss,0; - set #ama_dun,0; - set #anthell,0; - set #ayotaya_dun,0; - set #iz_dun,0; - set #c_tower,0; - set #mjo_dun,0; - set #prt_sewb,0; - set #einbech_dun,0; - set #gefenia,0; - set #gef_dun,0; - set #gl_dun,0; - set #gon_dun,0; - set #hid_dun,0; - set #juperos,0; - set #lighthalzen_dun,0; - set #louyang_dun,0; - set #mag_dun,0; - set #odintemple,0; - set #orcsdun,0; - set #pay_dun,0; - set #moc_pryd,0; - set #in_sphinx,0; - set #treasure,0; - set #thanatos_tower,0; - set #xmas_dun,0; - set #tur_dun,0; - set #um_dun,0; - -// as the account based variables are limited just run this on every character to save some variables -set QWS_ExtraVARClear,18; -return; -} - -//================Dungeon=Warpras=That=Only=Unlock================= - -function script QWS_Dungeon_Warpra { - function QWS_D_getbin; - function QWS_D_setbin; - - if ((QWS_D_getbin(getarg(0)) == 0) && (getarg(1) != "")) { - mes "[Warpra]"; - mes getarg(1)+" unlocked!"; - QWS_D_setbin(getarg(0)); - return; - } else if (QWS_D_getbin(getarg(0)) == 1){ - mes "[Warpra]"; - mes "Sorry I can only unlock this location."; - } else - debugmes "QWS_Dungeon_Warpra error, improper syntax ?"; - return; - - -function QWS_D_setbin { - set @tempsetbindata,1; - if (getarg(0) == 0) goto binset; - set @temploopsetbin,0; - do { - set @tempsetbindata, @tempsetbindata * 2; - set @temploopsetbin, @temploopsetbin + 1; - } while (getarg(0) > @temploopsetbin); -binset: - set ##QWS_D_Unlock,(##QWS_D_Unlock | @tempsetbindata); - return; -} - -function QWS_D_getbin { - set @tempgetbindata,1; - if (getarg(0) == 0) goto binget; - set @temploopgetbin,0; - do { - set @tempgetbindata, @tempgetbindata * 2; - set @temploopgetbin, @temploopgetbin + 1; - } while (getarg(0) > @temploopgetbin); -binget: - if ((@tempgetbindata & ##QWS_D_Unlock) == @tempgetbindata) return 1; - return 0; -} -} - -//==========================Town=Warpras=========================== - -function script QWS_Town_Warpra { - function QWS_T_getbin; - function QWS_T_setbin; - - if ((QWS_T_getbin(getarg(0)) == 0) && (getarg(1) != "")) { - mes "[Warpra]"; - mes getarg(1)+" unlocked!"; - QWS_T_setbin(getarg(0)); - return; - } else if (QWS_T_getbin(getarg(0)) == 1){ -callfunc "Q_Warpra",0; - } else - debugmes "QWS_Town_Warpra error, improper syntax ?"; - return; - - -function QWS_T_setbin { - set @tempsetbindata,1; - if (getarg(0) == 0) goto binset; - set @temploopsetbin,0; - do { - set @tempsetbindata, @tempsetbindata * 2; - set @temploopsetbin, @temploopsetbin + 1; - } while (getarg(0) > @temploopsetbin); -binset: - set ##QWS_T_Unlock,(##QWS_T_Unlock | @tempsetbindata); - return; -} - -function QWS_T_getbin { - set @tempgetbindata,1; - if (getarg(0) == 0) goto binget; - set @temploopgetbin,0; - do { - set @tempgetbindata, @tempgetbindata * 2; - set @temploopgetbin, @temploopgetbin + 1; - } while (getarg(0) > @temploopgetbin); -binget: - if ((@tempgetbindata & ##QWS_T_Unlock) == @tempgetbindata) return 1; - return 0; -} -} -//============================Warpras============================== - -alb2trea,73,101,4 script Warpra#1 113,{ - callfunc "Q_Warpra",1; -} -ama_fild01,178,325,1 script Warpra#2 113,{ - callfunc "Q_Warpra",1; -} -gef_fild10,71,339,4 script Warpra#3 113,{ - callfunc "Q_Warpra",1; -} -izlu2dun,104,82,4 script Warpra#4 113,{ - callfunc "Q_Warpra",1; -} -mjolnir_02,85,363,4 script Warpra#5 113,{ - callfunc "Q_Warpra",1; -} -moc_fild04,207,331,4 script Warpra#6 113,{ - callfunc "Q_Warpra",1; -} -moc_fild19,106,97,4 script Warpra#7 113,{ - callfunc "Q_Warpra",1; -} -moc_ruins,64,166,4 script Warpra#8 113,{ - callfunc "Q_Warpra",1; -} -niflheim,197,192,3 script Warpra#9 113,{ - callfunc "Q_Warpra",1; -} -pay_arche,39,135,4 script Warpra#10 113,{ - callfunc "Q_Warpra",1; -} -prt_fild05,273,215,4 script Warpra#11 113,{ - callfunc "Q_Warpra",1; -} -tur_dun01,148,239,4 script Warpra#12 113,{ - callfunc "Q_Warpra",1; -} -valkyrie,48,35,8 script Warpra#13 113,{ - callfunc "Q_Warpra",1; -} -yuno_fild03,37,135,4 script Warpra#14 113,{ - callfunc "Q_Warpra",1; -} - -alberta,32,240,4 script Warpra#15 113,{ - callfunc "QWS_Town_Warpra",1,"Alberta Town"; - close; -} -aldebaran,146,118,4 script Warpra#16 113,{ - callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; - close; -} -ayothaya,216,171,5 script Warpra#17 113,{ - callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; - close; -} -amatsu,193,81,1 script Warpra#18 113,{ - callfunc "QWS_Town_Warpra",3,"Amatsu Town"; - close; -} -comodo,195,158,4 script Warpra#19 113,{ - callfunc "QWS_Town_Warpra",5,"Comodo Town"; - close; -} -einbroch,229,196,5 script Warpra#20 113,{ - callfunc "QWS_Town_Warpra",7,"Einbroch Town"; - close; -} -einbech,173,131,5 script Warpra#21 113,{ - callfunc "QWS_Town_Warpra",6,"Einbech Town"; - close; -} -geffen,116,66,4 script Warpra#22 113,{ - callfunc "QWS_Town_Warpra",8,"Geffen Town"; - close; -} -gonryun,152,130,4 script Warpra#23 113,{ - callfunc "QWS_Town_Warpra",9,"Gonryun Town"; - close; -} -hugel,90,127,5 script Warpra#24 113,{ - callfunc "QWS_Town_Warpra",10,"Hugel Town"; - close; -} -jawaii,107,182,5 script Warpra#25 113,{ - callfunc "QWS_Town_Warpra",12,"Jawaii Town"; - close; -} -izlude,132,116,4 script Warpra#26 113,{ - callfunc "QWS_Town_Warpra",11,"Izlude Town"; - close; -} -lighthalzen,153,100,5 script Warpra#27 113,{ - callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; - close; -} -louyang,211,106,4 script Warpra#28 113,{ - callfunc "QWS_Town_Warpra",14,"Louyang Town"; - close; -} -morocc,157,95,4 script Warpra#29 113,{ - callfunc "QWS_Town_Warpra",16,"Morroc Town"; - close; -} -nif_fild01,319,77,1 script Warpra#30 113,{ - callfunc "QWS_Town_Warpra",17,"Niflheim Town"; - close; -} -payon,183,110,4 script Warpra#31 113,{ - callfunc "QWS_Town_Warpra",18,"Payon Town"; - close; -} -prontera,147,172,5 script Warpra#32 113,{ - callfunc "QWS_Town_Warpra",0,"Prontera Town"; - close; -} -umbala,133,130,4 script Warpra#33 113,{ - callfunc "QWS_Town_Warpra",19,"Umbala Town"; - close; -} -xmas,151,136,4 script Warpra#34 113,{ - callfunc "QWS_Town_Warpra",15,"Lutie Town"; - close; -} -yuno,138,162,4 script Warpra#35 113,{ - callfunc "QWS_Town_Warpra",20,"Yuno Town"; - close; -} - -abyss_02,274,266,1 script Warpra#36 113,{ - callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; - close; -} - -ama_dun02,192,118,5 script Warpra Helper#1 112,{ - callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; - close; -} - -anthell02,170,165,3 script Warpra Helper#2 112,{ - callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; - close; -} - -ayo_dun02,258,193,5 script Warpra Helper#3 112,{ - callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; - close; -} - -ein_dun02,292,282,1 script Warpra Helper#4 112,{ - callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; - close; -} - -iz_dun03,202,47,2 script Warpra Helper#5 112,{ - callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; - close; -} - -c_tower3,129,106,4 script Warpra Helper#6 112,{ - callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; - close; -} - -mjo_dun02,39,25,4 script Warpra Helper#7 112,{ - callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; - close; -} - -prt_sewb2,176,30,3 script Warpra Helper#8 112,{ - callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; - close; -} - -gefenia03,137,34,0 script Warpra Helper#9 112,{ - callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; - close; -} - -gef_dun02,218,61,2 script Warpra Helper#10 112,{ - callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; - close; -} - -glast_01,371,308,3 script Warpra Helper#11 112,{ - callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; - close; -} - -gon_dun01,167,273,4 script Warpra Helper#12 112,{ - callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; - close; -} - -juperos_02,127,154,5 script Warpra Helper#13 112,{ - callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; - close; -} - -kh_dun01,14,224,3 script Warpra Helper#14 112,{ - callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; - close; -} - -lhz_dun02,156,151,5 script Warpra Helper#15 112,{ - callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; - close; -} - -lou_dun02,168,264,4 script Warpra Helper#16 112,{ - callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; - close; -} - -mag_dun02,46,41,3 script Warpra Helper#17 112,{ - callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; - close; -} - -odin_tem01,115,148,3 script Warpra Helper#18 112,{ - callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; - close; -} - -orcsdun01,185,11,3 script Warpra Helper#19 112,{ - callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; - close; -} - -pay_dun03,162,143,3 script Warpra Helper#20 112,{ - callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; - close; -} - -moc_pryd02,101,95,3 script Warpra Helper#21 112,{ - callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; - close; -} - -in_sphinx2,274,268,1 script Warpra Helper#22 112,{ - callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; - close; -} - -tha_t07,111,162,3 script Warpra Helper#23 112,{ - callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; - close; -} - -treasure02,104,40,3 script Warpra Helper#24 112,{ - callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; - close; -} - -xmas_dun02,124,131,3 script Warpra Helper#25 112,{ - callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; - close; -} - -um_dun02,44,28,3 script Warpra Helper#26 112,{ - callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; - close; -} - -tur_dun02,162,23,3 script Warpra Helper#27 112,{ - callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; - close; -} -prt_maze02,102,69,4 script Warpra Helper#28 112,{ - callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; - close; -} diff --git a/npc/custom/quests/fashion.txt b/npc/custom/quests/fashion.txt deleted file mode 100644 index 5027bf8e8..000000000 --- a/npc/custom/quests/fashion.txt +++ /dev/null @@ -1,69 +0,0 @@ -//===== rAthena Script ======================================= -//= Quest for Fashion Glasses (Daily Job Quest) -//===== By: ================================================== -//= -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Quest for Fashion Glasses -//===== Additional Comments: ================================= -//= 1.0 Fully Working [Lupus] -//= 1.1 fixed exploit [Lupus] -//============================================================ - -izlude,135,96,5 script Fashion Glasses Quest 76,{ - mes "[Fashionable Glasses Quest]"; - mes "Hi, today's quest is...."; - mes "Ah, the ^CC6633Fashionable Glasses^000000 Quest!"; - next; - menu "Requirements",M_INFO,"Make Item",-,"Cancel",M_CANCEL; - - mes "[Fashionable Glasses Quest]"; - mes "Good good, let me just check"; - next; - if(countitem(2271)<1 || countitem(975)<1) goto M_NOITEMS; - delitem 2271,1; - delitem 975,1; - mes "[Fashionable Glasses Quest]"; - mes "Give me a second....."; - next; - getitem 5047,1; - mes "[Fashionable Glasses Quest]"; - mes "Ok done!"; - close; - -M_NOITEMS: - mes "[Fashionable Glasses Quest]"; - mes "You don't have the requirements."; - mes "Please come back another time..."; - close; - -M_INFO: - mes "[Fashionable Glasses Quest]"; - mes "Ok all you have to do is collect"; - mes "^CC66331 Jack'a Dandy^000000"; - mes "and ^CC66331 Scalet Dyestuffs^000000."; - next; - menu "Accept",-,"Leave",M_LEAVE; - - mes "[Fashionable Glasses Quest]"; - mes "When you are done, bring the items to me,"; - mes "Ok good luck finding those items."; - close; - -M_LEAVE: - mes "[Fashionable Glasses Quest]"; - mes "Maybe another time?"; - close; - -M_CANCEL: - mes "[Fashionable Glasses Quest]"; - mes "Aw, what a shame"; - mes "Giving up already?"; - mes "Oh well maybe you will"; - mes "participate in tommorow's"; - mes "quest."; - close; -} diff --git a/npc/custom/quests/magicalhatquest.txt b/npc/custom/quests/magicalhatquest.txt deleted file mode 100644 index 145ea0f27..000000000 --- a/npc/custom/quests/magicalhatquest.txt +++ /dev/null @@ -1,58 +0,0 @@ -//===== rAthena Script ======================================= -//= Wizard Hat Custom Quest -//===== By: ================================================== -//= Who -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= Wizard Hat quest. Harmless, doesn't screw game balance. -//===== Additional Comments: ================================= -//= 1.1 Reversed ingreadients and the quest result due to -//= treasue boxes drops fix [Lupus] -//============================================================ - -geffen,126,107,5 script Wizard Hat Dude 51,{ - mes "[Wizard Hat Dude]"; - mes "Huh! What do you want?"; - mes "Ohh, I see, you want me to make you something."; - emotion e_what; - next; - mes "[Wizard Hat Dude]"; - mes "Well if you want this Wizard Hat here is a list of the items I need you to go out and get them for me:"; - mes "1 Magican Hat"; - mes "1 Bathory Card"; - mes "and 200,000z for my efforts"; - next; - mes "[Wizard Hat Dude]"; - mes "Are you ready for me to make this magical item?"; - next; - menu "Sure am!",-,"These requirements are unfathomable!",M_RIPOFF; - - mes "[Wizard Hat Dude]"; - if(countitem(5045) < 1 || countitem(4119) < 1 || Zeny < 200000) goto L_NotEnough; - delitem 5045,1; - delitem 4119,1; - set Zeny,Zeny-200000; - mes "Wow! You are brave indeed!"; - emotion e_no1; - next; - mes "[Wizard Hat Dude]"; - mes "Enjoy your Wizard Hat!"; - getitem 2252,1; - close; - -L_NotEnough: - mes ". . .I'm sorry .. You don't have enough money and items .."; - mes "I can't afford to make this if you don't bring all materials needed. Please understand this is to benefit heroes such as yourself!"; - emotion e_sry; - close; - -M_RIPOFF: - mes "[Wizard Hat Dude]"; - mes "What I had to go through was more unfathomable.."; - mes "If you succeed in getting these items, you will have incredible strength!"; - emotion e_hmm; - close; -} diff --git a/npc/custom/quests/quest_shop.txt b/npc/custom/quests/quest_shop.txt new file mode 100644 index 000000000..fd58e49a4 --- /dev/null +++ b/npc/custom/quests/quest_shop.txt @@ -0,0 +1,148 @@ +//===== rAthena Script ======================================= +//= Euphy's Quest Shop +//===== By: ================================================== +//= Euphy +//===== Current Version: ===================================== +//= 1.4a +//===== Compatible With: ===================================== +//= rAthena SVN r15340+ +//===== Description: ========================================= +//= A dynamic quest shop based on Lunar's, with easier config. +//= Includes support for multiple shops & cashpoints. +//= Item Preview script by ToastOfDoom. +//============================================================ + +prontera,164,203,6 script Quest Shop 998,{ +function Add; function Chk; function Slot; function A_An; + + if(.Shops$ != "") set .@i,1; + else { + set .@menu$,""; + for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) + set .@menu$, .@menu$+.Shops$[.@i]+":"; + set .@i, select(.@menu$); } + dispbottom "Select one item at a time."; + callshop "qshop"+.@i,1; + npcshopattach "qshop"+.@i; + end; + +function Add { + if (getitemname(getarg(1))=="null") { + debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } + for(set .@n,5; .@n<127; set .@n,.@n+2) { + if (!getarg(.@n,0)) break; + if (getitemname(getarg(.@n))=="null") { + debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped)."; return; } } + for(set .@i,2; .@i<.@n; set .@i,.@i+1) + set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i); + npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); + return; } +function Chk { + if (getarg(0)0) return .@s$+" ["+getitemslots(getarg(0))+"]"; + default: return .@s$; } } +function A_An { + setarray .@A$[0],"a","e","i","o","u"; + set .@B$, "_"+getarg(0); + for(set .@i,0; .@i<5; set .@i,.@i+1) + if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); + return "a "+getarg(0); } + +OnBuyItem: + set .@q[0],@bought_nameid; + copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]")); + if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; } + mes "[Quest Shop]"; + mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000"; + mes "Requirements:"; + if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000"; + if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000"; + if (.@q[4]) for(set .@i,4; .@i "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000"; + next; + set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11); + addtimer 1000, strnpcinfo(1)+"::OnEnd"; + while(1){ + switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { + case 1: + if (@qe0) { + mes "[Quest Shop]"; + mes "You're missing one or more quest requirements."; + close; } + if (!checkweight(.@q[0],.@q[1])) { + mes "[Quest Shop]"; + mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; + close; } + if (.@q[2]) set Zeny, Zeny-.@q[2]; + if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3]; + if (.@q[4]) for(set .@i,4; .@i","" + setarray .Points$[0],"#CASHPOINTS","Cash Points"; + + set .Announce,1; // Announce quest completion? (1: yes / 0: no) + set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) + set .DisplayID,0; // Show item IDs? (1: yes / 0: no) + set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) + +// Shop categories, if needed: "",""{,...}; +// Duplicate dummy data for any additional shops (bottom of script). +// If no categories, use the second line instead (remove //). + + setarray .Shops$[1],"Headgears","Weapons","Other"; + // set .Shops$,"n/a"; + +// Add(,,,,, +// ,{,...}); +// Shop number corresponds with order above (default is 1). +// Note: Do NOT use a reward item more than once! + + Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2); + Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600); + Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1); + Add(1,5045,1,0,0,2252,1,1054,450,943,1200); + + Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10); + Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10); + + Add(3,531,1,3,0,512,1,713,1); + Add(3,532,1,3,0,513,1,713,1); + Add(3,533,1,3,0,514,1,713,1); + Add(3,534,1,3,0,515,1,713,1); + +// -------------------------------------------------- + freeloop(0); + for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) + npcshopdelitem "qshop"+.@i,909; + end; +} + +// -------- Dummy data (duplicate as needed) -------- +- shop qshop1 -1,909:-1 +- shop qshop2 -1,909:-1 +- shop qshop3 -1,909:-1 \ No newline at end of file diff --git a/npc/custom/quests/questboard.txt b/npc/custom/quests/questboard.txt new file mode 100644 index 000000000..3bea4b71c --- /dev/null +++ b/npc/custom/quests/questboard.txt @@ -0,0 +1,300 @@ +//===== rAthena Script ======================================= +//= tr0n's Questboard +//===== By: ================================================== +//= tr0n +//===== Current Version: ===================================== +//= 1.3.4 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Easily add collection and hunting quests. +//===== Additional Comments: ================================= +// 1.0.0 Release +// 1.1.0 Added zeny reward +// 1.2.0 Rewrote checkmob and killcounter +// 1.3.1 Added level restriction +// 1.3.4 Added Reward Item Amount +//============================================================ + +prontera,129,215,5 script Questboard 857,{ + + if(c_run==1){ + mes "[^FF7700Questboard^000000]"; + mes "^0000FF"+getd("." + currentquest$ + "_collectionname$")+"^000000"; + mes "--------------------------------"; + for( set .@j, 0; .@j < getarraysize(getd("."+ currentquest$ + "_collectionitem")); set .@j,.@j+2) { + mes "^FF0000"+getitemname(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+" - "+countitem(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+"/"+getd("."+currentquest$+"_collectionitem["+(.@j+1)+"]")+" ea.^000000"; + } + mes "--------------------------------"; + mes "[Reward]"; + mes "Item: ^0000FF"+((getd("." +currentquest$+"_collectionprize"))?getitemname(getd("." +currentquest$+"_collectionprize"))+" - "+getd("." +currentquest$+"_collectionamount")+" ea.^000000":"Nothing^000000"); + mes "Zeny: ^0000FF"+getd("." +currentquest$+"_collectionzeny")+"^000000"; + mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+0+"]")+"^000000"; + mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+1+"]")+"^000000"; + next; + if(select("Finish:Abort") == 2){ + mes "[^FF7700Questboard^000000]"; + mes "Quest aborted."; + set currentquest$, ""; + set c_run, 0; + close; + } + goto L_checkitems; + } + + if(h_run==1) { + mes "[^FF7700Questboard^000000]"; + mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000"; + mes "--------------------------------"; + for( set .@j, 0; .@j < getarraysize(getd("."+ currentquest$ + "_huntingmob")); set .@j,.@j+2) { + set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@j)+"]"); + mes "^FF0000"+strmobinfo(1,getd("."+currentquest$+"_huntingmob["+.@j+"]"))+" - "+getd(currentquest$+"_"+.@currentmob+"_"+(.@j+1)+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+(.@j+1)+"]")+" ea.^000000"; + } + mes "--------------------------------"; + mes "[Reward]"; + mes "Item: ^0000FF"+((getd("." +currentquest$+"_huntingprize"))?getitemname(getd("." +currentquest$+"_huntingprize"))+" - "+getd("." +currentquest$+"_huntingamount")+" ea.^000000":"Nothing^000000"); + mes "Zeny: ^0000FF"+getd("." +currentquest$+"_huntingzeny")+"^000000"; + mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+0+"]")+"^000000"; + mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+1+"]")+"^000000"; + next; + if(select("Finish:Abort") == 2){ + mes "[^FF7700Questboard^000000]"; + mes "Quest aborted."; + for(set .@x, 1; .@x < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@x,.@x+2){ + set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]"); + setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0); + } + set currentquest$, ""; + set h_run, 0; + close; + } + goto L_checkmobs; + } + +L_questmenu: + mes "[^FF7700Questboard^000000]"; + mes "Select category:"; + next; + + switch(select((.collection)?"Collection Quests":"", + (.hunting)?"Hunting Quests":"", + "Exit")) { + +case 1: + set .@collectmenu$, ""; + for( set .@i,0; .@i < .collectionquestcount; set .@i,.@i+1) { + if (.@i) set .@collectmenu$,.@collectmenu$+":"; + set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$"); + } + set .@selection,select(.@collectmenu$); + mes "[^FF7700Questboard^000000]"; + mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000"; + mes "--------------------------------"; + for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_collectionitem")); set .@j,.@j+2) { + mes "^FF0000"+getitemname(getd("."+.@selection+"_collectionitem["+.@j+"]"))+" - "+getd("."+.@selection+"_collectionitem["+(.@j+1)+"]")+" ea.^000000"; + } + mes "--------------------------------"; + mes "[Reward]"; + mes "Item: ^0000FF"+((getd("." +.@selection+"_collectionprize"))?getitemname(getd("." +.@selection+"_collectionprize"))+" - "+getd("." +.@selection+"_collectionamount")+" ea.^000000":"Nothing^000000"); + mes "Zeny: ^0000FF"+getd("." +.@selection+"_collectionzeny")+"^000000"; + mes "Base EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+0+"]")+"^000000"; + mes "Job EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+1+"]")+"^000000"; + next; + if(select("Accept:Decline") == 2){ + close; + } + if(BaseLevel >= getd("." +.@selection+"_collectionmin") && BaseLevel <= getd("." +.@selection+"_collectionmax")) + { + mes "[^FF7700Questboard^000000]"; + mes "Quest accepted."; + set c_run, 1; + set currentquest$, .@selection; + close; + } + else + { + mes "[^FF7700Questboard^000000]"; + mes "You don't have the required"; + mes "level to do this quest."; + close; + } + +case 2: + set .@huntmenu$, ""; + for( set .@i,0; .@i < .huntingquestcount; set .@i,.@i+1) { + if (.@i) set .@huntmenu$,.@huntmenu$+":"; + set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$"); + } + set .@selection,select(.@huntmenu$); + mes "[^FF7700Questboard^000000]"; + mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000"; + mes "--------------------------------"; + for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_huntingmob")); set .@j,.@j+2) { + mes "^FF0000"+strmobinfo(1,getd("."+.@selection+"_huntingmob["+.@j+"]"))+" - "+getd("."+.@selection+"_huntingmob["+(.@j+1)+"]")+" ea.^000000"; + } + mes "--------------------------------"; + mes "[Reward]"; + mes "Item: ^0000FF"+((getd("." +.@selection+"_huntingprize"))?getitemname(getd("." +.@selection+"_huntingprize"))+" - "+getd("." +.@selection+"_huntingamount")+" ea.^000000":"Nothing^000000"); + mes "Zeny: ^0000FF"+getd("." +.@selection+"_huntingzeny")+"^000000"; + mes "Base EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+0+"]")+"^000000"; + mes "Job EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+1+"]")+"^000000"; + next; + if(select("Accept:Decline") == 2){ + close; + } + if(BaseLevel >= getd("." +.@selection+"_huntingmin") && BaseLevel <= getd("." +.@selection+"_huntingmax")) + { + mes "[^FF7700Questboard^000000]"; + mes "Quest accepted."; + set h_run, 1; + set currentquest$, .@selection; + close; + } + else + { + mes "[^FF7700Questboard^000000]"; + mes "You don't have the required"; + mes "level to do this quest."; + close; + } + +case 3: + close; + } + +L_checkitems: + for( set .@k,0; .@k < getarraysize(getd("."+currentquest$+"_collectionitem")); set .@k,.@k+2) { + if(countitem(getd("."+currentquest$+"_collectionitem["+.@k+"]"))>=getd("."+currentquest$+"_collectionitem["+(.@k+1)+"]")){ + set .@checkitem,.@checkitem+2; + } + } + if(.@checkitem=getd("."+currentquest$+"_huntingmob["+.@i+"]")) end; + setd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+1); + dispbottom getd("."+currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+ getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+.@i+"]")+")"; + end; + } + continue; + } + end; + +OnInit: + + function AddCollection; + function AddHunting; + + //Activate/Deactive quest categories here + set .collection, 1; + set .hunting, 1; + + //Checks if quests are loaded (prevents out of index) + if(.questsloaded==1) end; + set .questsloaded, 1; + + //Add Collection Quests here + //AddCollection("",,,,,,,,,,...); + + //Add Hunting Quests here + //AddHunting("",,,,,,,,,,...); + + end; + + +function AddCollection { + set .collectionquestcount,.collectionquestcount+1; + setd ("." +.collectionquestcount+"_collectionname$", getarg(0)); + setd ("." +.collectionquestcount+"_collectionmin", getarg(1)); + setd ("." +.collectionquestcount+"_collectionmax", getarg(2)); + setd ("." +.collectionquestcount+"_collectionprize", getarg(3)); + setd ("." +.collectionquestcount+"_collectionamount", getarg(4)); + setd ("." +.collectionquestcount+"_collectionzeny", getarg(5)); + set .@argcount, 6; + set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionexp")); + setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount)); + setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1)); + set .@argcount, .@argcount+2; + while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) { + set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionitem")); + setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount)); + setd ("."+.collectionquestcount+"_collectionitem["+(.@size+1)+"]",getarg(.@argcount+1)); + set .@argcount,.@argcount+2; + } + return; +} + +function AddHunting { + set .huntingquestcount,.huntingquestcount+1; + setd ("." +.huntingquestcount+"_huntingname$", getarg(0)); + setd ("." +.huntingquestcount+"_huntingmin", getarg(1)); + setd ("." +.huntingquestcount+"_huntingmax", getarg(2)); + setd ("." +.huntingquestcount+"_huntingprize", getarg(3)); + setd ("." +.huntingquestcount+"_huntingamount", getarg(4)); + setd ("." +.huntingquestcount+"_huntingzeny", getarg(5)); + set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingexp")); + set .@argcount, 6; + setd ("." +.huntingquestcount+"_huntingexp["+.@size+"]",getarg(.@argcount)); + setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1)); + set .@argcount, .@argcount+2; + while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) { + set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingmob")); + setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount)); + setd ("."+.huntingquestcount+"_huntingmob["+(.@size+1)+"]",getarg(.@argcount+1)); + set .@argcount, .@argcount+2; + } + return; +} +} \ No newline at end of file diff --git a/npc/scripts_custom.conf b/npc/scripts_custom.conf index 08548f792..ee22ac71e 100644 --- a/npc/scripts_custom.conf +++ b/npc/scripts_custom.conf @@ -18,8 +18,6 @@ //npc: npc/custom/card_remover.txt //npc: npc/custom/item_signer.txt //npc: npc/custom/woe_controller.txt -// -- Warper that works only after locations are unlocked -//npc: npc/custom/quest_warper.txt // ----------------------- Other Scripts ----------------------- // -- MVP Arena @@ -47,8 +45,13 @@ //npc: npc/custom/etc/floating_rates.txt // -- Wedding script that supports same-sex marriages //npc: npc/custom/etc/marriage.txt +// -- Warper that works only after locations are unlocked +//npc: npc/custom/etc/quest_warper.txt // ----------------------- Quest Scripts ----------------------- +// -- Dynamic Quest Scripts +//npc: npc/custom/quests/quest_shop.txt +//npc: npc/custom/quests/questboard.txt // -- Treasure Hunters Guild Quests (40 Quests + Special Guild Shop) //npc: npc/custom/quests/thq/THQS_ChatingNPC.txt //npc: npc/custom/quests/thq/THQS_GuildNPC.txt @@ -58,7 +61,6 @@ // -- Equipment Quests //npc: npc/custom/quests/magicalhatquest.txt //npc: npc/custom/quests/elvenear.txt -//npc: npc/custom/quests/fashion.txt //npc: npc/custom/quests/sunglasses.txt //npc: npc/custom/quests/bandit_beard.txt //npc: npc/custom/quests/event_6_new_hats.txt @@ -74,16 +76,15 @@ //npc: npc/custom/quests/kahohorn.txt // ----------------------- Event Scripts ----------------------- -// -- X-Mas, Karachun, and New Year (8 Dec. ~ 8 Jan.) +// -- Daily Events +//npc: npc/custom/events/disguise.txt +//npc: npc/custom/events/mushroom_event.txt +//npc: npc/custom/events/cluckers.txt +// -- Holiday Events //npc: npc/custom/events/xmas_rings_event.txt -// -- Custom Valentine's Day event //npc: npc/custom/events/valentinesdayexp.txt -// -- Custom Halloween scripts //npc: npc/custom/events/hallow06.txt //npc: npc/custom/events/uneasy_cemetery.txt -//npc: npc/custom/events/draculax.txt -// -- Hyegun event -//npc: npc/custom/events/hyegun_event.txt // ----------------------- Unofficial Scripts ----------------------- // -- Unofficial Airplane script -- cgit v1.2.3-70-g09d2 From 5c235153270091301d7d344c531d40e9f9638114 Mon Sep 17 00:00:00 2001 From: euphyy Date: Sun, 26 Aug 2012 19:11:10 +0000 Subject: * Updated and cleaned up custom Quest Warper, as requested by malufett (custom\etc\quest_warper.txt) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16708 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/etc/quest_warper.txt | 1567 ++++++++++++++------------------------- 1 file changed, 561 insertions(+), 1006 deletions(-) (limited to 'npc/custom/etc') diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt index 85919fa0f..d0952decc 100644 --- a/npc/custom/etc/quest_warper.txt +++ b/npc/custom/etc/quest_warper.txt @@ -3,11 +3,11 @@ //===== By: ======================================================= //= DZeroX, Darkchild, Neouni //===== Current Version: ========================================== -//= 2.2 +//= 2.3 //===== Compatible With: ========================================== //= rAthena SVN //===== Description: ============================================== -//= Warper that works only after locations are unlocked +//= Warper that works only after locations are unlocked. //===== Additional Comments: ====================================== //= 1.0 - NPCs created //= 1.1 - Add Dungeons by sturm @@ -38,10 +38,9 @@ // - fixed syntax problems // - fixed missing pyramid gats in @DGat$ array // - removed the culver level 5 that didn't exist -// and caused quite alot of problems (i didn't check while converting) -//-1.7 - Readability of Dungeon menu building increased [Neouni] +//= 1.7 - Readability of Dungeon menu building increased [Neouni] // - Thanatos Tower & Louyang Dungeon added -//-1.8 - changed around unlock variables [Neouni] +//= 1.8 - changed around unlock variables [Neouni] // - Moved warp variables to mark what you have unlocked to an binary array in login based permanent variable // (warp variables are saved in login database, so all charservers have these unlocked) // - Town Warp unlock array max 21/(unknown max) items used instead of max account #variables 32 ! @@ -49,42 +48,30 @@ // - (max login ##variables = 16, i used 3) // - old variables are cleared on next save // - Extra Variable clear added for every character, just in case (request by Terces) -//-1.8a - Show ammount of users on map [Neouni] -// - Default = off, enable in GM menu -// - Requested by escoteiro -//-1.8b - Small typo fixed in stampcard script [Neouni] -// - Reported by escoteiro -//-1.9 - Making it more edit friendly [Neouni] +//= 1.8a - Show amount of users on map [Neouni] +//= 1.8b - Small typo fixed in stampcard script [Neouni] +//= 1.9 - Making it more edit friendly [Neouni] // - Made Dungeon warp arrays more readable & editable (QWS_Darray) // - Made town warp arrays more readable & editable (QWS_Tarray) -//-2.0 - Special Warp menu added [Neouni] +//= 2.0 - Special Warp menu added [Neouni] // - when all towns and dungeons are collected a new option on the main menu will show // - it will only show when you setup the mapname of the warp ! -// - requested by escoteiro -// - several bugs fixed -//-2.0a - Dungeon Level Limit & Split dungeon fees +//= 2.0a - Dungeon Level Limit & Split dungeon fees // - Limits dungeon based on Depth, access special setup menu thru GM-Menu // - Dungeon fees split up based on Basic , Advanced & Overseas // - Old Dungeon fee system removed, all dungeon fees now set to 0 -//-2.0b -// - Special warpname menu option name bug fixed -//-2.1 Updated names to fall within retrictions. [L0ne_W0lf] -//-2.2 #kafra_code is now stored as is. [brianluau] +//= 2.0b - Special warpname menu option name bug fixed +//= 2.1 - Updated names to fall within retrictions. [L0ne_W0lf] +//= 2.2 - #kafra_code is now stored as is. [brianluau] +//= 2.3 - Addednew town maps, cleanup, and removed pre-1.8 backwards fix. [Euphy] //================================================================= //========================Function=&=Script======================== - function script Q_Warpra { -// Quick hack for backwards compatibility pre 1.8 -if (##QWS_UP < 18) callfunc "QWS_BackComp"; -// Extra clear variables because marker is saved on all char servers and variables can be on multiple servers -if (QWS_ExtraVARClear < 18) callfunc "Extra_Variable_Clear"; - mes "[Warpra]"; mes "Hello,"; - mes "I can warp you to any town or dungeon, but you need to unlock them first."; - mes "To unlock them, you have to visit us."; + mes "I can warp you to any town or dungeon, but you need to unlock them first by visiting us."; mes "What do you need?"; if(getarg(0) == 0) callfunc "QWS_MMarray",0; @@ -93,280 +80,175 @@ if (QWS_ExtraVARClear < 18) callfunc "Extra_Variable_Clear"; set @MMenu,select(@Mmenulist$[0],@Mmenulist$[1],@Mmenulist$[2],@Mmenulist$[3],@Mmenulist$[4],@Mmenulist$[5],@Mmenulist$[6],@Mmenulist$[7],@Mmenulist$[8],@Mmenulist$[9],@Mmenulist$[10],@Mmenulist$[11]); switch(@Mmenuref[@MMenu-1]+1){ - case 1: - goto GM_Menu; + case 1: goto GM_Menu; case 2: - warp $QW_SP_WarpMap$, $QW_SP_WarpX, $QW_SP_WarpY; - close2; - debugmes "Please check your special warp menu settings on the Warpra"; - end; - case 3: - goto L_town; - case 4: - goto L_dungeon; - case 5: - goto L_FewWarps; - case 6: - goto L_NoUnlock; - case 7: - goto L_heal_Full; - case 8: - goto L_heal_Part; - case 9: - goto L_Storage; - case 10: - goto L_GStorage; + warp $QW_SP_WarpMap$, $QW_SP_WarpX, $QW_SP_WarpY; + close2; + debugmes "Please check your special warp menu settings on the Warpra."; + end; + case 3: goto L_town; + case 4: goto L_dungeon; + case 5: goto L_FewWarps; + case 6: goto L_NoUnlock; + case 7: goto L_heal_Full; + case 8: goto L_heal_Part; + case 9: goto L_Storage; + case 10: goto L_GStorage; case 11: - goto L_end; default: - goto L_end; -} + goto L_end; + } //=====================GM-Menu=Functions=========================== GM_Menu: -next; -//----------------Town-Warp - if ($QW_TW_OFF == 0) mes "Town warping = ^00FF00 On ^000000"; - if ($QW_TW_OFF == 1) mes "Town warping = ^FF0000 Off ^000000"; -//----------------Dungeon-Warp - if ($QW_DW_OFF == 0) mes "Dungeon warping = ^00FF00 On ^000000"; - if ($QW_DW_OFF == 1) mes "Dungeon warping = ^FF0000 Off ^000000"; -//----------------Dungeon-Depth-Limit - if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; - if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; + next; + mes "Town warping = "+(($QW_TW_OFF)?"^FF0000 Off":"^00FF00 On")+"^000000"; + mes "Dungeon warping = "+(($QW_DW_OFF)?"^FF0000 Off":"^00FF00 On")+"^000000"; + mes "Dungeon Depth limit is "+(($QW_DL)?"^00FF00 On":"^FF0000 Off")+"^000000"; mes "If on Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; -//----------------ShowMapUsers - if ($QW_MapUserShow == 1) mes "Show Map Users = ^00FF00 On ^000000"; - if ($QW_MapUserShow == 0) mes "Show Map Users = ^FF0000 Off ^000000"; -//----------------Healfull - if ($QW_HF == 1) mes "Healing full = ^00FF00 On ^000000"; -//----------------Healpart - if ($QW_HP == 1) mes "Healing partly = ^00FF00 On ^000000"; - if (($QW_HF == 0)&&($QW_HP == 0)) mes "Healing = ^FF0000 Off ^000000"; -//----------------Storage - if ($QW_Stor == 1) mes "Storage = ^00FF00 On ^000000"; - if ($QW_Stor == 0) mes "Storage = ^FF0000 Off ^000000"; -//----------------GuildStorage - if ($QW_GStor == 1) mes "Guild Storage = ^00FF00 On ^000000"; - if ($QW_GStor == 0) mes "Guild Storage = ^FF0000 Off ^000000"; -//----------------KafraPoints - if ($QW_KPoint == 1) mes "Kafra points collect = ^00FF00 On ^000000"; - if ($QW_KPoint == 0) mes "Kafra points collect = ^FF0000 Off ^000000"; -//----------------GMmenu - switch(select("Town Warping","Dungeon Warping","Dungeon Level Limit","Show Map Users","Healing full","Healing partly","Storage","Guild Storage","Kafra points collect","Set Prices","Special Warp","Exit")) { + mes "Show Map Users = "+(($QW_MapUserShow)?"^00FF00 On":"^FF0000 Off")+"^000000"; -// Using callsub and a small check to not make 1 part of the script set it on and the other turning it off again + if ($QW_HF) mes "Healing full = ^00FF00 On ^000000"; + if ($QW_HP) mes "Healing partly = ^00FF00 On ^000000"; + if (!$QW_HF && !$QW_HP) mes "Healing = ^FF0000 Off ^000000"; -case 1: - if ($QW_TW_OFF == 0) { - set $QW_TW_OFF,1; - goto GM_Menu; - } else - set $QW_TW_OFF,0; - goto GM_Menu; -case 2: - if ($QW_DW_OFF == 0) { - set $QW_DW_OFF,1; - goto GM_Menu; - } else - set $QW_DW_OFF,0; - goto GM_Menu; -case 3: - goto DungeonLevelLimit; -case 4: - if ($QW_MapUserShow == 0) { - set $QW_MapUserShow,1; - goto GM_Menu; - } else - set $QW_MapUserShow,0; - goto GM_Menu; -case 5: - if ($QW_HF == 0) { - set $QW_HF,1; - set $QW_HP,0; - goto GM_Menu; - } else - set $QW_HF,0; - goto GM_Menu; -case 6: - if ($QW_HP == 0) { - set $QW_HP,1; - set $QW_HF,0; - goto GM_Menu; - } else - set $QW_HP,0; - goto GM_Menu; -case 7: - if ($QW_Stor == 0) { - set $QW_Stor,1; - goto GM_Menu; - } else - set $QW_Stor,0; - goto GM_Menu; -case 8: - if ($QW_GStor == 0) { - set $QW_GStor,1; + mes "Storage = "+(($QW_Stor)?"^00FF00 On":"^FF0000 Off")+"^000000"; + mes "Guild Storage = "+(($QW_GStor)?"^00FF00 On":"^FF0000 Off")+"^000000"; + mes "Kafra points collect = "+(($QW_KPoint)?"^00FF00 On":"^FF0000 Off")+"^000000"; + + switch(select("Town Warping","Dungeon Warping","Dungeon Level Limit","Show Map Users","Healing full","Healing partly","Storage","Guild Storage","Kafra points collect","Set Prices","Special Warp","Exit")) { + case 1: set $QW_TW_OFF,($QW_TW_OFF)?0:1; goto GM_Menu; + case 2: set $QW_DW_OFF,($QW_DW_OFF)?0:1; goto GM_Menu; + case 3: goto DungeonLevelLimit; + case 4: set $QW_MapUserShow,($QW_MapUserShow)?0:1; goto GM_Menu; + case 5: + if ($QW_HF == 0) { + set $QW_HF,1; + set $QW_HP,0; + } + else set $QW_HF,0; goto GM_Menu; - } else - set $QW_GStor,0; - goto GM_Menu; -case 9: - if ($QW_KPoint == 0) { - set $QW_KPoint,1; + case 6: + if ($QW_HP == 0) { + set $QW_HP,1; + set $QW_HF,0; + } + else set $QW_HP,0; goto GM_Menu; - } else - set $QW_KPoint,0; - goto GM_Menu; -case 10: - goto Setprice; -case 11: - goto SpecialWarpMenu; -default: - close; - end; -} - + case 7: set $QW_Stor,($QW_Stor)?0:1; goto GM_Menu; + case 8: set $QW_GStor,($QW_GStor)?0:1; goto GM_Menu; + case 9: set $QW_KPoint,($QW_KPoint)?0:1; goto GM_Menu; + case 10: goto Setprice; + case 11: goto SpecialWarpMenu; + default: + close; + end; + } //======================GM-Menu=Pricing============================ Setprice: if ($QW_DW_FEE != 0) set $QW_DW_FEE,0; next; - mes "Scroll thru the list to see all the options"; -//----------------Warp-Basic-Price - if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; - if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; -//----------------Warp-Advanced-Price - if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; - if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; -//----------------Warp-Oversea-Price - if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; - if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; -//----------------Basic-Dungeon-Level-Warp-Fee - if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; - if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Advanced-Dungeon-Level-Warp-Fee - if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; - if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Overseas-Dungeon-Level-Warp-Fee - if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; - if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; -//----------------Heal-Full - if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; - if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; -//----------------Heal-Part - if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; - if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; - if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; - if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; -//----------------Storage - if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; - if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; - if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; -//----------------Guild-Storage - if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; - if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; - - switch(select("Basic - Warps","Advanced - Warps","Overseas - Warps","Basic Dungeon warp fee","Advanced Dungeon warp fee","Overseas Dungeon warp fee","Full Healing","Part Healing","Storage","Guild Storage","Back","Exit")) { - -case 1: - next; - if ($QW_BW_PRICE != 0) mes "Basic - Warps are = ^00FF00 "+$QW_BW_PRICE+" ^000000"; - if ($QW_BW_PRICE == 0) mes "Basic - Warps are = ^FF0000 Free ^000000"; - mes "Basic - Warps are starter towns and related dungeons"; - input $QW_BW_PRICE; - goto Setprice; + mes "Scroll through the list to see all the options."; -case 2: - next; - if ($QW_AW_PRICE != 0) mes "Advanced - Warps are = ^00FF00 "+$QW_AW_PRICE+" ^000000"; - if ($QW_AW_PRICE == 0) mes "Advanced - Warps are = ^FF0000 Free ^000000"; - mes "Advanced - Warps are towns and dungeons on the same island but not close to any starter town"; - input $QW_AW_PRICE; - goto Setprice; + mes "Basic - Warps are = "+(($QW_BW_PRICE)?"^00FF00"+$QW_BW_PRICE:"^FF0000Free")+"^000000"; + mes "Advanced - Warps are = "+(($QW_AW_PRICE)?"^00FF00"+$QW_AW_PRICE:"^FF0000Free")+"^000000"; + mes "Overseas - Warps are = "+(($QW_OW_PRICE)?"^00FF00"+$QW_OW_PRICE:"^FF0000Free")+"^000000"; -case 3: - next; - if ($QW_OW_PRICE != 0) mes "Overseas - Warps are = ^00FF00 "+$QW_OW_PRICE+" ^000000"; - if ($QW_OW_PRICE == 0) mes "Overseas - Warps are = ^FF0000 Free ^000000"; - mes "Overseas - Warps are towns and dungeons overseas reachable by boat from alberta"; - input $QW_OW_PRICE; - goto Setprice; + mes "Basic Dungeon level warp fee = "+(($QW_BW_FEE)?"^00FF00"+$QW_BW_FEE:"^FF0000NO")+"^000000 zeny per level"; + mes "Advanced Dungeon level warp fee = "+(($QW_AW_FEE)?"^00FF00"+$QW_AW_FEE:"^FF0000NO")+"^000000 zeny per level"; + mes "Overseas Dungeon level warp fee = "+(($QW_OW_FEE)?"^00FF00"+$QW_OW_FEE:"^FF0000NO")+"^000000 zeny per level"; -case 4: - next; - if ($QW_BW_FEE != 0) mes "Basic Dungeon level warp fee = ^00FF00 "+$QW_BW_FEE+" ^000000 zeny per level"; - if ($QW_BW_FEE == 0) mes "Basic Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Basic - Warps are starter town related dungeons"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_BW_FEE; - goto Setprice; - -case 5: - next; - if ($QW_AW_FEE != 0) mes "Advanced Dungeon level warp fee = ^00FF00 "+$QW_AW_FEE+" ^000000 zeny per level"; - if ($QW_AW_FEE == 0) mes "Advanced Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Advanced - Warps are dungeons not close to any starter town"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_AW_FEE; - goto Setprice; - -case 6: - next; - if ($QW_OW_FEE != 0) mes "Overseas Dungeon level warp fee = ^00FF00 "+$QW_OW_FEE+" ^000000 zeny per level"; - if ($QW_OW_FEE == 0) mes "Overseas Dungeon level warp fee = ^FF0000 NO ^000000 zeny per level"; - mes "Overseas - Warps are dungeons related to towns overseas reachable by boat from alberta"; - mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee"; - mes "These costs are on top of the regular Warp costs"; - input $QW_OW_FEE; - goto Setprice; - -case 7: - next; - if ($QW_HF_PRICE != 0) mes "Full Healing = ^00FF00 "+$QW_HF_PRICE+" ^000000"; - if ($QW_HF_PRICE == 0) mes "Full Healing = ^FF0000 Free ^000000"; - mes "Instant full healing 1 price"; - input $QW_HF_PRICE; - goto Setprice; + mes "Full Healing = "+(($QW_HF_PRICE)?"^00FF00"+$QW_HF_PRICE:"^FF0000Free")+"^000000"; + mes "^FF0000HP ^000000Part Healing = "+(($QW_HP_H_PRICE)?"^00FF00"+$QW_HP_H_PRICE+"^000000 a point":"^FF0000Free^000000"); + mes "^FF0000SP ^000000Part Healing = "+(($QW_HP_S_PRICE)?"^00FF00"+$QW_HP_S_PRICE+"^000000 a point":"^FF0000Free^000000"); -case 8: - next; - if ($QW_HP_H_PRICE != 0) mes "^FF0000HP ^000000Part Healing = ^00FF00 "+$QW_HP_H_PRICE+" ^000000 a point"; - if ($QW_HP_H_PRICE == 0) mes "^FF0000HP ^000000Part Healing = ^FF0000 Free ^000000"; - if ($QW_HP_S_PRICE != 0) mes "^0000FFSP ^000000Part Healing = ^00FF00 "+$QW_HP_S_PRICE+" ^000000 a point"; - if ($QW_HP_S_PRICE == 0) mes "^0000FFSP ^000000Part Healing = ^FF0000 Free ^000000"; - mes "Healing price per 1 HP"; - mes "Healing price per 1 SP"; - mes "2 inputs, first HP then SP"; - input $QW_HP_H_PRICE; - input $QW_HP_S_PRICE; - goto Setprice; - -case 9: - next; - if (($QW_S_PRICE != 0)&&($QW_S_PRICE != 60)) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; - if ($QW_S_PRICE == 0) mes "Storage = ^FF0000 Free ^000000"; + if ($QW_S_PRICE && $QW_S_PRICE != 60) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; + if (!$QW_S_PRICE) mes "Storage = ^FF0000 Free ^000000"; if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; - mes "Storage cost, if set to 60 Kafra pricing will be handled"; - input $QW_S_PRICE; - goto Setprice; - -case 10: - next; - if ($QW_GS_PRICE != 0) mes "Guild Storage = ^00FF00 "+$QW_GS_PRICE+" ^000000"; - if ($QW_GS_PRICE == 0) mes "Guild Storage = ^FF0000 Free ^000000"; - mes "Guild Storage, free on Guild Kafras"; - input $QW_GS_PRICE; - goto Setprice; -case 11: - goto GM_Menu; -default: - close; - end; -} + mes "Guild Storage = "+(($QW_GS_PRICE)?"^00FF00"+$QW_GS_PRICE:"^FF0000Free")+"^000000"; + + switch(select("Basic - Warps","Advanced - Warps","Overseas - Warps","Basic Dungeon warp fee","Advanced Dungeon warp fee","Overseas Dungeon warp fee","Full Healing","Part Healing","Storage","Guild Storage","Back","Exit")) { + case 1: + next; + mes "Basic - Warps are = "+(($QW_BW_PRICE)?"^00FF00"+$QW_BW_PRICE:"^FF0000Free")+"^000000"; + mes "Basic - Warps are starter towns and related dungeons."; + input $QW_BW_PRICE; + goto Setprice; + case 2: + next; + mes "Advanced - Warps are = "+(($QW_AW_PRICE)?"^00FF00"+$QW_AW_PRICE:"^FF0000Free")+"^000000"; + mes "Advanced - Warps are towns and dungeons on the same island but not close to any starter town."; + input $QW_AW_PRICE; + goto Setprice; + case 3: + next; + mes "Overseas - Warps are = "+(($QW_OW_PRICE)?"^00FF00"+$QW_OW_PRICE:"^FF0000Free")+"^000000"; + mes "Overseas - Warps are towns and dungeons overseas reachable by boat from Alberta."; + input $QW_OW_PRICE; + goto Setprice; + case 4: + next; + mes "Basic Dungeon level warp fee = "+(($QW_BW_FEE)?"^00FF00"+$QW_BW_FEE:"^FF0000NO")+"^000000 zeny per level"; + mes "Basic - Warps are starter town related dungeons."; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee."; + mes "These costs are on top of the regular Warp costs."; + input $QW_BW_FEE; + goto Setprice; + case 5: + next; + mes "Advanced Dungeon level warp fee = "+(($QW_AW_FEE)?"^00FF00"+$QW_AW_FEE:"^FF0000NO")+"^000000 zeny per level"; + mes "Advanced - Warps are dungeons not close to any starter town."; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee."; + mes "These costs are on top of the regular Warp costs."; + input $QW_AW_FEE; + goto Setprice; + case 6: + next; + mes "Overseas Dungeon level warp fee = "+(($QW_OW_FEE)?"^00FF00"+$QW_OW_FEE:"^FF0000NO")+"^000000 zeny per level"; + mes "Overseas - Warps are dungeons related to towns overseas reachable by boat from Alberta."; + mes "Dungeon warp fees are calculated by maps away from entrance of the dungeon times Dungeon warp fee."; + mes "These costs are on top of the regular Warp costs."; + input $QW_OW_FEE; + goto Setprice; + case 7: + next; + mes "Full Healing = "+(($QW_HF_PRICE)?"^00FF00"+$QW_HF_PRICE:"^FF0000Free")+"^000000"; + mes "Instant full healing 1 price."; + input $QW_HF_PRICE; + goto Setprice; + case 8: + next; + mes "^FF0000HP ^000000Part Healing = "+(($QW_HP_H_PRICE)?"^00FF00"+$QW_HP_H_PRICE+"^000000 a point":"^FF0000Free^000000"); + mes "^FF0000SP ^000000Part Healing = "+(($QW_HP_S_PRICE)?"^00FF00"+$QW_HP_S_PRICE+"^000000 a point":"^FF0000Free^000000"); + mes "Healing price per 1 HP."; + mes "Healing price per 1 SP."; + mes "2 inputs, first HP then SP."; + input $QW_HP_H_PRICE; + input $QW_HP_S_PRICE; + goto Setprice; + case 9: + next; + if ($QW_S_PRICE && $QW_S_PRICE != 60) mes "Storage = ^00FF00 "+$QW_S_PRICE+" ^000000"; + if (!$QW_S_PRICE) mes "Storage = ^FF0000 Free ^000000"; + if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; + mes "Storage cost, if set to 60 Kafra pricing will be handled."; + input $QW_S_PRICE; + goto Setprice; + case 10: + next; + mes "Guild Storage = "+(($QW_GS_PRICE)?"^00FF00"+$QW_GS_PRICE:"^FF0000Free")+"^000000"; + mes "Guild Storage, free on Guild Kafras."; + input $QW_GS_PRICE; + goto Setprice; + case 11: + goto GM_Menu; + default: + close; + end; + } //======================Special=Warp=Menu========================== @@ -381,80 +263,72 @@ SpecialWarpMenu: if ($QW_SP_WarpMap$ != "") mes "map is currently set to ^0000FF"+$QW_SP_WarpMap$+"^000000 and Special Warp menu is on"; mes "coords are set to ^0000FF"+$QW_SP_WarpX+","+$QW_SP_WarpY+"^000000"; switch(select("Set Special Warp name to show in menu", "Set WarpMap","Set Coords","Go Back to GM_Menu","Exit")){ - -case 1: - next; - mes "set the name to show in the menu as option"; - input $QW_SP_Warpname$; - goto SpecialWarpMenu; -case 2: - next; - mes "set the map in the ^0000FFmapname^000000 format"; - mes "when this warpmap is set the option for players will show once they meet the requirments"; - mes "to disable Special Warp Menu option clear this !"; - input $QW_SP_WarpMap$; - goto SpecialWarpMenu; -case 3: - next; - mes "First input = Xcoord"; - mes "Second input = Ycoord"; - input $QW_SP_WarpX; - input $QW_SP_WarpY; - goto SpecialWarpMenu; -case 4: - goto GM_Menu; -default: - close; - end; -} + case 1: + next; + mes "Set the name to show in the menu as option."; + input $QW_SP_Warpname$; + goto SpecialWarpMenu; + case 2: + next; + mes "Set the map in the ^0000FFmapname^000000 format."; + mes "When this warpmap is set the option for players will show once they meet the requirments."; + mes "To disable Special Warp Menu option, clear this!"; + input $QW_SP_WarpMap$; + goto SpecialWarpMenu; + case 3: + next; + mes "First input = Xcoord"; + mes "Second input = Ycoord"; + input $QW_SP_WarpX; + input $QW_SP_WarpY; + goto SpecialWarpMenu; + case 4: + goto GM_Menu; + default: + close; + end; + } //======================Dungeon=Level=Limit======================== + DungeonLevelLimit: next; - if ($QW_DL == 1) mes "Dungeon Depth limit is ^00FF00 On ^000000"; - if ($QW_DL == 0) mes "Dungeon Depth limit is ^FF0000 Off ^000000"; + mes "Dungeon Depth limit is "+(($QW_DL)?"^00FF00On":"^FF0000Off")+"^000000"; mes "If^00FF00 On ^000000Dungeon Depth limit is set to ^0000FF"+$QW_DDL+"^000000"; - - switch(select("Toggle Dungeon Depth Limit", "Set Dungeon Depth Limit","Go Back to GM_Menu","Exit")){ -case 1: - if ($QW_DL == 0) { - set $QW_DL,1; - goto DungeonLevelLimit; - } else - set $QW_DL,0; + switch(select("Toggle Dungeon Depth Limit","Set Dungeon Depth Limit","Go Back to GM_Menu","Exit")){ + case 1: set $QW_DL,($QW_DL)?0:1; goto DungeonLevelLimit; + case 2: + next; + mes "Set limit of Dungeon Depth 0 = entrance"; + mes "Depth 1 is a map connected to 0 and so on"; + mes "Shortest Route to map counts as depth"; + input $QW_DDL; goto DungeonLevelLimit; -case 2: - next; - mes "set limit of Dungeon Depth 0 = entrance"; - mes "Depth 1 is a map connected to 0 and so on"; - mes "Shortest Route to map counts as depth"; - input $QW_DDL; - goto DungeonLevelLimit; -case 3: - goto GM_Menu; -default: - close; - end; -} + case 3: goto GM_Menu; + default: + close; + end; + } //===========================Towns================================= L_town: callfunc "QWS_Tarray"; - -// Expected maximum is set to 25 items, if you add more options add more ",@Tmenulist$[xx]" - - set @TWMenu,select(@Tmenulist$[0],@Tmenulist$[1],@Tmenulist$[2],@Tmenulist$[3],@Tmenulist$[4],@Tmenulist$[5],@Tmenulist$[6],@Tmenulist$[7],@Tmenulist$[8],@Tmenulist$[9],@Tmenulist$[10],@Tmenulist$[11],@Tmenulist$[12],@Tmenulist$[13],@Tmenulist$[14],@Tmenulist$[15],@Tmenulist$[16],@Tmenulist$[17],@Tmenulist$[18],@Tmenulist$[19],@Tmenulist$[20],@Tmenulist$[21],@Tmenulist$[22],@Tmenulist$[23],@Tmenulist$[24]); + freeloop(1); + set .@menu$,""; + for(set .@i,0; .@i<35; set .@i,.@i+1) // Expected maximum is 35 + set .@menu$,.@menu$+@Tmenulist$[.@i]+":"; + freeloop(0); + set @TWMenu,select(.@menu$); if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0; - set Zeny, Zeny-@pTprice[@Tmenuref[@TWMenu-1]]; if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@pTprice[@Tmenuref[@TWMenu-1]]/16); warp @pTmap$[@Tmenuref[@TWMenu-1]],@pTXcoords[@Tmenuref[@TWMenu-1]],@pTYcoords[@Tmenuref[@TWMenu-1]]; - close2; // this part safegaurds against errors/typos + close2; set Zeny, Zeny+@pTprice[@Tmenuref[@TWMenu-1]]; end; @@ -462,10 +336,12 @@ L_town: L_dungeon: callfunc "QWS_Darray"; - -// Expected maximum is set to 35 items, if you add more options add more ",@Dmenulist$[xx]" - - set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30],@Dmenulist$[31],@Dmenulist$[32],@Dmenulist$[33],@Dmenulist$[34]); + freeloop(1); + set .@menu$,""; + for(set .@i,0; .@i<35; set .@i,.@i+1) // Expected maximum is 35 + set .@menu$,.@menu$+@Dmenulist$[.@i]+":"; + freeloop(0); + set @DWMenu,select(.@menu$); if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex set @DwarpMenu, (@Dmenuref[@DWMenu-1]); @@ -473,10 +349,13 @@ L_dungeon: next; mes "[Warpra]"; - mes "Please select where you want to go"; - -// Expected maximum is set to 18 items, if you have dungeons with more levels add more ",@DWLmenulist$[xx]" - set @DWLMenu,select(@DWLmenulist$[0], @DWLmenulist$[1], @DWLmenulist$[2], @DWLmenulist$[3], @DWLmenulist$[4], @DWLmenulist$[5], @DWLmenulist$[6], @DWLmenulist$[7], @DWLmenulist$[8], @DWLmenulist$[9], @DWLmenulist$[10], @DWLmenulist$[11], @DWLmenulist$[12], @DWLmenulist$[13], @DWLmenulist$[14], @DWLmenulist$[15], @DWLmenulist$[16], @DWLmenulist$[17]); + mes "Please select where you want to go:"; + freeloop(1); + set .@menu$,""; + for(set .@i,0; .@i<18; set .@i,.@i+1) // Expected maximum is 18 + set .@menu$,.@menu$+@DWLmenulist$[.@i]+":"; + freeloop(0); + set @DWLMenu,select(.@menu$); if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex @@ -484,11 +363,10 @@ L_dungeon: set @warpprice, @pDprice[@Dmenuref[@DWMenu-1]]+(getd(@pDfee$[@Dmenuref[@DWMenu-1]])*(@DDepth[@Darrayref])); if(Zeny<@warpprice) callsub L_Short_on_zeny,1; - set Zeny, Zeny-(@warpprice); if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@warpprice/16); warp @DGat$[@Darrayref],@DXcoords[@Darrayref],@DYcoords[@Darrayref]; - close2; // this part safegaurds against errors/typos + close2; set Zeny, Zeny+@pTprice[@Tmenuref[@DWMenu-1]]; end; @@ -501,7 +379,7 @@ L_heal_Full: if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@healfee/500); next; mes "[Warpra]"; - mes "Close this window and I will Heal you."; + mes "Close this window and I will heal you."; close2; percentheal 100,100; end; @@ -541,39 +419,37 @@ PHeal: Zeny_Short_Both: mes "[Warpra]"; - mes "choose another option, you can afford both."; - mes "I can heal as much as you can afford too."; + mes "Choose another option, you can afford both."; + mes "I can heal as much as you can afford, too."; if (select("OK","Exit") == 2) goto L_end; goto PHeal; Zeny_short_HP: mes "[Warpra]"; - mes "do you want me to partly heal your HP ?"; + mes "Do you want me to partly heal your HP?"; if (select("Yes","No") == 2) goto L_end; set @Hp, Zeny/$QW_HP_H_PRICE; set @HpPrice, @Hp*$QW_HP_H_PRICE; - if (@Hp == 1) mes "your not worth the effort"; + if (@Sp == 1) mes "You're not worth the effort."; if (@Hp == 1) goto L_end; set Zeny, Zeny-@HpPrice; heal @Hp,0; close; end; - - + Zeny_short_SP: mes "[Warpra]"; - mes "do you want me to partly heal your SP ?"; + mes "Do you want me to partly heal your SP?"; if (select("Yes","No") == 2) goto L_end; set @Sp, Zeny/$QW_HP_S_PRICE; set @SpPrice, @Sp*$QW_HP_S_PRICE; - if (@Sp == 1) mes "your not worth the effort"; + if (@Sp == 1) mes "You're not worth the effort."; if (@Sp == 1) goto L_end; set Zeny, Zeny-@SpPrice; heal 0,@Sp; close; end; - //=============================Storage============================= L_Storage: @@ -587,50 +463,44 @@ L_Storage: if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@fee/5); mes "[Warpra]"; - mes "Close this window and i will open your storage."; - - callsub F_CheckKafCode; //check your storage password thru kafra coding, if set - + if(#kafra_code) { + mes "Enter your storage password:"; + set @code_,0; + input @code_; + if(@code_ != #kafra_code) { + dispbottom "Wrong storage password."; + close; + } + set @kafcode_try,0; + set @code_,0; + } + mes "Close this window and I will open your storage."; close2; openstorage; end; -F_CheckKafCode: - if(#kafra_code==0) return; - mes "Enter your storage password:"; - set @code_,0; - input @code_; - if(@code_ != #kafra_code) { - dispbottom "Wrong storage password."; - close; - } - set @kafcode_try,0; - set @code_,0; - return; - L_StorageJBlow: mes "[Warpra]"; mes "I am sorry but you have to be at least Novice level 6 if you want to use the storage."; return; L_GStorage: - if(@GID==0) goto L_NoGuild; - if(Zeny<$QW_GS_PRICE) callsub L_Short_on_zeny,3; + if (!@GID) { + next; + mes "[Warpra]"; + mes "You are not a part of a guild I can't help you."; + close; + end; + } + if (Zeny<$QW_GS_PRICE) callsub L_Short_on_zeny,3; set Zeny, Zeny-$QW_GS_PRICE; if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + ($QW_GS_PRICE/5); next; mes "[Warpra]"; - mes "Close this window and i will open the ^5533FF" + GetGuildName(@GID) + "^000000 storage."; + mes "Close this window and I will open the ^5533FF" + GetGuildName(@GID) + "^000000 storage."; close2; guildopenstorage; end; - -L_NoGuild: - next; - mes "[Warpra]"; - mes "You are not a part of a guild I can't help you."; - close; - end; L_end: close; @@ -639,21 +509,19 @@ L_end: //============================Few=Warp============================= L_FewWarps: next; - mes "[Warpra ]"; + mes "[Warpra]"; mes "You need to unlock locations before they come available to you."; mes "To unlock a location talk to my colleagues all over the world."; - mes "Each account got it's own stamp card."; - mes "Want me to check what stamps you have collected so far ?."; + mes "Each account has its own stamp card."; + mes "Want me to check what stamps you have collected so far?"; if (select("Yes","No")==1) callsub stampcard; close; end; - //============================No=Unlock============================ - L_NoUnlock: next; - mes "[Warpra ]"; + mes "[Warpra]"; mes "I don't unlock this location, my assistant deeper in the dungeon will unlock this place."; close; end; @@ -661,11 +529,13 @@ L_NoUnlock: //=========================Short=On=Zeny=========================== L_Short_on_zeny: next; - if (getarg(0) == 0) mes "you don't seem to have "+@pTprice[@Tmenuref[@TWMenu-1]]+" zeny, to pay for the warp fee to "+@pTmenuitems$[@Tmenuref[@TWMenu-1]]+""; - if (getarg(0) == 1) mes "you don't seem to have "+@warpprice+" zeny, to pay for the warp fee to "+@DLevelName$[@DWLmenuref[@DWLMenu-1]]+" at "+@pDmenuitems$[@Dmenuref[@DWMenu-1]]+""; - if (getarg(0) == 2) mes "you don't seem to have "+@fee+" zeny, to pay for the storage fee"; - if (getarg(0) == 3) mes "you don't seem to have "+$QW_GS_PRICE+" zeny, to pay for the guild storage fee"; - if (getarg(0) == 4) mes "you don't seem to have "+@healfee+" zeny, to pay for your healing"; + switch(getarg(0)) { + case 0: mes "You don't seem to have "+@pTprice[@Tmenuref[@TWMenu-1]]+" zeny to pay for the warp to "+@pTmenuitems$[@Tmenuref[@TWMenu-1]]+"."; break; + case 1: mes "You don't seem to have "+@warpprice+" zeny to pay for the warp to "+@DLevelName$[@DWLmenuref[@DWLMenu-1]]+" at "+@pDmenuitems$[@Dmenuref[@DWMenu-1]]+"."; break; + case 2: mes "You don't seem to have "+@fee+" zeny to pay the storage fee."; break; + case 3: mes "You don't seem to have "+$QW_GS_PRICE+" zeny to pay the guild storage fee."; break; + case 4: mes "You don't seem to have "+@healfee+" zeny to pay for your healing."; break; + } close; end; @@ -673,38 +543,31 @@ L_Short_on_zeny: stampcard: // Counting of the ammount of places you have unlocked next; - mes "Let me check what Towns you have"; - + mes "Let me check what Towns you have."; callfunc "QWS_TownStamps"; - - mes "you collected^00FF00 "+@Tstamp+" of "+@MaxTstamp+" ^000000Towns."; - if (@Tstamp == 15) mes "They say there is an island you can only get to when married"; + mes "You collected^00FF00 "+@Tstamp+" of "+@MaxTstamp+" ^000000Towns."; + if (@Tstamp == 15) mes "They say there is an island you can only get to when married..."; if (@Tstamp == 15) emotion 18; next; - - mes "Let me check what dungeons you have"; - + mes "Let me check what dungeons you have."; callfunc "QWS_DungeonStamps"; - - mes "you collected^00FF00 "+@Dstamp+" of "+@MaxDstamp+" ^000000Dungeons"; - mes "To unlock a dungeon, search for my colleague."; - mes "You can usually find them near the middle or end of the dungeon"; + mes "You collected^00FF00 "+@Dstamp+" of "+@MaxDstamp+" ^000000Dungeons."; + mes "To unlock a dungeon, search for my colleagues."; + mes "You can usually find them near the middle or end of the dungeon."; return; } function script QWS_TownStamps { set @Tstamp,0; - set @MaxTstamp,21; //maximum number of towns + set @MaxTstamp,30; //maximum number of towns set @binvalue,1; set @Tstamploop,0; do { - if ((@binvalue & ##QWS_T_Unlock) == @binvalue) set @Tstamp,@Tstamp+1; - - set @binvalue, @binvalue *2; - set @Tstamploop, @Tstamploop + 1; - -}while (@Tstamploop < @MaxTstamp); -return; + if ((@binvalue & ##QWS_T_Unlock) == @binvalue) set @Tstamp,@Tstamp+1; + set @binvalue, @binvalue *2; + set @Tstamploop, @Tstamploop + 1; + } while (@Tstamploop < @MaxTstamp); + return; } function script QWS_DungeonStamps { @@ -713,47 +576,51 @@ function script QWS_DungeonStamps { set @binvalue,1; set @Dstamploop,0; do { - if ((@binvalue & ##QWS_D_Unlock) == @binvalue) set @Dstamp,@Dstamp+1; - - set @binvalue, @binvalue *2; - set @Dstamploop, @Dstamploop + 1; - -}while (@Dstamploop < @MaxDstamp); -return; + if ((@binvalue & ##QWS_D_Unlock) == @binvalue) set @Dstamp,@Dstamp+1; + set @binvalue, @binvalue *2; + set @Dstamploop, @Dstamploop + 1; + } while (@Dstamploop < @MaxDstamp); + return; } //======================Main=Menu=Array============================ function script QWS_MMarray { -// Currently 9 items + // Currently 9 items + setarray @pMmenuitems$[0], "GameMaster Menu", $QW_SP_Warpname$, "Warp to Towns", "Warp to Dungeons", "Why so few warps?", "Why don't you unlock this location?", "Heal", "Heal", "Storage", "Guild Storage", "Cancel"; + set @Mi,0; // loop counter + set @Mj,0; // menu line counter - setarray @pMmenuitems$[0], "GameMaster Menu", $QW_SP_Warpname$, "Warp to Towns", "Warp to Dungeons", "Why so few Warps ?", "Why don't you Unlock this location ?", "Heal", "Heal", "Storage", "Guild Storage", "Cancel"; - set @Mi,0; // That's our loop counter. - set @Mj,0; // That's the menu lines counter. //----------------GameMaster-Menu - if (getgmlevel()>= 80) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if (getgmlevel()>= 80) set @Mmenuref[@Mj],@Mi; - if (getgmlevel()>= 80) set @Mj,@Mj+1; + if (getgmlevel()>= 80) { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } set @Mi,@Mi+1; //----------------Special-Warp callfunc "QWS_TownStamps"; callfunc "QWS_DungeonStamps"; if (@Tstamp == @MaxTstamp)&&(@Dstamp == @MaxDstamp)&&($QW_SP_WarpMap$ != "") { - set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - set @Mmenuref[@Mj],@Mi; - set @Mj,@Mj+1; + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; } set @Mi,@Mi+1; //----------------Town-Warp - if ($QW_TW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_TW_OFF == 0) set @Mmenuref[@Mj],@Mi; - if ($QW_TW_OFF == 0) set @Mj,@Mj+1; + if ($QW_TW_OFF == 0) { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } set @Mi,@Mi+1; //----------------Dungeon-Warp - if ($QW_DW_OFF == 0) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_DW_OFF == 0) set @Mmenuref[@Mj],@Mi; - if ($QW_DW_OFF == 0) set @Mj,@Mj+1; + if ($QW_DW_OFF == 0) { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } set @Mi,@Mi+1; //----------------Why-So-Few-Warps set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; @@ -761,74 +628,71 @@ function script QWS_MMarray { set @Mj,@Mj+1; set @Mi,@Mi+1; //----------------No-Unlock - if (getarg(0) == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if (getarg(0) == 1) set @Mmenuref[@Mj],@Mi; - if (getarg(0) == 1) set @Mj,@Mj+1; + if (getarg(0) == 1) { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } set @Mi,@Mi+1; //----------------Healfull - if ($QW_HF == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_HF == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_HF == 1) set @Mj,@Mj+1; + if ($QW_HF == 1) { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } set @Mi,@Mi+1; //----------------Healpart - if ($QW_HP == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_HP == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_HP == 1) set @Mj,@Mj+1; + if ($QW_HP == 1) { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } set @Mi,@Mi+1; //----------------Storage - if ($QW_Stor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_Stor == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_Stor == 1) set @Mj,@Mj+1; + if ($QW_Stor == 1) { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } set @Mi,@Mi+1; //----------------GuildStorage - if ($QW_GStor == 1) set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; - if ($QW_GStor == 1) set @Mmenuref[@Mj],@Mi; - if ($QW_GStor == 1) set @Mj,@Mj+1; + if ($QW_GStor == 1) { + set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; + set @Mmenuref[@Mj],@Mi; + set @Mj,@Mj+1; + } set @Mi,@Mi+1; //----------------Cancel set @Mmenulist$[@Mj],@pMmenuitems$[@Mi]; set @Mmenuref[@Mj],@Mi; return; - } - - +} //======================Town=Menu=Array============================ - -//----------------Prontera // I do this to find back sections quickly altho almost the same name is a line below it now -// setarray @pTmenuitems$[@Ti], "Prontera"; // Name of Town shown in Town select Menu -// setarray @pTprice[@Ti], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) -// -// setarray @pTmap$[@Ti], "prontera"; // mapfilename of town -// setarray @pTXcoords[@Ti], 156; // X warp coords -// setarray @pTYcoords[@Ti], 187; // Y warp coords -// -// QWS_Make_Town_Menu XXX; +// Adding a town: +// setarray @pTmenuitems$[@Ti], "Prontera";// Name of Town shown in Town select Menu +// setarray @pTprice[@Ti], $QW_BW_PRICE; // Warp prices: Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas ($QW_OW_PRICE) // -// the full wap commands send out by this script for these example would be -//warp example_01 123 123 +// setarray @pTmap$[@Ti], "prontera"; // Map name +// setarray @pTXcoords[@Ti], 156; // X warp coords +// setarray @pTYcoords[@Ti], 187; // Y warp coords // -// use the same XXX number as you used when making your own town warpra -// Read below how +// QWS_Make_Town_Menu 0; // Use a free number (last used is 30, Eclage) // -// example: -// -//syntax: -//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ -// -// Full example using fake map & coords -// -//example_01,213,213,4 script Warpra 112,{ -// callfunc "QWS_Town_Warpra",XXX,"A FAKE TOWN FOR EXAMPLE"; -// close; +// Adding a warpra: +// map,x,y,facing script Warpra#example 113,{ +// callfunc "QWS_Town_Warpra",,"Your Town"; +// close; // } -// use a free number for XXX, last used is 20, for Yuno +// Town number is the same as "QWS_Make_Town_Menu". +//================================================================== function script QWS_Tarray { function QWS_Make_Town_Menu; - set @Ti,0; // That's our loop counter. - set @Tj,0; // That's the menu lines counter. + set @Ti,0; // loop counter + set @Tj,0; // menu lines counter + //----------------Prontera setarray @pTmenuitems$[@Ti], "Prontera"; setarray @pTprice[@Ti], $QW_BW_PRICE; @@ -874,6 +738,15 @@ function script QWS_Tarray { setarray @pTYcoords[@Ti], 57; QWS_Make_Town_Menu 4; +//----------------Brasilis: + setarray @pTmenuitems$[@Ti], "Brasilis"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "brasilis"; + setarray @pTXcoords[@Ti], 195; + setarray @pTYcoords[@Ti], 220; + + QWS_Make_Town_Menu 21; //----------------Comodo: setarray @pTmenuitems$[@Ti], "Comodo"; setarray @pTprice[@Ti], $QW_AW_PRICE; @@ -883,6 +756,24 @@ function script QWS_Tarray { setarray @pTYcoords[@Ti], 161; QWS_Make_Town_Menu 5; +//----------------Dewata: + setarray @pTmenuitems$[@Ti], "Dewata"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "dewata"; + setarray @pTXcoords[@Ti], 199; + setarray @pTYcoords[@Ti], 179; + + QWS_Make_Town_Menu 29; +//----------------Eclage: + setarray @pTmenuitems$[@Ti], "Eclage"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "eclage"; + setarray @pTXcoords[@Ti], 111; + setarray @pTYcoords[@Ti], 39; + + QWS_Make_Town_Menu 30; //----------------Einbech: setarray @pTmenuitems$[@Ti], "Einbech"; setarray @pTprice[@Ti], $QW_AW_PRICE; @@ -901,6 +792,15 @@ function script QWS_Tarray { setarray @pTYcoords[@Ti], 191; QWS_Make_Town_Menu 7; +//----------------El Dicastes: + setarray @pTmenuitems$[@Ti], "El Dicastes"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "dicastes01"; + setarray @pTXcoords[@Ti], 197; + setarray @pTYcoords[@Ti], 187; + + QWS_Make_Town_Menu 22; //----------------Geffen: setarray @pTmenuitems$[@Ti], "Geffen"; setarray @pTprice[@Ti], $QW_BW_PRICE; @@ -973,6 +873,24 @@ function script QWS_Tarray { setarray @pTYcoords[@Ti], 131; QWS_Make_Town_Menu 15; +//----------------Manuk + setarray @pTmenuitems$[@Ti], "Manuk"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "manuk"; + setarray @pTXcoords[@Ti], 260; + setarray @pTYcoords[@Ti], 175; + + QWS_Make_Town_Menu 23; +//----------------Mora + setarray @pTmenuitems$[@Ti], "Mora"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "mora"; + setarray @pTXcoords[@Ti], 111; + setarray @pTYcoords[@Ti], 97; + + QWS_Make_Town_Menu 24; //----------------Morroc: setarray @pTmenuitems$[@Ti], "Morroc"; setarray @pTprice[@Ti], $QW_BW_PRICE; @@ -982,6 +900,15 @@ function script QWS_Tarray { setarray @pTYcoords[@Ti], 93; QWS_Make_Town_Menu 16; +//----------------Moscovia + setarray @pTmenuitems$[@Ti], "Moscovia"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "moscovia"; + setarray @pTXcoords[@Ti], 219; + setarray @pTYcoords[@Ti], 193; + + QWS_Make_Town_Menu 25; //----------------Niflheim: setarray @pTmenuitems$[@Ti], "Niflheim"; setarray @pTprice[@Ti], $QW_AW_PRICE; @@ -1000,6 +927,24 @@ function script QWS_Tarray { setarray @pTYcoords[@Ti], 75; QWS_Make_Town_Menu 18; +//----------------Rachel + setarray @pTmenuitems$[@Ti], "Rachel"; + setarray @pTprice[@Ti], $QW_AW_PRICE; + + setarray @pTmap$[@Ti], "rachel"; + setarray @pTXcoords[@Ti], 130; + setarray @pTYcoords[@Ti], 111; + + QWS_Make_Town_Menu 26; +//----------------Splendide + setarray @pTmenuitems$[@Ti], "Splendide"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "splendide"; + setarray @pTXcoords[@Ti], 200; + setarray @pTYcoords[@Ti], 153; + + QWS_Make_Town_Menu 27; //----------------Umbala: setarray @pTmenuitems$[@Ti], "Umbala"; setarray @pTprice[@Ti], $QW_AW_PRICE; @@ -1009,6 +954,15 @@ function script QWS_Tarray { setarray @pTYcoords[@Ti], 130; QWS_Make_Town_Menu 19; +//----------------Veins + setarray @pTmenuitems$[@Ti], "Veins"; + setarray @pTprice[@Ti], $QW_OW_PRICE; + + setarray @pTmap$[@Ti], "veins"; + setarray @pTXcoords[@Ti], 216; + setarray @pTYcoords[@Ti], 123; + + QWS_Make_Town_Menu 28; //----------------Yuno: setarray @pTmenuitems$[@Ti], "Yuno"; setarray @pTprice[@Ti], $QW_AW_PRICE; @@ -1040,8 +994,8 @@ function QWS_Make_Town_Menu { // check marker and make menu item menu_item: if ((@temptownmenubin & ##QWS_T_Unlock) != @temptownmenubin) { - set @Ti,@Ti+1; - return; + set @Ti,@Ti+1; + return; } if (@pTprice[@Ti] != 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]+" -> "+@pTprice[@Ti]; if (@pTprice[@Ti] == 0)&&($QW_MapUserShow == 0) set @Tmenulist$[@Tj], @pTmenuitems$[@Ti]; @@ -1051,49 +1005,31 @@ menu_item: set @Tj,@Tj+1; set @Ti,@Ti+1; return; - } } //====================Dungeon=Menu=Arrays========================== - -//----------------A FAKE DUNGEON FOR EXAMPLE // I do this to find back sections quickly altho almost the same name is a line below it now -// setarray @pDmenuitems$[@Di], "Fake Dungeon"; // Name of Dungeon shown in Dungeon select Menu -// setarray @pDprice[@Di], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE) -// setarray @pDfee$[@Di], "$QW_BW_FEE"; // Identifyer for the Dungeon fee caluclation (Basic ("$QW_BW_FEE"), Advanced ("$QW_AW_FEE"), Overseas ("$QW_OW_FEE")) please use setting in relation with option above (Don't forget "") -// setarray @DLevels[@Di], 2; //number of levels in dungeon (very important if set to high will shift all leveldata!!) +// Adding a dungeon: +// setarray @pDmenuitems$[@Di], "Abyss Lake"; // Name of Dungeon shown in Dungeon select Menu +// setarray @pDprice[@Di], $QW_AW_PRICE; // Warp prices: Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas ($QW_OW_PRICE) +// setarray @pDfee$[@Di], "$QW_AW_FEE"; // Identifier for fee caluclation: Basic ("$QW_BW_FEE"), Advanced ("$QW_AW_FEE"), Overseas ("$QW_OW_FEE") +// setarray @DLevels[@Di], 3; // Number of levels in dungeon // -// setarray @DGat$[@Dref], "example_01", "example_02"; // mapfilename of dungeon level -// setarray @DLevelName$[@Dref], "Example Level 1", "Example Level 2"; // level name shown in dungeon level select -// setarray @DXcoords[@Dref], 123, 234; // X warp coords -// setarray @DYcoords[@Dref], 123, 234;// Y warp coords -// setarray @DDepth[@Dref], 0, 1; // relative depth to entrance to calculate extra warp fee +// setarray @DGat$[@Dref], "abyss_01", "abyss_02", "abyss_03"; // Map names of dungeon levels +// setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3"; // Name of dungeon levels shown in Menu +// setarray @DXcoords[@Dref], 265, 275, 116; // X warp coords +// setarray @DYcoords[@Dref], 273, 270, 27; // Y warp coords +// setarray @DDepth[@Dref], 0, 1, 2; // Relative depth to entrance, to calculate extra warp fee // -// QWS_Make_Dungeon_Menu XXX +// QWS_Make_Dungeon_Menu 0; // Use a free number (last used is 28, Kiel Dungeon) // -// the full wap commands send out by this scripts for these examples would be -// for Example Level 1: -//warp example_01 123 123 -// -// for Example Level 2: -//warp example_02 234 234 -// -// use the same XXX number as you used when making your own dungeon unlocker (Warpra Helper) inside the dungeon -// (usually half way near a warp to next level) -// Read below how -// -// example: -// -//syntax: -//mapname,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ -// -// Full example using fake map & coords -// -//example_01,213,213,4 script Warpra Helper 112,{ -// callfunc "QWS_Dungeon_Warpra",XXX,"A FAKE DUNGEON FOR EXAMPLE"; -// close; +// Adding a warpra: +// map,x,y,facing script Warpra Helper#example 112,{ +// callfunc "QWS_Dungeon_Warpra",,"Your Dungeon"; +// close; // } -// use a free number for XXX, last used is 28, for Kiel Dungeon +// Dungeon number is the same as "QWS_Make_Dungeon_Menu". +//================================================================== function script QWS_Darray { function QWS_Make_Dungeon_Menu; @@ -1101,6 +1037,7 @@ function script QWS_Darray { set @Di,0; set @Dj,0; set @Dref,0; + //----------------ABYSS LAKE setarray @pDmenuitems$[@Di], "Abyss Lake"; setarray @pDprice[@Di], $QW_AW_PRICE; @@ -1529,10 +1466,10 @@ function QWS_Make_Dungeon_Menu { // check marker and make menu item menu_item: if ((@tempdungeonmenubin & ##QWS_D_Unlock) != @tempdungeonmenubin) { - setarray @DLocRef[@Di], @Dref; - set @Dref, @Dref+@DLevels[@Di]; - set @Di,@Di+1; - return; + setarray @DLocRef[@Di], @Dref; + set @Dref, @Dref+@DLevels[@Di]; + set @Di,@Di+1; + return; } if ($QW_MapUserShow == 1) { set @tempmapusers,0; @@ -1540,15 +1477,15 @@ menu_item: do { set @tempmapusers,(getmapusers(@DGat$[@Dref+@mapusersloop]) + @tempmapusers); set @mapusersloop, (@mapusersloop + 1); - }while (@DLevels[@Di] > @mapusersloop); - if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"] -> "+@pDprice[@Di]; - if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"]"; - set @Dmenuref[@Dj],@Di; - set @Dj,@Dj+1; - setarray @DLocRef[@Di], @Dref; - set @Dref, @Dref+@DLevels[@Di]; - set @Di,@Di+1; - return; + } while (@DLevels[@Di] > @mapusersloop); + if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"] -> "+@pDprice[@Di]; + if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" ["+@tempmapusers+"]"; + set @Dmenuref[@Dj],@Di; + set @Dj,@Dj+1; + setarray @DLocRef[@Di], @Dref; + set @Dref, @Dref+@DLevels[@Di]; + set @Di,@Di+1; + return; } if (@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di]; if (@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]; @@ -1558,218 +1495,31 @@ menu_item: set @Dref, @Dref+@DLevels[@Di]; set @Di,@Di+1; return; - } } function script QWS_DLarray { //----------------Start building Menu - set @DWref,@DLocRef[@DwarpMenu]; // That's our reference to the arrays with leveldata. - set @DWi,0; // That's our loop counter. - set @DWj,0; // That's the menu lines counter. + set @DWref,@DLocRef[@DwarpMenu]; // reference to the arrays with leveldata + set @DWi,0; // loop counter + set @DWj,0; // menu lines counter cleararray @DWLmenulist$[0],"",20; // Clearing the array to get rid off ghost items in menu do { if ($QW_DL == 0)||($QW_DDL >= @DDepth[@DWref]) { - set @warpprice, (@pDprice[@DwarpMenu]+ (getd(@pDfee$[@DwarpMenu])*@DDepth[@DWref])); - if (@warpprice != 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" -> "+@warpprice; if (@warpprice == 0)&&($QW_MapUserShow == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]; if (@warpprice != 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"] -> "+@warpprice; if (@warpprice == 0)&&($QW_MapUserShow == 1) set @DWLmenulist$[@DWj], @DLevelName$[@DWref]+" ["+getmapusers(@DGat$[@DWref])+"]"; set @DWLmenuref[@DWj],@DWref; - - set @DWj,@DWj+1; + set @DWj,@DWj+1; } set @DWref, @DWref+1; set @DWi,@DWi+1; - }while (@DWi < @DLevels[@DwarpMenu]); + } while (@DWi < @DLevels[@DwarpMenu]); set @DWLmenulist$[@DWj], "Exit"; set @DWLmenuref[@DWj],57005; // 57005='dead' in hex return; - } - - -//=================Backwards=Compatibility=Pre=1.8================= - -function script QWS_BackComp { -// reference where i put the towns: "Prontera"[0], "Alberta"[1], "Aldebaran"[2], "Amatsu"[3], "Ayothaya"[4], "Comodo"[5], "Einbech"[6], "Einbroch"[7], "Geffen"[8], "Gonryun"[9], "Hugel"[10], "Izlude"[11], "Jawaii"[12], "Lighthalzen"[13], "Louyang"[14], "Lutie"[15], "Morroc"[16], "Niflheim"[17], "Payon"[18], "Umbala"[19], "Yuno"[20]; -// reference where i put the dungeons: "Abyss Lake"[0], "Amatsu Dungeon"[1], "Ant Hell Dungeon"[2], "Ayotaya Dungeon"[3], "Byalan Dungeon"[4], "Clock Tower Dungeon"[5], "Coal Mine Dungeon"[6], "Culvert Dungeon"[7], "Einbech Dungeon"[8], "Gefenia Dungeon"[9], "Geffen Dungeon"[10], "Glast Heim Dungeon"[11], "Gonryun Dungeon"[12], "Hidden Dungeon"[13], "Juperos Cave"[14], "Lighthalzen Bio Lab"[15], "Louyang Dungeon"[16], "Magma Dungeon"[17], "Odin Temple"[18], "Orc Dungeon"[19], "Payon Dungeon"[20], "Pyramids Dungeon"[21], "Sphinx Dungeon"[22], "Sunken Ship Dungeon"[23], "Thanatos Tower"[24], "Toy Factory Dungeon"[25], "Turtle Island Dungeon"[26], "Umbala Dungeon"[27], "Kiel Dungeon[28]; -// also clears variables so that the account file variables can be used for something else variable 0 = variable delete on next save - -// Towns - set @towntemp,0; - if (#prontera != 0) set @towntemp,@towntemp + 1; - if (#alberta != 0) set @towntemp,@towntemp + 2; - if (#aldebaran != 0) set @towntemp,@towntemp + 4; - if (#amatsu != 0) set @towntemp,@towntemp + 8; - if (#ayotaya != 0) set @towntemp,@towntemp + 16; - if (#comodo != 0) set @towntemp,@towntemp + 32; - if (#einbech != 0) set @towntemp,@towntemp + 64; - if (#einbroch != 0) set @towntemp,@towntemp + 128; - if (#geffen != 0) set @towntemp,@towntemp + 256; - if (#gonryun != 0) set @towntemp,@towntemp + 512; - if (#hugel != 0) set @towntemp,@towntemp + 1024; - if (#izlude != 0) set @towntemp,@towntemp + 2048; - if (#jawaii != 0) set @towntemp,@towntemp + 4096; - if (#lighthalzen != 0) set @towntemp,@towntemp + 8192; - if (#louyang != 0) set @towntemp,@towntemp + 16384; - if (#xmas != 0) set @towntemp,@towntemp + 32768; - if (#morocc != 0) set @towntemp,@towntemp + 65536; - if (#niflheim != 0) set @towntemp,@towntemp + 131072; - if (#payon != 0) set @towntemp,@towntemp + 262144; - if (#umbala != 0) set @towntemp,@towntemp + 524288; - if (#yuno != 0) set @towntemp,@towntemp + 1048576; -// Clear Town variables - set #prontera,0; - set #alberta,0; - set #aldebaran,0; - set #amatsu,0; - set #ayotaya,0; - set #comodo,0; - set #einbech,0; - set #einbroch,0; - set #geffen,0; - set #gonryun,0; - set #hugel,0; - set #izlude,0; - set #jawaii,0; - set #lighthalzen,0; - set #louyang,0; - set #xmas,0; - set #morocc,0; - set #niflheim,0; - set #payon,0; - set #umbala,0; - set #yuno,0; -// set Town warp unlock variable -set ##QWS_T_Unlock, (##QWS_T_Unlock | @towntemp); - //because multiple account servers now stack on 1 variable i used a 'or' to stack them -// Dungeons - set @dungeontemp,0; - if (#abyss != 0) set @dungeontemp,@dungeontemp + 1; - if (#ama_dun != 0) set @dungeontemp,@dungeontemp + 2; - if (#anthell != 0) set @dungeontemp,@dungeontemp + 4; - if (#ayotaya_dun != 0) set @dungeontemp,@dungeontemp + 8; - if (#iz_dun != 0) set @dungeontemp,@dungeontemp + 16; - if (#c_tower != 0) set @dungeontemp,@dungeontemp + 32; - if (#mjo_dun != 0) set @dungeontemp,@dungeontemp + 64; - if (#prt_sewb != 0) set @dungeontemp,@dungeontemp + 128; - if (#einbech_dun != 0) set @dungeontemp,@dungeontemp + 256; - if (#gefenia != 0) set @dungeontemp,@dungeontemp + 512; - if (#gef_dun != 0) set @dungeontemp,@dungeontemp + 1024; - if (#gl_dun != 0) set @dungeontemp,@dungeontemp + 2048; - if (#gon_dun != 0) set @dungeontemp,@dungeontemp + 4096; - if (#hid_dun != 0) set @dungeontemp,@dungeontemp + 8192; - if (#juperos != 0) set @dungeontemp,@dungeontemp + 16384; - if (#lighthalzen_dun != 0) set @dungeontemp,@dungeontemp + 32768; - if (#louyang_dun != 0) set @dungeontemp,@dungeontemp + 65536; - if (#mag_dun != 0) set @dungeontemp,@dungeontemp + 131072; - if (#odintemple != 0) set @dungeontemp,@dungeontemp + 262144; - if (#orcsdun != 0) set @dungeontemp,@dungeontemp + 524288; - if (#pay_dun != 0) set @dungeontemp,@dungeontemp + 1048576; - if (#moc_pryd != 0) set @dungeontemp,@dungeontemp + 2097152; - if (#in_sphinx != 0) set @dungeontemp,@dungeontemp + 4194304; - if (#treasure != 0) set @dungeontemp,@dungeontemp + 8388608; - if (#thanatos_tower != 0) set @dungeontemp,@dungeontemp + 16777216; - if (#xmas_dun != 0) set @dungeontemp,@dungeontemp + 33554432; - if (#tur_dun != 0) set @dungeontemp,@dungeontemp + 67108864; - if (#um_dun != 0) set @dungeontemp,@dungeontemp + 134217728; -// Clear Dungeon variables - set #abyss,0; - set #ama_dun,0; - set #anthell,0; - set #ayotaya_dun,0; - set #iz_dun,0; - set #c_tower,0; - set #mjo_dun,0; - set #prt_sewb,0; - set #einbech_dun,0; - set #gefenia,0; - set #gef_dun,0; - set #gl_dun,0; - set #gon_dun,0; - set #hid_dun,0; - set #juperos,0; - set #lighthalzen_dun,0; - set #louyang_dun,0; - set #mag_dun,0; - set #odintemple,0; - set #orcsdun,0; - set #pay_dun,0; - set #moc_pryd,0; - set #in_sphinx,0; - set #treasure,0; - set #thanatos_tower,0; - set #xmas_dun,0; - set #tur_dun,0; - set #um_dun,0; -// set Town warp unlock variable -set ##QWS_D_Unlock, (##QWS_D_Unlock | @dungeontemp); -//mark that this character has done the upgrade to 1.8 -set ##QWS_UP,18; -return; -} - - -//===================Extra=Variable=Clear=Pre=1.8================== -function script Extra_Variable_Clear { -// Clear Town variables - set #prontera,0; - set #alberta,0; - set #aldebaran,0; - set #amatsu,0; - set #ayotaya,0; - set #comodo,0; - set #einbech,0; - set #einbroch,0; - set #geffen,0; - set #gonryun,0; - set #hugel,0; - set #izlude,0; - set #jawaii,0; - set #lighthalzen,0; - set #louyang,0; - set #xmas,0; - set #morocc,0; - set #niflheim,0; - set #payon,0; - set #umbala,0; - set #yuno,0; - -// Clear Dungeon variables - set #abyss,0; - set #ama_dun,0; - set #anthell,0; - set #ayotaya_dun,0; - set #iz_dun,0; - set #c_tower,0; - set #mjo_dun,0; - set #prt_sewb,0; - set #einbech_dun,0; - set #gefenia,0; - set #gef_dun,0; - set #gl_dun,0; - set #gon_dun,0; - set #hid_dun,0; - set #juperos,0; - set #lighthalzen_dun,0; - set #louyang_dun,0; - set #mag_dun,0; - set #odintemple,0; - set #orcsdun,0; - set #pay_dun,0; - set #moc_pryd,0; - set #in_sphinx,0; - set #treasure,0; - set #thanatos_tower,0; - set #xmas_dun,0; - set #tur_dun,0; - set #um_dun,0; - -// as the account based variables are limited just run this on every character to save some variables -set QWS_ExtraVARClear,18; -return; } //================Dungeon=Warpras=That=Only=Unlock================= @@ -1783,12 +1533,12 @@ function script QWS_Dungeon_Warpra { mes getarg(1)+" unlocked!"; QWS_D_setbin(getarg(0)); return; - } else if (QWS_D_getbin(getarg(0)) == 1){ + } else if (QWS_D_getbin(getarg(0)) == 1) { mes "[Warpra]"; - mes "Sorry I can only unlock this location."; + mes "Sorry, I can only unlock this location."; } else - debugmes "QWS_Dungeon_Warpra error, improper syntax ?"; - return; + debugmes "QWS_Dungeon_Warpra error, improper syntax?"; + return; function QWS_D_setbin { @@ -1809,8 +1559,8 @@ function QWS_D_getbin { if (getarg(0) == 0) goto binget; set @temploopgetbin,0; do { - set @tempgetbindata, @tempgetbindata * 2; - set @temploopgetbin, @temploopgetbin + 1; + set @tempgetbindata, @tempgetbindata * 2; + set @temploopgetbin, @temploopgetbin + 1; } while (getarg(0) > @temploopgetbin); binget: if ((@tempgetbindata & ##QWS_D_Unlock) == @tempgetbindata) return 1; @@ -1829,20 +1579,19 @@ function script QWS_Town_Warpra { mes getarg(1)+" unlocked!"; QWS_T_setbin(getarg(0)); return; - } else if (QWS_T_getbin(getarg(0)) == 1){ -callfunc "Q_Warpra",0; + } else if (QWS_T_getbin(getarg(0)) == 1) { + callfunc "Q_Warpra",0; } else debugmes "QWS_Town_Warpra error, improper syntax ?"; - return; - + return; function QWS_T_setbin { set @tempsetbindata,1; if (getarg(0) == 0) goto binset; set @temploopsetbin,0; do { - set @tempsetbindata, @tempsetbindata * 2; - set @temploopsetbin, @temploopsetbin + 1; + set @tempsetbindata, @tempsetbindata * 2; + set @temploopsetbin, @temploopsetbin + 1; } while (getarg(0) > @temploopsetbin); binset: set ##QWS_T_Unlock,(##QWS_T_Unlock | @tempsetbindata); @@ -1854,8 +1603,8 @@ function QWS_T_getbin { if (getarg(0) == 0) goto binget; set @temploopgetbin,0; do { - set @tempgetbindata, @tempgetbindata * 2; - set @temploopgetbin, @temploopgetbin + 1; + set @tempgetbindata, @tempgetbindata * 2; + set @temploopgetbin, @temploopgetbin + 1; } while (getarg(0) > @temploopgetbin); binget: if ((@tempgetbindata & ##QWS_T_Unlock) == @tempgetbindata) return 1; @@ -1864,274 +1613,80 @@ binget: } //============================Warpras============================== -alb2trea,73,101,4 script Warpra#1 113,{ - callfunc "Q_Warpra",1; -} -ama_fild01,178,325,1 script Warpra#2 113,{ - callfunc "Q_Warpra",1; -} -gef_fild10,71,339,4 script Warpra#3 113,{ - callfunc "Q_Warpra",1; -} -izlu2dun,104,82,4 script Warpra#4 113,{ - callfunc "Q_Warpra",1; -} -mjolnir_02,85,363,4 script Warpra#5 113,{ - callfunc "Q_Warpra",1; -} -moc_fild04,207,331,4 script Warpra#6 113,{ - callfunc "Q_Warpra",1; -} -moc_fild19,106,97,4 script Warpra#7 113,{ - callfunc "Q_Warpra",1; -} -moc_ruins,64,166,4 script Warpra#8 113,{ - callfunc "Q_Warpra",1; -} -niflheim,197,192,3 script Warpra#9 113,{ - callfunc "Q_Warpra",1; -} -pay_arche,39,135,4 script Warpra#10 113,{ - callfunc "Q_Warpra",1; -} -prt_fild05,273,215,4 script Warpra#11 113,{ - callfunc "Q_Warpra",1; -} -tur_dun01,148,239,4 script Warpra#12 113,{ - callfunc "Q_Warpra",1; -} -valkyrie,48,35,8 script Warpra#13 113,{ - callfunc "Q_Warpra",1; -} -yuno_fild03,37,135,4 script Warpra#14 113,{ - callfunc "Q_Warpra",1; -} - -alberta,32,240,4 script Warpra#15 113,{ - callfunc "QWS_Town_Warpra",1,"Alberta Town"; - close; -} -aldebaran,146,118,4 script Warpra#16 113,{ - callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; - close; -} -ayothaya,216,171,5 script Warpra#17 113,{ - callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; - close; -} -amatsu,193,81,1 script Warpra#18 113,{ - callfunc "QWS_Town_Warpra",3,"Amatsu Town"; - close; -} -comodo,195,158,4 script Warpra#19 113,{ - callfunc "QWS_Town_Warpra",5,"Comodo Town"; - close; -} -einbroch,229,196,5 script Warpra#20 113,{ - callfunc "QWS_Town_Warpra",7,"Einbroch Town"; - close; -} -einbech,173,131,5 script Warpra#21 113,{ - callfunc "QWS_Town_Warpra",6,"Einbech Town"; - close; -} -geffen,116,66,4 script Warpra#22 113,{ - callfunc "QWS_Town_Warpra",8,"Geffen Town"; - close; -} -gonryun,152,130,4 script Warpra#23 113,{ - callfunc "QWS_Town_Warpra",9,"Gonryun Town"; - close; -} -hugel,90,127,5 script Warpra#24 113,{ - callfunc "QWS_Town_Warpra",10,"Hugel Town"; - close; -} -jawaii,107,182,5 script Warpra#25 113,{ - callfunc "QWS_Town_Warpra",12,"Jawaii Town"; - close; -} -izlude,132,116,4 script Warpra#26 113,{ - callfunc "QWS_Town_Warpra",11,"Izlude Town"; - close; -} -lighthalzen,153,100,5 script Warpra#27 113,{ - callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; - close; -} -louyang,211,106,4 script Warpra#28 113,{ - callfunc "QWS_Town_Warpra",14,"Louyang Town"; - close; -} -morocc,157,95,4 script Warpra#29 113,{ - callfunc "QWS_Town_Warpra",16,"Morroc Town"; - close; -} -nif_fild01,319,77,1 script Warpra#30 113,{ - callfunc "QWS_Town_Warpra",17,"Niflheim Town"; - close; -} -payon,183,110,4 script Warpra#31 113,{ - callfunc "QWS_Town_Warpra",18,"Payon Town"; - close; -} -prontera,147,172,5 script Warpra#32 113,{ - callfunc "QWS_Town_Warpra",0,"Prontera Town"; - close; -} -umbala,133,130,4 script Warpra#33 113,{ - callfunc "QWS_Town_Warpra",19,"Umbala Town"; - close; -} -xmas,151,136,4 script Warpra#34 113,{ - callfunc "QWS_Town_Warpra",15,"Lutie Town"; - close; -} -yuno,138,162,4 script Warpra#35 113,{ - callfunc "QWS_Town_Warpra",20,"Yuno Town"; - close; -} - -abyss_02,274,266,1 script Warpra#36 113,{ - callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; - close; -} - -ama_dun02,192,118,5 script Warpra Helper#1 112,{ - callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; - close; -} - -anthell02,170,165,3 script Warpra Helper#2 112,{ - callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; - close; -} - -ayo_dun02,258,193,5 script Warpra Helper#3 112,{ - callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; - close; -} - -ein_dun02,292,282,1 script Warpra Helper#4 112,{ - callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; - close; -} - -iz_dun03,202,47,2 script Warpra Helper#5 112,{ - callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; - close; -} - -c_tower3,129,106,4 script Warpra Helper#6 112,{ - callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; - close; -} - -mjo_dun02,39,25,4 script Warpra Helper#7 112,{ - callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; - close; -} - -prt_sewb2,176,30,3 script Warpra Helper#8 112,{ - callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; - close; -} - -gefenia03,137,34,0 script Warpra Helper#9 112,{ - callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; - close; -} - -gef_dun02,218,61,2 script Warpra Helper#10 112,{ - callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; - close; -} - -glast_01,371,308,3 script Warpra Helper#11 112,{ - callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; - close; -} - -gon_dun01,167,273,4 script Warpra Helper#12 112,{ - callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; - close; -} - -juperos_02,127,154,5 script Warpra Helper#13 112,{ - callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; - close; -} - -kh_dun01,14,224,3 script Warpra Helper#14 112,{ - callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; - close; -} - -lhz_dun02,156,151,5 script Warpra Helper#15 112,{ - callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; - close; -} - -lou_dun02,168,264,4 script Warpra Helper#16 112,{ - callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; - close; -} - -mag_dun02,46,41,3 script Warpra Helper#17 112,{ - callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; - close; -} - -odin_tem01,115,148,3 script Warpra Helper#18 112,{ - callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; - close; -} - -orcsdun01,185,11,3 script Warpra Helper#19 112,{ - callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; - close; -} - -pay_dun03,162,143,3 script Warpra Helper#20 112,{ - callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; - close; -} - -moc_pryd02,101,95,3 script Warpra Helper#21 112,{ - callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; - close; -} - -in_sphinx2,274,268,1 script Warpra Helper#22 112,{ - callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; - close; -} - -tha_t07,111,162,3 script Warpra Helper#23 112,{ - callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; - close; -} - -treasure02,104,40,3 script Warpra Helper#24 112,{ - callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; - close; -} - -xmas_dun02,124,131,3 script Warpra Helper#25 112,{ - callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; - close; -} - -um_dun02,44,28,3 script Warpra Helper#26 112,{ - callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; - close; -} - -tur_dun02,162,23,3 script Warpra Helper#27 112,{ - callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; - close; -} -prt_maze02,102,69,4 script Warpra Helper#28 112,{ - callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; - close; -} +- script Warpra#0 -1,{ callfunc "Q_Warpra",1; } +alb2trea,73,101,4 duplicate(Warpra#0) Warpra#1 113 +ama_fild01,178,325,1 duplicate(Warpra#0) Warpra#2 113 +gef_fild10,71,339,4 duplicate(Warpra#0) Warpra#3 113 +izlu2dun,104,82,4 duplicate(Warpra#0) Warpra#4 113 +mjolnir_02,85,363,4 duplicate(Warpra#0) Warpra#5 113 +moc_fild04,207,331,4 duplicate(Warpra#0) Warpra#6 113 +moc_fild19,106,97,4 duplicate(Warpra#0) Warpra#7 113 +moc_ruins,64,166,4 duplicate(Warpra#0) Warpra#8 113 +niflheim,197,192,3 duplicate(Warpra#0) Warpra#9 113 +pay_arche,39,135,4 duplicate(Warpra#0) Warpra#10 113 +prt_fild05,273,215,4 duplicate(Warpra#0) Warpra#11 113 +tur_dun01,148,239,4 duplicate(Warpra#0) Warpra#12 113 +valkyrie,48,35,8 duplicate(Warpra#0) Warpra#13 113 +yuno_fild03,37,135,4 duplicate(Warpra#0) Warpra#14 113 + +alberta,32,240,4 script Warpra#15 113,{ callfunc "QWS_Town_Warpra",1,"Alberta Town"; close; } +aldebaran,146,118,4 script Warpra#16 113,{ callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; close; } +ayothaya,216,171,5 script Warpra#17 113,{ callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; close; } +amatsu,193,81,1 script Warpra#18 113,{ callfunc "QWS_Town_Warpra",3,"Amatsu Town"; close; } +comodo,195,158,4 script Warpra#19 113,{ callfunc "QWS_Town_Warpra",5,"Comodo Town"; close; } +einbroch,229,196,5 script Warpra#20 113,{ callfunc "QWS_Town_Warpra",7,"Einbroch Town"; close; } +einbech,173,131,5 script Warpra#21 113,{ callfunc "QWS_Town_Warpra",6,"Einbech Town"; close; } +geffen,116,66,4 script Warpra#22 113,{ callfunc "QWS_Town_Warpra",8,"Geffen Town"; close; } +gonryun,152,130,4 script Warpra#23 113,{ callfunc "QWS_Town_Warpra",9,"Gonryun Town"; close; } +hugel,90,127,5 script Warpra#24 113,{ callfunc "QWS_Town_Warpra",10,"Hugel Town"; close; } +jawaii,107,182,5 script Warpra#25 113,{ callfunc "QWS_Town_Warpra",12,"Jawaii Town"; close; } +izlude,132,116,4 script Warpra#26 113,{ callfunc "QWS_Town_Warpra",11,"Izlude Town"; close; } +lighthalzen,153,100,5 script Warpra#27 113,{ callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; close; } +louyang,211,106,4 script Warpra#28 113,{ callfunc "QWS_Town_Warpra",14,"Louyang Town"; close; } +morocc,157,95,4 script Warpra#29 113,{ callfunc "QWS_Town_Warpra",16,"Morroc Town"; close; } +nif_fild01,319,77,1 script Warpra#30 113,{ callfunc "QWS_Town_Warpra",17,"Niflheim Town"; close; } +payon,183,110,4 script Warpra#31 113,{ callfunc "QWS_Town_Warpra",18,"Payon Town"; close; } +prontera,147,172,5 script Warpra#32 113,{ callfunc "QWS_Town_Warpra",0,"Prontera Town"; close; } +umbala,133,130,4 script Warpra#33 113,{ callfunc "QWS_Town_Warpra",19,"Umbala Town"; close; } +xmas,151,136,4 script Warpra#34 113,{ callfunc "QWS_Town_Warpra",15,"Lutie Town"; close; } +yuno,138,162,4 script Warpra#35 113,{ callfunc "QWS_Town_Warpra",20,"Yuno Town"; close; } +brasilis,201,222,4 script Warpra#36 113,{ callfunc "QWS_Town_Warpra",21,"Brasilis Town"; close; } +dicastes01,194,194,6 script Warpra#37 113,{ callfunc "QWS_Town_Warpra",22,"El Dicastes Town"; close; } +manuk,262,177,4 script Warpra#38 113,{ callfunc "QWS_Town_Warpra",23,"Manuk Town"; close; } +mora,110,100,4 script Warpra#39 113,{ callfunc "QWS_Town_Warpra",24,"Mora Town"; close; } +moscovia,216,196,6 script Warpra#40 113,{ callfunc "QWS_Town_Warpra",25,"Moscovia Town"; close; } +rachel,135,116,4 script Warpra#41 113,{ callfunc "QWS_Town_Warpra",26,"Rachel Town"; close; } +splendide,205,153,4 script Warpra#42 113,{ callfunc "QWS_Town_Warpra",27,"Splendide Town"; close; } +veins,214,123,4 script Warpra#43 113,{ callfunc "QWS_Town_Warpra",28,"Veins Town"; close; } +dewata,194,178,6 script Warpra#44 113,{ callfunc "QWS_Town_Warpra",29,"Dewata Town"; close; } +eclage,107,37,4 script Warpra#45 113,{ callfunc "QWS_Town_Warpra",30,"Eclage Town"; close; } + +abyss_02,274,266,1 script Warpra Helper#0 112,{ callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; close; } +ama_dun02,192,118,5 script Warpra Helper#1 112,{ callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; close; } +anthell02,170,165,3 script Warpra Helper#2 112,{ callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; close; } +ayo_dun02,258,193,5 script Warpra Helper#3 112,{ callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; close; } +ein_dun02,292,282,1 script Warpra Helper#4 112,{ callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; close; } +iz_dun03,202,47,2 script Warpra Helper#5 112,{ callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; close; } +c_tower3,129,106,4 script Warpra Helper#6 112,{ callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; close; } +mjo_dun02,39,25,4 script Warpra Helper#7 112,{ callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; close; } +prt_sewb2,176,30,3 script Warpra Helper#8 112,{ callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; close; } +gefenia03,137,34,0 script Warpra Helper#9 112,{ callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; close; } +gef_dun02,218,61,2 script Warpra Helper#10 112,{ callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; close; } +glast_01,371,308,3 script Warpra Helper#11 112,{ callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; close; } +gon_dun01,167,273,4 script Warpra Helper#12 112,{ callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; close; } +juperos_02,127,154,5 script Warpra Helper#13 112,{ callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; close; } +kh_dun01,14,224,3 script Warpra Helper#14 112,{ callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; close; } +lhz_dun02,156,151,5 script Warpra Helper#15 112,{ callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; close; } +lou_dun02,168,264,4 script Warpra Helper#16 112,{ callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; close; } +mag_dun02,46,41,3 script Warpra Helper#17 112,{ callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; close; } +odin_tem01,115,148,3 script Warpra Helper#18 112,{ callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; close; } +orcsdun01,185,11,3 script Warpra Helper#19 112,{ callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; close; } +pay_dun03,162,143,3 script Warpra Helper#20 112,{ callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; close; } +moc_pryd02,101,95,3 script Warpra Helper#21 112,{ callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; close; } +in_sphinx2,274,268,1 script Warpra Helper#22 112,{ callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; close; } +tha_t07,111,162,3 script Warpra Helper#23 112,{ callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; close; } +treasure02,104,40,3 script Warpra Helper#24 112,{ callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; close; } +xmas_dun02,124,131,3 script Warpra Helper#25 112,{ callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; close; } +um_dun02,44,28,3 script Warpra Helper#26 112,{ callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; close; } +tur_dun02,162,23,3 script Warpra Helper#27 112,{ callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; close; } +prt_maze02,102,69,4 script Warpra Helper#28 112,{ callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; close; } \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 4f1efdf474a048cf3aa4c2830b7036ee21d7e2ea Mon Sep 17 00:00:00 2001 From: euphyy Date: Mon, 27 Aug 2012 02:26:35 +0000 Subject: * Standardization in some database files, and other minor cleaning * Disabled Ash Vacuum Warper since it's no longer in iRO - fixes bugreport:6560 (quests\quests_13_1.txt) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16709 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/elemental_db.txt | 6 +- db/elemental_skill_db.txt | 8 +- db/item_db2.txt | 2 +- db/magicmushroom_db.txt | 2 +- db/mercenary_db.txt | 7 +- db/mercenary_skill_db.txt | 9 +- db/mob_avail.txt | 26 ++++-- db/mob_chat_db.txt | 1 + db/mob_item_ratio.txt | 11 +-- db/mob_skill_db2.txt | 101 +++++++++++---------- db/pet_db2.txt | 2 +- db/quest_db.txt | 3 +- db/skill_improvise_db.txt | 6 +- db/spellbook_db.txt | 10 +-- doc/quest_variables.txt | 7 -- doc/whisper_sys.txt | 17 ++-- npc/custom/etc/mvp_arena.txt | 188 ++++++++++++++++------------------------ npc/custom/etc/quest_warper.txt | 2 +- npc/quests/quests_13_1.txt | 5 +- 19 files changed, 200 insertions(+), 213 deletions(-) (limited to 'npc/custom/etc') diff --git a/db/elemental_db.txt b/db/elemental_db.txt index c8c2a2bc8..d3eb81f4a 100644 --- a/db/elemental_db.txt +++ b/db/elemental_db.txt @@ -1,4 +1,8 @@ -//ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion +// Elemental Summons Database +// +// Structure of Database: +// ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion + // Monster Elementals 2114,EL_AGNI_S,Agni,100,5000,1,1,100,100,10,10,1,1,1,1,1,1,5,12,0,0,83,200,504,1020,360 2115,EL_AGNI_M,Agni,100,7500,1,1,250,250,25,25,1,1,1,1,1,1,5,12,1,0,83,200,504,1020,360 diff --git a/db/elemental_skill_db.txt b/db/elemental_skill_db.txt index d425417e0..903f5d22f 100644 --- a/db/elemental_skill_db.txt +++ b/db/elemental_skill_db.txt @@ -1,6 +1,10 @@ -//ElementalID,SkillID,SkillLevel,ReqMode -//Spirit Modes (1 = Passive, 2 = Defensive, 4 = Agressive) +// Elemental Summons Skill Database // +// Structure of Database: +// ElementalID,SkillID,SkillLevel,ReqMode +// +// Spirit Modes: 1 = Passive, 2 = Defensive, 4 = Aggressive + // EL_AGNI_S 2114,8413,1,1 //EL_PYROTECHNIC,Pyrotechnic 2114,8401,1,2 //EL_CIRCLE_OF_FIRE,Circle of Fire diff --git a/db/item_db2.txt b/db/item_db2.txt index 76858c7fd..cba8d5186 100644 --- a/db/item_db2.txt +++ b/db/item_db2.txt @@ -1,4 +1,4 @@ -// Items Additional Database - Custom Items go here +// Items Additional Database // // Structure of Database: // ID,Name,Name,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } diff --git a/db/magicmushroom_db.txt b/db/magicmushroom_db.txt index 1d145bd45..70fcf3432 100644 --- a/db/magicmushroom_db.txt +++ b/db/magicmushroom_db.txt @@ -1,5 +1,5 @@ // Magic Mushroom DB. -// Database for skills that are randomly used trough Magic Mushroom status change. +// Database for skills that are randomly used through Magic Mushroom status change. // Format: SkillID 7 //SM_MAGNUM diff --git a/db/mercenary_db.txt b/db/mercenary_db.txt index 22bdd69dd..8c841a32d 100644 --- a/db/mercenary_db.txt +++ b/db/mercenary_db.txt @@ -1,4 +1,8 @@ -//ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion +// Mercenary Database +// +// Structure of Database: +// ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion + // Monster Mercenaries 1191,MIMIC,Mimic,51,6120,187,2,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,100,972,500,288 1506,DISGUISE,Disguise,55,7543,180,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,147,516,768,384 @@ -14,6 +18,7 @@ 2058,M_MIMIC,Mimic,51,6120,182,1,800,950,10,40,44,121,1,60,75,110,10,12,1,0,60,100,972,500,288 2059,M_DISGUISE,Disguise,55,7543,180,2,526,693,18,29,0,72,45,35,48,65,10,12,1,6,82,147,516,768,384 2060,M_ALICE,Alice,62,10000,221,1,700,850,5,5,64,64,42,85,100,130,10,12,1,7,60,200,502,1999,480 + // Normal Mercenaries 6017,MER_ARCHER01,Mina,20,256,200,10,170,85,7,5,1,16,5,1,28,8,10,0,0,7,20,150,700,432,300 6018,MER_ARCHER02,Dororu,30,457,70,10,228,114,11,7,1,18,8,1,40,11,10,0,0,7,20,150,700,432,300 diff --git a/db/mercenary_skill_db.txt b/db/mercenary_skill_db.txt index 438b7e656..ea692641d 100644 --- a/db/mercenary_skill_db.txt +++ b/db/mercenary_skill_db.txt @@ -1,4 +1,8 @@ -//MercenryID,SkillID,SkillLevel +// Mercenary Skill Database +// +// Structure of Database: +// MercenryID,SkillID,SkillLevel + // Archer Mercenaries Level 1-10. // MER_ARCHER01 6017,8207,2 //MA_DOUBLE @@ -38,6 +42,7 @@ 6026,8215,5 //MA_SHARPSHOOTING 6026,8223,5 //MER_QUICKEN 6026,8233,1 //MER_AUTOBERSERK + // Lancer Mercenaries Level 1-10. // MER_LANCER01 6027,8216,1 //ML_PIERCE @@ -74,6 +79,7 @@ 6036,8220,10 //ML_AUTOGUARD 6036,8221,3 //ML_DEVOTION 6036,8218,5 //ML_SPIRALPIERCE + // Swordman Mercenaries Level 1-10. // MER_SWORDMAN01 6037,8201,1 //MS_BASH @@ -113,6 +119,7 @@ 6046,8203,10 //MS_BOWLINGABASH 6046,8201,10 //MS_BASH 6046,8206,1 //MS_BERSERK + // Monster Mercenaries // MIMIC 1191,8233,1 //MER_AUTOBERSERK diff --git a/db/mob_avail.txt b/db/mob_avail.txt index 755597da6..86354b59f 100644 --- a/db/mob_avail.txt +++ b/db/mob_avail.txt @@ -1,13 +1,21 @@ -// for mobs -// mob_id,sprite_id,equip # -// Use another mob's sprite for a monster. 0 for sprite will disable mob. -// Mob must have an equipment it's pet counterpart can use or it will cause problems. If no equip use 0. -// The following if a player sprite is used -// MobID,SpriteID,Sex,Hair,Hair_Color,Weapon,Shield,Head_Top,Head_Middle,Head_Bottom,Option,Dye_Color -// Use Item ID for weapons and shields, not View ID. +// Mob Availability and Alias Database +// +// Structure of Database: +// MobID,SpriteID{,Equipment} +// +// 01. MobID Mob ID to change. +// 02. SpriteID Mob ID which will be sent to the client instead of MobID. +// If 0, the mob becomes unavailable for use. +// 03. Equipment Item ID of pet equipment (must be available for pet counterpart, or this will cause problems). +// +// To disguise a mob as a player: +// MobID,SpriteID,Sex,Hair_Style,Hair_Color,Weapon,Shield,Head_Top,Head_Middle,Head_Bottom,Option,Dye_Color +// +// SpriteID is a job class value. +// Weapon and Shield uses Item ID, while Head uses View ID. -//1002,1039 //Poring,Baphomet (Make Porings look like Baphomet) -//1970,1002,10013 // new mob that looks like a Poring with a backpack +//1002,1039 // Poring - Baphomet +//1970,1002,10013 // Displays a Poring with a backpack // Easter Event Monsters //1920,1047,0 diff --git a/db/mob_chat_db.txt b/db/mob_chat_db.txt index 83bd68a62..1e6933003 100644 --- a/db/mob_chat_db.txt +++ b/db/mob_chat_db.txt @@ -2,6 +2,7 @@ // // Structure of Database: // Line_ID,Color_Code,Dialog + 1,0xFF0000,Weakling! Challenge me if you have any courage! 2,0xFF0000,Impressive! I wonder how far your recklessness will take you. 3,0xFF0000,I almost pity how outmatched you are against me. Now prepare for my attack! diff --git a/db/mob_item_ratio.txt b/db/mob_item_ratio.txt index f21edb347..226460a86 100644 --- a/db/mob_item_ratio.txt +++ b/db/mob_item_ratio.txt @@ -1,20 +1,21 @@ +// Specific Item Drop Ratio Database // Overrides for global item_rate* values from conf/battle/drops.conf - -// Database format: +// +// Structure of Database: // ItemID,Ratio{,MonsterID} - +// // Result: // ItemID base drop rates defined in mob_db will not get multiplied // by global item_rate* values (aka drop rates) from // conf/battle/drops.conf. Instead Ratio will be used (100 = 1x). // If no MonsterID is specified, all monsters will be affected, // otherwise only listed ones. - +// // Examples: // 909,100 // Jellopies from monsters will drop with 1x drop rate regardless of global drop rate // 909,1000 // Jellopies from monsters will drop with 10x drop rate regardless of global drop rate // 909,100,1002 // Jellopies from Porings will drop with 1x drop rate. Other monsters that drop Jellopies are unaffected (use global drop rate). - +// // Notes: // - By default you can list up to 10 MonsterIDs per ItemID. // It can be changed in src/map/mob.c by adjusting MAX_ITEMRATIO_MOBS. diff --git a/db/mob_skill_db2.txt b/db/mob_skill_db2.txt index 12ab9fdc7..bc1384f2f 100644 --- a/db/mob_skill_db2.txt +++ b/db/mob_skill_db2.txt @@ -1,60 +1,57 @@ -// Custom mob skills -//MOB_ID, a unused dummy character sequence (for information only), STATE, SKILL_ID, SKILL_LV, -// rate (10000 = 100%), casttime, delay, cancelable, a target, a condition type, a condition value, -// a value 1, a value 2, a value 3, a value 4, a value 5, emotion, chat -//Example -//1001,Poring@TF_POISON,attack,52,3,100,1500,10000,no,target,always,0,,,,,7 +// Custom Mob Skill Database // -//rate refers to the chance of the skill being casted when the condition is fulfilled. -//delay is the time in milliseconds that has to be pass before recasting the same skill. +// Structure of Database: +// MobID,Dummy value (info only),State,SkillID,SkillLv,Rate,CastTime,Delay,Cancelable,Target,Condition type,Condition value,val1,val2,val3,val4,val5,Emotion,Chat // -//STATE: -// any / idle (in standby) / walk (in movement) / dead (on killed) / loot / -// attack / angry (like attack, except player has not attacked mob yet) / -// chase (following target, after being attacked) / follow (following -// target, without being attacked) +// RATE: the chance of the skill being casted when the condition is fulfilled (10000 = 100%). +// DELAY: the time (in milliseconds) before attempting to recast the same skill. // -//target: The target of the skill can be: target (when a PC is targetted) / self / friend / master -// (the following are for ground-skills, a random target tile is selected from -// the specified area): -// around1 (3x3 area around self) / around2 (5x5 area around self) / -// around3 (7x7 area around self) / around4 (9x9 area around self) / -// around5 (3x3 area around target) / around6 (5x5 area around target) / -// around7 (7x7 area around target) / around8 (9x9 area around target) / -// around (11x11 area around self) +// STATE: +// any (except dead) / idle (in standby) / walk (in movement) / dead (on killed) / +// loot /attack / angry (like attack, except player has not attacked mob yet) / +// chase (following target, after being attacked) / follow (following target, +// without being attacked) / anytarget (attack+angry+chase+follow) // -//conditions: (condition type) (value which specifies a condition value) -// always uncondtional -// myhpltmaxrate when the mob's hp drops to a certain % -// mystatuson If the mob has any abnormalities in status (condition value), -// mystatusoff If the mob has ended any abnormalities in status (condition value), -// friendhpltmaxrate when the mobs' friend's hp drops to a certain % -// friendstatuson If the friend has any abnormalities in status (condition value), -// friendstatusoff If the friend has ended any abnormalities in status (condition value), -// attackpcgt Attack PC becomes more than the number of specification -// attackpcge Attack PC becomes equal or more than the number of specification. -// slavelt when the number of slaves is lower than the original number of specification. -// slavele when the number of slaves is lower or equal than the original number of specification. -// closedattacked when melee attacked (close range attack) -// longrangeattacked when long ranged attacked (like bows and far range weapons) -// skillused when a skill is used on the mob -// afterskill after the mob used certain skill. -// casttargeted when a target is in cast range. -// rudeattacked when a target is rude attacked +// TARGET: +// target (current target) / self / friend / master / randomtarget (any enemy within skill's range) // -// The character's state which can be specified to be a condition value by the statuson/statusoff system -// anybad any type of state change -// stone condition of being in stone state -// freeze condition of being in frozen state -// stun condition of being in stunned state -// sleep condition of being in sleep state -// poison condition of being in poisoned state -// curse condition of being in cursed state -// silence condition of being in silenced state -// confusion condition of being in confusion state -// blind condition of being in blind state -// hiding condition of being in hidden state -// sight condition of being in unhidden state +// The following are for ground-skills, a random target tile is selected from the specified area: +// around1 (3x3 area around self) / around2 (5x5 area around self) / +// around3 (7x7 area around self) / around4 (9x9 area around self) / +// around5 (3x3 area around target) / around6 (5x5 area around target) / +// around7 (7x7 area around target) / around8 (9x9 area around target) / +// around = around4 +// +// CONDITION: +// always Unconditional (no condition value). +// onspawn When mob spawns/respawns (no condition value). +// myhpltmaxrate When mob's HP drops to the specified %. +// myhpinrate When mob's HP is in a certain % range (condition value = lower bound, val1 = upper bound). +// mystatuson If mob has the specified abnormality in status. +// mystatusoff If mob has ended the specified abnormality in status. +// friendhpltmaxrate When mob's friend's HP drops to the specified %. +// friendhpinrate When mob's friend's HP is in a certain % range (condition value = lower bound, val1 = upper bound). +// friendstatuson If friend has the specified abnormality in status. +// friendstatusoff If friend has ended the specified abnormality in status. +// attackpcgt When attack PCs become greater than specified number. +// attackpcge When attack PCs become greater than or equal to the specified number. +// slavelt When number of slaves is less than the original specified number. +// slavele When number of slaves is less than or equal to the original specified number. +// closedattacked When close range melee attacked (no condition value). +// longrangeattacked When long range attacked, ex. bows, guns, ranged skills (no condition value). +// skillused When the specified skill is used on the mob. +// afterskill After mob casts the specified skill. +// casttargeted When a target is in cast range (no condition value). +// rudeattacked When mob is rude attacked (no condition value). +// +// Status abnormalities specified through the statuson/statusoff system: +// anybad (any type of state change) / stone / freeze / stun / sleep / +// poison / curse / silence / confusion / blind / hiding / sight (unhidden) +// +// Note: if a negative MobID is provided, the skill will be treated as 'global': +// -1: added for all boss types. +// -2: added for all normal types. +// -4: added for all mobs. // rAthena Dev Team //1900,Valaris@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,, diff --git a/db/pet_db2.txt b/db/pet_db2.txt index b41435713..cf39171e8 100644 --- a/db/pet_db2.txt +++ b/db/pet_db2.txt @@ -1,4 +1,4 @@ -// Pet Additional Database - Custom Pets +// Pet Additional Database // // Structure of Database: // MobID,Name,JName,LureID,EggID,EquipID,FoodID,Fullness,HungryDelay,R_Hungry,R_Full,Intimate,Die,Capture,Speed,S_Performance,talk_convert_class,attack_rate,defence_attack_rate,change_target_rate,pet_script,loyal_script diff --git a/db/quest_db.txt b/db/quest_db.txt index fee6a19eb..75ed66c78 100644 --- a/db/quest_db.txt +++ b/db/quest_db.txt @@ -1,7 +1,8 @@ // Quest Database // -// Structure of Database : +// Structure of Database: // Quest ID,Time Limit,Target1,Val1,Target2,Val2,Target3,Val3,Quest Title + 1000,0,0,0,0,0,0,0,"Transcend" 1001,0,0,0,0,0,0,0,"Job Change to Acolyte" 1002,0,0,0,0,0,0,0,"Job Change to Acolyte" diff --git a/db/skill_improvise_db.txt b/db/skill_improvise_db.txt index 9f0f2b6e7..f669ba9f4 100644 --- a/db/skill_improvise_db.txt +++ b/db/skill_improvise_db.txt @@ -1,6 +1,8 @@ -// Improvise DB. +// Improvise Database // Database for skills that can be summoned trough Randomize Spell/Improvised Song (Minstrel/Wanderer Skill). -// Format: SkillID,Rate +// +// Structure of Database: +// SkillID,Rate // Mage Skills 10,5000 // Sight diff --git a/db/spellbook_db.txt b/db/spellbook_db.txt index 62610473a..11c447365 100644 --- a/db/spellbook_db.txt +++ b/db/spellbook_db.txt @@ -1,9 +1,9 @@ -//============================================================ -// Preserve points database for Reading Spellbook. [LimitLine/3CeAm] -// Structure: +// Reading Spellbook Preserve Points Database +// +// Structure of Database: // SkillID,PreservePoints,Required Book -//============================================================ -//To add more entries skill.h MAX_SKILL_SPELLBOOK_DB must be increased +// +// To add more entries, increase MAX_SKILL_SPELLBOOK_DB in skill.h. //Mage 14,7,6190 //Cold Bolt diff --git a/doc/quest_variables.txt b/doc/quest_variables.txt index 8deb4d92a..d100895b1 100644 --- a/doc/quest_variables.txt +++ b/doc/quest_variables.txt @@ -7,36 +7,30 @@ variables. You can store up to 31 boolean value into a single variable. [Lupus] -------------------------------------------------------------- - -------------------------------------------------------------- Variable: MISC_QUEST - Quest: Juice Maker Quest Info: How to make juices. This bit keeps final state of the quest. How to set: set MISC_QUEST,MISC_QUEST | 1; How to check: if(MISC_QUEST & 1){} - Quest: Tempestra Quest Info: Has you given a potion to Temperstra or not. How to set: set MISC_QUEST,MISC_QUEST | 2; How to check: if(MISC_QUEST & 2){} - Quest: Morgenstein Quest Info: How to make Mixture & Counteragent. Also subquest for Alchemist Job This bit keeps final state of the quest. How to set: set MISC_QUEST,MISC_QUEST | 4; How to check: if(MISC_QUEST & 4){} - Quest: Prontera Culvert Quest Info: Could you enter the Prontera Culvert or not. How to set: set MISC_QUEST,MISC_QUEST | 8; How to check: if(MISC_QUEST & 8){} - Quest: Edgar's Offer Info: Cheap ticket from Izlude to Alberta. This bit keeps final state of the quest. @@ -112,7 +106,6 @@ How to check: if(MISC_QUEST & 65536){} -------------------------------------------------------------- Variable: MISC_QUEST2 - Quest: ? Info: ? How to set: set MISC_QUEST,MISC_QUEST | ?; diff --git a/doc/whisper_sys.txt b/doc/whisper_sys.txt index e9353de75..115712eea 100644 --- a/doc/whisper_sys.txt +++ b/doc/whisper_sys.txt @@ -14,7 +14,7 @@ This piece of code to allows characters to execute events in NPCs by whispering them up to ten parameters. The NPC must have an "OnWhisperGlobal" label, or an "event not found" error will result. - NPC: {#String 2{#...{#String 10}}} + NPC: {#String 2{#...{#String 10}}} The whispered strings are separated by the "#" character, and are each stored into separate temporary character string variables: @@ -31,11 +31,10 @@ You whisper an NPC "NPCCommander" in-game with the following instructions: The parameters are passed on to the "OnWhisperGlobal" label of the NPC, and can be processed accordingly: - - script NPCCommander -1,{ - OnWhisperGlobal: - // The following code will inform player "Lordalfa" that he has been - // reported for killstealing. - if (@whispervar0$ == "Report") - message @whispervar2$,"You have been reported for "+@whispervar1$+"."; - end; - } \ No newline at end of file +- script NPCCommander -1,{ +OnWhisperGlobal: + // Inform player "Lordalfa" that he has been reported for killstealing. + if (@whispervar0$ == "Report") + message @whispervar2$,"You have been reported for "+@whispervar1$+"."; + end; +} \ No newline at end of file diff --git a/npc/custom/etc/mvp_arena.txt b/npc/custom/etc/mvp_arena.txt index 2cc3fb36d..277895d6c 100644 --- a/npc/custom/etc/mvp_arena.txt +++ b/npc/custom/etc/mvp_arena.txt @@ -9,14 +9,14 @@ //===== Description: ========================================= //= Rooms containing 16 different MVPs //===== Additional Comments: ================================= -//= 1.0 first version of script -//= 1.1 Optimised The MVP arena [massdriller] +//= 1.0 - First version of script +//= 1.1 - Optimised The MVP arena [massdriller] //= 1.2 - NPC in prontera [Silent] //= 1.3 - Removed Duplicates //= 1.4 - Optimized, text edited [Euphy] //============================================================ -// ==== Entrance ==== +// Entrance prontera,154,197,3 script MVP Warper 768,{ mes "[ ^0065DFMVP Warper^000000 ]"; mes "Would you like to enter"; @@ -26,29 +26,30 @@ prontera,154,197,3 script MVP Warper 768,{ close; } -// ==== Information NPC ==== +// Information quiz_00,49,31,4 script MVP Arena Guide 778,{ mes "[ ^0065DFMVP Arena Guide^000000 ]"; mes "Welcome and behold this sacred place. Here you will find out if you truly have what it takes to call yourself a warrior."; next; switch(select("Information","Heal me!","Return to Prontera","Cancel")) { - case 1: - mes "[ ^0065DFMVP Arena Guide^000000 ]"; - mes "There are four Keepers, and each can spawn four different MVPs."; - mes "There are eight rooms per Keeper, and sixteen MVPs in total."; - close; - case 2: - specialeffect2 313; - percentheal 100,100; - close; - case 3: - warp "prontera",156,179; - close; - case 4: - close; } + case 1: + mes "[ ^0065DFMVP Arena Guide^000000 ]"; + mes "There are four Keepers, and each can spawn four different MVPs."; + mes "There are eight rooms per Keeper, and sixteen MVPs in total."; + close; + case 2: + specialeffect2 313; + percentheal 100,100; + close; + case 3: + warp "prontera",156,179; + close; + case 4: + close; + } } -// ==== Keepers ==== +// Keepers function script Keeper { mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; mes "Which arena would you"; @@ -60,104 +61,65 @@ function script Keeper { if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) { mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; mes "Sorry, this arena is full!"; - close; } + close; + } warp "pvp_n_"+.@i+"-"+getarg(0),102,102; close; } +quiz_00,56,31,4 script Alpha MVP 770,{ callfunc "Keeper",2; } +quiz_00,58,31,4 script Beta MVP 773,{ callfunc "Keeper",3; } +quiz_00,60,31,4 script Theta MVP 774,{ callfunc "Keeper",4; } +quiz_00,62,31,4 script Epsilon MVP 776,{ callfunc "Keeper",5; } -quiz_00,56,31,4 script Alpha MVP 770,{ - callfunc "Keeper",2; } -quiz_00,58,31,4 script Beta MVP 773,{ - callfunc "Keeper",3; } -quiz_00,60,31,4 script Theta MVP 774,{ - callfunc "Keeper",4; } -quiz_00,62,31,4 script Epsilon MVP 776,{ - callfunc "Keeper",5; } - -// ==== Protectors ==== +// Protectors function script Protector { switch(select(""+((getarg(0)=="")?"":"Harder Monsters")+":Heal:Exit")) { - case 1: - warp getarg(0),102,102; - close; - case 2: - specialeffect2 313; - percentheal 100,100; - close; - case 3: - warp "prontera",156,179; - close; } + case 1: + warp getarg(0),102,102; + close; + case 2: + specialeffect2 313; + percentheal 100,100; + close; + case 3: + warp "prontera",156,179; + close; + } } +pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{ callfunc "Protector","pvp_n_2-2"; } +pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{ callfunc "Protector","pvp_n_3-2"; } +pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{ callfunc "Protector","pvp_n_4-2"; } +pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{ callfunc "Protector","pvp_n_5-2"; } +pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{ callfunc "Protector","pvp_n_6-2"; } +pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{ callfunc "Protector","pvp_n_7-2"; } +pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{ callfunc "Protector","pvp_n_8-2"; } +pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{ callfunc "Protector",""; } +pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{ callfunc "Protector","pvp_n_2-3"; } +pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{ callfunc "Protector","pvp_n_3-3"; } +pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{ callfunc "Protector","pvp_n_4-3"; } +pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{ callfunc "Protector","pvp_n_5-3"; } +pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{ callfunc "Protector","pvp_n_6-3"; } +pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{ callfunc "Protector","pvp_n_7-3"; } +pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{ callfunc "Protector","pvp_n_8-3"; } +pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{ callfunc "Protector",""; } +pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{ callfunc "Protector","pvp_n_2-4"; } +pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{ callfunc "Protector","pvp_n_3-4"; } +pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{ callfunc "Protector","pvp_n_4-4"; } +pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{ callfunc "Protector","pvp_n_5-4"; } +pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{ callfunc "Protector","pvp_n_6-4"; } +pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{ callfunc "Protector","pvp_n_7-4"; } +pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{ callfunc "Protector","pvp_n_8-4"; } +pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{ callfunc "Protector",""; } +pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{ callfunc "Protector","pvp_n_2-5"; } +pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{ callfunc "Protector","pvp_n_3-5"; } +pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{ callfunc "Protector","pvp_n_4-5"; } +pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{ callfunc "Protector","pvp_n_5-5"; } +pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{ callfunc "Protector","pvp_n_6-5"; } +pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{ callfunc "Protector","pvp_n_7-5"; } +pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{ callfunc "Protector","pvp_n_8-5"; } +pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{ callfunc "Protector",""; } -pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{ - callfunc "Protector","pvp_n_2-2"; } -pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{ - callfunc "Protector","pvp_n_3-2"; } -pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{ - callfunc "Protector","pvp_n_4-2"; } -pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{ - callfunc "Protector","pvp_n_5-2"; } -pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{ - callfunc "Protector","pvp_n_6-2"; } -pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{ - callfunc "Protector","pvp_n_7-2"; } -pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{ - callfunc "Protector","pvp_n_8-2"; } -pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{ - callfunc "Protector",""; } - -pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{ - callfunc "Protector","pvp_n_2-3"; } -pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{ - callfunc "Protector","pvp_n_3-3"; } -pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{ - callfunc "Protector","pvp_n_4-3"; } -pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{ - callfunc "Protector","pvp_n_5-3"; } -pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{ - callfunc "Protector","pvp_n_6-3"; } -pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{ - callfunc "Protector","pvp_n_7-3"; } -pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{ - callfunc "Protector","pvp_n_8-3"; } -pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{ - callfunc "Protector",""; } - -pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{ - callfunc "Protector","pvp_n_2-4"; } -pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{ - callfunc "Protector","pvp_n_3-4"; } -pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{ - callfunc "Protector","pvp_n_4-4"; } -pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{ - callfunc "Protector","pvp_n_5-4"; } -pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{ - callfunc "Protector","pvp_n_6-4"; } -pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{ - callfunc "Protector","pvp_n_7-4"; } -pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{ - callfunc "Protector","pvp_n_8-4"; } -pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{ - callfunc "Protector",""; } - -pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{ - callfunc "Protector","pvp_n_2-5"; } -pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{ - callfunc "Protector","pvp_n_3-5"; } -pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{ - callfunc "Protector","pvp_n_4-5"; } -pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{ - callfunc "Protector","pvp_n_5-5"; } -pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{ - callfunc "Protector","pvp_n_6-5"; } -pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{ - callfunc "Protector","pvp_n_7-5"; } -pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{ - callfunc "Protector","pvp_n_8-5"; } -pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{ - callfunc "Protector",""; } - -// ==== Alpha ==== +// Alpha pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000 pvp_n_1-2,0,0,0,0 monster Mistress 1059,1,60000,66000 pvp_n_2-2,0,0,0,0 monster Mistress 1059,3,60000,66000 @@ -186,7 +148,7 @@ pvp_n_8-2,0,0,0,0 monster Mistress 1059,3,60000,66000 pvp_n_8-2,0,0,0,0 monster Moonlight 1150,3,60000,66000 pvp_n_8-2,0,0,0,0 monster Maya 1147,3,60000,66000 -// ==== Beta ==== +// Beta pvp_n_1-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 pvp_n_1-3,0,0,0,0 monster Turtle General 1312,1,60000,66000 pvp_n_2-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000 @@ -217,7 +179,7 @@ pvp_n_8-3,0,0,0,0 monster Turtle General 1312,3,60000,66000 pvp_n_8-3,0,0,0,0 monster Orc Hero 1087,3,60000,66000 pvp_n_8-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000 -// ==== Theta ==== +// Theta pvp_n_1-4,0,0,0,0 monster Drake 1112,3,60000,66000 pvp_n_1-4,0,0,0,0 monster Osiris 1038,1,60000,66000 pvp_n_2-4,0,0,0,0 monster Drake 1112,2,60000,66000 @@ -248,7 +210,7 @@ pvp_n_8-4,0,0,0,0 monster Osiris 1038,3,60000,66000 pvp_n_8-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000 pvp_n_8-4,0,0,0,0 monster Lord of Death 1373,3,60000,66000 -// ==== Epsilon ==== +// Epsilon pvp_n_1-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 pvp_n_1-5,0,0,0,0 monster Pharoh 1157,1,60000,66000 pvp_n_2-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000 @@ -279,7 +241,7 @@ pvp_n_8-5,0,0,0,0 monster Pharoh 1157,2,60000,66000 pvp_n_8-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000 pvp_n_8-5,0,0,0,0 monster Baphomet 1039,2,60000,66000 -// ==== Mapflags ==== +// Mapflags pvp_n_1-1 mapflag pvp_nightmaredrop off pvp_n_2-1 mapflag pvp_nightmaredrop off pvp_n_3-1 mapflag pvp_nightmaredrop off diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt index d0952decc..12709ac15 100644 --- a/npc/custom/etc/quest_warper.txt +++ b/npc/custom/etc/quest_warper.txt @@ -430,7 +430,7 @@ Zeny_short_HP: if (select("Yes","No") == 2) goto L_end; set @Hp, Zeny/$QW_HP_H_PRICE; set @HpPrice, @Hp*$QW_HP_H_PRICE; - if (@Sp == 1) mes "You're not worth the effort."; + if (@Hp == 1) mes "You're not worth the effort."; if (@Hp == 1) goto L_end; set Zeny, Zeny-@HpPrice; heal @Hp,0; diff --git a/npc/quests/quests_13_1.txt b/npc/quests/quests_13_1.txt index b86e393c2..9ec9edd61 100644 --- a/npc/quests/quests_13_1.txt +++ b/npc/quests/quests_13_1.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== -//= 2.5a +//= 2.6 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= @@ -43,6 +43,7 @@ //= 2.4 More optimization (-32kb). [Euphy] //= 2.5 Yet more optimization (-22kb). [Euphy] //= 2.5a Minor fixes. [Euphy] +//= 2.6 Disabled "Ash Vacuum Warper" as it's no longer in iRO. [Euphy] //============================================================ // Onward to the New World @@ -14905,6 +14906,7 @@ que_dan02,102,42,3 script Disfigured Corpse#moc2 457,{ close; } +/* //Mid Camp Warper (gogoash), Translated from the Official [Slim] prontera,161,192,5 script Ash Vacuum Warper 707,{ mes "[Warp Soldier]"; @@ -14934,3 +14936,4 @@ prontera,161,192,5 script Ash Vacuum Warper 707,{ } end; } +*/ \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 1fc108697de200cc316555663642de1ebeae6fc3 Mon Sep 17 00:00:00 2001 From: euphyy Date: Sun, 21 Oct 2012 03:36:01 +0000 Subject: * Updated Thanatos Tower quest to Episode 13.1 - huge thanks to Muad_Dib! (bugreport:4498) * Fixed some syntax in item_db_re.sql (bugreport:6714) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16823 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/etc/quest_warper.txt | 2 +- npc/custom/jobmaster.txt | 2 +- npc/quests/thana_quest.txt | 3571 +++++++++++++++++---------------------- sql-files/item_db_re.sql | 6 +- 4 files changed, 1567 insertions(+), 2014 deletions(-) (limited to 'npc/custom/etc') diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt index 12709ac15..2c2d31083 100644 --- a/npc/custom/etc/quest_warper.txt +++ b/npc/custom/etc/quest_warper.txt @@ -63,7 +63,7 @@ //= 2.0b - Special warpname menu option name bug fixed //= 2.1 - Updated names to fall within retrictions. [L0ne_W0lf] //= 2.2 - #kafra_code is now stored as is. [brianluau] -//= 2.3 - Addednew town maps, cleanup, and removed pre-1.8 backwards fix. [Euphy] +//= 2.3 - Added new town maps, cleanup, and removed pre-1.8 backwards fix. [Euphy] //================================================================= //========================Function=&=Script======================== diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index 1112c515e..e072ee4b9 100644 --- a/npc/custom/jobmaster.txt +++ b/npc/custom/jobmaster.txt @@ -140,7 +140,7 @@ Get_Platinum: case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break; case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break; default: break; } - switch(roclass(eaclass()&EAJ_UPPERMASK)) { + switch(BaseJob) { case 7: skill 1001,1,0; break; case 8: skill 1014,1,0; break; case 9: skill 1006,1,0; break; diff --git a/npc/quests/thana_quest.txt b/npc/quests/thana_quest.txt index fcd3c5451..c2117c7e7 100644 --- a/npc/quests/thana_quest.txt +++ b/npc/quests/thana_quest.txt @@ -1,46 +1,26 @@ //===== rAthena Script ======================================= //= Thanatos Tower Quest //===== By: ================================================== -//= [Ishizu-chan] +//= Muad_Dib //===== Current Version: ===================================== -//= 2.7 +//= 1.0 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= -//= It's the Thanatos Tower Quest... +//= [Official Conversion] +//= Episode 13.1 Thanatos Tower quest. //===== Additional Comments: ================================= -//= 1.0 First Release [Ishizu-chan] -//= 1.1 Updated Thanatos Tower Quest to official. [SinSloth] -//= 1.2 Fixed a bug where Reward NPC didn't give you Zeny and Exp. [SinSloth] -//= 1.3 Added a checking in boss map to reset event if there's no player. [SinSloth] -//= 1.4 Changed the way the Thanatos Portal works to allow people to enter -//= as long as Thanatos is alive. [SinSloth] -//= 1.4a You may enter either "Charmstone" or "Charm Stone" [Lupus] -//= 1.5 Fixed a bug in the number part of the quest. [SinSloth] -//= 1.6 Fixed experience gains to match upcoming rate adjustments. [SinSloth] -//= 1.7 Fixed a minor bug with prevented code part from reseting properly. [SinSloth] -//= 1.8 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf] -//= 1.9 Fixed a bug in the last event which allowed an exploit after the first summoning. [SinSloth] -//= 2.0 Cleaned up the trans-only check, and added expanded classes. [L0ne_W0lf] -//= 2.1 Replaced effect numerics with constants. [Samuray22] -//= 2.2 Updated the whole Script to match with latest available official file. [Masao] -//= 2.3 Added continue and break in switch case. [JayPee] -//= 2.4 Fixed a minor bug with Arch Bishop checks. [Euphy] -//= 2.5 Cleaning. [Euphy] -//= 2.5a Fixed an incorrect variable. [Euphy] -//= 2.6 Merged identical timer labels. [Euphy] -//= 2.7 Fixed hidden warp (2nd floor) still warp players. [Joseph] +//= 1.0 Adapted from official release. [Euphy] //============================================================ hu_fild01,140,163,5 script Tower Keeper 852,3,3,{ - mes "[Gatei]"; mes "Greetings, adventurer."; mes "I am Gatei Knumm, keeper"; mes "of this Thanatos Tower."; mes "How may I help you?"; next; - switch (select("Thanatos Tower?:Entrance Fee?:Enter the tower:Cancel")) { + switch(select("Thanatos Tower?:Entrance Fee?:Enter the tower:Cancel")) { case 1: mes "[Gatei]"; mes "Yes, the tower in front"; @@ -94,7 +74,7 @@ hu_fild01,140,163,5 script Tower Keeper 852,3,3,{ mes "enter Thanatos Tower?"; mes "The entry fee is ^FF00005,000 zeny^000000."; next; - switch (select("Enter:Maybe next time.")) { + switch(select("Enter:Maybe next time.")) { case 1: if (thana_tower > 0) { mes "[Gatei]"; @@ -104,7 +84,7 @@ hu_fild01,140,163,5 script Tower Keeper 852,3,3,{ mes "work contract, your entrance"; mes "fee is only 3,000 zeny."; next; - switch (select("Enter:No, thanks.")) { + switch(select("Enter:No, thanks.")) { case 1: if (Zeny > 2999) { mes "[Gatei]"; @@ -139,8 +119,8 @@ hu_fild01,140,163,5 script Tower Keeper 852,3,3,{ mes "very much. Now, I hope"; mes "you enjoy your visit"; mes "to Thanatos Tower~"; - set Zeny, Zeny - 5000; close2; + set Zeny, Zeny - 5000; warp "tha_scene01",131,220; end; } @@ -180,7 +160,6 @@ OnTouch: } tha_t01,149,78,4 script Guide 90,{ - if (thana_tower == 0) { mes "[Ditze]"; mes "Welcome to Thanatos Tower."; @@ -190,7 +169,7 @@ tha_t01,149,78,4 script Guide 90,{ mes "now open to the public. So"; mes "how may I help you today?"; next; - switch (select("Tower Information:Temporary Work Contract:Cancel")) { + switch(select("Tower Information:Temporary Work Contract:Cancel")) { case 1: mes "[Ditze]"; mes "When this tower was built,"; @@ -227,171 +206,55 @@ tha_t01,149,78,4 script Guide 90,{ mes "the near future, bringing us"; mes "closer to our goal of opening all 12 floors of Thanatos Tower."; next; - switch (select("Tower Monsters?:Temp Contract Work?:......")) { - case 1: - mes "[Ditze]"; - mes "Yes, when we began"; - mes "reconstruction of the"; - mes "Thanatos Tower, these"; - mes "monsters that look like angels"; - mes "just appeared out of nowhere"; - mes "to attack all the workers."; - next; - mes "[Ditze]"; - mes "At first, witnesses thought"; - mes "that these monsters might"; - mes "be, you know, actual angels."; - mes "But if they were, why were they"; - mes "attacking for no reason?"; - next; - mes "[Ditze]"; - mes "Anyway, we asked the Juno "; - mes "Sage Academy to investigate"; - mes "them, and they confirmed that"; - mes "these angelic creatures are true monsters--their resemblance to"; - mes "angels is merely coincidence."; - close; - case 2: - mes "[Ditze]"; - mes "You may have already heard"; - mes "from the Tower Keeper, but"; - mes "we're contracting adventurers to exterminate the tower monsters"; - mes "in the 3rd and higher levels on"; - mes "a temporary employee basis."; - next; - mes "[Ditze]"; - mes "I'm in charge of hiring"; - mes "temp contract workers, so"; - mes "talk to me if you're interested. Only temp workers are allowed"; - mes "to access the higher levels"; - mes "here in Thanatos Tower."; - next; - break; - case 3: - mes "[Ditze]"; - mes "To develop the floors above"; - mes "the 2nd floor, we're going to"; - mes "need as many temp contract"; - mes "workers as we can hire. Why"; - mes "don't you consider working"; - mes "for us under a temp contract?"; - close; - } - switch (select("Maybe next time:Sure, I'd like to work for you.")) { + switch(select("Tower Monsters?:Temp Contract Work?:......")) { case 1: mes "[Ditze]"; - mes "Well, alright."; - mes "But come and talk to"; - mes "me as soon as you decide"; - mes "that you want to help with"; - mes "the tower reconstruction by"; - mes "working for Rekenber."; + mes "Yes, when we began"; + mes "reconstruction of the"; + mes "Thanatos Tower, these"; + mes "monsters that look like angels"; + mes "just appeared out of nowhere"; + mes "to attack all the workers."; + next; + mes "[Ditze]"; + mes "At first, witnesses thought"; + mes "that these monsters might"; + mes "be, you know, actual angels."; + mes "But if they were, why were they"; + mes "attacking for no reason?"; + next; + mes "[Ditze]"; + mes "Anyway, we asked the Juno "; + mes "Sage Academy to investigate"; + mes "them, and they confirmed that"; + mes "these angelic creatures are true monsters--their resemblance to"; + mes "angels is merely coincidence."; close; case 2: mes "[Ditze]"; - mes "That's great!"; - mes "Would you please fill"; - mes "out this employment"; - mes "agreement first? Let's"; - mes "see. Your name is..."; - mes ""+strcharinfo(0)+", right?"; + mes "You may have already heard"; + mes "from the Tower Keeper, but"; + mes "we're contracting adventurers to exterminate the tower monsters"; + mes "in the 3rd and higher levels on"; + mes "a temporary employee basis."; next; - menu "Yes",-; mes "[Ditze]"; - mes "Alright, please read"; - mes "this agreement carefully."; - mes "If you agree with all of"; - mes "the conditions, go ahead"; - mes "and just sign the bottom."; - next; - mes "^3355FFDitze hands you the"; - mes "Employment Agreement"; - mes "document for you to read.^000000"; - next; - mes "- Employment Agreement -"; - mes " "; - mes "1. This employment agreement"; - mes "is effective between Rekenber"; - mes "Corporation (''Employer'') and "+strcharinfo(0)+"(''Employee'')."; - mes "1-1. This employment agreement"; - mes "is classified as a Mercernary"; - mes "contract between both parties."; - mes "2. The terms of this contract"; - mes "immediately take effect once"; - mes "it is signed by both parties"; - mes "(Employer and Employee)."; - mes "3. When the Employee performs"; - mes "a mission, the mission results"; - mes "must be verified with acceptible physical proof that must be"; - mes "presented to the Employer."; - mes "3-1. Please refer to Section"; - mes "7A for examples of acceptible"; - mes "proof of monster extermination."; - mes "3-2. Acceptible proof is"; - mes "determined and defined by a"; - mes "representative of the Employer."; - mes "4. Employer will allot rewards"; - mes "to Employees after receiving"; - mes "extermination proof."; - mes "4-1. Possible rewards for"; - mes "monster exterminations may"; - mes "include the following."; - mes "................................................."; - mes "................................................."; - mes "................................................."; - mes "................................................."; - mes "................................................."; - mes "13. This contract's terms are"; - mes "only applicable witin Thanatos"; - mes "Tower."; - mes "14. Employees will receive"; - mes "a discount on the Entry Fee"; - mes "to the Thanatos Tower."; - mes " "; - mes " "; - mes " "; - mes "Employer Signature____________"; - mes "Employee Signature____________"; + mes "I'm in charge of hiring"; + mes "temp contract workers, so"; + mes "talk to me if you're interested. Only temp workers are allowed"; + mes "to access the higher levels"; + mes "here in Thanatos Tower."; next; - switch (select("Sign:Don't Sign")) { - case 1: - mes "^3355FFYou sign two copies of the"; - mes "Employment Agreement.^000000"; - next; - mes "[Ditze]"; - mes "Thank you. Now, you are"; - mes "an official employee of the"; - mes "Rekenber Corporation! Well,"; - mes "within the limits of this tower"; - mes "anyway. This contract doesn't"; - mes "apply outside of this place."; - next; - mes "[Ditze]"; - mes "From now on, you can talk"; - mes "to the 2nd Floor Guide to"; - mes "enter the 3rd Floor. If you"; - mes "have any mission reward"; - mes "questions, please ask ^3355FFLiei^000000."; - next; - mes "[Ditze]"; - mes "If you want to check"; - mes "more information about"; - mes "your work, please talk"; - mes "to the 2nd Floor Guide."; - mes "Thank you, and welcome"; - mes "to the Rekenber Corporation~"; - set thana_tower,1; - close; - case 2: - mes "[Ditze]"; - mes "Oh? Was there an article"; - mes "within the contract that you"; - mes "disagreed with? Hm. Well,"; - mes "that's fine. But if you change"; - mes "your mind, please come back"; - mes "and ask me anytime. Thank you~"; - close; - } + goto L_Contract; + case 3: + mes "[Ditze]"; + mes "To develop the floors above"; + mes "the 2nd floor, we're going to"; + mes "need as many temp contract"; + mes "workers as we can hire. Why"; + mes "don't you consider working"; + mes "for us under a temp contract?"; + close; } case 2: mes "[Ditze]"; @@ -408,122 +271,7 @@ tha_t01,149,78,4 script Guide 90,{ mes "to access the higher levels"; mes "here in Thanatos Tower."; next; - switch (select("Maybe next time:Sure, I'd like to work for you.")) { - case 1: - mes "[Ditze]"; - mes "Well, alright."; - mes "But come and talk to"; - mes "me as soon as you decide"; - mes "that you want to help with"; - mes "the tower reconstruction by"; - mes "working for Rekenber."; - close; - case 2: - mes "[Ditze]"; - mes "That's great!"; - mes "Would you please fill"; - mes "out this employment"; - mes "agreement first? Let's"; - mes "see. Your name is..."; - mes ""+strcharinfo(0)+", right?"; - next; - menu "Yes",-; - mes "[Ditze]"; - mes "Alright, please read"; - mes "this agreement carefully."; - mes "If you agree with all of"; - mes "the conditions, go ahead"; - mes "and just sign the bottom."; - next; - mes "^3355FFDitze hands you the"; - mes "Employment Agreement"; - mes "document for you to read.^000000"; - next; - mes "- Employment Agreement -"; - mes " "; - mes "1. This employment agreement"; - mes "is effective between Rekenber"; - mes "Corporation (''Employer'') and "+strcharinfo(0)+"(''Employee'')."; - mes "1-1. This employment agreement"; - mes "is classified as a Mercernary"; - mes "contract between both parties."; - mes "2. The terms of this contract"; - mes "immediately take effect once"; - mes "it is signed by both parties"; - mes "(Employer and Employee)."; - mes "3. When the Employee performs"; - mes "a mission, the mission results"; - mes "must be verified with acceptible physical proof that must be"; - mes "presented to the Employer."; - mes "3-1. Please refer to Section"; - mes "7A for examples of acceptible"; - mes "proof of monster extermination."; - mes "3-2. Acceptible proof is"; - mes "determined and defined by a"; - mes "representative of the Employer."; - mes "4. Employer will allot rewards"; - mes "to Employees after receiving"; - mes "extermination proof."; - mes "4-1. Possible rewards for"; - mes "monster exterminations may"; - mes "include the following. "; - mes "................................................."; - mes "................................................."; - mes "................................................."; - mes "................................................."; - mes "................................................."; - mes "13. This contract's terms are"; - mes "only applicable witin Thanatos"; - mes "Tower."; - mes "14. Employees will receive"; - mes "a discount on the Entry Fee"; - mes "to the Thanatos Tower."; - mes " "; - mes " "; - mes " "; - mes "Employer Signature_____________"; - mes "Employee Signature____________"; - next; - switch (select("Sign:Don't Sign")) { - case 1: - mes "^3355FFYou sign two copies of the"; - mes "Employment Agreement.^000000"; - next; - mes "[Ditze]"; - mes "Thank you. Now, you are"; - mes "an official employee of the"; - mes "Rekenber Corporation! Well,"; - mes "within the limits of this tower"; - mes "anyway. This contract doesn't"; - mes "apply outside of this place."; - next; - mes "[Ditze]"; - mes "From now on, you can talk"; - mes "to the 2nd Floor Guide to"; - mes "enter the 3rd Floor. If you"; - mes "have any mission reward"; - mes "questions, please ask ^3355FFLiei^000000."; - next; - mes "[Ditze]"; - mes "If you want to check"; - mes "more information about"; - mes "your work, please talk"; - mes "to the 2nd Floor Guide."; - mes "Thank you, and welcome"; - mes "to the Rekenber Corporation~"; - set thana_tower,1; - close; - case 2: - mes "[Ditze]"; - mes "Oh? Was there an article"; - mes "within the contract that you"; - mes "disagreed with? Hm. Well,"; - mes "that's fine. But if you change"; - mes "your mind, please come back"; - mes "and ask me anytime. Thank you~"; - close; - } - } + goto L_Contract; case 3: mes "[Ditze]"; mes "Well, if you have any"; @@ -540,10 +288,127 @@ tha_t01,149,78,4 script Guide 90,{ mes "and the Guide next to me. Well,"; mes "we hope you enjoy your experience working with Rekenber Corporation~"; close; + +L_Contract: + switch(select("Maybe next time:Sure, I'd like to work for you.")) { + case 1: + mes "[Ditze]"; + mes "Well, alright."; + mes "But come and talk to"; + mes "me as soon as you decide"; + mes "that you want to help with"; + mes "the tower reconstruction by"; + mes "working for Rekenber."; + close; + case 2: + mes "[Ditze]"; + mes "That's great!"; + mes "Would you please fill"; + mes "out this employment"; + mes "agreement first? Let's"; + mes "see. Your name is..."; + mes strcharinfo(0) + ", right?"; + next; + select("Yes"); + mes "[Ditze]"; + mes "Alright, please read"; + mes "this agreement carefully."; + mes "If you agree with all of"; + mes "the conditions, go ahead"; + mes "and just sign the bottom."; + next; + mes "^3355FFDitze hands you the"; + mes "Employment Agreement"; + mes "document for you to read.^000000"; + next; + mes "- Employment Agreement -"; + mes " "; + mes "1. This employment agreement"; + mes "is effective between Rekenber"; + mes "Corporation (''Employer'') and "+strcharinfo(0)+"(''Employee'')."; + mes "1-1. This employment agreement"; + mes "is classified as a Mercernary"; + mes "contract between both parties."; + mes "2. The terms of this contract"; + mes "immediately take effect once"; + mes "it is signed by both parties"; + mes "(Employer and Employee)."; + mes "3. When the Employee performs"; + mes "a mission, the mission results"; + mes "must be verified with acceptible physical proof that must be"; + mes "presented to the Employer."; + mes "3-1. Please refer to Section"; + mes "7A for examples of acceptible"; + mes "proof of monster extermination."; + mes "3-2. Acceptible proof is"; + mes "determined and defined by a"; + mes "representative of the Employer."; + mes "4. Employer will allot rewards"; + mes "to Employees after receiving"; + mes "extermination proof."; + mes "4-1. Possible rewards for"; + mes "monster exterminations may"; + mes "include the following."; + mes "................................................."; + mes "................................................."; + mes "................................................."; + mes "................................................."; + mes "................................................."; + mes "13. This contract's terms are"; + mes "only applicable witin Thanatos"; + mes "Tower."; + mes "14. Employees will receive"; + mes "a discount on the Entry Fee"; + mes "to the Thanatos Tower."; + mes " "; + mes " "; + mes " "; + mes "Employer Signature____________"; + mes "Employee Signature____________"; + next; + switch(select("Sign:Don't Sign")) { + case 1: + mes "^3355FFYou sign two copies of the"; + mes "Employment Agreement.^000000"; + next; + mes "[Ditze]"; + mes "Thank you. Now, you are"; + mes "an official employee of the"; + mes "Rekenber Corporation! Well,"; + mes "within the limits of this tower"; + mes "anyway. This contract doesn't"; + mes "apply outside of this place."; + next; + mes "[Ditze]"; + mes "From now on, you can talk"; + mes "to the 2nd Floor Guide to"; + mes "enter the 3rd Floor. If you"; + mes "have any mission reward"; + mes "questions, please ask ^3355FFLiei^000000."; + next; + mes "[Ditze]"; + mes "If you want to check"; + mes "more information about"; + mes "your work, please talk"; + mes "to the 2nd Floor Guide."; + mes "Thank you, and welcome"; + mes "to the Rekenber Corporation~"; + set thana_tower, 1; + close; + case 2: + mes "[Ditze]"; + mes "Oh? Was there an article"; + mes "within the contract that you"; + mes "disagreed with? Hm. Well,"; + mes "that's fine. But if you change"; + mes "your mind, please come back"; + mes "and ask me anytime. Thank you~"; + close; + } + } } tha_t01,140,78,4 script Guide#reward 831,{ - mes "[Liei]"; if (thana_tower == 0) { mes "Good day, I'm"; @@ -552,7 +417,7 @@ tha_t01,140,78,4 script Guide#reward 831,{ mes "Reward Department"; mes "here in Thanatos Tower."; next; - switch (select("Employee's mission reward?:Keep up the good work.")) { + switch(select("Employee's mission reward?:Keep up the good work.")) { case 1: mes "[Liei]"; mes "Currently, Rekenber Corporation"; @@ -573,7 +438,7 @@ tha_t01,140,78,4 script Guide#reward 831,{ mes "Ah, hello~"; mes "How may I help you?"; next; - if(select("Reward:Nothing")==2) { + if(select("Reward:Nothing") == 2) { mes "[Liei]"; mes "Alright, then."; mes "Please do your best"; @@ -581,7 +446,8 @@ tha_t01,140,78,4 script Guide#reward 831,{ mes "monsters that infest"; mes "the higher floors of"; mes "the Thanatos Tower~"; - close; } + close; + } mes "[Liei]"; mes "You're "+strcharinfo(0)+", yes?"; mes "Let me check our temp"; @@ -606,17 +472,16 @@ tha_t01,140,78,4 script Guide#reward 831,{ mes getitemname(.@Items[.@i])+" is..."; mes " "; mes "1,000 zeny"; - mes "2,000 EXP"; + //mes "2,000 EXP"; next; set .@zeny_tt,(countitem(.@Items[.@i]) * 1000); - set .@exp_tt,(countitem(.@Items[.@i]) * 2000); + //set .@exp_tt,(countitem(.@Items[.@i]) * 2000); mes "[Liei]"; - mes "If you turn in your"; mes countitem(.@Items[.@i])+" "+getitemname(.@Items[.@i])+"s, then"; mes "you will receive a total of..."; mes " "; mes ""+.@zeny_tt+" zeny"; - mes ""+.@exp_tt+" EXP"; + //mes ""+.@exp_tt+" EXP"; next; mes "[Liei]"; mes "Would you like to exchange"; @@ -627,13 +492,13 @@ tha_t01,140,78,4 script Guide#reward 831,{ case 1: mes "[Liei]"; mes "Great! Here is your"; - mes ""+.@zeny_tt+" zeny and"; - mes ""+.@exp_tt+" EXP. Thank you,"; + mes .@zeny_tt+" zeny. Thank you,"; + //mes .@exp_tt+" EXP. Thank you,"; mes "and please keep up"; mes "the good work~"; delitem .@Items[.@i], countitem(.@Items[.@i]); set Zeny, Zeny + .@zeny_tt; - getexp .@exp_tt,0; + //getexp .@exp_tt,0; close; case 2: mes "[Liei]"; @@ -647,7 +512,6 @@ tha_t01,140,78,4 script Guide#reward 831,{ } tha_t02,231,161,5 script Entrance Guide 874,{ - mes "[Burled]"; if (thana_tower == 0) { mes "You are in front of the entrance to the 3rd Floor. Only contracted"; @@ -656,261 +520,377 @@ tha_t02,231,161,5 script Entrance Guide 874,{ mes "speak to the 2nd Floor Guide."; close; } - mes "......"; - mes "........."; - mes "............"; + mes "This is the path to the 3rd floor."; + mes "Only the contracted staff are allowed to enter."; + mes "How can I help you?"; next; - switch (select("Excuse me...:.........")) { + switch(select("Let me go to 3rd floor.:Tower Information.:Start a conversation.")) { case 1: mes "[Burled]"; - mes "Oh..."; - mes "I'm sorry, how"; - mes "can I help you?"; + mes "Oh, alright. Let me"; + mes "check and see if you're"; + mes "on our temp list. Hmmm..."; + mes "Ah, you're "+strcharinfo(0)+", right?"; next; - if (thana_tower < 2) { - switch (select("Enter the 3rd Floor:Gate Information")) { - case 1: - mes "[Burled]"; - mes "Oh, alright. Let me"; - mes "check and see if you're"; - mes "on our temp list. Hmmm..."; - mes "Ah, you're "+strcharinfo(0)+", right?"; - next; - if (getareausers("tha_t02",226,156,236,166) < 5) { - mes "[Burled]"; - mes "First, we need to wait until"; - mes "at least 5 temps are gathered"; - mes "to form a work group. Right"; - mes "now, there are a total of"; - mes "" +getareausers("tha_t02",226,156,236,166)+ " temp workers waiting to"; - mes "enter the 3rd Floor."; - next; - mes "[Burled]"; - mes "If you can, try to get"; - mes "your friends to help you"; - mes "by coming near me. Please"; - mes "understand that we have this"; - mes "temp worker group requirement"; - mes "for various safety reasons."; - close2; - } - mes "[Burled]"; - mes "Great, you're just"; - mes "in time. We just met"; - mes "the minimum 5 temp group"; - mes "requirement, so we'll open"; - mes "the gate to the 3rd Floor soon."; - next; - mes "[Burled]"; - mes "The gate to the 3rd Floor"; - mes "will close shortly, so enter it"; - mes "as soon as you can. We have"; - mes "to close it quickly because we"; - mes "can't have the tower monsters"; - mes "entering the lower floors..."; - close2; - donpcevent "3rdf_warp#tt::OnEnable"; - end; - case 2: - mes "[Burled]"; - mes "This gate is the only passage"; - mes "that connects to the 3rd Floor."; - mes "After the 4th Floor, passages"; - mes "between floors only travel one"; - mes "way, meaning you can't exit the"; - mes "same way you that you entered."; - next; - mes "[Burled]"; - mes "You see, there's a strange"; - mes "power that affects the 5th"; - mes "Floor, and all floors above,"; - mes "which doesn't allow people to"; - mes "backtrack through the passage in which they entered the floor."; - next; - mes "[Burled]"; - mes "So if you ascend past the"; - mes "4th Floor, please be careful"; - mes "and make sure that you find"; - mes "a way to get back. Also, the"; - mes "monsters grow more powerful"; - mes "as you ascend the tower..."; - next; + mes "[Burled]"; + if (getareausers("tha_t02",226,156,236,166) < 5) { + mes "First, we need to wait until"; + mes "at least 5 temps are gathered"; + mes "to form a work group. Right"; + mes "now, there are a total of"; + mes getareausers("tha_t02",226,156,236,166)+ " temp workers waiting to"; + mes "enter the 3rd Floor."; + next; + mes "[Burled]"; + mes "If you can, try to get"; + mes "your friends to help you"; + mes "by coming near me. Please"; + mes "understand that we have this"; + mes "temp worker group requirement"; + mes "for various safety reasons."; + close; + } + mes "Great, you're just"; + mes "in time. We just met"; + mes "the minimum 5 temp group"; + mes "requirement, so we'll open"; + mes "the gate to the 3rd Floor soon."; + next; + mes "[Burled]"; + mes "The gate to the 3rd Floor"; + mes "will close shortly, so enter it"; + mes "as soon as you can. We have"; + mes "to close it quickly because we"; + mes "can't have the tower monsters"; + mes "entering the lower floors..."; + if (thana_tower > 3) { + next; + mes "^4d4dffBurled is smiling lightly so that only I notice."; + mes "I nod, then watch him open the gate.^000000"; + } + close2; + donpcevent "3rdf_warp#tt::OnEnable"; + end; + case 2: + mes "[Burled]"; + mes "This gate is the only passage"; + mes "that connects to the 3rd Floor."; + mes "After the 4th Floor, passages"; + mes "between floors only travel one"; + mes "way, meaning you can't exit the"; + mes "same way you that you entered."; + next; + mes "[Burled]"; + mes "You see, there's a strange"; + mes "power that affects the 5th"; + mes "Floor, and all floors above,"; + mes "which doesn't allow people to"; + mes "backtrack through the passage in which they entered the floor."; + next; + mes "[Burled]"; + mes "So if you ascend past the"; + mes "4th Floor, please be careful"; + mes "and make sure that you find"; + mes "a way to get back."; + next; + mes "[Burled]"; + mes "The top is the 12th floor,"; + mes "and the monsters grow more powerful"; + mes "as you ascend the tower."; + mes "The geographical features also change considerably."; + next; + mes "[Burled]"; + mes "Because the higher levels are"; + mes "too dangerous, we only open the"; + mes "3rd Floor Gate when 5 or more"; + mes "are gathered here. Therefore,"; + mes "you may need to wait if less"; + mes "than 5 temps have gathered."; + close; + case 3: + if (thana_tower < 3) { + mes "[Burled]"; + mes "...?"; + mes "Do you have any questions?"; + next; + if(select("About the development.:The relationship of Cool Event Corporation and Rekenber Corporation.:Nope.") == 3) { mes "[Burled]"; - mes "Because the higher levels are"; - mes "too dangerous, we only open the"; - mes "3rd Floor Gate when 5 or more"; - mes "are gathered here. Therefore,"; - mes "you may need to wait if less"; - mes "than 5 temps have gathered."; + mes "Take care."; close; } - } - switch (select("Enter the 3rd Floor:Gate Information:About Satan Morroc...")) { - case 1: mes "[Burled]"; - mes "Oh, alright. Let me"; - mes "check and see if you're"; - mes "on our temp list. Hmmm..."; - mes "Ah, you're "+strcharinfo(0)+", right?"; + mes "...um, you're quite curious."; + mes "If you want to know more, would you do me a favor?"; + mes "Since you asked for our confidential info..."; next; - if (getareausers("tha_t02",226,156,236,166) < 5) { - mes "[Burled]"; - mes "First, we need to wait until"; - mes "at least 5 temps are gathered"; - mes "to form a work group. Right"; - mes "now, there are a total of"; - mes ""+getareausers("tha_t02",226,156,236,166)+" temp workers waiting to"; - mes "enter the 3rd Floor."; - next; + if(select("Really? Don't make me afraid of it.:Just tell me about it.:I'll listen about it later.") == 3) { mes "[Burled]"; - mes "If you can, try to get"; - mes "your friends to help you"; - mes "by coming near me. Please"; - mes "understand that we have this"; - mes "temp worker group requirement"; - mes "for various safety reasons."; + mes "As you wish..."; + mes "Take care!"; close; } mes "[Burled]"; - mes "Great, you're just"; - mes "in time. We just met"; - mes "the minimum 5 temp group"; - mes "requirement, so we'll open"; - mes "the gate to the 3rd Floor soon."; + mes "Haha. That's not a big deal."; + mes "We, Cool Event, are the corporation that works in many areas of business."; + mes "From simple events, guides for dungeons, and trading items."; next; mes "[Burled]"; - mes "The gate to the 3rd Floor"; - mes "will close shortly, so enter it"; - mes "as soon as you can. We have"; - mes "to close it quickly because we"; - mes "can't have the tower monsters"; - mes "entering the lower floors..."; - close2; - donpcevent "3rdf_warp#tt::OnEnable"; - end; - case 2: + mes "Though our business started as a small one, we've been getting bigger with assistance from the Rekenber Corporation."; + mes "They suggested to develop this tower together."; + next; mes "[Burled]"; - mes "This gate is the only passage"; - mes "that connects to the 3rd Floor."; - mes "After the 4th Floor, passages"; - mes "between floors only travel one"; - mes "way, meaning you can't exit the"; - mes "same way you that you entered."; + mes "The Rekenber Corporation is only digging out the remains for studies."; + mes "The rest would be made into sightseeing place, which Cool Event Corporation can manage well."; next; mes "[Burled]"; - mes "You see, there's a strange"; - mes "power that affects the 5th"; - mes "Floor, and all floors above,"; - mes "which doesn't allow people to"; - mes "backtrack through the passage in which they entered the floor."; + mes "It's the biggest business ever."; + mes "Also quite profitable as tourist attractions."; + mes "But..."; next; mes "[Burled]"; - mes "So if you ascend past the"; - mes "4th Floor, please be careful"; - mes "and make sure that you find"; - mes "a way to get back. Also, the"; - mes "monsters grow more powerful"; - mes "as you ascend the tower..."; + mes "Considerably strong monsters spawn inside the tower."; + mes "The monsters weren't spawned there before."; + mes "The day after that happened..."; next; mes "[Burled]"; - mes "Because the higher levels are"; - mes "too dangerous, we only open the"; - mes "3rd Floor Gate when 5 or more"; - mes "are gathered here. Therefore,"; - mes "you may need to wait if less"; - mes "than 5 temps have gathered."; - close; - case 3: + mes "...anyway, there were some accidently spawned monsters and some troubles..."; + mes "We and the Rekenber Corporation are in shock."; + mes "We were influenced economically, but the more serious thing is..."; + next; + mes "[Burled]"; + mes "Many staff involved in development are"; + mes "sacrificing themselves by coming to 3rd floor."; + next; + mes "[Burled]"; + mes "While we've pumped our all into the business, that accident happened..."; + mes "We eventually merged with the Rekenber Corporation."; + next; mes "[Burled]"; - mes "Satan Morroc...?"; - mes "Ummm... Isn't talking"; - mes "about that a little taboo?"; - mes "I mean, people get angry"; - mes "or scared just hearing"; - mes "that name, you know?"; + mes "The development is on hold temporarily."; + mes "Recruiting adventurers to defeat monsters..."; + mes "Isn't this funny?"; next; - switch (select("It's important that I know more.:I'm sorry, I didn't know...")) { + mes "[Burled]"; + mes "No matter what happened there, they wouldn't be hurt."; + mes "Even if they don't get at the root of the accident...."; + next; + switch(select("Oh...:What accident are you referring to?")) { case 1: mes "[Burled]"; - mes "When the Rekenber Corporation"; - mes "started reconstruction of the"; - mes "Thanatos Tower, the Cool Event"; - mes "Corporation was their biggest"; - mes "business partner in the tower"; - mes "reconstruction project."; - next; - mes "[Burled]"; - mes "Yeah, I remember that Cool"; - mes "Event Corp. invested huge"; - mes "amounts of zeny and manpower"; - mes "to rebuild to tower, and expand"; - mes "their business relationship"; - mes "with Rekenber Corporation..."; + mes "Yes, it's not that big of a deal. Haha...."; + mes "If we are working here like this...."; + mes "we would know about the death of animals."; next; mes "[Burled]"; - mes "But then, there was some"; - mes "kind of accident. An explosion"; - mes "happened in the upper floors"; - mes "of Thanatos Tower. Some say"; - mes "it might have been Satan Morroc, but I wouldn't know for sure."; + mes "Cool Event Corporation is considered the follower..."; + mes "They don't clear up how many people"; + mes "died or any reasons for it."; next; mes "[Burled]"; - mes "Because of that explosion,"; - mes "Cool Event Corporation withdrew"; - mes "their investment into the tower"; - mes "reconstruction project. They"; - mes "basically abandoned Rekenber Corporation in the tower effort."; + mes "Now you're curious about this case."; + mes "What do they sacrifice for?"; next; mes "[Burled]"; - mes "But well..."; - mes "Shortly after that happened,"; - mes "Rekenber Corporation took over"; - mes "Cool Event Corporation. I mean,"; - mes "the company retains its name, but it's a Rekenber company now."; - next; - mes "[Burled]"; - mes "I know, I know..."; - mes "It all sounds awfully"; - mes "shady. Please do me a favor"; - mes "and don't tell anyone that"; - mes "I told you this rumor, okay?"; + mes "I talked a lot."; + mes "Sorry, I am not supposed to talk about this case like this..."; + mes "I've been quite concerned about it, that's all."; + set thana_tower, 3; close; case 2: - close; + mes "[Burled]"; + mes "If you promise me that"; + mes "you will do me a favor..."; + next; + switch(select("Ok! I will.:No, I won't.")) { + case 1: + callsub L_Request; + next; + mes "["+strcharinfo(0)+"]"; + mes "(What's the accident...?"; + mes "He might let me know later...)"; + close; + case 2: + mes "[Burled]"; + mes "...there is no way..."; + mes "They request you to explore the internal part."; + mes "You're employed for this exploration."; + close; + } } } - case 2: - mes "["+strcharinfo(0)+"]"; - mes "............."; + else if (thana_tower == 3) { + callsub L_Request; + close; + } + else if (thana_tower == 4) { + mes "[Burled]"; + mes "Rekenber Corporation must have another intention,"; + mes "since they don't seem interested in the tower much."; + mes "I want to know their intention."; + next; + mes "[Burled]"; + mes "This tower is sealed and separated from the outside."; + mes "We need to break those seals, explore inside and develop it."; + next; + mes "[Burled]"; + mes "We are developing the 3rd and 4th floors now..."; + mes "There are still seals there."; + mes "You can find out some clues when you search around them."; + close; + } + else if ((thana_tower > 4) && (thana_tower < 9)) { + mes "[Burled]"; + mes "The magical key and messages?"; + mes "...we absolutely haven't learned all the tower's secrets..."; + next; + mes "[Burled]"; + mes "Who made the seals?"; + mes "...can you investigate more?"; + mes "There must be definitive evidence..."; + close; + } + else if (thana_tower == 9) { + mes "[Burled]"; + mes "Any new progress?"; + next; + select("I found Varmunt's Journal..."); + mes "- You show him Varmunt's Journal."; + mes "Burled reads it. -"; + next; + mes "[Burled]"; + mes "...I recognize this."; + mes "This is the hologragh of the wise man Varmunt."; + mes "Regenschirm from Rekenber's huge research institute has..."; + next; + mes "[Burled]"; + mes "...isn't this the one they are looking for now?!"; + mes "Isn't their mission to find out Varmunt's research materials...?"; + next; + mes "[Burled]"; + mes "For assisting uncompleted research..."; + mes "Varmunt's research materials are needed..."; + mes "...so their mission isn't just an investigation of the tower."; + next; + mes "[Burled]"; + mes "Something to get as an advantage..."; + mes "Even they don't know where it is..."; + mes "...anyways, this is the one of their main objects."; + next; + mes "[Burled]"; + mes "It's absolutely great. The wise man Varmunt's belongings. How unbelievable!"; + mes "Now, what do we do with this?"; + next; + mes "[Burled]"; + mes "Originally everything we found out in this tower was under control of the Rekenber Corporation."; + mes "This is supposed to theirs, but..."; + next; + mes "[Burled]"; + mes "How would you like to keep this, "+strcharinfo(0)+"?"; + mes "Definitely this should be a secret."; + mes "...um, this is a little revenge for them."; + next; + mes "[Burled]"; + mes "I can guess that there are several secrets in this tower through this note."; + mes "This secret should be disclosed by you, "+strcharinfo(0)+", before Rekenber does."; + next; + mes "[Burled]"; + mes "No matter how much power they obtain... they won't get to know about this tower..."; + mes "Haha..."; + next; + mes "[Burled]"; + mes "...haha..."; + mes "I feel a bit relieved."; + mes "Thanks."; + mes "This isn't much, but here's a return present."; + next; + mes "[Burled]"; + mes "I hope that these will be useful for you, "+strcharinfo(0)+"."; + next; + mes "- Burled gives you the note and an Old Violet Box. -"; + mes " "; + mes "^4d4dffYou acquire one Old Violet Box,"; + mes "as well as a little EXP.^000000"; + set thana_tower, 10; + completequest 7053; + getexp 120000,10000; + getitem 617,1; //Old_Violet_Box + close; + } + else { + mes "[Burled]"; + mes "Are you keeping the secrets well?"; + mes "Is there a Phantom on the top of this tower?"; + if (rand(3) == 1) { + mes "You look tired. This isn't a big deal, but it's for you."; +// UseSkillToPC 28 10 50 70 + percentheal 50,70; + specialeffect2 EF_HEAL; + } close; + } } + +L_Request: + mes "[Burled]"; + mes "Ah, it's not that difficult."; + mes "After you explore the tower, let me know in detail anything you learn."; + next; + mes "[Burled]"; + mes "...I can't believe the Rekenber Corporation. Many colleagues and friends died for them."; + mes "But the Rekenber Corporation doesn't expose the reason they are dead."; + next; + mes "[Burled]"; + mes "The conditions were bad for us from beginning..."; + mes "All of the developed places except research materials would be turned into tourist attractions..."; + mes "Honestly, all the personnel are from Cool Event Corp."; + next; + mes "[Burled]"; + mes "They know about it as well."; + mes "This business needs much sacrifice as well as personnel who are up for it."; + next; + mes "[Burled]"; + mes "Now I don't feel victimized anymore, but I just want to know what drives these accidents..."; + mes "^4d4dffWhat makes us victimized...?^000000"; + mes "That's what I want to know."; + next; + mes "[Burled]"; + mes "What's this tower?"; + mes "Why did they develop this dangerous place?"; + mes "And for what? Should my colleagues be dead for it?"; + next; + mes "[Burled]"; + mes "I seriously want to know about it."; + mes "Why they must sacrifice themselves..."; + mes "Let me know..."; + next; + mes "He seriously wants to know about it."; + mes "His hands are trembling now..."; + mes "I nodd without answering."; + set thana_tower, 4; + setquest 7048; + return; } tha_t02,227,163,0 script 3rdf_warp#tt 45,1,1,{ end; - OnInit: disablenpc "3rdf_warp#tt"; end; - OnTouch: if (thana_tower == 0) warp "tha_t02",227,158; else warp "tha_t03",219,159; end; - OnEnable: enablenpc "3rdf_warp#tt"; initnpctimer; end; - OnTimer30000: stopnpctimer; disablenpc "3rdf_warp#tt"; end; } -tha_t03,67,70,0 script Machine Device#tt1 111,{ - +tha_t03,67,70,0 script Rune Device#tt1 111,4,4,{ if ((countitem(7421) == 0) && (countitem(7426) == 0)) { mes "^3355FFA mysterious field of"; mes "energy seems to surround"; @@ -918,134 +898,142 @@ tha_t03,67,70,0 script Machine Device#tt1 111,{ mes "its power prevents you from"; mes "approaching the machine.^000000"; next; - switch (select("Smash the Energy Field:Retreat")) { + switch(select("Investigate it.:I don't care about it.")) { case 1: - if (getequipweaponlv(4) == 4){ + mes "["+strcharinfo(0)+"]"; + mes "This seems mysterious..."; + mes "Let me investigate."; + next; + mes "^3355FFAs you follow the magical power, there's something wrapped inside the rune device.^000000"; + next; + if (Class == Job_Taekwon) { + mes "^3355FFYou kick the energy"; + mes "field with all of your strength. After absorbing the impact, the"; + mes "field fizzles out with a soft,"; + mes "gentle ''pzzzzzh'' sound.^000000"; + next; + goto L_Key; + } + else if (getequipweaponlv(4) == 4) { mes "^3355FFWith your "+getequipname(4)+" in"; mes "hand, you smash the energy"; mes "field with all of your strength. After absorbing the impact, the"; mes "field fizzles out with a soft,"; mes "gentle ''pzzzzzh'' sound.^000000"; next; - switch (select("Investigate Device:Retreat")) { - case 1: - mes "^3355FFAs you investigate the"; - mes "device, you accidentally"; - mes "press a button, resulting"; - mes "in a loud beeping noise"; - mes "and the activation of"; - mes "the monitor screen.^000000"; - next; - switch (select("Read the Screen:Ignore the Screen")) { - case 1: - mes "^426F42I've used the Gate Seal"; - mes "technology to seal the gate"; - mes "and the charm stones. Although"; - mes "the seals are in place, I can't"; - mes "stop worrying that they might"; - mes "break in the future.^000000"; - next; - mes "^426F42I can't relax when a, shall"; - mes "I say, particular group covets"; - mes "the charm stones and can easily"; - mes "break the seals. To deter them,"; - mes "I've changed the Gate destination before sealing the Gate.^000000"; - next; - mes "^426F42I didn't check the exact"; - mes "destination coordinates for"; - mes "the Gate after I changed them,"; - mes "but the destination gives me"; - mes "a warm, comforting feeling,"; - mes "so it's definitely not hell.^000000"; - next; - mes "^3355FFYou've read all the"; - mes "text displayed on the"; - mes "screen. Judging from the"; - mes "content, there is probably"; - mes "more text before and after the"; - mes "section shown on the screen.^000000"; - next; - switch (select("Further Investigate Machine:Finish Investigation")) { - case 1: - mes "^3355FFYou have found"; - mes "a small key on the"; - mes "corner of the machine."; - mes "Just touching this key"; - mes "gives you a strange feeling.^000000"; - getitem 7421,1; //Key_Red - close; - case 2: - close; - } - case 2: - mes "^3355FFYou decide to ignore the"; - mes "text displayed on the screen,"; - mes "and immediately discover a"; - mes "small key laid on the corner"; - mes "of the machine. Just touching"; - mes "it gives you a strange feeling.^000000"; - getitem 7421,1; //Key_Red - close; - } - case 2: - mes "^3355FFYou decide to leave"; - mes "the machine alone.^000000"; - close; - } + goto L_Key; + } + else { + mes "^3355FFYou smash the energy"; + mes "field with your weapon"; + mes "using all of your strength,"; + mes "but you weren't able to"; + mes "break down the barrier."; + mes "You probably need a more"; + mes "powerful weapon...^000000"; + close; } - mes "^3355FFYou smash the energy"; - mes "field with your weapon"; - mes "using all of your strength,"; - mes "but you weren't able to"; - mes "break down the barrier."; - mes "You probably need a more"; - mes "powerful weapon...^000000"; - close; case 2: mes "^3355FFYou decide to leave"; mes "the machine alone.^000000"; close; } } - mes "^3355FFIt's a peculiar machine"; - mes "that emits a strange buzzing"; - mes "hum. After looking closer,"; - mes "you can faintly perceive an"; - mes "energy barrier surrounding"; - mes "the machine.^000000"; + mes "You've acquired everything you need from this rune device."; close; -} -tha_t04,195,195,0 script Machine Device#tt2 111,{ +OnTouch: + if ((countitem(7421) == 0) && (countitem(7426) == 0)) + specialeffect EF_LEVEL99_4; + end; - if ((countitem(7422) == 0) && (countitem(7427) == 0)) { - mes "^3355FFYou find a number pad"; - mes "underneath the monitor."; - mes "As you press one of the"; - mes "number keys, you hear a"; - mes "beep as the screen activates.^000000"; - next; +L_Key: + specialeffect EF_BRANDISH2; + mes "After breaking the device, the exterior shatters."; + mes "The energy field begins to disappear,"; + mes "and you see that a red object inside was the origin of the magical power."; + next; + mes "- You acquired the powerful Red Key. -"; + getitem 7421,1; //Key_Red + if (thana_tower != 4) close; + mes "^4d4dffOnce you hold the key, a shocking feeling passes through your head."; + mes "You see an illusion of light...^000000"; + next; + switch(select("Ignore it.:Concentrate on it.")) { + case 1: + mes "^3355FFYou decide to leave"; + mes "the machine alone.^000000"; + close; + case 2: + mes "You focus on the light."; + mes "Some letters begin to appear..."; + next; + mes "^b22222I've used the Gate Seal"; + mes "technology to seal the gate"; + mes "and the charm stones. Although"; + mes "the seals are in place, I can't"; + mes "stop worrying that they might"; + mes "break in the future."; + next; + mes "^b22222I can't relax when a, shall"; + mes "I say, particular group covets"; + mes "the charm stones and can easily"; + mes "break the seals. Since they are"; + mes "broken now, are many people hurt?"; + next; + mes "^b22222This tower contains strong"; + mes "magical powers and much evil. It is"; + mes "dangerous by itself, but I sealed it"; + mes "because of one man's strong desires..."; + next; + mes "^b22222I wouldn't recommend to go futher."; + mes "You would need to challenge that poor"; + mes "being, who I've named this tower after."; + mes "His soul still rests here..."; + next; + mes "^b22222Nobody believed me, the crazy scientist."; + mes "Though I wanted to keep this a secret, somebody"; + mes "must get to know about it. That's way I created"; + mes "this rune device, and hid this message."; + next; + mes "^b22222Please show that my experience"; + mes "wasn't just an illusion.^000000"; + next; + mes "That's all."; + mes "The letters fly away in the form of a red key..."; + set thana_tower, 5; + changequest 7048,7049; + specialeffect2 EF_COMBOATTACK1; + close; + } +} + +tha_t04,195,195,0 script Rune Device#tt2 111,3,3,{ + if ((countitem(7422) == 0) && (countitem(7427) == 0)) { + mes "^3355FFYou find a screen"; + mes "with three tiny panels and"; + mes "a numeric keypad underneath."; + mes "As you press one of the"; + mes "number keys, you hear a"; + mes "beep as the screen activates.^000000"; + next; mes "[Screen]"; mes "Please enter a 3 digit"; mes "number. Do not use a"; mes "single number more than"; mes "once or use the number 0."; - set @retry,0; next; while (1) { - set @yagu100,rand(1,9); - set @yagu10,rand(1,9); - set @yagu1,rand(1,9); - if (((@yagu100 != @yagu10) && (@yagu100 != @yagu1)) && (@yagu10 != @yagu1)) { + set .@yagu100, rand(1,9); + set .@yagu10, rand(1,9); + set .@yagu1, rand(1,9); + if (((.@yagu100 != .@yagu10) && (.@yagu100 != .@yagu1)) && (.@yagu10 != .@yagu1)) break; - } } while (1) { while (1) { -L_Retry: - next; - input @input; - if (@input < 100 || @input > 999) { + input .@input; + if (.@input < 100 || .@input > 999) { mes "[Screen]"; mes "Number input"; mes "requirement has"; @@ -1054,12 +1042,11 @@ L_Retry: mes "3 digit number."; close; } - set @input100,@input / 100; - set @input10,(@input % 100) / 10; - if (((@input100 > 0) && (@input10 > 0)) && ((@input % 10) > 0)) { - if ((@input100 != @input10) && (@input100 != (@input % 10)) && (@input10 != (@input % 10))) { + set .@input100, .@input / 100; + set .@input10, (.@input % 100) / 10; + if (((.@input100 > 0) && (.@input10 > 0)) && (.@input % 10 > 0)) { + if (((.@input100 != .@input10) && (.@input100 != .@input % 10)) && (.@input10 != .@input % 10)) break; - } mes "[Screen]"; mes "Violation of number"; mes "input parameter. The"; @@ -1069,94 +1056,75 @@ L_Retry: next; } } - set @retry,@retry+1; + set .@retry, .@retry + 1; mes "[Screen]"; mes "You have input..."; - mes "^0000ff"+@input100+"^000000, ^0000ff"+@input10+"^000000, ^0000ff"+(@input % 10)+"^000000"; + mes "^0000ff" + .@input100 + "^000000, ^0000ff" + .@input10 + "^000000, ^0000ff" + (.@input % 10) + "^000000"; mes " "; mes "Calculating Results..."; mes "Please wait a moment..."; next; - set @strike,0; - set @ball,0; - if (@yagu100 == @input100) set @strike,@strike+1; - if (@yagu10 == @input10) set @strike,@strike+1; - if (@yagu1 == (@input % 10)) set @strike,@strike+1; - if ((@yagu100 == @input10) || (@yagu100 == (@input % 10))) set .@ball,.@ball+1; - if ((@yagu10 == @input100) || (@yagu10 == (@input % 10))) set @ball,@ball+1; - if ((@yagu1 == @input100) || (@yagu1 == @input10)) set @ball,@ball+1; - if (@strike == 3) { + set .@strike, 0; + set .@ball, 0; + if (.@yagu100 == .@input100) set .@strike, .@strike + 1; + if (.@yagu10 == .@input10) set .@strike, .@strike + 1; + if (.@yagu1 == .@input % 10) set .@strike, .@strike + 1; + if ((.@yagu100 == .@input10) || (.@yagu100 == .@input % 10)) set .@ball, .@ball + 1; + if ((.@yagu10 == .@input100) || (.@yagu10 == .@input % 10)) set .@ball, .@ball + 1; + if ((.@yagu1 == .@input100) || (.@yagu1 == .@input10)) set .@ball, .@ball + 1; + if (.@strike == 3) { mes "[Screen]"; mes "Input number accepted."; mes "Access authorized."; next; mes "^3355FFAfter the screen displays"; mes "the access authorization"; - mes "notice, some new text is"; - mes "displayed on the screen,"; - mes "and a storage unit slides"; - mes "open beneath the monitor.^000000"; + mes "notice, magical power condenses"; + mes "and appears on the screen's"; + mes "surface. An object forms...^000000"; + next; + mes "^4d4dffThe powerful Yellow Key appears.^000000"; + getitem 7422,1; //Key_Yellow + if (thana_tower != 5) close; + mes "^4d4dffA fierce feeling passes through your head."; + mes "You seen an illusion of light, like when you acquired the first key.^000000"; next; - switch (select("Read the Screen's Text:Investigate Monitor Storage:Cancel")) { + switch(select("Ignore it.:Concentrate on it.")) { case 1: - mes "[Log Entry]"; - mes "^426F42That could only mean she"; - mes "came here for Satan Morroc."; - mes "After I investigated the area,"; - mes "I found traces of a battle that"; - mes "involved several human sized creatures and one giant monster.^000000"; + mes "You decide to ignore it."; + close; + case 2: + mes "You focus on the light."; + mes "Some letters begin to appear..."; next; - mes "[Log Entry]"; - mes "^426F42I'm guessing that her group"; - mes "actually fought Satan Morroc"; - mes "and managed to wound it"; - mes "severely. It looks like Satan"; - mes "Morroc retreated to the south"; - mes "and her group followed it.^000000"; + mes "^b22222Have you found the second key?"; + mes "I wish to tell you where the seal is, but I won't unveil it so easily."; + mes "Here's a hint. Go to the eagle on the 5th floor."; next; - mes "[Log Entry]"; - mes "^426F42Strangely, I haven't found"; - mes "any traces of her, which is"; - mes "especially suspicious since"; - mes "other evidence in the area has"; - mes "remained for hundreds of years."; - mes "But I can't figure out why...^000000"; + mes "^b22222The reason I came here is..."; + mes "to find someone."; + mes "We human beings can't understand this..."; next; - mes "^3355FFYou've finished"; - mes "reading the Log Entry.^000000"; + mes "^b22222When I found her in Juperos, I couldn't relax."; + mes "The giant men staying with her in deep side of cave"; + mes "made me rush through my investigation..."; next; - switch (select("Investigate Monitor Storage:Cancel")) { - case 1: - mes "^3355FFYou find a small, shining"; - mes "key in an empty corner of the"; - mes "Monitor's Storage receptacle."; - mes "Merely holding it makes you"; - mes "feel some strange sensation.^000000"; - if (thana_tower == 1) set thana_tower,2; - getitem 7422,1; //Key_Yellow - close; - case 2: - close; - } - case 2: - mes "^3355FFYou find a small, shining"; - mes "key in an empty corner of the"; - mes "Monitor's Storage receptacle."; - mes "Merely holding it makes you"; - mes "feel some strange sensation.^000000"; - getitem 7422,1; //Key_Yellow - close; - case 3: - mes "^3355FFAfter a short while,"; - mes "you hear a low pitched"; - mes "beep. The screen's text"; - mes "disappears, and the storage"; - mes "receptable under the monitor"; - mes "slides shut, concealing itself.^000000"; + mes "^b22222After confirming her existence, I became blindly obsessed with finding traces of her."; + mes "'Her', you ask? She is shaped like a woman..."; + next; + mes "^b22222I followed her traces without knowing that she existed 10 years earlier."; + mes "Then I came upon this place."; + next; + mes "^b22222This tower set up for...^000000"; + next; + mes "It suddenly shakes, then disappears."; + set thana_tower, 6; + changequest 7049,7050; + specialeffect2 EF_COMBOATTACK1; close; } } - if (@retry > 4) { + else { mes "[Screen]"; mes "*Beeeeep*"; mes "Unauthorized"; @@ -1165,1603 +1133,1188 @@ L_Retry: mes "[Screen]"; mes "Correct number"; mes "in correct place"; - mes "in sequence total: ^FF0000"+@strike+"^000000"; + mes "in sequence total: ^FF0000" + .@strike + "^000000"; mes " "; - mes "Correct number total: ^FF0000"+@ball+"^000000"; + mes "Correct number total: ^FF0000" + .@ball + "^000000"; next; - mes "[Screen]"; - mes "Correct number"; - mes "authorization"; - mes "sequence was..."; - mes "^ff0000"+@yagu100+"^000000, ^ff0000"+@yagu10+"^000000, ^ff0000"+@yagu1+"^000000"; - mes "Authorization number"; - mes "will change upon retry."; - close; + if (.@retry > 4) { + mes "[Screen]"; + mes "Correct number"; + mes "authorization"; + mes "sequence was..."; + mes "^ff0000" + .@yagu100 + "^000000, ^ff0000" + .@yagu10 + "^000000, ^ff0000" + .@yagu1 + "^000000"; + mes "Authorization number"; + mes "will change upon retry."; + close; + } } - mes "[Screen]"; - mes "*Beeeeep*"; - mes "Unauthorized"; - mes "numerical sequence."; - next; - mes "[Screen]"; - mes "Correct number"; - mes "in correct place"; - mes "in sequence total: ^FF0000"+@strike+"^000000"; - mes " "; - mes "Correct number total: ^FF0000"+@ball+"^000000"; - goto L_Retry; } } - mes "^3355FFThis device is currently"; - mes "inactivated and not in"; - mes "operation. However, you"; - mes "may have use for it later...^000000"; + mes "You've acquired everything you need from this rune device."; close; -} -tha_t05,101,37,0 script Machine Device#tt3 111,{ +OnTouch: + if ((countitem(7422) == 0) && (countitem(7427) == 0)) + specialeffect EF_LEVEL99_4; + end; +} +tha_t05,62,179,0 script Brilliant Statue#tt3 111,3,3,{ if ((countitem(7423) == 0) && (countitem(7428) == 0)) { - if (getareausers("tha_t05",98,34,104,40) < 4) { - mes "^3355FFYou are inexplicably drawn"; - mes "to this mechanical device."; - mes "Aside from the green screen"; - mes "in the middle, there are no"; - mes "buttons and switches.^000000"; - if (rand(1,3) == 2) { - next; - mes "^3355FFYou perceive small text at the"; - mes "bottom of the green screen"; - mes "that reads, ''Operation of this"; - mes "device requires presense of"; - mes "four or more personnel detected"; - mes "by pressure plate system.''^000000"; - close; - } + mes "I can feel some magical power from this beautiful stone statue."; + mes "There's a little crack between the wings."; + next; + mes "Red light is shining on a crack in the left wing, and gold light on a crack in the right one."; + mes "What will you do?"; + next; + if(select("Stick the key into the crack...:Ignore it.") == 2) { + mes "^3355FFYou decide to leave"; + mes "the statue alone.^000000"; close; } - mes "^3355FFAs you approach the device, the"; - mes "floor around it begins to glow."; - mes "Text appears on the device's"; - mes "screen, and a storage receptacle beneath the monitor slides open.^000000"; - next; - switch (select("Read the Screen's Text:Investigate Monitor Storage:Cancel")) { - case 1: - mes "[Log Entry]"; - mes "^426F42After the whole ordeal,"; - mes "I decided to leave. But"; - mes "before I could do that,"; - mes "I had to seal the Gate"; - mes "that led to that place.^000000"; + if ((countitem(7421) > 0) && (countitem(7422) > 0)) { + mes "["+strcharinfo(0)+"]"; + mes "I'll try the left wing first."; + mes "What key should I put in?"; next; - mes "[Log Entry]"; - mes "^426F42If someone were to find"; - mes "this tower and use the Gate"; - mes "for evil ends, the world will be plagued with an era of chaos."; - mes "Of course, they'd stop me if they knew I was sealing the Gate...^000000"; + input .@inputstr$; + if ((.@inputstr$ != "Red Key") && (.@inputstr$ != "red key")) { + mes "It doesn't fit into the crack."; + close; + } + mes "The key fits and makes a click."; + mes "You feel the magical power growing stronger..."; next; - mes "[Log Entry]"; - mes "^426F42It took me a very long time,"; - mes "but I managed to secretly"; - mes "seal the Gate. But before"; - mes "I began sealing the Gate,"; - mes "I decided to examine it"; - mes "further, just in case.^000000"; + mes "["+strcharinfo(0)+"]"; + mes "Now the right side..."; next; - mes "[Log Entry]"; - mes "^426F42In my studies of the Gate,"; - mes "I discovered that it derives"; - mes "its power from the Charm"; - mes "Stones. So to prevent anyone"; - mes "from misusing its power, I've separately sealed the stones...^000000"; + input .@inputstr$; + if ((.@inputstr$ != "Yellow Key") && (.@inputstr$ != "yellow key")) { + mes "It doesn't fit into the crack."; + close; + } + mes "The key fits and makes a click."; + mes "The beak of the bird suddenly opens, and a strong light comes out."; + mes "There's a key-shaped object inside..."; next; - mes "^3355FFYou've finished"; - mes "reading the text"; - mes "that was displayed"; - mes "on the screen.^000000"; - close; - case 2: - mes "^3355FFYou've found a small"; - mes "shining key inside the"; - mes "storage receptacle located"; - mes "underneath the monitor.^000000"; + mes "^4d4dffThe powerful Blue Key appears.^000000"; getitem 7423,1; //Key_Blue - close; - case 3: - close; + if (thana_tower != 6) close; + mes "^4d4dffOnce you hold the key, a shocking feeling passes through your head."; + mes "You see an illusion of light...^000000"; + next; + switch(select("Concentrate on it.:Ignore it.")) { + case 1: + mes "This part isn't as clear as before."; + mes "You try to figure out what it's saying..."; + next; + mes "^b22222...this tower was built by a magical tribe, not by human beings."; + mes "This was quite interesting to me..."; + mes "I started to investigate why they built up the tower..."; + next; + mes "^b22222I found out that this tower was a gate for the magic tribe"; + mes "during a millennium war.^000000"; + next; + mes ".........It's not clearly shown......"; + mes "^b22222...Morroc has gone through this gate"; + mes "from the magical world into the Midgard continent after the millennium war terminated..."; + next; + mes "^b22222The question is that when she come up here, the Satan appears at the same time..."; + mes "The truth is..........^000000"; + next; + mes "The illusion shakes, then melts on the surface of the key as light."; + set thana_tower, 7; + changequest 7050,7051; + specialeffect2 EF_COMBOATTACK1; + close; + case 2: + mes "You decide to ignore it."; + close; + } } + mes "You try to fit something in the crack, but to no avail."; + close; } - mes "^3355FFYou find nothing here,"; - mes "aside from the faded"; - mes "patterns that mark the floor.^000000"; + mes "You've acquired everything you need from this statue."; close; -} -tha_t06,43,152,0 script Machine Devicett4 111,{ +OnTouch: + if ((countitem(7423) == 0) && (countitem(7428) == 0)) + specialeffect EF_LEVEL99_4; + end; +} +tha_t06,226,230,0 script Brilliant Statue#tt4 111,3,3,{ if ((countitem(7424) == 0) && (countitem(7429) == 0)) { - mes "^3355FFYou find a mechanical"; - mes "device that has many"; - mes "wheels. A black screen"; - mes "is mounted on the side"; - mes "of the machine.^000000"; + mes "I can feel some magical power from this brilliant statue."; + mes "This must be one of the seals."; next; - switch (select("Investigate:Cancel")) { - case 1: - if ((countitem(7421) >= 1) || (countitem(7422) >= 1) || (countitem(7423) >= 1)) { - mes "^3355FFAs you scrutinize the"; - mes "wheels, they respond to"; - mes "the key in your inventory by"; - mes "emitting light and strange"; - mes "noises. After a while, they"; - mes "stop and become silent.^000000"; + mes "You see a floating round object with a hole in it."; + mes "There're red, yellow, and blue light in a row."; + mes "What will you do?"; + next; + if(select("Investigate.:Ignore it.") == 2) { + mes "^3355FFYou don't see the need to"; + mes "investigate if nothing seems"; + mes "peculiar or out of place...^000000"; + close; + } + if ((countitem(7421) > 0) && (countitem(7422) > 0) && (countitem(7423) > 0)) { + mes "When you insert the key into the keyhole of the ornament"; + mes "and match them by corresponding color, the Stone Statue will snap open."; + mes "You can see small wheels are moving inside."; + next; + switch(select("Investigate the Machine Chasis:Investigate the Wheels:Cancel")) { + case 1: + mes "^3355FFThe key in your inventory"; + mes "does not seem to be affecting"; + mes "the machine's chasis. The"; + mes "screen mounted on the side"; + mes "is still blank and deactivated.^000000"; + close; + case 2: + set .@small_1, 0; + set .@small_2, 0; + set .@big_1, 0; + set .@big_2, 0; + set .@big_3, 0; + mes "^3355FFYou touch the wheels and"; + mes "find that they are actually"; + mes "moving very slowly. You note"; + mes "that there are 2 small wheels"; + mes "and 3 larger wheels, totaling"; + mes "5 wheels on this machine.^000000"; next; - switch (select("Investigate the Machine Chasis:Investigate the Wheels:Cancel")) { - case 1: - mes "^3355FFThe key in your inventory"; - mes "does not seem to be affecting"; - mes "the machine's chasis. The"; - mes "screen mounted on the side"; - mes "is still blank and deactivated.^000000"; - close; - case 2: - set @small_1,0; - set @small_2,0; - set @big_1,0; - set @big_2,0; - set @big_3,0; - mes "^3355FFYou touch the wheels and"; - mes "find that they are actually"; - mes "moving very slowly. You note"; - mes "that there are 2 small wheels"; - mes "and 3 larger wheels, totaling"; - mes "5 wheels on this machine.^000000"; - next; - mes "^3355FFThe big wheels are moving"; - mes "vertically, up and down, as"; - mes "they press against the smaller"; - mes "wheels to make them rotate.^000000"; + mes "^3355FFThe big wheels are moving"; + mes "vertically, up and down, as"; + mes "they press against the smaller"; + mes "wheels to make them rotate.^000000"; + next; + mes "^3355FFJudging from the machine's"; + mes "shaking and jittery noises, the"; + mes "wheels may be misaligned."; + mes "You might be able to activate"; + mes "the machine by properly "; + mes "aligning all the wheels.^000000"; + while (1) { next; - mes "^3355FFJudging from the machine's"; - mes "shaking and jittery noises, the"; - mes "wheels may be misaligned."; - mes "You might be able to activate"; - mes "the machine by properly "; - mes "aligning all the wheels.^000000"; - while (1) { - next; - mes "^3355FFWhich wheel would"; - mes "you want to shift?^000000"; - next; - switch (select("1st Small Wheel:2nd Small Wheel:1st Big Wheel:2nd Big Wheel:3rd Big Wheel:Check Current Wheel Configuration:Reset Wheels to Default Configuration")) { + mes "^3355FFWhich wheel do"; + mes "you want to shift?^000000"; + switch(select("1st Small Wheel:2nd Small Wheel:1st Big Wheel:2nd Big Wheel:3rd Big Wheel:Check Current Wheel Configuration:Reset Wheels to Default Configuration")) { + case 1: + switch(select("Raise Wheel:Lower Wheel:Press Wheel")) { case 1: - switch (select("Raise Wheel:Lower Wheel:Press Wheel")) { - case 1: - mes "^EE0000*Choom*^000000"; - set @small_1,2; - if ((@small_1 == 2) && (@small_2 == 2) && (@big_1 == 2) && (@big_2 == 2) && (@big_3 == 2)) break; - continue; - case 2: - mes "^00B2EE*Sneeeep*^000000"; - set @small_1,1; - if ((@small_1 == 1) && (@small_2 == 1) && (@big_1 == 1) && (@big_2 == 1) && (@big_3 == 1)) break; - continue; - case 3: - mes "^5C246E*Mrreeem*^000000"; - set @small_1,3; - if ((@small_1 == 3) && (@small_2 == 3) && (@big_1 == 3) && (@big_2 == 3) && (@big_3 == 3)) break; - continue; - } - break; + mes "^EE0000*Choom*^000000"; + set .@small_1, 2; + if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break; + continue; case 2: - switch (select("Raise Wheel:Lower Wheel:Press Wheel")) { - case 1: - mes "^5C246E*Mrreeem*^000000"; - set @small_2,3; - if ((@small_1 == 3) && (@small_2 == 3) && (@big_1 == 3) && (@big_2 == 3) && (@big_3 == 3)) break; - continue; - case 2: - mes "^EE0000*Choom*^000000"; - set @small_2,2; - if ((@small_1 == 2) && (@small_2 == 2) && (@big_1 == 2) && (@big_2 == 2) && (@big_3 == 2)) break; - continue; - case 3: - mes "^00B2EE*Sneeeep*^000000"; - set @small_2,1; - if ((@small_1 == 1) && (@small_2 == 1) && (@big_1 == 1) && (@big_2 == 1) && (@big_3 == 1)) break; - continue; - } - break; + mes "^00B2EE*Sneeeep*^000000"; + set .@small_1, 1; + if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break; + continue; case 3: - switch (select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) { - case 1: - mes "^00B2EE*Sneeeep*^000000"; - set @big_1,1; - if ((@small_1 == 1) && (@small_2 == 1) && (@big_1 == 1) && (@big_2 == 1) && (@big_3 == 1)) break; - continue; - case 2: - mes "^5C246E*Mrreeem*^000000"; - set @big_1,3; - if ((@small_1 == 3) && (@small_2 == 3) && (@big_1 == 3) && (@big_2 == 3) && (@big_3 == 3)) break; - continue; - case 3: - mes "^EE0000*Choom*^000000"; - set @big_1,2; - if ((@small_1 == 2) && (@small_2 == 2) && (@big_1 == 2) && (@big_2 == 2) && (@big_3 == 2)) break; - continue; - } - break; - case 4: - switch (select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) { - case 1: - mes "^EE0000*Choom*^000000"; - set @big_2,2; - if ((@small_1 == 2) && (@small_2 == 2) && (@big_1 == 2) && (@big_2 == 2) && (@big_3 == 2)) break; - continue; - case 2: - mes "^5C246E*Mrreeem*^000000"; - set @big_2,3; - if ((@small_1 == 3) && (@small_2 == 3) && (@big_1 == 3) && (@big_2 == 3) && (@big_3 == 3)) break; - continue; - case 3: - mes "^00B2EE*Sneeeep*^000000"; - set @big_2,1; - if ((@small_1 == 1) && (@small_2 == 1) && (@big_1 == 1) && (@big_2 == 1) && (@big_3 == 1)) break; - continue; - } - break; - case 5: - switch (select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) { - case 1: - mes "^EE0000*Choom*^000000"; - set @big_3,2; - if ((@small_1 == 2) && (@small_2 == 2) && (@big_1 == 2) && (@big_2 == 2) && (@big_3 == 2)) break; - continue; - case 2: - mes "^00B2EE*Sneeeep*^000000"; - set @big_3,1; - if ((@small_1 == 1) && (@small_2 == 1) && (@big_1 == 1) && (@big_2 == 1) && (@big_3 == 1)) break; - continue; - case 3: - mes "^5C246E*Mrreeem*^000000"; - set @big_3,3; - if ((@small_1 == 3) && (@small_2 == 3) && (@big_1 == 3) && (@big_2 == 3) && (@big_3 == 3)) break; - continue; - } - break; - case 6: - mes "---Wheel Position---"; - if (@small_1 == 0) mes "1st Small Wheel: No Change"; - else if (@small_1 == 1) mes "1st Small Wheel: Down"; - else if (@small_1 == 2) mes "1st Small Wheel: Up"; - else mes "1st Small Wheel: Pressed"; - - if (@small_2 == 0) mes "2nd Small Wheel: No Change"; - else if (@small_2 == 1) mes "2nd Small Wheel: Pressed"; - else if (@small_2 == 2) mes "2nd Small Wheel: Down"; - else mes "2nd Small Wheel: Up"; - - if (@big_1 == 0) mes "1st Big Wheel: No Change"; - else if (@big_1 == 1) mes "1st Big Wheel: Up"; - else if (@big_1 == 2) mes "1st Big Wheel: Moved"; - else mes "1st Big Wheel: Down"; - - if (@big_2 == 0) mes "2nd Big Wheel: No Change"; - else if (@big_2 == 1) mes "2nd Big Wheel: Moved"; - else if (@big_2 == 2) mes "2nd Big Wheel: Up"; - else mes "2nd Big Wheel: Down"; - - if (@big_3 == 0) mes "3rd Big Wheel: No Change"; - else if (@big_3 == 1) mes "3rd Big Wheel: Down"; - else if (@big_3 == 2) mes "3rd Big Wheel: Up"; - else mes "3rd Big Wheel: Moved"; - - next; - mes "---Wheel Sound---"; - if (@small_1 == 0) mes "1st Small Wheel: *Br-brak!*"; - else if (@small_1 == 1) mes "1st Small Wheel: *Sneeeep*"; - else if (@small_1 == 2) mes "1st Small Wheel: *Choom*"; - else mes "1st Small Wheel: *Mrreeem*"; - - if (@small_2 == 0) mes "2nd Small Wheel: *Br-brak!*"; - else if (@small_2 == 1) mes "2nd Small Wheel: *Sneeeep*"; - else if (@small_2 == 2) mes "2nd Small Wheel: *Choom*"; - else mes "2nd Small Wheel: *Mrreeem*"; - - if (@big_1 == 0) mes "1st Big Wheel: *Br-brak!*"; - else if (@big_1 == 1) mes "1st Big Wheel: *Sneeeep*"; - else if (@big_1 == 2) mes "1st Big Wheel: *Choom*"; - else mes "1st Big Wheel: *Mrreeem*"; - - if (@big_2 == 0) mes "2nd Big Wheel: *Br-brak!*"; - else if (@big_2 == 1) mes "2nd Big Wheel: *Sneeeep*"; - else if (@big_2 == 2) mes "2nd Big Wheel: *Choom*"; - else mes "2nd Big Wheel: *Mrreeem*"; - - if (@big_3 == 0) mes "3rd Big Wheel: *Br-brak!*"; - else if (@big_3 == 1) mes "3rd Big Wheel: *Sneeeep*"; - else if (@big_3 == 2) mes "3rd Big Wheel: *Choom*"; - else mes "3rd Big Wheel: *Mrreeem*"; - + mes "^5C246E*Mrreeem*^000000"; + set .@small_1, 3; + if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break; continue; - case 7: - set @small_1,0; - set @small_2,0; - set @big_1,0; - set @big_2,0; - set @big_3,0; - close; } break; - } - mes "^3355FFAs you adjust the wheels,"; - mes "they suddenly immobilize with"; - mes "a firm click. Then, the device's screen activates and displays"; - mes "some text while a storage"; - mes "compartment underneath"; - mes "the monitor slides open.^000000"; - next; - switch (select("Read the Screen's Text:Investigate Monitor Storage:Cancel")) { - case 1: - mes "[Log Entry]"; - mes "^426F42It was never the humans"; - mes "or the gods that built this"; - mes "tower: it was the demons."; - mes "Intrigued by this information,"; - mes "I decided to try to learn why they had constructed Thanatos Tower.^000000"; - next; - mes "[Log Entry]"; - mes "^426F42In my research, I learned"; - mes "that this tower was used as a"; - mes "gate to summon demons from hell during the thousand year war,"; - mes "and that the infamous Satan Morroc was one of those summoned here.^000000"; - next; - mes "[Log Entry]"; - mes "^426F42Satan Morroc... I admit"; - mes "that I'm interested in learning"; - mes "more about his appearance since"; - mes "that occurred at around the same time as when she came to"; - mes "Thanatos Tower...^000000"; - next; - mes "^3355FFYou've finished"; - mes "reading the text"; - mes "that was displayed"; - mes "on the screen.^000000"; - close; case 2: - mes "^3355FFInside the monitor"; - mes "storage compartment,"; - mes "you find a small, shining"; - mes "key that you decide to take.^000000"; - getitem 7424,1; //Key_Green - close; + switch(select("Raise Wheel:Lower Wheel:Press Wheel")) { + case 1: + mes "^5C246E*Mrreeem*^000000"; + set .@small_2, 3; + if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break; + continue; + case 2: + mes "^EE0000*Choom*^000000"; + set .@small_2, 2; + if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break; + continue; + case 3: + mes "^00B2EE*Sneeeep*^000000"; + set .@small_2, 1; + if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break; + continue; + } + break; case 3: - close; + switch(select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) { + case 1: + mes "^00B2EE*Sneeeep*^000000"; + set .@big_1, 1; + if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break; + continue; + case 2: + mes "^5C246E*Mrreeem*^000000"; + set .@big_1, 3; + if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break; + continue; + case 3: + mes "^EE0000*Choom*^000000"; + set .@big_1, 2; + if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break; + continue; + } + break; + case 4: + switch(select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) { + case 1: + mes "^EE0000*Choom*^000000"; + set .@big_2, 2; + if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break; + continue; + case 2: + mes "^5C246E*Mrreeem*^000000"; + set .@big_2, 3; + if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break; + continue; + case 3: + mes "^00B2EE*Sneeeep*^000000"; + set .@big_2, 1; + if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break; + continue; + } + break; + case 5: + switch(select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) { + case 1: + mes "^EE0000*Choom*^000000"; + set .@big_3, 2; + if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break; + continue; + case 2: + mes "^00B2EE*Sneeeep*^000000"; + set .@big_3, 1; + if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break; + continue; + case 3: + mes "^5C246E*Mrreeem*^000000"; + set .@big_3, 3; + if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break; + continue; + } + break; + case 6: + if (.@small_1 == 0) mes "1st Small Wheel: No Change"; + else if (.@small_1 == 1) mes "1st Small Wheel: Down"; + else if (.@small_1 == 2) mes "1st Small Wheel: Up"; + else mes "1st Small Wheel: Pressed"; + + if (.@small_2 == 0) mes "2nd Small Wheel: No Change"; + else if (.@small_2 == 1) mes "2nd Small Wheel: Pressed"; + else if (.@small_2 == 2) mes "2nd Small Wheel: Down"; + else mes "2nd Small Wheel: Up"; + + if (.@big_1 == 0) mes "1st Big Wheel: No Change"; + else if (.@big_1 == 1) mes "1st Big Wheel: Up"; + else if (.@big_1 == 2) mes "1st Big Wheel: Moved"; + else mes "1st Big Wheel: Down"; + + if (.@big_2 == 0) mes "2nd Big Wheel: No Change"; + else if (.@big_2 == 1) mes "2nd Big Wheel: Moved"; + else if (.@big_2 == 2) mes "2nd Big Wheel: Up"; + else mes "2nd Big Wheel: Down"; + + if (.@big_3 == 0) mes "3rd Big Wheel: No Change"; + else if (.@big_3 == 1) mes "3rd Big Wheel: Down"; + else if (.@big_3 == 2) mes "3rd Big Wheel: Up"; + else mes "3rd Big Wheel: Moved"; + continue; + case 7: + set .@small_1, 0; + set .@small_2, 0; + set .@big_1, 0; + set .@big_2, 0; + set .@big_3, 0; + continue; } - case 3: + break; + } + mes "As you adjust the wheels,"; + mes "they suddenly activate"; + mes "with a firm click."; + next; + mes "A part of the ornament in the stone statue starts to spin,"; + mes "and a shining light beam climbs up the elegant statue."; + mes "A strong cursed power emerges and emits a dazzling green light."; + specialeffect EF_DISPELL; + specialeffect EF_POTION6; + next; + mes "^4d4dffAll of a sudden, the Green Key appears and you can feel great power from it.^000000"; + getitem 7424,1; //Key_Green + if (thana_tower != 7) close; + mes "^4d4dffWhen you pick up the key,"; + mes "your body trembles"; + mes "with an unknown power"; + mes "and you see a hallucination with some text.^000000"; + next; + switch(select("Concentrate on it.:Ignore it.")) { + case 1: + mes "^b22222...You found 4 keys"; + mes "and finally released 4 spells..."; + mes "This tower used to be"; + mes "a gate to summon demons ages ago."; + mes "And the last visitor was"; + mes "the infamous Satan Morroc."; + next; + mes "^b22222As I followed her trail"; + mes "I realized that her spells"; + mes "were scattered around the tower."; + mes "Then, somehow, it vanished into the ground."; + next; + mes "^b22222The great battle and"; + mes "the protracted war..."; + mes "But her purpose was..."; + mes "that... sealing of the gate..."; + mes "so... I tried to seal..."; + mes "but it was incomplete..."; + mes "the guard of the gate was...^000000"; + next; + mes "["+strcharinfo(0)+"]"; + mes "It is hard to read."; + next; + mes "^b22222...So I changed the location"; + mes "of the coupling spot..."; + mes "I mean, push through to the tower"; + mes "to tangle it..."; + mes "Anyway, I wanted to respect"; + mes "her loyalty and block the gate..."; + next; + mes "^b22222If I want to... then I have to"; + mes "release the last spell..."; + mes "He finally came to meet..."; + mes "with his pieces..."; + mes "...and then...^000000"; + next; + mes "The hallucination wobbles"; + mes "and fades into the key."; + set thana_tower, 8; + changequest 7051,7052; + specialeffect2 EF_BEGINSPELL6; + specialeffect2 EF_SPELLBREAKER; + close; + case 2: + mes "It was too intense to see the hallucination, so you gave up reading."; close; } + case 3: + mes "You decide to ignore it."; + close; } - mes "^3355FFThis mechanical device is"; - mes "activated, as evidenced by"; - mes "its gleaming, moving wheels.^000000"; - close; - case 2: - mes "^3355FFYou don't see the need to"; - mes "investigate if nothing seems"; - mes "peculiar or out of place...^000000"; - close; } + mes "You don't have the right key for this keyhole."; + close; } - mes "^3355FFYou found a deactivated"; - mes "mechanical device with an"; - mes "interesting series of wheels.^000000"; + mes "The spell is already released. You've acquired everything you need from this statue."; close; -} -tha_t09,19,158,0 script Machine Device#tt5 111,{ +OnTouch: + if ((countitem(7424) == 0) && (countitem(7429) == 0)) + specialeffect EF_LEVEL99_4; + end; +} +tha_t06,204,181,0 script Splendid Sword#tt5 111,3,3,{ if ((countitem(7425) == 0) && (countitem(7430) == 0)) { - if (((countitem(7421) >= 1) || (countitem(7426) >= 1)) && ((countitem(7422) >= 1) || (countitem(7427) >= 1)) && ((countitem(7423) >= 1) || (countitem(7428) >= 1)) && ((countitem(7424) >= 1) || (countitem(7429) >= 1))) { - mes "^3355FFYou find a machine that"; - mes "emits a soft light and weak"; - mes "hum. There is a monitor, with"; - mes "several different colored"; - mes "keyholes beneath it, in"; - mes "front of the machine.^000000"; + mes "An old, worn sword hangs above the splendid table."; + mes "It emits a gloomy aura."; + next; + if ((countitem(7421) > 0) && (countitem(7422) > 0) && (countitem(7423) > 0) && (countitem(7424) > 0)) { + mes "As you approach, the keys in your pocket"; + mes "suddenly respond with a mysterious power."; + specialeffect2 EF_ABSORBSPIRITS; next; - mes "^3355FFYou also notice that there"; - mes "are several slots that seem"; - mes "to be the perfect size for"; - mes "your keys and Charm Stones."; + if(select("Observe it.:Ignore it.") == 2) { + mes "^3355FFYou decide to leave"; + mes "the sword alone.^000000"; + close; + } + mes "While you get closer and closer, the sword shakes with a loud noise."; + mes "Your eyes keep getting drawn to the sword's hilt."; + mes "Then you lose control of your hands, and they stretch forth to grasp the handle..."; next; - input .@inputstr$; - if (.@inputstr$ == "Key" || .@inputstr$ == "Charmstone") { - mes "^3355FFYou insert the keys into the"; - mes "keyholes, matching them by"; - mes "corresponding color, and place"; - mes "the Charm Stones in the machine slots. The stones begin to glow,"; - mes "text appears on the screen, and the monitor's storage slides open.^000000"; + switch(select("Towards the blade of the sword:Towards the hilt of the sword:Towards the table")) { + case 1: + mes "By an unknown calling you decide to grab the blade of the sword."; + mes "Your hands get wounded and begin to bleed."; + specialeffect2 EF_HIT1; + percentheal -20,0; + close; + case 2: + mes "By an unknown calling you decide to grab the hilt of the sword."; + mes "The mysterious power from the keys transfers to the sword, and it falls from the table."; + next; + mes "At the same time, a little hole appears on the table's surface."; + mes "Now, you hold the sword and..."; + specialeffect EF_EXIT2; next; - switch (select("Read the Screen's Text:Investigate Monitor Storage:Cancel")) { + switch(select("Strike the table:Insert the sword into the hole:Bring the sword safely")) { case 1: - mes "[Log Entry]"; - mes "^426F42As I followed her trail to"; - mes "the north, I passed many"; - mes "deserted places. Finally,"; - mes "I dropped by a small village"; - mes "where I learned about a tower"; - mes "that refuses entry to humans.^000000"; - next; - mes "[Log Entry]"; - mes "^426F42I instantly realized that she"; - mes "must have gone to the tower."; - mes "I headed over there and when"; - mes "I arrived, I was shocked: it was grotesque and didn't resemble"; - mes "a human building at all.^000000"; - next; - mes "^426F42I was also amazed--"; - mes "advanced technology was"; - mes "probably necessary to build the tower's intricate structures."; - mes "I then learned an interesting fact while searching the tower...^000000"; - next; - mes "^3355FFYou've finished"; - mes "reading the text"; - mes "that was displayed"; - mes "on the screen.^000000"; + mes "You strike the table with the sword."; + mes "Numerous conflicting spells act upon it, and you can tell that you chose incorrectly."; + mes "The sword automatically returns to the table, as it was before."; + specialeffect EF_HIT1; + specialeffect2 EF_HIT1; + percentheal -20,0; close; case 2: - mes "^3355FFYou search the storage"; - mes "compartment beneath the"; - mes "screen and find a strange"; - mes "key. As soon as you take it,"; - mes "the machine's activity halts."; - mes "You then retrieve the Charm"; - mes "Stones and your other keys.^000000"; + mes "As you insert the sword, lightning flashes around it and black smoke rises from the hole."; + mes "Slowly the smoke clears, and you see an object with a certain shape..."; + specialeffect EF_CHANGEDARK; + next; + mes "^4d4dff All of a sudden, a Black Key appears from the smoke and you feel a great cursed power from it.^000000"; getitem 7425,1; //Key_Black + if (thana_tower != 8) close; + next; + mes "A drawer had snapped open under the table while you picked up the key and observed it."; + mes "You can see an old notebook inside the drawer."; + next; + mes "The notebook definitely looks like it contains an important message."; + mes "Maybe this notebook is the one that Rekenber wants to find, even with all the sacrifices."; + next; + mes "^4d4dffYou decide to show the notebook and the keys to Burled."; + mes "You received Varmunt's Journal.^000000"; + set thana_tower, 9; + changequest 7052,7053; + getitem 11011,1; //Barmund_Note close; case 3: - mes "^3355FFYou retrieve the Charm"; - mes "Stones and keys that you"; - mes "inserted into the machine.^000000"; + mes "When you lift the sword, you feel a shock from numerous conflicting spells."; + mes "Right... stealing is the worst."; + mes "The sword automatically returns to the table, as it was before."; close; } + case 3: + mes "You stretch your hands to find something under the table, but there is nothing."; + close; } - mes "You attempt to"; - mes .@inputstr$+","; - mes "but nothing happened."; - close; } - mes "^3355FFYou find a machine that"; - mes "emits a soft light and weak"; - mes "hum. There is a monitor, with"; - mes "several different colored"; - mes "keyholes beneath it, in"; - mes "front of the machine.^000000"; + mes "You strongly feel a cursed, sealed power from here,"; + mes "but it is hard to figure out what is causing it."; + mes "You cannot approach it."; close; } - mes "^3355FFYou find a peculiar"; - mes "mechanical device that"; - mes "is not in operation.^000000"; + mes "You have already released a seal using this sword."; + mes "You've acquired everything you need from here."; close; -} - -tha_t04,150,44,0 script Seal#tt1 111,{ - if (countitem(7423) >= 1) { - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away."; - mes "with a burst of blue light.^000000"; - next; - switch (select("Investigate:There's no way I can break this seal!")) { - case 1: - input .@inputstr$; - if (.@inputstr$ == "Blue Key") { - mes "^3355FFYou gently hold the blue"; - mes "key and bring it towards"; - mes "the seal. Strangely, your"; - mes "hand isn't pushed away this"; - mes "time, and the seal begins to"; - mes "emit a mysterious light.^000000"; - next; - mes "^3355FFYou find a small keyhole"; - mes "in the seal, insert the blue"; - mes "key, and slowly turn it. The"; - mes "seal's light fades, revealing a"; - mes "Charm Stone. Once you grasp"; - mes "the stone, someone's memory"; - mes "is injected into your mind.^000000"; - next; - mes "^333333Thanatos! We've got a"; - mes "message from the guild."; - mes "They want us to stop what"; - mes "we're doing and return now!^000000"; - mes " "; - mes "^333333W-We better hurry...^000000"; - next; - mes "......"; - mes "........."; - mes "............"; - next; - mes "^3355FFThe images faded from"; - mes "your mind as quickly as"; - mes "they appeared. What could"; - mes "have happened in the past?^000000"; - delitem 7423,1; //Key_Blue - getitem 7428,1; //Magic_Gem_Blue - close; - } - mes "^3355FFYou'll need to try"; - mes "something else in "; - mes "order to break this"; - mes "seal. What could"; - mes "you possibly need?^000000"; - close; - case 2: - mes "^3355FFYou stepped away from"; - mes "the seal, unwilling to deal"; - mes "with the power that keeps"; - mes "repulsing your advance.^000000"; - close; - } - } - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away.^000000"; - percentheal -10,0; - close; +OnTouch: + if ((countitem(7425) == 0) && (countitem(7430) == 0)) + specialeffect EF_LEVEL99_4; + end; } -tha_t05,218,116,0 script Seal#tt2 111,{ +tha_t08,1,1,0 script #Charm Stone Admintt01 844,{ + end; +OnInit: +OnEnable: + initnpctimer; + end; +OnTimer1000: + donpcevent "Shining Crystal#tt_r1::OnEnable"; + donpcevent "Shining Crystal#tt_g1::OnEnable"; + donpcevent "Shining Crystal#tt_b1::OnEnable"; + donpcevent "Shining Crystal#tt_y1::OnEnable"; + end; +OnTimer600000: + donpcevent "Shining Crystal#tt_r1::OnDisable"; + donpcevent "Shining Crystal#tt_g1::OnDisable"; + donpcevent "Shining Crystal#tt_b1::OnDisable"; + donpcevent "Shining Crystal#tt_y1::OnDisable"; + donpcevent "Shining Crystal#tt_r2::OnEnable"; + donpcevent "Shining Crystal#tt_g2::OnEnable"; + donpcevent "Shining Crystal#tt_b2::OnEnable"; + donpcevent "Shining Crystal#tt_y2::OnEnable"; + end; +OnTimer1200000: + donpcevent "Shining Crystal#tt_r2::OnDisable"; + donpcevent "Shining Crystal#tt_g2::OnDisable"; + donpcevent "Shining Crystal#tt_b2::OnDisable"; + donpcevent "Shining Crystal#tt_y2::OnDisable"; + donpcevent "Shining Crystal#tt_r3::OnEnable"; + donpcevent "Shining Crystal#tt_g3::OnEnable"; + donpcevent "Shining Crystal#tt_b3::OnEnable"; + donpcevent "Shining Crystal#tt_y3::OnEnable"; + end; +OnTimer1800000: + donpcevent "Shining Crystal#tt_r3::OnDisable"; + donpcevent "Shining Crystal#tt_g3::OnDisable"; + donpcevent "Shining Crystal#tt_b3::OnDisable"; + donpcevent "Shining Crystal#tt_y3::OnDisable"; + donpcevent "Shining Crystal#tt_r4::OnEnable"; + donpcevent "Shining Crystal#tt_g4::OnEnable"; + donpcevent "Shining Crystal#tt_b4::OnEnable"; + donpcevent "Shining Crystal#tt_y4::OnEnable"; + end; +OnTimer2400000: + donpcevent "Shining Crystal#tt_r4::OnDisable"; + donpcevent "Shining Crystal#tt_g4::OnDisable"; + donpcevent "Shining Crystal#tt_b4::OnDisable"; + donpcevent "Shining Crystal#tt_y4::OnDisable"; + donpcevent "#Charm Stone Admintt01::OnEnable"; + end; +} - if (countitem(7421) >= 1) { - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away."; - mes "with a burst of red light.^000000"; +tha_t08,90,153,0 script Shining Crystal#tt_r1 844,{ + if (countitem(7421) > 0) { + mes "The Crystal ball is emitting mysterious power."; next; - switch (select("Investigate:There's no way I can break this seal!")) { - case 1: - input .@inputstr$; - if (.@inputstr$ == "Red Key") { - mes "^3355FFYou gently hold the red"; - mes "key and bring it towards"; - mes "the seal. Strangely, your"; - mes "hand isn't pushed away this"; - mes "time, and the seal begins to"; - mes "emit a mysterious light.^000000"; - next; - mes "^3355FFYou find a small keyhole"; - mes "in the seal, insert the red"; - mes "key, and slowly turn it. The"; - mes "seal's light fades, revealing a"; - mes "Charm Stone. Once you grasp"; - mes "the stone, someone's memory"; - mes "is injected into your mind.^000000"; - next; - mes "...So then we decided"; - mes "to dispatch some Assassin"; - mes "Crosses to defeat Satan Morroc."; - mes "But honestly, the chances of "; - mes "success are about 1 percent."; - mes "It's better than nothing, but... It's freakin' Satan Morroc...^000000"; - next; - mes "......"; - mes "........."; - mes "............"; - next; - mes "^3355FFThe images faded from"; - mes "your mind as quickly as"; - mes "they appeared. What could"; - mes "have happened in the past?^000000"; - delitem 7421,1; //Key_Red - getitem 7426,1; //Magic_Gem_Red - close; - } - mes "^3355FFYou'll need to try"; - mes "something else in "; - mes "order to break this"; - mes "seal. What could"; - mes "you possibly need?^000000"; - close; - case 2: - mes "^3355FFYou stepped away from"; - mes "the seal, unwilling to deal"; - mes "with the power that keeps"; - mes "repulsing your advance.^000000"; - close; - } + mes "Beside the crystal ball, you find faded patterns marked on the floor."; + mes "Looks like some kind of keyhole that needs to be inserted with something..."; + next; + mes "The red key suddenly responds once you come close to the keyhole."; + mes "You insert the key in the keyhole and it turns out to be a small gem."; + next; + mes "When you touch the gem which is dazzling red..."; + mes "You feel isolated and depressed deep inside your heart..."; + next; + mes "^4d4dffYou have found a Red Charm Stone that is concentrated with cruel fate and a deep darkness.^000000"; + delitem 7421,1; //Key_Red + getitem 7426,1; //Magic_Gem_Red + close; } - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away.^000000"; - percentheal -10,0; + mes "The Crystal ball is emitting mysterious power."; + mes "Something is definitely there inside... How do I get it to open?"; close; -} -tha_t06,226,230,0 script Seal#tt3 111,{ +OnInit: +OnDisable: + disablenpc strnpcinfo(0); + end; +OnEnable: + enablenpc strnpcinfo(0); + end; +} +tha_t08,90,62,0 duplicate(Shining Crystal#tt_r1) Shining Crystal#tt_r2 844 +tha_t08,49,59,0 duplicate(Shining Crystal#tt_r1) Shining Crystal#tt_r3 844 +tha_t08,49,144,0 duplicate(Shining Crystal#tt_r1) Shining Crystal#tt_r4 844 - if (countitem(7425) >= 1) { - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away"; - mes "with a burst of black light.^000000"; +tha_t08,49,153,0 script Shining Crystal#tt_y1 844,{ + if (countitem(7422) > 0) { + mes "The Crystal ball is emitting mysterious power."; next; - switch (select("Investigate:There's no way I can break this seal!")) { - case 1: - input .@inputstr$; - if (.@inputstr$ == "Black Key") { - mes "^3355FFYou gently hold the black"; - mes "key and bring it towards"; - mes "the seal. Strangely, your"; - mes "hand isn't pushed away this"; - mes "time, and the seal begins to"; - mes "emit a mysterious light.^000000"; - next; - mes "^3355FFYou find a small keyhole"; - mes "in the seal, insert the black"; - mes "key, and slowly turn it. The"; - mes "seal's light fades, revealing a"; - mes "Charm Stone. Once you grasp"; - mes "the stone, someone's memory"; - mes "is injected into your mind.^000000"; - next; - mes "^333333We found it! So this"; - mes "must be the tower where"; - mes "Satan Morroc is gathering"; - mes "his minions... Dear God,"; - mes "there's... There's thousands"; - mes "of them... Is there any hope"; - mes "at all for us? For mankind?^000000"; - next; - mes "......"; - mes "........."; - mes "............"; - next; - mes "^3355FFThe images faded from"; - mes "your mind as quickly as"; - mes "they appeared. What could"; - mes "have happened in the past?^000000"; - delitem 7425,1; //Key_Black - getitem 7430,1; //Magic_Gem_Black - close; - } - mes "^3355FFYou'll need to try"; - mes "something else in "; - mes "order to break this"; - mes "seal. What could"; - mes "you possibly need?^000000"; - close; - case 2: - mes "^3355FFYou stepped away from"; - mes "the seal, unwilling to deal"; - mes "with the power that keeps"; - mes "repulsing your advance.^000000"; - close; - } + mes "Beside the crystal ball, you find faded patterns marked on the floor."; + mes "Looks like some kind of keyhole that needs to be inserted with something..."; + next; + mes "The yellow key suddenly responds once you come close to the keyhole."; + mes "You insert the key in the keyhole and it turns out to be a small gem."; + next; + mes "When you touch the gem which is dazzling yellow..."; + mes "Your heart begins to throb as though you are suffering from a broken heart."; + next; + mes "^4d4dffYou have found a Yellow Charm Stone that is concentrated with grief and mysterious power.^000000"; + delitem 7422,1; //Key_Yellow + getitem 7427,1; //Magic_Gem_Yellow + close; } - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away.^000000"; - percentheal -10,0; + mes "The Crystal ball is emitting mysterious power."; + mes "Something is definitely there inside... How do I get it to open?"; close; -} -tha_t07,113,129,0 script Seal#tt4 111,{ +OnInit: +OnDisable: + disablenpc strnpcinfo(0); + end; +OnEnable: + enablenpc strnpcinfo(0); + end; +} +tha_t08,90,150,0 duplicate(Shining Crystal#tt_y1) Shining Crystal#tt_y2 844 +tha_t08,90,59,0 duplicate(Shining Crystal#tt_y1) Shining Crystal#tt_y3 844 +tha_t08,49,56,0 duplicate(Shining Crystal#tt_y1) Shining Crystal#tt_y4 844 - if (countitem(7422) >= 1) { - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away"; - mes "with a burst of yellow light.^000000"; +tha_t08,49,65,0 script Shining Crystal#tt_b1 844,{ + if (countitem(7423) > 0) { + mes "The Crystal ball is emitting mysterious power."; next; - switch (select("Investigate:There's no way I can break this seal!")) { - case 1: - input .@inputstr$; - if (.@inputstr$ == "Yellow Key") { - mes "^3355FFYou gently hold the yellow"; - mes "key and bring it towards"; - mes "the seal. Strangely, your"; - mes "hand isn't pushed away this"; - mes "time, and the seal begins to"; - mes "emit a mysterious light.^000000"; - next; - mes "^3355FFYou find a small keyhole"; - mes "in the seal, insert the yellow"; - mes "key, and slowly turn it. The"; - mes "seal's light fades, revealing a"; - mes "Charm Stone. Once you grasp"; - mes "the stone, someone's memory"; - mes "is injected into your mind.^000000"; - next; - mes "^333333Hi, I'm Lucil. Sorry,"; - mes "I'm late, but I was far "; - mes "away on another mission...^000000"; - mes " "; - mes "^333333I am Thanatos...^000000"; - next; - mes "^333333Why does she make me"; - mes "feel so strange inside?"; - mes "I feel everything I was"; - mes "missing before, all the"; - mes "things I want and want"; - mes "to be, she brings, she"; - mes "completes. How... funny...^000000"; - mes "'She make me feel strange...as if I found my lost half...'"; - next; - mes "......"; - mes "........."; - mes "............"; - next; - mes "^3355FFThe images faded from"; - mes "your mind as quickly as"; - mes "they appeared. What could"; - mes "have happened in the past?^000000"; - delitem 7422,1; //Key_Yellow - getitem 7427,1; //Magic_Gem_Yellow - close; - } - mes "^3355FFYou'll need to try"; - mes "something else in "; - mes "order to break this"; - mes "seal. What could"; - mes "you possibly need?^000000"; - close; - case 2: - mes "^3355FFYou stepped away from"; - mes "the seal, unwilling to deal"; - mes "with the power that keeps"; - mes "repulsing your advance.^000000"; - close; - } + mes "Beside the crystal ball, you find faded patterns marked on the floor."; + mes "Looks like some kind of keyhole that needs to be inserted with something..."; + next; + mes "The blue key suddenly responds once you come close to the keyhole."; + mes "You insert the key in the keyhole and it turns out to be a small gem."; + next; + mes "When you touch the gem which is dazzling blue...."; + mes "Someone's sobbing comes into your ears as you smell blood on the wind and suddenly you become angry."; + next; + mes "^4d4dffYou have found a Blue Charm Stone that is concentrated with grudge and mysterious power.^000000"; + delitem 7423,1; //Key_Blue + getitem 7428,1; //Magic_Gem_Blue + close; } - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away.^000000"; - percentheal -10,0; + mes "The Crystal ball is emitting mysterious power."; + mes "Something is definitely there inside... How do I get it to open?"; close; -} -tha_t10,129,159,0 script Seal#tt5 111,{ +OnInit: +OnDisable: + disablenpc strnpcinfo(0); + end; +OnEnable: + enablenpc strnpcinfo(0); + end; +} +tha_t08,49,150,0 duplicate(Shining Crystal#tt_b1) Shining Crystal#tt_b2 844 +tha_t08,90,147,0 duplicate(Shining Crystal#tt_b1) Shining Crystal#tt_b3 844 +tha_t08,90,56,0 duplicate(Shining Crystal#tt_b1) Shining Crystal#tt_b4 844 - if (countitem(7424) >= 1) { - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away"; - mes "with a burst of green light.^000000"; +tha_t08,90,65,0 script Shining Crystal#tt_g1 844,{ + if (countitem(7424) > 0) { + mes "The Crystal ball is emitting mysterious power."; next; - switch (select("Investigate:There's no way I can break this seal!")) { - case 1: - input .@inputstr$; - if (.@inputstr$ == "Green Key") { - mes "^3355FFYou gently hold the green"; - mes "key and bring it towards"; - mes "the seal. Strangely, your"; - mes "hand isn't pushed away this"; - mes "time, and the seal begins to"; - mes "emit a mysterious light.^000000"; - next; - mes "^3355FFYou find a small keyhole"; - mes "in the seal, insert the green"; - mes "key, and slowly turn it. The"; - mes "seal's light fades, revealing a"; - mes "Charm Stone. Once you grasp"; - mes "the stone, someone's memory"; - mes "is injected into your mind.^000000"; - next; - mes "^333333This battle will determine"; - mes "the fate of mankind. We must"; - mes "defeat Satan Morroc. There is"; - mes "no alternative. Who's with me?! "; - mes "^333333*Cough Cough* The demon"; - mes "is too strong! We c-can't...^000000"; - next; - mes "^333333Foolish weakling humans."; - mes "You should have known better."; - mes "...This cannot be! Isn't this--? "; - mes "^333333GGGRRRRAH! H-HOW DARE YOU"; - mes "HUMANS! HOW DARE YOOOOOOOU....! "; - next; - mes "......"; - mes "........."; - mes "............"; - next; - mes "^3355FFThe images faded from"; - mes "your mind as quickly as"; - mes "they appeared. What could"; - mes "have happened in the past?^000000"; - delitem 7424,1; //Key_Green - getitem 7429,1; //Magic_Gem_Green - close; - } - mes "^3355FFYou'll need to try"; - mes "something else in "; - mes "order to break this"; - mes "seal. What could"; - mes "you possibly need?^000000"; - close; - case 2: - mes "^3355FFYou stepped away from"; - mes "the seal, unwilling to deal"; - mes "with the power that keeps"; - mes "repulsing your advance.^000000"; - close; - } + mes "Beside the crystal ball, you find faded patterns marked on the floor."; + mes "Looks like some kind of keyhole that needs to be inserted with something..."; + next; + mes "The green key suddenly responds once you come close to the keyhole."; + mes "You insert the key in the keyhole and it turns out to be a small gem."; + next; + mes "When you touch the gem which is dazzling green..."; + mes "Your head starts to ache and you feel worried and anxious about something."; + next; + mes "^4d4dffYou have found a Green Charm Stone that is concentrated with deep suffering.^000000"; + delitem 7424,1; //Key_Green + getitem 7429,1; //Magic_Gem_Green + close; } - mes "^3355FFThis area is protected by"; - mes "some mysterious power."; - mes "You try to touch the seal,"; - mes "but then it buzzes loudly"; - mes "and pushes your hand away.^000000"; - percentheal -10,0; + mes "The Crystal ball is emitting mysterious power."; + mes "Something is definitely there inside... How do I get it to open?"; close; -} -tha_t12,96,58,0 script Stone Statue#1 111,{ - - if (!$@thana_summon) { - mes "^3355FFYou've found a "; - mes "stone statue with"; - mes "a conspicuous hole"; - mes "in the chest area.^000000"; - if ((countitem(7426) >= 1) && (countitem(7427) >= 1) && (countitem(7428) >= 1) && (countitem(7429) >= 1) && (countitem(7430) >= 1)) { - next; - mes "^3355FFAs you approach the statue,"; - mes "your Red Charm Stone and"; - mes "the statue begin to glow with"; - mes "a glimmering red light.^000000"; +OnInit: +OnDisable: + disablenpc strnpcinfo(0); + end; +OnEnable: + enablenpc strnpcinfo(0); + end; +} +tha_t08,49,62,0 duplicate(Shining Crystal#tt_g1) Shining Crystal#tt_g2 844 +tha_t08,49,147,0 duplicate(Shining Crystal#tt_g1) Shining Crystal#tt_g3 844 +tha_t08,90,144,0 duplicate(Shining Crystal#tt_g1) Shining Crystal#tt_g4 844 + +tha_t12,161,57,0 script Gold Religious Statue#tt 111,{ + if ($@thana_summon == 0) { + if (countitem(7427) > 0) { + mes "It's a statue giving off a golden light."; + mes "The sword appears to be missing a gem."; + mes "As I draw closer to the statue, the Yellow Charm Stone emits a bright light."; + specialeffect EF_BEGINSPELL5; + specialeffect2 EF_BEGINSPELL5; next; - switch (select("Insert Charm Stone into Statue:Cancel")) { - case 1: - mes "^3355FFOnce you insert the"; - mes "Red Charm Stone, the"; - mes "statue glows even brighter"; - mes "with a mysterious light.^000000"; - delitem 7426,1; //Magic_Gem_Red - specialeffect EF_BEGINSPELL3; - set $@thana_summon,1; - donpcevent "tt_effect2::OnEnable"; - close; - case 2: - mes "^3355FFYou decided not to"; - mes "insert the Charm Stone,"; - mes "opting to investigate this"; - mes "area a little further.^000000"; + if(select("Insert the Yellow Charm Stone.:Run away.") == 2) close; + if ($@thana_summon == 0) { + mes "After inserting the Yellow Charm Stone into the sword, the statue begins to react."; + specialeffect EF_BEGINSPELL5; + delitem 7427,1; //Magic_Gem_Yellow + set $@thana_summon, 1; + donpcevent "#tteffect01::OnEnable"; + mapannounce "tha_t12","The golden magic power has released part of the seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 close; } - } - else if ((countitem(7426) >= 1) || (countitem(7427) >= 1) || (countitem(7428) >= 1) || (countitem(7429) >= 1) || (countitem(7430) >= 1)) { - mes "^3355FFAs you approach this statue, one^FFFFFF ^3355FF of your Charm Stones begins to"; - mes "glow. However, the statue itself is not responding. You probably"; - mes "need all the Charm Stones in"; - mes "order to fully activate it.^000000"; + mes "Someone has already inserted a Charm Stone into this statue."; close; } + mes "The statue give off mysterious light."; + mes "Strange power has blocked your access."; close; } - else if ($@thana_summon == 6) { - mes "^3355FFThe statue is emanating an"; - mes "intense light, making it so hot"; - mes "that you cannot approach it.^000000"; - close; - } - mes "^3355FFThis status is glowing"; - mes "with a mysterious light."; - mes "Some strange force keeps"; - mes "you from approaching it.^000000"; + mes "The statue has such a strong light that I can't see or touch it."; close; } -tha_t12,104,18,0 script Stone Statue#tt2 111,{ - - if ($@thana_summon == 2) { - mes "^3355FFYou've found a "; - mes "stone statue with"; - mes "a conspicuous hole"; - mes "in the chest area.^000000"; - if (countitem(7428) >= 1) { - next; - mes "^3355FFAs you approach the statue,"; - mes "your Blue Charm Stone begins"; - mes "to glow with a glimmering blue"; - mes "light, and the statue responds"; - mes "by shimmering with a red glow.^000000"; +tha_t12,154,17,0 script Green Wiseman Statue#tt 111,{ + if ($@thana_summon == 1) { + if (countitem(7429) > 0) { + mes "A statue gives off green light."; + mes "The wiseman's wand seems to be missing a gem."; + mes "As I draw closer to the statue, the Green Charm Stone emits a bright light."; + specialeffect EF_BEGINSPELL4; + specialeffect2 EF_BEGINSPELL4; next; - switch (select("Insert Charm Stone into Statue:Cancel")) { - case 1: - mes "^3355FFOnce you insert the"; - mes "Blue Charm Stone, the"; - mes "statue glows even brighter"; - mes "with a mysterious light.^000000"; - delitem 7428,1; //Magic_Gem_Blue - specialeffect EF_BEGINSPELL2; - donpcevent "tt_effect5::OnEnable"; - set $@thana_summon,3; - close; - case 2: - mes "^3355FFYou decided not to"; - mes "insert the Charm Stone,"; - mes "opting to investigate this"; - mes "area a little further.^000000"; + if(select("Insert the Green Charm Stone.:Run away.") == 2) close; + if ($@thana_summon == 1) { + mes "After inserting the Green Charm Stone into the wand, the statue begins to react."; + specialeffect EF_BEGINSPELL4; + delitem 7429,1; //Magic_Gem_Green + set $@thana_summon, 2; + donpcevent "#tteffect02::OnEnable"; + mapannounce "tha_t12","The green magic power has released part of the seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 close; } + mes "Someone has already inserted a Charm Stone into this statue."; + close; } + mes "The statue give off mysterious light."; + mes "Strange power has blocked your access."; close; } - else if ($@thana_summon == 6) { - mes "^3355FFThe statue is emanating an"; - mes "intense light, making it so hot"; - mes "that you cannot approach it.^000000"; - close; - } - mes "^3355FFThis status is glowing"; - mes "with a mysterious light."; - mes "Some strange force keeps"; - mes "you from approaching it.^000000"; + mes "The statue has such a strong light that I can't see or touch it."; close; } -tha_t12,128,86,0 script Stone Statue#3 111,{ - - if ($@thana_summon == 3) { - mes "^3355FFYou've found a "; - mes "stone statue with"; - mes "a conspicuous hole"; - mes "in the chest area.^000000"; - if (countitem(7430) >= 1) { - next; - mes "^3355FFAs you approach the statue,"; - mes "your Black Charm Stone begins"; - mes "to emanate an eerie darkness."; - mes "In response, the statue starts glowing with a sinister red light.^000000"; +tha_t12,103,17,0 script Blue Angel Statue#tt 111,{ + if ($@thana_summon == 2) { + if (countitem(7428) > 0) { + mes "An angel statue is covered with a blue light."; + mes "A gem seems to be missing from the statue's belt."; + mes "As I draw closer to the statue, the Blue Charm Stone emits a bright light."; + specialeffect EF_BEGINSPELL2; + specialeffect2 EF_BEGINSPELL2; next; - switch (select("Insert Charm Stone into Statue:Cancel")) { - case 1: - mes "^3355FFOnce you insert the"; - mes "Black Charm Stone, the"; - mes "statue glows even brighter"; - mes "with a mysterious light.^000000"; - delitem 7430,1; //Magic_Gem_Black - specialeffect EF_BEGINSPELL7; - donpcevent "tt_effect1::OnEnable"; - set $@thana_summon,4; - close; - case 2: - mes "^3355FFYou decided not to"; - mes "insert the Charm Stone,"; - mes "opting to investigate this"; - mes "area a little further.^000000"; + if(select("Insert the Blue Charm Stone.:Run away.") == 2) close; + if ($@thana_summon == 2) { + mes "After inserting the Blue Charm Stone into the belt, the statue begins to react."; + specialeffect EF_BEGINSPELL2; + delitem 7428,1; //Magic_Gem_Blue + set $@thana_summon, 3; + donpcevent "#tteffect03::OnEnable"; + mapannounce "tha_t12","The blue magic power has released part of the seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 close; } + mes "Someone has already inserted a Charm Stone into this statue."; + close; } + mes "The statue give off mysterious light."; + mes "Strange power has blocked you to access."; close; } - else if ($@thana_summon == 6) { - mes "^3355FFThe statue is emanating an"; - mes "intense light, making it so hot"; - mes "that you cannot approach it.^000000"; - close; - } - mes "^3355FFThis status is glowing"; - mes "with a mysterious light."; - mes "Some strange force keeps"; - mes "you from approaching it.^000000"; + mes "The statue has such a strong light that I can't see or touch it."; close; } -tha_t12,161,58,0 script Stone Statue#tt4 111,{ - - if ($@thana_summon == 1) { - mes "^3355FFYou've found a "; - mes "stone statue with"; - mes "a conspicuous hole"; - mes "in the chest area.^000000"; - if (countitem(7427) >= 1) { - next; - mes "^3355FFAs you approach the statue,"; - mes "your Yellow Charm Stone"; - mes "starts shining a bright yellow"; - mes "light, and the statue emits"; - mes "a glimmering red glow.^000000"; +tha_t12,96,57,0 script Bloody Knight Statue#tt 111,{ + if ($@thana_summon == 3) { + if (countitem(7426) > 0) { + mes "A statue is shining like blood."; + mes "A gem seems to be missing from the heart area of its armor."; + mes "As I draw closer to the statue, the Red Charm Stone emits a bright light."; + specialeffect EF_BEGINSPELL3; + specialeffect2 EF_BEGINSPELL3; next; - switch (select("Insert Charm Stone into Statue:Cancel")) { - case 1: - mes "^3355FFOnce you insert the"; - mes "Yellow Charm Stone, the"; - mes "statue glows even brighter"; - mes "with a mysterious light.^000000"; - delitem 7427,1; //Magic_Gem_Yellow - specialeffect EF_BEGINSPELL5; - donpcevent "tt_effect3::OnEnable"; - set $@thana_summon,2; - close; - case 2: - mes "^3355FFYou decided not to"; - mes "insert the Charm Stone,"; - mes "opting to investigate this"; - mes "area a little further.^000000"; + if(select("Insert the Red Charm Stone.:Run away.") == 2) close; + if ($@thana_summon == 3) { + mes "After inserting the Red Charm Stone into the armor, the statue begins to react."; + specialeffect EF_BEGINSPELL3; + delitem 7426,1; //Magic_Gem_Red + set $@thana_summon, 4; + donpcevent "#tteffect04::OnEnable"; + mapannounce "tha_t12","The red magic power has released part of the seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 close; } + mes "Someone has already inserted a Charm Stone into this statue."; + close; } + mes "The statue give off mysterious light."; + mes "Strange power has blocked you to access."; close; } - else if ($@thana_summon == 6) { - mes "^3355FFThe statue is emanating an"; - mes "intense light, making it so hot"; - mes "that you cannot approach it.^000000"; - close; - } - mes "^3355FFThis status is glowing"; - mes "with a mysterious light."; - mes "Some strange force keeps"; - mes "you from approaching it.^000000"; + mes "The statue has such a strong light that I can't see or touch it."; close; } -tha_t12,154,18,0 script Stone Statue#tt5 111,{ - +tha_t12,129,86,0 script Dark Devil Statue#tt 111,{ if ($@thana_summon == 4) { - mes "^3355FFYou've found a "; - mes "stone statue with"; - mes "a conspicuous hole"; - mes "in the chest area.^000000"; - if (countitem(7429) >= 1) { + if (countitem(7430) > 0) { + mes "A devil statue emits dark light."; + mes "The right eye seems to be missing a gem."; + mes "As I draw closer to the statue, the Black Charm Stone emits a bright light."; + specialeffect EF_BEGINSPELL7; + specialeffect2 EF_BEGINSPELL7; next; - mes "^3355FFAs you approach the statue,"; - mes "your Green Charm Stone begins"; - mes "radiating soft green light, and"; - mes "and the statue starts to shine"; - mes "with a bright red glow.^000000"; - next; - switch (select("Insert Charm Stone into Statue:Cancel")) { - case 1: - mes "^3355FFOnce you insert the"; - mes "Green Charm Stone, the"; - mes "statue glows even brighter"; - mes "with a mysterious light.^000000"; - specialeffect EF_BEGINSPELL4; - next; - mes "^3355FFThe crest on the ground"; - mes "surrounded by the five"; - mes "glowing statues has now"; - mes "activated, and is emitting"; - mes "a fearsome, powerful energy.^000000"; - delitem 7429,1; //Magic_Gem_Green - set $@thana_summon2,0; - set $@thana_summon,5; - donpcevent "tt_effect4::OnEnable"; - hideoffnpc "to_the_boss_room_tt"; - close; - case 2: - mes "^3355FFYou decided not to"; - mes "insert the Charm Stone,"; - mes "opting to investigate this"; - mes "area a little further.^000000"; + if(select("Insert the Black Charm Stone.:Run away.") == 2) close; + if ($@thana_summon == 4) { + mes "After inserting the Red Charm Stone into the eye socket, the statue begins to react."; + specialeffect EF_BEGINSPELL7; + delitem 7430,1; //Magic_Gem_Black + set $@thana_summon, 5; + donpcevent "#gateto_thanatos::OnEnable"; + donpcevent "#tteffect01::OnStop"; + donpcevent "#tteffect02::OnStop"; + donpcevent "#tteffect03::OnStop"; + donpcevent "#tteffect04::OnStop"; + mapannounce "tha_t12","The Black Charm Stone's magic power has released the final seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 close; } + mes "Someone has already inserted a Charm Stone into this statue."; + close; } + mes "The statue give off mysterious light."; + mes "Strange power has blocked you to access."; close; } - else if ($@thana_summon == 6) { - mes "^3355FFThe statue is emanating an"; - mes "intense light, making it so hot"; - mes "that you cannot approach it.^000000"; - close; - } - mes "^3355FFThis status is glowing"; - mes "with a mysterious light."; - mes "Some strange force keeps"; - mes "you from approaching it.^000000"; + mes "The statue has such a strong light that I can't see or touch it."; close; } -tha_t12,129,56,0 script tt_effect1 139,{ +tha_t12,134,52,0 script #tteffect01 139,{ end; - OnEnable: initnpctimer; end; - +OnStop: + stopnpctimer; + end; OnTimer500: OnTimer1000: OnTimer1500: OnTimer2000: OnTimer2500: - specialeffect EF_BEGINSPELL7; + specialeffect EF_BEGINSPELL5; end; - OnTimer3000: - specialeffect EF_BEGINSPELL7; - stopnpctimer; - if ($@thana_summon != 6) initnpctimer; - end; - -OnDisable: - stopnpctimer; + donpcevent "#tteffect01::OnEnable"; end; } -tha_t12,125,52,0 script tt_effect2 139,{ +tha_t12,132,47,0 script #tteffect02 139,{ end; - OnEnable: initnpctimer; end; - +OnStop: + stopnpctimer; + end; OnTimer500: OnTimer1000: OnTimer1500: OnTimer2000: OnTimer2500: - specialeffect EF_BEGINSPELL3; + specialeffect EF_BEGINSPELL4; end; - OnTimer3000: - specialeffect EF_BEGINSPELL3; - stopnpctimer; - if ($@thana_summon != 6) initnpctimer; - end; - -OnDisable: - stopnpctimer; + donpcevent "#tteffect02::OnEnable"; end; } -tha_t12,134,52,0 script tt_effect3 139,{ +tha_t12,127,47,0 script #tteffect03 139,{ end; OnEnable: initnpctimer; end; - +OnStop: + stopnpctimer; + end; OnTimer500: OnTimer1000: OnTimer1500: OnTimer2000: OnTimer2500: - specialeffect EF_BEGINSPELL5; + specialeffect EF_BEGINSPELL2; end; - OnTimer3000: - specialeffect EF_BEGINSPELL5; - stopnpctimer; - if ($@thana_summon != 6) initnpctimer; - end; - -OnDisable: - stopnpctimer; + donpcevent "#tteffect03::OnEnable"; end; } -tha_t12,132,47,0 script tt_effect4 139,{ +tha_t12,125,52,0 script #tteffect04 139,{ end; - OnEnable: initnpctimer; end; - +OnStop: + stopnpctimer; + end; OnTimer500: OnTimer1000: OnTimer1500: OnTimer2000: OnTimer2500: - specialeffect EF_BEGINSPELL4; + specialeffect EF_BEGINSPELL3; end; - OnTimer3000: - specialeffect EF_BEGINSPELL4; - stopnpctimer; - if ($@thana_summon != 6) initnpctimer; - end; - -OnDisable: - stopnpctimer; + donpcevent "#tteffect04::OnEnable"; end; } -tha_t12,127,47,0 script tt_effect5 139,{ +tha_t12,129,56,0 script #tteffect05 139,{ end; - OnEnable: initnpctimer; end; - +OnStop: + stopnpctimer; + end; OnTimer500: OnTimer1000: OnTimer1500: OnTimer2000: OnTimer2500: - specialeffect EF_BEGINSPELL2; + specialeffect EF_BEGINSPELL7; end; - OnTimer3000: - specialeffect EF_BEGINSPELL2; - stopnpctimer; - if ($@thana_summon != 6) initnpctimer; - end; - -OnDisable: - stopnpctimer; + donpcevent "#tteffect05::OnEnable"; end; } -tha_t12,130,52,0 script to_the_boss_room_tt 45,1,1,{ +tha_t12,130,52,0 script #gateto_thanatos 45,1,1,{ end; - OnInit: - hideonnpc "to_the_boss_room_tt"; + disablenpc "#gateto_thanatos"; end; - -OnTouch: - if ($@thana_summon == 0 || $@thana_summon == 6) { - donpcevent "tt_effect1::OnDisable"; - donpcevent "tt_effect2::OnDisable"; - donpcevent "tt_effect3::OnDisable"; - donpcevent "tt_effect4::OnDisable"; - donpcevent "tt_effect5::OnDisable"; - hideonnpc "to_the_boss_room_tt"; - } - else warp "thana_boss",136,116; +OnEnable: + enablenpc "#gateto_thanatos"; + initnpctimer; end; -} - -thana_boss,217,167,0 script Crest#tt1 111,3,3,{ +OnOn2: + initnpctimer; end; - OnTouch: - if ($@thana_summon2 == 6 || $@thana_summon != 5) { - mes "^3355FFYou cannot approach"; - mes "the crest because it is"; - mes "generating intense heat.^000000"; - close; - } - mes "^3355FFThere is a strangely"; - mes "shaped hole in the"; - mes "middle of this purple crest.^000000"; - if (countitem(7437) > 0) { - mes "^3355FFIt seems like a Fragment"; - mes "of Misery would fit perfectly"; - mes "if you placed it inside.^000000"; + set .@touch,1; +OnTimer6000: + set .@boss_tt, $@thana_summon; + if ((.@boss_tt == 0) || (.@boss_tt == 6)) { + disablenpc "#gateto_thanatos"; + stopnpctimer; } - next; - input .@inputstr$; - if (countitem(7437) > 0) { - if (.@inputstr$ == "Fragment of Misery") { - mes "^3355FFYou insert the"; - mes "Fragment of Misery"; - mes "into the crest, causing"; - mes "its glow to intensify.^000000"; - delitem 7437,1; //Piece_Of_Memory_Purple - close2; - monster "thana_boss",217,167,"Misery",1711,1,"Crest#tt1::OnMyMobDead"; - hideonnpc "Crest#tt1"; - end; - } - mes "^3355FFThat action had no"; - mes "effect. You'll have to"; - mes "try something else.^000000"; - close; + else if (.@boss_tt == 5) { + if (.@touch) warp "thana_boss",136,116; + else donpcevent "#gateto_thanatos::OnOn2"; } - mes "^3355FFThat action had no"; - mes "effect. You'll have to"; - mes "try something else.^000000"; - close2; end; - -OnMyMobDead: - set $@thana_summon2,$@thana_summon2 + 1; +OnTimer1000: +OnTimer5000: + set .@pillar,1; +OnTimer3000: + specialeffect EF_BEGINSPELL7,AREA,"#tteffect05"; + specialeffect EF_BEGINSPELL3,AREA,"#tteffect04"; + specialeffect EF_BEGINSPELL2,AREA,"#tteffect03"; + specialeffect EF_BEGINSPELL4,AREA,"#tteffect02"; + specialeffect EF_BEGINSPELL5,AREA,"#tteffect01"; + if (.@pillar) specialeffect EF_MAPPILLAR2; end; } -thana_boss,202,75,0 script Crest#tt2 111,3,3,{ +thana_boss,217,167,3 script Memory Seal#tt1 1711,3,3,{ end; - -OnTouch: - if (($@thana_summon2 == 6) || ($@thana_summon != 5)) { - mes "^3355FFYou cannot approach"; - mes "the crest because it is"; - mes "generating intense heat.^000000"; - close; - } - mes "^3355FFThere is a strangely"; - mes "shaped hole in the"; - mes "middle of this green crest.^000000"; - if (countitem(7436) > 0) { - mes "^3355FFIt seems like a Fragment"; - mes "of Agony would fit perfectly"; - mes "if you placed it inside.^000000"; - } - next; - input .@inputstr$; - if (countitem(7436) > 0) { - if (.@inputstr$ == "Fragment of Agony") { - mes "^3355FFYou insert the"; - mes "Fragment of Agony"; - mes "into the crest, causing"; - mes "its glow to intensify.^000000"; - delitem 7436,1; //Piece_Of_Memory_Green - close2; - monster "thana_boss",202,75,"Agony",1712,1,"Crest#tt2::OnMyMobDead"; - hideonnpc "Crest#tt2"; - end; - } - mes "^3355FFThat action had no"; - mes "effect. You'll have to"; - mes "try something else.^000000"; - close; - } - mes "^3355FFThat action had no"; - mes "effect. You'll have to"; - mes "try something else.^000000"; - close2; +OnEnable: + hideoffnpc strnpcinfo(0); + set .hide,0; end; - -OnMyMobDead: - set $@thana_summon2,$@thana_summon2 + 1; +OnDisable: + hideonnpc strnpcinfo(0); + set .hide,0; end; -} +OnTouch: + set .@seal, atoi(charat(strnpcinfo(2),2)); + if (.hide & (1<<.@seal)) end; -thana_boss,80,76,0 script Crest#tt3 111,3,3,{ - end; + // .@i: ItemID,MobID,MapX,MapY,EffectNum + // .@j$: FragmentName + switch(.@seal) { + case 1: + setarray .@i[0],7437,1711,217,167,238; + set .@j$,"Misery"; + break; + case 2: + setarray .@i[0],7436,1712,202,75,102; + set .@j$,"Agony"; + break; + case 3: + setarray .@i[0],7438,1709,80,76,101; + set .@j$,"Hatred"; + break; + case 4: + setarray .@i[0],7439,1710,62,171,100; + set .@j$,"Despair"; + break; + } -OnTouch: - if (($@thana_summon2 == 6) || ($@thana_summon != 5)) { + specialeffect EF_GUMGANG; + if ($@thana_summon2 > 3) { mes "^3355FFYou cannot approach"; mes "the crest because it is"; mes "generating intense heat.^000000"; close; } - mes "^3355FFThere is a strangely"; - mes "shaped hole in the"; - mes "middle of this blue crest.^000000"; - if (countitem(7438) > 0) { - mes "^3355FFIt seems like a Fragment"; - mes "of Hatred would fit perfectly"; - mes "if you placed it inside.^000000"; - } + mes "The seal seems to be dormant."; + mes "There is a fragment missing from the crest of the Seal."; + mes "Surely I saw a familiar fragment before..."; next; input .@inputstr$; - if (countitem(7438) > 0) { - if (.@inputstr$ == "Fragment of Hatred") { - mes "^3355FFYou insert the"; - mes "Fragment of Hatred"; - mes "into the crest, causing"; - mes "its glow to intensify.^000000"; - delitem 7438,1; //Piece_Of_Memory_Blue - close2; - monster "thana_boss",80,76,"Hatred",1709,1,"Crest#tt3::OnMyMobDead"; - hideonnpc "Crest#tt3"; - end; + set .@exact_tt$, "Fragment of "+.@j$; + if (countitem(.@i[0]) > 0 && .@exact_tt$ == .@inputstr$) { + mes "^3355FFYou insert the"; + mes .@exact_tt$; + mes "into the crest, causing"; + mes "its glow to intensify.^000000"; + close2; + hideonnpc strnpcinfo(0); + set .hide, .hide | (1<<.@seal); + delitem .@i[0],1; + specialeffect .@i[4]; + monster "thana_boss",.@i[2],.@i[3],.@j$,.@i[1],1,strnpcinfo(0)+"::OnMyMobDead"; + switch($@thana_summon2) { + case 0: set .@str$,"... who... released... the... Memory... of... "+.@j$+"...?"; break; + case 1: set .@str$,"... why... did you... release... the... Memory... of... "+.@j$+"...?"; break; + case 2: set .@str$,"... ugh... stop it... the Memory of "+.@j$+"..."; break; + default: set .@str$,"... finally... you released the last piece of Memory..."; break; } - mes "^3355FFThat action had no"; - mes "effect. You'll have to"; - mes "try something else.^000000"; - close; + mapannounce "thana_boss",.@str$,bc_map,"0x7b68ee"; //FW_NORMAL 12 0 0 + end; } mes "^3355FFThat action had no"; mes "effect. You'll have to"; mes "try something else.^000000"; - close2; - end; + close; OnMyMobDead: - set $@thana_summon2,$@thana_summon2 + 1; + set $@thana_summon2, $@thana_summon2+1; + if ($@thana_summon2 == 4) + mapwarp "thana_boss","thana_boss",141,228; end; } +thana_boss,202,75,3 duplicate(Memory Seal#tt1) Memory Seal#tt2 1712,3,3 +thana_boss,80,76,7 duplicate(Memory Seal#tt1) Memory Seal#tt3 1709,3,3 +thana_boss,62,171,5 duplicate(Memory Seal#tt1) Memory Seal#tt4 1710,3,3 -thana_boss,62,171,0 script Crest#tt4 111,3,3,{ - end; - -OnTouch: - if (($@thana_summon2 == 6) || ($@thana_summon != 5)) { - mes "^3355FFYou cannot approach"; - mes "the crest because it is"; - mes "generating intense heat.^000000"; - close; - } - mes "^3355FFThere is a strangely"; - mes "shaped hole in the"; - mes "middle of this red crest.^000000"; - if (countitem(7439) > 0) { - mes "^3355FFIt seems like a Fragment"; - mes "of Despair would fit perfectly"; - mes "if you placed it inside.^000000"; - } - next; - input .@inputstr$; - if (countitem(7439) > 0) { - if (.@inputstr$ == "Fragment of Despair") { - mes "^3355FFYou insert the"; - mes "Fragment of Despair"; - mes "into the crest, causing"; - mes "its glow to intensify.^000000"; - delitem 7439,1; //Piece_Of_Memory_Red - close2; - monster "thana_boss",62,171,"Despair",1710,1,"Crest#tt4::OnMyMobDead"; - hideonnpc "Crest#tt4"; - end; - } - mes "^3355FFThat action had no"; - mes "effect. You'll have to"; - mes "try something else.^000000"; - close; - } - mes "^3355FFThat action had no"; - mes "effect. You'll have to"; - mes "try something else.^000000"; - close2; +thana_boss,141,228,0 script #thanatos_seal 139,3,3,{ end; - -OnMyMobDead: - set $@thana_summon2,$@thana_summon2 + 1; +OnEnable: + enablenpc "#thanatos_seal"; end; -} - -thana_boss,141,218,0 script Crest#tt5 111,3,3,{ +OnDisable: + disablenpc "#thanatos_seal"; end; - OnTouch: if ($@thana_summon2 == 4) { - mes "^3355FFAs you approach the"; - mes "crest, it begins shining"; - mes "brighter and brighter until its"; - mes "illumination becomes blinding.^000000"; - close2; - monster "thana_boss",140,217,"Despair",1710,1,"Crest#tt5::OnMyMobDead"; - monster "thana_boss",140,216,"Hatred",1709,1,"Crest#tt5::OnMyMobDead"; - monster "thana_boss",141,217,"Misery",1711,1,"Crest#tt5::OnMyMobDead"; - monster "thana_boss",141,216,"Agony",1712,1,"Crest#tt5::OnMyMobDead"; - hideonnpc "Crest#tt5"; - end; + initnpctimer; + donpcevent "Memory Seal#tt5::OnEnable"; + disablenpc "#thanatos_seal"; } - if ($@thana_summon < 5) { - mapwarp "thana_boss","tha_t12",130,47; - end; - } - mes "^3355FFYou find a strange"; - mes "crest engraved"; - mes "on the floor.^000000"; - next; - input .@inputstr$; - mes "^3355FFNothing happened.^000000"; - close2; end; - -OnMyMobDead: - if (mobcount("thana_boss","Crest#tt5::OnMyMobDead") < 1) { - set $@thana_summon,5; - set $@thana_summon2,6; - donpcevent "boss_summon#tt::OnEnable"; - } +OnTimer1000: + mapannounce "thana_boss","Thanatos : RAWWWWWWWWWWWWWWWWR!",bc_map,"0xff0000"; //FW_NORMAL 12 0 0 end; -} - -thana_boss,5,5,0 script boss_summon#tt 139,{ +OnTimer4000: + mapannounce "thana_boss","Thanatos : ... crashed... broken... spread... and come back as tears...",bc_map,"0xff0000"; //FW_NORMAL 12 0 0 end; - -OnEnable: - monster "thana_boss",136,129,"Thanatos Phantom",1708,1,"boss_summon#tt::OnMyMobDead"; - initnpctimer; +OnTimer7000: + mapannounce "thana_boss","Thanatos : I live again to fulfill my ambition!",bc_map,"0xff0000"; //FW_NORMAL 12 0 0 end; - -OnTimer1000: - mapannounce "thana_boss","Thanatos : RAWWWWWWWWWWWWWWWWR!",bc_map,"0x00CC00"; //FW_NORMAL 12 0 0 - set $@thana_summon,6; +OnTimer10000: + mapannounce "thana_boss","Thanatos : ... gives off a strong bloody scent... soaked in sorrow...",bc_map,"0xff0000"; //FW_NORMAL 12 0 0 end; - -OnTimer3000: - mapannounce "thana_boss","Thanatos : I live again to fulfill my ambition!",bc_map,"0x00CC00"; //FW_NORMAL 12 0 0 +OnTimer13000: + mapannounce "thana_boss","Thanatos : I will remove all people who invade this continent again!",bc_map,"0xff0000"; //FW_NORMAL 12 0 0 end; - -OnTimer30000: - mapannounce "thana_boss","Thanatos : Come, be the first to fall before my might!",bc_map,"0x00CC00"; //FW_NORMAL 12 0 0 +OnTimer16000: + mapannounce "thana_boss","Thanatos : Come, be the first to fall before my might!",bc_map,"0xff0000"; //FW_NORMAL 12 0 0 + donpcevent "Memory Seal#tt5::OnDisable"; + donpcevent "#sommon_thanatos::OnEnable"; + set $@thana_summon2, 5; + stopnpctimer; end; +} -OnTimer900000: - set $@thana_summon,5; - donpcevent "tt_effect1::OnEnable"; - donpcevent "tt_effect2::OnEnable"; - donpcevent "tt_effect3::OnEnable"; - donpcevent "tt_effect4::OnEnable"; - donpcevent "tt_effect5::OnEnable"; - hideoffnpc "to_the_boss_room_tt"; - stopnpctimer; +thana_boss,141,235,3 script Memory Seal#tt5 1708,{ + end; +OnInit: + disablenpc "Memory Seal#tt5"; end; +OnEnable: + enablenpc "Memory Seal#tt5"; + end; +OnDisable: + disablenpc "Memory Seal#tt5"; + specialeffect EF_ICECRASH; + end; +} +thana_boss,141,218,0 script #sommon_thanatos -1,{ +OnEnable: + specialeffect EF_MAPPILLAR2,AREA,"#sommon_thanatos"; + specialeffect EF_SEISMICWEAPON,AREA,"#sommon_thanatos"; + monster "thana_boss",141,218,"Thanatos Phantom",1708,1,"#sommon_thanatos::OnMyMobDead"; + end; OnMyMobDead: - if (mobcount("thana_boss","boss_summon#tt::OnMyMobDead") < 1) { - stopnpctimer; - donpcevent "#timer_t::OnEnable"; + if (mobcount("thana_boss","#sommon_thanatos::OnMyMobDead") < 1) { + mapannounce "thana_boss","RAWWWWWWWWWWR........ This can't be.........................",bc_map,"0xff0000"; //FW_NORMAL 12 0 0 + donpcevent "#cooltime_thana::OnEnable"; + set $@thana_summon, 6; } end; } -thana_boss,3,3,0 script #timer_t 139,{ +thana_boss,1,1,0 script #cooltime_thana 844,{ end; - OnInit: - set $@thana_summon,0; - set $@thana_summon2,0; + set $@thana_summon, 0; + set $@thana_summon2, 0; end; - OnEnable: initnpctimer; end; - -OnTimer1000: - mapannounce "thana_boss","GGGGRRRRRRR!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0 - set $@thana_summon,6; - end; - -OnTimer2000: - mapannounce "thana_boss","*Rumble Rumble*",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0 +OnStop: + stopnpctimer; end; - OnTimer3000: - mapannounce "thana_boss","*Crik Crik*",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0 + mapannounce "thana_boss","Warning!!",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 end; - -OnTimer4000: - mapannounce "thana_boss","*Zzzzrt Zzzzrt*",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0 +OnTimer6000: + mapannounce "thana_boss","The seal will re-activate in 30 seconds.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 end; - -OnTimer5000: - mapannounce "thana_boss","*Crik Crik*",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0 +OnTimer16000: + mapannounce "thana_boss","20 seconds left...",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 end; - -OnTimer60000: -OnTimer1000000: -OnTimer2000000: -OnTimer3000000: -OnTimer4000000: -OnTimer5000000: -OnTimer6000000: - mapwarp "thana_boss","tha_t12",130,47; +OnTimer26000: + mapannounce "thana_boss","10 seconds left...",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 + end; +OnTimer31000: + mapannounce "thana_boss","5 seconds.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 + end; +OnTimer32000: + mapannounce "thana_boss","4 seconds.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 + end; +OnTimer33000: + mapannounce "thana_boss","3 seconds.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 + end; +OnTimer34000: + mapannounce "thana_boss","2 seconds.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0 + end; +OnTimer35000: + mapannounce "thana_boss","Time's up!",bc_map,"0xff0000"; //FW_NORMAL 12 0 0 + end; +OnTimer36000: +OnTimer37000: + mapwarp "thana_boss","tha_t12",130,52; end; - OnTimer7200000: - set $@thana_summon,0; - hideoffnpc "Crest#tt1"; - hideoffnpc "Crest#tt2"; - hideoffnpc "Crest#tt3"; - hideoffnpc "Crest#tt4"; - hideoffnpc "Crest#tt5"; + set $@thana_summon, 0; + set $@thana_summon2, 0; + donpcevent "Memory Seal#tt1::OnEnable"; + donpcevent "Memory Seal#tt2::OnEnable"; + donpcevent "Memory Seal#tt3::OnEnable"; + donpcevent "Memory Seal#tt4::OnEnable"; + donpcevent "#thanatos_seal::OnEnable"; stopnpctimer; end; } -tha_t06,119,120,0 script to the 7th floor 45,1,1,{ +tha_scene01,30,30,0 warp scene 1,1,tha_scene01,131,220 +tha_t04,81,36,0 warp to 5th Floor 1,1,tha_t05,62,8 +tha_t06,119,120,0 script to 7th Floor 45,1,1,{ end; - OnTouch: - if (eaclass()&(EAJL_2|EAJL_UPPER) || eaclass()&EAJL_THIRD) { - warp "thana_step",69,369; - end; - } - if ((Class == Job_SuperNovice || Class == Job_Taekwon || Class == Job_Star_Gladiator || Class == Job_Soul_Linker || Class == Job_Ninja || Class == Job_Gunslinger) && BaseLevel > 94) { - warp "thana_step",69,369; - end; + if (eaclass()&(EAJL_2|EAJL_UPPER) || eaclass()&EAJL_THIRD || ((Class == Job_SuperNovice || Class == Job_Taekwon || Class == Job_Star_Gladiator || Class == Job_Soul_Linker || Class == Job_Ninja || Class == Job_Gunslinger) && BaseLevel > 94)) { + if (countitem(7425) > 0) { + mes "The shadow of a Black Key is gleaming in the center of the portal."; + mes "To pass this way, looks like I need something."; + next; + mes "The Black Key reacts to the portal and floats in the air."; + next; + mes "The key seems to separate into many particles and suddenly collapses into a ball."; + mes "The barricade is removed through the power from newly formed black magic gem."; + close2; + delitem 7425,1; //Key_Black + getitem 7430,1; //Magic_Gem_Black + warp "thana_step",69,369; + end; + } + mes "The shadow of a Black Key is gleaming in the center of the portal."; + mes "To pass this way, looks like I need something."; + close; } - mes "^3355FFAn overwhelming force"; - mes "acts against you, preventing"; - mes "you from proceeding this way...^000000"; + mes "A mysterious power is blocking my path."; close; -} +} \ No newline at end of file diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index e2a84b24c..6df044b98 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -5466,9 +5466,9 @@ REPLACE INTO `item_db_re` VALUES (12388,'Runstone_Crush','Rhydo Runestone For Ap REPLACE INTO `item_db_re` VALUES (12389,'Runstone_Storm','Pertz Runestone For Apprentice',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_rune02") { itemskill "RK_STORMBLAST",1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12390,'Runstone_Millennium','Verkana Runestone For Apprentice',11,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_rune02") { itemskill "RK_MILLENNIUMSHIELD",1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12391,'Lucky_Egg_C','Lucky Egg',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12392,'Repair_A','Repair A',0,220,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,/*' madoheal rand(200,300),0;'*/,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12393,'Repair_B','Repair B',0,500,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,/*' madoheal rand(300,400),0;'*/,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12394,'Repair_C','Repair C',0,1100,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,/*' madoheal rand(400,500),0;'*/,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12392,'Repair_A','Repair A',0,220,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'/* madoheal rand(200,300),0; */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12393,'Repair_B','Repair B',0,500,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'/* madoheal rand(300,400),0; */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12394,'Repair_C','Repair C',0,1100,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'/* madoheal rand(400,500),0; */',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12395,'Tantanmen','Tantan Noodle',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1519;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12396,'Fools_Day_Box','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12397,'Fools_Day_Box2','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;',NULL,NULL); -- cgit v1.2.3-70-g09d2 From a25c820fba6bd86fe2fb50e2b5b512295583522d Mon Sep 17 00:00:00 2001 From: brianluau Date: Mon, 5 Nov 2012 18:25:15 +0000 Subject: - Added LOOK_*** script constants, same names as from map.h - Changed atcommand "@changelook" to changelook script command in custom quest_shop.txt git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16862 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/const.txt | 14 ++++++++++++++ npc/custom/etc/monster_arena.txt | 6 +----- npc/custom/etc/shifty_assassin.txt | 2 +- npc/custom/quests/quest_shop.txt | 18 +++++++++--------- src/map/npc.c | 4 ++-- 5 files changed, 27 insertions(+), 17 deletions(-) (limited to 'npc/custom/etc') diff --git a/db/const.txt b/db/const.txt index 3171504cd..4b819d49c 100644 --- a/db/const.txt +++ b/db/const.txt @@ -599,6 +599,20 @@ EQI_ACC_R 8 EQI_HEAD_MID 9 EQI_HEAD_LOW 10 +LOOK_BASE 0 +LOOK_HAIR 1 +LOOK_WEAPON 2 +LOOK_HEAD_BOTTOM 3 +LOOK_HEAD_TOP 4 +LOOK_HEAD_MID 5 +LOOK_HAIR_COLOR 6 +LOOK_CLOTHES_COLOR 7 +LOOK_SHIELD 8 +LOOK_SHOES 9 +LOOK_BODY 10 +LOOK_FLOOR 11 +LOOK_ROBE 12 + Eff_Stone 0 Eff_Freeze 1 Eff_Stun 2 diff --git a/npc/custom/etc/monster_arena.txt b/npc/custom/etc/monster_arena.txt index 251759a7c..0b6b1cc96 100644 --- a/npc/custom/etc/monster_arena.txt +++ b/npc/custom/etc/monster_arena.txt @@ -766,11 +766,7 @@ gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2 // Skill Disabler // -gon_test,57,99,5 script Skill Disable 111,3,3,{ - atcommand strcharinfo(0) + "@skilloff"; - disablenpc "Skill Disable"; - end; -} +gon_test mapflag noskill // Duel Arena // gon_test,58,103,5 script Duel Master#01 92,{ diff --git a/npc/custom/etc/shifty_assassin.txt b/npc/custom/etc/shifty_assassin.txt index 8f4bbe4cf..46d3aab07 100644 --- a/npc/custom/etc/shifty_assassin.txt +++ b/npc/custom/etc/shifty_assassin.txt @@ -100,7 +100,7 @@ M_Kill: mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; atcommand strcharinfo(0) + "@kill "+@name$; - announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8; + announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",bc_npc; close; // FAILED ATTACK // diff --git a/npc/custom/quests/quest_shop.txt b/npc/custom/quests/quest_shop.txt index 3565d5574..bfb5a20b7 100644 --- a/npc/custom/quests/quest_shop.txt +++ b/npc/custom/quests/quest_shop.txt @@ -102,13 +102,13 @@ OnBuyItem: specialeffect2 699; close; case 2: - set @qe3, getlook(3); - set @qe4, getlook(4); - set @qe5, getlook(5); + set @qe3, getlook(LOOK_HEAD_BOTTOM); + set @qe4, getlook(LOOK_HEAD_TOP); + set @qe5, getlook(LOOK_HEAD_MID); set @qe6,1; - if (@qe1&1) atcommand "@changelook 3 "+@qe2; - if (@qe1&256) atcommand "@changelook 1 "+@qe2; - if (@qe1&512) atcommand "@changelook 2 "+@qe2; + if (@qe1&1) changelook LOOK_HEAD_BOTTOM, @qe2; + if (@qe1&256) changelook LOOK_HEAD_TOP, @qe2; + if (@qe1&512) changelook LOOK_HEAD_MID, @qe2; break; case 3: close; @@ -116,9 +116,9 @@ OnBuyItem: } OnEnd: if (@qe6) { - atcommand "@changelook 3 "+@qe3; - atcommand "@changelook 1 "+@qe4; - atcommand "@changelook 2 "+@qe5; + changelook LOOK_HEAD_BOTTOM, @qe3; + changelook LOOK_HEAD_TOP, @qe4; + changelook LOOK_HEAD_MID, @qe5; } for(set .@i,0; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0; diff --git a/src/map/npc.c b/src/map/npc.c index cb40c85c5..41069c015 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1577,7 +1577,7 @@ static int npc_selllist_sub(struct map_session_data* sd, int n, unsigned short* script_cleararray_pc(sd, "@sold_attribute", (void*)0); script_cleararray_pc(sd, "@sold_identify", (void*)0); - for( j = 0; MAX_SLOTS > j; j++ ) + for( j = 0; j < MAX_SLOTS; j++ ) {// clear each of the card slot entries key_card[j] = 0; snprintf(card_slot, sizeof(card_slot), "@sold_card%d", j + 1); @@ -1598,7 +1598,7 @@ static int npc_selllist_sub(struct map_session_data* sd, int n, unsigned short* script_setarray_pc(sd, "@sold_attribute", i, (void*)(intptr_t)sd->status.inventory[idx].attribute, &key_attribute); script_setarray_pc(sd, "@sold_identify", i, (void*)(intptr_t)sd->status.inventory[idx].identify, &key_identify); - for( j = 0; MAX_SLOTS > j; j++ ) + for( j = 0; j < MAX_SLOTS; j++ ) {// store each of the cards from the equipment in the array snprintf(card_slot, sizeof(card_slot), "@sold_card%d", j + 1); script_setarray_pc(sd, card_slot, i, (void*)(intptr_t)sd->status.inventory[idx].card[j], &key_card[j]); -- cgit v1.2.3-70-g09d2