- 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://svn.code.sf.net/p/rathena/svn/trunk@16194 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
brianluau 2012-06-01 03:40:58 +00:00
parent 66f7f11388
commit d960aa3bee
30 changed files with 12198 additions and 12198 deletions

View File

@ -1,442 +1,442 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= elRO Airship //= elRO Airship
//===== By: ================================================== //===== By: ==================================================
//= Draike, Bluto, Hephaestus //= Draike, Bluto, Hephaestus
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 2.2a //= 2.2a
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= It's the elRO airship. XD //= It's the elRO airship. XD
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= ALWAYS HAVE AT LEAST TWELVE (12) LOCATIONS AS THE MINIMUM. This is unless you modify to OnMinutes and change the schedule around. //= 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. //= 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.1 Removed Duplicates [Silent]
//= 2.2 Added missing next;'s [Evera] //= 2.2 Added missing next;'s [Evera]
//============================================================ //============================================================
payon,153,43,5 script itinsetter -1,{ payon,153,43,5 script itinsetter -1,{
//This is just OnInit stuff to set the hourly intinerary. //This is just OnInit stuff to set the hourly intinerary.
OnInit: OnInit:
deletearray $locationsname$[0],500; deletearray $locationsname$[0],500;
deletearray $locationsmap$[0],500; deletearray $locationsmap$[0],500;
deletearray $locationsx[0],500; deletearray $locationsx[0],500;
deletearray $locationsy[0],500; deletearray $locationsy[0],500;
deletearray $alreadygoneto[0],500; deletearray $alreadygoneto[0],500;
setarray $locationsname$[0],"Airport"; setarray $locationsname$[0],"Airport";
setarray $locationsname$[1],"Prontera"; setarray $locationsname$[1],"Prontera";
setarray $locationsname$[2],"Payon"; setarray $locationsname$[2],"Payon";
setarray $locationsname$[3],"Aldebaran"; setarray $locationsname$[3],"Aldebaran";
setarray $locationsname$[4],"Alberta"; setarray $locationsname$[4],"Alberta";
setarray $locationsname$[5],"Geffen"; setarray $locationsname$[5],"Geffen";
setarray $locationsname$[6],"Morocc"; setarray $locationsname$[6],"Morocc";
setarray $locationsname$[7],"Glast Heim"; setarray $locationsname$[7],"Glast Heim";
setarray $locationsname$[8],"Umbala"; setarray $locationsname$[8],"Umbala";
setarray $locationsname$[9],"Comodo"; setarray $locationsname$[9],"Comodo";
setarray $locationsname$[10],"Amatsu"; setarray $locationsname$[10],"Amatsu";
setarray $locationsname$[11],"Niflheim"; setarray $locationsname$[11],"Niflheim";
setarray $locationsname$[12],"Lutie"; setarray $locationsname$[12],"Lutie";
setarray $locationsname$[13],"Louyang"; setarray $locationsname$[13],"Louyang";
setarray $locationsname$[14],"Gonryun"; setarray $locationsname$[14],"Gonryun";
setarray $locationsname$[15],"Yuno"; setarray $locationsname$[15],"Yuno";
setarray $locationsname$[16],"Ant Hell"; setarray $locationsname$[16],"Ant Hell";
setarray $locationsname$[17],"Jawaii"; setarray $locationsname$[17],"Jawaii";
setarray $locationsname$[18],"Orc Village"; setarray $locationsname$[18],"Orc Village";
setarray $locationsname$[19],"Mjolnir Coal Mines"; setarray $locationsname$[19],"Mjolnir Coal Mines";
setarray $locationsname$[20],"Gefenia Ruins"; setarray $locationsname$[20],"Gefenia Ruins";
setarray $locationsname$[21],"Ayothaya"; setarray $locationsname$[21],"Ayothaya";
setarray $locationsname$[22],"Lighthalzen"; setarray $locationsname$[22],"Lighthalzen";
setarray $locationsname$[23],"Juperos"; setarray $locationsname$[23],"Juperos";
setarray $locationsmap$[0],"airport"; setarray $locationsmap$[0],"airport";
setarray $locationsmap$[1],"prt_fild08"; setarray $locationsmap$[1],"prt_fild08";
setarray $locationsmap$[2],"pay_fild08"; setarray $locationsmap$[2],"pay_fild08";
setarray $locationsmap$[3],"mjolnir_12"; setarray $locationsmap$[3],"mjolnir_12";
setarray $locationsmap$[4],"pay_fild03"; setarray $locationsmap$[4],"pay_fild03";
setarray $locationsmap$[5],"gef_fild00"; setarray $locationsmap$[5],"gef_fild00";
setarray $locationsmap$[6],"moc_fild10"; setarray $locationsmap$[6],"moc_fild10";
setarray $locationsmap$[7],"glast_01"; setarray $locationsmap$[7],"glast_01";
setarray $locationsmap$[8],"umbala"; setarray $locationsmap$[8],"umbala";
setarray $locationsmap$[9],"comodo"; setarray $locationsmap$[9],"comodo";
setarray $locationsmap$[10],"amatsu"; setarray $locationsmap$[10],"amatsu";
setarray $locationsmap$[11],"niflheim"; setarray $locationsmap$[11],"niflheim";
setarray $locationsmap$[12],"xmas"; setarray $locationsmap$[12],"xmas";
setarray $locationsmap$[13],"louyang"; setarray $locationsmap$[13],"louyang";
setarray $locationsmap$[14],"gonryun"; setarray $locationsmap$[14],"gonryun";
setarray $locationsmap$[15],"yuno"; setarray $locationsmap$[15],"yuno";
setarray $locationsmap$[16],"moc_fild04"; setarray $locationsmap$[16],"moc_fild04";
setarray $locationsmap$[17],"jawaii"; setarray $locationsmap$[17],"jawaii";
setarray $locationsmap$[18],"gef_fild10"; setarray $locationsmap$[18],"gef_fild10";
setarray $locationsmap$[19],"mjolnir_02"; setarray $locationsmap$[19],"mjolnir_02";
setarray $locationsmap$[20],"gefenia01"; setarray $locationsmap$[20],"gefenia01";
setarray $locationsmap$[21],"ayothaya"; setarray $locationsmap$[21],"ayothaya";
setarray $locationsmap$[22],"lighthalzen"; setarray $locationsmap$[22],"lighthalzen";
setarray $locationsmap$[23],"jupe_gate"; setarray $locationsmap$[23],"jupe_gate";
setarray $locationsx[0],148; setarray $locationsx[0],148;
setarray $locationsx[1],206; setarray $locationsx[1],206;
setarray $locationsx[2],159; setarray $locationsx[2],159;
setarray $locationsx[3],62; setarray $locationsx[3],62;
setarray $locationsx[4],194; setarray $locationsx[4],194;
setarray $locationsx[5],50; setarray $locationsx[5],50;
setarray $locationsx[6],163; setarray $locationsx[6],163;
setarray $locationsx[7],196; setarray $locationsx[7],196;
setarray $locationsx[8],187; setarray $locationsx[8],187;
setarray $locationsx[9],203; setarray $locationsx[9],203;
setarray $locationsx[10],115; setarray $locationsx[10],115;
setarray $locationsx[11],132; setarray $locationsx[11],132;
setarray $locationsx[12],232; setarray $locationsx[12],232;
setarray $locationsx[13],36; setarray $locationsx[13],36;
setarray $locationsx[14],82; setarray $locationsx[14],82;
setarray $locationsx[15],58; setarray $locationsx[15],58;
setarray $locationsx[16],209; setarray $locationsx[16],209;
setarray $locationsx[17],248; setarray $locationsx[17],248;
setarray $locationsx[18],158; setarray $locationsx[18],158;
setarray $locationsx[19],76; setarray $locationsx[19],76;
setarray $locationsx[20],98; setarray $locationsx[20],98;
setarray $locationsx[21],183; setarray $locationsx[21],183;
setarray $locationsx[22],99; setarray $locationsx[22],99;
setarray $locationsx[23],46; setarray $locationsx[23],46;
setarray $locationsy[0],45; setarray $locationsy[0],45;
setarray $locationsy[1],280; setarray $locationsy[1],280;
setarray $locationsy[2],92; setarray $locationsy[2],92;
setarray $locationsy[3],381; setarray $locationsy[3],381;
setarray $locationsy[4],182; setarray $locationsy[4],182;
setarray $locationsy[5],365; setarray $locationsy[5],365;
setarray $locationsy[6],172; setarray $locationsy[6],172;
setarray $locationsy[7],327; setarray $locationsy[7],327;
setarray $locationsy[8],98; setarray $locationsy[8],98;
setarray $locationsy[9],76; setarray $locationsy[9],76;
setarray $locationsy[10],79; setarray $locationsy[10],79;
setarray $locationsy[11],241; setarray $locationsy[11],241;
setarray $locationsy[12],308; setarray $locationsy[12],308;
setarray $locationsy[13],279; setarray $locationsy[13],279;
setarray $locationsy[14],96; setarray $locationsy[14],96;
setarray $locationsy[15],194; setarray $locationsy[15],194;
setarray $locationsy[16],326; setarray $locationsy[16],326;
setarray $locationsy[17],175; setarray $locationsy[17],175;
setarray $locationsy[18],95; setarray $locationsy[18],95;
setarray $locationsy[19],363; setarray $locationsy[19],363;
setarray $locationsy[20],21; setarray $locationsy[20],21;
setarray $locationsy[21],104; setarray $locationsy[21],104;
setarray $locationsy[22],240; setarray $locationsy[22],240;
setarray $locationsy[23],19; setarray $locationsy[23],19;
goto resetgoneto; goto resetgoneto;
end; end;
setrandomitin: setrandomitin:
set $@settervariable,$@settervariable + 1; set $@settervariable,$@settervariable + 1;
setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1); setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1);
if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1; if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1;
if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin; if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin;
setarray $alreadygoneto[$locationn[$@settervariable]], 1; setarray $alreadygoneto[$locationn[$@settervariable]], 1;
if($@settervariable<12)goto setrandomitin; if($@settervariable<12)goto setrandomitin;
end; end;
resetgoneto: resetgoneto:
deletearray $alreadygoneto[0], 500; deletearray $alreadygoneto[0], 500;
set $@currenttime, 0; set $@currenttime, 0;
goto setrandomitin; goto setrandomitin;
OnMinute00: OnMinute00:
set $@currenttime, 1; set $@currenttime, 1;
callfunc "F_Itinreset",12,1,2; callfunc "F_Itinreset",12,1,2;
OnMinute03: OnMinute03:
set $destination,250; set $destination,250;
end; end;
OnMinute05: OnMinute05:
set $@currenttime, 2; set $@currenttime, 2;
callfunc "F_Itinreset",1,2,3; callfunc "F_Itinreset",1,2,3;
OnMinute08: OnMinute08:
set $destination,250; set $destination,250;
end; end;
OnMinute10: OnMinute10:
set $@currenttime, 3; set $@currenttime, 3;
callfunc "F_Itinreset",2,3,4; callfunc "F_Itinreset",2,3,4;
OnMinute13: OnMinute13:
set $destination,250; set $destination,250;
end; end;
OnMinute15: OnMinute15:
set $@currenttime, 4; set $@currenttime, 4;
callfunc "F_Itinreset",3,4,5; callfunc "F_Itinreset",3,4,5;
OnMinute18: OnMinute18:
set $destination,250; set $destination,250;
end; end;
OnMinute20: OnMinute20:
set $@currenttime, 5; set $@currenttime, 5;
callfunc "F_Itinreset",4,5,6; callfunc "F_Itinreset",4,5,6;
OnMinute23: OnMinute23:
set $destination,250; set $destination,250;
end; end;
OnMinute25: OnMinute25:
set $@currenttime, 6; set $@currenttime, 6;
callfunc "F_Itinreset",5,6,7; callfunc "F_Itinreset",5,6,7;
OnMinute28: OnMinute28:
set $destination,250; set $destination,250;
end; end;
OnMinute30: OnMinute30:
set $@currenttime, 7; set $@currenttime, 7;
callfunc "F_Itinreset",6,7,8; callfunc "F_Itinreset",6,7,8;
OnMinute33: OnMinute33:
set $destination,250; set $destination,250;
end; end;
OnMinute35: OnMinute35:
set $@currenttime, 8; set $@currenttime, 8;
callfunc "F_Itinreset",7,8,9; callfunc "F_Itinreset",7,8,9;
OnMinute38: OnMinute38:
set $destination,250; set $destination,250;
end; end;
OnMinute40: OnMinute40:
set $@currenttime, 9; set $@currenttime, 9;
callfunc "F_Itinreset",8,9,10; callfunc "F_Itinreset",8,9,10;
OnMinute43: OnMinute43:
set $destination,250; set $destination,250;
end; end;
OnMinute45: OnMinute45:
set $@currenttime, 10; set $@currenttime, 10;
callfunc "F_Itinreset",9,10,11; callfunc "F_Itinreset",9,10,11;
OnMinute48: OnMinute48:
set $destination,250; set $destination,250;
end; end;
OnMinute50: OnMinute50:
set $@currenttime, 11; set $@currenttime, 11;
callfunc "F_Itinreset",10,11,12; callfunc "F_Itinreset",10,11,12;
OnMinute53: OnMinute53:
set $destination,250; set $destination,250;
end; end;
OnMinute55: OnMinute55:
set $@currenttime, 12; set $@currenttime, 12;
callfunc "F_Itinreset",11,12,1; callfunc "F_Itinreset",11,12,1;
OnMinute58: OnMinute58:
set $destination,250; set $destination,250;
end; end;
} }
function script F_Porter { function script F_Porter {
if($destination==getarg(0))goto Board; if($destination==getarg(0))goto Board;
if($destination!=getarg(0))goto Notime; if($destination!=getarg(0))goto Notime;
Board: Board:
mes "^FF0000[Porter]^000000"; mes "^FF0000[Porter]^000000";
mes "The plane is currently ported. Would you like to board?"; mes "The plane is currently ported. Would you like to board?";
next; next;
menu "Yes.",L_Yes,"No.",L_Nope,"View Hourly Itinerary.",Itin; menu "Yes.",L_Yes,"No.",L_Nope,"View Hourly Itinerary.",Itin;
L_Yes: L_Yes:
if($destination!=getarg(0))goto Notime; if($destination!=getarg(0))goto Notime;
warp "airplane", 105, 72; warp "airplane", 105, 72;
specialeffect2 501; specialeffect2 501;
L_Nope: L_Nope:
mes "^FF0000[Porter]^000000"; mes "^FF0000[Porter]^000000";
mes "Have a good day. Thank you for traveling with Airship."; mes "Have a good day. Thank you for traveling with Airship.";
close; close;
Notime: Notime:
mes "^FF0000[Porter]^000000"; 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==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."; if(sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary.";
next; next;
menu "Yes, please.",Itin,"No thanks.",L_Nope; menu "Yes, please.",Itin,"No thanks.",L_Nope;
close; close;
end; end;
Itin: Itin:
mes "^FF0000[Porter]^000000"; mes "^FF0000[Porter]^000000";
callfunc "F_Itin"; callfunc "F_Itin";
} }
airport,153,43,5 script Airport Porter 774,{ airport,153,43,5 script Airport Porter 774,{
callfunc "F_Porter",0; callfunc "F_Porter",0;
} }
prt_fild08,206,279,5 script Porter#01 774,{ prt_fild08,206,279,5 script Porter#01 774,{
callfunc "F_Porter",1; callfunc "F_Porter",1;
} }
gef_fild00,50,364,5 script Porter#02 774,{ gef_fild00,50,364,5 script Porter#02 774,{
callfunc "F_Porter",5; callfunc "F_Porter",5;
} }
moc_fild10,163,173,5 script Porter#03 774,{ moc_fild10,163,173,5 script Porter#03 774,{
callfunc "F_Porter",6; callfunc "F_Porter",6;
} }
mjolnir_12,61,380,5 script Porter#04 774,{ mjolnir_12,61,380,5 script Porter#04 774,{
callfunc "F_Porter",3; callfunc "F_Porter",3;
} }
pay_fild08,159,91,5 script Porter#05 774,{ pay_fild08,159,91,5 script Porter#05 774,{
callfunc "F_Porter",2; callfunc "F_Porter",2;
} }
pay_fild03,194,181,5 script Porter#06 774,{ pay_fild03,194,181,5 script Porter#06 774,{
callfunc "F_Porter",4; callfunc "F_Porter",4;
} }
glast_01,196,326,1 script Porter#07 774,{ glast_01,196,326,1 script Porter#07 774,{
callfunc "F_Porter",7; callfunc "F_Porter",7;
} }
umbala,188,98,3 script Porter#08 774,{ umbala,188,98,3 script Porter#08 774,{
callfunc "F_Porter",8; callfunc "F_Porter",8;
} }
comodo,203,75,8 script Porter#09 774,{ comodo,203,75,8 script Porter#09 774,{
callfunc "F_Porter",9; callfunc "F_Porter",9;
} }
amatsu,115,78,8 script Porter#10 774,{ amatsu,115,78,8 script Porter#10 774,{
callfunc "F_Porter",10; callfunc "F_Porter",10;
} }
niflheim,132,242,5 script Porter#11 774,{ niflheim,132,242,5 script Porter#11 774,{
callfunc "F_Porter",11; callfunc "F_Porter",11;
} }
xmas,232,309,5 script Porter#12 774,{ xmas,232,309,5 script Porter#12 774,{
callfunc "F_Porter",12; callfunc "F_Porter",12;
} }
louyang,35,279,8 script Porter#13 774,{ louyang,35,279,8 script Porter#13 774,{
callfunc "F_Porter",13; callfunc "F_Porter",13;
} }
gonryun,82,95,7 script Porter#14 774,{ gonryun,82,95,7 script Porter#14 774,{
callfunc "F_Porter",14; callfunc "F_Porter",14;
} }
yuno,58,195,4 script Porter#15 774,{ yuno,58,195,4 script Porter#15 774,{
callfunc "F_Porter",15; callfunc "F_Porter",15;
} }
moc_fild04,210,326,2 script Porter#16 774,{ moc_fild04,210,326,2 script Porter#16 774,{
callfunc "F_Porter",16; callfunc "F_Porter",16;
} }
jawaii,247,174,7 script Porter#17 774,{ jawaii,247,174,7 script Porter#17 774,{
callfunc "F_Porter",17; callfunc "F_Porter",17;
} }
gef_fild10,159,95,2 script Porter#18 774,{ gef_fild10,159,95,2 script Porter#18 774,{
callfunc "F_Porter",18; callfunc "F_Porter",18;
} }
mjolnir_02,76,364,5 script Porter#19 774,{ mjolnir_02,76,364,5 script Porter#19 774,{
callfunc "F_Porter",19; callfunc "F_Porter",19;
} }
gefenia01,97,22,6 script Porter#20 774,{ gefenia01,97,22,6 script Porter#20 774,{
callfunc "F_Porter",20; callfunc "F_Porter",20;
} }
ayothaya,182,105,5 script Porter#21 774,{ ayothaya,182,105,5 script Porter#21 774,{
callfunc "F_Porter",21; callfunc "F_Porter",21;
} }
lighthalzen,99,241,4 script Porter#22 774,{ lighthalzen,99,241,4 script Porter#22 774,{
callfunc "F_Porter",22; callfunc "F_Porter",22;
} }
jupe_gate,46,18,7 script Porter#23 774,{ jupe_gate,46,18,7 script Porter#23 774,{
callfunc "F_Porter",23; callfunc "F_Porter",23;
} }
airport,141,43,5 script Itinerary Schedule 837,{ airport,141,43,5 script Itinerary Schedule 837,{
mes "^FF0000[Itinerary]^000000"; mes "^FF0000[Itinerary]^000000";
callfunc "F_Itin"; callfunc "F_Itin";
} }
airplane,102,68,5 script Docker 852,{ airplane,102,68,5 script Docker 852,{
if($destination == 250) goto Nowhere; if($destination == 250) goto Nowhere;
mes "^FF0000[Airplane Attendant]^000000"; mes "^FF0000[Airplane Attendant]^000000";
if($destination == 250)goto Notime; if($destination == 250)goto Notime;
set @dockky, $destination; set @dockky, $destination;
if($destination != 250)mes "We are currently docked at "+$locationsname$[$destination]+". Would you like to exit?"; if($destination != 250)mes "We are currently docked at "+$locationsname$[$destination]+". Would you like to exit?";
next; next;
menu "Yes.",Lyes,"No.",Lnope; menu "Yes.",Lyes,"No.",Lnope;
Lyes: Lyes:
if($destination == 250)goto Notime; if($destination == 250)goto Notime;
if($destination != @dockky)goto Notime; if($destination != @dockky)goto Notime;
warp $locationsmap$[$destination], $locationsx[$destination], $locationsy[$destination]; warp $locationsmap$[$destination], $locationsx[$destination], $locationsy[$destination];
specialeffect2 501; specialeffect2 501;
Lnope: Lnope:
mes "^FF0000[Airplane Attendant]^000000"; mes "^FF0000[Airplane Attendant]^000000";
mes "Have a good day. Thank you for traveling with us."; mes "Have a good day. Thank you for traveling with us.";
close; close;
Notime: Notime:
mes "^FF0000[Airplane Attendant]^000000"; mes "^FF0000[Airplane Attendant]^000000";
if(sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait."; 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."; if(sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait.";
close; close;
Nowhere: Nowhere:
mes "^FF0000[Airplane Attendant]^000000"; mes "^FF0000[Airplane Attendant]^000000";
mes "We're currently in air. Please wait until the pilot has announced that we have safely landed."; mes "We're currently in air. Please wait until the pilot has announced that we have safely landed.";
close; close;
} }
function script F_Itin { function script F_Itin {
//This is the itinerary's function. It should work well enough. //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)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)close;
if($@currenttime==0)end; if($@currenttime==0)end;
set @tempo, 0; set @tempo, 0;
set @tempo, $@currenttime - 1; set @tempo, $@currenttime - 1;
goto seta; goto seta;
close; close;
seta: seta:
set @tempo, @tempo + 1; set @tempo, @tempo + 1;
set @time, gettime(3); set @time, gettime(3);
set @minutes, 5 * @tempo - 5; set @minutes, 5 * @tempo - 5;
set @minutess, 5 * @tempo - 2; set @minutess, 5 * @tempo - 2;
if(@minutes<10)set @minutes$, "0" + @minutes; if(@minutes<10)set @minutes$, "0" + @minutes;
if(@minutes>9)set @minutes$, @minutes; if(@minutes>9)set @minutes$, @minutes;
if(@minutess<10)set @minutess$, "0" + @minutess; if(@minutess<10)set @minutess$, "0" + @minutess;
if(@minutess>9)set @minutess$, @minutess; if(@minutess>9)set @minutess$, @minutess;
if(@time<12)set @time$,@time; if(@time<12)set @time$,@time;
if(@time==12)set @time$,12; if(@time==12)set @time$,12;
if(@time>12)set @time$,@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$ + " 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)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>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(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@tempo<12)goto seta; if(@tempo<12)goto seta;
set @tempo, 0; set @tempo, 0;
goto setb; goto setb;
setb: setb:
if($@currenttime - 1==@tempo)goto setc; if($@currenttime - 1==@tempo)goto setc;
set @tempo, @tempo + 1; set @tempo, @tempo + 1;
set @time, gettime(3) + 1; set @time, gettime(3) + 1;
set @minutes, 5 * @tempo - 5; set @minutes, 5 * @tempo - 5;
set @minutess, 5 * @tempo - 2; set @minutess, 5 * @tempo - 2;
if(@minutes<10)set @minutes$, "0" + @minutes; if(@minutes<10)set @minutes$, "0" + @minutes;
if(@minutes>9)set @minutes$, @minutes; if(@minutes>9)set @minutes$, @minutes;
if(@minutess<10)set @minutess$, "0" + @minutess; if(@minutess<10)set @minutess$, "0" + @minutess;
if(@minutess>9)set @minutess$, @minutess; if(@minutess>9)set @minutess$, @minutess;
if(@time<12)set @time$,@time; if(@time<12)set @time$,@time;
if(@time==12)set @time$,12; if(@time==12)set @time$,12;
if(@time>12)set @time$,@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$ + " 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)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>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(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
goto setb; goto setb;
setc: setc:
close; close;
end; end;
} }
function script F_Itinreset { function script F_Itinreset {
setarray $alreadygoneto[$locationn[getarg(0)]], 0; setarray $alreadygoneto[$locationn[getarg(0)]], 0;
goto sest; goto sest;
sest: sest:
setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1); setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1);
if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest; if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest;
setarray $alreadygoneto[$locationn[getarg(0)]], 1; setarray $alreadygoneto[$locationn[getarg(0)]], 1;
set $destination,$locationn[$@currenttime]; 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; announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16;
end; end;
} }

View File

@ -1,119 +1,119 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Banker Script //= Banker Script
//===== By: ================================================== //===== By: ==================================================
//= Syrus22 (1.0) //= Syrus22 (1.0)
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 2.0 //= 2.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= Any rAthena version with Account variables. //= Any rAthena version with Account variables.
//===== Description: ========================================= //===== Description: =========================================
//= An account wide Banker to store Zeny //= An account wide Banker to store Zeny
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= Syrus22 - There's an optional transaction fee at the top of //= Syrus22 - There's an optional transaction fee at the top of
//= the script. To use it simply change the first set command //= the script. To use it simply change the first set command
//= to set the cost variable to whatever you want the fee to be. //= 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] //= Version 2.0: Optimized and brought the script up to standard. [Jguy]
//============================================================ //============================================================
prontera,132,217,5 script Banker 109,{ prontera,132,217,5 script Banker 109,{
set @cost,500; set @cost,500;
mes "[Banker]"; mes "[Banker]";
mes "Welcome to the First Bank of Prontera. How can I help you today?"; mes "Welcome to the First Bank of Prontera. How can I help you today?";
next; next;
switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's my current balance?:Cancel")) { switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's my current balance?:Cancel")) {
case 1: case 1:
mes "[Banker]"; mes "[Banker]";
mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny."; mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny.";
next; next;
if (@cost > 0) { if (@cost > 0) {
mes "[Banker]"; mes "[Banker]";
mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!"; mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!";
next; next;
} }
input @deposit; input @deposit;
if (@deposit < 1) { if (@deposit < 1) {
mes "Make sure you ask me to deposit a real amount."; mes "Make sure you ask me to deposit a real amount.";
close; close;
} }
else if (@deposit > Zeny) { else if (@deposit > Zeny) {
mes "It does not appear like you have the amount of zeny you're trying to deposit!"; mes "It does not appear like you have the amount of zeny you're trying to deposit!";
close; close;
} }
else if (@deposit > (Zeny - @cost)) { else if (@deposit > (Zeny - @cost)) {
mes "You need " + @cost + " Zeny to cover the transaction fee!"; mes "You need " + @cost + " Zeny to cover the transaction fee!";
close; close;
} }
else { else {
set Zeny,Zeny - @deposit; set Zeny,Zeny - @deposit;
set Zeny,Zeny - @cost; set Zeny,Zeny - @cost;
set #bankstorage,#bankstorage + @deposit; set #bankstorage,#bankstorage + @deposit;
mes "[Banker]"; mes "[Banker]";
mes "Thank you very much... Your zeny is in good hands."; mes "Thank you very much... Your zeny is in good hands.";
close; close;
} }
case 2: case 2:
mes "[Banker]"; mes "[Banker]";
mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny"; mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny";
next; next;
if (@cost > 0) { if (@cost > 0) {
mes "[Banker]"; mes "[Banker]";
mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!"; mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!";
next; next;
} }
input @withdrawl; input @withdrawl;
if (@withdrawl < 1) { if (@withdrawl < 1) {
mes "Please don't play games. I need a real amount to withdraw."; mes "Please don't play games. I need a real amount to withdraw.";
close; close;
} }
else if (@withdrawl > #bankstorage) { else if (@withdrawl > #bankstorage) {
mes "I show you only have ^00FF00" + #bankstorage +"^000000 zeny in your account!"; mes "I show you only have ^00FF00" + #bankstorage +"^000000 zeny in your account!";
close; close;
} }
else if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) { else if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) {
mes "[Banker]"; 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?"; 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; next;
switch(select("Yes please.:No, Thanks")){ switch(select("Yes please.:No, Thanks")){
case 1: case 1:
mes "[Banker]"; mes "[Banker]";
mes "Removing " + @cost + " from your withdrawl to cover the deposit fee..."; mes "Removing " + @cost + " from your withdrawl to cover the deposit fee...";
set @withdrawl,@withdrawl - @cost; set @withdrawl,@withdrawl - @cost;
set #bankstorage,#bankstorage - @cost; set #bankstorage,#bankstorage - @cost;
set @cost,0; set @cost,0;
next; next;
set Zeny,Zeny - @cost; set Zeny,Zeny - @cost;
set Zeny,Zeny + @withdrawl; set Zeny,Zeny + @withdrawl;
set #bankstorage,#bankstorage - @withdrawl; set #bankstorage,#bankstorage - @withdrawl;
mes "[Banker]"; mes "[Banker]";
mes "There's your Zeny. Have a good day."; mes "There's your Zeny. Have a good day.";
close; close;
case 2: case 2:
mes "[Banker]"; mes "[Banker]";
mes "Very well... come again soon."; mes "Very well... come again soon.";
close; close;
} }
} }
else { else {
set Zeny,Zeny - @cost; set Zeny,Zeny - @cost;
set Zeny,Zeny + @withdrawl; set Zeny,Zeny + @withdrawl;
set #bankstorage,#bankstorage - @withdrawl; set #bankstorage,#bankstorage - @withdrawl;
mes "[Banker]"; mes "[Banker]";
mes "There's your Zeny. Have a good day."; mes "There's your Zeny. Have a good day.";
close; close;
} }
case 3: case 3:
mes "[Banker]"; mes "[Banker]";
mes "Hmmmm let me check some paper work."; mes "Hmmmm let me check some paper work.";
next; next;
mes "*Rustle, Rustle*"; mes "*Rustle, Rustle*";
next; next;
mes "[Banker]"; mes "[Banker]";
mes "You currently have " + #bankstorage + " Zeny in your account."; mes "You currently have " + #bankstorage + " Zeny in your account.";
close; close;
case 4: case 4:
mes "[Banker]"; mes "[Banker]";
mes "Very well... come again soon."; mes "Very well... come again soon.";
close; close;
} }
} // EOF } // EOF

View File

@ -1,116 +1,116 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= The 2nd Bank of Prontera (with daily 0.01% income!) //= The 2nd Bank of Prontera (with daily 0.01% income!)
//===== By: ================================================== //===== By: ==================================================
//= Lupus (1.0) //= Lupus (1.0)
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.2a //= 1.2a
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= A bank which has an interest % //= A bank which has an interest %
//===== Additional Comments: ================================= //===== Additional Comments: =================================
// Look for this formula and setup your Bank daily % interest // Look for this formula and setup your Bank daily % interest
// #kafrabank/1000 = 0.1% of interest per day // #kafrabank/1000 = 0.1% of interest per day
// #kafrabank/100 = 1% of interest per day // #kafrabank/100 = 1% of interest per day
// #kafrabank/10 = 10% of interest per day // #kafrabank/10 = 10% of interest per day
// //
// 1.1 Added log of bank operation -> logmes "some info"; // 1.1 Added log of bank operation -> logmes "some info";
// 1.2 Set max income to 100,000z. It would help to avoid // 1.2 Set max income to 100,000z. It would help to avoid
// zeny exploits when you change DATE at your server // zeny exploits when you change DATE at your server
// 1.2a Corrected bad duplicate names. (bugreport:921) [Samuray22] // 1.2a Corrected bad duplicate names. (bugreport:921) [Samuray22]
//============================================================ //============================================================
- script Bank Clerk::bankg 833,{ - script Bank Clerk::bankg 833,{
mes"[Maniss]"; mes"[Maniss]";
mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!"; mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!";
set @kb_int,(gettime(6)*31)+gettime(5); //today's number set @kb_int,(gettime(6)*31)+gettime(5); //today's number
set @income,0; set @income,0;
//calculate % //calculate %
if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday; if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday;
set @income,(#kafrabank/1000)*(@kb_int-#kb_int); //@income == % of the sum set @income,(#kafrabank/1000)*(@kb_int-#kb_int); //@income == % of the sum
//max income constant: //max income constant:
if (@income>100000) set @income,100000; if (@income>100000) set @income,100000;
L_NoIncomeToday: L_NoIncomeToday:
set #kb_int,@kb_int; //reset days timer set #kb_int,@kb_int; //reset days timer
if(#kafrabank==0) mes "We could open you an account."; if(#kafrabank==0) mes "We could open you an account.";
if(@income>0) mes "Today's income: ^135445" + @income + "^000000 zeny."; if(@income>0) mes "Today's income: ^135445" + @income + "^000000 zeny.";
set #kafrabank,#kafrabank+@income; set #kafrabank,#kafrabank+@income;
if(#kafrabank>0) mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; if(#kafrabank>0) mes "Your account: ^135445" + #kafrabank + "^000000 zeny.";
mes "What would you like?"; mes "What would you like?";
next; next;
if(#kafrabank==0) menu "-Open an account",-,"-Quit",B_EXIT2; if(#kafrabank==0) menu "-Open an account",-,"-Quit",B_EXIT2;
if(#kafrabank>0) menu "-Deposit money",-,"-Withdraw money",M_WITHDRAW,"-Quit",B_EXIT2; if(#kafrabank>0) menu "-Deposit money",-,"-Withdraw money",M_WITHDRAW,"-Quit",B_EXIT2;
mes"[Maniss]"; mes"[Maniss]";
mes "Please, tell me how much zeny you would like to deposit."; mes "Please, tell me how much zeny you would like to deposit.";
next; next;
if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT;
if(@kafrabank<1000) goto L_LESS_1000; if(@kafrabank<1000) goto L_LESS_1000;
if(@kafrabank>zeny) goto L_NOT_ENOUGH; if(@kafrabank>zeny) goto L_NOT_ENOUGH;
set zeny,zeny-@kafrabank; set zeny,zeny-@kafrabank;
set #kafrabank,#kafrabank+@kafrabank; set #kafrabank,#kafrabank+@kafrabank;
mes"[Maniss]"; mes"[Maniss]";
mes "You've made a deposit of ^135445" + @kafrabank + "z^000000."; mes "You've made a deposit of ^135445" + @kafrabank + "z^000000.";
//we log these zeny operations into the log db //we log these zeny operations into the log db
logmes "Bank %: " + @income +"z, Deposit: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; logmes "Bank %: " + @income +"z, Deposit: "+ @kafrabank +"z, Final: "+ #kafrabank +"z";
goto B_EXIT; goto B_EXIT;
M_WITHDRAW: M_WITHDRAW:
if(#kafrabank==0) goto L_ZERO_ACCOUNT; if(#kafrabank==0) goto L_ZERO_ACCOUNT;
mes"[Maniss]"; mes"[Maniss]";
mes "Your account: ^135445" + #kafrabank + "^000000 zeny."; mes "Your account: ^135445" + #kafrabank + "^000000 zeny.";
mes "How much zeny would you like to withdraw?"; mes "How much zeny would you like to withdraw?";
next; next;
if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT;
if(@kafrabank<1) goto B_EXIT2; if(@kafrabank<1) goto B_EXIT2;
if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH; if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH;
set #kafrabank,#kafrabank-@kafrabank; set #kafrabank,#kafrabank-@kafrabank;
set zeny,zeny+@kafrabank; set zeny,zeny+@kafrabank;
mes"[Maniss]"; mes"[Maniss]";
mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here..."; mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here...";
//we log these zeny operations into the log db //we log these zeny operations into the log db
logmes "Bank %: " + @income +"z, Withdraw: "+ @kafrabank +"z, Final: "+ #kafrabank +"z"; logmes "Bank %: " + @income +"z, Withdraw: "+ @kafrabank +"z, Final: "+ #kafrabank +"z";
goto B_EXIT; goto B_EXIT;
L_NOT_ENOUGH: L_NOT_ENOUGH:
mes"[Maniss]"; mes"[Maniss]";
mes "You don't have enough zeny for this operation."; mes "You don't have enough zeny for this operation.";
next; next;
goto B_EXIT2; goto B_EXIT2;
L_ZERO_ACCOUNT: L_ZERO_ACCOUNT:
mes"[Maniss]"; mes"[Maniss]";
mes "You don't have any zeny on your account!"; mes "You don't have any zeny on your account!";
next; next;
goto B_EXIT2; goto B_EXIT2;
L_TOO_BIG_AMOUNT: L_TOO_BIG_AMOUNT:
mes"[Maniss]"; mes"[Maniss]";
mes "Sorry. The maximum deposit you can make on a time is 10,000,000 zeny."; mes "Sorry. The maximum deposit you can make on a time is 10,000,000 zeny.";
next; next;
goto B_EXIT2; goto B_EXIT2;
L_LESS_1000: L_LESS_1000:
mes"[Maniss]"; mes"[Maniss]";
mes "We're sorry, the minimum amount of zeny you can deposit is 1,000 zeny."; mes "We're sorry, the minimum amount of zeny you can deposit is 1,000 zeny.";
next; next;
goto B_EXIT2; goto B_EXIT2;
B_EXIT: B_EXIT:
mes "Very well... Come again soon!"; mes "Very well... Come again soon!";
next; next;
B_EXIT2: B_EXIT2:
mes"[Maniss]"; mes"[Maniss]";
mes "Thank you for using our Bank Service. We hope to see you again soon."; mes "Thank you for using our Bank Service. We hope to see you again soon.";
close; close;
} }
prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 833 prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 833
geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 833 geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 833
izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 833 izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 833
morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 833 morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 833

View File

@ -1,347 +1,347 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Black Jack //= Black Jack
//===== By: ================================================== //===== By: ==================================================
//= kobra_k88 //= kobra_k88
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Black Jack card game. Gameplay based off standard casino //= Black Jack card game. Gameplay based off standard casino
//= black jack rules. Dealer must have at least 17 to stay and will //= black jack rules. Dealer must have at least 17 to stay and will
//= automatically stay at 17 and up. Player must have at least //= automatically stay at 17 and up. Player must have at least
//= 13 to stay. Aces counted as 11 or 1. Option to "Double Down". //= 13 to stay. Aces counted as 11 or 1. Option to "Double Down".
//= Currently does not allow for "insurance", or "splitting" //= Currently does not allow for "insurance", or "splitting"
//= of pairs. //= of pairs.
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= //=
//============================================================ //============================================================
cmd_in02,188,89,1 script Black Jack Dealer 57,{ cmd_in02,188,89,1 script Black Jack Dealer 57,{
mes "[Dealer]"; mes "[Dealer]";
mes "Hello there! Would you like to play a game of Black Jack?"; mes "Hello there! Would you like to play a game of Black Jack?";
M_Menu: M_Menu:
next; next;
menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End; menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End;
M_0: M_0:
mes "[Dealer]"; mes "[Dealer]";
mes "What would you like to know?"; mes "What would you like to know?";
sM_Menu0: sM_Menu0:
next; next;
menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c, menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c,
"Ace value.",sM_0d, "Nothing.",M_Menu; "Ace value.",sM_0d, "Nothing.",M_Menu;
sM_0a: sM_0a:
mes "[Dealer]"; mes "[Dealer]";
mes "Black Jack is a card game in which the goal is to get 21, or as"; 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."; mes "close to 21 points as possible, without going over 21.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "Before the game starts, the player must make a bet. Once the bet"; 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 "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 "each. Depending on what cards you have, you can choose to ^5533FF'stay'^000000,";
mes "or you can choose to ^5533FF'pull'^000000."; mes "or you can choose to ^5533FF'pull'^000000.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "When you choose to 'stay', you are telling the dealer that you don't"; 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 "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 "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."; mes "dealer can only stay when he/she has^FF3355 17 points or more^000000.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "When you choose to 'pull', you are telling the dealer that you want"; 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 "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 "total. As long has you have ^FF3355less than 21^000000 points you can pull a";
mes "card from the deck."; mes "card from the deck.";
goto sM_Menu0; goto sM_Menu0;
sM_0b: sM_0b:
mes "[Dealer]"; mes "[Dealer]";
mes "There are 3 ways to win and loose at Black Jack."; mes "There are 3 ways to win and loose at Black Jack.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "1.) At the end of a Black Jack round, if you have more points"; 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 "than the dealer you will win the round. Conversely if you have";
mes "less points than the dealer you will loose."; mes "less points than the dealer you will loose.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "2.) If you pull a card that makes your point total go over 21 you"; 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 "will automatically loose the round. This is called a ^5533FF'bust'^000000. If";
mes "the dealer busts then you will win the round."; mes "the dealer busts then you will win the round.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "3.) If you have a point total of 21 with the first 2 cards, you"; 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 "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 "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."; mes "dealer gets a Black Jack he/she will automatically win the round.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "4.) Besides winning and loosing, you can tie with the dealer. If"; 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 "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 "round, this will result in a tie with no winner and no loss or gain";
mes "in money."; mes "in money.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "This is called a ^5533FF'push'^000000 with the dealer. This also"; 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 "applies to both you and the dealer having Black Jack at the same";
mes "time."; mes "time.";
goto sM_Menu0; goto sM_Menu0;
sM_0c: sM_0c:
mes "[Dealer]"; mes "[Dealer]";
mes "The 'Double Down' option allows you to double your current bet,"; 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 "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 "additional card. This option is only available at the beggining of";
mes "each round."; mes "each round.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "An example of when doubling down is useful, is when"; 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 "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 "chance of getting 21 or 20 with the next card that you draw. This";
mes "would be a good hand to double down on."; mes "would be a good hand to double down on.";
goto sM_Menu0; goto sM_Menu0;
sM_0d: sM_0d:
mes "[Dealer]"; mes "[Dealer]";
mes "The 'Ace' card is a unique card in the game of Black Jack because"; 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 "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 "or just 1 point. For example if you had an Ace and a 4, that would";
mes "give you either 15 or 5 points."; mes "give you either 15 or 5 points.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "If you decided to stay, the Ace would automatically be counted as"; mes "If you decided to stay, the Ace would automatically be counted as";
mes "11 points to give you 15 points total."; mes "11 points to give you 15 points total.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "If you had decided to pull and received a 9, the ace would"; 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 "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 "points. If the Ace was counted as 11 points, you would have a";
mes "point total over 21 and would have lost."; mes "point total over 21 and would have lost.";
next; next;
mes "[Dealer]"; mes "[Dealer]";
mes "It is because of the flexibilty you have with the 'Ace' that makes"; mes "It is because of the flexibilty you have with the 'Ace' that makes";
mes "it the most powerfull card in the game."; mes "it the most powerfull card in the game.";
goto sM_Menu0; goto sM_Menu0;
M_End: M_End:
mes "[Dealer]"; mes "[Dealer]";
mes "Feel free to come back anytime"; mes "Feel free to come back anytime";
close; close;
//================ //================
L_Play: L_Play:
mes "[Dealer]"; mes "[Dealer]";
mes "Please place your bets..."; mes "Please place your bets...";
next; next;
menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End; menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End;
M_1a: M_1a:
if(Zeny < 2) goto sL_NotEnuf; if(Zeny < 2) goto sL_NotEnuf;
set @bet, 2; set @bet, 2;
goto L_Cont0; goto L_Cont0;
M_1b: M_1b:
if(Zeny < 10) goto sL_NotEnuf; if(Zeny < 10) goto sL_NotEnuf;
set @bet, 10; set @bet, 10;
goto L_Cont0; goto L_Cont0;
M_1c: M_1c:
if(Zeny < 20) goto sL_NotEnuf; if(Zeny < 20) goto sL_NotEnuf;
set @bet, 20; set @bet, 20;
goto L_Cont0; goto L_Cont0;
M_1d: M_1d:
if(Zeny < 100) goto sL_NotEnuf; if(Zeny < 100) goto sL_NotEnuf;
set @bet, 100; set @bet, 100;
goto L_Cont0; goto L_Cont0;
sL_NotEnuf: sL_NotEnuf:
mes "[Dealer]"; mes "[Dealer]";
mes "I'm sorry but you don't have enough zeny to make that bet."; mes "I'm sorry but you don't have enough zeny to make that bet.";
close; close;
L_Cont0: L_Cont0:
mes "(the cards are being dealt)"; mes "(the cards are being dealt)";
next; next;
deletearray $@card[0],13; deletearray $@card[0],13;
set @dealerTurn, 0; set @dealerTurn, 0;
set @numP, 0; set @numP, 0;
set @numD, 0; set @numD, 0;
set @pAce, 0; set @pAce, 0;
set @dAce, 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, @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;
callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
//============== //==============
L_Start: L_Start:
callsub sF_GetTot; callsub sF_GetTot;
mes "- Here are the ^FF5533DEALER'S^000000 cards:"; mes "- Here are the ^FF5533DEALER'S^000000 cards:";
if (@numD==2) callsub sF_D2cards; if (@numD==2) callsub sF_D2cards;
if (@numD==3) callsub sF_D3cards; if (@numD==3) callsub sF_D3cards;
if (@numD==4) callsub sF_D4cards; if (@numD==4) callsub sF_D4cards;
if (@numD==5) callsub sF_D5cards; if (@numD==5) callsub sF_D5cards;
mes " The DEALER has: ^FF5533"+@dealTot+"^000000"; mes " The DEALER has: ^FF5533"+@dealTot+"^000000";
mes " "; mes " ";
mes "- Here are ^5533FFYOUR^000000 cards:"; mes "- Here are ^5533FFYOUR^000000 cards:";
if (@numP==2) callsub sF_P2cards; if (@numP==2) callsub sF_P2cards;
if (@numP==3) callsub sF_P3cards; if (@numP==3) callsub sF_P3cards;
if (@numP==4) callsub sF_P4cards; if (@numP==4) callsub sF_P4cards;
if (@numP==5) callsub sF_P5cards; 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";
if(@pAce == 1 && @playTot != 21) mes " You have: ^5533FF" +@playTot+ "^000000, or ^5533FF" +(@playTot-10)+ "^000000"; if(@pAce == 1 && @playTot != 21) mes " You have: ^5533FF" +@playTot+ "^000000, or ^5533FF" +(@playTot-10)+ "^000000";
next; next;
if(@playTot==21 && @dealTot==21) goto sL_Push; if(@playTot==21 && @dealTot==21) goto sL_Push;
if(@numP==2 && @playTot == 21) goto sL_Win; if(@numP==2 && @playTot == 21) goto sL_Win;
if(@numD==2 && @dealTot == 21) goto sL_Lose; if(@numD==2 && @dealTot == 21) goto sL_Lose;
if(@playTot > 21) goto sL_Lose; if(@playTot > 21) goto sL_Lose;
if(@dealTot > 21) goto sL_Win; 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(@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; if(@dealerTurn == 0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay;
M_Stay: M_Stay:
mes "[Dealer]"; mes "[Dealer]";
if(@playTot < 13) goto sL_PlayToLow; if(@playTot < 13) goto sL_PlayToLow;
if(@dealTot > 16) mes "The Dealer stays."; if(@dealTot > 16) mes "The Dealer stays.";
if(@dealTot > 16 || @numD == 5) goto L_Check; if(@dealTot > 16 || @numD == 5) goto L_Check;
mes "The Dealer is going to pull"; mes "The Dealer is going to pull";
next; next;
callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
set @dealerTurn, 1; set @dealerTurn, 1;
goto L_Start; goto L_Start;
sL_PlayToLow: sL_PlayToLow:
mes "I'm sorry but you do not have a high enough total to stay. You must pull."; mes "I'm sorry but you do not have a high enough total to stay. You must pull.";
next; next;
goto M_Hit; goto M_Hit;
M_Hit: M_Hit:
if(@numP == 5) goto M_Stay; if(@numP == 5) goto M_Stay;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
goto L_Start; goto L_Start;
M_Double: M_Double:
mes "[Dealer]"; mes "[Dealer]";
mes "Player has chosen to Double Down. You're current bet will be"; 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."; mes "doubled, and you will only be able to pull 1 extra card.";
next; next;
set @dealerTurn, 1; set @dealerTurn, 1;
set @bet, @bet*2; set @bet, @bet*2;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
goto L_Start; goto L_Start;
//============= //=============
L_Check: L_Check:
next; next;
if(@playTot < @dealTot) goto sL_Lose; if(@playTot < @dealTot) goto sL_Lose;
if(@playTot == @dealTot) goto sL_Push; if(@playTot == @dealTot) goto sL_Push;
sL_Win: sL_Win:
mes "[Dealer]"; mes "[Dealer]";
mes "Congratulations, you've won!"; mes "Congratulations, you've won!";
next; next;
set Zeny, Zeny + @bet; set Zeny, Zeny + @bet;
goto L_Play; goto L_Play;
sL_Lose: sL_Lose:
mes "[Dealer]"; mes "[Dealer]";
mes "I'm sorry but you've lost."; mes "I'm sorry but you've lost.";
set Zeny, Zeny - @bet; set Zeny, Zeny - @bet;
next; next;
goto L_Play; goto L_Play;
sL_Push: sL_Push:
mes "[Dealer]"; mes "[Dealer]";
mes "Its a push. You tied with the Dealer."; mes "Its a push. You tied with the Dealer.";
next; next;
goto L_Play; goto L_Play;
//================================== //==================================
// Sub function for dealing/pulling the cards // Sub function for dealing/pulling the cards
sF_GetCards: sF_GetCards:
set @rnd, rand(1,13); set @rnd, rand(1,13);
if($@card[@rnd] == 4) goto sF_GetCards; if($@card[@rnd] == 4) goto sF_GetCards;
set $@card[@rnd], $@card[@rnd] + 1; set $@card[@rnd], $@card[@rnd] + 1;
set getarg(1), @rnd; set getarg(1), @rnd;
if(getarg(1) > 10) set getarg(1), 10; if(getarg(1) > 10) set getarg(1), 10;
if(getarg(1) == 1 && getarg(3) < 1) set getarg(1), 11; if(getarg(1) == 1 && getarg(3) < 1) set getarg(1), 11;
if(getarg(1) == 11) set getarg(3), 1; if(getarg(1) == 11) set getarg(3), 1;
set getarg(2), " " + getarg(1) + " "; set getarg(2), " " + getarg(1) + " ";
if(@rnd == 10) set getarg(2), getarg(1); if(@rnd == 10) set getarg(2), getarg(1);
if(@rnd == 1) set getarg(2), " A "; if(@rnd == 1) set getarg(2), " A ";
if(@rnd == 11) set getarg(2), " J "; if(@rnd == 11) set getarg(2), " J ";
if(@rnd == 12) set getarg(2), " Q "; if(@rnd == 12) set getarg(2), " Q ";
if(@rnd == 13) set getarg(2), " K "; if(@rnd == 13) set getarg(2), " K ";
set getarg(0), getarg(0) + 1; set getarg(0), getarg(0) + 1;
return; return;
//================================== //==================================
// Sub function for getting the total score for each hand // Sub function for getting the total score for each hand
sF_GetTot: sF_GetTot:
set @i, 0; set @i, 0;
set @dealTot, 0; set @dealTot, 0;
set @playTot, 0; set @playTot, 0;
GetDealTot: GetDealTot:
set @dealTot, @dealTot + @dealCard[@i]; set @dealTot, @dealTot + @dealCard[@i];
set @i, @i + 1; set @i, @i + 1;
if(@i < @numD) goto GetDealTot; if(@i < @numD) goto GetDealTot;
if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10; if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10;
set @i, 0; set @i, 0;
GetPlayTot: GetPlayTot:
set @playTot, @playTot + @playCard[@i]; set @playTot, @playTot + @playCard[@i];
set @i, @i + 1; set @i, @i + 1;
if(@i < @numP) goto GetPlayTot; if(@i < @numP) goto GetPlayTot;
if(@pAce == 1 && @playTot > 21) set @pAce, 2; if(@pAce == 1 && @playTot > 21) set @pAce, 2;
if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10; if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10;
return; return;
//======================================= //=======================================
// Sub function for displaying the Cards // Sub function for displaying the Cards
sF_D2cards: sF_D2cards:
mes " .-----. .-----. "; mes " .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | "; mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | ";
mes " '-----' '-----' "; mes " '-----' '-----' ";
return; return;
sF_P2cards: sF_P2cards:
mes " .-----. .-----. "; mes " .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | "; mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | ";
mes " '-----' '-----' "; mes " '-----' '-----' ";
return; return;
sF_D3cards: sF_D3cards:
mes " .-----. .-----. .-----. "; mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' "; mes " '-----' '-----' '-----' ";
return; return;
sF_P3cards: sF_P3cards:
mes " .-----. .-----. .-----. "; mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | "; mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | ";
mes " '-----' '-----' '-----' "; mes " '-----' '-----' '-----' ";
return; return;
sF_D4cards: sF_D4cards:
mes " .-----. .-----. .-----. "; mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' "; mes " '-----' '-----' '-----' ";
mes " .-----. "; mes " .-----. ";
mes " | "+@dealCard$[3]+" |"; mes " | "+@dealCard$[3]+" |";
mes " '-----' "; mes " '-----' ";
return; return;
sF_P4cards: sF_P4cards:
mes " .-----. .-----. .-----. "; mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" |"; mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" |";
mes " '-----' '-----' '-----' "; mes " '-----' '-----' '-----' ";
mes " .-----. "; mes " .-----. ";
mes " | "+@playCard$[3]+" |"; mes " | "+@playCard$[3]+" |";
mes " '-----' "; mes " '-----' ";
return; return;
sF_D5cards: sF_D5cards:
mes " .-----. .-----. .-----. "; mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | "; mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' "; mes " '-----' '-----' '-----' ";
mes " .-----. .-----. "; mes " .-----. .-----. ";
mes " | "+@dealCard$[3]+" | | "+@dealCard$[4]+" | "; mes " | "+@dealCard$[3]+" | | "+@dealCard$[4]+" | ";
mes " '-----' '-----' "; mes " '-----' '-----' ";
return; return;
sF_P5cards: sF_P5cards:
mes " .-----. .-----. .-----. "; mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | "; mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | ";
mes " '-----' '-----' '-----' "; mes " '-----' '-----' '-----' ";
mes " .-----. .-----. "; mes " .-----. .-----. ";
mes " | "+@playCard$[3]+" | | "+@playCard$[4]+" | "; mes " | "+@playCard$[3]+" | | "+@playCard$[4]+" | ";
mes " '-----' '-----' "; mes " '-----' '-----' ";
return; return;
} }

View File

@ -1,43 +1,43 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Floating Server Rates //= Floating Server Rates
//===== By: ================================================== //===== By: ==================================================
//= Lupus //= Lupus
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= It's a simply example of setbattleflag //= It's a simply example of setbattleflag
//= This script will change your server rates from 1x to 1.5x every 6 hours //= 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 ^_- //= 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% //= It also doesn't affect CARD drops, because they are just 0.01%
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= You can make incredible scripts with 'setbattleflag'! //= You can make incredible scripts with 'setbattleflag'!
//============================================================ //============================================================
- script FloatingRates -1,{ - script FloatingRates -1,{
OnInit: OnInit:
//add any other HOURS //add any other HOURS
OnHour00: OnHour00:
OnHour06: OnHour06:
OnHour12: OnHour12:
OnHour18: OnHour18:
//------------------- //-------------------
set $@brate,rand(100,150); set $@brate,rand(100,150);
set $@jrate,rand(100,150); set $@jrate,rand(100,150);
set $@drate,rand(100,150); set $@drate,rand(100,150);
//Base exp //Base exp
setbattleflag("base_exp_rate",$@brate); setbattleflag("base_exp_rate",$@brate);
//Job exp //Job exp
setbattleflag("job_exp_rate",$@jrate); setbattleflag("job_exp_rate",$@jrate);
//Drops //Drops
setbattleflag("item_rate_common",$@drate); setbattleflag("item_rate_common",$@drate);
setbattleflag("item_rate_heal",$@drate); setbattleflag("item_rate_heal",$@drate);
setbattleflag("item_rate_use",$@drate); setbattleflag("item_rate_use",$@drate);
setbattleflag("item_rate_equip",$@drate); setbattleflag("item_rate_equip",$@drate);
//we don't change card drops rate, because these values won't change them anyway //we don't change card drops rate, because these values won't change them anyway
atcommand "@reloadmobdb"; atcommand "@reloadmobdb";
announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060; announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060;
end; end;
} }

View File

@ -1,454 +1,454 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Lottery //= Lottery
//===== By: ================================================== //===== By: ==================================================
//= acky //= acky
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.2.1a //= 1.2.1a
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Daily lottery draw //= Daily lottery draw
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= Numbers drawn daily (Time is configured line 29) //= Numbers drawn daily (Time is configured line 29)
//= *Added GM-Riggability //= *Added GM-Riggability
//= *Ability to renew ticket //= *Ability to renew ticket
//= *Improved interface //= *Improved interface
//= *Fixed minor bug where first load didn't work. //= *Fixed minor bug where first load didn't work.
//= 1.2.1a fix due to new script engine //= 1.2.1a fix due to new script engine
//============================================================ //============================================================
- script lotterygenerator -1,{ - script lotterygenerator -1,{
OnInit: OnInit:
set $L_TicketPrice,4750; // TICKET COST set $L_TicketPrice,4750; // TICKET COST
set $L_Prize_Money,5000000; // JACKPOT AMOUNT set $L_Prize_Money,5000000; // JACKPOT AMOUNT
set $L_Prize_Money_Small,1000000; // SECONDARY PRIZE set $L_Prize_Money_Small,1000000; // SECONDARY PRIZE
if ($LID == 0) goto L_GenID; if ($LID == 0) goto L_GenID;
end; end;
//Modify for own time //Modify for own time
OnClock2045: OnClock2045:
// CHECKS IF LOTTERY IS RIGGED // CHECKS IF LOTTERY IS RIGGED
if ($L_Rigged == 1) goto L_Rigged_Draw; if ($L_Rigged == 1) goto L_Rigged_Draw;
// GENERATES RANDOM NUMBERS 1-40 // GENERATES RANDOM NUMBERS 1-40
Pick1: Pick1:
set $LW1,rand (1,40); set $LW1,rand (1,40);
Pick2: Pick2:
set $LW2,rand (1,40); set $LW2,rand (1,40);
if ($LW2 == $LW1) goto Pick2; if ($LW2 == $LW1) goto Pick2;
Pick3: Pick3:
set $LW3,rand (1,40); set $LW3,rand (1,40);
if ($LW3 == $LW2) goto Pick3; if ($LW3 == $LW2) goto Pick3;
if ($LW3 == $LW1) goto Pick3; if ($LW3 == $LW1) goto Pick3;
Pick4: Pick4:
set $LW4,rand (1,40); set $LW4,rand (1,40);
if ($LW4 == $LW2) goto Pick4; if ($LW4 == $LW2) goto Pick4;
if ($LW4 == $LW1) goto Pick4; if ($LW4 == $LW1) goto Pick4;
if ($LW4 == $LW3) goto Pick4; if ($LW4 == $LW3) goto Pick4;
Pick5: Pick5:
set $LW5,rand (1,40); set $LW5,rand (1,40);
if ($LW5 == $LW1) goto Pick5; if ($LW5 == $LW1) goto Pick5;
if ($LW5 == $LW2) goto Pick5; if ($LW5 == $LW2) goto Pick5;
if ($LW5 == $LW3) goto Pick5; if ($LW5 == $LW3) goto Pick5;
if ($LW5 == $LW4) goto Pick5; if ($LW5 == $LW4) goto Pick5;
Pick6: Pick6:
set $LW6,rand (1,40); set $LW6,rand (1,40);
if ($LW6 == $LW1) goto Pick6; if ($LW6 == $LW1) goto Pick6;
if ($LW6 == $LW2) goto Pick6; if ($LW6 == $LW2) goto Pick6;
if ($LW6 == $LW3) goto Pick6; if ($LW6 == $LW3) goto Pick6;
if ($LW6 == $LW4) goto Pick6; if ($LW6 == $LW4) goto Pick6;
if ($LW6 == $LW5) goto Pick6; if ($LW6 == $LW5) goto Pick6;
// BROADCASTS DRAW // BROADCASTS DRAW
L_Broadcast: L_Broadcast:
Announce "Lottery: Welcome to tonight's lotto draw!",8; Announce "Lottery: Welcome to tonight's lotto draw!",8;
Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;
Announce "Congratulations to the winners of tonight!",8; Announce "Congratulations to the winners of tonight!",8;
// GENERATES DRAW ID CODE // GENERATES DRAW ID CODE
L_GenID: L_GenID:
set $LID2,$LID; set $LID2,$LID;
// SETS TOMORROW'S ID NUMBER // SETS TOMORROW'S ID NUMBER
set $LID,rand (100000,999999); set $LID,rand (100000,999999);
end; end;
// SETS DRAW TO RIGGED NUMBERS // SETS DRAW TO RIGGED NUMBERS
L_Rigged_Draw: L_Rigged_Draw:
set $LW1,$LR1; set $LW1,$LR1;
set $LW2,$LR2; set $LW2,$LR2;
set $LW3,$LR3; set $LW3,$LR3;
set $LW4,$LR4; set $LW4,$LR4;
set $LW5,$LR5; set $LW5,$LR5;
set $LW6,$LR6; set $LW6,$LR6;
set $L_Rigged,0; set $L_Rigged,0;
goto L_Broadcast; goto L_Broadcast;
} }
prontera,141,182,5 script Lottery 76,{ prontera,141,182,5 script Lottery 76,{
L_Begin: L_Begin:
mes "[Lottery]"; mes "[Lottery]";
mes "Winning Lotto Numbers ("+$LID2+"):"; mes "Winning Lotto Numbers ("+$LID2+"):";
mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000"; mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000";
if ($LID > 99999) mes "Your Ticket ("+#LID+"):"; if ($LID > 99999) mes "Your Ticket ("+#LID+"):";
if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000"; if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000";
mes "Next Draw-ID: ^FF0000" + $LID + "^000000."; mes "Next Draw-ID: ^FF0000" + $LID + "^000000.";
next; next;
if (getgmlevel() > 90) goto L_GM; if (getgmlevel() > 90) goto L_GM;
menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Cancel",L_Cancel; menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Cancel",L_Cancel;
// PURCHASE TICKET // PURCHASE TICKET
L_Buy: L_Buy:
if (#LID == $LID && #L1 != 0) goto L_DoubleTicket; if (#LID == $LID && #L1 != 0) goto L_DoubleTicket;
mes "[Lottery]"; mes "[Lottery]";
mes "Tickets cost ^0000FF" + $L_TicketPrice + "z^000000."; mes "Tickets cost ^0000FF" + $L_TicketPrice + "z^000000.";
mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000."; mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000.";
next; next;
menu "Buy Ticket",-,"Cancel",L_Cancel; menu "Buy Ticket",-,"Cancel",L_Cancel;
if (zeny < $L_TicketPrice) goto L_NoZeny; if (zeny < $L_TicketPrice) goto L_NoZeny;
set zeny,zeny-$L_TicketPrice; set zeny,zeny-$L_TicketPrice;
mes "[Lottery]"; mes "[Lottery]";
mes "Would you like your numbers hand picked or computer generated?"; mes "Would you like your numbers hand picked or computer generated?";
next; next;
menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew Ticket",L_Renew; menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew Ticket",L_Renew;
// RENEW LAST TICKET // RENEW LAST TICKET
L_Renew: L_Renew:
if ($LID < 99999) goto L_Invalid; if ($LID < 99999) goto L_Invalid;
set #LID,$LID; set #LID,$LID;
goto L_Confirm2; goto L_Confirm2;
L_ComputerGen: L_ComputerGen:
// SELECTS RANDOM NUMBERS // SELECTS RANDOM NUMBERS
set @L1,0; set @L1,0;
set @L2,0; set @L2,0;
set @L3,0; set @L3,0;
set @L4,0; set @L4,0;
set @L5,0; set @L5,0;
set @L6,0; set @L6,0;
Pick1: Pick1:
set @L1,rand (1,40); set @L1,rand (1,40);
Pick2: Pick2:
set @L2,rand (1,40); set @L2,rand (1,40);
if (@L2 == @L1) goto Pick2; if (@L2 == @L1) goto Pick2;
Pick3: Pick3:
set @L3,rand (1,40); set @L3,rand (1,40);
if (@L3 == @L2) goto Pick3; if (@L3 == @L2) goto Pick3;
if (@L3 == @L1) goto Pick3; if (@L3 == @L1) goto Pick3;
Pick4: Pick4:
set @L4,rand (1,40); set @L4,rand (1,40);
if (@L4 == @L2) goto Pick4; if (@L4 == @L2) goto Pick4;
if (@L4 == @L1) goto Pick4; if (@L4 == @L1) goto Pick4;
if (@L4 == @L3) goto Pick4; if (@L4 == @L3) goto Pick4;
Pick5: Pick5:
set @L5,rand (1,40); set @L5,rand (1,40);
if (@L5 == @L1) goto Pick5; if (@L5 == @L1) goto Pick5;
if (@L5 == @L2) goto Pick5; if (@L5 == @L2) goto Pick5;
if (@L5 == @L3) goto Pick5; if (@L5 == @L3) goto Pick5;
if (@L5 == @L4) goto Pick5; if (@L5 == @L4) goto Pick5;
Pick6: Pick6:
set @L6,rand (1,40); set @L6,rand (1,40);
if (@L6 == @L1) goto Pick6; if (@L6 == @L1) goto Pick6;
if (@L6 == @L2) goto Pick6; if (@L6 == @L2) goto Pick6;
if (@L6 == @L3) goto Pick6; if (@L6 == @L3) goto Pick6;
if (@L6 == @L4) goto Pick6; if (@L6 == @L4) goto Pick6;
if (@L6 == @L5) goto Pick6; if (@L6 == @L5) goto Pick6;
mes "[Lottery]"; mes "[Lottery]";
mes "The computer has selected the following numbers:"; mes "The computer has selected the following numbers:";
mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";
next; next;
menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen; menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen;
// HAND PICK LOTTERY NUMBERS // HAND PICK LOTTERY NUMBERS
L_HandPick: L_HandPick:
mes "[Lottery]"; mes "[Lottery]";
mes "Please pick your numbers (1-40):"; mes "Please pick your numbers (1-40):";
set @L1,0; set @L1,0;
set @L2,0; set @L2,0;
set @L3,0; set @L3,0;
set @L4,0; set @L4,0;
set @L5,0; set @L5,0;
set @L6,0; set @L6,0;
Input1: Input1:
input @L1; input @L1;
if (@L1 < 1 || @L1 > 40) goto Input1; if (@L1 < 1 || @L1 > 40) goto Input1;
mes @L1; mes @L1;
Input2: Input2:
input @L2; input @L2;
if (@L2 < 1 || @L2 > 40) goto Input2; if (@L2 < 1 || @L2 > 40) goto Input2;
if (@L2 == @L1) goto Input2; if (@L2 == @L1) goto Input2;
mes @L2; mes @L2;
Input3: Input3:
input @L3; input @L3;
if (@L3 < 1 || @L3 > 40) goto Input3; if (@L3 < 1 || @L3 > 40) goto Input3;
if (@L3 == @L1) goto Input3; if (@L3 == @L1) goto Input3;
if (@L3 == @L2) goto Input3; if (@L3 == @L2) goto Input3;
mes @L3; mes @L3;
Input4: Input4:
input @L4; input @L4;
if (@L4 < 1 || @L4 > 40) goto Input4; if (@L4 < 1 || @L4 > 40) goto Input4;
if (@L4 == @L1) goto Input4; if (@L4 == @L1) goto Input4;
if (@L4 == @L2) goto Input4; if (@L4 == @L2) goto Input4;
if (@L4 == @L3) goto Input4; if (@L4 == @L3) goto Input4;
mes @L4; mes @L4;
Input5: Input5:
input @L5; input @L5;
if (@L5 < 1 || @L5 > 40) goto Input5; if (@L5 < 1 || @L5 > 40) goto Input5;
if (@L5 == @L1) goto Input5; if (@L5 == @L1) goto Input5;
if (@L5 == @L2) goto Input5; if (@L5 == @L2) goto Input5;
if (@L5 == @L3) goto Input5; if (@L5 == @L3) goto Input5;
if (@L5 == @L4) goto Input5; if (@L5 == @L4) goto Input5;
mes @L5; mes @L5;
Input6: Input6:
input @L6; input @L6;
if (@L6 < 1 || @L6 > 40) goto Input6; if (@L6 < 1 || @L6 > 40) goto Input6;
if (@L6 == @L1) goto Input6; if (@L6 == @L1) goto Input6;
if (@L6 == @L2) goto Input6; if (@L6 == @L2) goto Input6;
if (@L6 == @L3) goto Input6; if (@L6 == @L3) goto Input6;
if (@L6 == @L4) goto Input6; if (@L6 == @L4) goto Input6;
if (@L6 == @L5) goto Input6; if (@L6 == @L5) goto Input6;
mes @L6; mes @L6;
next; next;
mes "[Lottery]"; mes "[Lottery]";
mes "Your numbers are:"; mes "Your numbers are:";
mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";
next; next;
menu "Confirm",L_Confirm,"Re-Pick",L_HandPick; menu "Confirm",L_Confirm,"Re-Pick",L_HandPick;
L_Confirm: L_Confirm:
set #LW1,@L1; set #LW1,@L1;
set #LW2,@L2; set #LW2,@L2;
set #LW3,@L3; set #LW3,@L3;
set #LW4,@L4; set #LW4,@L4;
set #LW5,@L5; set #LW5,@L5;
set #LW6,@L6; set #LW6,@L6;
set #LID,$LID; set #LID,$LID;
L_Confirm2: L_Confirm2:
mes "[Lottery]"; mes "[Lottery]";
mes "The live broadcasted draw is at 9pm."; mes "The live broadcasted draw is at 9pm.";
mes "You can claim your ticket between then and the next draw."; mes "You can claim your ticket between then and the next draw.";
next; next;
mes "[Lottery]"; mes "[Lottery]";
mes "Good luck!"; mes "Good luck!";
close; close;
L_Claim: L_Claim:
// CHECKS TICKET VALIDILITY // CHECKS TICKET VALIDILITY
if (#LID != $LID2) goto L_Invalid; if (#LID != $LID2) goto L_Invalid;
// CHECKS HOW MANY NUMBERS MATCHED // CHECKS HOW MANY NUMBERS MATCHED
set @LPrize,0; set @LPrize,0;
if (#LW1 == $LW1) set @LPrize,@LPrize+1; if (#LW1 == $LW1) set @LPrize,@LPrize+1;
if (#LW1 == $LW2) set @LPrize,@LPrize+1; if (#LW1 == $LW2) set @LPrize,@LPrize+1;
if (#LW1 == $LW3) set @LPrize,@LPrize+1; if (#LW1 == $LW3) set @LPrize,@LPrize+1;
if (#LW1 == $LW4) set @LPrize,@LPrize+1; if (#LW1 == $LW4) set @LPrize,@LPrize+1;
if (#LW1 == $LW5) set @LPrize,@LPrize+1; if (#LW1 == $LW5) set @LPrize,@LPrize+1;
if (#LW1 == $LW6) set @LPrize,@LPrize+1; if (#LW1 == $LW6) set @LPrize,@LPrize+1;
if (#LW2 == $LW1) set @LPrize,@LPrize+1; if (#LW2 == $LW1) set @LPrize,@LPrize+1;
if (#LW2 == $LW2) set @LPrize,@LPrize+1; if (#LW2 == $LW2) set @LPrize,@LPrize+1;
if (#LW2 == $LW3) set @LPrize,@LPrize+1; if (#LW2 == $LW3) set @LPrize,@LPrize+1;
if (#LW2 == $LW4) set @LPrize,@LPrize+1; if (#LW2 == $LW4) set @LPrize,@LPrize+1;
if (#LW2 == $LW5) set @LPrize,@LPrize+1; if (#LW2 == $LW5) set @LPrize,@LPrize+1;
if (#LW2 == $LW6) set @LPrize,@LPrize+1; if (#LW2 == $LW6) set @LPrize,@LPrize+1;
if (#LW3 == $LW1) set @LPrize,@LPrize+1; if (#LW3 == $LW1) set @LPrize,@LPrize+1;
if (#LW3 == $LW2) set @LPrize,@LPrize+1; if (#LW3 == $LW2) set @LPrize,@LPrize+1;
if (#LW3 == $LW3) set @LPrize,@LPrize+1; if (#LW3 == $LW3) set @LPrize,@LPrize+1;
if (#LW3 == $LW4) set @LPrize,@LPrize+1; if (#LW3 == $LW4) set @LPrize,@LPrize+1;
if (#LW3 == $LW5) set @LPrize,@LPrize+1; if (#LW3 == $LW5) set @LPrize,@LPrize+1;
if (#LW3 == $LW6) set @LPrize,@LPrize+1; if (#LW3 == $LW6) set @LPrize,@LPrize+1;
if (#LW4 == $LW1) set @LPrize,@LPrize+1; if (#LW4 == $LW1) set @LPrize,@LPrize+1;
if (#LW4 == $LW2) set @LPrize,@LPrize+1; if (#LW4 == $LW2) set @LPrize,@LPrize+1;
if (#LW4 == $LW3) set @LPrize,@LPrize+1; if (#LW4 == $LW3) set @LPrize,@LPrize+1;
if (#LW4 == $LW4) set @LPrize,@LPrize+1; if (#LW4 == $LW4) set @LPrize,@LPrize+1;
if (#LW4 == $LW5) set @LPrize,@LPrize+1; if (#LW4 == $LW5) set @LPrize,@LPrize+1;
if (#LW4 == $LW6) set @LPrize,@LPrize+1; if (#LW4 == $LW6) set @LPrize,@LPrize+1;
if (#LW5 == $LW1) set @LPrize,@LPrize+1; if (#LW5 == $LW1) set @LPrize,@LPrize+1;
if (#LW5 == $LW2) set @LPrize,@LPrize+1; if (#LW5 == $LW2) set @LPrize,@LPrize+1;
if (#LW5 == $LW3) set @LPrize,@LPrize+1; if (#LW5 == $LW3) set @LPrize,@LPrize+1;
if (#LW5 == $LW4) set @LPrize,@LPrize+1; if (#LW5 == $LW4) set @LPrize,@LPrize+1;
if (#LW5 == $LW5) set @LPrize,@LPrize+1; if (#LW5 == $LW5) set @LPrize,@LPrize+1;
if (#LW5 == $LW6) set @LPrize,@LPrize+1; if (#LW5 == $LW6) set @LPrize,@LPrize+1;
if (#LW6 == $LW1) set @LPrize,@LPrize+1; if (#LW6 == $LW1) set @LPrize,@LPrize+1;
if (#LW6 == $LW2) set @LPrize,@LPrize+1; if (#LW6 == $LW2) set @LPrize,@LPrize+1;
if (#LW6 == $LW3) set @LPrize,@LPrize+1; if (#LW6 == $LW3) set @LPrize,@LPrize+1;
if (#LW6 == $LW4) set @LPrize,@LPrize+1; if (#LW6 == $LW4) set @LPrize,@LPrize+1;
if (#LW6 == $LW5) set @LPrize,@LPrize+1; if (#LW6 == $LW5) set @LPrize,@LPrize+1;
if (#LW6 == $LW6) set @LPrize,@LPrize+1; if (#LW6 == $LW6) set @LPrize,@LPrize+1;
if (@LPrize == 6) goto LWinBig; if (@LPrize == 6) goto LWinBig;
if (@LPrize > 3 && @LPrize < 6) goto LWinSmall; if (@LPrize > 3 && @LPrize < 6) goto LWinSmall;
// NO WINNER // NO WINNER
mes "[Lottery]"; mes "[Lottery]";
mes "Bad luck, it appears you do not hold a winning ticket."; mes "Bad luck, it appears you do not hold a winning ticket.";
next; next;
mes "[Lottery]"; mes "[Lottery]";
mes "Better luck next time!."; mes "Better luck next time!.";
close; close;
// MATCHED ALL SIX // MATCHED ALL SIX
LWinBig: LWinBig:
mes "[Lottery]"; mes "[Lottery]";
mes "You have matched all six numbers!"; mes "You have matched all six numbers!";
mes "Jackpot!"; mes "Jackpot!";
mes "You've won ^0000FF" + $L_Prize_Money + "z^000000."; mes "You've won ^0000FF" + $L_Prize_Money + "z^000000.";
set zeny,zeny+$L_Prize_Money; set zeny,zeny+$L_Prize_Money;
Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8; Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8;
set #LID,0; set #LID,0;
close; close;
// MATCHED AT LEAST 4 // MATCHED AT LEAST 4
LWinSmall: LWinSmall:
mes "[Lottery]"; mes "[Lottery]";
mes "You have matched at least 4 numbers!"; mes "You have matched at least 4 numbers!";
mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000."; mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000.";
set zeny,zeny+$L_Prize_Money_Small; set zeny,zeny+$L_Prize_Money_Small;
Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8; Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8;
set #LID,0; set #LID,0;
close; close;
// NO ZENY // NO ZENY
L_NoZeny: L_NoZeny:
mes "[Lottery]"; mes "[Lottery]";
mes "You can't afford a lottery ticket."; mes "You can't afford a lottery ticket.";
close; close;
// INVALID TICKET // INVALID TICKET
L_Invalid: L_Invalid:
mes "[Lottery]"; mes "[Lottery]";
mes "I'm sorry but it appears that you have an invalid ticket."; mes "I'm sorry but it appears that you have an invalid ticket.";
close; close;
// DOUBLE TICKET // DOUBLE TICKET
L_DoubleTicket: L_DoubleTicket:
mes "[Lottery]"; mes "[Lottery]";
mes "It appears that you already have a ticket for today."; mes "It appears that you already have a ticket for today.";
mes "You may only purchase one ticket per draw."; mes "You may only purchase one ticket per draw.";
close; close;
L_Cancel: L_Cancel:
mes "[Lottery]"; mes "[Lottery]";
mes "Come back soon!"; mes "Come back soon!";
close; close;
// GM MENU (Lets you manually do draws) // GM MENU (Lets you manually do draws)
L_GM: 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; 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 // CHECKS IF LOTTERY IS RIGGED
if ($L_Rigged == 1) goto L_Rigged_Draw; if ($L_Rigged == 1) goto L_Rigged_Draw;
// GENERATES RANDOM NUMBERS 1-40 // GENERATES RANDOM NUMBERS 1-40
GMPick1: GMPick1:
set $LW1,rand (1,40); set $LW1,rand (1,40);
GMPick2: GMPick2:
set $LW2,rand (1,40); set $LW2,rand (1,40);
if ($LW2 == $LW1) goto GMPick2; if ($LW2 == $LW1) goto GMPick2;
GMPick3: GMPick3:
set $LW3,rand (1,40); set $LW3,rand (1,40);
if ($LW3 == $LW2) goto GMPick3; if ($LW3 == $LW2) goto GMPick3;
if ($LW3 == $LW1) goto GMPick3; if ($LW3 == $LW1) goto GMPick3;
GMPick4: GMPick4:
set $LW4,rand (1,40); set $LW4,rand (1,40);
if ($LW4 == $LW2) goto GMPick4; if ($LW4 == $LW2) goto GMPick4;
if ($LW4 == $LW1) goto GMPick4; if ($LW4 == $LW1) goto GMPick4;
if ($LW4 == $LW3) goto GMPick4; if ($LW4 == $LW3) goto GMPick4;
GMPick5: GMPick5:
set $LW5,rand (1,40); set $LW5,rand (1,40);
if ($LW5 == $LW1) goto GMPick5; if ($LW5 == $LW1) goto GMPick5;
if ($LW5 == $LW2) goto GMPick5; if ($LW5 == $LW2) goto GMPick5;
if ($LW5 == $LW3) goto GMPick5; if ($LW5 == $LW3) goto GMPick5;
if ($LW5 == $LW4) goto GMPick5; if ($LW5 == $LW4) goto GMPick5;
GMPick6: GMPick6:
set $LW6,rand (1,40); set $LW6,rand (1,40);
if ($LW6 == $LW1) goto GMPick6; if ($LW6 == $LW1) goto GMPick6;
if ($LW6 == $LW2) goto GMPick6; if ($LW6 == $LW2) goto GMPick6;
if ($LW6 == $LW3) goto GMPick6; if ($LW6 == $LW3) goto GMPick6;
if ($LW6 == $LW4) goto GMPick6; if ($LW6 == $LW4) goto GMPick6;
if ($LW6 == $LW5) goto GMPick6; if ($LW6 == $LW5) goto GMPick6;
// BROADCASTS DRAW // BROADCASTS DRAW
L_Broadcast: L_Broadcast:
Announce "Lottery: Welcome to the special GM's lotto draw!",8; 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 "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;
Announce "Congratulations to the winners!",8; Announce "Congratulations to the winners!",8;
// GENERATES DRAW ID CODE // GENERATES DRAW ID CODE
L_GenID: L_GenID:
set $LID2,$LID; set $LID2,$LID;
// SETS TOMORROW'S ID NUMBER // SETS TOMORROW'S ID NUMBER
set $LID,rand (100000,999999); set $LID,rand (100000,999999);
close; close;
// SETS DRAW TO RIGGED NUMBERS // SETS DRAW TO RIGGED NUMBERS
L_Rigged_Draw: L_Rigged_Draw:
set $LW1,$LR1; set $LW1,$LR1;
set $LW2,$LR2; set $LW2,$LR2;
set $LW3,$LR3; set $LW3,$LR3;
set $LW4,$LR4; set $LW4,$LR4;
set $LW5,$LR5; set $LW5,$LR5;
set $LW6,$LR6; set $LW6,$LR6;
set $L_Rigged,0; set $L_Rigged,0;
goto L_Broadcast; goto L_Broadcast;
// ALLOWS GM TO DO A RIGGED DRAW // ALLOWS GM TO DO A RIGGED DRAW
L_GM_Rig: L_GM_Rig:
mes "[Lottery]"; mes "[Lottery]";
mes "Please pick your numbers (1-40):"; mes "Please pick your numbers (1-40):";
set $LR1,0; set $LR1,0;
set $LR2,0; set $LR2,0;
set $LR3,0; set $LR3,0;
set $LR4,0; set $LR4,0;
set $LR5,0; set $LR5,0;
set $LR6,0; set $LR6,0;
GMInput1: GMInput1:
Input $LR1; Input $LR1;
if ($LR1 < 1 || $LR1 > 40) goto GMInput1; if ($LR1 < 1 || $LR1 > 40) goto GMInput1;
mes $LR1; mes $LR1;
GMInput2: GMInput2:
Input $LR2; Input $LR2;
if ($LR2 < 1 || $LR2 > 40) goto GMInput2; if ($LR2 < 1 || $LR2 > 40) goto GMInput2;
if ($LR2 == $LR1) goto GMInput2; if ($LR2 == $LR1) goto GMInput2;
mes $LR2; mes $LR2;
GMInput3: GMInput3:
Input $LR3; Input $LR3;
if ($LR3 < 1 || $LR3 > 40) goto GMInput3; if ($LR3 < 1 || $LR3 > 40) goto GMInput3;
if ($LR3 == $LR1) goto GMInput3; if ($LR3 == $LR1) goto GMInput3;
if ($LR3 == $LR2) goto GMInput3; if ($LR3 == $LR2) goto GMInput3;
mes $LR3; mes $LR3;
GMInput4: GMInput4:
Input $LR4; Input $LR4;
if ($LR4 < 1 || $LR4 > 40) goto GMInput4; if ($LR4 < 1 || $LR4 > 40) goto GMInput4;
if ($LR4 == $LR1) goto GMInput4; if ($LR4 == $LR1) goto GMInput4;
if ($LR4 == $LR2) goto GMInput4; if ($LR4 == $LR2) goto GMInput4;
if ($LR4 == $LR3) goto GMInput4; if ($LR4 == $LR3) goto GMInput4;
mes $LR4; mes $LR4;
GMInput5: GMInput5:
Input $LR5; Input $LR5;
if ($LR5 < 1 || $LR5 > 40) goto GMInput5; if ($LR5 < 1 || $LR5 > 40) goto GMInput5;
if ($LR5 == $LR1) goto GMInput5; if ($LR5 == $LR1) goto GMInput5;
if ($LR5 == $LR2) goto GMInput5; if ($LR5 == $LR2) goto GMInput5;
if ($LR5 == $LR3) goto GMInput5; if ($LR5 == $LR3) goto GMInput5;
if ($LR5 == $LR4) goto GMInput5; if ($LR5 == $LR4) goto GMInput5;
mes $LR5; mes $LR5;
GMInput6: GMInput6:
Input $LR6; Input $LR6;
if ($LR6 < 1 || $LR6 > 40) goto GMInput6; if ($LR6 < 1 || $LR6 > 40) goto GMInput6;
if ($LR6 == $LR1) goto GMInput6; if ($LR6 == $LR1) goto GMInput6;
if ($LR6 == $LR2) goto GMInput6; if ($LR6 == $LR2) goto GMInput6;
if ($LR6 == $LR3) goto GMInput6; if ($LR6 == $LR3) goto GMInput6;
if ($LR6 == $LR4) goto GMInput6; if ($LR6 == $LR4) goto GMInput6;
if ($LR6 == $LR5) goto GMInput6; if ($LR6 == $LR5) goto GMInput6;
mes $LR6; mes $LR6;
next; next;
mes "[Lottery]"; mes "[Lottery]";
mes "Lottery rigged for next draw."; mes "Lottery rigged for next draw.";
set $L_Rigged,1; set $L_Rigged,1;
close; close;
} }

View File

@ -1,39 +1,39 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Market Place //= Market Place
//===== By: ================================================== //===== By: ==================================================
//= Lupus //= Lupus
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.1 //= 1.1
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= This script should move vending crowds from Prontera //= This script should move vending crowds from Prontera
//= streets to a suitable market place. Save your traffic 8) //= streets to a suitable market place. Save your traffic 8)
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.1 Optimized it, Removed labels. [Spre] //= 1.1 Optimized it, Removed labels. [Spre]
//============================================================ //============================================================
prontera,144,174,3 script Market Place 722,{ prontera,144,174,3 script Market Place 722,{
mes"[Market Place]"; mes"[Market Place]";
mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000."; mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000.";
next; next;
if (select("Yes Please:No") == 2) { if (select("Yes Please:No") == 2) {
close; close;
} }
// I didn't see the need to check and show venders.... Since it didnt even work // I didn't see the need to check and show venders.... Since it didnt even work
warp "gon_test",27+rand(5),98; warp "gon_test",27+rand(5),98;
end; end;
} }
gon_test,73,103,0 script MarketExit 45,1,2,{ gon_test,73,103,0 script MarketExit 45,1,2,{
warp "prontera",155,177-rand(10); warp "prontera",155,177-rand(10);
end; end;
} }
//disable vending in Prontera //disable vending in Prontera
prontera mapflag novending prontera mapflag novending
prt_in mapflag novending prt_in mapflag novending
//Market Place settings //Market Place settings
gon_test mapflag noteleport gon_test mapflag noteleport
gon_test mapflag nomemo gon_test mapflag nomemo
gon_test mapflag nobranch gon_test mapflag nobranch

File diff suppressed because it is too large Load Diff

View File

@ -1,238 +1,238 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Morroc Raceway //= Morroc Raceway
//===== By: ================================================== //===== By: ==================================================
//= acky //= acky
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.3 //= 1.3
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Lets players race around Morroc (pvp_y_1-5) //= Lets players race around Morroc (pvp_y_1-5)
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= If there are more than 3 players, at least 3 people //= If there are more than 3 players, at least 3 people
//= must finish before a new race can be started. //= must finish before a new race can be started.
//= //=
//= If there are less than 3 players, at least 1 person //= If there are less than 3 players, at least 1 person
//= must finish before a new race can be started. //= must finish before a new race can be started.
//= //=
//= Removed permanent global variables //= Removed permanent global variables
//= 1.2 Removed Duplicates [Silent] //= 1.2 Removed Duplicates [Silent]
//= 1.3 Replaced effect numerics with constants. [Samuray22] //= 1.3 Replaced effect numerics with constants. [Samuray22]
//============================================================ //============================================================
//Warps you into race way //Warps you into race way
morocc,166,105,6 script Race Girl#01 116,{ morocc,166,105,6 script Race Girl#01 116,{
mes "[Race Girl]"; mes "[Race Girl]";
mes "Would you like to visit ^0000FFMorroc Raceway^000000?"; mes "Would you like to visit ^0000FFMorroc Raceway^000000?";
next; next;
menu "Yes",L_Warp,"No",-; menu "Yes",L_Warp,"No",-;
mes "[Race Girl]"; mes "[Race Girl]";
mes "Alright, talk to me again when you want to go."; mes "Alright, talk to me again when you want to go.";
close; close;
L_Warp: L_Warp:
warp "pvp_y_1-5",165,256; warp "pvp_y_1-5",165,256;
close; close;
} }
//Warps you out of raceway //Warps you out of raceway
pvp_y_1-5,169,265,5 script Race Girl#02 116,{ pvp_y_1-5,169,265,5 script Race Girl#02 116,{
mes "[Race Girl]"; mes "[Race Girl]";
mes "Welcome to Morroc Raceway!"; mes "Welcome to Morroc Raceway!";
next; next;
menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel; menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel;
mes "[Race Girl]"; mes "[Race Girl]";
mes "Someone must click on the Starter NPC to start the race."; mes "Someone must click on the Starter NPC to start the race.";
next; next;
mes "[Race Girl]"; mes "[Race Girl]";
mes "Once the race is started, run around Morroc anti-clockwise."; mes "Once the race is started, run around Morroc anti-clockwise.";
next; next;
mes "[Race Girl]"; mes "[Race Girl]";
mes "You must reach all the checkpoints - No cheating!"; mes "You must reach all the checkpoints - No cheating!";
close; close;
L_Warp: L_Warp:
warp "morocc",165,101; warp "morocc",165,101;
L_Cancel: L_Cancel:
mes "[Race Girl]"; mes "[Race Girl]";
mes "Come again soon!"; mes "Come again soon!";
close; close;
} }
//Counts down and starts race //Counts down and starts race
pvp_y_1-5,145,269,5 script Starter 733,{ pvp_y_1-5,145,269,5 script Starter 733,{
if ($@race != 0) goto L_Started; if ($@race != 0) goto L_Started;
if ($@counting != 0) goto L_Started; if ($@counting != 0) goto L_Started;
if ($@racecount == 1) goto L_Started; if ($@racecount == 1) goto L_Started;
L_Menu: L_Menu:
mes "[Race Starter]"; mes "[Race Starter]";
mes "Please stay on the Eastern side of me."; mes "Please stay on the Eastern side of me.";
menu "Start Race",L_Count,"Cancel",-; menu "Start Race",L_Count,"Cancel",-;
close; close;
L_Count: L_Count:
set $@counting,1; set $@counting,1;
mes "Counting down..."; mes "Counting down...";
addtimer 1000, "Starter::OnCount1000"; addtimer 1000, "Starter::OnCount1000";
addtimer 2000, "Starter::OnCount2000"; addtimer 2000, "Starter::OnCount2000";
addtimer 3000, "Starter::OnCount3000"; addtimer 3000, "Starter::OnCount3000";
addtimer 4000, "Starter::OnCount4000"; addtimer 4000, "Starter::OnCount4000";
announce strcharinfo(0) + "Started a countdown",1; announce strcharinfo(0) + "Started a countdown",1;
announce "Get ready to race!",1; announce "Get ready to race!",1;
close; close;
OnCount1000: OnCount1000:
announce "[3]",1; announce "[3]",1;
end; end;
OnCount2000: OnCount2000:
announce "[2]",1; announce "[2]",1;
end; end;
OnCount3000: OnCount3000:
announce "[1]",1; announce "[1]",1;
end; end;
OnCount4000: OnCount4000:
emotion 27; emotion 27;
specialeffect EF_CHIMTO; specialeffect EF_CHIMTO;
announce "[GO!]",1; announce "[GO!]",1;
set $@race,1; set $@race,1;
set $@position,0; set $@position,0;
set $@counting,0; set $@counting,0;
set $@raceid,rand(100000,999999); set $@raceid,rand(100000,999999);
end; end;
L_Started: L_Started:
if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu; if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu;
if ($@position > 2) goto L_Menu; if ($@position > 2) goto L_Menu;
mes "[Starter]"; mes "[Starter]";
mes "Race in progress"; mes "Race in progress";
close; close;
OnInit: OnInit:
set $@race,0; set $@race,0;
set $@position,0; set $@position,0;
set $@racecount,0; set $@racecount,0;
end; end;
} }
//Checkpoint 1 //Checkpoint 1
pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{ pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{
end; end;
OnTouch: OnTouch:
if (@raceid != $@raceid) goto L_Started; if (@raceid != $@raceid) goto L_Started;
if (@race == 6) goto L_Finished; if (@race == 6) goto L_Finished;
if ($@race == 1) goto L_Started; if ($@race == 1) goto L_Started;
mes "The race has not started, please move back."; mes "The race has not started, please move back.";
close; close;
L_Started: L_Started:
set @race,1; set @race,1;
set @raceid,$@raceid; set @raceid,$@raceid;
end; end;
L_Finished: L_Finished:
mes "You have already completed the race."; mes "You have already completed the race.";
close; close;
} }
//Checkpoint 2 //Checkpoint 2
pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{ pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{
end; end;
OnTouch: OnTouch:
if (@race != 1) goto L_Miss; if (@race != 1) goto L_Miss;
set @race,2; set @race,2;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1; announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1;
end; end;
L_Miss: L_Miss:
mes "You have missed a Checkpoint. Please go back."; mes "You have missed a Checkpoint. Please go back.";
close; close;
} }
//Checkpoint 3 //Checkpoint 3
pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{ pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{
end; end;
OnTouch: OnTouch:
if (@race != 2) goto L_Miss; if (@race != 2) goto L_Miss;
set @race,3; set @race,3;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1; announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1;
end; end;
L_Miss: L_Miss:
mes "You have missed a Checkpoint. Please go back."; mes "You have missed a Checkpoint. Please go back.";
close; close;
} }
//Checkpoint 3 //Checkpoint 3
pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{ pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{
end; end;
OnTouch: OnTouch:
if (@race != 3) goto L_Miss; if (@race != 3) goto L_Miss;
set @race,4; set @race,4;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1; announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1;
end; end;
L_Miss: L_Miss:
mes "You have missed a Checkpoint. Please go back."; mes "You have missed a Checkpoint. Please go back.";
close; close;
} }
//Checkpoint 4 //Checkpoint 4
pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{ pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{
end; end;
OnTouch: OnTouch:
if (@race != 4) goto L_Miss; if (@race != 4) goto L_Miss;
set @race,5; set @race,5;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1; announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1;
end; end;
L_Miss: L_Miss:
mes "You have missed a Checkpoint. Please go back."; mes "You have missed a Checkpoint. Please go back.";
close; close;
} }
//Finish Line //Finish Line
pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{ pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{
end; end;
OnTouch: OnTouch:
if (@raceid != $@raceid) goto L_WrongRace; if (@raceid != $@raceid) goto L_WrongRace;
if (@race != 5) goto L_Miss; if (@race != 5) goto L_Miss;
set @race,6; set @race,6;
set $@position,$@position+1; set $@position,$@position+1;
announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1; announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1;
end; end;
L_Miss: L_Miss:
mes "You have missed a Checkpoint. Please go back."; mes "You have missed a Checkpoint. Please go back.";
close; close;
L_WrongRace: L_WrongRace:
mes "You are not in this race."; mes "You are not in this race.";
close; close;
} }
//Check Point Marker Flags //Check Point Marker Flags
pvp_y_1-5,144,267,4 script Check Point 1#01 722,{ pvp_y_1-5,144,267,4 script Check Point 1#01 722,{
end; end;
} }
pvp_y_1-5,144,257,4 script Check Point 1#02 722,{ pvp_y_1-5,144,257,4 script Check Point 1#02 722,{
end; end;
} }
pvp_y_1-5,70,252,3 script Check Point 2#01 722,{ pvp_y_1-5,70,252,3 script Check Point 2#01 722,{
end; end;
} }
pvp_y_1-5,77,243,3 script Check Point 2#02 722,{ pvp_y_1-5,77,243,3 script Check Point 2#02 722,{
end; end;
} }
pvp_y_1-5,81,48,1 script Check Point 3#01 722,{ pvp_y_1-5,81,48,1 script Check Point 3#01 722,{
end; end;
} }
pvp_y_1-5,72,40,1 script Check Point 3#02 722,{ pvp_y_1-5,72,40,1 script Check Point 3#02 722,{
end; end;
} }
pvp_y_1-5,244,65,7 script Check Point 4#01 722,{ pvp_y_1-5,244,65,7 script Check Point 4#01 722,{
end; end;
} }
pvp_y_1-5,252,57,7 script Check Point 4#02 722,{ pvp_y_1-5,252,57,7 script Check Point 4#02 722,{
end; end;
} }
pvp_y_1-5,259,260,5 script Check Point 5#01 722,{ pvp_y_1-5,259,260,5 script Check Point 5#01 722,{
end; end;
} }
pvp_y_1-5,251,252,5 script Check Point 5#02 722,{ pvp_y_1-5,251,252,5 script Check Point 5#02 722,{
end; end;
} }
pvp_y_1-5,174,249,4 script Finish Line#01 722,{ pvp_y_1-5,174,249,4 script Finish Line#01 722,{
end; end;
} }
pvp_y_1-5,174,238,4 script Finish Line#02 722,{ pvp_y_1-5,174,238,4 script Finish Line#02 722,{
end; end;
} }

View File

@ -1,322 +1,322 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= MVP Arena //= MVP Arena
//===== By: ================================================== //===== By: ==================================================
//= Darkchild //= Darkchild
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.4 //= 1.4
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Rooms containing 16 different MVPs //= Rooms containing 16 different MVPs
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.0 first version of script //= 1.0 first version of script
//= 1.1 Optimised The MVP arena [massdriller] //= 1.1 Optimised The MVP arena [massdriller]
//= 1.2 - NPC in prontera [Silent] //= 1.2 - NPC in prontera [Silent]
//= 1.3 - Removed Duplicates //= 1.3 - Removed Duplicates
//= 1.4 - Optimized, text edited [Euphy] //= 1.4 - Optimized, text edited [Euphy]
//============================================================ //============================================================
// ==== Entrance ==== // ==== Entrance ====
prontera,154,197,3 script MVP Warper 768,{ prontera,154,197,3 script MVP Warper 768,{
mes "[ ^0065DFMVP Warper^000000 ]"; mes "[ ^0065DFMVP Warper^000000 ]";
mes "Would you like to enter"; mes "Would you like to enter";
mes "the MVP Arena?"; mes "the MVP Arena?";
if (select("Yes!","No thanks.") == 2) close; if (select("Yes!","No thanks.") == 2) close;
warp "quiz_00",50,24; warp "quiz_00",50,24;
close; close;
} }
// ==== Information NPC ==== // ==== Information NPC ====
quiz_00,49,31,4 script MVP Arena Guide 778,{ quiz_00,49,31,4 script MVP Arena Guide 778,{
mes "[ ^0065DFMVP Arena Guide^000000 ]"; 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."; 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; next;
switch(select("Information","Heal me!","Return to Prontera","Cancel")) { switch(select("Information","Heal me!","Return to Prontera","Cancel")) {
case 1: case 1:
mes "[ ^0065DFMVP Arena Guide^000000 ]"; mes "[ ^0065DFMVP Arena Guide^000000 ]";
mes "There are four Keepers, and each can spawn four different MVPs."; mes "There are four Keepers, and each can spawn four different MVPs.";
mes "There are eight rooms per Keeper, and sixteen MVPs in total."; mes "There are eight rooms per Keeper, and sixteen MVPs in total.";
close; close;
case 2: case 2:
specialeffect2 313; specialeffect2 313;
percentheal 100,100; percentheal 100,100;
close; close;
case 3: case 3:
warp "prontera",156,179; warp "prontera",156,179;
close; close;
case 4: case 4:
close; } close; }
} }
// ==== Keepers ==== // ==== Keepers ====
function script Keeper { function script Keeper {
mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]";
mes "Which arena would you"; mes "Which arena would you";
mes "like to enter?"; mes "like to enter?";
set .@menu$,""; set .@menu$,"";
for(set .@i,1; .@i<9; set .@i,.@i+1) for(set .@i,1; .@i<9; set .@i,.@i+1)
set .@menu$, .@menu$+"Arena "+.@i+" ["+getmapusers("pvp_n_"+.@i+"-"+getarg(0))+"/20]:"; set .@menu$, .@menu$+"Arena "+.@i+" ["+getmapusers("pvp_n_"+.@i+"-"+getarg(0))+"/20]:";
set .@i, select(.@menu$); set .@i, select(.@menu$);
if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) { if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) {
mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]";
mes "Sorry, this arena is full!"; mes "Sorry, this arena is full!";
close; } close; }
warp "pvp_n_"+.@i+"-"+getarg(0),102,102; warp "pvp_n_"+.@i+"-"+getarg(0),102,102;
close; close;
} }
quiz_00,56,31,4 script Alpha MVP 770,{ quiz_00,56,31,4 script Alpha MVP 770,{
callfunc "Keeper",2; } callfunc "Keeper",2; }
quiz_00,58,31,4 script Beta MVP 773,{ quiz_00,58,31,4 script Beta MVP 773,{
callfunc "Keeper",3; } callfunc "Keeper",3; }
quiz_00,60,31,4 script Theta MVP 774,{ quiz_00,60,31,4 script Theta MVP 774,{
callfunc "Keeper",4; } callfunc "Keeper",4; }
quiz_00,62,31,4 script Epsilon MVP 776,{ quiz_00,62,31,4 script Epsilon MVP 776,{
callfunc "Keeper",5; } callfunc "Keeper",5; }
// ==== Protectors ==== // ==== Protectors ====
function script Protector { function script Protector {
switch(select(""+((getarg(0)=="")?"":"Harder Monsters")+":Heal:Exit")) { switch(select(""+((getarg(0)=="")?"":"Harder Monsters")+":Heal:Exit")) {
case 1: case 1:
warp getarg(0),102,102; warp getarg(0),102,102;
close; close;
case 2: case 2:
specialeffect2 313; specialeffect2 313;
percentheal 100,100; percentheal 100,100;
close; close;
case 3: case 3:
warp "prontera",156,179; warp "prontera",156,179;
close; } close; }
} }
pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{ pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{
callfunc "Protector","pvp_n_2-2"; } callfunc "Protector","pvp_n_2-2"; }
pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{ pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{
callfunc "Protector","pvp_n_3-2"; } callfunc "Protector","pvp_n_3-2"; }
pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{ pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{
callfunc "Protector","pvp_n_4-2"; } callfunc "Protector","pvp_n_4-2"; }
pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{ pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{
callfunc "Protector","pvp_n_5-2"; } callfunc "Protector","pvp_n_5-2"; }
pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{ pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{
callfunc "Protector","pvp_n_6-2"; } callfunc "Protector","pvp_n_6-2"; }
pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{ pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{
callfunc "Protector","pvp_n_7-2"; } callfunc "Protector","pvp_n_7-2"; }
pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{ pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{
callfunc "Protector","pvp_n_8-2"; } callfunc "Protector","pvp_n_8-2"; }
pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{ pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{
callfunc "Protector",""; } callfunc "Protector",""; }
pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{ pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{
callfunc "Protector","pvp_n_2-3"; } callfunc "Protector","pvp_n_2-3"; }
pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{ pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{
callfunc "Protector","pvp_n_3-3"; } callfunc "Protector","pvp_n_3-3"; }
pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{ pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{
callfunc "Protector","pvp_n_4-3"; } callfunc "Protector","pvp_n_4-3"; }
pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{ pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{
callfunc "Protector","pvp_n_5-3"; } callfunc "Protector","pvp_n_5-3"; }
pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{ pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{
callfunc "Protector","pvp_n_6-3"; } callfunc "Protector","pvp_n_6-3"; }
pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{ pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{
callfunc "Protector","pvp_n_7-3"; } callfunc "Protector","pvp_n_7-3"; }
pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{ pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{
callfunc "Protector","pvp_n_8-3"; } callfunc "Protector","pvp_n_8-3"; }
pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{ pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{
callfunc "Protector",""; } callfunc "Protector",""; }
pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{ pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{
callfunc "Protector","pvp_n_2-4"; } callfunc "Protector","pvp_n_2-4"; }
pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{ pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{
callfunc "Protector","pvp_n_3-4"; } callfunc "Protector","pvp_n_3-4"; }
pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{ pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{
callfunc "Protector","pvp_n_4-4"; } callfunc "Protector","pvp_n_4-4"; }
pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{ pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{
callfunc "Protector","pvp_n_5-4"; } callfunc "Protector","pvp_n_5-4"; }
pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{ pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{
callfunc "Protector","pvp_n_6-4"; } callfunc "Protector","pvp_n_6-4"; }
pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{ pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{
callfunc "Protector","pvp_n_7-4"; } callfunc "Protector","pvp_n_7-4"; }
pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{ pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{
callfunc "Protector","pvp_n_8-4"; } callfunc "Protector","pvp_n_8-4"; }
pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{ pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{
callfunc "Protector",""; } callfunc "Protector",""; }
pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{ pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{
callfunc "Protector","pvp_n_2-5"; } callfunc "Protector","pvp_n_2-5"; }
pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{ pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{
callfunc "Protector","pvp_n_3-5"; } callfunc "Protector","pvp_n_3-5"; }
pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{ pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{
callfunc "Protector","pvp_n_4-5"; } callfunc "Protector","pvp_n_4-5"; }
pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{ pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{
callfunc "Protector","pvp_n_5-5"; } callfunc "Protector","pvp_n_5-5"; }
pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{ pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{
callfunc "Protector","pvp_n_6-5"; } callfunc "Protector","pvp_n_6-5"; }
pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{ pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{
callfunc "Protector","pvp_n_7-5"; } callfunc "Protector","pvp_n_7-5"; }
pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{ pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{
callfunc "Protector","pvp_n_8-5"; } callfunc "Protector","pvp_n_8-5"; }
pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{ pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{
callfunc "Protector",""; } callfunc "Protector",""; }
// ==== Alpha ==== // ==== Alpha ====
pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000 pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000
pvp_n_1-2,0,0,0,0 monster Mistress 1059,1,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 Mistress 1059,3,60000,66000
pvp_n_2-2,0,0,0,0 monster Moonlight 1150,1,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 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 Moonlight 1150,2,60000,66000
pvp_n_3-2,0,0,0,0 monster Maya 1147,1,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 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 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 Moonlight 1150,1,60000,66000
pvp_n_4-2,0,0,0,0 monster Maya 1147,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 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 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 Moonlight 1150,1,60000,66000
pvp_n_5-2,0,0,0,0 monster Maya 1147,2,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 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 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 Moonlight 1150,1,60000,66000
pvp_n_6-2,0,0,0,0 monster Maya 1147,2,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 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 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 Moonlight 1150,2,60000,66000
pvp_n_7-2,0,0,0,0 monster Maya 1147,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 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 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 Moonlight 1150,3,60000,66000
pvp_n_8-2,0,0,0,0 monster Maya 1147,3,60000,66000 pvp_n_8-2,0,0,0,0 monster Maya 1147,3,60000,66000
// ==== Beta ==== // ==== Beta ====
pvp_n_1-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000 pvp_n_1-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000
pvp_n_1-3,0,0,0,0 monster Turtle General 1312,1,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 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 Turtle General 1312,1,60000,66000
pvp_n_2-3,0,0,0,0 monster Orc Hero 1087,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 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 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 Hero 1087,1,60000,66000
pvp_n_3-3,0,0,0,0 monster Orc Lord 1190,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 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 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 Hero 1087,1,60000,66000
pvp_n_4-3,0,0,0,0 monster Orc Lord 1190,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 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 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 Hero 1087,2,60000,66000
pvp_n_5-3,0,0,0,0 monster Orc Lord 1190,1,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 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 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 Hero 1087,2,60000,66000
pvp_n_6-3,0,0,0,0 monster Orc Lord 1190,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 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 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 Hero 1087,2,60000,66000
pvp_n_7-3,0,0,0,0 monster Orc Lord 1190,3,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 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 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 Hero 1087,3,60000,66000
pvp_n_8-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000 pvp_n_8-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000
// ==== Theta ==== // ==== Theta ====
pvp_n_1-4,0,0,0,0 monster Drake 1112,3,60000,66000 pvp_n_1-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_1-4,0,0,0,0 monster Osiris 1038,1,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 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 Osiris 1038,1,60000,66000
pvp_n_2-4,0,0,0,0 monster Doppelganger 1046,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 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 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 Doppelganger 1046,1,60000,66000
pvp_n_3-4,0,0,0,0 monster Lord of Death 1373,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 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 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 Doppelganger 1046,2,60000,66000
pvp_n_4-4,0,0,0,0 monster Lord of Death 1373,1,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 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 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 Doppelganger 1046,2,60000,66000
pvp_n_5-4,0,0,0,0 monster Lord of Death 1373,1,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 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 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 Doppelganger 1046,2,60000,66000
pvp_n_6-4,0,0,0,0 monster Lord of Death 1373,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 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 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 Doppelganger 1046,3,60000,66000
pvp_n_7-4,0,0,0,0 monster Lord of Death 1373,2,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 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 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 Doppelganger 1046,3,60000,66000
pvp_n_8-4,0,0,0,0 monster Lord of Death 1373,3,60000,66000 pvp_n_8-4,0,0,0,0 monster Lord of Death 1373,3,60000,66000
// ==== Epsilon ==== // ==== Epsilon ====
pvp_n_1-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000 pvp_n_1-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000
pvp_n_1-5,0,0,0,0 monster Pharoh 1157,1,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 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 Pharoh 1157,1,60000,66000
pvp_n_2-5,0,0,0,0 monster Dark Lord 1272,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 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 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 Dark Lord 1272,1,60000,66000
pvp_n_3-5,0,0,0,0 monster Baphomet 1039,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 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 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 Dark Lord 1272,1,60000,66000
pvp_n_4-5,0,0,0,0 monster Baphomet 1039,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 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 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 Dark Lord 1272,2,60000,66000
pvp_n_5-5,0,0,0,0 monster Baphomet 1039,1,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 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 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 Dark Lord 1272,2,60000,66000
pvp_n_6-5,0,0,0,0 monster Baphomet 1039,1,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 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 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 Dark Lord 1272,2,60000,66000
pvp_n_7-5,0,0,0,0 monster Baphomet 1039,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 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 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 Dark Lord 1272,2,60000,66000
pvp_n_8-5,0,0,0,0 monster Baphomet 1039,2,60000,66000 pvp_n_8-5,0,0,0,0 monster Baphomet 1039,2,60000,66000
// ==== Mapflags ==== // ==== Mapflags ====
pvp_n_1-1 mapflag pvp_nightmaredrop off pvp_n_1-1 mapflag pvp_nightmaredrop off
pvp_n_2-1 mapflag pvp_nightmaredrop off pvp_n_2-1 mapflag pvp_nightmaredrop off
pvp_n_3-1 mapflag pvp_nightmaredrop off pvp_n_3-1 mapflag pvp_nightmaredrop off
pvp_n_4-1 mapflag pvp_nightmaredrop off pvp_n_4-1 mapflag pvp_nightmaredrop off
pvp_n_5-1 mapflag pvp_nightmaredrop off pvp_n_5-1 mapflag pvp_nightmaredrop off
pvp_n_6-1 mapflag pvp_nightmaredrop off pvp_n_6-1 mapflag pvp_nightmaredrop off
pvp_n_7-1 mapflag pvp_nightmaredrop off pvp_n_7-1 mapflag pvp_nightmaredrop off
pvp_n_8-1 mapflag pvp_nightmaredrop off pvp_n_8-1 mapflag pvp_nightmaredrop off
pvp_n_1-2 mapflag pvp_nightmaredrop off pvp_n_1-2 mapflag pvp_nightmaredrop off
pvp_n_2-2 mapflag pvp_nightmaredrop off pvp_n_2-2 mapflag pvp_nightmaredrop off
pvp_n_3-2 mapflag pvp_nightmaredrop off pvp_n_3-2 mapflag pvp_nightmaredrop off
pvp_n_4-2 mapflag pvp_nightmaredrop off pvp_n_4-2 mapflag pvp_nightmaredrop off
pvp_n_5-2 mapflag pvp_nightmaredrop off pvp_n_5-2 mapflag pvp_nightmaredrop off
pvp_n_6-2 mapflag pvp_nightmaredrop off pvp_n_6-2 mapflag pvp_nightmaredrop off
pvp_n_7-2 mapflag pvp_nightmaredrop off pvp_n_7-2 mapflag pvp_nightmaredrop off
pvp_n_8-2 mapflag pvp_nightmaredrop off pvp_n_8-2 mapflag pvp_nightmaredrop off
pvp_n_1-3 mapflag pvp_nightmaredrop off pvp_n_1-3 mapflag pvp_nightmaredrop off
pvp_n_2-3 mapflag pvp_nightmaredrop off pvp_n_2-3 mapflag pvp_nightmaredrop off
pvp_n_3-3 mapflag pvp_nightmaredrop off pvp_n_3-3 mapflag pvp_nightmaredrop off
pvp_n_4-3 mapflag pvp_nightmaredrop off pvp_n_4-3 mapflag pvp_nightmaredrop off
pvp_n_5-3 mapflag pvp_nightmaredrop off pvp_n_5-3 mapflag pvp_nightmaredrop off
pvp_n_6-3 mapflag pvp_nightmaredrop off pvp_n_6-3 mapflag pvp_nightmaredrop off
pvp_n_7-3 mapflag pvp_nightmaredrop off pvp_n_7-3 mapflag pvp_nightmaredrop off
pvp_n_8-3 mapflag pvp_nightmaredrop off pvp_n_8-3 mapflag pvp_nightmaredrop off
pvp_n_1-4 mapflag pvp_nightmaredrop off pvp_n_1-4 mapflag pvp_nightmaredrop off
pvp_n_2-4 mapflag pvp_nightmaredrop off pvp_n_2-4 mapflag pvp_nightmaredrop off
pvp_n_3-4 mapflag pvp_nightmaredrop off pvp_n_3-4 mapflag pvp_nightmaredrop off
pvp_n_4-4 mapflag pvp_nightmaredrop off pvp_n_4-4 mapflag pvp_nightmaredrop off
pvp_n_5-4 mapflag pvp_nightmaredrop off pvp_n_5-4 mapflag pvp_nightmaredrop off
pvp_n_6-4 mapflag pvp_nightmaredrop off pvp_n_6-4 mapflag pvp_nightmaredrop off
pvp_n_7-4 mapflag pvp_nightmaredrop off pvp_n_7-4 mapflag pvp_nightmaredrop off
pvp_n_8-4 mapflag pvp_nightmaredrop off pvp_n_8-4 mapflag pvp_nightmaredrop off
pvp_n_1-5 mapflag pvp_nightmaredrop off pvp_n_1-5 mapflag pvp_nightmaredrop off
pvp_n_2-5 mapflag pvp_nightmaredrop off pvp_n_2-5 mapflag pvp_nightmaredrop off
pvp_n_3-5 mapflag pvp_nightmaredrop off pvp_n_3-5 mapflag pvp_nightmaredrop off
pvp_n_4-5 mapflag pvp_nightmaredrop off pvp_n_4-5 mapflag pvp_nightmaredrop off
pvp_n_5-5 mapflag pvp_nightmaredrop off pvp_n_5-5 mapflag pvp_nightmaredrop off
pvp_n_6-5 mapflag pvp_nightmaredrop off pvp_n_6-5 mapflag pvp_nightmaredrop off
pvp_n_7-5 mapflag pvp_nightmaredrop off pvp_n_7-5 mapflag pvp_nightmaredrop off
pvp_n_8-5 mapflag pvp_nightmaredrop off pvp_n_8-5 mapflag pvp_nightmaredrop off

View File

@ -1,193 +1,193 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Penal Servitude //= Penal Servitude
//===== By: ================================================== //===== By: ==================================================
//= Lupus //= Lupus
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.2 //= 1.2
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= A simple Penal Servitude Script. //= A simple Penal Servitude Script.
//= It could cheer up your prisoners a bit. //= It could cheer up your prisoners a bit.
//===== Additional Comments: ================================= //===== Additional Comments: =================================
// This script uses CHEQUES of the 2nd KAFRA_BANK.TXT // This script uses CHEQUES of the 2nd KAFRA_BANK.TXT
// var PRISON - it counts number of your imprisonments. // var PRISON - it counts number of your imprisonments.
// 1.1 English translation // 1.1 English translation
// 1.2 Stricted the conditions a bit // 1.2 Stricted the conditions a bit
//============================================================ //============================================================
sec_pri,36,58,1 script Chief Warder 105,{ sec_pri,36,58,1 script Chief Warder 105,{
mes "[Saddeus]"; mes "[Saddeus]";
emotion 1; emotion 1;
if(sex) { if(sex) {
mes "Mr. Prisoner #"+BaseLevel+JobLevel+","; mes "Mr. Prisoner #"+BaseLevel+JobLevel+",";
} else { } else {
mes "Ms. Prisoner #"+BaseLevel+JobLevel+","; mes "Ms. Prisoner #"+BaseLevel+JobLevel+",";
} }
mes "what's the noise over there?"; mes "what's the noise over there?";
next; next;
menu "Let me free, I'll pay!",-, "Let me to work off my freedom!",M_Q1, "Nothing",M_NO_THANKS; menu "Let me free, I'll pay!",-, "Let me to work off my freedom!",M_Q1, "Nothing",M_NO_THANKS;
M_PAY: M_PAY:
mes "[Saddeus]"; mes "[Saddeus]";
set @MUSTPAY,(PRISON+1)*1000000; set @MUSTPAY,(PRISON+1)*1000000;
if (@MUSTPAY<1000000) set @MUSTPAY,1000000; if (@MUSTPAY<1000000) set @MUSTPAY,1000000;
if (@MUSTPAY>100000000) set @MUSTPAY,100000000; if (@MUSTPAY>100000000) set @MUSTPAY,100000000;
if (PRISON==1) mes "I can't remember you. Is it your 1st time?"; 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..."; 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."; mes "OK, we could release you for ^FF0000"+@MUSTPAY+"z^000000.";
next; next;
menu "I pay cash!",M_PAYCASH,"Do you accept cheques?",M_PAYBANK,"I've changed my mind.",-; menu "I pay cash!",M_PAYCASH,"Do you accept cheques?",M_PAYBANK,"I've changed my mind.",-;
mes "[Saddeus]"; mes "[Saddeus]";
mes "You've got some time to think about..."; mes "You've got some time to think about...";
close; close;
M_PAYCASH: M_PAYCASH:
if (@MUSTPAY>Zeny) goto L_NOCASH; if (@MUSTPAY>Zeny) goto L_NOCASH;
set Zeny,Zeny-@MUSTPAY; set Zeny,Zeny-@MUSTPAY;
mes "[Saddeus]"; mes "[Saddeus]";
mes "OK, sing here and there."; mes "OK, sing here and there.";
goto L_RELEASE; goto L_RELEASE;
L_NOCASH: L_NOCASH:
mes "[Saddeus]"; mes "[Saddeus]";
mes "What's this? It's not enough!"; mes "What's this? It's not enough!";
close; close;
M_PAYBANK: M_PAYBANK:
if (@MUSTPAY>#kafrabank) goto L_NOBANK; if (@MUSTPAY>#kafrabank) goto L_NOBANK;
set #kafrabank,#kafrabank-@MUSTPAY; set #kafrabank,#kafrabank-@MUSTPAY;
mes "[Saddeus]"; mes "[Saddeus]";
mes "OK, sign your cheque. And put down your name in my book."; mes "OK, sign your cheque. And put down your name in my book.";
goto L_RELEASE; goto L_RELEASE;
L_NOBANK: L_NOBANK:
mes "[Saddeus]"; mes "[Saddeus]";
if (#kafrabank==0) mes "Your case says nothing about your bank accounts."; 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."; 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!"; mes "Stop your silly games now!";
close; close;
L_RELEASE: L_RELEASE:
set PRISON,PRISON+1; set PRISON,PRISON+1;
next; next;
mes "[Saddeus]"; mes "[Saddeus]";
mes "You are free now!"; mes "You are free now!";
next; next;
savepoint "izlude",105,112; savepoint "izlude",105,112;
warp "izlude",105,112; warp "izlude",105,112;
close; close;
M_Q1: M_Q1:
mes "[Saddeus]"; mes "[Saddeus]";
mes "Our stocks are short of toadstools. Remember your morning's skilly? What about some work at our sponsored mushroom farm?"; mes "Our stocks are short of toadstools. Remember your morning's skilly? What about some work at our sponsored mushroom farm?";
next; next;
menu "OK, I'll work off!",-, "I love this prison!",M_NO_THANKS; menu "OK, I'll work off!",-, "I love this prison!",M_NO_THANKS;
mes "[Saddeus]"; mes "[Saddeus]";
if(checkcart() || checkfalcon() || checkriding()){ if(checkcart() || checkfalcon() || checkriding()){
emotion e_hmm; emotion e_hmm;
mes "I'm sorry, you should release your Cart, PecoPeco or Falcon!"; mes "I'm sorry, you should release your Cart, PecoPeco or Falcon!";
close; close;
} }
mes "Talk to our overseer, Oliver."; mes "Talk to our overseer, Oliver.";
next; next;
nude; nude;
set @rw,rand(1,4); set @rw,rand(1,4);
if (@rw==2) goto L_W2; if (@rw==2) goto L_W2;
if (@rw==3) goto L_W3; if (@rw==3) goto L_W3;
if (@rw==4) goto L_W4; if (@rw==4) goto L_W4;
L_W1: L_W1:
savepoint "sec_in02",179,76; savepoint "sec_in02",179,76;
warp "sec_in02",179,76; warp "sec_in02",179,76;
close; close;
L_W2: L_W2:
savepoint "sec_in02",139,32; savepoint "sec_in02",139,32;
warp "sec_in02",139,32; warp "sec_in02",139,32;
close; close;
L_W3: L_W3:
savepoint "sec_in02",100,28; savepoint "sec_in02",100,28;
warp "sec_in02",100,28; warp "sec_in02",100,28;
close; close;
L_W4: L_W4:
savepoint "sec_in02",107,75; savepoint "sec_in02",107,75;
warp "sec_in02",107,75; warp "sec_in02",107,75;
close; close;
M_NO_THANKS: M_NO_THANKS:
mes "[Saddeus]"; mes "[Saddeus]";
if (rand(2)) mes "Is today X-Mas time, huh?"; if (rand(2)) mes "Is today X-Mas time, huh?";
mes "Now shut up and back off!"; mes "Now shut up and back off!";
if (rand(2)) emotion 23; if (rand(2)) emotion 23;
close; close;
} }
sec_in02,137,57,1 script Overseer 708,{ sec_in02,137,57,1 script Overseer 708,{
mes "[Oliver]"; mes "[Oliver]";
delitem 4002,countitem(4002);//Items: Fabre_Card, delitem 4002,countitem(4002);//Items: Fabre_Card,
delitem 4009,countitem(4009);//Items: Chonchon_Card, delitem 4009,countitem(4009);//Items: Chonchon_Card,
delitem 4022,countitem(4022);//Items: Spore_Card, delitem 4022,countitem(4022);//Items: Spore_Card,
delitem 4048,countitem(4048);//Items: Poison_Spore_Card, delitem 4048,countitem(4048);//Items: Poison_Spore_Card,
if (PRISON_Q <= 0 ) goto L_GET_Q; if (PRISON_Q <= 0 ) goto L_GET_Q;
mes "I want you to gather ^FF0000"+PRISON_Q+" Orange Net Mushroom^000000."; mes "I want you to gather ^FF0000"+PRISON_Q+" Orange Net Mushroom^000000.";
if ( countitem(1069)<PRISON_Q ) close;//Items: Orange_Net_Mushroom, if ( countitem(1069)<PRISON_Q ) close;//Items: Orange_Net_Mushroom,
mes "OK... hand me all the shrooms..."; mes "OK... hand me all the shrooms...";
mes "Let me see... "+countitem(1069)+" of almost eadible ones...";//Items: Orange_Net_Mushroom, mes "Let me see... "+countitem(1069)+" of almost eadible ones...";//Items: Orange_Net_Mushroom,
mes "And "+countitem(1070)+" useless deadly ones.";//Items: Orange_Gooey_Mushroom_, mes "And "+countitem(1070)+" useless deadly ones.";//Items: Orange_Gooey_Mushroom_,
next; next;
mes "[Oliver]"; mes "[Oliver]";
mes "Thank you. You are free!"; mes "Thank you. You are free!";
set PRISON_Q,0; set PRISON_Q,0;
delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom, delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom,
delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_, delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_,
next; next;
savepoint "izlude",105,112; savepoint "izlude",105,112;
warp "izlude",105,112; warp "izlude",105,112;
close; close;
L_GET_Q: L_GET_Q:
set PRISON,PRISON+1; set PRISON,PRISON+1;
if (PRISON > 1) mes "Hmm... You've been here already... Well-well..."; if (PRISON > 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_, 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 1069,countitem(1069);//Items: Orange_Net_Mushroom,
delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_, delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_,
set PRISON_Q, PRISON*3 + BaseLevel/3; set PRISON_Q, PRISON*3 + BaseLevel/3;
set PRISON_Q, PRISON_Q * (readparam(bAspd)/55 + 1); set PRISON_Q, PRISON_Q * (readparam(bAspd)/55 + 1);
set PRISON_Q, PRISON_Q+rand(50,60); 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."; 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(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."; if (rand(10)<4) mes "And you may eat the deadly ones for breakfast.";
close; close;
} }
sec_in02 mapflag nomemo sec_in02 mapflag nomemo
sec_in02 mapflag nosave SavePoint sec_in02 mapflag nosave SavePoint
sec_in02 mapflag noteleport sec_in02 mapflag noteleport
sec_in02 mapflag nobranch sec_in02 mapflag nobranch
sec_in02 mapflag nowarp sec_in02 mapflag nowarp
sec_in02 mapflag nowarpto sec_in02 mapflag nowarpto
sec_in02 mapflag noexp sec_in02 mapflag noexp
sec_in02 mapflag noskill sec_in02 mapflag noskill
//sec_in02 mapflag pvp //sec_in02 mapflag pvp
//sec_in02 mapflag pvp_noparty //sec_in02 mapflag pvp_noparty
//sec_in02 mapflag gvg //sec_in02 mapflag gvg
sec_in02 mapflag pvp_nightmaredrop random,all,300 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 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 Fabre 1184,10,20000,20000
sec_in02,138,55,100,100 monster Chonchon 1183,11,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 Spore 1014,12,20000,20000
sec_in02,138,55,100,100 monster Poison Spore 1077,3,20000,20000 sec_in02,138,55,100,100 monster Poison Spore 1077,3,20000,20000

View File

@ -1,286 +1,286 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Rock Scissors Roulette //= Rock Scissors Roulette
//===== By: ================================================== //===== By: ==================================================
//= acky //= acky
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.2 //= 1.2
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Plays a hybrid Russian Roulette Rock Scissors Paper game. //= Plays a hybrid Russian Roulette Rock Scissors Paper game.
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= Prizes customizable, Added emotions. //= Prizes customizable, Added emotions.
//= 1.2 Fixes by Blackthunder and me [Poki#3] //= 1.2 Fixes by Blackthunder and me [Poki#3]
//============================================================ //============================================================
cmd_in02,182,126,2 script Crazy Boris 85,{ cmd_in02,182,126,2 script Crazy Boris 85,{
mes "Crazy Boris"; mes "Crazy Boris";
set @counter,1; set @counter,1;
mes "Hey you! Up for Rock Scissors Roulette?"; mes "Hey you! Up for Rock Scissors Roulette?";
next; next;
menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE; menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE;
SAME: SAME:
mes "Draw! Again!"; mes "Draw! Again!";
next; next;
goto PLAY; goto PLAY;
WIN: WIN:
mes "Damnit, You Win!"; mes "Damnit, You Win!";
emotion 19; emotion 19;
next; next;
goto OPPPULL; goto OPPPULL;
LOSE: LOSE:
emotion 18; emotion 18;
mes "Boorah! You Lose!"; mes "Boorah! You Lose!";
next; next;
goto YOUPULL; goto YOUPULL;
PLAY: PLAY:
mes "Rock... Paper..."; mes "Rock... Paper...";
set @opp,rand (1,3); set @opp,rand (1,3);
menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER;
ROCK: ROCK:
if (@lastchoice == 1) set @opp,rand (1,3); if (@lastchoice == 1) set @opp,rand (1,3);
if (@opp == 1) emotion 11; if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10; if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12; if (@opp == 3) emotion 12;
set @lastchoice,1; set @lastchoice,1;
if (@opp == 1) goto SAME; if (@opp == 1) goto SAME;
if (@opp == 2) goto WIN; if (@opp == 2) goto WIN;
if (@opp == 3) goto LOSE; if (@opp == 3) goto LOSE;
SCISSORS: SCISSORS:
if (@lastchoice == 2) set @opp,rand (1,2); if (@lastchoice == 2) set @opp,rand (1,2);
if (@opp == 1) emotion 11; if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10; if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12; if (@opp == 3) emotion 12;
set @lastchoice,2; set @lastchoice,2;
if (@opp == 1) goto LOSE; if (@opp == 1) goto LOSE;
if (@opp == 2) goto SAME; if (@opp == 2) goto SAME;
if (@opp == 3) goto WIN; if (@opp == 3) goto WIN;
PAPER: PAPER:
if (@lastchoice == 3) set @opp,rand (2,3); if (@lastchoice == 3) set @opp,rand (2,3);
if (@opp == 1) emotion 11; if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10; if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12; if (@opp == 3) emotion 12;
set @lastchoice,3; set @lastchoice,3;
if (@opp == 1) goto WIN; if (@opp == 1) goto WIN;
if (@opp == 2) goto LOSE; if (@opp == 2) goto LOSE;
if (@opp == 3) goto SAME; if (@opp == 3) goto SAME;
YOUPULL: YOUPULL:
if (@counter == 1) goto ONE; if (@counter == 1) goto ONE;
if (@counter == 2) goto TWO; if (@counter == 2) goto TWO;
if (@counter == 3) goto THREE; if (@counter == 3) goto THREE;
if (@counter == 4) goto FOUR; if (@counter == 4) goto FOUR;
if (@counter == 5) goto FIVE; if (@counter == 5) goto FIVE;
if (@counter == 6) goto SIX; if (@counter == 6) goto SIX;
OPPPULL: OPPPULL:
if (@counter == 1) goto ONEa; if (@counter == 1) goto ONEa;
if (@counter == 2) goto TWOa; if (@counter == 2) goto TWOa;
if (@counter == 3) goto THREEa; if (@counter == 3) goto THREEa;
if (@counter == 4) goto FOURa; if (@counter == 4) goto FOURa;
if (@counter == 5) goto FIVEa; if (@counter == 5) goto FIVEa;
if (@counter == 6) goto SIXa; if (@counter == 6) goto SIXa;
ONE: ONE:
set @counter,2; set @counter,2;
mes "1 of 6"; mes "1 of 6";
set @pull,rand (1,6); set @pull,rand (1,6);
next; next;
if (@pull == 1) goto DIE; if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
TWO: TWO:
set @counter,3; set @counter,3;
mes "2 of 6"; mes "2 of 6";
set @pull,rand (1,5); set @pull,rand (1,5);
next; next;
if (@pull == 1) goto DIE; if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
THREE: THREE:
set @counter,4; set @counter,4;
mes "3 of 6"; mes "3 of 6";
set @pull,rand (1,4); set @pull,rand (1,4);
next; next;
if (@pull == 1) goto DIE; if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
FOUR: FOUR:
set @counter,5; set @counter,5;
mes "4 of 6"; mes "4 of 6";
set @pull,rand (1,3); set @pull,rand (1,3);
next; next;
if (@pull == 1) goto DIE; if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
FIVE: FIVE:
set @counter,6; set @counter,6;
mes "5 of 6"; mes "5 of 6";
set @pull,rand (1,2); set @pull,rand (1,2);
if (@pull == 1) set @pull,rand (1,2); if (@pull == 1) set @pull,rand (1,2);
next; next;
if (@pull == 1) goto DIE; if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
SIX: SIX:
mes "6 of 6"; mes "6 of 6";
mes "Say your prayers"; mes "Say your prayers";
set @pull,1; set @pull,1;
next; next;
if (@pull == 1) goto DIE; if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
ONEa: ONEa:
set @counter,2; set @counter,2;
mes "1 of 6"; mes "1 of 6";
set @pull,rand (1,6); set @pull,rand (1,6);
next; next;
if (@pull == 1) goto KILL; if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
TWOa: TWOa:
set @counter,3; set @counter,3;
mes "2 of 6"; mes "2 of 6";
set @pull,rand (1,5); set @pull,rand (1,5);
next; next;
if (@pull == 1) goto KILL; if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
THREEa: THREEa:
set @counter,4; set @counter,4;
mes "3 of 6"; mes "3 of 6";
set @pull,rand (1,4); set @pull,rand (1,4);
next; next;
if (@pull == 1) goto KILL; if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
FOURa: FOURa:
set @counter,5; set @counter,5;
mes "4 of 6"; mes "4 of 6";
set @pull,rand (1,3); set @pull,rand (1,3);
next; next;
if (@pull == 1) goto KILL; if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
FIVEa: FIVEa:
set @counter,6; set @counter,6;
mes "5 of 6"; mes "5 of 6";
set @pull,rand (1,2); set @pull,rand (1,2);
next; next;
if (@pull == 1) goto KILL; if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
SIXa: SIXa:
mes "6 of 6"; mes "6 of 6";
mes "Say your prayers"; mes "Say your prayers";
set @pull,1; set @pull,1;
next; next;
if (@pull == 1) goto KILL; if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE; if (@pull != 1) goto SAFE;
SAFE: SAFE:
emotion 32; emotion 32;
mes "*^0000FFClick^000000* whew..."; mes "*^0000FFClick^000000* whew...";
goto PLAY; goto PLAY;
DIE: DIE:
specialeffect2 183; specialeffect2 183;
emotion 29; emotion 29;
percentheal -100,-100; percentheal -100,-100;
mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; mes "*^0000FFClick^000000* *^FF0000BANG^000000*";
mes "You're dead!"; mes "You're dead!";
close; close;
KILL: KILL:
specialeffect 183; specialeffect 183;
emotion 23; emotion 23;
mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; mes "*^0000FFClick^000000* *^FF0000BANG^000000*";
mes "OWWW @#$%^!! THAT HURT LIKE HELL!!"; mes "OWWW @#$%^!! THAT HURT LIKE HELL!!";
next; next;
goto PRIZE; goto PRIZE;
RULES: RULES:
mes "Ok here are the 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 "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."; mes "Beat me to win a prize.";
menu "Let me play.",CONT,"No thanks.",LEAVE; menu "Let me play.",CONT,"No thanks.",LEAVE;
CONT: CONT:
mes "Ok here we go..."; mes "Ok here we go...";
next; next;
goto PLAY; goto PLAY;
PRIZE: PRIZE:
mes "Congratulations! You have won..."; mes "Congratulations! You have won...";
set @prize,rand (1,10); set @prize,rand (1,10);
if (@prize == 1) goto P1; if (@prize == 1) goto P1;
if (@prize == 2) goto P2; if (@prize == 2) goto P2;
if (@prize == 3) goto P3; if (@prize == 3) goto P3;
if (@prize == 4) goto P4; if (@prize == 4) goto P4;
if (@prize == 5) goto P5; if (@prize == 5) goto P5;
if (@prize == 6) goto P6; if (@prize == 6) goto P6;
if (@prize == 7) goto P7; if (@prize == 7) goto P7;
if (@prize == 8) goto P8; if (@prize == 8) goto P8;
if (@prize == 9) goto P9; if (@prize == 9) goto P9;
if (@prize == 10) goto P10; if (@prize == 10) goto P10;
P1: P1:
mes "10x Oridicon!"; mes "10x Oridicon!";
getitem 984,10; getitem 984,10;
close; close;
P2: P2:
mes "10x Elunium!"; mes "10x Elunium!";
getitem 985,10; getitem 985,10;
close; close;
P3: P3:
mes "100x Fly Wings!"; mes "100x Fly Wings!";
getitem 601,100; getitem 601,100;
close; close;
P4: P4:
mes "8x Old Blue Box!"; mes "8x Old Blue Box!";
getitem 603,8; getitem 603,8;
close; close;
P5: P5:
mes "4x Old Violet Box!"; mes "4x Old Violet Box!";
getitem 617,4; getitem 617,4;
close; close;
P6: P6:
mes "1x Old Card Album!"; mes "1x Old Card Album!";
getitem 616,1; getitem 616,1;
close; close;
P7: P7:
mes "10x Dead Branch!"; mes "10x Dead Branch!";
getitem 604,10; getitem 604,10;
close; close;
P8: P8:
mes "3x Gold!"; mes "3x Gold!";
getitem 969,3; getitem 969,3;
close; close;
P9: P9:
mes "10x Elunium!"; mes "10x Elunium!";
getitem 985,10; getitem 985,10;
close; close;
P10: P10:
mes "20x Blue Potion!"; mes "20x Blue Potion!";
getitem 505,20; getitem 505,20;
close; close;
LEAVE: LEAVE:
mes "Pansy."; mes "Pansy.";
close; close;
} }

View File

@ -1,199 +1,199 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Shifty Assassin //= Shifty Assassin
//===== By: ================================================== //===== By: ==================================================
//= acky //= acky
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.1.2 //= 1.1.2
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Players buy ninjas to assassinate other players //= Players buy ninjas to assassinate other players
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious] //= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious]
//= 1.1.2 Updated WoE Check. [Paradox924X] //= 1.1.2 Updated WoE Check. [Paradox924X]
//============================================================ //============================================================
morocc,148,86,5 script Shifty Assassin 725,{ morocc,148,86,5 script Shifty Assassin 725,{
set $ninja_price,250000; set $ninja_price,250000;
// STARTS THE MENU // // STARTS THE MENU //
M_Start: M_Start:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "What do you want?"; mes "What do you want?";
next; next;
if (getgmlevel() > 90) goto M_GM; if (getgmlevel() > 90) goto M_GM;
menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit; menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit;
M_GM: M_GM:
menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit; 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 // // GM MENU TO ADD NINJAS //
M_Add: M_Add:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "How many ninjas do you want to make available?"; mes "How many ninjas do you want to make available?";
next; next;
set @add,0; set @add,0;
input @add; input @add;
set $ninja_avail,$ninja_avail+@add; set $ninja_avail,$ninja_avail+@add;
mes @add + " ninjas added."; mes @add + " ninjas added.";
close; close;
// BUY NINJAS // // BUY NINJAS //
M_Buy: M_Buy:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "How many ninjas do you want buy?"; mes "How many ninjas do you want buy?";
mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available."; mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available.";
mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each."; mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each.";
set @buy,0; set @buy,0;
input @buy; input @buy;
next; next;
if ($ninja_avail < 1) goto NoNinjas; if ($ninja_avail < 1) goto NoNinjas;
if ($ninja_avail < @buy) goto NotEnoughNinjas; if ($ninja_avail < @buy) goto NotEnoughNinjas;
set @price,@buy*$ninja_price; set @price,@buy*$ninja_price;
if (zeny < @price ) goto NoZeny; if (zeny < @price ) goto NoZeny;
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "That will cost you ^0000FF" + @price + " zeny^000000."; mes "That will cost you ^0000FF" + @price + " zeny^000000.";
next; next;
menu "Continue",-,"Cancel",M_Exit; menu "Continue",-,"Cancel",M_Exit;
set zeny,zeny-@price; set zeny,zeny-@price;
set #ninjas,#ninjas+@buy; set #ninjas,#ninjas+@buy;
set $ninja_avail,$ninja_avail-@buy; set $ninja_avail,$ninja_avail-@buy;
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "Thank you."; mes "Thank you.";
close; close;
// ASSASSINATE SOMEBODY // // ASSASSINATE SOMEBODY //
M_Kill: M_Kill:
if (agitcheck()) goto M_Busy; if (agitcheck()) goto M_Busy;
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "Enter the name of the target."; mes "Enter the name of the target.";
mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000"; mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000";
next; next;
menu "Continue",-,"Cancel",M_Exit; menu "Continue",-,"Cancel",M_Exit;
set @name$,"0"; set @name$,"0";
input @name$; input @name$;
next; next;
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "Active Ninjas: "+#ninjas; mes "Active Ninjas: "+#ninjas;
mes "Resting Ninjas: "+#ninjasr; mes "Resting Ninjas: "+#ninjasr;
mes "How many do you want to send?"; mes "How many do you want to send?";
set @number,0; set @number,0;
input @number; input @number;
if (@number < 1) goto NoNinjasSent; if (@number < 1) goto NoNinjasSent;
if (@number > #ninjas) goto NotEnoughNinjas1; if (@number > #ninjas) goto NotEnoughNinjas1;
if (@number > 10) goto TooManyNinjas; if (@number > 10) goto TooManyNinjas;
set @chance,rand (1,12); set @chance,rand (1,12);
set #ninjas,#ninjas-@number; set #ninjas,#ninjas-@number;
set #ninjas,#ninjas+#ninjasr; set #ninjas,#ninjas+#ninjasr;
set #ninjasr,0; set #ninjasr,0;
if (@number < @chance) goto M_Failure; if (@number < @chance) goto M_Failure;
// SUCCESSFUL ATTACK // // SUCCESSFUL ATTACK //
mes "Sending ninjas now."; mes "Sending ninjas now.";
next; next;
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
set @ninjasurvived,rand (1,@number); set @ninjasurvived,rand (1,@number);
set #ninjasr,@number-@ninjasurvived; set #ninjasr,@number-@ninjasurvived;
mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
atcommand strcharinfo(0) + "@kill "+@name$; atcommand strcharinfo(0) + "@kill "+@name$;
announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8; announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8;
close; close;
// FAILED ATTACK // // FAILED ATTACK //
M_Failure: M_Failure:
mes "Sending ninjas now."; mes "Sending ninjas now.";
next; next;
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
set @ninjasurvived,rand (1,@number); set @ninjasurvived,rand (1,@number);
set #ninjasr,@number-@ninjasurvived; set #ninjasr,@number-@ninjasurvived;
mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8; announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8;
close; close;
// NINJAS BUSY FOR WOE // // NINJAS BUSY FOR WOE //
M_Busy: M_Busy:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "Sorry, all my ninjas are busy doing War of Emperium."; mes "Sorry, all my ninjas are busy doing War of Emperium.";
close; close;
// CHECK YOUR NINJAS // // CHECK YOUR NINJAS //
M_Check: M_Check:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "You have:"; mes "You have:";
mes "^FF0000" + #ninjas + "^000000 Active Ninjas."; mes "^FF0000" + #ninjas + "^000000 Active Ninjas.";
mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas."; mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas.";
next; next;
goto M_Start; goto M_Start;
// LIMIT // // LIMIT //
NoNinjasSent: NoNinjasSent:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "You can't kill anyone without ninjas."; mes "You can't kill anyone without ninjas.";
next; next;
goto M_Start; goto M_Start;
TooManyNinjas: TooManyNinjas:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "You can only send 10 ninjas max."; mes "You can only send 10 ninjas max.";
next; next;
goto M_Start; goto M_Start;
NoZeny: NoZeny:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "You do not have enough zeny."; mes "You do not have enough zeny.";
close; close;
NotEnoughNinjas: NotEnoughNinjas:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "There aren't that many ninjas to buy."; mes "There aren't that many ninjas to buy.";
next; next;
goto M_Start; goto M_Start;
NoNinjas: NoNinjas:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "There are no ninjas left to buy."; mes "There are no ninjas left to buy.";
close; close;
NotEnoughNinjas1: NotEnoughNinjas1:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "You do not have that many ninjas."; mes "You do not have that many ninjas.";
next; next;
goto M_Start; goto M_Start;
M_Exit: M_Exit:
mes "[Shifty Assassin]"; mes "[Shifty Assassin]";
mes "Goodbye."; mes "Goodbye.";
close; close;
// TIMER DELAY NINJA ADDER // // TIMER DELAY NINJA ADDER //
OnClock0600: OnClock0600:
set $ninja_avail,$ninja_avail+2; set $ninja_avail,$ninja_avail+2;
end; end;
OnClock1200: OnClock1200:
set $ninja_avail,$ninja_avail+2; set $ninja_avail,$ninja_avail+2;
end; end;
OnClock1500: OnClock1500:
set $ninja_avail,$ninja_avail+2; set $ninja_avail,$ninja_avail+2;
end; end;
OnClock1800: OnClock1800:
set $ninja_avail,$ninja_avail+3; set $ninja_avail,$ninja_avail+3;
end; end;
OnClock1900: OnClock1900:
set $ninja_avail,$ninja_avail+2; set $ninja_avail,$ninja_avail+2;
end; end;
OnClock2000: OnClock2000:
set $ninja_avail,$ninja_avail+2; set $ninja_avail,$ninja_avail+2;
end; end;
OnClock0000: OnClock0000:
set $ninja_avail,$ninja_avail+2; set $ninja_avail,$ninja_avail+2;
end; end;
OnInit: OnInit:
set $ninja_avail,$ninja_avail+1; set $ninja_avail,$ninja_avail+1;
end; end;
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,49 +1,49 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Healer //= Healer
//===== By: ================================================== //===== By: ==================================================
//= Euphy //= Euphy
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Basic healer script. //= Basic healer script.
//============================================================ //============================================================
- script Healer -1,{ - script Healer -1,{
set .@Price,0; // Zeny required for heal set .@Price,0; // Zeny required for heal
set .@Buffs,0; // Also buff players? (1: yes / 0: no) set .@Buffs,0; // Also buff players? (1: yes / 0: no)
set .@Delay,0; // Heal delay, in seconds set .@Delay,0; // Heal delay, in seconds
if (@HD > gettimetick(2)) end; if (@HD > gettimetick(2)) end;
if (.@Price) { if (.@Price) {
message strcharinfo(0),"Healing costs "+.@Price+" Zeny."; message strcharinfo(0),"Healing costs "+.@Price+" Zeny.";
if (Zeny < .@Price) end; if (Zeny < .@Price) end;
if(select("^0055FFHeal^000000:^777777Cancel^000000")==2) close; if(select("^0055FFHeal^000000:^777777Cancel^000000")==2) close;
set Zeny, Zeny-.@Price; } set Zeny, Zeny-.@Price; }
specialeffect2 313; percentheal 100,100; specialeffect2 313; percentheal 100,100;
if (.@Buffs) { if (.@Buffs) {
specialeffect2 37; sc_start SC_INCREASEAGI,240000,10; specialeffect2 37; sc_start SC_INCREASEAGI,240000,10;
specialeffect2 42; sc_start SC_BLESSING,240000,10; } specialeffect2 42; sc_start SC_BLESSING,240000,10; }
if (.@Delay) set @HD, gettimetick(2)+.@Delay; if (.@Delay) set @HD, gettimetick(2)+.@Delay;
if (.@Price) close; if (.@Price) close;
end; end;
} }
alberta,185,144,5 duplicate(Healer) Healer#alb 742 alberta,185,144,5 duplicate(Healer) Healer#alb 742
aldebaran,134,123,5 duplicate(Healer) Healer#alde 742 aldebaran,134,123,5 duplicate(Healer) Healer#alde 742
amatsu,200,80,5 duplicate(Healer) Healer#ama 742 amatsu,200,80,5 duplicate(Healer) Healer#ama 742
ayothaya,155,111,5 duplicate(Healer) Healer#ayo 742 ayothaya,155,111,5 duplicate(Healer) Healer#ayo 742
comodo,188,162,5 duplicate(Healer) Healer#com 742 comodo,188,162,5 duplicate(Healer) Healer#com 742
geffen,121,61,5 duplicate(Healer) Healer#gef 742 geffen,121,61,5 duplicate(Healer) Healer#gef 742
gonryun,164,130,5 duplicate(Healer) Healer#gon 742 gonryun,164,130,5 duplicate(Healer) Healer#gon 742
izlude,125,118,5 duplicate(Healer) Healer#izl 742 izlude,125,118,5 duplicate(Healer) Healer#izl 742
louyang,225,103,5 duplicate(Healer) Healer#lou 742 louyang,225,103,5 duplicate(Healer) Healer#lou 742
morocc,159,96,5 duplicate(Healer) Healer#mor 742 morocc,159,96,5 duplicate(Healer) Healer#mor 742
niflheim,188,180,5 duplicate(Healer) Healer#nif 742 niflheim,188,180,5 duplicate(Healer) Healer#nif 742
payon,180,105,5 duplicate(Healer) Healer#pay 742 payon,180,105,5 duplicate(Healer) Healer#pay 742
prontera,150,184,5 duplicate(Healer) Healer#pront 742 prontera,150,184,5 duplicate(Healer) Healer#pront 742
umbala,94,162,5 duplicate(Healer) Healer#umb 742 umbala,94,162,5 duplicate(Healer) Healer#umb 742
xmas,149,136,5 duplicate(Healer) Healer#xmas 742 xmas,149,136,5 duplicate(Healer) Healer#xmas 742
yuno,152,186,5 duplicate(Healer) Healer#yuno 742 yuno,152,186,5 duplicate(Healer) Healer#yuno 742

View File

@ -1,223 +1,223 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Sign Your Items //= Sign Your Items
//===== By: ================================================== //===== By: ==================================================
//= Lupus //= Lupus
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Write you name on your rare equipment or weapon ^_- //= Write you name on your rare equipment or weapon ^_-
//= Original X-Mas mini-quest(could be used as a permanent one) //= Original X-Mas mini-quest(could be used as a permanent one)
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= //=
//============================================================ //============================================================
prt_in,24,61,7 script Perchik 47,{ prt_in,24,61,7 script Perchik 47,{
mes "[Perchik]"; mes "[Perchik]";
if(BaseJob==Job_Novice || BaseLevel<50) { if(BaseJob==Job_Novice || BaseLevel<50) {
mes "Sorry, I don't help newbies. Go kill more Porings."; mes "Sorry, I don't help newbies. Go kill more Porings.";
emotion e_sry; emotion e_sry;
close; close;
} }
mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold."; mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold.";
next; next;
menu "Tell me more...",-, "Sign my items, please",M_DO; menu "Tell me more...",-, "Sign my items, please",M_DO;
mes "[Perchik]"; mes "[Perchik]";
mes "I can put your name on any slotless equipment or weapon."; mes "I can put your name on any slotless equipment or weapon.";
emotion e_ic; emotion e_ic;
next; next;
mes "[Perchik]"; mes "[Perchik]";
mes "A week ago, my BOSS told me to send away newbies. I dunno why."; mes "A week ago, my BOSS told me to send away newbies. I dunno why.";
next; next;
mes "[Perchik]"; mes "[Perchik]";
mes "For my work I accept ^0000803 Gift Box^000000es (gray one)"; mes "For my work I accept ^0000803 Gift Box^000000es (gray one)";
mes "plus ^FF00005000z^000000 per each refine of your item."; mes "plus ^FF00005000z^000000 per each refine of your item.";
next; next;
emotion e_cry; emotion e_cry;
mes "[Perchik]"; mes "[Perchik]";
mes "Alas, I have 12 hungry children"; mes "Alas, I have 12 hungry children";
mes "and a very angry wife."; mes "and a very angry wife.";
next; next;
mes "[Perchik]"; mes "[Perchik]";
mes "Or it was... 12 angry children"; mes "Or it was... 12 angry children";
mes "and a very hungry wife..."; mes "and a very hungry wife...";
emotion e_hmm; emotion e_hmm;
close; close;
M_DO: M_DO:
mes "[Perchik]"; mes "[Perchik]";
mes "Show me your items to sign..."; mes "Show me your items to sign...";
M_MENU: M_MENU:
next; next;
menu getequipname(1),M_PART1,getequipname(9),M_PART9,getequipname(10),M_PART10,getequipname(2),M_PART2,getequipname(4),M_PART4, menu getequipname(1),M_PART1,getequipname(9),M_PART9,getequipname(10),M_PART10,getequipname(2),M_PART2,getequipname(4),M_PART4,
getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8; getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8;
//Head Gear //Head Gear
M_PART1: M_PART1:
set @part,1; set @part,1;
if (getequipisequiped(1)) goto L_CHECK1; if (getequipisequiped(1)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "A bald head under a cheap wig... There's nothing worthy to sign."; mes "A bald head under a cheap wig... There's nothing worthy to sign.";
emotion 6; emotion 6;
goto M_MENU; goto M_MENU;
M_PART9: M_PART9:
set @part,9; set @part,9;
if (getequipisequiped(9)) goto L_CHECK1; if (getequipisequiped(9)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "Glasses... I can't see any glasses..."; mes "Glasses... I can't see any glasses...";
emotion 20; emotion 20;
goto M_MENU; goto M_MENU;
M_PART10: M_PART10:
set @part,10; set @part,10;
if (getequipisequiped(10)) goto L_CHECK1; if (getequipisequiped(10)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "I don't see any mask here."; mes "I don't see any mask here.";
emotion 20; emotion 20;
goto M_MENU; goto M_MENU;
//Armor //Armor
M_PART2: M_PART2:
set @part,2; set @part,2;
if (getequipisequiped(2)) goto L_CHECK1; if (getequipisequiped(2)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "Your belly...? Yes, it's rather fat."; mes "Your belly...? Yes, it's rather fat.";
emotion 6; emotion 6;
goto M_MENU; goto M_MENU;
//Left Hand //Left Hand
M_PART3: M_PART3:
set @part,3; set @part,3;
if (getequipisequiped(3)) goto L_CHECK1; if (getequipisequiped(3)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "Sign your left hand? I'm not a celebrity, you know..."; mes "Sign your left hand? I'm not a celebrity, you know...";
emotion 4; emotion 4;
goto M_MENU; goto M_MENU;
//Right Hand //Right Hand
M_PART4: M_PART4:
set @part,4; set @part,4;
if (getequipisequiped(4)) goto L_CHECK1; if (getequipisequiped(4)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "It isn't an armor... It's a mud!!! Wash your hands more often."; mes "It isn't an armor... It's a mud!!! Wash your hands more often.";
emotion 4; emotion 4;
goto M_MENU; goto M_MENU;
//Garment //Garment
M_PART5: M_PART5:
set @part,5; set @part,5;
if (getequipisequiped(5)) goto L_CHECK1; if (getequipisequiped(5)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "Look... It's empty..."; mes "Look... It's empty...";
goto M_MENU; goto M_MENU;
//Foot Gear //Foot Gear
M_PART6: M_PART6:
set @part,6; set @part,6;
if (getequipisequiped(6)) goto L_CHECK1; if (getequipisequiped(6)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "Aw!! I don't like stinky feet."; mes "Aw!! I don't like stinky feet.";
emotion 16; emotion 16;
goto M_MENU; goto M_MENU;
//Accessory1 //Accessory1
M_PART7: M_PART7:
set @part,7; set @part,7;
if (getequipisequiped(7)) goto L_CHECK1; if (getequipisequiped(7)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "Yep... a pocket with a huge hole..."; mes "Yep... a pocket with a huge hole...";
emotion 20; emotion 20;
goto M_MENU; goto M_MENU;
//Accessory2 //Accessory2
M_PART8: M_PART8:
set @part,8; set @part,8;
if (getequipisequiped(8)) goto L_CHECK1; if (getequipisequiped(8)) goto L_CHECK1;
mes "[Perchik]"; mes "[Perchik]";
mes "I see your fat belly..."; mes "I see your fat belly...";
emotion 20; emotion 20;
goto M_MENU; goto M_MENU;
L_CHECK1: L_CHECK1:
set @ref,0; set @ref,0;
set @id,getequipid(@part); set @id,getequipid(@part);
if(getequipisidentify(@part)) goto L_CHECK2; if(getequipisidentify(@part)) goto L_CHECK2;
mes "[Perchik]"; mes "[Perchik]";
mes "How could you equip such unknown item?"; mes "How could you equip such unknown item?";
npctalk "What a sneaky cheater!"; npctalk "What a sneaky cheater!";
emotion e_wah; emotion e_wah;
close; close;
L_CHECK2: L_CHECK2:
set @ref,getequiprefinerycnt(@part); set @ref,getequiprefinerycnt(@part);
mes "[Perchik]"; mes "[Perchik]";
mes "You want me to sign your "+getitemname(@id)+"..."; mes "You want me to sign your "+getitemname(@id)+"...";
if(BaseJob==Job_Novice) { if(BaseJob==Job_Novice) {
mes "But you're a Novice. My BOSS told me to send such weaklings away."; mes "But you're a Novice. My BOSS told me to send such weaklings away.";
emotion e_sry; emotion e_sry;
goto M_MENU; goto M_MENU;
} }
set @slot0,getequipcardid(@part,0); set @slot0,getequipcardid(@part,0);
set @slot1,getequipcardid(@part,1); set @slot1,getequipcardid(@part,1);
set @slot2,getequipcardid(@part,2); set @slot2,getequipcardid(@part,2);
set @slot3,getequipcardid(@part,3); set @slot3,getequipcardid(@part,3);
if(@slot0==255 || @slot0==254 || @slot0<0) { if(@slot0==255 || @slot0==254 || @slot0<0) {
mes "Alas, this item's already signed."; mes "Alas, this item's already signed.";
mes "I would never touch masters work."; mes "I would never touch masters work.";
emotion e_hmm; emotion e_hmm;
goto M_MENU; goto M_MENU;
} }
if(@slot0>4000 && @slot0<5000) { if(@slot0>4000 && @slot0<5000) {
mes "A card? Here?!"; mes "A card? Here?!";
mes "As I said before, I don't sign items with cards."; mes "As I said before, I don't sign items with cards.";
emotion e_hmm; emotion e_hmm;
goto M_MENU; goto M_MENU;
} }
if(getiteminfo(@id,10)) { if(getiteminfo(@id,10)) {
mes "Sorry. I don't sign slotted items."; mes "Sorry. I don't sign slotted items.";
emotion e_sry; emotion e_sry;
goto M_MENU; goto M_MENU;
} }
getinventorylist; getinventorylist;
for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){ for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){
if(@inventorylist_expire[.@i] != 0) { if(@inventorylist_expire[.@i] != 0) {
mes "Sorry, I don't sign rental items!"; mes "Sorry, I don't sign rental items!";
emotion e_hmm; emotion e_hmm;
goto M_MENU; goto M_MENU;
} }
} }
if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time."; if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time.";
mes "Give me ^0000803 gray Gift Boxes^000000"; mes "Give me ^0000803 gray Gift Boxes^000000";
if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000."; if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000.";
next; next;
menu "Ok!",-, "Leave",M_END; menu "Ok!",-, "Leave",M_END;
if(Zeny>=(5000*@ref) && countitem(644)>=3) { if(Zeny>=(5000*@ref) && countitem(644)>=3) {
delitem 644,3; delitem 644,3;
set Zeny,Zeny-(5000*@ref); set Zeny,Zeny-(5000*@ref);
goto L_MAKE; goto L_MAKE;
} }
mes "[Perchik]"; mes "[Perchik]";
mes "I don't work for 'thanks'."; mes "I don't work for 'thanks'.";
emotion e_sry; emotion e_sry;
close; close;
L_MAKE: L_MAKE:
if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) { if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) {
mes "[Perchik]"; mes "[Perchik]";
mes "Where is... "+getitemname(@id)+"?"; mes "Where is... "+getitemname(@id)+"?";
npctalk "You're a snoozy cheater!"; npctalk "You're a snoozy cheater!";
logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id); logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id);
emotion e_wah; emotion e_wah;
close; close;
} }
delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3; delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3;
mes "[Perchik]"; mes "[Perchik]";
mes "Done!"; mes "Done!";
emotion e_proud; emotion e_proud;
getitem2 @id,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff; getitem2 @id,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff;
close; close;
M_END: M_END:
mes "[Perchik]"; mes "[Perchik]";
mes "See you..."; mes "See you...";
emotion e_yawn; emotion e_yawn;
close; close;
} }

View File

@ -1,44 +1,44 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Shop Street //= Shop Street
//===== By: ================================================== //===== By: ==================================================
//= Masao //= Masao
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 [Masao] //= 1.0 [Masao]
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= Any rA SVN //= Any rA SVN
//===== Description: ========================================= //===== Description: =========================================
//= A Shopstreet in Prontera where players can buy some Equipment. //= A Shopstreet in Prontera where players can buy some Equipment.
//============================================================ //============================================================
prontera,147,240,5 shop Armor 99,2304:10000,2306:20000,2308:20000,2310:50000,2311:50000,2313:50000,2315:75000,2317:100000,2322:20000,2326:60000,2331:75000,2342:100000,2353:75000,2364:150000,2367:100000,2399:50000 prontera,147,240,5 shop Armor 99,2304:10000,2306:20000,2308:20000,2310:50000,2311:50000,2313:50000,2315:75000,2317:100000,2322:20000,2326:60000,2331:75000,2342:100000,2353:75000,2364:150000,2367:100000,2399:50000
prontera,147,242,5 shop Shield 99,2102:10000,2106:60000,2108:60000,2110:85000,2114:30000,2116:30000,2123:50000,2124:50000 prontera,147,242,5 shop Shield 99,2102:10000,2106:60000,2108:60000,2110:85000,2114:30000,2116:30000,2123:50000,2124:50000
prontera,147,244,5 shop Footgear 99,2404:10000,2406:20000,2409:30000,2412:50000,2417:50000,2418:50000,2424:50000,2425:20000 prontera,147,244,5 shop Footgear 99,2404:10000,2406:20000,2409:30000,2412:50000,2417:50000,2418:50000,2424:50000,2425:20000
prontera,147,246,5 shop Mace 99,1502:10000,1505:20000,1511:20000,1514:-1,1517:-1,1520:50000,1522:100000,1523:25000,1528:50000,1529:50000,1531:50000 prontera,147,246,5 shop Mace 99,1502:10000,1505:20000,1511:20000,1514:-1,1517:-1,1520:50000,1522:100000,1523:25000,1528:50000,1529:50000,1531:50000
prontera,147,248,5 shop Knuckle 494,1802:20000,1804:50000,1806:60000,1808:75000,1810:70000,1812:60000,1813:100000,1814:100000,1822:150000 prontera,147,248,5 shop Knuckle 494,1802:20000,1804:50000,1806:60000,1808:75000,1810:70000,1812:60000,1813:100000,1814:100000,1822:150000
prontera,147,250,5 shop Whips 494,1951:10000,1953:20000,1955:30000,1962:20000,1963:50000,1972:10000,1974:10000,1976:50000 prontera,147,250,5 shop Whips 494,1951:10000,1953:20000,1955:30000,1962:20000,1963:50000,1972:10000,1974:10000,1976:50000
prontera,147,252,5 shop Instruments 494,1902:10000,1904:20000,1906:-1,1908:50000,1913:50000,1914:50000,1915:50000,1916:50000,1917:50000 prontera,147,252,5 shop Instruments 494,1902:10000,1904:20000,1906:-1,1908:50000,1913:50000,1914:50000,1915:50000,1916:50000,1917:50000
prontera,147,254,5 shop Books 494,1550:30000,1551:60000,1552:51000,1559:25000,1561:75000,1564:25000,1568:70000,1569:70000,1570:70000,1571:70000,1572:50000 prontera,147,254,5 shop Books 494,1550:30000,1551:60000,1552:51000,1559:25000,1561:75000,1564:25000,1568:70000,1569:70000,1570:70000,1571:70000,1572:50000
prontera,147,256,5 shop Guns 497,13103:60000,13105:100000,13106:200000,13101:10000,13150:6000,13152:30000,13153:50000,13155:60000,13156:100000,13154:30000,13159:250000,13157:150000,13161:300000,13162:500000 prontera,147,256,5 shop Guns 497,13103:60000,13105:100000,13106:200000,13101:10000,13150:6000,13152:30000,13153:50000,13155:60000,13156:100000,13154:30000,13159:250000,13157:150000,13161:300000,13162:500000
prontera,147,258,5 shop Fuuma Shuriken 497,7522:500,7521:500,7523:500 prontera,147,258,5 shop Fuuma Shuriken 497,7522:500,7521:500,7523:500
prontera,147,260,5 shop One-Handed Swords 497,1108:10000,1117:10000,1120:100000,1124:50000,1130:100000,1131:50000,1133:50000,1138:200000,1139:200000,1145:-1,1149:50000 prontera,147,260,5 shop One-Handed Swords 497,1108:10000,1117:10000,1120:100000,1124:50000,1130:100000,1131:50000,1133:50000,1138:200000,1139:200000,1145:-1,1149:50000
prontera,147,262,5 shop Two-Handed Swords 497,1155:50000,1158:90000,1163:120000,1164:50000,1165:50000,1166:75000,1168:50000,1169:500000,1172:200000,1175:75000 prontera,147,262,5 shop Two-Handed Swords 497,1155:50000,1158:90000,1163:120000,1164:50000,1165:50000,1166:75000,1168:50000,1169:500000,1172:200000,1175:75000
prontera,147,264,5 shop Spears 731,1405:20000,1408:50000,1415:100000,1417:75000,1421:75000,1422:25000 prontera,147,264,5 shop Spears 731,1405:20000,1408:50000,1415:100000,1417:75000,1421:75000,1422:25000
prontera,147,238,1 shop Dagger 731,1208:20000,1211:20000,1217:20000,1223:50000,1231:75000,1235:75000,1236:75000,1237:75000 prontera,147,238,1 shop Dagger 731,1208:20000,1211:20000,1217:20000,1223:50000,1231:75000,1235:75000,1236:75000,1237:75000
prontera,164,264,4 shop Axes 731,1302:10000,1306:20000,1307:45000,1309:75000,1352:20000,1355:30000,1358:75000,1363:50000,1364:50000,1365:50000,1366:50000,1371:100000 prontera,164,264,4 shop Axes 731,1302:10000,1306:20000,1307:45000,1309:75000,1352:20000,1355:30000,1358:75000,1363:50000,1364:50000,1365:50000,1366:50000,1371:100000
prontera,164,262,4 shop Accessories 731,2621:-1,2622:-1,2624:30000,2618:10000,2625:30000,2626:30000,2674:10000,2648:50000,2649:50000,2627:-1,2701:75000 prontera,164,262,4 shop Accessories 731,2621:-1,2622:-1,2624:30000,2618:10000,2625:30000,2626:30000,2674:10000,2648:50000,2649:50000,2627:-1,2701:75000
prontera,164,260,4 shop Bows 731,1702:20000,1705:50000,1708:20000,1720:50000,1723:75000,1724:75000,1725:75000 prontera,164,260,4 shop Bows 731,1702:20000,1705:50000,1708:20000,1720:50000,1723:75000,1724:75000,1725:75000
prontera,164,258,4 shop Staffs / Rods 731,1602:20000,1605:20000,1608:20000,1611:45000,1618:85000,1620:85000,1622:50000,1624:50000,1625:50000,1626:50000 prontera,164,258,4 shop Staffs / Rods 731,1602:20000,1605:20000,1608:20000,1611:45000,1618:85000,1620:85000,1622:50000,1624:50000,1625:50000,1626:50000
prontera,164,256,4 shop Garments 405,2504:10000,2506:40000,2507:82000,2508:56000,2514:50000,2518:60000,2519:60000,2528:85000,2531:10000,2553:10000 prontera,164,256,4 shop Garments 405,2504:10000,2506:40000,2507:82000,2508:56000,2514:50000,2518:60000,2519:60000,2528:85000,2531:10000,2553:10000
prontera,164,254,4 shop Katars 405,1251:50000,1253:100000,1255:75000,1261:125000,1262:20000,1263:20000,1265:100000,1275:100000,1276:100000,1277:100000,1278:100000 prontera,164,254,4 shop Katars 405,1251:50000,1253:100000,1255:75000,1261:125000,1262:20000,1263:20000,1265:100000,1275:100000,1276:100000,1277:100000,1278:100000
prontera,164,252,4 shop Lower Headgear 405,2218:10000,5054:30000,2267:5000,5107:100000,2265:5000,2266:50000,2269:50000,2270:50000 prontera,164,252,4 shop Lower Headgear 405,2218:10000,5054:30000,2267:5000,5107:100000,2265:5000,2266:50000,2269:50000,2270:50000
prontera,164,250,4 shop Middle Headgear 405,2201:5000,2203:4000,2205:3500,2212:5000,2225:10000,2229:50000,2231:50000,2234:50000,2235:50000,2281:25000,2292:50000,2296:50000 prontera,164,250,4 shop Middle Headgear 405,2201:5000,2203:4000,2205:3500,2212:5000,2225:10000,2229:50000,2231:50000,2234:50000,2235:50000,2281:25000,2292:50000,2296:50000
prontera,164,248,4 shop Upper Headgear 405,2210:1000,2211:1000,2213:10000,2214:20000,2217:10000,2221:5000,2223:10000,2246:75000,2256:75000,2264:100000,2280:20000,2299:30000 prontera,164,248,4 shop Upper Headgear 405,2210:1000,2211:1000,2213:10000,2214:20000,2217:10000,2221:5000,2223:10000,2246:75000,2256:75000,2264:100000,2280:20000,2299:30000
prontera,164,246,4 shop Headgear 01 832,5380:40000,5382:40000,2269:5000,2270:5000,5107:15000,5110:15000,2247:30000:5206:10000,2245:30000,2286:35000,2296:15000,2258:45000,5161:200000,5104:40000,2295:20000,5026:30000,5032:100000,5038:30000,5229:65000,5227:65000,5228:65000,5198:50000,5058:300000,5253:80000,5252:60000,5296:100000,5231:300000,5232:300000,5233:300000,5230:300000,5234:300000,5076:50000 prontera,164,246,4 shop Headgear 01 832,5380:40000,5382:40000,2269:5000,2270:5000,5107:15000,5110:15000,2247:30000:5206:10000,2245:30000,2286:35000,2296:15000,2258:45000,5161:200000,5104:40000,2295:20000,5026:30000,5032:100000,5038:30000,5229:65000,5227:65000,5228:65000,5198:50000,5058:300000,5253:80000,5252:60000,5296:100000,5231:300000,5232:300000,5233:300000,5230:300000,5234:300000,5076:50000
prontera,164,244,4 shop Headgear 02 832,5059:100000,5235:75000,5236:75000,5237:75000,5293:150000,5303:35000,5304:65000,5312:65000,5315:45000,5317:45000,5319:75000,5320:120000,5323:588888,5336:50000,5337:50000,5338:50000,5339:50000,5346:50000 prontera,164,244,4 shop Headgear 02 832,5059:100000,5235:75000,5236:75000,5237:75000,5293:150000,5303:35000,5304:65000,5312:65000,5315:45000,5317:45000,5319:75000,5320:120000,5323:588888,5336:50000,5337:50000,5338:50000,5339:50000,5346:50000
prontera,164,242,4 shop Headgear 03 832,5181:300000,5102:500000,5016:75000,5349:150000,5013:700000,5022:500000,5171:1250000,5135:500000,5029:50000,5033:65000,5040:100000,5047:35000,5065:65000,5068:50000,5074:50000,5084:75000,5086:150000,5108:350000,5121:100000,5133:50000,5137:100000,5138:150000,5140:55000,5146:75000,5151:75000,5152:150000,5170:150000,5173:75000,5174:75000,5175:75000,5184:50000,5185:45000,5187:75000,5188:50000,5191:25000,5192:25000,5193:25000,5194:25000,5195:25000,5196:25000,5197:25000 prontera,164,242,4 shop Headgear 03 832,5181:300000,5102:500000,5016:75000,5349:150000,5013:700000,5022:500000,5171:1250000,5135:500000,5029:50000,5033:65000,5040:100000,5047:35000,5065:65000,5068:50000,5074:50000,5084:75000,5086:150000,5108:350000,5121:100000,5133:50000,5137:100000,5138:150000,5140:55000,5146:75000,5151:75000,5152:150000,5170:150000,5173:75000,5174:75000,5175:75000,5184:50000,5185:45000,5187:75000,5188:50000,5191:25000,5192:25000,5193:25000,5194:25000,5195:25000,5196:25000,5197:25000
prontera,164,240,4 shop Headgear 04 832,5200:75000,5205:100000,5211:75000,5226:50000,5238:75000,5239:75000,5240:75000,5241:75000,5242:75000,5243:50000,5325:75000,5254:100000,5255:65000,5257:50000,5297:100000,2202:45000,5258:35000,5298:50000,5276:50000,5273:50000,5275:50000,5274:50000,5259:50000,5271:250000,5272:50000,5284:50000,5286:75000,5288:50000,5289:50000,5291:55000,5292:55000,5294:55000,5352:50000,5324:100000,5359:50000,5360:50000 prontera,164,240,4 shop Headgear 04 832,5200:75000,5205:100000,5211:75000,5226:50000,5238:75000,5239:75000,5240:75000,5241:75000,5242:75000,5243:50000,5325:75000,5254:100000,5255:65000,5257:50000,5297:100000,2202:45000,5258:35000,5298:50000,5276:50000,5273:50000,5275:50000,5274:50000,5259:50000,5271:250000,5272:50000,5284:50000,5286:75000,5288:50000,5289:50000,5291:55000,5292:55000,5294:55000,5352:50000,5324:100000,5359:50000,5360:50000
prontera,164,238,4 shop Headgear 05 832,5340:50000,5341:50000,5342:50000,5343:50000,5344:50000,5345:50000,5354:50000,5355:50000,5361:65000,5365:50000,5373:75000,5374:350000,5379:50000,5383:60000,5384:88888,5390:88888,5388:50000,5411:50000,5393:75000,5397:35000,5399:50000,5800:175000,5801:300000,5802:150000 prontera,164,238,4 shop Headgear 05 832,5340:50000,5341:50000,5342:50000,5343:50000,5344:50000,5345:50000,5354:50000,5355:50000,5361:65000,5365:50000,5373:75000,5374:350000,5379:50000,5383:60000,5384:88888,5390:88888,5388:50000,5411:50000,5393:75000,5397:35000,5399:50000,5800:175000,5801:300000,5802:150000
prontera,151,284,4 shop Ammunition 880,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50 prontera,151,284,4 shop Ammunition 880,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50
prontera,153,284,4 shop Alchemist Dealer 880,715:600,716:600,717:600,1025:200,7136:500,7135:500,7136:500,7137:500,7138:500,7139:500 prontera,153,284,4 shop Alchemist Dealer 880,715:600,716:600,717:600,1025:200,7136:500,7135:500,7136:500,7137:500,7138:500,7139:500
prontera,155,284,4 shop Street Dealer 880,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650 prontera,155,284,4 shop Street Dealer 880,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650
prontera,157,284,4 shop Sheepy Gonzales 895,12028:1000,12262:500,12016:750 prontera,157,284,4 shop Sheepy Gonzales 895,12028:1000,12262:500,12016:750

View File

@ -1,319 +1,319 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Job Master //= Job Master
//===== By: ================================================== //===== By: ==================================================
//= rAthena Dev Team [Ori:LunatikBunnie] //= rAthena Dev Team [Ori:LunatikBunnie]
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.7 //= 1.7
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN; 15624+ //= rAthena SVN; 15624+
//===== Description: ========================================= //===== Description: =========================================
//= Changes your job without asking too much //= Changes your job without asking too much
//= For other info, please contact me at Lunatikbunnie@gmail.com //= For other info, please contact me at Lunatikbunnie@gmail.com
//= Editted menu to avoid button mashing. //= Editted menu to avoid button mashing.
//= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus] //= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus]
//= script leaves grabage variable: 'lastJob' //= script leaves grabage variable: 'lastJob'
//= 1.4 Added NJ/GS, changed all job numbers to Job_* constants. //= 1.4 Added NJ/GS, changed all job numbers to Job_* constants.
//= All credits go to pxxx [Skotlex] //= All credits go to pxxx [Skotlex]
//= 1.5 Rewrite everything from scratch. [Lance] //= 1.5 Rewrite everything from scratch. [Lance]
//= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus] //= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus]
//= 1.6 Added support for both branches of 3rd classes, //= 1.6 Added support for both branches of 3rd classes,
//= unified response order, fixed minor quirk. //= unified response order, fixed minor quirk.
//= 1.7 Corrected typo on EAJ_THIRD to EAJL_THIRD and fixed job //= 1.7 Corrected typo on EAJ_THIRD to EAJL_THIRD and fixed job
//= level requirement to change to 3rd. [Rytech] //= level requirement to change to 3rd. [Rytech]
//===== TODO: ================================================ //===== TODO: ================================================
//= Add baby 3rd classes //= Add baby 3rd classes
//= Could be restructured some more using eajobs //= Could be restructured some more using eajobs
//============================================================ //============================================================
prontera,153,193,6 script Job Master 123,{ prontera,153,193,6 script Job Master 123,{
mes "^ff0000[Job Master]^000000"; mes "^ff0000[Job Master]^000000";
if(Class >= Job_Rune_Knight) goto L_noReq; if(Class >= Job_Rune_Knight) goto L_noReq;
if(SkillPoint != 0) if(SkillPoint != 0)
{ {
mes "I'm sorry, please use up all your skill points before changing jobs"; mes "I'm sorry, please use up all your skill points before changing jobs";
mes "Please come again soon!"; mes "Please come again soon!";
close; close;
} }
if(JobLevel < 10) goto L_LvError; if(JobLevel < 10) goto L_LvError;
switch(Class){ switch(Class){
case Job_Novice_High: case Job_Novice_High:
case Job_Baby: case Job_Baby:
case Job_Novice: case Job_Novice:
skill 142,1,0; skill 142,1,0;
skill 143,1,0; skill 143,1,0;
mes "Welcome, please select the job you wish to change into"; mes "Welcome, please select the job you wish to change into";
if(lastJob != 0 && Class == Job_Novice_High){ if(lastJob != 0 && Class == Job_Novice_High){
switch(lastJob){ switch(lastJob){
case Job_Knight: case Job_Knight:
case Job_Crusader: case Job_Crusader:
set @target_job, Job_Swordman_High; set @target_job, Job_Swordman_High;
break; break;
case Job_Monk: case Job_Monk:
case Job_Priest: case Job_Priest:
set @target_job, Job_Acolyte_High; set @target_job, Job_Acolyte_High;
break; break;
case Job_Alchemist: case Job_Alchemist:
case Job_Blacksmith: case Job_Blacksmith:
set @target_job, Job_Merchant_High; set @target_job, Job_Merchant_High;
break; break;
case Job_Rogue: case Job_Rogue:
case Job_Assassin: case Job_Assassin:
set @target_job, Job_Thief_High; set @target_job, Job_Thief_High;
break; break;
case Job_Wizard: case Job_Wizard:
case Job_Sage: case Job_Sage:
set @target_job, Job_Mage_High; set @target_job, Job_Mage_High;
break; break;
case Job_Hunter: case Job_Hunter:
case Job_Bard: case Job_Bard:
case Job_Dancer: case Job_Dancer:
set @target_job, Job_Archer_High; set @target_job, Job_Archer_High;
break; break;
} }
} else { } else {
switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief",
"Super Novice","Taekwon","Gunslinger","Ninja")){ "Super Novice","Taekwon","Gunslinger","Ninja")){
case 7: case 7:
if(Class == Job_Novice_High) goto L_noReq; if(Class == Job_Novice_High) goto L_noReq;
if($@JC_SupNovM > BaseLevel) goto L_BvError; if($@JC_SupNovM > BaseLevel) goto L_BvError;
if(Upper == 2) if(Upper == 2)
set @target_job, Job_Super_Baby; set @target_job, Job_Super_Baby;
else else
set @target_job, Job_SuperNovice; set @target_job, Job_SuperNovice;
break; break;
case 8: case 8:
if(Class == Job_Novice_High) goto L_noReq; if(Class == Job_Novice_High) goto L_noReq;
if(Upper == 2) goto L_noReq; if(Upper == 2) goto L_noReq;
set @target_job, Job_Taekwon; set @target_job, Job_Taekwon;
break; break;
case 9: case 9:
case 10: case 10:
if(Class == Job_Novice_High || Upper == 2) goto L_noReq; if(Class == Job_Novice_High || Upper == 2) goto L_noReq;
set @target_job, @menu + 15; set @target_job, @menu + 15;
break; break;
default: default:
set @target_job, @menu; set @target_job, @menu;
if(Class == Job_Novice_High) set @target_job, @target_job + 4001; if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
break; break;
} }
} }
mes "Are you sure you want to change to " + JobName(@target_job) + "?"; mes "Are you sure you want to change to " + JobName(@target_job) + "?";
if(select("Yes","No") == 1){ if(select("Yes","No") == 1){
callfunc "Job_Change", @target_job; callfunc "Job_Change", @target_job;
if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
callfunc "F_ClearJobVar"; callfunc "F_ClearJobVar";
} else { } else {
if($@JC_Plat) goto L_GivePlat; if($@JC_Plat) goto L_GivePlat;
} }
} }
close; close;
break; break;
default: default:
if(JobLevel < $@JC_MinimumJB) goto L_LvError; if(JobLevel < $@JC_MinimumJB) goto L_LvError;
deletearray @job_opt, getarraysize(@job_opt); deletearray @job_opt, getarraysize(@job_opt);
if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){
if(lastJob != 0 && Class >= Job_Swordman_High){ // lastJob could have been set before changing back to non-trans if(lastJob != 0 && Class >= Job_Swordman_High){ // lastJob could have been set before changing back to non-trans
set @target_job, lastJob + 4001; set @target_job, lastJob + 4001;
} else { } else {
switch(Class){ switch(Class){
case Job_Swordman_High: case Job_Swordman_High:
case Job_Baby_Swordman: case Job_Baby_Swordman:
case Job_Swordman: case Job_Swordman:
set @job_opt[0], Job_Knight; set @job_opt[0], Job_Knight;
set @job_opt[1], Job_Crusader; set @job_opt[1], Job_Crusader;
break; break;
case Job_Mage_High: case Job_Mage_High:
case Job_Baby_Mage: case Job_Baby_Mage:
case Job_Mage: case Job_Mage:
set @job_opt[0], Job_Wizard; set @job_opt[0], Job_Wizard;
set @job_opt[1], Job_Sage; set @job_opt[1], Job_Sage;
break; break;
case Job_Archer_High: case Job_Archer_High:
case Job_Baby_Archer: case Job_Baby_Archer:
case Job_Archer: case Job_Archer:
set @job_opt[0], Job_Hunter; set @job_opt[0], Job_Hunter;
if(Sex == 0) if(Sex == 0)
set @job_opt[1], Job_Dancer; set @job_opt[1], Job_Dancer;
else else
set @job_opt[1], Job_Bard; set @job_opt[1], Job_Bard;
break; break;
case Job_Acolyte_High: case Job_Acolyte_High:
case Job_Baby_Acolyte: case Job_Baby_Acolyte:
case Job_Acolyte: case Job_Acolyte:
set @job_opt[0], Job_Priest; set @job_opt[0], Job_Priest;
set @job_opt[1], Job_Monk; set @job_opt[1], Job_Monk;
break; break;
case Job_Merchant_High: case Job_Merchant_High:
case Job_Baby_Merchant: case Job_Baby_Merchant:
case Job_Merchant: case Job_Merchant:
set @job_opt[0], Job_Blacksmith; set @job_opt[0], Job_Blacksmith;
set @job_opt[1], Job_Alchemist; set @job_opt[1], Job_Alchemist;
break; break;
case Job_Thief_High: case Job_Thief_High:
case Job_Baby_Thief: case Job_Baby_Thief:
case Job_Thief: case Job_Thief:
set @job_opt[0], Job_Assassin; set @job_opt[0], Job_Assassin;
set @job_opt[1], Job_Rogue; set @job_opt[1], Job_Rogue;
break; break;
default: default:
set @job_opt[0], Job_Star_Gladiator; set @job_opt[0], Job_Star_Gladiator;
set @job_opt[1], Job_Soul_Linker; set @job_opt[1], Job_Soul_Linker;
break; break;
} }
mes "Welcome, please select the job you wish to change into"; mes "Welcome, please select the job you wish to change into";
set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1];
if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
} }
mes "Are you sure you want to change to " + JobName(@target_job) + "?"; mes "Are you sure you want to change to " + JobName(@target_job) + "?";
if(select("Yes","No")==1){ if(select("Yes","No")==1){
callfunc "Job_Change", @target_job; callfunc "Job_Change", @target_job;
if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
callfunc "F_ClearJobVar"; callfunc "F_ClearJobVar";
} else { } else {
if($@JC_Plat) goto L_GivePlat; if($@JC_Plat) goto L_GivePlat;
} }
} }
close; close;
} }
if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
if(checkfalcon() || checkcart() || checkriding()) goto L_remove; if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
if((Class >= Job_Knight) && (Class <= Job_Crusader2)){ if((Class >= Job_Knight) && (Class <= Job_Crusader2)){
if (.thirdclass==1) { if (.thirdclass==1) {
mes "Would you like to be reborn or change to 3rd class?"; mes "Would you like to be reborn or change to 3rd class?";
switch(select("I want to be reborn!", "I want to change to 3rd class!", "Cancel")) switch(select("I want to be reborn!", "I want to change to 3rd class!", "Cancel"))
{ {
case 1: case 1:
mes "Are you sure you want to be reborn?"; mes "Are you sure you want to be reborn?";
if(select("Yes", "No")==1){ if(select("Yes", "No")==1){
set lastJob, Class; set lastJob, Class;
if(Class == Job_Knight2){ if(Class == Job_Knight2){
set lastJob, Job_Knight; set lastJob, Job_Knight;
} else { } else {
if(Class == Job_Crusader2){ if(Class == Job_Crusader2){
set lastJob, Job_Crusader; set lastJob, Job_Crusader;
} }
} }
jobchange Job_Novice_High; jobchange Job_Novice_High;
resetlvl(1); resetlvl(1);
skill 142,1,0; skill 142,1,0;
skill 143,1,0; skill 143,1,0;
} }
break; break;
case 2: case 2:
goto L_Third; goto L_Third;
} }
close; close;
} }
else { else {
mes "Are you sure you want to be reborn?"; mes "Are you sure you want to be reborn?";
if(select("Yes", "No")==1){ if(select("Yes", "No")==1){
set lastJob, Class; set lastJob, Class;
if(Class == Job_Knight2){ if(Class == Job_Knight2){
set lastJob, Job_Knight; set lastJob, Job_Knight;
} else { } else {
if(Class == Job_Crusader2){ if(Class == Job_Crusader2){
set lastJob, Job_Crusader; set lastJob, Job_Crusader;
} }
} }
jobchange Job_Novice_High; jobchange Job_Novice_High;
resetlvl(1); resetlvl(1);
skill 142,1,0; skill 142,1,0;
skill 143,1,0; skill 143,1,0;
} }
} }
} }
if (Class >= Job_Lord_Knight && Class <= Job_Paladin2 && .thirdclass == 1) if (Class >= Job_Lord_Knight && Class <= Job_Paladin2 && .thirdclass == 1)
{ {
if(JobLevel < 50) goto L_cantCh; if(JobLevel < 50) goto L_cantCh;
goto L_Third; goto L_Third;
} }
} }
mes "I'm sorry, there are no further classes for your job."; mes "I'm sorry, there are no further classes for your job.";
close; close;
L_Third: L_Third:
set @target_job, roclass(eaclass() | EAJL_THIRD); set @target_job, roclass(eaclass() | EAJL_THIRD);
mes "Are you sure you want to change to " + JobName(@target_job) + "?"; mes "Are you sure you want to change to " + JobName(@target_job) + "?";
if(select("Yes", "No")==1){ if(select("Yes", "No")==1){
callfunc "Job_Change", @target_job; callfunc "Job_Change", @target_job;
} }
close; close;
L_GivePlat: L_GivePlat:
if (BaseClass==Job_SuperNovice) goto L_sSuperN; if (BaseClass==Job_SuperNovice) goto L_sSuperN;
if (BaseClass==Job_Swordman) goto L_sSword; if (BaseClass==Job_Swordman) goto L_sSword;
if (BaseClass==Job_Mage) goto L_sMage; if (BaseClass==Job_Mage) goto L_sMage;
if (BaseClass==Job_Archer) goto L_sArcher; if (BaseClass==Job_Archer) goto L_sArcher;
if (BaseClass==Job_Acolyte) goto L_sAcolyte; if (BaseClass==Job_Acolyte) goto L_sAcolyte;
if (BaseClass==Job_Merchant) goto L_sMerchant; if (BaseClass==Job_Merchant) goto L_sMerchant;
if (BaseClass==Job_Thief) goto L_sThief; if (BaseClass==Job_Thief) goto L_sThief;
close; close;
L_sSuperN: L_sSuperN:
skill 142,1,0; skill 142,1,0;
close; close;
L_sSword: L_sSword:
skill 142,1,0; skill 142,1,0;
skill 144,1,0; skill 144,1,0;
skill 145,1,0; skill 145,1,0;
skill 146,1,0; skill 146,1,0;
close; close;
L_sMage: L_sMage:
skill 142,1,0; skill 142,1,0;
skill 157,1,0; skill 157,1,0;
close; close;
L_sArcher: L_sArcher:
skill 142,1,0; skill 142,1,0;
skill 147,1,0; skill 147,1,0;
skill 148,1,0; skill 148,1,0;
close; close;
L_sAcolyte: L_sAcolyte:
skill 142,1,0; skill 142,1,0;
skill 156,1,0; skill 156,1,0;
close; close;
L_sMerchant: L_sMerchant:
skill 142,1,0; skill 142,1,0;
skill 153,1,0; skill 153,1,0;
skill 154,1,0; skill 154,1,0;
skill 155,1,0; skill 155,1,0;
close; close;
L_sThief: L_sThief:
skill 142,1,0; skill 142,1,0;
skill 149,1,0; skill 149,1,0;
skill 150,1,0; skill 150,1,0;
skill 151,1,0; skill 151,1,0;
skill 152,1,0; skill 152,1,0;
close; close;
L_cantCh: L_cantCh:
mes "I'm sorry, you do not meet the requirements to change"; mes "I'm sorry, you do not meet the requirements to change";
mes "Please come again soon!"; mes "Please come again soon!";
close; close;
L_LvError: L_LvError:
mes "I'm sorry, you do not seem to have enough Job Levels"; mes "I'm sorry, you do not seem to have enough Job Levels";
mes "Please come again soon!"; mes "Please come again soon!";
close; close;
L_BvError: L_BvError:
mes "I'm sorry, you do not seem to have enough Base Levels"; mes "I'm sorry, you do not seem to have enough Base Levels";
mes "Please come again soon!"; mes "Please come again soon!";
close; close;
L_noReq: L_noReq:
mes "I'm sorry, you do not meet the requirements to change"; mes "I'm sorry, you do not meet the requirements to change";
mes "Please come again soon!"; mes "Please come again soon!";
close; close;
L_remove: L_remove:
mes "Please remove your cart,falcon or peco"; mes "Please remove your cart,falcon or peco";
mes "Please come again soon!"; mes "Please come again soon!";
close; close;
OnInit: OnInit:
// Variable Setup // Variable Setup
set $@JC_MinimumJB, 40; //Minimum job level for changing to 2nd classes (Default : 40) set $@JC_MinimumJB, 40; //Minimum job level for changing to 2nd classes (Default : 40)
set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes) set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes)
set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45) set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
set .thirdclass, 1; // Allow players to change into third class? set .thirdclass, 1; // Allow players to change into third class?
end; end;
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,62 +1,62 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Reset NPC //= Reset NPC
//===== By: ================================================== //===== By: ==================================================
//= rAthena Dev Team //= rAthena Dev Team
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.1 //= 1.1
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Resets skills, stats, or both. //= Resets skills, stats, or both.
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.0 First Version //= 1.0 First Version
//= 1.1 Optimized for the greater good. [Kisuka] //= 1.1 Optimized for the greater good. [Kisuka]
//= 1.2 Cleaning [Euphy] //= 1.2 Cleaning [Euphy]
//============================================================ //============================================================
prontera,150,193,4 script Reset Girl 124,{ prontera,150,193,4 script Reset Girl 124,{
set .@ResetStat,5000; // Zeny for stat reset set .@ResetStat,5000; // Zeny for stat reset
set .@ResetSkill,5000; // Zeny for skill reset set .@ResetSkill,5000; // Zeny for skill reset
set .@ResetBoth,9000; // Zeny for resetting both together set .@ResetBoth,9000; // Zeny for resetting both together
mes "[Reset Girl]"; mes "[Reset Girl]";
mes "I am the Reset Girl."; mes "I am the Reset Girl.";
mes "Reset Stats: "+ .@ResetStat +"z"; mes "Reset Stats: "+ .@ResetStat +"z";
mes "Reset Skills: "+ .@ResetSkill +"z"; mes "Reset Skills: "+ .@ResetSkill +"z";
mes "Reset Both: "+ .@ResetBoth +"z"; mes "Reset Both: "+ .@ResetBoth +"z";
mes "Please select the service you want:"; mes "Please select the service you want:";
next; next;
switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) { switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) {
case 1: case 1:
mes "[Reset Girl]"; mes "[Reset Girl]";
if (Zeny < .@ResetSkill) { if (Zeny < .@ResetSkill) {
mes "Sorry, you don't have enough Zeny."; mes "Sorry, you don't have enough Zeny.";
close; } close; }
set Zeny, Zeny-.@ResetSkill; set Zeny, Zeny-.@ResetSkill;
ResetSkill; ResetSkill;
mes "There you go!"; mes "There you go!";
close; close;
case 2: case 2:
mes "[Reset Girl]"; mes "[Reset Girl]";
if (Zeny < .@ResetStat) { if (Zeny < .@ResetStat) {
mes "Sorry, you don't have enough Zeny."; mes "Sorry, you don't have enough Zeny.";
close; } close; }
set Zeny, Zeny-.@ResetStat; set Zeny, Zeny-.@ResetStat;
ResetStatus; ResetStatus;
mes "There you go!"; mes "There you go!";
close; close;
case 3: case 3:
mes "[Reset Girl]"; mes "[Reset Girl]";
if (Zeny < .@ResetBoth) { if (Zeny < .@ResetBoth) {
mes "Sorry, you don't have enough Zeny."; mes "Sorry, you don't have enough Zeny.";
close; } close; }
set Zeny, Zeny-.@ResetBoth; set Zeny, Zeny-.@ResetBoth;
ResetSkill; ResetSkill;
ResetStatus; ResetStatus;
mes "There you go!"; mes "There you go!";
close; close;
case 4: case 4:
close; close;
} }
} }

View File

@ -1,33 +1,33 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Stylist //= Stylist
//===== By: ================================================== //===== By: ==================================================
//= Euphy //= Euphy
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Changes your hair style, hair color, and cloth color. //= Changes your hair style, hair color, and cloth color.
//============================================================ //============================================================
prontera,170,180,1 script Stylist#custom_stylist 122,{ prontera,170,180,1 script Stylist#custom_stylist 122,{
setarray .@Styles[1],553,37,250; // Maximum dye, hair style, and hair color setarray .@Styles[1],553,37,250; // Maximum dye, hair style, and hair color
setarray .@Look[1],7,1,6; setarray .@Look[1],7,1,6;
set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color");
set .@Revert, getlook(.@Look[.@s]); set .@Style,1; set .@Revert, getlook(.@Look[.@s]); set .@Style,1;
while(1) { while(1) {
setlook .@Look[.@s], .@Style; setlook .@Look[.@s], .@Style;
message strcharinfo(0),"This is style #"+.@Style+"."; message strcharinfo(0),"This is style #"+.@Style+".";
set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)";
switch(select(.@menu$)) { switch(select(.@menu$)) {
case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break; case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break;
case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break; case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break;
case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+"."; case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+".";
input .@Style,0,.@Styles[.@s]; input .@Style,0,.@Styles[.@s];
if (!.@Style) set .@Style, rand(1,.@Styles[.@s]); if (!.@Style) set .@Style, rand(1,.@Styles[.@s]);
break; break;
case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; } case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; }
} end; } end;
} }

View File

@ -1,123 +1,123 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Falcon Flute Trader //= Falcon Flute Trader
//===== By: ================================================== //===== By: ==================================================
//= Masao //= Masao
//= Credits to Muad_Dib for the translation & Ziu for the //= Credits to Muad_Dib for the translation & Ziu for the
//= Item ID of the Falcon Flute. //= Item ID of the Falcon Flute.
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena //= rAthena
//===== Description: ========================================= //===== Description: =========================================
//= An NPC which sells you a Falcon Flute so you're able to //= An NPC which sells you a Falcon Flute so you're able to
//= summon a Falcon wherever you are. //= summon a Falcon wherever you are.
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.0 First Version. [Masao] //= 1.0 First Version. [Masao]
//= 1.1 Added Baby Hunter and Baby Ranger check. bugreport:5728 [Masao] //= 1.1 Added Baby Hunter and Baby Ranger check. bugreport:5728 [Masao]
//============================================================ //============================================================
- script Falcon Flute Trader::fflute -1,{ - script Falcon Flute Trader::fflute -1,{
if (Class == Job_Baby_Hunter || Class == Job_Hunter || Class == Job_Sniper || Class == Job_Baby_Ranger || Class == Job_Ranger || Class == Job_Ranger_T) { if (Class == Job_Baby_Hunter || Class == Job_Hunter || Class == Job_Sniper || Class == Job_Baby_Ranger || Class == Job_Ranger || Class == Job_Ranger_T) {
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Do you need a Falcon?"; mes "Do you need a Falcon?";
mes "With a magical Flute, you can call your Falcon from anywhere!"; mes "With a magical Flute, you can call your Falcon from anywhere!";
next; next;
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "It's marvelous, isn't it? Ha ha ha!"; mes "It's marvelous, isn't it? Ha ha ha!";
next; next;
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Why I'm selling these Falcon Flutes?"; mes "Why I'm selling these Falcon Flutes?";
mes "It's because I have no clue how they work."; mes "It's because I have no clue how they work.";
mes "Ha ha ha!"; mes "Ha ha ha!";
next; next;
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Of course, you'll need the Skill ^ff0000Falcon Mastery^000000."; mes "Of course, you'll need the Skill ^ff0000Falcon Mastery^000000.";
mes "I don't have the Skill, so I don't know how to handle Falcons."; mes "I don't have the Skill, so I don't know how to handle Falcons.";
mes "As it's for now, I may never have a Falcon."; mes "As it's for now, I may never have a Falcon.";
next; next;
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "But I can't give you one for free!"; mes "But I can't give you one for free!";
mes "I have to make money since i also need to eat!"; mes "I have to make money since i also need to eat!";
next; next;
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "If you need a Falcon Flute I will sell them for 12,500 zeny. Or is that too expensive?"; mes "If you need a Falcon Flute I will sell them for 12,500 zeny. Or is that too expensive?";
next; next;
if (Class == Job_Baby_Hunter || Class == Job_Hunter || Class == Job_Sniper) { if (Class == Job_Baby_Hunter || Class == Job_Hunter || Class == Job_Sniper) {
switch (select("Don't buy one:Buy a Falcon Flute")) { switch (select("Don't buy one:Buy a Falcon Flute")) {
case 1: case 1:
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "That's too bad. If you need one, come back!"; mes "That's too bad. If you need one, come back!";
close; close;
case 2: case 2:
if (Zeny >= 12500) { if (Zeny >= 12500) {
if (countitem(12848) >= 1) { if (countitem(12848) >= 1) {
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "As i can see you already have an Falcon Flute!"; mes "As i can see you already have an Falcon Flute!";
mes "Don't worry my young friend, once you've purchased the Falcon Flute you won't need to do so again"; mes "Don't worry my young friend, once you've purchased the Falcon Flute you won't need to do so again";
mes "since the Falcon Flute won't disappear upon usage, isn't that great?"; mes "since the Falcon Flute won't disappear upon usage, isn't that great?";
close; close;
} }
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Here, take this Flute."; mes "Here, take this Flute.";
mes "With it you can whistle for your Falcon from anywhere."; mes "With it you can whistle for your Falcon from anywhere.";
set Zeny, Zeny - 12500; set Zeny, Zeny - 12500;
getitem 12848,1; // Falcon Flute getitem 12848,1; // Falcon Flute
next; next;
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Just a reminder."; mes "Just a reminder.";
mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!"; mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!";
close; close;
} }
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!"; mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!";
close; close;
} }
} }
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "For Rangers however, I have a special Price of 10,000 zeny!"; mes "For Rangers however, I have a special Price of 10,000 zeny!";
next; next;
switch (select("Don't buy one:Buy a Falcon flute")) { switch (select("Don't buy one:Buy a Falcon flute")) {
case 1: case 1:
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "That's too bad. If you need one, come back!"; mes "That's too bad. If you need one, come back!";
close; close;
case 2: case 2:
if (Zeny >= 10000) { if (Zeny >= 10000) {
if (countitem(12848) >= 1) { if (countitem(12848) >= 1) {
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "As i can see you already have an Falcon Flute!"; mes "As i can see you already have an Falcon Flute!";
mes "Don't worry my young friend, once you've purchased the Falcon Flute you won't need to do so again"; mes "Don't worry my young friend, once you've purchased the Falcon Flute you won't need to do so again";
mes "since the Falcon Flute won't disappear upon usage, isn't that great?"; mes "since the Falcon Flute won't disappear upon usage, isn't that great?";
close; close;
} }
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Here take this Flute."; mes "Here take this Flute.";
mes "With it you can whistle for your Falcon from anywhere."; mes "With it you can whistle for your Falcon from anywhere.";
set Zeny, Zeny - 10000; set Zeny, Zeny - 10000;
getitem 12848,1; // Falcon Flute getitem 12848,1; // Falcon Flute
next; next;
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Just a reminder."; mes "Just a reminder.";
mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!"; mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!";
close; close;
} }
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!"; mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!";
close; close;
} }
} }
if (Class == Job_Baby_Archer || Class == Job_Archer) { if (Class == Job_Baby_Archer || Class == Job_Archer) {
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Hello young one!"; mes "Hello young one!";
mes "Currently i can't help you,"; mes "Currently i can't help you,";
mes "but why don't you return to me when you've become an great Hunter and learned how to handle Falcons properly?"; mes "but why don't you return to me when you've become an great Hunter and learned how to handle Falcons properly?";
close; close;
} }
mes "[Falcon Flute Trader]"; mes "[Falcon Flute Trader]";
mes "Isn't it a beautiful Day today?"; mes "Isn't it a beautiful Day today?";
close; close;
} }
hu_in01,386,306,3 duplicate(fflute) Falcon Flute Trader#fft 51 hu_in01,386,306,3 duplicate(fflute) Falcon Flute Trader#fft 51
pay_arche,91,134,3 duplicate(fflute) Falcon Flute Trader#fft2 51 pay_arche,91,134,3 duplicate(fflute) Falcon Flute Trader#fft2 51

View File

@ -1,150 +1,150 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= iRO Repeatable EXP Quests. //= iRO Repeatable EXP Quests.
//===== By: ================================================== //===== By: ==================================================
//= Masao //= Masao
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Custom Version. //= Custom Version.
//= Repeatable EXP Quest : Kill 50 Disguise or Loli Ruri. //= Repeatable EXP Quest : Kill 50 Disguise or Loli Ruri.
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.0 First version. //= 1.0 First version.
//============================================================ //============================================================
nif_fild02,332,327,4 script Deadman 795,{ nif_fild02,332,327,4 script Deadman 795,{
if (checkquest(60173) != -1) { if (checkquest(60173) != -1) {
if (checkquest(60173,HUNTING) != 2 ) { if (checkquest(60173,HUNTING) != 2 ) {
mes "[Deadman]"; mes "[Deadman]";
mes "Have you finished hunting the 50 Disguise?"; mes "Have you finished hunting the 50 Disguise?";
next; next;
switch(select("Yes:No:I want to quit")) { switch(select("Yes:No:I want to quit")) {
case 1: case 1:
mes "[Deadman]"; mes "[Deadman]";
mes "Hmm, I don't think you've hunted 50 yet."; mes "Hmm, I don't think you've hunted 50 yet.";
close; close;
case 2: case 2:
mes "[Deadman]"; mes "[Deadman]";
mes "Remember, I need help hunting Disguise so go and hunt 50 of them."; mes "Remember, I need help hunting Disguise so go and hunt 50 of them.";
close; close;
case 3: case 3:
mes "[Deadman]"; mes "[Deadman]";
mes "Are you sure that you want to stop hunting?"; mes "Are you sure that you want to stop hunting?";
mes "Any progress that you've made will be erased"; mes "Any progress that you've made will be erased";
next; next;
switch(select("Yes:No")) { switch(select("Yes:No")) {
case 1: case 1:
mes "[Deadman]"; mes "[Deadman]";
mes "Ok then, well come back here if you change your mind."; mes "Ok then, well come back here if you change your mind.";
erasequest 60173; erasequest 60173;
close; close;
case 2: case 2:
mes "[Deadman]"; mes "[Deadman]";
mes "Please kill 50 Disguise in order to make this a Place were people can go to and gather Experience."; mes "Please kill 50 Disguise in order to make this a Place were people can go to and gather Experience.";
close; close;
} }
} }
} }
mes "[Deadman]"; mes "[Deadman]";
mes "Amazing, you did that with speed."; mes "Amazing, you did that with speed.";
getexp 140600,95800; getexp 140600,95800;
erasequest 60173; erasequest 60173;
close; close;
} }
if (checkquest(60176) != -1) { if (checkquest(60176) != -1) {
if (checkquest(60176,HUNTING) != 2 ) { if (checkquest(60176,HUNTING) != 2 ) {
mes "[Deadman]"; mes "[Deadman]";
mes "Have you finished hunting the 50 Loli Ruri?"; mes "Have you finished hunting the 50 Loli Ruri?";
next; next;
switch(select("Yes:No:I want to quit")) { switch(select("Yes:No:I want to quit")) {
case 1: case 1:
mes "[Deadman]"; mes "[Deadman]";
mes "Hmm, I don't think you've hunted 50 yet."; mes "Hmm, I don't think you've hunted 50 yet.";
close; close;
case 2: case 2:
mes "[Deadman]"; mes "[Deadman]";
mes "Remember, I need help hunting Loli Ruri so go and hunt 50 of them."; mes "Remember, I need help hunting Loli Ruri so go and hunt 50 of them.";
close; close;
case 3: case 3:
mes "[Deadman]"; mes "[Deadman]";
mes "Are you sure that you want to stop hunting?"; mes "Are you sure that you want to stop hunting?";
mes "Any progress that you've made will be erased"; mes "Any progress that you've made will be erased";
next; next;
switch(select("Yes:No")) { switch(select("Yes:No")) {
case 1: case 1:
mes "[Deadman]"; mes "[Deadman]";
mes "Ok then, well come back here if you change your mind."; mes "Ok then, well come back here if you change your mind.";
erasequest 60176; erasequest 60176;
close; close;
case 2: case 2:
mes "[Deadman]"; mes "[Deadman]";
mes "Please kill 50 Loli Ruri in order to make this a Place were people can go to and gather Experience."; mes "Please kill 50 Loli Ruri in order to make this a Place were people can go to and gather Experience.";
close; close;
} }
} }
} }
mes "[Deadman]"; mes "[Deadman]";
mes "Amazing, you did that with speed."; mes "Amazing, you did that with speed.";
getexp 332000,239500; getexp 332000,239500;
erasequest 60176; erasequest 60176;
close; close;
} }
if ((BaseLevel > 59) && (BaseLevel < 99)) { if ((BaseLevel > 59) && (BaseLevel < 99)) {
mes "[Deadman]"; mes "[Deadman]";
mes "Oh great!"; mes "Oh great!";
mes "You are here to help me right?"; mes "You are here to help me right?";
mes "If not, i don't know what to do with the Monsters in this Place!"; mes "If not, i don't know what to do with the Monsters in this Place!";
next; next;
switch(select("Sure:No")) { switch(select("Sure:No")) {
case 1: case 1:
mes "[Deadman]"; mes "[Deadman]";
mes "Great! I knew the moment i saw you that i can count on you!"; mes "Great! I knew the moment i saw you that i can count on you!";
mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!";
mes "There are to many Disguise and Loli Ruri around, which makes it impossible for the lower level players to gain good experience here."; mes "There are to many Disguise and Loli Ruri around, which makes it impossible for the lower level players to gain good experience here.";
next; next;
mes "[Deadman]"; mes "[Deadman]";
mes "So, which of those Monsters would you like to hunt for me?"; mes "So, which of those Monsters would you like to hunt for me?";
next; next;
switch(select("Disguise:Loli Ruri:Cancel")) { switch(select("Disguise:Loli Ruri:Cancel")) {
case 1: case 1:
if(BaseLevel > 90){ if(BaseLevel > 90){
mes "[Deadman]"; mes "[Deadman]";
mes "Thank you for your great help with the Disguise!"; mes "Thank you for your great help with the Disguise!";
mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them.";
close; close;
} }
mes "[Deadman]"; mes "[Deadman]";
mes "Kill 50 of those Disguise and let me know when you're done. I will reward you for your efforts."; mes "Kill 50 of those Disguise and let me know when you're done. I will reward you for your efforts.";
setquest 60173; setquest 60173;
close; close;
case 2: case 2:
if(BaseLevel > 98){ if(BaseLevel > 98){
mes "[Deadman]"; mes "[Deadman]";
mes "Thank you for your great help with the Loli Ruri!"; mes "Thank you for your great help with the Loli Ruri!";
mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them.";
close; close;
} }
mes "[Deadman]"; mes "[Deadman]";
mes "Kill 50 of those Loli Ruri and let me know when you're done. I will reward you for your efforts."; mes "Kill 50 of those Loli Ruri and let me know when you're done. I will reward you for your efforts.";
setquest 60176; setquest 60176;
close; close;
case 3: case 3:
mes "[Deadman]"; mes "[Deadman]";
mes "If you change your mind, please come back."; mes "If you change your mind, please come back.";
close; close;
} }
case 2: case 2:
mes "[Deadman]"; mes "[Deadman]";
mes "If you change your mind, please come back."; mes "If you change your mind, please come back.";
close; close;
} }
} }
mes "[Deadman]"; mes "[Deadman]";
mes "Oh boy, Oh boy!"; mes "Oh boy, Oh boy!";
next; next;
mes "[Deadman]"; mes "[Deadman]";
mes "Sorry I can't talk right now I am in a world of pain here, these darn Disguise and Loli Ruri are going to kill me."; mes "Sorry I can't talk right now I am in a world of pain here, these darn Disguise and Loli Ruri are going to kill me.";
close; close;
} }

View File

@ -1,101 +1,101 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= iRO Repeatable EXP Quests. //= iRO Repeatable EXP Quests.
//===== By: ================================================== //===== By: ==================================================
//= Masao //= Masao
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Custom Version. //= Custom Version.
//= Repeatable EXP Quest : Kill 50 Mantis. //= Repeatable EXP Quest : Kill 50 Mantis.
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.0 First version. //= 1.0 First version.
//============================================================ //============================================================
lou_fild01,240,354,4 script Mantis Researcher 878,{ lou_fild01,240,354,4 script Mantis Researcher 878,{
if (checkquest(60179) != -1) { if (checkquest(60179) != -1) {
if (checkquest(60179,HUNTING) != 2 ) { if (checkquest(60179,HUNTING) != 2 ) {
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Have you finished hunting the 50 Mantis?"; mes "Have you finished hunting the 50 Mantis?";
next; next;
switch(select("Yes:No:I want to quit")) { switch(select("Yes:No:I want to quit")) {
case 1: case 1:
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Hmm, I don't think you've hunted 50 yet."; mes "Hmm, I don't think you've hunted 50 yet.";
close; close;
case 2: case 2:
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Remember, I need help hunting Mantis so go and hunt 50 of them."; mes "Remember, I need help hunting Mantis so go and hunt 50 of them.";
close; close;
case 3: case 3:
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Are you sure that you want to stop hunting?"; mes "Are you sure that you want to stop hunting?";
mes "Any progress that you've made will be erased"; mes "Any progress that you've made will be erased";
next; next;
switch(select("Yes:No")) { switch(select("Yes:No")) {
case 1: case 1:
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Ok then, well come back here if you change your mind."; mes "Ok then, well come back here if you change your mind.";
erasequest 60179; erasequest 60179;
close; close;
case 2: case 2:
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Please kill 50 Mantis in order to make this a Place were people can go to and gather Experience."; mes "Please kill 50 Mantis in order to make this a Place were people can go to and gather Experience.";
close; close;
} }
} }
} }
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Amazing, you did that with speed."; mes "Amazing, you did that with speed.";
getexp 18818,7527; getexp 18818,7527;
erasequest 60179; erasequest 60179;
close; close;
} }
if ((BaseLevel > 34) && (BaseLevel < 71)) { if ((BaseLevel > 34) && (BaseLevel < 71)) {
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Oh great!"; mes "Oh great!";
mes "You are here to help me right?"; mes "You are here to help me right?";
mes "If not, i don't know what to do with the Monsters in this Place!"; mes "If not, i don't know what to do with the Monsters in this Place!";
next; next;
switch(select("Sure:No")) { switch(select("Sure:No")) {
case 1: case 1:
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Great! I knew the moment i saw you that i can count on you!"; mes "Great! I knew the moment i saw you that i can count on you!";
mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!";
mes "There are to many Mantis around, which makes it impossible for the lower level players to gain good experience here."; mes "There are to many Mantis around, which makes it impossible for the lower level players to gain good experience here.";
next; next;
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "So, would you still like to help me?"; mes "So, would you still like to help me?";
next; next;
switch(select("Sure:Cancel")) { switch(select("Sure:Cancel")) {
case 1: case 1:
if(BaseLevel > 70){ if(BaseLevel > 70){
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Thank you for your great help with the Mantis!"; mes "Thank you for your great help with the Mantis!";
mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them.";
close; close;
} }
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Kill 50 of those Mantis and let me know when you're done. I will reward you for your efforts."; mes "Kill 50 of those Mantis and let me know when you're done. I will reward you for your efforts.";
setquest 60179; setquest 60179;
close; close;
case 2: case 2:
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "If you change your mind, please come back."; mes "If you change your mind, please come back.";
close; close;
} }
case 2: case 2:
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "If you change your mind, please come back."; mes "If you change your mind, please come back.";
close; close;
} }
} }
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Oh boy, Oh boy!"; mes "Oh boy, Oh boy!";
next; next;
mes "[Mantis Researcher]"; mes "[Mantis Researcher]";
mes "Sorry I can't talk right now I am in a world of pain here, these darn Mantis are going to kill me."; mes "Sorry I can't talk right now I am in a world of pain here, these darn Mantis are going to kill me.";
close; close;
} }

View File

@ -1,101 +1,101 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= iRO Repeatable EXP Quests. //= iRO Repeatable EXP Quests.
//===== By: ================================================== //===== By: ==================================================
//= Masao //= Masao
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0 //= 1.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= Custom Version. //= Custom Version.
//= Repeatable EXP Quest : Kill 50 Zhu Po Long. //= Repeatable EXP Quest : Kill 50 Zhu Po Long.
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.0 First version. //= 1.0 First version.
//============================================================ //============================================================
lou_dun02,161,264,4 script Dragon Hunter 732,{ lou_dun02,161,264,4 script Dragon Hunter 732,{
if (checkquest(60182) != -1) { if (checkquest(60182) != -1) {
if (checkquest(60182,HUNTING) != 2 ) { if (checkquest(60182,HUNTING) != 2 ) {
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Have you finished hunting the 50 Zhu Po Long?"; mes "Have you finished hunting the 50 Zhu Po Long?";
next; next;
switch(select("Yes:No:I want to quit")) { switch(select("Yes:No:I want to quit")) {
case 1: case 1:
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Hmm, I don't think you've hunted 50 yet."; mes "Hmm, I don't think you've hunted 50 yet.";
close; close;
case 2: case 2:
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Remember, I need help hunting Zhu Po Long so go and hunt 50 of them."; mes "Remember, I need help hunting Zhu Po Long so go and hunt 50 of them.";
close; close;
case 3: case 3:
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Are you sure that you want to stop hunting?"; mes "Are you sure that you want to stop hunting?";
mes "Any progress that you've made will be erased"; mes "Any progress that you've made will be erased";
next; next;
switch(select("Yes:No")) { switch(select("Yes:No")) {
case 1: case 1:
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Ok then, well come back here if you change your mind."; mes "Ok then, well come back here if you change your mind.";
erasequest 60182; erasequest 60182;
close; close;
case 2: case 2:
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Please kill 50 Zhu Po Long in order to make this a Place were people can go to and gather Experience."; mes "Please kill 50 Zhu Po Long in order to make this a Place were people can go to and gather Experience.";
close; close;
} }
} }
} }
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Amazing, you did that with speed."; mes "Amazing, you did that with speed.";
getexp 151300,60520; getexp 151300,60520;
erasequest 60182; erasequest 60182;
close; close;
} }
if ((BaseLevel > 49) && (BaseLevel < 91)) { if ((BaseLevel > 49) && (BaseLevel < 91)) {
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Oh great!"; mes "Oh great!";
mes "You are here to help me right?"; mes "You are here to help me right?";
mes "If not, i don't know what to do with the Monsters in this Place!"; mes "If not, i don't know what to do with the Monsters in this Place!";
next; next;
switch(select("Sure:No")) { switch(select("Sure:No")) {
case 1: case 1:
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Great! I knew the moment i saw you that i can count on you!"; mes "Great! I knew the moment i saw you that i can count on you!";
mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!"; mes "I need you to reduce the Amount of Monsters which are currently rampaging on this Map!";
mes "There are to many Zhu Po Long around, which makes it impossible for the lower level players to gain good experience here."; mes "There are to many Zhu Po Long around, which makes it impossible for the lower level players to gain good experience here.";
next; next;
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "So, would you still like to help me?"; mes "So, would you still like to help me?";
next; next;
switch(select("Sure:Cancel")) { switch(select("Sure:Cancel")) {
case 1: case 1:
if(BaseLevel > 90){ if(BaseLevel > 90){
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Thank you for your great help with the Zhu Po Long!"; mes "Thank you for your great help with the Zhu Po Long!";
mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them."; mes "Currently the Situation is stable and i'm not in need of your help anymore to kill them.";
close; close;
} }
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Kill 50 of those Zhu Po Long and let me know when you're done. I will reward you for your efforts."; mes "Kill 50 of those Zhu Po Long and let me know when you're done. I will reward you for your efforts.";
setquest 60182; setquest 60182;
close; close;
case 2: case 2:
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "If you change your mind, please come back."; mes "If you change your mind, please come back.";
close; close;
} }
case 2: case 2:
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "If you change your mind, please come back."; mes "If you change your mind, please come back.";
close; close;
} }
} }
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Oh boy, Oh boy!"; mes "Oh boy, Oh boy!";
next; next;
mes "[Dragon Hunter]"; mes "[Dragon Hunter]";
mes "Sorry I can't talk right now I am in a world of pain here, these darn Zhu Po Long are going to kill me."; mes "Sorry I can't talk right now I am in a world of pain here, these darn Zhu Po Long are going to kill me.";
close; close;
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,59 +1,59 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Pile Bunker Quest //= Pile Bunker Quest
//===== By: ================================================== //===== By: ==================================================
//= JayPee Mateo //= JayPee Mateo
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 2.0 //= 2.0
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
//= 1.0 A Pile Bunker quest based on iRO WiKi. [JayPee Mateo] //= 1.0 A Pile Bunker quest based on iRO WiKi. [JayPee Mateo]
//= iRO WiKi Link: http://irowiki.org/wiki/Pile_Bunker_quest //= iRO WiKi Link: http://irowiki.org/wiki/Pile_Bunker_quest
//= 2.0 Rewrited the Script a little so it looks a bit better. [Masao] //= 2.0 Rewrited the Script a little so it looks a bit better. [Masao]
//============================================================ //============================================================
yuno,179,174,5 script Gomer 813,{ yuno,179,174,5 script Gomer 813,{
if(Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic){ if(Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic){
mes "[Gomer]"; mes "[Gomer]";
mes "Hello "+strcharinfo(0)+","; mes "Hello "+strcharinfo(0)+",";
mes "My name is Gomer and i can create Pile Bunkers for you if you bring me the required Items i need."; mes "My name is Gomer and i can create Pile Bunkers for you if you bring me the required Items i need.";
next; next;
switch(select("Required items for Pile Bunker?:I brought the materials!")){ switch(select("Required items for Pile Bunker?:I brought the materials!")){
case 1: case 1:
mes "[Gomer]"; mes "[Gomer]";
mes "These are the required Items:"; mes "These are the required Items:";
mes "1x Brocca"; mes "1x Brocca";
mes "200x Steel"; mes "200x Steel";
mes "30x Flexible Tube"; mes "30x Flexible Tube";
close; close;
case 2: case 2:
if(countitem(1415) < 1 || countitem(999) < 200 || countitem(7325) < 30){ if(countitem(1415) < 1 || countitem(999) < 200 || countitem(7325) < 30){
mes "[Gomer]"; mes "[Gomer]";
mes "You dont have all the required items. Just talk to me when you have all the requirements."; mes "You dont have all the required items. Just talk to me when you have all the requirements.";
close; close;
} }
mes "[Gomer]"; mes "[Gomer]";
mes "Great you brought me all the materials i needed!"; mes "Great you brought me all the materials i needed!";
next; next;
delitem 1415,1; // Brocca delitem 1415,1; // Brocca
delitem 999,50; // Steel delitem 999,50; // Steel
delitem 7325,30; // Flexible Tube delitem 7325,30; // Flexible Tube
getitem 1549,1; // Pile Bunker getitem 1549,1; // Pile Bunker
getitem 1360,1; // Two-Handed Axe getitem 1360,1; // Two-Handed Axe
mes "[Gomer]"; mes "[Gomer]";
mes "So please, take this Pile Bunker and this Two-Handed Axe i made for you."; mes "So please, take this Pile Bunker and this Two-Handed Axe i made for you.";
mes "If you need an new Pile Bunker just come and visit me again!"; mes "If you need an new Pile Bunker just come and visit me again!";
close; close;
} }
} }
if(BaseJob == Merchant){ if(BaseJob == Merchant){
mes "[Gomer]"; mes "[Gomer]";
mes "I'm sorry young one, but you do not seem ready yet to use the Pile Bunker."; mes "I'm sorry young one, but you do not seem ready yet to use the Pile Bunker.";
mes "Come back when you've grown in strength!"; mes "Come back when you've grown in strength!";
close; close;
} }
mes "[Gomer]"; mes "[Gomer]";
mes "Isn't it a beautiful Day today?"; mes "Isn't it a beautiful Day today?";
close; close;
} }

View File

@ -65,7 +65,7 @@ struct Login_Config {
int start_limited_time; // new account expiration time (-1: unlimited) int start_limited_time; // new account expiration time (-1: unlimited)
bool use_md5_passwds; // work with password hashes instead of plaintext passwords? bool use_md5_passwds; // work with password hashes instead of plaintext passwords?
int group_id_to_connect; // required group id to connect int group_id_to_connect; // required group id to connect
int min_group_id_to_connect; // minimum group id to connect int min_group_id_to_connect; // minimum group id to connect
bool check_client_version; // check the clientversion set in the clientinfo ? bool check_client_version; // check the clientversion set in the clientinfo ?
uint32 client_version_to_connect; // the client version needed to connect (if checking is enabled) uint32 client_version_to_connect; // the client version needed to connect (if checking is enabled)