//================= Hercules Script =======================================
//= _ _ _
//= | | | | | |
//= | |_| | ___ _ __ ___ _ _| | ___ ___
//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
//= | | | | __/ | | (__| |_| | | __/\__ \
//= \_| |_/\___|_| \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2012-2015 Hercules Dev Team
//= Copyright (C) Euphy
//= Copyright (C) Mercurial
//= Copyright (C) Masao
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program. If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= 3rd Item Seller
//================= Description ===========================================
//= Sells some 3rd Job related items:
//= - Poison Herbs, Rune Stones, Rare Herbs, Points
//================= Current Version =======================================
//= 1.6
//=========================================================================
//== Poison Herb Merchants (Guillotine Cross) ==============
- script ::phs FAKE_NPC,{
if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
mes "- Please try again -";
mes "- after you lose some weight. -";
close;
}
mes "[Poison Herb Merchant]";
mes "I am the professional";
mes "Poison Herb merchant.";
mes "Each Herb costs 4,000 zeny.";
mes "What would you like?";
next;
.@i = select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
mes "[Poison Herb Merchant]";
if (.@i < 6) {
.@item = 7932+.@i;
.@price = 4000;
.@max = 2000;
.@max$ = "2,000";
} else if (.@i == 6) {
.@item = 7931;
.@price = 5000;
.@max = 500;
.@max$ = "500";
mes "Each Poison Kit costs 5,000 zeny.";
} else {
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;
}
.@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;
}
Zeny -= .@total;
getitem .@item, .@amount;
mes "[Poison Herb Merchant]";
mes "Thank you. Come back again~!";
close;
}
job3_guil01,79,96,3 duplicate(phs) Poison Herb Merchant 4_F_YUNYANG
morocc,193,100,4 duplicate(phs) Poison Herb Merchant#moc 4_F_YUNYANG
lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 4_F_YUNYANG
//== Rune Stone Merchants (Rune Knight) ====================
- script ::runesale FAKE_NPC,{
if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
mes "- Please try again -";
mes "- after you lose some weight. -";
close;
}
mes "[Rune Merchant]";
mes "Hey, do you need Runes?!";
mes "I sell all sorts of Rune Stones!";
mes "What would you like?";
next;
.@i = select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.");
mes "[Rune Merchant]";
if (.@i == 1) {
mes "High-quality Runes!";
mes "They cost 2,500 zeny each!";
.@item = 12734; //Runstone_Quality
.@price = 2500;
} else {
mes "Ordinary Rune Stones?";
mes "They cost 1,000 zeny each!";
.@item = 12737; //Runstone_Ordinary
.@price = 1000;
setarray .@rune[0],12737,1000;
}
mes "Tell me how many you want,";
mes "and remember, you can only";
mes "buy a maximum of '2000' ea.";
next;
input .@amount;
if (.@amount == 0) {
mes "[Rune Merchant]";
mes "You're not buying? Please leave!";
close;
}
if (.@amount > 2000) {
mes "[Rune Merchant]";
mes "The number must be less than 2,000!";
close;
}
.@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(.@item,.@amount)) {
mes "[Rune Merchant]";
mes "It doesn't seem like you are able to carry it all, why are you trying it?!";
close;
}
Zeny -= .@total;
getitem .@item, .@amount;
mes "[Rune Merchant]";
mes "Thank you.";
mes "Please come back again~!";
close;
}
job3_rune01,90,62,3 duplicate(runesale) Rune Merchant#job3 4_M_YURI
prontera,168,228,3 duplicate(runesale) Rune Merchant#prt 4_M_YURI
//== Rare Herb Merchants (Guillotine Cross) ================
job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{
if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
mes "- Please try again -";
mes "- after you lose some weight. -";
close;
}
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 started dealing in the herb called Izidor. If you are interested, you can buy them.";
next;
.@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 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 do I ask money? That's just to pay a little respect to a collector like me. Ha ha ha...";
close;
} else {
setarray .@exchange[0],702,621,631,749,605,703;
.@item = .@exchange[.@i];
.@price = 10000;
mes "[Rare Poison Herb Collector]";
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;
}
.@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 "[Rare Poison Herb Collector]";
mes "Good. I've received the money and the special item.";
delitem .@item, .@amount;
Zeny -= .@total;
getitem Izidor, .@amount;
close;
}
}
mes "[Rare Poison Herb Collector]";
mes "I wander around the world and collect rare poison herbs. But I don't feel like selling my herbs to a person like you... ha ha ha...";
close;
}
//== Point Merchants (Sorcerer) ============================
- script ::pss FAKE_NPC,{
if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) {
mes "- Wait a minute !! -";
mes "- Currently you're carrying -";
mes "- too many items with you. -";
mes "- Please try again -";
mes "- after you lose some weight. -";
close;
}
mes "[Point Merchant]";
mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?";
next;
.@i = select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
mes "[Point Merchant]";
if (.@i == 4) {
mes "You can't find the stuff you need?";
close;
}
setarray .@itemid[0],6360,6363,6361,6362;
setarray .@color$[0],"Scarlet","Lime Green","Indigo","Yellow Wish";
mes "You have chosen "+.@color$[.@i]+" Points.";
mes "How many do you want?";
mes "If you want to cancel, enter 0.";
next;
input .@amount;
mes "[Point Merchant]";
if (.@amount == 0) {
mes "You've cancelled the trade.";
close;
}
if (Zeny < .@amount*200) {
mes "You don't seem to have enough money.";
close;
}
if (!checkweight(.@itemid[.@i],.@amount)) {
mes "You don't have enough space in your inventory to buy this amount.";
close;
}
Zeny -= (.@amount*200);
getitem .@itemid[.@i],.@amount;
mes "Thank you very much. See you~!";
close;
}
gef_tower,105,172,5 duplicate(pss) Point Merchant#Sorcerer 8_F_GIRL
prt_in,131,66,0 duplicate(pss) Point Merchant#Prontera 8_F_GIRL
alberta,105,52,7 duplicate(pss) Point Merchant#Alberta 8_F_GIRL
aldebaran,133,114,5 duplicate(pss) Point Merchant#Aldebaran 8_F_GIRL
comodo,193,159,5 duplicate(pss) Point Merchant#Comodo 8_F_GIRL
geffen,129,49,5 duplicate(pss) Point Merchant#Geffen 8_F_GIRL
izlude,138,163,5 duplicate(pss) Point Merchant#Izlude 8_F_GIRL // Old coordinates: izlude (135,121)
izlude_a,138,163,5 duplicate(pss) Point Merchant#Izlude_a 8_F_GIRL
izlude_b,138,163,5 duplicate(pss) Point Merchant#Izlude_b 8_F_GIRL
izlude_c,138,163,5 duplicate(pss) Point Merchant#Izlude_c 8_F_GIRL
izlude_d,138,163,5 duplicate(pss) Point Merchant#Izlude_d 8_F_GIRL
malangdo,214,163,5 duplicate(pss) Point Merchant#Malangdo 8_F_GIRL
mora,115,118,3 duplicate(pss) Point Merchant#Mora 8_F_GIRL
ra_in01,256,273,3 duplicate(pss) Point Merchant#Rachel 8_F_GIRL
veins,202,128,5 duplicate(pss) Point Merchant#Veins 8_F_GIRL
dicastes01,207,200,5 duplicate(pss) Point Merchant#Dicastes 8_F_GIRL
manuk,261,206,3 duplicate(pss) Point Merchant#Manuk 8_F_GIRL
splendide,207,160,5 duplicate(pss) Point Merchant#Splendide 8_F_GIRL
mid_camp,224,237,3 duplicate(pss) Point Merchant#Midgard 8_F_GIRL