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
|
013-2.gat,66,39,0|script|Old Wizard#_W|116,
{
set @has_magic, getskilllv(SKILL_MAGIC);
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_OLD_WIZARD;
set @run, ((QUEST_NorthTulimshar & TWOBIT_8_MASK) >> TWOBIT_8_SHIFT);
set @state, ((QUEST_NorthTulimshar & NIBBLE_5_MASK) >> NIBBLE_5_SHIFT);
if ((@run == 2) && (@state == 13))
goto L_Deliver;
goto L_Start;
L_Deliver:
menu
"I have a delivery for you", L_Delivery;
L_Delivery:
mes "[Old Wizard]";
mes "\"Good now I can get to work on some stronger brew..\"";
set @state, 14;
callfunc "SetKylianQuest";
goto L_Close;
L_Start:
mes "[Old Wizard]";
mes "\"Welcome, dear wanderer! Come into my humble home. Take a rest, eat and drink.\"";
next;
menu
"Thanks, that's very kind of you!", L_Thanks,
"Can you teach me magic?", L_TeachRude,
"Oh, shut up!", L_ShutUp;
L_TeachRude:
mes "[Old Wizard]";
mes "\"I certainly could, but I already have an apprentice.\"";
goto L_Close;
L_ShutUp:
mes "[Old Wizard]";
mes "\"That attitude isn't going to get you very far, my dear.\"";
goto L_Close;
L_Thanks:
mes "[Old Wizard]";
mes "\"Behind this door, my apprentice will serve you.\"";
next;
if (@has_magic)
menu
"Alright.", L_Agree,
"I am studying magic, can you help?", L_NewStudent,
"Your apprentice? ... No thanks.", L_Decline;
menu
"Alright.", L_Agree,
"Your apprentice? ... No thanks.", L_Decline;
L_Decline:
mes "[Old Wizard]";
mes "\"Goodbye, then!\"";
goto L_Close;
L_NewStudent:
mes "[Old Wizard]";
mes "\"Studying is always an excellent use of one's mind! I fear that I can't offer too much assistance to you, however. But if you are interested, I could perhaps teach you a simple spell?\"";
next;
// check if the player has the knowledge of any skill
if (getskilllv(SKILL_POOL))
menu
"That would be very kind of you!", L_TeachSpell,
"Actually I am looking for someone teaching me some more magic skills.", L_AstralSoul,
"No, but thank you!", L_Decline;
menu
"That would be very kind of you!", L_TeachSpell,
"No, but thank you!", L_Decline;
L_TeachSpell:
mes "[Old Wizard]";
mes "\"This one may not seem too powerful, but it can be quite handy; it's the 'hide' spell. It will shield you from some forms of detection magic.\"";
next;
mes "[Old Wizard]";
mes "\"Put a piece of cotton cloth on your head, and speak out '" + getspellinvocation("hide") + "', loudly and clearly. The protection lasts quite long, but you may have to renew it on occasion.\"";
next;
mes "[Old Wizard]";
mes "\"You can also cast it on others, of course. Just speak their name after you pronounce the invocation.\"";
next;
mes "[Old Wizard]";
mes "\"You may find it useful for getting a little peace and quiet at times, but it can also get in the way of friends trying to find you, so use it with care.\"";
next;
if (getskilllv(SKILL_MAGIC_ASTRAL) >= 2)
goto L_Close;
mes "[Old Wizard]";
mes "\"I'm not sure if you are experienced enough to cast it yet, though. You may need to first learn astral magic.\"";
goto L_Close;
L_AstralSoul:
mes "[Old Wizard]";
mes "\"Oh yes, there are lots of ways to improve your magic. Skills -some people say mental focus for that- are another way to improve your magic. Of course learning more and more spells is also a need for good mages.\"";
next;
mes "\"I can teach you the ability to focus on magical stuff.\"";
next;
mes "\"To do so, I am in need of a pearl and about 100 acorns.\"";
menu
"Here we go.", L_Next,
"Ok be right back. I'll get them", L_Decline;
L_Next:
if (countitem("Pearl") < 1 || countitem("Acorn") < 100) goto L_NotEnough;
delitem "Pearl", 1;
delitem "Acorn", 100;
mes "[Old Wizard]";
mes "\"Okay, listen:\"";
next;
mes "\"Some parts of your brain is still unused. These parts will now get the ability to get focused to magic.\"";
next;
mes "\"To do so, think of a magic spell!\"";
next;
mes "The old wizard mumbles some invocations";
next;
set @SUP_lvl, 1;
set @SUP_id, SKILL_ASTRAL_SOUL;
set @SUP_name$, "Astral Soul";
set @SUP_xp, 2500;
callfunc "SkillUp";
mes "\"Now go and try to find someone who can actually activate that focus.\"";
next;
mes "\"You have the powers to focus on magic, but you need to get magic focused now.\"";
goto L_Close;
L_NotEnough:
mes "[Old Wizard]";
mes "\"Please learn to count.\"";
next;
mes "\"When you are done with that, come back again.\"";
goto L_Close;
L_Agree:
mes "[Old Wizard]";
mes "\"Beware the flying notes though, some of them are really dangerous. I haven't been able to persuade them to get back into their book. And avoid the mirror, it's been acting strange lately.\"";
next;
mes "\"Oh, and please don't take my apprentice too seriously. He still has a lot to learn.\"";
goto L_Close;
L_Close:
set @has_magic, 0;
close;
}
|