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
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
|
//===== rAthena Script =======================================
//= HD Refiners
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= [Official Conversion]
//= Refiners that use HD ores to refine equipment. Upon
//= failure, the equipment is not destroyed; rather, its
//= refine level decreases by 1. The success rate is identical
//= to that for Enriched ores.
//= - "Blacksmith Mighty Hammer" only refines from +7~9.
//= - "Basta" only refines from +10 and up.
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
//============================================================
// Blacksmith Mighty Hammer (+7~9)
//============================================================
- script ::MightyHammer -1,{
disable_items;
mes "[Blacksmith Mighty Hammer]";
mes "Unlike others, I am a blacksmith who refines a very limited number of items.";
mes "I refine only items that are ^CC0000+7 to +9^000000.";
next;
mes "[Blacksmith Mighty Hammer]";
mes "My specialty is that even if my refining fails, the refine level decreases by 1 without losing the gear. Isn't it great?";
next;
mes "[Blacksmith Mighty Hammer]";
mes "So lets kick this into overdrive, what d' ya say? What item do you want to refine?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
set .@menu$,"";
for(set .@i,1; .@i<=10; set .@i,.@i+1)
set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Not equipped]")+":";
set .@part, select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Blacksmith Mighty Hammer]";
switch(.@part) {
case 1:
mes "I'm a blacksmith, not a hairstylist.";
break;
case 2:
mes "With my hammer, I will make you a star of the sky.";
break;
case 3:
case 4:
mes "Making artificial hands is not my specialty.";
break;
case 5:
mes "Bring out the item so I can refine it!";
break;
case 6:
mes "Where is this foot order coming from?";
break;
case 7:
case 8:
mes "Where is the accessory?";
break;
case 9:
mes "What do you want me to refine?";
break;
case 10:
mes "Huh? What do you want me to do?";
break;
}
close;
}
if (!getequipisenableref(.@part)) {
mes "[Blacksmith Mighty Hammer]";
mes "This item can't be refined.";
close;
}
if (!getequipisidentify(.@part)) {
mes "[Blacksmith Mighty Hammer]";
mes "This item can't be refined because it has not been identified.";
close;
}
if (getequiprefinerycnt(.@part) < 7 || getequiprefinerycnt(.@part) > 9) {
mes "[Blacksmith Mighty Hammer]";
mes "I only handle items with refine levels from +7 to +9.";
close;
}
switch(getequipweaponlv(.@part)) {
default:
case 0:
set .@price,20000;
set .@material,6241; //HD_Elunium
break;
case 1:
case 2:
case 3:
case 4:
set .@price,20000;
set .@material,6240; //HD_Oridecon
break;
}
mes "[Blacksmith Mighty Hammer]";
mes "In order to refine the gear you selected you need ^ff9999"+getitemname(.@material)+"^000000 and 20,000 zeny as a fee.";
mes "Do you have them ready?";
next;
if(select("Yes:No") == 2) {
mes "[Blacksmith Mighty Hammer]";
mes "I will wait until you are ready.";
close;
}
if (getequiprefinerycnt(.@part) < 100) {
mes "[Blacksmith Mighty Hammer]";
mes "It looks like this item will likely fail to be refined.";
mes "Well, even if it fails, it only decreases by 1 refine level.";
mes "Would you like to continue refining?";
next;
if(select("Yes:No") == 2) {
mes "[Blacksmith Mighty Hammer]";
mes "Only those who overcome fear of failure will obtain a masterpiece.";
close;
}
}
if (countitem(.@material) == 0 || Zeny < .@price) {
mes "[Blacksmith Mighty Hammer]";
mes "Didn't you just say you had everything ready?";
close;
}
delitem .@material,1;
set Zeny, Zeny-.@price;
mes "[Blacksmith Mighty Hammer]";
mes "Tac! Tac! Tac!";
if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
successrefitem .@part;
next;
emotion e_no1;
mes "[Blacksmith Mighty Hammer]";
mes "The sound refreshes my mind everytime I hear it.";
mes "Here, have it. Refine succeeded flawlessly!";
close;
}
downrefitem .@part;
next;
emotion e_omg;
mes "[Blacksmith Mighty Hammer]";
mes "Oops!!";
next;
mes "[Blacksmith Mighty Hammer]";
mes "I am sure a person like you would never blame me for a decrease in refine level by 1. Hmm.";
close;
}
prt_in,59,54,3 duplicate(MightyHammer) Mighty Hammer#prt 826
morocc_in,65,30,3 duplicate(MightyHammer) Mighty Hammer#morocc 826
payon,148,176,3 duplicate(MightyHammer) Mighty Hammer#pay 826
alberta_in,16,56,3 duplicate(MightyHammer) Mighty Hammer#alb 826
yuno_in01,171,18,3 duplicate(MightyHammer) Mighty Hammer#yuno 826
ein_in01,22,82,3 duplicate(MightyHammer) Mighty Hammer#ein 826
lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 826
// iRO NPC locations:
// moc_para01,38,185,4 duplicate(MightyHammer) Mighty Hammer#ed 826
// payon,174,133,4 duplicate(MightyHammer) Mighty Hammer#im 826
// Basta (+10 and up)
//============================================================
- script ::Basta -1,{
disable_items;
mes "[Basta]";
mes "I'm the best Blacksmith in the whole world, Basta.";
mes "But I don't provide a normal refine service.";
mes "I only refine equipment ^CC0000over +10^000000.";
next;
mes "[Basta]";
mes "Which equipment do you want to refine?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
set .@menu$,"";
for(set .@i,1; .@i<=10; set .@i,.@i+1)
set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
set .@part, select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Basta]";
switch(.@part) {
case 1:
mes "Is your head an equipment?";
break;
case 2:
mes "What do you want me to do?";
break;
case 3:
case 4:
mes "Making artificial hands is not my specialty.";
break;
case 5:
mes "Do you even know what a robe is?";
break;
case 6:
mes "If you want to refine your feet, don't come to me, try running a marathon.";
break;
case 7:
case 8:
mes "Where is the accessory?";
break;
case 9:
mes "Well... I don't see any equipment worth refining.";
break;
case 10:
mes "I can't make you smart. Go see a school teacher for that.";
break;
}
close;
}
if (!getequipisenableref(.@part)) {
mes "[Basta]";
mes "Even I cannot refine this item. There's no way.";
close;
}
if (!getequipisidentify(.@part)) {
mes "[Basta]";
mes "I can't do anything about unidentified items.";
close;
}
if (getequiprefinerycnt(.@part) < 10) {
mes "[Basta]";
mes "Haven't I told you? I only refine equipments that are +10 and above.";
close;
}
if (getequiprefinerycnt(.@part) == 20) {
mes "[Basta]";
mes "This weapon is perfect, no need to refine it anymore~";
close;
}
switch(getequipweaponlv(.@part)) {
default:
case 0:
set .@price,100000;
set .@material,6225; //HD_Carnium
set .@type$,"armor";
break;
case 1:
case 2:
case 3:
case 4:
set .@price,100000;
set .@material,6226; //HD_Bradium
set .@type$,"weapon";
break;
}
mes "[Basta]";
mes "Hmm... is this the one you want to refine?";
mes "To refine this equipment, I need 1 ^ff9999"+getitemname(.@material)+"^000000 and 100,000 zeny as a fee.";
mes "Do you really want to refine this?";
next;
if(select("Yes:No") == 2) {
mes "[Basta]";
mes "Okay. If that's what you want...";
close;
}
if (getequiprefinerycnt(.@part) < 100) {
mes "[Basta]";
mes "This "+.@type$+" has already been refined pretty high.";
mes "If you try to refine it more, the refine level could decrease.";
next;
mes "[Basta]";
mes "I am different from the blacksmiths in others places.";
mes "It is impossible that the refine level will drop by, say, 3 or 4... that sounds scary.";
mes "Here it can only decrease by 1 level.";
next;
mes "[Basta]";
mes "Compared to other blacksmiths, the risk is smaller.";
mes "I've given all precautions. Do you want to try it?";
next;
if(select("Yes:No") == 2) {
mes "[Basta]";
mes "Well~";
mes "Not challenging at all could also be a kind of wisdom in life.";
close;
}
}
if (countitem(.@material) == 0 || Zeny < .@price) {
mes "[Basta]";
mes "Hmm... You didn't bring all the materials needed.";
mes "Come back when you have them all.";
close;
}
delitem .@material,1;
set Zeny, Zeny-.@price;
mes "Pow! Pow! Pow! Pow!";
if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
successrefitem .@part;
next;
emotion e_no1;
mes "[Basta]";
mes "Great! Nicely done!!";
mes "I really am the best blacksmith in the whole wide world!";
close;
}
downrefitem .@part;
next;
emotion (!rand(5))?e_cash:e_omg;
mes "[Basta]";
mes "Aaaaaaaaaaak!!!";
next;
mes "[Basta]";
mes "Damn it!";
mes "Refining failed and refine level has decreased!";
mes "Even the best blacksmith in the world doesn't guarantee 100% success!";
mes "Too bad.";
next;
mes "[Basta]";
mes "I'll do better next time! Don't worry!";
close;
}
prt_in,57,54,3 duplicate(Basta) Basta#prt 826
morocc_in,68,30,3 duplicate(Basta) Basta#morocc 826
payon,148,174,3 duplicate(Basta) Basta#payon 826
alberta_in,18,56,3 duplicate(Basta) Basta#alberta 826
yuno_in01,173,18,3 duplicate(Basta) Basta#yuno 826
ein_in01,24,82,3 duplicate(Basta) Basta#einbroch 826
lhz_in02,280,17,3 duplicate(Basta) Basta#lighthalzen 826
|