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 ++++++++++++++-------------- 15 files changed, 5200 insertions(+), 5200 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; +} -- cgit v1.2.3-60-g2f50