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
|
// TMW2 Script
// Author:
// Jesusalva
// Description:
// Trickmaster of Tricksters Class
003-0,35,42,0 script Trickmaster NPC_SITTED_NINJA,{
function basicMagic;
function standardMagic;
function advancedMagic;
mes l(".:: Trickster Class ::.");
mesc l("Specialized in miscellaneous skills.");
next;
mesn;
mesc l("You have @@ magic skill points available.", sk_points());
select
l("Basic Tricks"),
l("Standard Tricks"),
l("Advanced Tricks");
mes "";
.@lv=@menu;
do {
// Display appropriate menu
if (.@lv == 1)
basicMagic();
else if (.@lv == 2)
standardMagic();
else if (.@lv == 3)
advancedMagic();
// Handle result
switch (@menuret) {
case TMW2_MANABOMB:
if (!mlearn(TMW2_MANABOMB, 1, 1, SulfurPowder, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
case TF_BACKSLIDING:
if (!mlearn(TF_BACKSLIDING, 1, 1, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
case MG_FIREWALL:
if (!mlearn(MG_FIREWALL, 10, 1, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
case AC_VULTURE:
if (!mlearn(AC_VULTURE, 1, 1, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
case SA_FREECAST:
if (!mlearn(SA_FREECAST, 1, 1, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
case ALL_FULL_THROTTLE:
if (!mlearn(ALL_FULL_THROTTLE, 1, 1, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
case GC_DARKILLUSION:
if (!mlearn(GC_DARKILLUSION, 3, 2, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
case NV_TRICKDEAD:
if (!mlearn(NV_TRICKDEAD, 1, 2, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
default:
if (@menuret)
Exception("ERROR skill not implemented", RB_DEFAULT|RB_SPEECH);
else
closeclientdialog;
break;
}
} while (@menuret);
close;
L_NoMagic:
next;
mesn;
mesq l("You do not have enough magic power for these classes.");
next;
mesn;
mesq l("Besides the Magic Council, Andrei Sakar have his own Mana Stone, but I doubt he would train the likes of you, or share his Mana Stone.");
next;
mesn;
mesq l("Perhaps, in the city, someone knows rumors about Mana Stones and can teach you. Other than that, you're on your own.");
close;
function basicMagic {
mes l(".:: Mana Bomb ::.");
mesc l("Converts all your mana in damage. Damages all enemies in same tile.");
mes "";
mes l(".:: Backsliding ::.");
mesc l("Instantly jumps 5 tiles backwards.");
mes "";
mes l(".:: Nature Wall ::.");
mesc l("Create a natural wall under the cursor, to delay your enemies.");
mes "";
mes l(".:: Archers Eye ::.");
mesc l("Increase bow range and accuracy.");
mes "";
menuint
"Mana Bomb", TMW2_MANABOMB,
"Backslidng", TF_BACKSLIDING,
"Nature Wall", MG_FIREWALL,
"Archers Eye", AC_VULTURE,
"Cancel", 0;
return;
}
function standardMagic {
if (!MAGIC_LVL) goto L_NoMagic;
mes l(".:: Free Cast ::.");
mesc l("Allows to attack right after casting.");
mes "";
mes l(".:: Full Throttle ::.");
mesc l("An emergency skill which temporaly raises all your stats.");
mes "";
mes l(".:: Sudden Attack ::.");
mesc l("Instantly jumps to target and delivers an attack.");
mes "";
mes l(".:: Trick Dead ::.");
mesc l("Plop dead in the ground. Enemies won't attack you this way.");
mes "";
menuint
"Free Cast", SA_FREECAST,
"Full Throttle", ALL_FULL_THROTTLE,
"Sudden Attack", GC_DARKILLUSION,
"Trick Dead", NV_TRICKDEAD,
"Cancel", 0;
return;
}
function advancedMagic {
if (MAGIC_LVL < 2) goto L_NoMagic;
mes l(".:: There are no skills ::.");
mesc l("You can bug Jesusalva to extend the Battlefield Control skills.");
mes "";
menuint
"none", 0;
return;
}
OnInit:
.sex = G_FEMALE;
.distance = 5;
end;
}
|