|
@@ -3,20 +3,24 @@
|
|
|
//===== By: ==================================================
|
|
|
//= Masao, Mercurial
|
|
|
//===== Current Version: =====================================
|
|
|
-//= 1.3
|
|
|
+//= 1.4
|
|
|
//===== Compatible With: =====================================
|
|
|
//= rAthena SVN
|
|
|
//===== Description: =========================================
|
|
|
//= [Official Conversion]
|
|
|
-//= Sells some 3rd Job related items.
|
|
|
+//= 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]
|
|
|
//============================================================
|
|
|
|
|
|
-job3_guil01,79,96,3 script Poison Herb Salesman::PHS 877,{
|
|
|
+// Poison Herb Merchants (Guillotine Cross)
|
|
|
+//============================================================
|
|
|
+- script ::phs -1,{
|
|
|
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
|
|
|
mes "- Wait a minute !! -";
|
|
|
mes "- Currently you're carrying -";
|
|
@@ -25,67 +29,64 @@ 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,{
|
|
|
+// Rune Stone Merchants (Rune Knight)
|
|
|
+//============================================================
|
|
|
+- script ::runesale -1,{
|
|
|
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
|
|
|
mes "- Wait a minute !! -";
|
|
|
mes "- Currently you're carrying -";
|
|
@@ -94,57 +95,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. -";
|
|
@@ -154,27 +165,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;
|
|
|
}
|
|
|
}
|
|
@@ -183,7 +215,9 @@ job3_guil01,91,93,3 script Rare Herb Collector 49,{
|
|
|
close;
|
|
|
}
|
|
|
|
|
|
-gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{
|
|
|
+// Point Merchants (Sorcerer)
|
|
|
+//============================================================
|
|
|
+- script ::pss -1,{
|
|
|
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) {
|
|
|
mes "- Wait a minute !! -";
|
|
|
mes "- Currently you're carrying -";
|
|
@@ -192,11 +226,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;
|
|
@@ -208,7 +242,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;
|
|
@@ -226,8 +260,18 @@ 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
|
|
|
-malangdo,215,163,6 duplicate(pss) Point Salesman#4 700
|
|
|
-mora,115,118,3 duplicate(pss) Point Salesman#5 700
|
|
|
+gef_tower,105,172,5 duplicate(pss) Point Merchant#Sorcerer 700
|
|
|
+prt_in,131,66,0 duplicate(pss) Point Seller#Prontera 700
|
|
|
+alberta,105,52,7 duplicate(pss) Point Seller#Alberta 700
|
|
|
+aldebaran,133,114,5 duplicate(pss) Point Seller#Aldebaran 700
|
|
|
+comodo,193,159,5 duplicate(pss) Point Seller#Comodo 700
|
|
|
+geffen,129,49,5 duplicate(pss) Point Seller#Geffen 700
|
|
|
+izlude,138,163,5 duplicate(pss) Point Seller#Izlude 700 //Pre-RE: izlude (135,121)
|
|
|
+malangdo,214,163,5 duplicate(pss) Point Seller#Malangdo 700
|
|
|
+mora,115,118,3 duplicate(pss) Point Seller#Mora 700
|
|
|
+ra_in01,256,273,3 duplicate(pss) Point Seller#Rachel 700
|
|
|
+veins,202,128,5 duplicate(pss) Point Seller#Veins 700
|
|
|
+dicastes01,207,200,5 duplicate(pss) Point Seller#Dicastes 700
|
|
|
+manuk,261,206,3 duplicate(pss) Point Seller#Manuk 700
|
|
|
+splendide,207,160,5 duplicate(pss) Point Seller#Splendide 700
|
|
|
+mid_camp,224,237,3 duplicate(pss) Point Seller#Midgard 700
|