//================= 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 . //========================================================================= //= 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