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
|
// Evol scripts.
// Authors:
// monwarez
// Reid
// Tirifto
// Description:
// Sword trainer from the Legion of Aemil guild.
// Variables:
// Artis_Legion_Progress
// Values:
// 0 Default.
// 1 Sent to training.
// 2 Finished training.
// 3 Sent to battle.
// 4 Finished battle.
// 5 Sent to Q'Anon.
001-2-33,34,33,0 script Lozerk NPC_DEMON_MALE_SWORD,{
// Quest-related functions
function explain_direction {
switch (getq(Artis_Legion_Progress))
{
case 1:
setcamnpc "#001-2-33_29_32";
speech(S_LAST_NEXT | S_NO_NPC_NAME,
l("It's to the west, on your left side. Just go through this door before the stairs and turn left afterwards. Can't miss it!"),
l("Talk to Hector and he'll show you the ropes."),
l("Report back to me once you've had enough!"));
restorecam;
break;
case 3:
setcamnpc "#001-2-33_39_32";
speech(S_LAST_NEXT | S_NO_NPC_NAME,
l("The room is to the east, on your right side. Just go through the door before the stairs and then turn right. It's like the mirror image of our training room."));
restorecam;
break;
case 5:
setcamnpc "#001-2-33_45_28";
speech(S_LAST_NEXT | S_NO_NPC_NAME,
l("Walk up the stairs, go through the door on either side, and the only other door in the room, few steps to the south, will lead you right to him."));
restorecam;
break;
}
return;
}
function send_training {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("Oh, you were sent by Enora!"),
l("If Enora thinks this is the right place for you, then she's probably be right. Did you know she's a lieutenant of the Legion?"),
l("The rank of lieutenant is granted only to people with proper control of their skill and good judgment, like Enora. Or me, of course."),
l("By the way, I'm Lozerk. Lieutenant Lozerk.");
select(l("Pleasure to meet you. I am @@.", strcharinfo(PC_NAME)));
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("Oh, you are that person! You were stranded in the seas for a while, right? You look like it."),
l("But don't you worry! I don't know how to get you back your memories, but we can work on your muscles for now!"),
l("After all, this is the Legion of Aemil! You want to be a great warrior? We'll make you one here!"),
l("For starters, you should probably do some stretching and practice on some dummies in our training room."),
l("That's right, we have our very own training room. The Legion is always well prepared!");
setq Artis_Legion_Progress, 1;
explain_direction();
return;
}
function send_battle {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("So, did you get your blood boiling? Give the dummies a good lesson? Good!"),
l("But since it's not dummies that will go after you out there, this training won't be enough."),
l("If you want to make a formidable foe for anyone, you'll need to train with real living opponents!"),
l("Of course, the Legion of Aemil can easily provide you with such training, even if you're not a member. Just great, isn't it?"),
l("We have a special room for this purpose, too. You may test your skills against all kinds of dreadful monsters in there.");
setq Artis_Legion_Progress, 3;
explain_direction();
return;
}
function send_qanon {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("And you won! That means you should be able to handle yourself in battle from now on."),
l("If you keep it up, you'll eventually become a fearsome warrior, just like me!"),
l("Or almost like me, at the very least."),
l("But if you really want to accomplish something, you should consider joining us."),
l("You have talent and the best place to utilize it is in the Legion! You can either pursue your goals with us or without us, but trust me, with us it's much better."),
l("I should know, I've not been a member for a while, too. But then I joined the Legion and look what a shining example of a great fighter I became!"),
l("You should definitely go talk to Q'Anon, our boss. You'll find him upstairs.");
setq Artis_Legion_Progress, 5;
explain_direction();
return;
}
// Normal functions
function forget_direction {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("You are lucky there are no mental faculty requirements to join the Legion!");
explain_direction;
return;
}
function tell_about_legion {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("The Legion of Aemil is the greatest organization on all continent! A town cannot be safer than when it's under our protection."),
l("This is where the bravest of warriors come together to put their skills to a good use, for a good cause."),
l("Our building here is also the finest place in the town. Just go and see for yourself!");
return;
}
function praise_sword {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("Thanks!");
return;
}
// Conversation
speech S_LAST_NEXT,
l("Welcome to the Legion of Aemil's building in Artis!");
// You're an enemy of the Legion - No dialog for you
if (faction_standing("LEGION", true) < 1) {
mesn;
mesq l("Please don't loiter around unless you have business with the Legion.");
close;
}
do
{
.@legion_progress = getq(Artis_Legion_Progress);
.@enora = getq(ArtisQuests_Enora);
consolemes(CONSOLEMES_DEBUG, .@legion_progress + " " + .@enora);
select
rif((.@legion_progress == 0) && (.@enora == 11), l("Enora sent me here.")),
rif(.@legion_progress == 2, l("I'm done with my training.")),
rif(.@legion_progress == 4, l("I'm back from battle!")),
rif(.@legion_progress == 1 || .@legion_progress == 3 || .@legion_progress == 5, l("Where should I go?")),
l("What can you tell me about the legion?"),
l("That's a nice sword you have there."),
menuaction(l("Quit"));
switch (@menu)
{
case 1:
send_training;
break;
case 2:
send_battle;
break;
case 3:
send_qanon;
break;
case 4:
forget_direction;
break;
case 5:
tell_about_legion;
break;
case 6:
praise_sword;
break;
}
} while(@menu != 7);
closeclientdialog;
goodbye;
close;
OnInit:
.distance = 3;
end;
}
|