summaryrefslogtreecommitdiff
path: root/npc/merchants/old_pharmacist.txt
blob: 8bbfb4945edf7a45533338cee48e79a87675e17e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
//===== eAthena Script =======================================
//= Old Pharmacist
//===== By: ==================================================
//= DZeroX
//===== Current Version: =====================================
//= 1.1a
//===== Compatible With: =====================================
//= eAthena SVN Trunk
//===== Description: =========================================
//= Trade in items for potions
//===============================
//= Breakdown of arguments used
//= arg(0): Herb required.
//= arg(1): Zeny cost.
//= arg(2): Potion given.
//===== Additional Comments: =================================
//= 1.0 - Fully working. [DZeroX]
//= 1.0a - Minor fixes [Lupus]
//= 1.1 - Added changed the dialogs and name to fit the
//=       the official information. [DZeroX]
//= 1.1a Removed .GATs [Lupus]
//============================================================

alberta_in,16,28,4	script	Old Pharmacist	61,{
	mes "[Old Pharmacist]";
	mes "Err....Are you a customer...?";
	switch(select("Make Potion","Talk.","Instruction of making potions","Cancel")) {
		case 1:
			next;
			set .@weight,MaxWeight-Weight;
			if ((.@weight) < 10000) {
				mes "[Old Pharmacist]";
				mes "Why are you carrying these so many!";
				mes "Don't be greedy, carry only as much you need!";
				next;
				mes "[Old Pharmacist]";
				mes "You are too heavy to receive potions from me...";
				mes "Go store some items in your storage first!";
				close;
			} else {
				mes "[Old Pharmacist]";
				mes "You have all the stuff ready, right? Which one would you like?";
				switch(select("Red Potion.","Orange Potion.","Yellow Potion.","White Potion.","Blue Potion.","Green Potion.","Actually, I don't want anything.")) {
					case 1:
						callsub L_making,507,3,501;
					case 2:
						next;
						mes "[Old Pharmacist]";
						if (countitem(507) < countitem(713)) {
							set .@max,countitem(507);
						}
						if (countitem(508) < countitem(713)) {
							set .@max,countitem(508);
						} else {
							set .@max,countitem(713);
						}
						if ((countitem(507) < 1) || (countitem(508) < 1) || (countitem(713) == 0)) {
							mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
							mes "Get lost!";
							close;
						}
						if (Zeny < 3) {
							mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
							mes "Get lost!";
							close;
						}
						mes "How many?";
						switch(select("Make as many as I can.","I want to choose an amount.","Actually, I don't want anything.")) {
							case 1:
								next;
								if ((countitem(507) < .@max) || (countitem(508) < .@max) || (countitem(713) < .@max) || (Zeny < .@max*3)) {
									mes "[Old Pharmacist]";
									mes "You rascal! You don't even have all the materials and you want me to make you potions?!";
									close;
								}
								set Zeny,Zeny-(.@max*getarg(1));
								delitem getarg(0),.@max*2;
								delitem 713,.@max;
								getitem getarg(2),.@max; 
								mes "[Old Pharmacist]";
								mes "Here. Take them.";
								mes "Here you go. It's all done so you can take it. But remember! Abusing medicine is not good.";
								close;
							case 2:
								next;
								mes "[Old Pharmacist]";
								mes "Then pick a number below 100. If you don't want any, just enter '0'. With the materials you have, you can make about "+.@max+" potions.";
								input .@amount;
								if (.@amount == 0) {
									next;
									mes "[Old Pharmacist]";
									mes "Make up your mind, will you?!";
									close;
								}
								if (.@amount > 100) {
									next;
									mes "[Old Pharmacist]";
									mes "Are you deaf? I said less than 100!";
									close;
								}
								if ((countitem(507) < .@amount) || (countitem(508) < .@amount) || (countitem(713) < .@amount) || (Zeny < .@amount*3)) {
									next;
									mes "[Old Pharmacist]";
									mes "You rascal! You don't even have all the materials and you want me to make you potions?!";
									close;
								}
								next;
								set Zeny,Zeny-(.@amount*getarg(1));
								delitem getarg(0),.@amount*2;
								delitem 713,.@amount;
								getitem getarg(2),.@amount; 
								mes "[Old Pharmacist]";
								mes "Here you go. It's all done so you can take it. But remember! Abusing medicine is not good.";
								close;
							case 3:
								next;
								mes "[Old Pharmacist]";
								mes "What?!";
								mes "Grrr...";
								mes "Bleh!";
								mes "Get lost!";
								close;
						}
					case 3:
						callsub L_making,508,10,503;
					case 4:
						callsub L_making,509,20,504;
					case 5:
						callsub L_making,510,30,505;
					case 6:
						callsub L_making,511,3,506;
					case 7:
						mes "[Old Pharmacist]";
						mes "What?!";
						mes "Grrr...";
						mes "Bleh!";
						mes "Get lost!";
						close;
					}
				}
		case 2:
			mes "[Old Pharmacist]";
			mes "With medicine, you can increase a person's ability to regenerate. But, they're only good up to a point. *Sigh* I'm starting to think of the days when I was young. I must be getting old.";
			next;
			mes "[Old Pharmacist]";
			mes "Anyways, a potion is merely a potion. Nothing more and nothing less.";
			close;
		case 3:
			mes "[Old Pharmacist]";
			mes "Hrrrmm...";
			mes "You young ones can be quite annoying. But, since you asked, I'll explain.";
			next;
			mes "[Old Pharmacist]";
			mes "Herbs work well by themselves, but if you use my special techniques and skills to make potions out of them, the effect is much much greater.";
			next;
			mes "[Old Pharmacist]";
			mes "If you ask eagerly and politely, I will make them for you. But, not for free... Don't worry though, I only charge a small fee, so it's not that expensive.";
			next;
			mes "[Old Pharmacist]";
			mes "Red Potion - ^0098E52 Red Herbs, 1 Empty Bottle, 2 zeny fee.^000000";
			mes "Orange Potion - ^0098E51 Red Herb, 1 Yellow Herb, 1 Empty Bottle, 5 zeny fee.^000000";
			mes "Yellow Potion - ^0098E52 Yellow Herbs, 1 Empty Bottle, 10 zeny.^000000";
			next;
			mes "[Old Pharmacist]";
			mes "White Potion - ^0098E52 White Herbs, 1 Empty Bottle, 20 zeny fee.^000000";
			mes "Blue Potion - ^0098E52 Blue Herbs, 1 Empty Bottle, 30 zeny fee.^000000";
			mes "Green Potion - ^0098E52 Green Herbs, 1 Empty Bottle, 3 zeny fee.^000000";
			close;
		case 4:
			mes "[Old Pharmacist]";
			mes "What a boring person. If you have something to say, why don't you say it?!";
			close;
	}
	
L_making:
	next;
	mes "[Old Pharmacist]";
	if ((countitem(getarg(0))/2) < countitem(713)) {
		set .@max,countitem(getarg(0))/2;
	} else {
		set .@max,countitem(713);
	}
	if ((countitem(getarg(0)) < 2) || (countitem(713) == 0)) {
		mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
		mes "Get lost!";
		close;
	}
	if (Zeny < 3) {
		mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
		mes "Get lost!";
		close;
	}
	mes "How many?";
	switch(select("Make as many as I can.","I want to choose an amount.","Actually, I don't want anything.")) {
		case 1:
			next;
			if ((countitem(getarg(0)) < .@max*2) || (countitem(713) < .@max) || (Zeny < .@max*getarg(1))) {
				mes "[Old Pharmacist]";
				mes "You rascal! You don't even have all the materials and you want me to make you potions?!";
				close;
			}
			set Zeny,Zeny-(.@max*getarg(1));
			delitem getarg(0),.@max*2;
			delitem 713,.@max;
			getitem getarg(2),.@max; 
			mes "[Old Pharmacist]";
			mes "Here. Take them.";
			mes "Here you go. It's all done so you can take it. But remember! Abusing medicine is not good.";
			close;
		case 2:
			next;
			mes "[Old Pharmacist]";
			mes "Then pick a number below 100. If you don't want any, just enter '0'. With the materials you have, you can make about "+.@max+" potions.";
			input .@amount;
			if (.@amount == 0) {
				next;
				mes "[Old Pharmacist]";
				mes "Make up your mind, will you?!";
				close;
			}
			if (.@amount > 100) {
				next;
				mes "[Old Pharmacist]";
				mes "Are you deaf? I said less than 100!";
				close;
			}
			if ((countitem(getarg(0)) < .@amount*2) || (countitem(713) < .@amount) || (Zeny < .@amount*getarg(1))) {
				next;
				mes "[Old Pharmacist]";
				mes "You rascal! You don't even have all the materials and you want me to make you potions?!";
				close;
			}
			next;
			set Zeny,Zeny-(.@amount*getarg(1));
			delitem getarg(0),.@amount*2;
			delitem 713,.@amount;
			getitem getarg(2),.@amount; 
			mes "[Old Pharmacist]";
			mes "Here you go. It's all done so you can take it. But remember! Abusing medicine is not good.";
			close;
		case 3:
			next;
			mes "[Old Pharmacist]";
			mes "What?!";
			mes "Grrr...";
			mes "Bleh!";
			mes "Get lost!";
			close;
	}
}