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
|
// TMW2 Script
// Author:
// Jesusalva
// Description:
// Intense Beard is the crafting master
003-8,27,42,4 script Intense Beard NPC_HUMAN_M_ARTIS,{
if (BaseLevel < 18)
goto L_SemNivel;
if (!CRAFTQUEST)
goto L_SemQuest;
if (!getskilllv(TMW2_CRAFT))
goto L_Learn;
if (!countitem(RecipeBook))
goto L_SemLivro;
mesn;
mesq l("Hello my friend! I see you've brought your @@ with you this time!", getitemlink(RecipeBook));
next;
mesn;
mesq l("Let's learn new recipes! Do you wanna?");
mesc l("Bonus recipes must be enabled with @@ after learned!", b("@ucp"));
next;
.@bool=false;
do {
csysGUI_Report(.@bool);
mesc l("Learn what?");
mes "";
.@opt$="Nothing";
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_BASE);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_ATK);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_DEF);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_ACC);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_EVD);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_REGEN);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_SPEED);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_DOUBLE);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_MAXPC);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_SCRESIST);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_SCINFLICT);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_MANAUSE);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_BOSSATK);
.@opt$+=":"+csysGUI_OptLearnMenu(CRGROUP_FINAL);
.@opt$+=":I would like a tutorial";
select (.@opt$);
mes "";
switch (@menu) {
case 2:
if (csysGUI_RaiseOpt(CRGROUP_BASE))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 3:
if (csysGUI_RaiseOpt(CRGROUP_ATK))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 4:
if (csysGUI_RaiseOpt(CRGROUP_DEF))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 5:
if (csysGUI_RaiseOpt(CRGROUP_ACC))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 6:
if (csysGUI_RaiseOpt(CRGROUP_EVD))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 7:
if (csysGUI_RaiseOpt(CRGROUP_REGEN))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 8:
if (csysGUI_RaiseOpt(CRGROUP_SPEED))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 9:
if (csysGUI_RaiseOpt(CRGROUP_DOUBLE))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 10:
if (csysGUI_RaiseOpt(CRGROUP_MAXPC))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 11:
if (csysGUI_RaiseOpt(CRGROUP_SCRESIST))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 12:
if (csysGUI_RaiseOpt(CRGROUP_SCINFLICT))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 13:
if (csysGUI_RaiseOpt(CRGROUP_MANAUSE))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 14:
if (csysGUI_RaiseOpt(CRGROUP_BOSSATK))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
case 15:
if (csysGUI_RaiseOpt(CRGROUP_FINAL))
mesc l("Success!"), 3;
else
mesc l("Not enough Monster Points!"), 1;
break;
default:
IntenseBeardTutorial();
break;
}
// Update boolean
if (!.@bool)
.@bool=true;
} while (@menu != 1);
close;
L_SemNivel:
mesn;
mesq l("Please don't disturb me, I'm busy crafting my own customized power mega blaster weapon. I just keep failing to apply +100% exp gain bonus on it!");
close;
L_SemLivro:
mesn;
mesq l("Heya, noob. Where is your @@? Are you really so noob to have forgot such important book?!", getitemlink(RecipeBook));
next;
mesn;
mesq l("That's too bad, because I could teach you some amazing craft skills! This will need to wait another day, I guess. Oh well.");
close;
L_SemQuest:
mesn;
mesq l("Heya, noob. Where is your @@? Are you really so noob to have forgot such important book?!", getitemlink(RecipeBook));
next;
mesn strcharinfo(0);
mesc l("Was I supposed to have one? How should I reply?");
mes "";
select
l("Erm... I don't have a recipe book."),
l("That's nice, but... I don't have a recipe book."),
l("Pardon me, what is a recipe book?");
mes "";
mesn;
mesq l("WHAT? Have you not gained one at birth? That's absurd!");
next;
select
l("Erm... I don't know my parents."),
l("Maybe, but... I don't know my parents."),
l("Pardon me, I don't remember my parents.");
mes "";
mesn;
mesq l("WHAT? That's twice absurd! Now you'll say that you were found stranded on a desert island without equipment and can't remember anything but your own name!");
next;
select
l("Erm... You're right."),
l("Well... You're right."),
l("How did you guess that?");
mes "";
mesn;
mesq l("... ... ...");
next;
mesn;
mesq l("...Okay, this is not fun anymore.");
next;
mesn;
mesq l("Here, you can have this spare one. Hahah! Crafting is an art, and I help teaching it. Just be sure to don't lose it, you will NEVER get another copy EVER again, was I clear?!");
next;
mesn;
mesq l("While we're at that, do you know how to craft? No? First, you'll need a Cauldron, in case you've rented a house. Otherwise, you can rent a work table on this Forge.");
next;
mesn;
mesq l("You need to read this recipe. Without the essential crafting skill you won't go very far. There will be no bonuses on the items you craft because you are not a craftsman.");
// Obtain a blueprint and a recipe book
inventoryplace EquipmentBlueprintA, 1, RecipeBook, 1;
getitem EquipmentBlueprintA, 1;
getitem RecipeBook, 1;
CRAFTQUEST=1;
next;
L_Learn:
mesn;
mesq l("I see you don't know how to craft. Do you want me to teach the basic for you? I'll charge 1000 GP.");
if (Zeny < 1000)
close;
next;
if (askyesno() == ASK_YES) {
// Pay the money
Zeny-=1000;
// Give you the craft skill itself
skill TMW2_CRAFT, 1, 0;
// We should aid you getting basic skills - for free!
if (!CRAFTSYS[CRGROUP_BASE])
CRAFTSYS[CRGROUP_BASE]+=1;
if (!CRAFTSYS_CURRENT)
CRAFTSYS_CURRENT=CRAFTSYS_CURRENT|CRGROUP_BASE;
mesn;
mesq l("There, now you can not only craft items, but craft AWESOME ITEMS!");
}
close;
function IntenseBeardTutorial {
mesn;
mesq l("Well, first of, you'll need an @@ and an Equipment Recipe.", getitemlink(RecipeBook));
next;
mesn;
mesq l("You can craft items in forges. You can use it on your house, or within this forge for a tax.");
next;
mesn;
mesq l("That will help you to make your very first first craft! Remember to use @@ to change which bonuses can be applied to your craft items.", b("@ucp"));
next;
mesn;
mesq l("I can teach you these bonuses, but more powerful bonuses require more skill to learn... And I don't know anyone who could improve your crafting skill...");
next;
mesn;
mesq l("...The ones who know a lot are dwarves, but they don't live here - they live with elves, it seems.");
next;
return;
}
OnInit:
.sex=G_MALE;
.distance=5;
npcsit;
end;
}
|