summaryrefslogtreecommitdiff
path: root/npc/re/merchants/3rd_trader.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/re/merchants/3rd_trader.txt')
-rw-r--r--npc/re/merchants/3rd_trader.txt266
1 files changed, 159 insertions, 107 deletions
diff --git a/npc/re/merchants/3rd_trader.txt b/npc/re/merchants/3rd_trader.txt
index 86dd01656..134a3422d 100644
--- a/npc/re/merchants/3rd_trader.txt
+++ b/npc/re/merchants/3rd_trader.txt
@@ -1,20 +1,26 @@
//===== Hercules Script ======================================
//= 3rd Item Seller
-//===== By: ==================================================
+//===== By: ==================================================
//= Masao, Mercurial
-//===== Current Version: =====================================
-//= 1.2
-//===== Description: =========================================
-//= [Aegis Conversion]
-//= Sells some 3rd Job related items.
-//===== Additional Comments: =================================
+//===== Current Version: =====================================
+//= 1.5
+//===== Description: =========================================
+//= [Official Conversion]
+//= Sells some 3rd Job related items:
+//= - Poison Herbs, Rune Stones, Rare Herbs, Points
+//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Optimized Poison Herb Salesman NPC
//= 1.2 Optimized and standardized. [Euphy]
-//============================================================
+//= 1.3 Added Malangdo/Mora Points NPC. [Euphy]
+//= 1.4 Updated to match the official scripts. [Euphy]
+//= 1.5 Added Izlude duplicates. [Euphy]
+//============================================================
-job3_guil01,79,96,3 script Poison Herb Salesman::PHS 877,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
+// Poison Herb Merchants (Guillotine Cross)
+//============================================================
+- script ::phs -1,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -22,68 +28,65 @@ job3_guil01,79,96,3 script Poison Herb Salesman::PHS 877,{
mes "- after you lose some weight. -";
close;
}
- mes "[Poison Herb Salesman]";
+ mes "[Poison Herb Merchant]";
mes "I am the professional";
- mes "poison herb seller.";
- mes "Which one do you want?";
- mes "They cost 4,000 zeny each!";
- set .@i, select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit")-1;
+ mes "Poison Herb merchant.";
+ mes "Each Herb costs 4,000 zeny.";
+ mes "What would you like?";
next;
+ set .@i, select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
+ mes "[Poison Herb Merchant]";
if (.@i < 6) {
- mes "[Poison Herb Salesman]";
- mes "How many do you want? You can";
- mes "only buy a maximum of 2000 ea";
- mes "and if you want to cancel, enter '0'.";
- next;
- input .@amount;
- mes "[Poison Herb Salesman]";
- if (.@amount == 0) {
- mes "You've cancelled the trade.";
- close;
- }
- if (.@amount > 2000) {
- mes "Please check the maximum";
- mes "amount and then try again.";
- close;
- }
- if (Zeny < .@amount*4000) {
- mes "Please check the money you have.";
- mes "It doesn't seem like you have enough money.";
- close;
- }
- set Zeny, Zeny-(.@amount*4000);
- getitem 7932+.@i,.@amount;
- mes "Thank you. See you~!";
- close;
+ set .@item,7932+.@i;
+ set .@price,4000;
+ set .@max,2000;
+ set .@max$,"2,000";
+ } else if (.@i == 6) {
+ set .@item,7931;
+ set .@price,5000;
+ set .@max,500;
+ set .@max$,"500";
+ mes "Each Poison Kit costs 5,000 zeny.";
} else {
- mes "[Poison Herb Salesman]";
- mes "You can only buy";
- mes "1 Poison Kit and it costs 5,000 zeny.";
- mes "Will you buy it?";
- next;
- if(select("Yes, I will.:No, I won't.") == 2) {
- mes "[Poison Herb Salesman]";
- mes "Well, I see. See you~!";
- close;
- }
- mes "[Poison Herb Salesman]";
- if (Zeny < 5000) {
- mes "Please check the money you have.";
- mes "It doesn't seem like you have enough money.";
- close;
- }
- set Zeny, Zeny-5000;
- getitem 7931,1;
- mes "[Poison Herb Salesman]";
- mes "Thank you. See you~!";
+ mes "Well, I see. Come back again~!";
+ close;
+ }
+ mes "How many do you want?";
+ mes "You can only buy a maximum of '"+.@max+"' ea.";
+ mes "Enter '0' if you want to cancel.";
+ next;
+ input .@amount;
+ if (.@amount == 0) {
+ mes "[Poison Herb Merchant]";
+ mes "You've cancelled the trade.";
+ close;
+ }
+ if (.@amount > .@max) {
+ mes "[Poison Herb Merchant]";
+ mes "The number must be less than "+.@max$+"!";
+ close;
+ }
+ set .@total, .@amount * .@price;
+ if (Zeny < .@total) {
+ mes "[Poison Herb Merchant]";
+ mes "You don't have enough money.";
+ mes "Check how much money you have first.";
close;
}
+ set Zeny, Zeny - .@total;
+ getitem .@item, .@amount;
+ mes "[Poison Herb Merchant]";
+ mes "Thank you. Come back again~!";
+ close;
}
-morocc,190,96,4 duplicate(PHS) Poison Herb Salesman#moc 877
-lhz_in02,16,205,4 duplicate(PHS) Poison Herb Salesman#lhz 877
+job3_guil01,79,96,3 duplicate(phs) Poison Herb Merchant 877
+morocc,191,94,4 duplicate(phs) Poison Herb Merchant#moc 877 //Official: (190,96) -> in a wall
+lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 877
-job3_rune01,90,62,3 script Rune Salesman::runesale 853,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
+// Rune Stone Merchants (Rune Knight)
+//============================================================
+- script ::runesale -1,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -91,57 +94,67 @@ job3_rune01,90,62,3 script Rune Salesman::runesale 853,{
mes "- after you lose some weight. -";
close;
}
- mes "[Rune Salesman]";
+ mes "[Rune Merchant]";
mes "Hey, do you need Runes?!";
- mes "I sell all kinds of Rune Stones!";
- mes "What kind of Rune do you want?";
+ mes "I sell all sorts of Rune Stones!";
+ mes "What would you like?";
next;
set .@i, select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.");
- mes "[Rune Salesman]";
+ mes "[Rune Merchant]";
if (.@i == 1) {
mes "High-quality Runes!";
mes "They cost 2,500 zeny each!";
- setarray .@rune[0],12734,2500;
+ set .@item,12734; //Runstone_Quality
+ set .@price,2500;
} else {
mes "Ordinary Rune Stones?";
mes "They cost 1,000 zeny each!";
+ set .@item,12737; //Runstone_Ordinary
+ set .@price,1000;
setarray .@rune[0],12737,1000;
}
- mes "Tell me how many you want to buy";
+ mes "Tell me how many you want,";
mes "and remember, you can only";
- mes "buy a maximum amount of 2000 ea!";
+ mes "buy a maximum of '2000' ea.";
next;
input .@amount;
- mes "[Rune Salesman]";
if (.@amount == 0) {
- mes "You're not buying? Go away!";
+ mes "[Rune Merchant]";
+ mes "You're not buying? Please leave!";
close;
}
if (.@amount > 2000) {
- mes "Please check the maximum";
- mes "amount and then come back to me again!";
+ mes "[Rune Merchant]";
+ mes "The number must be less than 2,000!";
close;
}
- if (Zeny < .@amount*.@rune[1]) {
- mes "Money! Money!";
- mes "You are short of money!";
- mes "Check the amount of money you have!!";
+ set .@total, .@amount * .@price;
+ if (Zeny < .@total) {
+ mes "[Rune Merchant]";
+ mes "Zeny! Zeny!";
+ mes "You don't have enough money.";
+ mes "Check how much money you have first.";
close;
}
- if (!checkweight(.@rune[0],.@amount)) {
- mes "You're not able to carry it, so why are you trying to buy it?!";
+ if (!checkweight(.@item,.@amount)) {
+ mes "[Rune Merchant]";
+ mes "It doesn't seem like you are able to carry it all, why are you trying it?!";
close;
}
- set Zeny, Zeny-(.@amount*.@rune[1]);
- getitem .@rune[0],.@amount;
- mes "You can buy more again.";
- mes "So, see you later.";
+ set Zeny, Zeny - .@total;
+ getitem .@item, .@amount;
+ mes "[Rune Merchant]";
+ mes "Thank you.";
+ mes "Please come back again~!";
close;
}
-prontera,168,228,3 duplicate(runesale) Rune Salesman#1 853
+job3_rune01,90,62,3 duplicate(runesale) Rune Merchant#job3 853
+prontera,168,228,3 duplicate(runesale) Rune Merchant#prt 853
+// Rare Herb Merchants (Guillotine Cross)
+//============================================================
job3_guil01,91,93,3 script Rare Herb Collector 49,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -151,27 +164,48 @@ job3_guil01,91,93,3 script Rare Herb Collector 49,{
}
if (Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T || Class == Job_Baby_Cross) {
mes "[Rare Poison Herb Collector]";
- mes "I wander around the world and collect rare poison herbs. Recently, I am dealing in the herb called Izidor. If you are interested, you can buy them.";
+ mes "I wander around the world and collect rare poison herbs. Recently, I started dealing in the herb called Izidor. If you are interested, you can buy them.";
next;
- set .@i, select("How can I buy them?:Exchange it with Animal Blood:Exchange it with a Bitter Herb:Exchange it with a Deadly Noxious Herb:Exchange it with a Frozen Rose:Exchange it with Ment:Exchange it with Hinalle")-1;
- if (.@i == 0) {
+ set .@i, select("How can I buy them?:Exchange it for Animal Blood:Exchange it for a Bitter Herb:Exchange it for a Deadly Noxious Herb:Exchange it for a Frozen Rose:Exchange it for Ment:Exchange it for Hinalle")-2;
+ if (.@i == -1) {
mes "[Rare Poison Herb Collector]";
- mes "You can buy any of those items for 10,000 zeny: Animal Blood, Bitter Herb, Deadly Noxious Herb, Frozen Rose, Ment or Hinalle. ";
+ mes "You can buy them for 10,000 zeny and one of these rare items, Animal Blood, Bitter Herb, Deadly Noxious Herb, Frozen Rose, Ment or an Hinalle.";
next;
mes "[Rare Poison Herb Collector]";
- mes "Why I ask for money? That is just to pay a little respect to a collector like me. Ha ha ha...";
+ mes "Why do I ask money? That's just to pay a little respect to a collector like me. Ha ha ha...";
close;
} else {
- setarray .@exchange[1],702,621,631,749,605,703;
+ setarray .@exchange[0],702,621,631,749,605,703;
+ set .@item, .@exchange[.@i];
+ set .@price, 10000;
+
mes "[Rare Poison Herb Collector]";
- if (!countitem(.@exchange[.@i]) || Zeny < 10000) {
- mes "Hey, try again after you've prepared all the requirements for the exchange.";
+ mes "How many do you want?";
+ mes "You can only buy a maximum of '2000' ea.";
+ mes "Enter '0' if you want to cancel.";
+ next;
+ input .@amount;
+ if (.@amount == 0) {
+ mes "[Rare Poison Herb Collector]";
+ mes "You've cancelled the trade.";
+ close;
+ }
+ if (.@amount > 2000) {
+ mes "[Rare Poison Herb Collector]";
+ mes "The number must be less than 2,000!";
+ close;
+ }
+ set .@total, .@amount * .@price;
+ if (countitem(.@item) < .@amount || Zeny < .@total) {
+ mes "[Rare Poison Herb Collector]";
+ mes "Hey, come back when you have all the requirements for the exchange.";
close;
}
- mes "Thank you. I've received your payment.";
- delitem .@exchange[.@i],1;
- set Zeny, Zeny-10000;
- getitem 709,1;
+ mes "[Rare Poison Herb Collector]";
+ mes "Good. I've received the money and the special item.";
+ delitem .@item, .@amount;
+ set Zeny, Zeny - .@total;
+ getitem 709, .@amount; //Izidor
close;
}
}
@@ -180,8 +214,10 @@ job3_guil01,91,93,3 script Rare Herb Collector 49,{
close;
}
-gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
- if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
+// Point Merchants (Sorcerer)
+//============================================================
+- script ::pss -1,{
+ if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
@@ -189,11 +225,11 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
mes "- after you lose some weight. -";
close;
}
- mes "[Point Salesman]";
+ mes "[Point Merchant]";
mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?";
next;
set .@i, select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
- mes "[Point Salesman]";
+ mes "[Point Merchant]";
if (.@i == 4) {
mes "You can't find the stuff you need?";
close;
@@ -205,7 +241,7 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
mes "If you want to cancel, enter 0.";
next;
input .@amount;
- mes "[Point Salesman]";
+ mes "[Point Merchant]";
if (.@amount == 0) {
mes "You've cancelled the trade.";
close;
@@ -223,6 +259,22 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
mes "Thank you very much. See you~!";
close;
}
-comodo,241,103,6 duplicate(pss) Point Salesman#1 700
-alberta,105,52,7 duplicate(pss) Point Salesman#2 700
-veins,202,128,6 duplicate(pss) Point Salesman#3 700
+gef_tower,105,172,5 duplicate(pss) Point Merchant#Sorcerer 700
+prt_in,131,66,0 duplicate(pss) Point Merchant#Prontera 700
+alberta,105,52,7 duplicate(pss) Point Merchant#Alberta 700
+aldebaran,133,114,5 duplicate(pss) Point Merchant#Aldebaran 700
+comodo,193,159,5 duplicate(pss) Point Merchant#Comodo 700
+geffen,129,49,5 duplicate(pss) Point Merchant#Geffen 700
+izlude,138,163,5 duplicate(pss) Point Merchant#Izlude 700 // Old coordinates: izlude (135,121)
+izlude_a,138,163,5 duplicate(pss) Point Merchant#Izlude_a 700
+izlude_b,138,163,5 duplicate(pss) Point Merchant#Izlude_b 700
+izlude_c,138,163,5 duplicate(pss) Point Merchant#Izlude_c 700
+izlude_d,138,163,5 duplicate(pss) Point Merchant#Izlude_d 700
+malangdo,214,163,5 duplicate(pss) Point Merchant#Malangdo 700
+mora,115,118,3 duplicate(pss) Point Merchant#Mora 700
+ra_in01,256,273,3 duplicate(pss) Point Merchant#Rachel 700
+veins,202,128,5 duplicate(pss) Point Merchant#Veins 700
+dicastes01,207,200,5 duplicate(pss) Point Merchant#Dicastes 700
+manuk,261,206,3 duplicate(pss) Point Merchant#Manuk 700
+splendide,207,160,5 duplicate(pss) Point Merchant#Splendide 700
+mid_camp,224,237,3 duplicate(pss) Point Merchant#Midgard 700