OSDN Git Service

First version
[st-ro/stro.git] / npc / re / merchants / 3rd_trader.txt
1 //===== rAthena Script ======================================= 
2 //= 3rd Item Seller
3 //===== By: ================================================== 
4 //= Masao, Mercurial
5 //===== Current Version: ===================================== 
6 //= 1.5
7 //===== Compatible With: ===================================== 
8 //= rAthena Project
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 //============================================================ 
22
23 // Poison Herb Merchants (Guillotine Cross) :: poison_herb_3rd_trader
24 //============================================================
25 -       script  ::phs   -1,{
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. -";
32                 close;
33         }
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?";
39         next;
40         .@i = select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
41         mes "[Poison Herb Merchant]";
42         if (.@i < 6) {
43                 .@item = 7932+.@i;
44                 .@price = 4000;
45                 .@max = 2000;
46         } else if (.@i == 6) {
47                 .@item = 7931;
48                 .@price = 5000;
49                 .@max = 500;
50                 mes "Each Poison Kit costs 5,000 zeny.";
51         } else {
52                 mes "Well, I see. Come back again~!";
53                 close;
54         }
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.";
58         next;
59         input .@amount;
60         if (.@amount == 0) {
61                 mes "[Poison Herb Merchant]";
62                 mes "You've cancelled the trade.";
63                 close;
64         }
65         if (.@amount > .@max) {
66                 mes "[Poison Herb Merchant]";
67                 mes "The number must be less than "+callfunc("F_InsertComma",.@max)+"!";
68                 close;
69         }
70         .@total = .@amount * .@price;
71         if (Zeny < .@total) {
72                 mes "[Poison Herb Merchant]";
73                 mes "You don't have enough money.";
74                 mes "Check how much money you have first.";
75                 close;
76         }
77         Zeny = Zeny - .@total;
78         getitem .@item, .@amount;
79         mes "[Poison Herb Merchant]";
80         mes "Thank you. Come back again~!";
81         close;
82 }
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
86
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. -";
96                 close;
97         }
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?";
102         next;
103         .@i = select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.");
104         mes "[Rune Merchant]";
105         if (.@i == 1) {
106                 mes "High-quality Runes!";
107                 mes "They cost 2,500 zeny each!";
108                 .@item = 12734; //Runstone_Quality
109                 .@price = 2500;
110         } else {
111                 mes "Ordinary Rune Stones?";
112                 mes "They cost 1,000 zeny each!";
113                 .@item = 12737; //Runstone_Ordinary
114                 .@price = 1000;
115         }
116         mes "Tell me how many you want,";
117         mes "and remember, you can only";
118         mes "buy a maximum of '2000' ea.";
119         next;
120         input .@amount;
121         if (.@amount == 0) {
122                 mes "[Rune Merchant]";
123                 mes "You're not buying? Please leave!";
124                 close;
125         }
126         if (.@amount > 2000) {
127                 mes "[Rune Merchant]";
128                 mes "The number must be less than 2,000!";
129                 close;
130         }
131         .@total = .@amount * .@price;
132         if (Zeny < .@total) {
133                 mes "[Rune Merchant]";
134                 mes "Zeny! Zeny!";
135                 mes "You don't have enough money.";
136                 mes "Check how much money you have first.";
137                 close;
138         }
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?!";
142                 close;
143         }
144         Zeny = Zeny - .@total;
145         getitem .@item, .@amount;
146         mes "[Rune Merchant]";
147         mes "Thank you.";
148         mes "Please come back again~!";
149         close;
150 }
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
153
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. -";
163                 close;
164         }
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.";
168                 next;
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;
170                 if (.@i == -1) {
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.";
173                         next;
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...";
176                         close;
177                 } else {
178                         setarray .@exchange[0],702,621,631,749,605,703;
179                         .@item = .@exchange[.@i];
180                         .@price = 10000;
181
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.";
186                         next;
187                         input .@amount;
188                         if (.@amount == 0) {
189                                 mes "[Rare Poison Herb Collector]";
190                                 mes "You've cancelled the trade.";
191                                 close;
192                         }
193                         if (.@amount > 2000) {
194                                 mes "[Rare Poison Herb Collector]";
195                                 mes "The number must be less than 2,000!";
196                                 close;
197                         }
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.";
202                                 close;
203                         }
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
209                         close;
210                 }
211         }
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...";
214         close;
215 }
216
217 // Point Merchants (Sorcerer) :: point_3rd_trader
218 //============================================================
219 -       script  ::pss   -1,{
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. -";
226                 close;
227         }
228         mes "[Point Merchant]";
229         mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?";
230         next;
231         .@i = select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
232         mes "[Point Merchant]";
233         if (.@i == 4) {
234                 mes "You can't find the stuff you need?";
235                 close;
236         }
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.";
242         next;
243         input .@amount;
244         mes "[Point Merchant]";
245         if (.@amount == 0) {
246                 mes "You've cancelled the trade.";
247                 close;
248         }
249         if (Zeny < .@amount*200) {
250                 mes "You don't seem to have enough money.";
251                 close;
252         }
253         if (!checkweight(.@itemid[.@i],.@amount)) {
254                 mes "You don't have enough space in your inventory to buy this amount.";
255                 close;
256         }
257         Zeny = Zeny-(.@amount*200);
258         getitem .@itemid[.@i],.@amount;
259         mes "Thank you very much. See you~!";
260         close;
261 }
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