1 //===== rAthena Script =======================================
3 //===== By: ==================================================
5 //===== Current Version: =====================================
7 //===== Compatible With: =====================================
9 //===== Description: =========================================
10 //= [Official Conversion]
11 //= Sells some 3rd Job related items:
12 //= - Poison Herbs, Rune Stones, Rare Herbs, Points
13 //===== Additional Comments: =================================
14 //= 1.0 First Version.
15 //= 1.1 Optimized Poison Herb Salesman NPC
16 //= 1.2 Optimized and standardized. [Euphy]
17 //= 1.3 Added Malangdo/Mora Points NPC. [Euphy]
18 //= 1.4 Updated to match the official scripts. [Euphy]
19 //= 1.5 Added Izlude duplicates. [Euphy]
20 //= 1.5a Remove useless array & misc. [Capuche]
21 //============================================================
23 // Poison Herb Merchants (Guillotine Cross) :: poison_herb_3rd_trader
24 //============================================================
26 if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
27 mes "- Wait a minute !! -";
28 mes "- Currently you're carrying -";
29 mes "- too many items with you. -";
30 mes "- Please try again -";
31 mes "- after you lose some weight. -";
34 mes "[Poison Herb Merchant]";
35 mes "I am the professional";
36 mes "Poison Herb merchant.";
37 mes "Each Herb costs 4,000 zeny.";
38 mes "What would you like?";
40 .@i = select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
41 mes "[Poison Herb Merchant]";
46 } else if (.@i == 6) {
50 mes "Each Poison Kit costs 5,000 zeny.";
52 mes "Well, I see. Come back again~!";
55 mes "How many do you want?";
56 mes "You can only buy a maximum of '"+.@max+"' ea.";
57 mes "Enter '0' if you want to cancel.";
61 mes "[Poison Herb Merchant]";
62 mes "You've cancelled the trade.";
65 if (.@amount > .@max) {
66 mes "[Poison Herb Merchant]";
67 mes "The number must be less than "+callfunc("F_InsertComma",.@max)+"!";
70 .@total = .@amount * .@price;
72 mes "[Poison Herb Merchant]";
73 mes "You don't have enough money.";
74 mes "Check how much money you have first.";
77 Zeny = Zeny - .@total;
78 getitem .@item, .@amount;
79 mes "[Poison Herb Merchant]";
80 mes "Thank you. Come back again~!";
83 job3_guil01,79,96,3 duplicate(phs) Poison Herb Merchant 4_F_YUNYANG
84 morocc,191,94,4 duplicate(phs) Poison Herb Merchant#moc 4_F_YUNYANG //Official: (190,96) -> in a wall
85 lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 4_F_YUNYANG
87 // Rune Stone Merchants (Rune Knight) :: rune_3rd_trader
88 //============================================================
89 - script ::runesale -1,{
90 if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
91 mes "- Wait a minute !! -";
92 mes "- Currently you're carrying -";
93 mes "- too many items with you. -";
94 mes "- Please try again -";
95 mes "- after you lose some weight. -";
98 mes "[Rune Merchant]";
99 mes "Hey, do you need Runes?!";
100 mes "I sell all sorts of Rune Stones!";
101 mes "What would you like?";
103 .@i = select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.");
104 mes "[Rune Merchant]";
106 mes "High-quality Runes!";
107 mes "They cost 2,500 zeny each!";
108 .@item = 12734; //Runstone_Quality
111 mes "Ordinary Rune Stones?";
112 mes "They cost 1,000 zeny each!";
113 .@item = 12737; //Runstone_Ordinary
116 mes "Tell me how many you want,";
117 mes "and remember, you can only";
118 mes "buy a maximum of '2000' ea.";
122 mes "[Rune Merchant]";
123 mes "You're not buying? Please leave!";
126 if (.@amount > 2000) {
127 mes "[Rune Merchant]";
128 mes "The number must be less than 2,000!";
131 .@total = .@amount * .@price;
132 if (Zeny < .@total) {
133 mes "[Rune Merchant]";
135 mes "You don't have enough money.";
136 mes "Check how much money you have first.";
139 if (!checkweight(.@item,.@amount)) {
140 mes "[Rune Merchant]";
141 mes "It doesn't seem like you are able to carry it all, why are you trying it?!";
144 Zeny = Zeny - .@total;
145 getitem .@item, .@amount;
146 mes "[Rune Merchant]";
148 mes "Please come back again~!";
151 job3_rune01,90,62,3 duplicate(runesale) Rune Merchant#job3 4_M_YURI
152 prontera,168,228,3 duplicate(runesale) Rune Merchant#prt 4_M_YURI
154 // Rare Herb Merchants (Guillotine Cross) :: rare_herb_3rd_trader
155 //============================================================
156 job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{
157 if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
158 mes "- Wait a minute !! -";
159 mes "- Currently you're carrying -";
160 mes "- too many items with you. -";
161 mes "- Please try again -";
162 mes "- after you lose some weight. -";
165 if (Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T || Class == Job_Baby_Cross) {
166 mes "[Rare Poison Herb Collector]";
167 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.";
169 .@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;
171 mes "[Rare Poison Herb Collector]";
172 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.";
174 mes "[Rare Poison Herb Collector]";
175 mes "Why do I ask money? That's just to pay a little respect to a collector like me. Ha ha ha...";
178 setarray .@exchange[0],702,621,631,749,605,703;
179 .@item = .@exchange[.@i];
182 mes "[Rare Poison Herb Collector]";
183 mes "How many do you want?";
184 mes "You can only buy a maximum of '2000' ea.";
185 mes "Enter '0' if you want to cancel.";
189 mes "[Rare Poison Herb Collector]";
190 mes "You've cancelled the trade.";
193 if (.@amount > 2000) {
194 mes "[Rare Poison Herb Collector]";
195 mes "The number must be less than 2,000!";
198 .@total = .@amount * .@price;
199 if (countitem(.@item) < .@amount || Zeny < .@total) {
200 mes "[Rare Poison Herb Collector]";
201 mes "Hey, come back when you have all the requirements for the exchange.";
204 mes "[Rare Poison Herb Collector]";
205 mes "Good. I've received the money and the special item.";
206 delitem .@item, .@amount;
207 Zeny = Zeny - .@total;
208 getitem 709, .@amount; //Izidor
212 mes "[Rare Poison Herb Collector]";
213 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...";
217 // Point Merchants (Sorcerer) :: point_3rd_trader
218 //============================================================
220 if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
221 mes "- Wait a minute !! -";
222 mes "- Currently you're carrying -";
223 mes "- too many items with you. -";
224 mes "- Please try again -";
225 mes "- after you lose some weight. -";
228 mes "[Point Merchant]";
229 mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?";
231 .@i = select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
232 mes "[Point Merchant]";
234 mes "You can't find the stuff you need?";
237 setarray .@itemid[0],6360,6363,6361,6362;
238 setarray .@color$[0],"Scarlet","Lime Green","Indigo","Yellow Wish";
239 mes "You have chosen "+.@color$[.@i]+" Points.";
240 mes "How many do you want?";
241 mes "If you want to cancel, enter 0.";
244 mes "[Point Merchant]";
246 mes "You've cancelled the trade.";
249 if (Zeny < .@amount*200) {
250 mes "You don't seem to have enough money.";
253 if (!checkweight(.@itemid[.@i],.@amount)) {
254 mes "You don't have enough space in your inventory to buy this amount.";
257 Zeny = Zeny-(.@amount*200);
258 getitem .@itemid[.@i],.@amount;
259 mes "Thank you very much. See you~!";
262 gef_tower,105,172,5 duplicate(pss) Point Merchant#Sorcerer 8_F_GIRL
263 prt_in,131,66,0 duplicate(pss) Point Merchant#Prontera 8_F_GIRL
264 alberta,105,52,7 duplicate(pss) Point Merchant#Alberta 8_F_GIRL
265 aldebaran,133,114,5 duplicate(pss) Point Merchant#Aldebaran 8_F_GIRL
266 comodo,193,159,5 duplicate(pss) Point Merchant#Comodo 8_F_GIRL
267 geffen,129,49,5 duplicate(pss) Point Merchant#Geffen 8_F_GIRL
268 izlude,138,163,5 duplicate(pss) Point Merchant#Izlude 8_F_GIRL // Old coordinates: izlude (135,121)
269 izlude_a,138,163,5 duplicate(pss) Point Merchant#Izlude_a 8_F_GIRL
270 izlude_b,138,163,5 duplicate(pss) Point Merchant#Izlude_b 8_F_GIRL
271 izlude_c,138,163,5 duplicate(pss) Point Merchant#Izlude_c 8_F_GIRL
272 izlude_d,138,163,5 duplicate(pss) Point Merchant#Izlude_d 8_F_GIRL
273 malangdo,214,163,5 duplicate(pss) Point Merchant#Malangdo 8_F_GIRL
274 mora,115,118,3 duplicate(pss) Point Merchant#Mora 8_F_GIRL
275 ra_in01,256,273,3 duplicate(pss) Point Merchant#Rachel 8_F_GIRL
276 veins,202,128,5 duplicate(pss) Point Merchant#Veins 8_F_GIRL
277 dicastes01,207,200,5 duplicate(pss) Point Merchant#Dicastes 8_F_GIRL
278 manuk,261,206,3 duplicate(pss) Point Merchant#Manuk 8_F_GIRL
279 splendide,207,160,5 duplicate(pss) Point Merchant#Splendide 8_F_GIRL
280 mid_camp,224,237,3 duplicate(pss) Point Merchant#Midgard 8_F_GIRL