summaryrefslogtreecommitdiff
path: root/npc/merchants
diff options
context:
space:
mode:
author(no author) <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-04 23:25:09 +0000
committer(no author) <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-04 23:25:09 +0000
commit195dffc20af1fb32c7e4119988911b72955aeabc (patch)
treeb60d2a5e72d64dc5fc21eb9ce0962631e774a4c9 /npc/merchants
downloadhercules-195dffc20af1fb32c7e4119988911b72955aeabc.tar.gz
hercules-195dffc20af1fb32c7e4119988911b72955aeabc.tar.bz2
hercules-195dffc20af1fb32c7e4119988911b72955aeabc.tar.xz
hercules-195dffc20af1fb32c7e4119988911b72955aeabc.zip
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@2 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'npc/merchants')
-rw-r--r--npc/merchants/2-2shop.txt1
-rw-r--r--npc/merchants/alchemist.txt120
-rw-r--r--npc/merchants/clothes_dyer.txt325
-rw-r--r--npc/merchants/custom/breeder.txt67
-rw-r--r--npc/merchants/custom/dye.txt176
-rw-r--r--npc/merchants/dye_maker.txt277
-rw-r--r--npc/merchants/grandpa_pharmacist.txt186
-rw-r--r--npc/merchants/hair_dyer.txt158
-rw-r--r--npc/merchants/inn.txt172
-rw-r--r--npc/merchants/milk_trader.txt63
-rw-r--r--npc/merchants/refine.txt873
-rw-r--r--npc/merchants/renters.txt155
-rw-r--r--npc/merchants/shops.txt205
13 files changed, 2778 insertions, 0 deletions
diff --git a/npc/merchants/2-2shop.txt b/npc/merchants/2-2shop.txt
new file mode 100644
index 000000000..c8d9edc9b
--- /dev/null
+++ b/npc/merchants/2-2shop.txt
@@ -0,0 +1 @@
+prontera.gat,155,211,5 shop 2-2 Class Shop 86,1950:-1,1952:-1,1954:-1,1956:-1,1958:-1,1960:-1,1801:-1,1803:-1,1805:-1,1811:-1,1809:-1,1901:-1,1903:-1,1905:-1,1909:-1,1911:-1,1907:-1,1550:-1,1551:-1,1552:-1,1553:-1,1554:-1,1555:-1,1556:-1,1557:-1,1558:-1,2341:-1,2343:-1 \ No newline at end of file
diff --git a/npc/merchants/alchemist.txt b/npc/merchants/alchemist.txt
new file mode 100644
index 000000000..41f8d1e8f
--- /dev/null
+++ b/npc/merchants/alchemist.txt
@@ -0,0 +1,120 @@
+//===== eAthena Script =======================================
+//= Alchemist Shop
+//===== By: ==================================================
+//= Darkchild (1.0)
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= eAthena 1.0+
+//===== Description: =========================================
+//= Selling Alchemist Shit :)
+//===== Additional Comments: =================================
+//= Working.
+//============================================================
+alde_alche.gat,24,188,3 script Gever AI Sharp 740,
+{
+ mes "[Gever AI Sharp]";
+ mes "Welcome to the Alchemist Union.";
+ mes "How can I assist you today?";
+ next;
+ menu "Purchase materials.",M_Material, "Purchase a production manual.",M_Manual, "Cancel Deal.", M_Bye;
+
+ M_Material:
+ mes "[Gever AI Sharp]";
+ mes "What would you like?";
+ next;
+ menu "Medicine Bowl - 8z",-,"Cancel.",M_Bye;
+
+ mes "[Gever AI Sharp]";
+ mes "How many do you want?";
+ mes "Enter '0' if you want to quit.";
+ next;
+ input @num;
+ if((@num < 1) || (@num > 10000)) goto M_Bye;
+ set @price,@num * 8;
+ mes "[Gever AI Sharp]";
+ if(zeny < @price) goto sL_NoZeny;
+ if (checkweight(@item,@num) == 0) goto sL_OverW;
+ set zeny,Zeny-@price;
+ getitem 7134,@num;
+ goto L_Bye;
+ M_Manual:
+ mes "[Gever AI Sharp]";
+ mes "What do you need?";
+ mes "Manuals are generally 100,000 zeny.";
+ mes "Except for a couple of special manuals.";
+ next;
+ menu "Potion Creation Guide",sM_Pot, "Alchohol Creation Guide",sM_Alc, "Bottle Grenade Creation Guide",sM_Gren,
+ "Acid Bottle Creation Guide",sM_Acid, "Plant Bottle Creation Guide",sM_Plant, "Marine Sphere Bottle Creation Guide",sM_Mar,
+ "Glistening Coat Creation Guide",sM_Coat, "Concentration Potion Creation Guide",sM_Con, "Cancel Deal.",M_Bye;
+ sM_Pot:
+ set @itemid,7144;
+ set @price,100000;
+ set @itemname$,"Potion";
+ goto L_Choice;
+ sM_Alc:
+ set @itemid,7127;
+ set @price,100000;
+ set @itemname$,"Alchohol";
+ goto L_Choice;
+ sM_Gren:
+ set @itemid,7128;
+ set @price,100000;
+ set @itemname$,"Bottle Grenade";
+ goto L_Choice;
+ sM_Acid:
+ set @itemid,7129;
+ set @price,100000;
+ set @itemname$,"Acid Bottle";
+ goto L_Choice;
+ sM_Plant:
+ set @itemid,7130;
+ set @price,100000;
+ set @itemname$,"Plant Bottle";
+ goto L_Choice;
+ sM_Mar:
+ set @itemid,7131;
+ set @price,100000;
+ set @itemname$,"Marine Sphere Bottle";
+ goto L_Choice;
+ sM_Coat:
+ set @itemid,7132;
+ set @price,100000;
+ set @itemname$,"Glistening Coat";
+ goto L_Choice;
+ sM_Con:
+ set @itemid,7133;
+ set @price,240000;
+ set @itemname$,"Concentration Potion";
+ goto L_Choice;
+ L_Choice:
+ mes "[Gever AI Sharp]";
+ mes "An " + @itemname$ + " Creation Guide??";
+ if(@price == 100000) mes "That will be 100,000 Zeny";
+ if(@price == 240000) mes "That will be 240,000 Zeny";
+ next;
+ menu "Purchase.",-,"Quit.",M_Bye;
+
+ mes "[Gever AI Sharp]";
+ if(zeny < @price) goto sL_NoZeny;
+ if (checkweight(@itemid,1) == 0) goto sL_OverW;
+ getitem @itemid,1;
+ set zeny,zeny-@price;
+ L_Bye:
+ mes "Thank you for buying!";
+ mes "Come again.";
+ close;
+
+ sL_NoZeny:
+ mes "You dont seem to have enough money.";
+ close;
+ sL_OverW:
+ mes "Hmm.... it seems that you are overweight...";
+ close;
+
+
+ M_Bye:
+ mes "[Gever AI Sharp]";
+ mes "Then come again next time.";
+ close;
+}
diff --git a/npc/merchants/clothes_dyer.txt b/npc/merchants/clothes_dyer.txt
new file mode 100644
index 000000000..374435892
--- /dev/null
+++ b/npc/merchants/clothes_dyer.txt
@@ -0,0 +1,325 @@
+//===== eAthena Script =======================================
+//= Clothes Dyer
+//===== By: ==================================================
+//= Usnul
+//===== Current Version: =====================================
+//= 2.0
+//===== Compatible With: =====================================
+//= eAthena 1.0+
+//===== Description: =========================================
+//= Clothes dyer with standard palletes
+//===== Additional Comments: =================================
+//= Fully working
+//============================================================
+
+
+// Dyer Ginedin Rephere ---------------------------------------------------
+prt_in.gat,284,168,2 script Dyer Ginedin Rephere 55,{
+ mes "[Dyer Ginedin Rephere]";
+ mes "11... 12... Mmm... good. I think I'll be able ot finish before tonights party. Oh! I didn't notice that you were here. Anyway how may I assist you?";
+M_Menu:
+ next;
+ menu "-Talk",L_Talk, "-Dye Clothing",L_Dye, "-Price list",L_PriceList, "-Cancel",L_End;
+
+ L_Talk:
+ mes "[Dyer Ginedin Rephere]";
+ mes "Life may have gotten a little better.... but when I look at all of the orders I've recieved... Whew!";
+ mes "It seems that the young women of Rune Midgard must be very well off these days.";
+ next;
+ mes "[Dyer Ginedin Rephere]";
+ mes "Not that I think that they are indulging in anything luxurious mind you.";
+ mes "I don't think there is anything wrong with the pursuit of beauty and being fashionable.";
+ next;
+ mes "[Dyer Ginedin Rephere]";
+ mes "For us humans, who have no colorful fur or decorative scales, clothes are one of the few ways we have to display our personality, style, and beauty.";
+ next;
+ mes "[Dyer Ginedin Rephere]";
+ mes "Haha... When I think about it, I really feel that my job is worthwhile. I believe that I provide a service that the people desire.";
+ next;
+ mes "[Dyer Ginedin Rephere]";
+ mes "Can you feel it too? The energy that is released when rough fabric and leather are brought to life with color?.....";
+ next;
+ mes "[Dyer Ginedin Rephere]";
+ mes "Although the process is very tedious and time consuming, the joy and happiness I feel when a dress is finished.....";
+ mes "more than makes up for all of the hard work!!";
+ goto M_Menu;
+
+ L_Dye:
+ mes "[Dyer Ginedin Rephere]";
+ if(Class==0) goto sL_Novice;
+ mes "Oh... you need my work? Well... okay sounds good.";
+ next;
+ mes "[Dyer Ginedin Rephere]";
+ mes "Please choose a color that suits you.";
+ next;
+ if(Sex==0) goto Female_dye;
+//=================================
+// Clothing Dyeing for Males
+//=================================
+
+Male_dye:
+ //1 Class
+ if(Class==5 || Class==1) goto L_Wiz_Hunt_Bard_SN_M;
+ if(Class==2) goto L_Mage_M;
+ if(Class==3) goto L_Archer_M;
+ if(Class==4) goto L_Aco_M;
+ if(Class==6) goto L_Thief_M;
+
+ //2 Class
+ if(Class==7 || Class==14) goto L_Knight_Crus_M;
+ if(Class==8 || Class==15) goto L_Priest_Monk_M;
+ if(Class==9 || Class==11 || Class==19 || Class==23) goto L_Wiz_Hunt_Bard_SN_M;
+ if(Class==10 || Class==18) goto L_BlackSmith_Alchemist_M;
+ if(Class==12) goto L_Assassin_M;
+ if(Class==17) goto L_Rogue_M;
+
+ //1 Class
+ L_Mage_M:
+ set @red, 1;
+ set @violet, 2;
+ set @orange, 3;
+ set @white, 4;
+ menu "- Red",L_Dye_Red,"- Violet",L_Dye_Violet,"- Orange",L_Dye_Orange,"- White",L_Dye_White,"- Cancel",L_End;
+ L_Archer_M:
+ set @red, 1;
+ set @violet, 2;
+ set @green, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Violet",L_Dye_Violet,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Aco_M:
+ set @blue, 1;
+ set @red, 2;
+ set @white, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Thief_M:
+ set @blue, 1;
+ set @red, 2;
+ set @green, 3;
+ set @white, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- White",L_Dye_White,"- Cancel",L_End;
+
+ //2 Class
+ L_Knight_Crus_M:
+ set @orange, 1;
+ set @violet, 2;
+ set @red, 3;
+ set @black, 4;
+ menu "- Orange",L_Dye_Orange,"- Violet",L_Dye_Violet,"- Red",L_Dye_Red,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Priest_Monk_M:
+ set @blue, 1;
+ set @green, 2;
+ set @red, 3;
+ set @white, 4;
+ menu "- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Red",L_Dye_Red,"- White",L_Dye_White,"- Cancel",L_End;
+ L_Wiz_Hunt_Bard_SN_M:
+ set @red, 1;
+ set @blue, 2;
+ set @green, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_BlackSmith_Alchemist_M:
+ set @red, 1;
+ set @green, 2;
+ set @white, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Green",L_Dye_Green,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Assassin_M:
+ set @blue, 1;
+ set @red, 2;
+ set @green, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Rogue_M:
+ set @red, 2;
+ set @green, 3;
+ menu "- Red",L_Dye_Red,"- Green",L_Dye_Green,"- Cancel",L_End;
+
+//=================================
+// Clothing Dyeing for Females
+//=================================
+Female_dye:
+ //1 Class
+ if(Class==1 || Class==4) goto L_Sword_Aco_F;
+ if(Class==2) goto L_Knight_Crus_F;
+ if(Class==3) goto L_Priest_F;
+ if(Class==5) goto L_Merch_F;
+ //2 Class
+ if(Class==7 || Class==14) goto L_Knight_Crus_F;
+ if(Class==8) goto L_Priest_F;
+ if(Class==9 || Class==16) goto L_Wiz_Sage_F;
+ if(Class==10 || Class==18) goto L_BlackSmith_Alchemist_F;
+ if(Class==11 || Class==20) goto L_Hunt_Dancer_F;
+ if(Class==12 || Class==17) goto L_Assassin_Rogue_F;
+ if(Class==23) goto L_SN_F;
+
+ //1 Class
+ L_Sword_Aco_F:
+ set @blue, 1;
+ set @red, 2;
+ set @green, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Merch_F:
+ set @violet, 1;
+ set @blue, 2;
+ set @green, 3;
+ set @black, 4;
+ menu "- Violet",L_Dye_Violet,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Thief_F:
+ set @blue, 1;
+ set @red, 2;
+ set @white, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
+
+ //2 Class
+ L_Knight_Crus_F:
+ set @red, 1;
+ set @blue, 2;
+ set @white, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Priest_F:
+ set @red, 1;
+ set @green, 2;
+ set @white, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Green",L_Dye_Green,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Wiz_Sage_F:
+ set @red, 1;
+ set @blue, 2;
+ set @white, 3;
+ set @green, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- White",L_Dye_White,"- Green",L_Dye_Green,"- Cancel",L_End;
+ L_Hunt_Dancer_F:
+ set @red, 1;
+ set @blue, 2;
+ set @green, 3;
+ set @violet, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Violet",L_Dye_Violet,"- Cancel",L_End;
+ L_BlackSmith_Alchemist_F:
+ set @red, 1;
+ set @green, 2;
+ set @violet, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Green",L_Dye_Green,"- Violet",L_Dye_Violet,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_Assassin_Rogue_F:
+ set @red, 1;
+ set @yellow, 2;
+ set @white, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Yellow",L_Dye_Yellow,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
+ L_SN_F:
+ set @blue, 1;
+ set @red, 2;
+ set @white, 3;
+ set @black, 4;
+ menu "- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
+
+L_Dye_Orange:
+ mes "[Dyer Ginedin Rephere]";
+ if(countitem(980) < 1) goto sL_NoDye;
+ if(Zeny < 10000) goto sL_Zeny;
+ mes "Ok. I will dye you clothes Orange.";
+ setlook 7,@orange;
+ delitem 980,1;
+ set Zeny, Zeny - 10000;
+ close;
+L_Dye_Violet:
+ mes "[Dyer Ginedin Rephere]";
+ if(countitem(981) < 1) goto sL_NoDye;
+ if(Zeny < 10000) goto sL_Zeny;
+ mes "Ok. I will dye you clothes Violet.";
+ setlook 7,@violet;
+ delitem 981,1;
+ set Zeny, Zeny - 10000;
+ close;
+L_Dye_Red:
+ mes "[Dyer Ginedin Rephere]";
+ if(countitem(975) < 1) goto sL_NoDye;
+ if(Zeny < 10000) goto sL_Zeny;
+ mes "Ok. I will dye you clothes red.";
+ setlook 7,@red;
+ delitem 975,1;
+ set Zeny, Zeny - 10000;
+ close;
+L_Dye_Black:
+ mes "[Dyer Ginedin Rephere]";
+ if(countitem(983) < 1) goto sL_NoDye;
+ if(Zeny < 10000) goto sL_Zeny;
+ mes "Ok. I will dye you clothes black.";
+ setlook 7,@black;
+ delitem 983,1;
+ set Zeny, Zeny - 10000;
+ close;
+L_Dye_Green:
+ mes "[Dyer Ginedin Rephere]";
+ if(countitem(979) < 1) goto sL_NoDye;
+ if(Zeny < 10000) goto sL_Zeny;
+ mes "Ok. I will dye you clothes green.";
+ setlook 7,@green;
+ delitem 979,1;
+ set Zeny, Zeny - 10000;
+ close;
+L_Dye_Blue:
+ mes "[Dyer Ginedin Rephere]";
+ if(countitem(978) < 1) goto sL_NoDye;
+ if(Zeny < 10000) goto sL_Zeny;
+ mes "Ok. I will dye you clothes blue.";
+ setlook 7,@blue;
+ delitem 978,1;
+ set Zeny, Zeny - 10000;
+ close;
+L_Dye_White:
+ mes "[Dyer Ginedin Rephere]";
+ if(countitem(982) < 1) goto sL_NoDye;
+ if(Zeny < 10000) goto sL_Zeny;
+ mes "Ok. I will dye you clothes white.";
+ setlook 7,@white;
+ delitem 982,1;
+ set Zeny, Zeny - 10000;
+ close;
+L_Dye_Yellow:
+ mes "[Dyer Ginedin Rephere]";
+ if(countitem(976) < 1) goto sL_NoDye;
+ if(Zeny < 10000) goto sL_Zeny;
+ mes "Ok. I will dye you clothes yellow.";
+ setlook 7,@yellow;
+ delitem 976,1;
+ set Zeny, Zeny - 10000;
+ close;
+
+ sL_Sorry:
+ mes "Wow, your clothes is very strange, I haven't seen anything like it before . Hmmm... I'm sorry, but there is no way I can paint it.";
+ close;
+ sL_NoDye:
+ mes "For me to dye your clothes, I'll need the appropriate Dyestuff. Please check my price list for the information.";
+ next;
+ goto L_PriceList;
+
+ sL_Zeny:
+ mes "I'm sorry but you don't have enough money.";
+ close;
+
+ sL_Novice:
+ mes "I'm sorry, but first you need to get a job.";
+ close;
+
+
+ L_PriceList:
+ mes "[Dyer Ginedin Rephere]";
+ mes "Here is the list of colors you can choose from and their prices:";
+ mes " - Red: 10000 zeny, 1 Scarlet Dyestuff";
+ mes " - Yellow: 10000 zeny, 1 Lemon Dyestuff";
+ mes " - Violet: 10000 zeny, 1 Violet Dyestuff";
+ mes " - Orange: 10000 zeny, 1 Orange Dyestuff";
+ mes " - Blue: 10000 zeny, 1 CobaltBlue Dyestuff";
+ mes " - Green: 10000 zeny, 1 DarkGreen Dyestuff";
+ goto M_Menu;
+
+ L_End:
+ mes "[Dyer Ginedin Rephere]";
+ mes "Make yourself at home. Even though I don't have time for you.";
+ close;
+}
diff --git a/npc/merchants/custom/breeder.txt b/npc/merchants/custom/breeder.txt
new file mode 100644
index 000000000..76fe3a700
--- /dev/null
+++ b/npc/merchants/custom/breeder.txt
@@ -0,0 +1,67 @@
+//Peco Peco breeder for Knight by Darkchild v1.1
+//FIXED checkriding/cart/falcon funcs [Lupus]
+
+prontera.gat,122,200,1 script Universal Rental Npc 726,{
+mes "[Universal Rental Npc]";
+mes "Hi, here you can rent Carts, Falcons or Pecopecos.";
+next;
+L_Menu:
+menu "Rent a Cart",L_Cart,"Rent a Falcon",L_Falcon,"Rent a Pecopeco",L_Peco,"Quit",L_Quit;
+close;
+L_Cart:
+if(Class == 5 && checkcart(0) == 0) goto L_Cart_Ok;
+if(Class == 10 && checkcart(0) == 0) goto L_Cart_Ok;
+if(Class == 18 && checkcart(0) == 0) goto L_Cart_Ok;
+if(Class == 4006 && checkcart(0) == 0) goto L_Cart_Ok;
+if(Class == 4011 && checkcart(0) == 0) goto L_Cart_Ok;
+if(Class == 4019 && checkcart(0) == 0) goto L_Cart_Ok;
+if(getskilllv(39)<1) goto L_Need_Skill;
+mes "[Universal Rental Npc]";
+mes "Sorry " + strcharinfo(0) + " but I only rent carts to Merchants, Blacksmiths and Alchimists who have enough skills to handle a cart.";
+close;
+L_Cart_Ok:
+ setcart;
+ goto L_Quit2;
+L_Need_Skill:
+mes "[Universal Rental Npc]";
+mes "Sorry you don't have the required skill to rent a cart.";
+close;
+L_Falcon:
+ if(Class == 11 && checkfalcon(0) == 0) goto L_falc;
+ if(Class == 4012 && checkfalcon(0) == 0) goto L_falc;
+ if(getskilllv(127)<1) goto L_Need_Skill2;
+ mes "[Universal Rental Npc]";
+ mes "Sorry " + strcharinfo(0) + " but I only rent falcons to Hunters who the ability to handle 'em.";
+ close;
+ L_falc:
+ setfalcon;
+ goto L_Quit2;
+L_Need_Skill2:
+mes "[Universal Rental Npc]";
+mes "Sorry you don't have the required skill to own a Falcon.";
+close;
+L_Peco:
+if (Class == 7 && checkriding(0) == 0) goto L_Peco_Ok;
+if (Class == 14 && checkriding(0) == 0) goto L_Peco_Ok;
+if (Class == 4008 && checkriding(0) == 0) goto L_Peco_Ok;
+if (Class == 4015 && checkriding(0) == 0) goto L_Peco_Ok;
+if(getskilllv(63)<1) goto L_Need_Skill3;
+mes "[Universal Rental Npc]";
+mes "Sorry" + strcharinfo(0) + "but I only rent pecopecos to Knight and Crusader who have the ability to handle 'em";
+close;
+L_Peco_Ok:
+setriding;
+goto L_Quit2;
+L_Need_Skill3:
+mes "[Universal Rental Npc]";
+mes "Sorry you don't have the required skill to ride a Peco Peco.";
+close;
+L_Quit:
+mes "[Universal Rental Npc]";
+mes strcharinfo(0) + ", please come back when you are ready to rent something.";
+close;
+L_Quit2:
+mes "[Universal Rental Npc]";
+mes strcharinfo(0) + ", please come again when you want another...";
+close;
+} \ No newline at end of file
diff --git a/npc/merchants/custom/dye.txt b/npc/merchants/custom/dye.txt
new file mode 100644
index 000000000..0c5d19741
--- /dev/null
+++ b/npc/merchants/custom/dye.txt
@@ -0,0 +1,176 @@
+//===== eAthena Script =======================================
+//= Stylist & Tailor Script (former Dye Script)
+//===== By: ==================================================
+//= eAthena Dev team
+//= Revised by Nekosume [pyRO v3.0]
+//===== Current Version: =====================================
+//= 4.0
+//===== Compatible With: =====================================
+//= Any eAthena Version
+//===== Description: =========================================
+//= Revised dye NPC, split into two NPCs, one for hair color
+//= and style, the other for clothes color.
+//===== Additional Comments: =================================
+//= v4.0 - Refined and Combined [Darkchild]
+//= v3.0 - Added the 'Browse' options
+//= v2.5 - Added more hair colors
+//= v2.0 - Changed palette and hair style select
+//= v1.5 - Revised script / different dialog
+//= v1.0 - Split into two NPCs
+//============================================================
+
+
+//Stylist------------------------------------------------------------------------------------------------------------
+prontera.gat,149,189,1 script Stylist 122,{
+ mes "[^FF8000Stylist^000000]";
+ mes "I'm the greatest stylist in all of Rune-Midgard~~!";
+ mes "I can change your hair style or color!";
+ mes "What do you wish to change?";
+ next;
+ menu "Hair style",Lstyle,"Hair color",Lcolor,"Cloth Color",Lcloth,"Nothing",LCancel;
+
+ Lstyle:
+ mes "[^FF8000Stylist^000000]";
+ mes "Do you want to browse through the choices, or do you know what you want?";
+ next;
+ menu "Browse",Lbrowsesty,"I know what I want",Lwantsty;
+
+ Lwantsty:
+ mes "[^FF8000Stylist^000000]";
+ mes "Great! Now just pick a style and I'll get started!";
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "Please pick a style number ^0000FFbetween 0 and 18^000000.";
+ mes "Number 0, by the way, is the default style for your character.";
+ next;
+ input @sty;
+ if (@sty>18) close;
+ if (@sty<0) close;
+ setlook 1,@sty;
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "Is this good, or do you want a different style?";
+ next;
+ menu "This is good",-,"Different style, please",Lwantsty;
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "You look great~! Come back again, okay?";
+ close;
+
+ Lbrowsesty:
+ set @look, -1;
+ mes "[^FF8000Stylist^000000]";
+ mes "Okay, here we go~! Just stop me when you see something you like, okay?";
+ next;
+
+ Lbrowserep:
+ set @look,@look+1;
+ setlook 1,@look;
+ mes "This is Pallete Number^FF9009 "+@look+" ^000000!";
+ if(@look == 18) menu "Back To The Begin",Lbrowsesty,"I like this one",Lstop;
+ if(@look != 18) menu "Keep going",Lbrowserep,"I like this one",Lstop;
+
+ Lcolor:
+ mes "[^FF8000Stylist^000000]";
+ mes "Do you want to browse through the choices, or do you know what you want?";
+ next;
+ menu "Browse",Lbrowsecolor,"I know what I want",Lwantcolor;
+
+ Lwantcolor:
+ mes "[^FF8000Stylist^000000]";
+ mes "Just pick a color and we can get started.";
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "Please pick a style number ^0000FFbetween 0 and 20^000000.";
+ mes "Number 0, by the way, is the default color for your character.";
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "0 is default...";
+ mes "1 is blonde...";
+ mes "2 is lavender...";
+ mes "3 is brown...";
+ mes "4 is green...";
+ mes "5 is blue...";
+ mes "6 is white...";
+ mes "7 is black...";
+ mes "8 is red...";
+ mes "and 9-20 are new colors.";
+ input @color;
+ if (@color>20) close;
+ if (@color<0) close;
+ setlook 6,@color;
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "Is this good, or do you want a different color?";
+ next;
+ menu "This is good",-,"Different color, please",Lwantcolor;
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "You look great~! Come back again, okay?";
+ close;
+
+ Lbrowsecolor:
+ set @look, -1;
+ mes "[^FF8000Stylist^000000]";
+ mes "Okay, here we go~! Just stop me when you see something you like, okay?";
+ next;
+
+ Lbrowsecolorrep:
+ set @look,@look+1;
+ setlook 6,@look;
+ mes "This is Pallete Number^FF9009 "+@look+" ^000000!";
+ if(@look == 20) menu "Back To The Begin",Lbrowsecolor,"I like this one",Lstop;
+ if(@look != 20) menu "Keep going",Lbrowsecolorrep,"I like this one",Lstop;
+
+ Lstop:
+ mes "[^FF8000Stylist^000000]";
+ mes "You look great~! I love it~! ^_^";
+ close;
+
+ LCancel:
+ mes "[^FF8000Stylist^000000]";
+ mes "Well come again.";
+ close;
+
+ Lcloth:
+ mes "[^FF8000Stylist^000000]";
+ mes "Do you want to browse through the choices, or do you know what you want?";
+ next;
+ menu "Browse",Lbrowsecloth,"I know what I want",Lwantcloth;
+
+ Lwantcloth:
+ mes "[^FF8000Stylist^000000]";
+ mes "Great! Now just pick a pallete and I'll get started!";
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "Please pick a style number ^0000FFbetween 0 and 77^000000.";
+ mes "Number 0, by the way, is the default style for your character.";
+ next;
+ input @pal;
+ if (@pal>77) close;
+ if (@pal<0) close;
+ setlook 7,@pal;
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "Is this good, or do you want a different pallet";
+ next;
+ menu "This is good",-,"Different pallet, please",Lwantcloth;
+ next;
+ mes "[^FF8000Stylist^000000]";
+ mes "You look great~! Come back again, okay?";
+ close;
+
+ Lbrowsecloth:
+ set @look, -1;
+ mes "[^FF8000Stylist^000000]";
+ mes "Okay, here we go~! Just stop me when you see something you like, okay?";
+ next;
+
+ Lbrowseclothrep:
+ set @look,@look+1;
+ setlook 7,@look;
+ mes "This is Pallete Number^FF9009 "+@look+" ^000000!";
+ if(@look == 77) menu "Back To The Begin",Lbrowsecloth,"I like this one",Lstop;
+ if(@look != 77) menu "Keep going",Lbrowseclothrep,"I like this one",Lstop;
+}
+
diff --git a/npc/merchants/dye_maker.txt b/npc/merchants/dye_maker.txt
new file mode 100644
index 000000000..d8b1cb181
--- /dev/null
+++ b/npc/merchants/dye_maker.txt
@@ -0,0 +1,277 @@
+//===== eAthena Script =======================================
+//= Dye Maker
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= eAthena 7.15 +
+//===== Description: =========================================
+//=
+//===== Additional Comments: =================================
+//= Fully working
+//============================================================
+
+
+
+// Dye Maker JavaDullihan =======================
+morocc_in.gat,146,99,2 script Dye Maker JavaDullihan 122,
+{
+ mes "[Dye Maker JavaDullihan]";
+ mes "Oh... What a Beautiful day today.";
+ mes "This is a perfect day to make Dyestuffs";
+ next;
+ menu "-Talk",M_Talk,"-Make Dyestuffs",M_Make,"-Cancel",M_End;
+
+ M_Talk:
+ mes "[Dye Maker JavaDullihan]";
+ mes "I don't have much to say...";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "But if you want to know about my past, I'm sure I have a few stories to tell.";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "Would you like to here some?";
+ next;
+ menu "-Sure, why not.",sM_0a,"-Maybe some other time.",sM_0b;
+
+ sM_0a:
+ mes "[Dye Maker JavaDullihan]";
+ mes "My father had been making dyestuffs since I was young... ..";
+ mes "I can still picture him making dyestuffs all day long.";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "Even durring the time of my mother's passing, my father kept making dyestuffs without end.";
+ mes "This made me angry at him. How could he keep making dyestuffs at a time like that?";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "I just couldn't understand what my father was thinking. I became very disapointed in him.";
+ mes "My fathers actions made me despise Dye Making, so I ran away from home. I survived by doing a variety of odd jobs.";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "However, as you can see, I ended up becoming a Dye Maker just like my father.";
+ mes "It's been 15 years since I first started making these goddamn things...";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "Now that I've been doing this for as long as I have... I think I can finally understand why my father fell in love with his job.";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "Why he sacrificed everything he had for this job...";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "Maybe it was because of how the colors got more and more beautifull each time...";
+ mes "Maybe he wanted to find his own perfet color...";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "I now have his feel for the colors... because... I am working with the same passion he had when he was living.";
+ mes "I am able to feel the colors from within my soul. I know it's hard to understand, but you will see what I mean.";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "Father, I make these dyes for you....";
+ close;
+
+ sM_0b:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Hahahaha... I guess I can't blame ya, who wants to here about a plain old dye maker's life anyhow.... Hahahaha...";
+ close;
+
+ M_Make:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Alright! I will make the exact color you want. The cost of the dyestuff will depend on its quality.";
+ mes "Don't not be itimitaded by the prices, they are all my Masterpieces.";
+ next;
+ mes "[Dye Maker JavaDullihan]";
+ mes "So what color do you want?";
+ next;
+ menu "-Scarlet Dyestuffs",sM_Scarlet, "-Lemon Dyestuffs",sM_Lemon, "-Cobaltblue Dyestuffs",sM_Cobaltblue,
+ "-Darkgreen Dyestuffs",sM_Darkgreen, "-Orange Dyestuffs",sM_Orange, "-Violet Dyestuffs",sM_Violet,
+ "-White Dyestuffs",sM_White, "-Black Dyestuffs",sM_Black;
+
+ sM_Scarlet:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Hmm... To make a Scarlet Dyestuffs, I need ^0000ff30 Red Herbs, 1 Counteragent and 1 Empty Bottle^000000.";
+ mes "The cost of labor will be 3000 Zeny. Are you still interested?";
+ next;
+ menu "Make Dyestuffs",sm_Make0, "Cancel",sm_Cancel;
+
+ sm_Make0:
+ mes "[Dye Maker JavaDullihan]";
+ if((countitem(507) < 30) || (countitem(973) < 1) || (countitem(713) < 1)) goto sl_LowItems;
+ if(Zeny < 3000) goto sl_LowZeny;
+ mes "Missing text.";
+ mes "Under development";
+ delitem 507,30;
+ delitem 973,1;
+ delitem 713,1;
+ set Zeny, Zeny - 3000;
+ getitem 975,1;
+ close;
+
+ sM_Lemon:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Um... to make a Lemon Dyestuffs I need ^0000ff30 Yellow Herbs, 1 Counteragent, and 1 Empty Bottle^000000.";
+ mes "The cost of labor will be 3000 Zeny. Are you still interested?";
+ next;
+ menu "Make Dyestuffs",sm_Make1,"Cancel",sm_Cancel;
+
+ sm_Make1:
+ mes "[Dye Maker JavaDullihan]";
+ if((countitem(508) < 30) || (countitem(973) < 1) || (countitem(713) < 1)) goto sl_LowItems;
+ if(Zeny < 3000) goto sl_LowZeny;
+ mes "Missing text.";
+ mes "Under development";
+ delitem 508,30;
+ delitem 973,1;
+ delitem 713,1;
+ set Zeny, Zeny - 3000;
+ getitem 976,1;
+ close;
+
+ sM_Cobaltblue:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Hmm... To make a Cobaltblue Dyestuffs, I need ^0000ff20 Blue Herbs, 1 Counteragent, and 1 Empty Bottle^000000.";
+ mes "Blue Herbs are a little bit difficult to work with, so the cost of labor will be 3500 Zeny. Are you still interested?";
+ next;
+ menu "Make Dyestuffs",sm_Make2,"Cancel",sm_Cancel;
+
+ sm_Make2:
+ mes "[Dye Maker JavaDullihan]";
+ if((countitem(510) < 20) || (countitem(973) < 1) || (countitem(713) < 1)) goto sl_LowItems;
+ if(Zeny < 3500) goto sl_LowZeny;
+ mes "Missing text.";
+ mes "Under development";
+ delitem 510,20;
+ delitem 973,1;
+ delitem 713,1;
+ set Zeny, Zeny - 3500;
+ getitem 978,1;
+ close;
+
+ sM_Darkgreen:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Hmm... To make a Darkgreen Dyestuffs, I need ^0000ff5 Blue Herbs, 20 Green Herbs, 20 Yellow Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle^000000.";
+ mes "There are a lot of ingredients so please try to remember them all. The cost of labore will be 5000 Zeny. Are you still interested?";
+ mes "Ok are you ready?";
+ next;
+ menu "Make Dyestuffs",sm_Make3,"Cancel",sm_Cancel;
+
+ sm_Make3:
+ mes "[Dye Maker JavaDullihan]";
+ if((countitem(510) < 5) || (countitem(511) < 20) || (countitem(508) < 20) || (countitem(973) < 1) || (countitem(974) < 1) || (countitem(713)<1)) goto sl_LowItems;
+ if(Zeny < 5000) goto sl_LowZeny;
+ mes "Missing text.";
+ mes "Under development";
+ delitem 510,5;
+ delitem 511,20;
+ delitem 508,20;
+ delitem 973,1;
+ delitem 977,1;
+ delitem 713,1;
+ set Zeny, Zeny - 5000;
+ getitem 979,1;
+ close;
+
+ sM_Orange:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Hmm... To make a Orange Dyestuffs, I need ^0000ff20 Red Herbs, 20 Yellow Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle^000000.";
+ mes "The cost of labor is 5000 Zeny. Are you still interested?";
+ next;
+ menu "Make Dyestuffs",sm_Make4,"Cancel",sm_Cancel;
+
+ sm_Make4:
+ mes "[Dye Maker JavaDullihan]";
+ if((countitem(507) < 20) || (countitem(508) < 20) || (countitem(973) < 1) || (countitem(974) < 1) || (countitem(713) < 1)) goto sl_LowItems;
+ if(Zeny < 5000) goto sl_LowZeny;
+ mes "Missing text.";
+ mes "Under development";
+ delitem 507,20;
+ delitem 508,20;
+ delitem 973,1;
+ delitem 977,1;
+ delitem 713,1;
+ set Zeny, Zeny - 5000;
+ getitem 980,1;
+ close;
+
+ sM_Violet:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Hmm... To make a Violet Dyestuffs, I need ^0000ff10 Blue Herbs, 30 Red Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle^000000.";
+ mes "The cost of labor will be 5000 Zeny. Are you still interested?";
+ next;
+ menu "Make Dyestuffs",sm_Make5,"Cancel",sm_Cancel;
+
+ sm_Make5:
+ mes "[Dye Maker JavaDullihan]";
+ if((countitem(510) < 10) || (countitem(507) < 20) || (countitem(973) < 1) || (countitem(974) < 1) || (countitem(713) < 1)) goto sl_LowItems;
+ if(Zeny < 5000) goto sl_LowZeny;
+ mes "Missing text.";
+ mes "Under development";
+ delitem 510,10;
+ delitem 507,20;
+ delitem 973,1;
+ delitem 974,1;
+ delitem 713,1;
+ set Zeny, Zeny - 5000;
+ getitem 981,1;
+ close;
+
+ sM_White:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Umm... To make a White Dyestuffs, I need ^0000ff30 White Herbs, 1 Counteragent, and 1 Empty Bottle^000000.";
+ mes "The cost of labor will be 3000 Zeny. Are you still interested?";
+ next;
+ menu "Make Dyestuffs",sm_Make6,"Cancel",sm_Cancel;
+
+ sm_Make6:
+ mes "[Dye Maker JavaDullihan]";
+ if((countitem(509) < 30) || (countitem(973) < 1) || (countitem(713) < 1)) goto sl_LowItems;
+ if(Zeny < 3000) goto sl_LowZeny;
+ mes "Missing text.";
+ mes "Under development";
+ delitem 509,30;
+ delitem 973,1;
+ delitem 713,1;
+ set Zeny, Zeny - 3000;
+ getitem 982,1;
+ close;
+
+ sM_Black:
+ mes "[Dye Maker JavaDullihan]";
+ mes "Hmm... To make a Black Dyestuffs, I need ^0000ff30 Red, Yellow, and Green Herbs, 5 Blue Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle^000000.";
+ mes "This is the most difficult and time consuming dye to make, so I will have to charge a 7000 Zeny labor fee. Are you still interested?";
+ next;
+ menu "Make Dyestuffs",sm_Make7,"Cancel",sm_Cancel;
+
+ sm_Make7:
+ mes "[Dye Maker JavaDullihan]";
+ if((countitem(507) < 30) || (countitem(508) < 30) || (countitem(511) < 30) || (countitem(510) < 5) || (countitem(973) < 1) || (countitem(974) < 1) || (countitem(713)<1)) goto sl_LowItems;
+ if(Zeny < 7000) goto sl_LowZeny;
+ mes "Missing text.";
+ mes "Under development";
+ delitem 507,30;
+ delitem 508,30;
+ delitem 511,30;
+ delitem 510,5;
+ delitem 973,1;
+ delitem 974,1;
+ delitem 713,1;
+ set Zeny, Zeny - 7000;
+ getitem 983,1;
+ close;
+
+
+ sl_LowItems:
+ mes "Hmm... you don't have enough of the items needed for the dyestuffs. Come back when you do.";
+ close;
+
+ sl_LowZeny:
+ mes "You don't have enough zeny. I need to make a living ya know....";
+ close;
+
+ sm_Cancel:
+ mes "[Dye Maker JavaDullihan]";
+ mes "How could you have change your mind so quickly?... oh boy...";
+ close;
+ M_End:
+ close;
+}
diff --git a/npc/merchants/grandpa_pharmacist.txt b/npc/merchants/grandpa_pharmacist.txt
new file mode 100644
index 000000000..35e662a85
--- /dev/null
+++ b/npc/merchants/grandpa_pharmacist.txt
@@ -0,0 +1,186 @@
+//===== eAthena Script =======================================
+//= Grandpa Pharmacist
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= eAthena 7.15 +
+//===== Description: =========================================
+//= trade in items for potions
+//===== Additional Comments: =================================
+//= Fully working
+//= 1.1 Negative input bug fixed [Lupus]
+//============================================================
+
+
+
+
+alberta_in.gat,16,28,4 script Grampa Pharmacist 61,
+{
+ set @count, 0;
+
+ mes "[Grampa Pharmacist]";
+ mes "Hmmm... what do you want...?";
+ next;
+ menu "Make Potion",M_Make, "Talk",M_Talk, "Information",M_Info, "Cancel",M_End;
+
+ M_Make:
+ if(countitem(713) < 1) goto ssL_NdBottle;
+ mes "[Grampa Pharmacist]";
+ mes "Did you prepare all the items needed? If so what potion do you want?";
+ M_Menu:
+ next;
+ menu "Red Potion",M_0, "Orange Potion",M_1, "Yellow Potion",M_2, "White Potion",M_3, "Blue Potion",M_4, "Green Potion",M_5,
+ "Nah, I change my mind.",M_End;
+
+ M_0:
+ set @pot$, "red";
+ set @pot, 501;
+ set @item1, 507;
+ set @zeny, 3;
+ goto sL_Make;
+ M_1:
+ if(countitem(507)<1 || countitem(508)<1) goto ssL_NdHerbs;
+ if(Zeny < 5) goto ssL_NdZeny;
+ set @pot$, "orange";
+ set @pot, 502;
+ mes "[Grampa Pharmacist]";
+ mes "How many?";
+ next;
+ menu "As many as possible.",sM_1a, "I will set the amount.",sM_1b, "Nah, forget about it",M_Menu;
+
+ sM_1a:
+ if(countitem(507)<1 || countitem(508)<1 || countitem(713)<1 || Zeny< 5) goto ssL_End;
+ set @count, @count +1;
+ delitem 507, 1;
+ delitem 508, 1;
+ delitem 713, 1;
+ set Zeny, Zeny - 5;
+ goto sM_1a;
+
+ sM_1b:
+ input @count;
+ if(@count<1) goto ssL_NdNegative;
+ if(countitem(507)<@count || countitem(508)<@count) goto ssL_NdHerbs;
+ if(countitem(713) < @count) goto ssL_NdBottle;
+ if(Zeny<(5*@count)) goto ssL_NdZeny;
+ delitem 507, @count;
+ delitem 508, @count;
+ delitem 713, @count;
+ set Zeny, Zeny - (@zeny*@count);
+ goto ssL_End;
+
+ M_2:
+ set @pot$, "yellow";
+ set @pot, 503;
+ set @item1, 508;
+ set @zeny, 10;
+ goto sL_Make;
+ M_3:
+ set @pot$, "white";
+ set @pot, 504;
+ set @item1, 509;
+ set @zeny, 20;
+ goto sL_Make;
+ M_4:
+ set @pot$, "blue";
+ set @pot, 505;
+ set @item1, 510;
+ set @zeny, 30;
+ goto sL_Make;
+ M_5:
+ set @pot$, "green";
+ set @pot, 506;
+ set @item1, 511;
+ set @zeny, 3;
+
+ sL_Make:
+ if(countitem(@item1) < 2) goto ssL_NdHerbs;
+ if(Zeny < @zeny) goto ssL_NdZeny;
+
+ mes "[Grampa Pharmacist]";
+ mes "How many?";
+ next;
+ menu "As many as possible.",sM_0a, "I will set the amount.",sM_0b, "Nah, forget about it",M_Menu;
+
+ sM_0a:
+ if((countitem(@item1) < 2) || (countitem(713) < 1) || (Zeny < @zeny)) goto ssL_End;
+ set @count, @count +1;
+ delitem @item1, 2;
+ delitem 713, 1;
+ set Zeny, Zeny - @zeny;
+ goto sM_0a;
+
+ sM_0b:
+ input @count;
+ if(@count<1) goto ssL_NdNegative;
+ if(countitem(@item1) < (2*@count)) goto ssL_NdHerbs;
+ if(countitem(713) < @count) goto ssL_NdBottle;
+ if(Zeny < (@zeny*@count)) goto ssL_NdZeny;
+ delitem @item1, (2*@count);
+ delitem 713, @count;
+ set Zeny, Zeny - (@zeny*@count);
+
+ ssL_End:
+ mes "[Grampa Pharmacist]";
+ mes "Here are your "+@pot$+" potions.";
+ getitem @pot, @count;
+ close;
+
+ ssL_NdBottle:
+ mes "[Grampa Pharmacist]";
+ mes "You don't have enough empty tubes to put the medicine in you idiot!!";
+ close;
+
+ ssL_NdHerbs:
+ mes "[Grampa Pharmacist]";
+ mes "You rascal! What did you expect from me? You didn't even bring all of the right herbs!";
+ mes "Get lost!";
+ close;
+
+ ssL_NdNegative:
+ mes "[Grampa Pharmacist]";
+ mes "You dirty cheater! What did you expect from me? Next time set positive amount of the potions!";
+ mes "Get off!";
+ close;
+
+ ssL_NdZeny:
+ mes "[Gramp Pharmacist]";
+ mes "You don't have enough zeny for potions.";
+ close;
+
+ M_Talk:
+ mes "[Grampa Pharmacist]";
+ mes "The right type of medicinal Herbs can replenish a person's HP or SP.";
+ mes "~Sigh~ I'm starting to reminisce about my youth.... a sign that I must be getting old.....";
+ next;
+ mes "[Grampa Pharmacist]";
+ mes "Anyways, a potion is merely an, 'easy to use', form of medicinal Herbs..... nothing more and nothing less.";
+ close;
+ M_Info:
+ mes "[Grampa Pharmacist]";
+ mes "~Sigh~... you young ones can be quite bothersome... Fine, I will explain to you how potions work....";
+ next;
+ mes "[Grampa Pharmacist]";
+ mes "Though the bennefits from consuming the various Herbs found around Rune-Midgard are great......";
+ mes "By refining them into potions, the effects of the Herbs are dramatically enhanced.";
+ next;
+ mes "[Grampa Pharmacist]";
+ mes "The process of refining herbs into potions is a special one that I created. For a small fee I can make any potion you desire.";
+ next;
+ mes "[Grampa Pharmacist]";
+ mes "^FF5533Red Potion^000000 - 2 Red Herbs, 1 Empty Bottle, 2 Zeny fee.";
+ mes "^FF8000Orange Potion^000000 - 1 Red Herb, 1 Yellow Herb, 1 Empty Bottle, 5 Zeny fee.";
+ mes "^E8CF20Yellow Potion^000000 - 2 Yellow Herbs, 1 Empty Bottle, 10 Zeny fee.";
+ next;
+ mes "[Grampa Pharmacist]";
+ mes "^999999White Potion^000000 - 2 White Herbs, 1 Empty Bottle, 20 Zeny fee.";
+ mes "^3355FFBlue Potion^000000 - 2 Blue Herbs, 1 Empty Bottle, 30 Zeny fee.";
+ mes "^00B000Green Potion^000000 - 2 Green Herbs, 1 Empty Bottle, 3 Zeny fee.";
+ close;
+ M_End:
+ mes "[Grampa Pharmacist]";
+ mes "Didn't you have something to say?!";
+ close;
+}
diff --git a/npc/merchants/hair_dyer.txt b/npc/merchants/hair_dyer.txt
new file mode 100644
index 000000000..61bda6f1b
--- /dev/null
+++ b/npc/merchants/hair_dyer.txt
@@ -0,0 +1,158 @@
+//===== eAthena Script =======================================
+//= Hair Dyer
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= eAthena 7.15 +
+//===== Description: =========================================
+//= Hair Dyer with standard palletes
+//===== Additional Comments: =================================
+//= Fully working
+//= 1.1 Bugfix: fixed missing menu label LEnd->M_End [Lupus]
+//============================================================
+
+
+
+
+// HairDyer Jovovich -----------------------------------------------------
+prt_in.gat,243,168,4 script HairDyer Jovovich 91,{
+ mes "[HairDyer Jovovich]";
+ mes "Welcome to my Hair Dying shop.";
+ next;
+ mes "[HairDyer Jovovich]";
+ mes "Oh my..... your hair does not look like it's in good condition. I think it needs some special care. Come have a seat.";
+ qMenu0:
+ next;
+ menu "-Dye Hair.",M_0, "-Price List",M_1, "-Hair Tips",M_2, "-Cancel",M_End;
+
+ M_0:
+ mes "[HairDyer Jovovich]";
+ mes "Hohoho~ That's a good choice~~ Any time is a good time to change your hair color.";
+ next;
+ mes "[HairDyer Jovovich]";
+ mes "Please choose a color that suits you";
+ next;
+ menu "-Red please.",sM_a, "-Yellow please.",sM_b, "-Violet please.",sM_c, "-Orange please.",sM_d, "-Green please.",sM_e,
+ "-Blue please.",sM_f, "-White please.",sM_g, "-Black please.",sM_h, "-Sorry, I changed my mind.",M_End;
+
+ sM_a:
+ mes "[HairDyer Jovovich]";
+ if(countitem(975) < 1) goto sL_NoDye;
+ if(Zeny < 1000) goto sL_Zeny;
+ mes "Ok. I will dye you hair red.";
+ setlook 6,8;
+ delitem 975,1;
+ set Zeny, Zeny - 1000;
+ close;
+
+ sM_b:
+ mes "[HairDyer Jovovich]";
+ if(countitem(976) < 1) goto sL_NoDye;
+ if(Zeny < 1000) goto sL_Zeny;
+ mes "Ok. I will dye you hair yellow.";
+ setlook 6,1;
+ delitem 976,1;
+ set Zeny, Zeny - 1000;
+ close;
+
+ sM_c:
+ mes "[HairDyer Jovovich]";
+ if(countitem(981) < 1) goto sL_NoDye;
+ if(Zeny < 1000) goto sL_Zeny;
+ mes "Ok. I will dye you hair Violet.";
+ setlook 6,2;
+ delitem 981,1;
+ set Zeny, Zeny - 1000;
+ close;
+
+ sM_d:
+ mes "[HairDyer Jovovich]";
+ if(countitem(980) < 1) goto sL_NoDye;
+ if(Zeny < 1000) goto sL_Zeny;
+ mes "Ok. I will dye you hair Orange.";
+ setlook 6,3;
+ delitem 980,1;
+ set Zeny, Zeny - 1000;
+ close;
+
+ sM_e:
+ mes "[HairDyer Jovovich]";
+ if(countitem(979) < 1) goto sL_NoDye;
+ if(Zeny < 1000) goto sL_Zeny;
+ mes "Ok. I will dye you hair Green.";
+ setlook 6,4;
+ delitem 979,1;
+ set Zeny, Zeny - 1000;
+ close;
+
+ sM_f:
+ mes "[HairDyer Jovovich]";
+ if(countitem(978) < 1) goto sL_NoDye;
+ if(Zeny < 1000) goto sL_Zeny;
+ mes "Ok. I will dye you hair blue.";
+ setlook 6,5;
+ delitem 978,1;
+ set Zeny, Zeny - 1000;
+ close;
+
+ sM_g:
+ mes "[HairDyer Jovovich]";
+ if(countitem(982) < 1) goto sL_NoDye;
+ if(Zeny < 1000) goto sL_Zeny;
+ mes "Ok. I will dye you hair white.";
+ setlook 6,6;
+ delitem 982,1;
+ set Zeny, Zeny - 1000;
+ close;
+
+ sM_h:
+ mes "[HairDyer Jovovich]";
+ if(countitem(983) < 1) goto sL_NoDye;
+ if(Zeny < 1000) goto sL_Zeny;
+ mes "Ok. I will dye you hair black.";
+ setlook 6,7;
+ delitem 983,1;
+ set Zeny, Zeny - 1000;
+ close;
+
+ sL_NoDye:
+ mes "For me to dye your hair, I'll need the appropriate Dyestuff. Please check my price list for the information.";
+ close;
+
+ sL_Zeny:
+ mes "I'm sorry but you don't have enough money.";
+ close;
+
+ M_1:
+ mes "[HairDyer Jovovich]";
+ mes "Here is the list of colors you can choose from and their prices:";
+ mes " - Red: 1000 zeny, 1 Scarlet Dyestuff";
+ mes " - Yellow: 1000 zeny, 1 Lemon Dyestuff";
+ mes " - Violet: 1000 zeny, 1 Violet Dyestuff";
+ mes " - Orange: 1000 zeny, 1 Orange Dyestuff";
+ mes " - Green: 1000 zeny, 1 DarkGreen Dyestuff";
+ mes " - Blue: 1000 zeny, 1 CobaltBlue Dyestuff";
+ mes " - White: 1000 zeny, 1 White Dyestuff";
+ mes " - Black: 1000 zeny, 1 Black Dyestuff";
+ goto qMenu0;
+
+ M_2:
+ mes "[HairDyer Jovovich]";
+ mes "When your just feeling gloomy, of if you just got dumped... if you want to look hot, or when you just need to look better.....";
+ next;
+ mes "[HairDyer Jovovich]";
+ mes "Change the color of your hair and your bound to regain your confidence and add an extra bounce to your step!!";
+ next;
+ mes "[HairDyer Jovovich]";
+ mes "For the small price of 1000 zeny and a Dyestuff, I can give you the haircolor you've been dreaming of!";
+ next;
+ goto qMenu0;
+
+ M_End:
+ mes "[HairDyer Jovovich]";
+ mes "I think... every human being has the right to become beautiful......";
+ close;
+}
+
diff --git a/npc/merchants/inn.txt b/npc/merchants/inn.txt
new file mode 100644
index 000000000..dfc0e7c3c
--- /dev/null
+++ b/npc/merchants/inn.txt
@@ -0,0 +1,172 @@
+//===== eAthena Script =======================================
+//= Inn Npcs
+//===== By: ==================================================
+//= Darkchild (1.1)
+//===== Current Version: =====================================
+//= 1.1a
+//===== Compatible With: =====================================
+//= eAthena 1.0+
+//===== Description: =========================================
+//= Inn Npcs, Save and Heal
+//=====================================================
+//= variables:
+//= arg0 - name of npc
+//= arg1 - name of the inn
+//= arg2 - map to save at
+//= arg3, arg4 - x and y cord. to save at
+//= @cost - cost of renting a room
+//===== Additional Comments: =================================
+//= 1.1 Blind Effect By Kobra_k88 (Taken from his old script)
+//= I added it to all of them though [Darkchild]
+//= 1.1a Minor bug fixes and optimizations. Switched from @variables
+//= to arguments.[kobra_k88]
+//============================================================
+
+
+//======================== Prontera ===================================
+// West Side Inn -------------------
+prt_in.gat,244,135,2 script Inn Maid::Sammy 53,{
+
+ callfunc "F_InnMaid","[Sammy]","West Inn","prt_in.gat",238,130;
+ addtimer 3900, "Sammy::OnTimerWarp";
+ close;
+
+OnTimerWarp:
+ warp "prt_in.gat",237,102;
+ sc_end SC_BLIND;
+ end;
+}
+// East Side Inn ------------------
+prt_in.gat,61,141,2 script Inn Maid::Ahlma 53,{
+
+ callfunc "F_InnMaid","[Ahlma]","East Inn","prt_in.gat",64,136;
+ addtimer 3900, "Ahlma::OnTimerWarp";
+ close;
+
+OnTimerWarp:
+ warp "prt_in.gat",49,173;
+ sc_end SC_BLIND;
+ end;
+}
+
+//======================== Alberta ====================================
+// North --------------------------
+alberta_in.gat,32,142,5 script Inn Maid::Moira 53,{
+
+ callfunc "F_InnMaid","[Moira]","North Inn","alberta_in.gat",26,138;
+ addtimer 3900, "Moira::OnTimerWarp";
+ close;
+
+OnTimerWarp:
+ warp "alberta_in.gat",18,188;
+ sc_end SC_BLIND;
+ end;
+}
+// South -----------------------------
+alberta_in.gat,55,142,8 script Inn Maid::Tina 53,{
+
+ callfunc "F_InnMaid","[Tina]","South Inn","alberta_in.gat",60,140;
+ addtimer 3900, "Tina::OnTimerWarp";
+ close;
+
+OnTimerWarp:
+ warp "alberta_in.gat",68,188;
+ sc_end SC_BLIND;
+ end;
+}
+
+//====================== Geffen ======================================
+geffen_in.gat,70,64,5 script Inn Maid::Betty 53,{
+
+ callfunc "F_InnMaid","[Betty]","Inn","geffen_in.gat",74,60;
+ addtimer 3900, "Betty::OnTimerWarp";
+ close;
+
+OnTimerWarp:
+ warp "geffen_in.gat",106,106;
+ sc_end SC_BLIND;
+ end;
+}
+
+//======================= Payon ======================================
+payon_in01.gat,131,62,5 script Inn Maid::SunHee 53,{
+
+ callfunc "F_InnMaid","[Sun Hee]","Inn","payon_in01.gat",132,56;
+ addtimer 3900, "SunHee::OnTimerWarp";
+ close;
+
+OnTimerWarp:
+ warp "payon_in01.gat",140,15;
+ sc_end SC_BLIND;
+ close;
+}
+
+//======================== Morocc ====================================
+// North East --------------------------
+morocc_in.gat,147,138,5 script Inn Maid::Suzie 53,{
+
+ callfunc "F_InnMaid","[Suzie]","North East Inn","morocc_in.gat",142,140;
+ addtimer 3900, "Suzie::OnTimerWarp";
+ close;
+
+OnTimerWarp:
+ warp "morocc_in.gat",174,144;
+ sc_end SC_BLIND;
+ end;
+}
+// South --------------------------------
+morocc_in.gat,80,100,5 script Inn Maid::Shala 53,{
+
+ callfunc "F_InnMaid","[Shala]","South Inn","morocc_in.gat",78,95;
+ addtimer 3900, "Shala::OnTimerWarp";
+ close;
+
+OnTimerWarp:
+ warp "morocc_in.gat",74,128;
+ sc_end SC_BLIND;
+ end;
+}
+
+//======================= Inn Function ==============================
+function script F_InnMaid {
+ mes getarg(0);
+ mes "Welcome to Nenkaras " + getarg(1) + ". What can I do for you?";
+ next;
+ menu "Save",Msave, "Rent a Room",Mrent, "Nothing",Mend;
+
+ Msave:
+ mes getarg(0);
+ mes "Location Saved.";
+ mes "I am waiting for another job to do.";
+ savepoint getarg(2),getarg(3),getarg(4);
+ close;
+ Mrent:
+ set @cost,50;
+ if(BaseLevel > 15) set @cost,100;
+ if(BaseLevel > 30) set @cost,200;
+ if(BaseLevel > 50) set @cost,300;
+ if(BaseLevel > 75) set @cost,400;
+ mes getarg(0);
+ mes "It will cost " + @cost + " zeny to rent a room for 1 night.";
+ mes "In the morning your HP and SP will be fully recovered.";
+ next;
+ menu "Ok.",-,"No thanks.",Mend;
+
+ mes getarg(0);
+ mes "Thank you and enjoy your stay here.";
+ emotion 15;
+ if(Zeny < @cost) goto NoZeny;
+ set Zeny,Zeny - @cost;
+ sc_start SC_BLIND,500000,1;
+ percentheal 100,100;
+ return;
+
+ NoZeny:
+ mes getarg(0);
+ mes "I'm sorry but you don't have enough money.";
+ close;
+ Mend:
+ mes getarg(0);
+ mes "I am waiting for a job to do.";
+ close;
+}
diff --git a/npc/merchants/milk_trader.txt b/npc/merchants/milk_trader.txt
new file mode 100644
index 000000000..6fb84e59c
--- /dev/null
+++ b/npc/merchants/milk_trader.txt
@@ -0,0 +1,63 @@
+//===== eAthena Script =======================================
+//= Milk Trader
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= eAthena 7.15 +
+//===== Description: =========================================
+//= trades bottles for milk
+//===== Additional Comments: =================================
+//= Fully working
+//= 1.1 Negative input bug fixed [Lupus]
+//============================================================
+
+
+
+
+// Milk Trader -------------------------------------------------------------
+prontera.gat,71,131,7 script Milk Trader 86,{
+ mes "[Milk Trader]";
+ mes "If you bring me an empty bottle and 15 zeny, I will exchange it for 1 bottle of milk.";
+ next;
+ menu "-Exchange all empty bottles",M_0, "-Let me set the amount.",M_1, "-Cancel",M_End;
+
+ M_0:
+ if(countitem(713) < 1) goto L_NoBottle;
+ if(Zeny < 15) goto L_NoZeny;
+
+ sL_GetMilk:
+ if(countitem(713)<1 || Zeny<15) goto M_End;
+ getitem 519,1;
+ delitem 713,1;
+ set Zeny, Zeny - 15;
+ goto sL_GetMilk;
+
+ M_1:
+ set @INPUT,0;
+ input @INPUT;
+ if(@INPUT < 1 ) goto M_End;
+ if(countitem(713) < @INPUT) goto L_NoBottle;
+ if(Zeny < (@INPUT*15)) goto L_NoZeny;
+ getitem 519, @INPUT;
+ delitem 713, @INPUT;
+ set Zeny, Zeny - (@INPUT*15);
+ goto M_End;
+
+ M_End:
+ mes "[Milk Trader]";
+ mes "Come back anytime.";
+ close;
+
+ L_NoBottle:
+ mes "[Milk Trader]";
+ mes "Ok, empty bottle please! Empty Bottle!!";
+ mes "... Aww.. you don't have enough...?";
+ close;
+
+ L_NoZeny:
+ mes "[Milk Trader]";
+ mes "You need more money.";
+ close;
+}
diff --git a/npc/merchants/refine.txt b/npc/merchants/refine.txt
new file mode 100644
index 000000000..78afaa01f
--- /dev/null
+++ b/npc/merchants/refine.txt
@@ -0,0 +1,873 @@
+//===== eAthena Script =======================================
+//= Refining NPCs
+//===== By: ==================================================
+//= Syrus22 (1.1)
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= Any Athena Version
+//===== Description: =========================================
+//= Refining NPCs and Metal Salesmen.
+//===== Additional Comments: =================================
+//= 1.0 by A bunch of people!
+//= Syrus22 - Completely redid the script using functions... also
+//= added the option for auto safe refining and multiple refining.
+//= 1.1 Negative input bug fixed [Lupus]
+//= 1.2 Added additional reparimen in morroc and payon. Added
+//= Christopher the blacksmith in Geffen. Edited some dialogue [kobra_k88]
+//= 1.3 New Payon Locations [Darkchild]
+//= Corrected zeny subtraction thx to jpnmania77.[kobra_k88]
+//============================================================
+
+
+//=========================================================
+// Christopher: Geffen Blacksmith
+//=========================================================
+geffen_in.gat,110,172,2 script Christopher 63,
+{
+ mes "[Christopher Guillenrow]";
+ mes "Welcome to Christopher's Workshop. Ye can find all yer forging equipment here. So what can I help ye with?";
+ M_Menu:
+ next;
+ menu "Purchase Anvil",M_0, "Purchase Forging Item",M_1, "Purchase Metal",M_2, "Purify Rough Ores",M_3, "Cancel",M_End;
+
+ M_0:
+ mes "[Christopher Guillenrow]";
+ mes "Higher quality Anvils gives ye a better chance ta make better weapons, ye know. But they cost more than yer typical ones.";
+ next;
+ menu "Anvil - 30000z.",sM_Anvil, "Oridecon Anvil - 120000z.",sM_OriAnvil, "Golden Anvil - 300000z.",sM_GolAnvil,
+ "Better Anvil than others",sM_BetAnvil, "Cancel",M_Menu;
+
+ sM_Anvil:
+ if(Zeny < 30000) goto L_NoZeny;
+ mes "[Christopher Guillenrow]";
+ mes "This is the cheapest one but it's very efficient.";
+ set Zeny, Zeny - 30000;
+ getitem 986,1;
+ next;
+ goto L_Thanks;
+ sM_OriAnvil:
+ if(Zeny < 120000) goto L_NoZeny;
+ mes "[Christopher Guillenrow]";
+ mes "Ah! Ye have a good eye for anvils. This here is the proper anvil for a Blacksmith.";
+ set Zeny, Zeny - 120000;
+ getitem 987,1;
+ next;
+ goto L_Thanks;
+ sM_GolAnvil:
+ if(Zeny < 300000) goto L_NoZeny;
+ mes "[Christopher Guillenrow]";
+ mes "This is the best anvil in my workshop! With this ye'll be the best Blasksmith in no time.";
+ set Zeny, Zeny - 300000;
+ getitem 988,1;
+ next;
+ goto L_Thanks;
+ sM_BetAnvil:
+ mes "[Christopher Guillenrow]";
+ mes "I'm sorry but I don't have anything better than a Golden Anvil.";
+ mes "Maybe 'Ringgel' the legendary Anvil maker would have one... but he be a hard fellow ta find.";
+ close;
+
+ M_1:
+ mes "[Christopher Guillenrow]";
+ mes "A respectable Blacksmith uses fine tools. Ye will come ta know my tools as being the finest around!";
+ mes "Choose anything you want.";
+ sM_Menu1:
+ next;
+ menu "Mini-Furnace - 150z.",sM_Furn, "Iron Hammer - 1000z.",sM_IrHam, "Golden Hammer - 3000z.",sM_GldHam,
+ "Oridecon Hammer - 5000z.",sM_OriHam, "Cancel",M_Menu;
+
+ sM_Furn:
+ mes "[Christopher Guillenrow]";
+ mes "This is a prerequisite for Metal refining!!";
+ mes "So, how many do ye wish to buy? If you want to quit, please input the number '0'.";
+ set @input, 0;
+ input @input;
+ next;
+ if(@input < 1 ) goto sM_Menu1;
+ if(Zeny < 150 * @input) goto L_NoZeny;
+ set Zeny, Zeny - (150 * @input);
+ getitem 612, @input;
+ goto L_Thanks;
+ sM_IrHam:
+ if(Zeny < 1000) goto L_NoZeny;
+ set Zeny, Zeny - 1000;
+ getitem 613,1;
+ goto L_Thanks;
+ sM_GldHam:
+ if(Zeny < 3000) goto L_NoZeny;
+ set Zeny, Zeny - 3000;
+ getitem 614,1;
+ goto L_Thanks;
+ sM_OriHam:
+ if(Zeny < 5000) goto L_NoZeny;
+ set Zeny, Zeny - 5000;
+ getitem 615,1;
+ goto L_Thanks;
+
+ M_2:
+ mes "[Christopher Guillenrow]";
+ mes "I have 2 kinds of metals for sale. Which do ye like?";
+ set @chris, 1;
+ set @name$, "Christopher Guillenrow";
+ callfunc "phramain";
+
+ M_3:
+ mes "[Christopher Guillenrow]";
+ mes "I can purify yer rough Oridecon and rough Elunium ores. I'll need 5 rough ores to make 1 pure one.";
+ mes "Well... which one do ye want ta make?";
+ set @chris, 1;
+ set @name$, "Christopher Guillenrow";
+ callfunc "orimain";
+
+ M_End:
+ close;
+
+ L_NoZeny:
+ mes "[Christopher Guillenrow]";
+ mes "I don't think I can let ye have this at a lower price. I can't afford ta loose profits because of ye.";
+ emotion 4;
+ close;
+
+ L_Thanks:
+ mes "[Christopher Guillenrow]";
+ mes "Thank you for shopping at my workshop. Feel free to come anytime whenever you need.";
+ emotion 15;
+ close;
+
+}
+
+
+
+//=====================================================================================
+//= Weapon/Armor Refiners
+//=====================================================================================
+prt_in.gat,63,60,4 script Hollengrhen 85,{
+ set @name$,"Hollengrhen";
+ callfunc "refinemain";
+ break;
+}
+morocc_in.gat,73,38,4 script Aragham 99,{
+ set @name$,"Aragham";
+ callfunc "refinemain";
+ break;
+}
+payon.gat,144,173,4 script Antonio 88,{
+ set @name$,"Antonio";
+ callfunc "refinemain";
+ break;
+}
+alberta_in.gat,28,58,4 script Fredrik 85,{
+ set @name$,"Fredrik";
+ callfunc "refinemain";
+ break;
+}
+yuno_in01.gat,164,26,6 script Disturb 88,{
+ set @name$,"Disturb";
+ callfunc "refinemain";
+ break;
+}
+
+//============================================================
+//= Main Refiner Function
+//============================================================
+//= To allow auto safe refining/multiple refining set the
+//= @features variable to 1
+//============================================================
+function script refinemain {
+ set @features,0;
+
+ mes "[" + @name$ + "]";
+ mes "I am the Armsmith... I can refine any weapon or piece of armor you choose!";
+ mes "Which piece of equipment do you want to refine?";
+ M_Menu:
+ next;
+ menu getequipname(1),PART1,getequipname(2),PART2,getequipname(3),PART3,getequipname(4),PART4,getequipname(5),PART5,
+ getequipname(6),PART6,getequipname(7),PART7,getequipname(8),PART8,getequipname(9),PART9,getequipname(10),PART10;
+
+ //Head Gear
+ PART1:
+ set @part,1;
+ if (getequipisequiped(1)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "Do you want me to refine your dumb brain?";
+ emotion 6;
+ goto M_Menu;
+ //Armor
+ PART2:
+ set @part,2;
+ if (getequipisequiped(2)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "Do you want me to melt your body with blazing heat...?";
+ emotion 6;
+ goto M_Menu;
+ //Left Hand
+ PART3:
+ set @part,3;
+ if (getequipisequiped(3)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "I can't make your left hand into an ultimate weapon...";
+ emotion 4;
+ goto M_Menu;
+ //Right Hand
+ PART4:
+ set @part,4;
+ if (getequipisequiped(4)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "I can't make your right hand into an ultimate weapon...";
+ emotion 4;
+ goto M_Menu;
+ //Garment
+ PART5:
+ set @part,5;
+ if (getequipisequiped(5)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "Look here... you don't have any Garments on....";
+ goto M_Menu;
+ //Foot Gear
+ PART6:
+ set @part,6;
+ if (getequipisequiped(6)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "Ack!! Those are some stinky feet. I definately can't refine those.... uck!!";
+ emotion 16;
+ goto M_Menu;
+ //Accessory1
+ PART7:
+ set @part,7;
+ if (getequipisequiped(7)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "What do you mean by Accessory? Which One?";
+ emotion 20;
+ goto M_Menu;
+ //Accessory2
+ PART8:
+ set @part,8;
+ if (getequipisequiped(8)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "What do you mean by Accessory? Which One?";
+ emotion 20;
+ goto M_Menu;
+ PART9:
+ set @part,9;
+ if (getequipisequiped(9)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "What do you want from me? There's nothing equiped there...";
+ emotion 20;
+ goto M_Menu;
+ PART10:
+ set @part,10;
+ if (getequipisequiped(10)) goto CHECK1;
+ mes "[" + @name$ + "]";
+ mes "What do you want from me? There's nothing equiped there...";
+ emotion 20;
+ goto M_Menu;
+
+//Check if the item is refinable...
+CHECK1:
+ if(getequipisenableref(@part)) goto CHECK2;
+ mes "[" + @name$ + "]";
+ mes "I can't work on this item...";
+ close;
+//Check if the item is identified... (Don't know why this is in here... but kept it anyway)
+CHECK2:
+ if(getequipisidentify(@part)) goto CHECK3;
+ mes "[" + @name$ + "]";
+ mes "You must appraise this item first.";
+ close;
+//Check to see if the items is already +10
+CHECK3:
+ if(getequiprefinerycnt(@part) < 10) goto REFINE0;
+ mes "[" + @name$ + "]";
+ mes "This weapon is allready at its maximum level and can no longer be refined.";
+ close;
+
+//Refine Armor
+REFINE0:
+ if(getequipweaponlv(@part) > 0) goto REFINE1;
+ set @matname$,"Elunium";
+ set @material,985;
+ set @price,2000;
+ set @safe,4;
+ if(@features == 1) callfunc "refinefeatures";
+ callfunc "refinenormal";
+//Refine Level 1 Weapon
+REFINE1:
+ if(getequipweaponlv(@part) > 1) goto REFINE2;
+ set @matname$,"Phracon";
+ set @material,1010;
+ set @price,50;
+ set @safe,7;
+ if(@features == 1) callfunc "refinefeatures";
+ callfunc "refinenormal";
+//Refine Level 2 Weapon
+REFINE2:
+ if(getequipweaponlv(@part) > 2) goto REFINE3;
+ set @matname$,"Emveretarcon";
+ set @material,1011;
+ set @price,200;
+ set @safe,6;
+ if(@features == 1) callfunc "refinefeatures";
+ callfunc "refinenormal";
+//Refine Level 3 Weapon
+REFINE3:
+ if(getequipweaponlv(@part) > 3) goto REFINE4;
+ set @matname$,"Oridecon";
+ set @material,984;
+ set @price,5000;
+ set @safe,5;
+ if(@features == 1) callfunc "refinefeatures";
+ callfunc "refinenormal";
+//Refine Level 4 Weapon
+REFINE4:
+ set @matname$,"Oridecon";
+ set @material,984;
+ set @price,20000;
+ set @safe,4;
+ if(@features == 1) callfunc "refinefeatures";
+ callfunc "refinenormal";
+}
+
+// Normal Refining Functions =========================
+function script refinenormal -1,{
+ mes "[" + @name$ + "]";
+ mes "To refine this stuff,I need ^ff9999" + @matname$ + "^000000 and the fee " + @price + " Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",Lcancel;
+
+ if (getequippercentrefinery(@part) == 100) goto L_Sub;
+ mes "[" + @name$ + "]";
+ mes "Hmm... Hold on! This piece of equipment has already been refined to its maximum safety level.";
+ mes "I must warn you if it is refined ANYMORE, It could be DESTROYED and become USELESS!!";
+ next;
+ mes "["+@name$+"]";
+ mes "Do you still wish you refine it? If so I will not be able to gaurantee my work...";
+ next;
+ menu "Yes",L_Sub,"No",Lcancel1;
+
+ L_Sub:
+ if ((countitem(@material) < 1) || (Zeny < @price)) goto Lcancel2;
+ delitem @material,1;
+ set Zeny,Zeny-@price;
+
+Lrefine:
+ if (getequippercentrefinery(@part)<=rand(100)) goto Lfail;
+ mes "["+@name$+"]";
+ mes "Clang! Clang! Clang!";
+ successrefitem @part;
+ next;
+ mes "["+@name$+"]";
+ mes "HAHA! It seems my skills haven't gotten rusty yet! Splendid... just splendid...";
+ emotion 21;
+ close;
+
+Lfail:
+ mes "[" + @name$ + "]";
+ mes "Clang! Clang! Clang!";
+ failedrefitem @part;
+ next;
+ mes "["+@name$+"]";
+ mes "Aaahhh!! Oh no....!!";
+ emotion 16;
+ next;
+ mes "["+@name$+"]";
+ mes "Eh..Ehem... I'm sorry but the refining proccess ^ff0000failed^000000.";
+ next;
+ mes "["+@name$+"]";
+ mes "I am deeply ashamed of what I've done... but I DID warn you earlier about the risks.";
+ close;
+
+Lcancel:
+ mes "[" + @name$ + "]";
+ mes "You said so..Hmm so be it...";
+ close;
+
+Lcancel1:
+ mes "[" + @name$ + "]";
+ mes "Good Choice.";
+ mes "Ah... good choice. I'd feel awfull if I'd destroyed another persons piece of equipment with my own hands.";
+ close;
+
+Lcancel2:
+ mes "[" + @name$ + "]";
+ mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
+ close;
+}
+
+// New Refining Functions ========================
+function script refinefeatures {
+ if(getequiprefinerycnt(@part) >= @safe) goto Lnosafe;
+ mes "[" + @name$ + "]";
+ mes "I can refine this to the safe limit or a desired number of times... it's your choice...";
+ next;
+ menu "To the safe limit please.",Lsafe,"I'll decide how many times.",Lnosafe,"I've changed my mind...",Lcancel;
+
+Lsafe:
+ set @refinecnt,@safe - getequiprefinerycnt(@part);
+ set @fullprice,@price * @refinecnt;
+ mes "[" + @name$ + "]";
+ mes "That will cost you " + @refinecnt + " " + @matname$ + " and " + @fullprice + " Zeny. Is that ok?";
+ next;
+ menu "Yes",-,"No...",Lcancel;
+ if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;
+ delitem @material,@refinecnt;
+ set Zeny,Zeny - @fullprice;
+ callfunc "refinesafe";
+ break;
+
+Lnosafe:
+ mes "[" + @name$ + "]";
+ mes "So how many times would you like me to refine your item?";
+ next;
+ input @refinecnt;
+ if (@refinecnt<1) goto Lcancel3; //fixed by Lupus
+ set @refinecheck,@refinecnt + getequiprefinerycnt(@part);
+ if(@refinecheck > 10) goto Lcancel3;
+ set @fullprice,@price * @refinecnt;
+ mes "[" + @name$ + "]";
+ mes "This will cost you " + @refinecnt + " " + @matname$ + " and " + @price + " Zeny... Is that ok?";
+ next;
+ menu "Yes...",-,"No...",Lcancel;
+ if(@refinecheck > @safe) goto Lwarn;
+ if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;
+ delitem @material,@refinecnt;
+ set Zeny,Zeny - @fullprice;
+ callfunc "refinenumber";
+ break;
+
+ Lwarn:
+ set @refinecheck,@refinecheck - @safe;
+ mes "[" + @name$ + "]";
+ mes "This will try to refine the equipment " + @refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
+ next;
+ menu "Yes",-,"No...",Lcancel1;
+ if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;
+ delitem @material,@refinecnt;
+ set Zeny,Zeny - @fullprice;
+ callfunc "refinenumber";
+ break;
+Lcancel:
+ mes "[" + @name$ + "]";
+ mes "If you say so... See you again soon I hope.";
+ close;
+Lcancel1:
+ mes "[" + @name$ + "]";
+ mes "Good... I don't like to break people's equipment...";
+ close;
+Lcancel2:
+ mes "[" + @name$ + "]";
+ mes "Sorry but you don't have everything I need...";
+ close;
+Lcancel3:
+ mes "[" + @name$ + "]";
+ mes "I can't refine this item that many times.";
+ close;
+}
+
+// Function: Safe Refine ---------------------
+function script refinesafe {
+ mes "Clang, clang!!!";
+ successrefitem @part;
+ emotion 21;
+ set @refinecnt,@refinecnt - 1;
+ next;
+ if(@refinecnt == 0) goto Lend;
+ callfunc "refinesafe";
+ break;
+
+ Lend:
+ mes "[" + @name$ + "]";
+ mes "All finished... Come again soon.";
+ close;
+}
+// Function: Refine
+function script refinenumber {
+ mes "Clang, clang!!!";
+ if (getequippercentrefinery(@part)<=rand(100)) goto Lfail;
+ successrefitem @part;
+ emotion 21;
+ set @refinecnt,@refinecnt - 1;
+ next;
+ if(@refinecnt == 0) goto Lend;
+ callfunc "refinenumber";
+ break;
+
+ Lend:
+ mes "[" + @name$ + "]";
+ mes "All finished... Come again soon.";
+ close;
+
+ Lfail:
+ failedrefitem @part;
+ emotion 23;
+ mes "[" + @name$ + "]";
+ mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
+ set @refinecnt,@refinecnt - 1;
+ if(@refinecnt == 0) goto Lend2;
+ mes "Here's the unused Zeny and Material back...";
+ getitem @material,@refinecnt;
+ set @fullprice,@refinecnt * @price;
+ set Zeny,Zeny + @fullprice;
+
+ Lend2:
+ close;
+}
+
+
+
+//==============================================================================
+//= Material Salesmen
+//==============================================================================
+prt_in.gat,56,69,4 script Vurewell 86,{
+ set @name$,"Vurewell";
+ callfunc "phramain";
+ break;
+}
+payon.gat,145,178,4 script Begnahd 88,{
+ set @name$,"Begnahd";
+ callfunc "phramain";
+ break;
+}
+morocc_in.gat,65,37,4 script Sade 99,{
+ set @name$,"Sade";
+ callfunc "phramain";
+ break;
+}
+alberta_in.gat,18,59,5 script Kahlamanlith 86,{
+ set @name$,"Kahlamanlith";
+ callfunc "phramain";
+ break;
+}
+yuno_in01.gat,171,26,6 script Dillemat 88,{
+ set @name$,"Dillemat";
+ callfunc "phramain";
+ break;
+}
+
+//============================================================
+//= Material Salesmen Functions
+//============================================================
+function script phramain {
+ if(@chris == 1) goto M_Menu;
+ mes "[" + @name$ + "]";
+ mes "Hello, Im selling metals I just mined.";
+ mes "They are Pharacon and Emvertacon.";
+ mes "Would you like to buy some?";
+ M_Menu:
+ set @chris, 0;
+ next;
+ menu"Pharacon - 200z",PHARA,"Emveretarcon - 1000z",EMVER;
+
+ PHARA:
+ set @itemid,1010;
+ set @value,200;
+ goto CONTINUE;
+
+ EMVER:
+ set @itemid,1011;
+ set @value,1000;
+
+CONTINUE:
+ mes "[" + @name$ + "]";
+ mes "How many would you like?";
+ next;
+ input @ammount;
+ if (@ammount <= 0) goto L_BELOW;
+ if (@ammount > 999) goto L_ABOVE;
+ if (zeny<@value*@ammount) goto L_NOZENY;
+ if (checkweight(@item,@ammount) == 0) goto L_WEIGHT;
+ getitem @itemid,@ammount;
+ set Zeny,Zeny-@value*@ammount;
+ mes "[" + @name$ + "]";
+ mes "Here you go.";
+ close;
+
+L_NOZENY:
+ mes "You do not have enough zeny!";
+ close;
+L_WEIGHT:
+ mes "You cant hold that many of that item";
+ close;
+L_BELOW:
+ mes "You have to buy a POSITIVE amount of items!";
+ close;
+L_ABOVE:
+ mes "You cant buy this much of this item!";
+ close;
+}
+
+
+
+//==============================================================================
+//= Ori/Elu Refiners
+//==============================================================================
+prt_in.gat,63,69,4 script Dietrich 84,{
+ set @name$,"Dietrich";
+ callfunc "orimain";
+ break;
+}
+payon.gat,137,178,4 script Hakhim 88,{
+ set @name$,"Hakhim";
+ callfunc "orimain";
+ break;
+}
+morocc_in.gat,72,32,4 script Abdul 99,{
+ set @name$,"Abdul";
+ callfunc "orimain";
+ break;
+}
+alberta_in.gat,21,63,5 script Xenophon 84,{
+ set @name$,"Xenophon";
+ callfunc "orimain";
+ break;
+}
+yuno_in01.gat,171,22,6 script Delayt 88,{
+ set @name$,"Delayt";
+ callfunc "orimain";
+break;
+}
+
+//============================================================
+//= Ori/Elu Functions
+//============================================================
+function script orimain {
+ if(@chris == 1) goto M_Menu;
+ mes "[" + @name$ + "]";
+ mes "If you bring Rough Oridecons and";
+ mes "Rough Eluniums to me,";
+ mes "I can refine them for you.";
+ mes "However, you must bring 5 of each.";
+ M_Menu:
+ set @chris, 0;
+ next;
+ menu "Make Oridecon",M_Ori, "Make Elunium",M_Elu, "Ask about enchanted stones",M_Stones;
+
+ M_Ori:
+ if ((countitem(756) < 5)) goto L_NoOri;
+ delitem 756,5;
+ getitem 984,1;
+ mes "[" + @name$ + "]";
+ mes "As promised, here's your oridecon.";
+ mes "Come back again anytime.";
+ close;
+
+ L_NoOri:
+ mes "[" + @name$ + "]";
+ mes "Huh? You're kidding, right? Didn't I say I can't make you an Oridecon unless you bring me 5 rough ones?";
+ close;
+ M_Elu:
+ if ((countitem(757) < 5)) goto L_NoElu;
+ delitem 757,5;
+ getitem 985,1;
+ mes "[" + @name$ + "]";
+ mes "As promised, here's your elunium.";
+ mes "Come back again anytime.";
+ close;
+
+ L_NoElu:
+ mes "[" + @name$ + "]";
+ mes "Huh? You're kidding, right? Didn't I say I can't make you an Elunium unless you bring me 5 rough ones?";
+ close;
+ M_Stones:
+ mes "[" + @name$ + "]";
+ mes "Enchanted stones, huh ....";
+ next;
+ mes "[" + @name$ + "]";
+ mes "Well, in the 20 years that I've been a stonesmith I've heard of them many times... though I've never actually seen them before.";
+ next;
+ mes "[" + @name$ + "]";
+ mes "I've been told that enchanted stones possess different elemental properties such as ^5533FFWater, Earth, Fire, and Wind^000000.";
+ next;
+ mes "[" + @name$ + "]";
+ mes "If someone combines an Enchanted Stone with a weapon durring the refining process, that weapon will possess the same property as the stone.";
+ next;
+ mes "[" + @name$ + "]";
+ mes "Of course, that person needs to be skillfull enough to work on it.";
+ goto M_Menu;
+}
+
+
+
+//=====================================================================================
+//= Equipment Repairmen
+//=====================================================================================
+prt_in.gat,62,54,2 script Grendal 84,{
+ set @name$,"Grendal";
+ callfunc "repairmain";
+ break;
+}
+
+//Temp Spot, Not Shure Where To place
+payon.gat,149,182,2 script Repairman 88,{
+ set @name$,"Repairman";
+ callfunc "repairmain";
+ break;
+}
+
+morocc_in.gat,71,40,2 script Repairman 99,{
+ set @name$,"Repairman";
+ callfunc "repairmain";
+ break;
+}
+
+//============================================================
+//= Equipment Repair Function
+//============================================================
+function script repairmain {
+ mes "[" + @name$ + "]";
+ mes "I am the Repair Smith and I can repair any Arms you want.";
+ mes "Tell me which Equipment you want to repair.";
+ set @broken1,getbrokenid(1);
+ set @broken2,getbrokenid(2);
+ set @broken3,getbrokenid(3);
+ set @broken4,getbrokenid(4);
+ set @broken5,getbrokenid(5);
+ set @broken6,getbrokenid(6);
+ set @broken7,getbrokenid(7);
+ set @broken8,getbrokenid(8);
+ set @broken9,getbrokenid(9);
+ set @broken10,getbrokenid(10);
+ next;
+ if(@broken1==NULL) goto L_CANCEL_3;
+ menu getitemname(@broken1),REPAIR1,getitemname(@broken2),REPAIR2,getitemname(@broken3),REPAIR3,
+ getitemname(@broken4),REPAIR4,getitemname(@broken5),REPAIR5,getitemname(@broken6),REPAIR6,
+ getitemname(@broken7),REPAIR7,getitemname(@broken8),REPAIR8,getitemname(@broken9),REPAIR9,
+ getitemname(@broken10),REPAIR10;
+ REPAIR1:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(1);
+ goto L_CLOSE;
+ REPAIR2:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(2);
+ goto L_CLOSE;
+ REPAIR3:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(3);
+ goto L_CLOSE;
+ REPAIR4:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(4);
+ goto L_CLOSE;
+ REPAIR5:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(5);
+ goto L_CLOSE;
+ REPAIR6:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(6);
+ goto L_CLOSE;
+ REPAIR7:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(7);
+ goto L_CLOSE;
+ REPAIR8:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(8);
+ goto L_CLOSE;
+ REPAIR9:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(9);
+ goto L_CLOSE;
+ REPAIR10:
+ mes "[" + @name$ + "]";
+ mes "You're gonna repair " + getitemname(@broken1) + ".";
+ mes "To repair this, I need ^ff9999One Steel^000000, and 10,000 Zeny.";
+ mes "Continue?";
+ next;
+ menu "Yes",-,"No",L_CANCEL_2;
+ if (countitem(999) < 1 || Zeny < 10000) goto L_CANCEL_1;
+ delitem 999,1;
+ set Zeny,Zeny-10000;
+ repair(10);
+ goto L_CLOSE;
+
+L_CANCEL_1:
+ mes "[" + @name$ + "]";
+ mes "Is it all you got?";
+ mes "Unfortunately, I have kids to feed...";
+ goto L_CLOSE;
+L_CANCEL_2:
+ mes "[" + @name$ + "]";
+ mes "Ok, but don't expect to be using that...";
+ goto L_CLOSE;
+L_CANCEL_3:
+ mes "[" + @name$ + "]";
+ mes "Looks like you don't need anything repaired today...";
+ goto L_CLOSE;
+L_CLOSE:
+ close;
+}
diff --git a/npc/merchants/renters.txt b/npc/merchants/renters.txt
new file mode 100644
index 000000000..cb6cc99de
--- /dev/null
+++ b/npc/merchants/renters.txt
@@ -0,0 +1,155 @@
+//===== eAthena Script =======================================
+//= Renters
+//===== By: ==================================================
+//= kobra_k88, mod by Lupus
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= eAthena 7.15 +
+//===== Description: =========================================
+//= PecoPeco Breeder, Grand PecoPeco Breeder, Falcon tamer scripts
+//===== Additional Comments: =================================
+//= Fully working
+//= Added another Falcon Master into the Hunters Guild [Lupus]
+//= 1.2: replaced checkoption(x) with checkriding,checkfalcon [Lupus]
+//= 1.3: Added support for Lord_Knight(2),Paladin(2) and Sniper.
+//============================================================
+
+// PecoPeco Breeder (for Knights)-------------------------------------------
+prontera.gat,61,338,3 script PecoPeco Breeder 86,{
+ mes "[PecoPeco Breeder]";
+ if(Class == Job_Knight || Class == Job_Knight2 || Class == 4008 || Class == Job_Lord_Knight || Class == Job_Lord_Knight2) goto L_Start;
+ mes "I'm a PecoPeco breeder and I rent out PecoPeco's for^4444FF Knights ^000000to ride on.";
+ close;
+
+L_Start:
+ mes "Good day. Would you like to ride a PecoPeco?";
+ next;
+ mes "[PecoPeco Breeder]";
+ mes "You can rent one PecoPeco for 2500 Zeny, provided that you have the PecoPeco Riding skill.";
+ next;
+ menu "Lend me a trusty steed!... err... bird!",M_0,"Hmm...It's a bit too expensive.",M_1;
+
+ M_0:
+ if(getskilllv(63) == 0) goto sL_NeedSkill;
+ if(Zeny < 2500) goto sL_Zeny;
+ if(checkriding(0) != 0) goto sL_GotPeco;
+ set Zeny, Zeny - 2500;
+ setriding;
+ mes "Thank you and good day.";
+ emotion 15;
+ close;
+
+ sL_NeedSkill:
+ mes "[PecoPeco Breeder]";
+ mes "As I mentioned earlier, you need the^3333FF Riding ^000000skill in order to rent a PecoPeco.";
+ close;
+ sL_Zeny:
+ mes "[PecoPeco Breeder]";
+ mes "As I said before it will be 2500z. Come back when you aquire enough zeny.";
+ close;
+ sL_GotPeco:
+ mes "[PecoPeco Breeder]";
+ mes "Umm... aren't you already riding a PecoPeco??....";
+ emotion 20;
+ close;
+ M_1:
+ mes "[PecoPeco Breeder]";
+ mes "Alright. Good day to you.";
+ close;
+
+}
+
+// Grand PecoPeco Breeder (for Crusaders)-------------------------------------------
+prontera.gat,238,312,5 script Grand PecoPeco Breeder 86,{
+ mes "[Grand PecoPeco Breeder]";
+ if(Class == Job_Crusader || Class == Job_Crusader2 || Class == 4015 || Class == Job_Paladin || Class == Job_Paladin2 ) goto L_Start;
+
+ mes "I'm a Grand PecoPeco breeder and I rent out Grand PecoPeco's for^4444FF Crusaders ^000000to ride on.";
+ close;
+
+L_Start:
+ mes "Good day. Would you like to ride a Grand PecoPeco?";
+ next;
+ mes "[Grand PecoPeco Breeder]";
+ mes "You can rent one Grand PecoPeco for 2500 Zeny, provided that you have the PecoPeco Riding skill.";
+ next;
+ menu "Lend me a trusty steed!... err... bird!",M_0,"Hmm...It's a bit too expensive.",M_1;
+
+ M_0:
+ if(getskilllv(63) == 0) goto sL_NeedSkill;
+ if(Zeny < 2500) goto sL_Zeny;
+ if(checkriding(0) != 0) goto sL_GotPeco;
+ set Zeny, Zeny - 2500;
+ setriding;
+ mes "Thank you and good day.";
+ emotion 15;
+ close;
+
+ sL_NeedSkill:
+ mes "[Grand PecoPeco Breeder]";
+ mes "As I mentioned earlier, you need the^3333FF Riding ^000000skill in order to rent a Grand PecoPeco.";
+ close;
+ sL_Zeny:
+ mes "[Grand PecoPeco Breeder]";
+ mes "As I said before it will be 2500z. Come back when you aquire enough zeny.";
+ close;
+ sL_GotPeco:
+ mes "[Grand PecoPeco Breeder]";
+ mes "Umm... aren't you already riding a Grand PecoPeco??....";
+ emotion 20;
+ close;
+ M_1:
+ mes "[Grand PecoPeco Breeder]";
+ mes "Alright. Good day to you.";
+ close;
+
+}
+
+// Falcon Master--------------------------------------------------------------
+in_hunter.gat,146,100,2 script Falcon Master 59,{
+ mes "[Falcon Master]";
+ mes "Hellooooo, I am the Falcon Master.";
+ next;
+ menu "Speak with him",M_0, "Politely back away",M_End;
+
+ M_0:
+ mes "[Falcon Master]";
+ mes "I can train a Falcon for you, but you need to be a Hunter and have mastered the ^5555FF'Falcon Taming' skill^000000.";
+ next;
+ menu "Ok",sM_0, "No thanks",M_End;
+
+ sM_0:
+ if(Class != Job_Hunter && Class != 4012 && Class != Job_Sniper) goto sL_NotHunter;
+
+ if(checkfalcon(0) != 0) goto sL_GotFalc;
+ if(getskilllv(127)==0) goto sL_NoSkill;
+ mes "[Falcon Master]";
+ mes "It looks like you meet all the requirements to handle a Falcon. Here you are";
+ setfalcon;
+ next;
+ mes "[Falcon Master]";
+ mes "Please take very good care of it. It will prove to be a valuble companion.";
+ close;
+
+ sL_NotHunter:
+ mes "[Falcon Master]";
+ mes "As I said, Falcons can only be given to Hunters. Falcons are very picky about who they travel with you know.";
+ close;
+ sL_GotFalc:
+ mes "[Falcon Master]";
+ mes "You can only have 1 Falcon at a time.";
+ close;
+ sL_NoSkill:
+ mes "[Falcon Master]";
+ mes "I'm sorry but you do not have the Falcon Taming skill. Please come back when you have learned it.";
+ close;
+ M_End:
+ mes "[Falcon Master]";
+ mes "Have a nice day.";
+ close;
+}
+
+//Not Supposed To Be One In Payon!
+//Coordinate IS Correct For New Payon Map Though IF You Enable It
+//payon_in01.gat,206,175,4 duplicate(Falcon Master) Falcon Master 59
diff --git a/npc/merchants/shops.txt b/npc/merchants/shops.txt
new file mode 100644
index 000000000..947754e59
--- /dev/null
+++ b/npc/merchants/shops.txt
@@ -0,0 +1,205 @@
+//===== eAthena Script =======================================
+//= Shops
+//===== By: ==================================================
+//= eAthena Dev Team
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= eAthena 7.15 +
+//===== Description: =========================================
+//=
+//===== Additional Comments: =================================
+//= swapped shop titles in GONRYUN, thanks to Kashy
+//= 1.3a Fixed Louyang map name. Added additional shops in Yuno. [kobra_k88]
+//= 1.4 Added Niflheim Shops
+//= 1.5 New Payon Locations [Darkchild]
+//= Moved shops in Umbala.txt here. Commented out the duplicate
+//= ones.[kobra_k88]
+//============================================================
+
+
+
+//=======================================================
+//ALBERTA
+//=======================================================
+alb2trea.gat,87,65,1 shop Tool Dealer 83,1750:-1,1751:-1,1752:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,657:-1
+alberta_in.gat,94,56,4 shop Tool Dealer 83,501:-1,502:-1,503:-1,504:-1,506:-1,601:-1,602:-1,611:-1,610:-1,645:-1,656:-1,657:-1
+alberta_in.gat,165,96,1 shop Item Collector 74,909:-1,528:-1
+alberta_in.gat,182,96,1 shop Tool Dealer 73,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,1750:-1,2243:-1,645:-1,656:-1,657:-1
+alberta_in.gat,180,15,1 shop Armor Dealer 101,2101:-1,2103:-1,2401:-1,2403:-1,2405:-1,2501:-1,2503:-1,2505:-1,2203:-1,2201:-1,2205:-1,2226:-1,2301:-1,2303:-1,2305:-1,2321:-1,2328:-1,2332:-1,2307:-1,2309:-1,2312:-1,2314:-1
+alberta_in.gat,188,21,1 shop Weapon Dealer 49,1750:-1,1751:-1,1101:-1,1104:-1,1107:-1,1201:-1,1204:-1,1207:-1,1601:-1,1701:-1,1301:-1,1351:-1,1354:-1,1357:-1,1360:-1
+//alberta_in.gat,18,59,5 shop Miner 48,1010:-1,1011:-1
+
+//=======================================================
+//AL DE BARAN
+//=======================================================
+aldeba_in.gat,20,60,5 shop Armor Dealer 101,2228:-1,2103:-1,2105:-1,2307:-1,2309:-1,2312:-1,2314:-1,2316:-1,2505:-1,2405:-1
+aldeba_in.gat,28,54,5 shop Weapon Dealer 85,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1219:-1,1222:-1
+aldeba_in.gat,94,56,5 shop Tool Dealer 83,501:-1,502:-1,503:-1,504:-1,506:-1,601:-1,602:-1,611:-1,610:-1,645:-1,656:-1,657:-1
+
+//=======================================================
+//AMATSU
+//=======================================================
+amatsu.gat,176,126,4 shop Fruit Merchant 53,512:-1,513:-1,515:-1,514:-1,531:-1,532:-1,534:-1,533:-1
+amatsu.gat,169,111,6 shop Tool Dealer 83,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,1065:-1,2239:-1
+amatsu.gat,180,102,3 shop Flower Girl 96,712:-1,744:-1,2612:-1,2215:-1
+amatsu.gat,189,99,7 shop Butcher 49,517:-1,528:-1,540:-1,541:-1
+amatsu.gat,169,119,6 shop Gift Merchant 91,734:-1,735:-1,736:-1,737:-1,746:-1
+amatsu.gat,183,127,5 shop Milk Merchant 90,713:-1,519:-1
+//1st set
+ama_in01.gat,96,28,4 shop Weapon Dealer 54,1750:-1,1751:-1,1701:-1,1201:-1,1204:-1,1207:-1,1601:-1,1101:-1,1104:-1,1107:-1,1110:-1,1113:-1,1122:-1,1119:-1,1123:-1,1126:-1,1157:-1,1129:-1,1116:-1,1301:-1
+ama_in01.gat,103,24,1 shop Armor Dealer 48,2101:-1,2103:-1,2401:-1,2403:-1,2501:-1,2503:-1,2220:-1,2226:-1,2301:-1,2303:-1,2305:-1,2328:-1,2307:-1,2309:-1,2312:-1,2314:-1
+ama_in01.gat,101,18,8 shop Weapon Dealer 47,1401:-1,1404:-1,1407:-1,1451:-1,1454:-1,1457:-1,1460:-1,1463:-1,1410:-1
+//2nd set
+ama_in01.gat,89,28,4 shop Armor Dealer 757,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2314:-1,2627:-1
+ama_in01.gat,102,28,4 shop Weapon Dealer 766,1207:-1,1216:-1,1107:-1,1122:-1,1116:-11154:-1,1407:-1,1457:-1,1354:-1,1519:-1
+ama_in01.gat,24,30,4 shop Tool Dealer 763,611:-1,1750:-1,1770:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1
+
+//=======================================================
+//COMODO
+//=======================================================
+cmd_in01.gat,117,165,4 shop Armor Dealer 101,2226:-1,2228:-1,2103:-1,2105:-1,2405:-1,2503:-1,2505:-1,2305:-1,2321:-1,2307:-1,2309:-1,2335:-1,2312:-1,2314:-1,2316:-1
+cmd_in01.gat,131,165,4 shop Weapon Dealer 49,1903:-1,1905:-1,1907:-1,1950:-1,1952:-1,1954:-1,1956:-1,1401:-1,1404:-1,1407:-1,1451:-1,1454:-1,1457:-1,1460:-1,1463:-1,1410:-1
+cmd_in01.gat,79,182,4 shop Tool Dealer 83,1753:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,657:-1,601:-1,602:-1,611:-1,1065:-1
+comodo.gat,296,125,4 shop Souvenir Merchant 101,965:-1,964:-1
+comodo.gat,244,296,7 shop Item Collector 74,909:-1,5
+
+//=======================================================
+//GEFFEN
+//=======================================================
+geffen_in.gat,25,177,1 shop Armor Dealer 66,2101:-1,2107:-1,2401:-1,2501:-1,2230:-1,2301:-1,2303:-1,2305:-1,2321:-1,2332:-1
+geffen_in.gat,29,177,1 shop Weapon Dealer 47,1750:-1,1751:-1,1101:-1,1701:-1,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1601:-1,1604:-1,1607:-1,1610:-1
+geffen_in.gat,74,144,1 shop Trader 66,909:-1,911:-1,910:-1,912:-1
+geffen_in.gat,77,167,1 shop Tool Dealer 68,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,2241:-1,645:-1,656:-1,657:-1
+geffen_in.gat,77,173,1 shop Magical Tool Trade 64,717:-1,1601:-1,1604:-1,1607:-1,1610:-1,2232:-1,2321:-1,2332:-1
+geffen_in.gat,171,123,1 shop Tool Dealer 64,1092:-1,1093:-1
+geffen.gat,193,152,3 shop Pet Merchant 125,537:-1,643:-1,10013:-1,10014:-1
+
+//=======================================================
+//GONRYUN
+//=======================================================
+gonryun.gat,147,84,4 shop Tool Dealer 777,1750:-1,1751:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1
+gonryun.gat,174,101,4 shop Weapon Dealer 774,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1
+gonryun.gat,173,84,4 shop Armor Dealer 770,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1
+
+//=======================================================
+//IZLUDE
+//=======================================================
+izlude_in.gat,60,127,4 shop Weapon Dealer 98,1750:-1,1751:-1,1701:-1,1601:-1,1201:-1,1204:-1,1207:-1,1101:-1,1104:-1,1107:-1,1116:-1,1151:-1,1154:-1,1157:-1,1160:-1,1301:-1
+izlude_in.gat,70,127,4 shop Armor Dealer 101,2103:-1,2105:-1,2403:-1,2405:-1,2503:-1,2505:-1,2226:-1,2228:-1,2303:-1,2305:-1,2328:-1,2307:-1,2309:-1,2312:-1,2314:-1,2316:-1
+izlude_in.gat,115,61,1 shop Tool Dealer 47,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,1750:-1,1065:-1,645:-1,656:-1,657:-1
+izlude.gat,121,138,1 shop Butcher 54,517:-1
+izlude.gat,127,120,1 shop Fruit Merchant 72,512:-1,513:-1,515:-1,516:-1
+izlude.gat,137,126,3 shop Milk Merchant 701,519:-1
+izlude.gat,164,138,4 shop Pet Merchant 125,537:-1,643:-1,10013:-1,10014:-1
+
+//=======================================================
+//LOUYANG
+//=======================================================
+lou_in02.gat,121,181,5 shop Armor Dealer 770,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2503:-1
+lou_in02.gat,130,182,5 shop Weapon Dealer 774,1204:-1,1216:-1,1107:-1,1113:-1,1116:-1,1157:-1,1407:-1,1410:-1,1354:-1,1519:-1
+
+//=======================================================
+//MORROC
+//=======================================================
+morocc_in.gat,141,67,1 shop Weapon Dealer 58,1750:-1,1751:-1,1701:-1,1601:-1,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1219:-1,1222:-1,1250:-1,1252:-1,1254:-1
+morocc_in.gat,141,60,1 shop Armor Dealer 58,2101:-1,2103:-1,2401:-1,2403:-1,2405:-1,2501:-1,2503:-1,2218:-1,2301:-1,2303:-1,2305:-1,2321:-1,2328:-1,2332:-1,2307:-1,2309:-1,2335:-1
+morocc.gat,35,69,1 shop Trader 89,2609:-1,1516:-1,1522:-1
+morocc.gat,139,92,1 shop Trader 99,513:-1,513:-1,513:-1,513:-1,513:-1,513:-1
+morocc.gat,145,44,1 shop Jewel Seller 99,730:-1,2613:-1
+morocc.gat,147,102,5 shop Tool Dealer 93,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,1065:-1,645:-1,656:-1,657:-1
+morocc.gat,151,243,1 shop Tool Dealer 99,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,2242:-1,645:-1,656:-1,657:-1
+morocc.gat,157,72,6 shop Butcher 49,517:-1
+morocc.gat,166,51,1 shop Jewel Seller 102,721:-1,722:-1,726:-1,728:-1,729:-1
+morocc.gat,170,101,3 shop Tool Dealer 85,909:-1,528:-1,919:-1,925:-1
+morocc.gat,206,250,1 shop Tool Dealer 85,909:-1,528:-1,919:-1,925:-1
+morocc.gat,244,134,1 shop Trader 93,2612:-1
+morocc.gat,259,193,1 shop Trader 99,747:-1
+morocc.gat,268,193,1 shop Trader 93,748:-1
+morocc.gat,269,167,4 shop Pet Merchant 125,537:-1,643:-1,10013:-1,10014:-1
+//morocc_in.gat,65,37,4 shop Miner 48,1010:-1,1011:-1
+
+//=======================================================
+//NIFLHEIM
+//=======================================================
+nif_in.gat,35,91,3 shop Armor Dealer 796,2101:-1,2107:-1,2401:-1,2501:-1,2230:-1,2301:-1,2303:-1,2305:-1,2321:-1,2332:-1
+nif_in.gat,35,84,3 shop Weapon Dealer 795,1750:-1,1751:-1,1101:-1,1701:-1,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1601:-1,1604:-1,1607:-1,1610:-1
+nif_in.gat,154,21,3 shop Tool Dealer 798,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,1065:-1,2239:-1,645:-1,656:-1,657:-1
+niflheim.gat,201,209,3 shop Milk Merchant 794,519:-1
+niflheim.gat,224,185,3 shop Fruit Merchant 795,512:-1,513:-1
+niflheim.gat,209,161,3 shop Butcher 794,517:-1,528:-1
+niflheim.gat,205,152,3 shop Gift Merchant 795,734:-1,735:-1,736:-1,737:-1,746:-1
+
+//=======================================================
+//PAYON
+//=======================================================
+payon_in01.gat,7,119,4 shop Weapon Dealer 86,1750:-1,1751:-1,1101:-1,1104:-1,1107:-1,1201:-1,1204:-1,1207:-1,1601:-1,1701:-1,1704:-1,1707:-1,1710:-1,1713:-1,1714:-1,1718:-1
+payon_in01.gat,15,119,4 shop Armor Dealer 87,2401:-1,2403:-1,2405:-1,2501:-1,2503:-1,2505:-1,2208:-1,2211:-1,2212:-1,2301:-1,2303:-1,2305:-1,2321:-1,2328:-1,2332:-1,2309:-1,2330:-1
+payon_in02.gat,87,34,1 shop Tool Dealer 98,1750:-1,1751:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,1065:-1,645:-1,656:-1,657:-1
+payon.gat,160,97,4 shop Tool Dealer 88,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,601:-1,525:-1,602:-1,1065:-1,645:-1,656:-1,657:-1
+//Not Shure About Pet Shop
+payon.gat,104,63,4 shop Pet Merchant 125,537:-1,643:-1,10013:-1,10014:-1
+pay_arche.gat,125,108,1 shop Milk Merchant 90,519:-1
+pay_arche.gat,132,101,1 shop Vegetable Merchant 102,515:-1,516:-1
+pay_arche.gat,140,124,1 shop Butcher 87,517:-1,528:-1
+
+
+//=======================================================
+//PRONTERA
+//=======================================================
+prontera.gat,73,134,1 shop Milk Merchant 90,519:-1
+prontera.gat,104,49,1 shop Fruit Merchant 102,512:-1,513:-1
+prontera.gat,64,125,1 shop Butcher 87,517:-1,528:-1
+prontera.gat,58,182,1 shop Flower Girl 96,712:-1,744:-1
+prontera.gat,113,42,1 shop Flower Lady 90,712:-1,744:-1
+prontera.gat,105,87,1 shop Gift Merchant 91,734:-1,735:-1,736:-1,737:-1,746:-1
+prontera.gat,218,211,4 shop Pet Merchant 125,537:-1,643:-1,10013:-1,10014:-1
+prontera.gat,248,153,1 shop Doll Merchant 85,740:-1,741:-1,742:-1
+prt_church.gat,108,124,1 shop Nun 79,2608:-1,2216:-1,2323:-1,2325:-1,1501:-1,1504:-1,1507:-1,1510:-1,1513:-1,1519:-1
+prt_fild05.gat,290,221,1 shop Tool Dealer 83,1750:-1,611:-1,501:-1,502:-1,506:-1,601:-1,602:-1,645:-1,656:-1,657:-1
+prt_in.gat,211,169,1 shop Wedding Goods Merchant 71,744:-1,745:-1,2338:-1,2206:-1
+prt_in.gat,126,76,1 shop Tool Dealer 53,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,1065:-1,2239:-1,645:-1,656:-1,657:-1
+prt_in.gat,172,130,1 shop Weapon Dealer 54,1750:-1,1751:-1,1701:-1,1201:-1,1204:-1,1207:-1,1601:-1,1101:-1,1104:-1,1107:-1,1110:-1,1113:-1,1122:-1,1119:-1,1123:-1,1126:-1,1157:-1,1129:-1,1116:-1,1301:-1
+prt_in.gat,172,132,1 shop Armor Dealer 48,2101:-1,2103:-1,2401:-1,2403:-1,2501:-1,2503:-1,2220:-1,2226:-1,2301:-1,2303:-1,2305:-1,2328:-1,2307:-1,2309:-1,2312:-1,2314:-1
+prt_in.gat,171,140,1 shop Weapon Dealer 47,1401:-1,1404:-1,1407:-1,1451:-1,1454:-1,1457:-1,1460:-1,1463:-1,1410:-1
+//prt_in.gat,56,69,4 shop Miner 48,1010:-1,1011:-1
+
+//=======================================================
+//TURTLE ISLAND
+//=======================================================
+tur_dun01.gat,158,54,6 shop Tool Dealer 99,1750:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,645:-1,656:-1,657:-1
+// Spectacles: missing as second item in list
+// Luxury Sunglases: not sure of item/price.
+
+//=======================================================
+//UMBALA
+//=======================================================
+um_in.gat,104,124,3 shop Item Merchant 788,512:15,515:15,535:15,516:15,513:15,517:50,528:60,537:1000,601:60,602:300,645:800,656:1500,610:4000
+um_in.gat,160,125,3 shop Weapon Merchant 789,1501:120,1504:1600,1507:9000,1510:16000,1513:41000,1519:23000,1807:53000,1811:58000,1809:67000
+um_in.gat,151,125,4 shop Armor Merchant 49,2103:-1,2105:-1,2403:-1,2405:-1,2503:-1,2505:-1,2226:-1,2228:-1,2303:-1,2305:-1,2328:-1,2307:-1,2309:-1,2312:-1,2314:-1,2316:-1
+//um_in.gat,159,123,3 shop Weapon Merchant 52,1750:-1,1751:-1,1701:-1,1601:-1,1201:-1,1204:-1,1207:-1,1101:-1,1104:-1,1107:-1,1116:-1,1151:-1,1154:-1,1157:-1,1160:-1,1301:-1
+//um_in.gat,98,124,3 shop Tool Merchant 47,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,525:-1,601:-1,602:-1,1750:-1,1065:-1
+//um_in.gat,103,124,4 shop Food Merchant 91,515:-1,516:-1,535:-1,519:-1,517:-1
+
+
+//=======================================================
+//YUNO
+//=======================================================
+yuno.gat,65,122,4 shop Fruit Merchant 93,512:-1,513:-1,515:-1,516:-1
+yuno.gat,217,97,4 shop Tool Dealer 83,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,505:-1,506:-1,645:-1,656:-1,601:-1,602:-1
+yuno.gat,226,106,5 shop Trader 97, 909:-1, 911:-1, 910:-1, 912:-1
+yuno.gat,197,115,4 shop Pet Merchant 124, 537:-1, 643:-1, 10013:-1, 10014:-1
+yuno.gat,205,104,4 shop Equip Dealer 84, 2340:-1, 2341:-1, 2411:-1, 2222:-1, 2230:-1; 1721:-1
+yuno.gat,163,187,5 shop Magic Dealer 90,717:-1,1601:-1,1604:-1,1607:-1,1610:-1,2232:-1,2321:-1,2332:-1
+yuno_in01.gat,25,34,4 shop Tool Dealer 83,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,505:-1,506:-1,645:-1,656:-1,601:-1,602:-1
+yuno_in01.gat,104,35,4 shop Weapon Dealer 49,1750:-1,1751:-1,1101:-1,1701:-1,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1601:-1,1604:-1,1607:-1,1610:-1
+yuno_in01.gat,112,25,5 shop Armor Dealer 101,2628:-1,2101:-1,2107:-1,2401:-1,2501:-1,2230:-1,2301:-1,2303:-1,2305:-1,2321:-1,2332:-1
+
+
+//=======================================================
+// ST. CAPITOLINA ABBEY
+//======================================
+//= Monk shop, sells Knuckle weapons)
+//=======================================================
+prt_monk.gat,135,263,3 shop Blacksmith 726, 1801:8000//Waghnak, 1803:25000//Knuckle Dusters, 1805:32000//Studded Knuckles
+