1 |
|
2 |
|
3 |
SKILLS/EXPERIENCE DOCUMENTATION for PLAYERS. |
4 |
-------------------------------------------- |
5 |
|
6 |
- Summary - |
7 |
|
8 |
0. Description of system |
9 |
|
10 |
1. Using the new skills system |
11 |
a. new player commands |
12 |
b. learning a new skill |
13 |
c. about experience and skills |
14 |
d. starting skills by player profession |
15 |
|
16 |
2. Appendices |
17 |
a. skills descriptions |
18 |
b. how stats are related to skills/experience |
19 |
c. Default parameters for skills |
20 |
d. Theory of Experience Gain |
21 |
|
22 |
0.DESCRIPTION OF SKILLS/EXPERIENCE SYSTEM |
23 |
--------------------------------------- |
24 |
|
25 |
When crossfire is compiled with the ALLOW_SKILLS flag defined |
26 |
(in include/config.h) the new skills/experience system is enabled. |
27 |
|
28 |
Under this system the flow of play changes dramatically. Instead of |
29 |
gaining experience for basically just killing monsters (and disarming |
30 |
traps) players will now gain a variety of experience through the use |
31 |
of skills. Some skills replicate old functions in the game (cf. melee |
32 |
weapons skill, missile weapon skill) while others add new functionality |
33 |
(cf stealing, hiding, etc). |
34 |
|
35 |
One important aspect of this new system is the way in which experience |
36 |
is gained -- basically it is the philosophy that "you are what you do". |
37 |
A player who kills monsters with spells gains experience in casting |
38 |
destructive spells. A player who steals from creatures often will |
39 |
get better at stealing, and so on. The player's aptitude (eg stats) |
40 |
will influence the amount of experience gained. |
41 |
|
42 |
The new skills/experience system *is* compatible with older character |
43 |
files. |
44 |
|
45 |
See the skills_developers.doc for a more technical discussion of the |
46 |
skills/experience system. |
47 |
|
48 |
|
49 |
1.USING THE NEW SKILLS SYSTEM |
50 |
--------------------------- |
51 |
|
52 |
a. New player commands |
53 |
|
54 |
Two new commands now exist in CF through which skills are utilized: |
55 |
|
56 |
'skills' -- this command lists all the player's |
57 |
current known skills, their level |
58 |
of use and the associated experience |
59 |
category of each skill. |
60 |
|
61 |
'use_skill <skillname>' -- this command changes the player's |
62 |
current readied skill. |
63 |
|
64 |
Generally, a player will use a skill by first readying the right one, |
65 |
with the 'use_skill' command and then making a ranged "attack" to |
66 |
activate the skill. Using most skills is just like firing a wand or a |
67 |
bow. In a few cases however, a skill can be used just by having it |
68 |
"readied". An example of this is the "bargaining" skill. |
69 |
|
70 |
To change to a new skill, a player will have to using the 'use_skill' |
71 |
command, but not always. The use of several common items will auto- |
72 |
matically change the player's current skill. Examples of this include |
73 |
readying a bow (which will cause the code to make the player's current |
74 |
skill "missile_weapons") or readying a melee weapon (current skill |
75 |
auto-matically becomes "melee weapons"). Also, some player actions |
76 |
can cause a change in the current skill. Running into a monster while |
77 |
you have a readied weapon in your inventory causes the code to auto- |
78 |
matically make our current skill "melee weapons". Casting a spell |
79 |
will cause the code to switch the current skill to "spellcasting" or |
80 |
"praying" (as appropriate to the spell type). |
81 |
|
82 |
It is not possible to use more than one skill at a time. |
83 |
|
84 |
|
85 |
b. Acquiring skills |
86 |
|
87 |
Skills may be gained in 2 ways. In the first, new skills may "learned". |
88 |
This is done by reading a "skill scroll" and the process is very similar |
89 |
to learning a spell. There is one big difference - all attempts to learn |
90 |
skills are successful. Note that skill scrolls are rarely named exactly |
91 |
for the skill they grant (ex "scroll of piety" is the skillscroll that |
92 |
grants the skill "praying" to the reader). |
93 |
|
94 |
The acquisition of a "skill tool" will also allow the player to use |
95 |
a new skill. An example of a skill tool is "lockpicks" (which allow the |
96 |
player to pick door locks). The player mearly applies the skill |
97 |
tool in order to gain use of the new skill. If the tool is unapplied, |
98 |
the player looses the use of the skill associated with the tool. |
99 |
|
100 |
== AVAILABLE SKILL TOOLS == |
101 |
|
102 |
Skill tool Skill gained |
103 |
---------- ------------ |
104 |
Lockpicks Lockpicking |
105 |
Holy Symbol Praying |
106 |
Talisman Spellcasting |
107 |
Writing Pen Inscription |
108 |
|
109 |
After a new skill is gained (either learned or if player has an applied |
110 |
skill tool) it will appear on the player's skill roster (use the |
111 |
'skills' command to view its status). If the new skill is related to a |
112 |
particular kind of experience, it will automatically be gained at the |
113 |
player's current level of experience in the appropriate category. |
114 |
|
115 |
|
116 |
c. About experience and skills |
117 |
|
118 |
Successful use of many skills will result in the player gaining |
119 |
experience. No special commands from the player are needed for this |
120 |
to occur. All gained experience is modified by the relevant stats for |
121 |
that skill and then the appropriate experience category automatically |
122 |
updated as needed. |
123 |
|
124 |
All players may gain experience in any of the experience categories |
125 |
irrespective of player class or stats. All new players start with zero |
126 |
experience in all experience categories. |
127 |
|
128 |
There are no inherent restrictions on player skill use--any player may |
129 |
use any acquired skill. How well a player uses a skill is related |
130 |
to their stats and their appropriate level of experience. |
131 |
|
132 |
For most skills both the chance of success and effect of the skill are |
133 |
tied to the player level of experience (eg 'melee weapons', 'stealing', |
134 |
'writing', 'hiding', etc). |
135 |
|
136 |
But there are a smaller number of skills whose use will automatically |
137 |
be 'successful' with every attempt: (eg 'use magic item', 'bargaining', |
138 |
all miscellaneous skills and the 'identification skills': smithery, |
139 |
woodsman, alchemy, etc.), |
140 |
|
141 |
The default array of stats for associated skills is in Appendix B. |
142 |
|
143 |
|
144 |
d. starting skills by player profession |
145 |
|
146 |
|
147 |
All players start with the skills "melee weapons", "find traps", |
148 |
"use magic item" and "disarm traps". Under the current release of the |
149 |
skills system, further skills are parceled out as follows: |
150 |
|
151 |
Player profession Additional skills |
152 |
----------------- ----------------- |
153 |
|
154 |
Barbarian Missile Weapons, Woodsman, Mountaineer |
155 |
Cleric Missile Weapons, Praying (holy symbol), |
156 |
Oratory |
157 |
Dwarf Missile Weapons, Smithery |
158 |
Elf Missile Weapons, Spellcasting (talisman), |
159 |
Bowyer, Woodsman |
160 |
Fireborn Missile Weapons, Spellcasting, Praying, |
161 |
Flame touch |
162 |
Human Missile Weapons, 2 Random skills |
163 |
Mage Missile Weapons, Spellcasting |
164 |
Monk Missile Weapons, Meditation, Karate, |
165 |
Sense Magic |
166 |
Ninja Missile Weapons, Jumping, Hiding |
167 |
Priest Praying, Spellcasting (talisman) |
168 |
Quetzalcoatl Missile Weapons, Spellcasting, Clawing |
169 |
Swashbuckler Missile Weapons, Stealing, Singing |
170 |
Thief Missile Weapons, Stealing, |
171 |
Lockpicking (lockpicks) |
172 |
Viking Missile Weapons, Bargaining |
173 |
Warrior Missile Weapons, Punching, Oratory |
174 |
Wizard Spellcasting, Praying (holy symbol) |
175 |
Wraith Spellcasting, Praying (holy symbol) |
176 |
|
177 |
|
178 |
2.APPENDICES |
179 |
---------- |
180 |
|
181 |
A. skills descriptions |
182 |
|
183 |
The following is the current (8/15/95) roster of skills and the |
184 |
description for each. Use the command 'crossfire -m5' to see the array |
185 |
of skills and experience in your version of crossfire. |
186 |
(Note: you need to have compilied with the DUMP_SWITCHES and |
187 |
ALLOW_SKILLS flags for this to work!) |
188 |
|
189 |
+ -denotes a skill which monsters/NPC's may also use. |
190 |
|
191 |
Skill description |
192 |
----- ----------- |
193 |
|
194 |
alchemy User can identify potions, containers, and |
195 |
amulets. (One day I would like to see this skill |
196 |
allow mixing of potions -b.t.). |
197 |
|
198 |
bargaining While this skill is readied the user has added Cha |
199 |
for purposes of purchase and selling of items only. |
200 |
Cha is never allowed to exceed 30. |
201 |
|
202 |
bowyer User can identify missile weapons and missiles. |
203 |
|
204 |
+ clawing User can make a "bare-handed attack". Damage |
205 |
is based on the user's Str and level. |
206 |
|
207 |
find traps User can search (more effectively) for traps. |
208 |
Not a 'passive' skill, it is applied in order |
209 |
to gain the advantage in discovering traps. |
210 |
|
211 |
+ flame touch User can make a "bare-handed attack". Damage |
212 |
is based on the user's Str and level. This |
213 |
is the default hand-to-hand fighting skill |
214 |
for the fireborn character class. |
215 |
|
216 |
+ hide User enjoys limited form of invisibility. If |
217 |
they attack or move too much they become |
218 |
visible. Right now it is possible to |
219 |
hidden while next to hostile monsters. Not |
220 |
a reasonable feature! |
221 |
|
222 |
jeweler User can ident gems and rings that they hold. |
223 |
|
224 |
+ jumping User can 'skip' over 1-2 spaces in a selected |
225 |
direction. Distance depends on weight carried, |
226 |
Str and Dex of the user. This skill may also |
227 |
be used as an attack. |
228 |
|
229 |
+ karate User can make a "bare-handed attack". Damage |
230 |
is based on the user's Str and level. This attack |
231 |
is the fastest and (at higher levels) most deadly |
232 |
of the "hand to hand" attacks available. |
233 |
|
234 |
literacy User can ident books and scrolls that they hold. |
235 |
Since scrolls are currently always identified, |
236 |
this is not the greatest of skills. |
237 |
|
238 |
+ lockpicking User may 'pick locks' (open doors). User needs |
239 |
to have readied some 'lockpicks' to use this |
240 |
skill. |
241 |
|
242 |
meditation Player can regain mana/hp at an accelerated rate. |
243 |
Player must first strip off encumbering armour |
244 |
however. This skill is only available to the 'monk' |
245 |
character class. |
246 |
|
247 |
melee weapons User may use hand-held weapons (eg swords, |
248 |
spears, mace, etc). One day this skill could be |
249 |
made to allow the player to make special attacks |
250 |
with various weapons. (For example, a disarming |
251 |
attack with Sai). |
252 |
|
253 |
missile weapons The user is allowed to make attacks with |
254 |
ranged weapons (eg bow, crossbow). |
255 |
|
256 |
mountaineer While the skill is readied, the possessor will |
257 |
move faster through "hilly" terrain (hills, |
258 |
mountains, etc.) |
259 |
|
260 |
oratory User may 'recruit' followers. Recruitees must be |
261 |
of lower level, and unaggressive to start. Use |
262 |
of this skill may anger the audience. Also, |
263 |
'special' monsters are immune to recruitment. |
264 |
Success depends on User Cha and level. |
265 |
|
266 |
praying User is allowed to cast "cleric" spells. In addition, |
267 |
this skill may be used to accelerate the accumulation |
268 |
of grace. This skill may be either 'learned' or |
269 |
acquired through the use of a "holy symbol". |
270 |
|
271 |
+ punching User can make a "bare-handed attack". Damage |
272 |
is based on the user's Str and level. This is |
273 |
the most feeble of the hth attacks. |
274 |
|
275 |
remove_traps User may remove previously discovered traps. |
276 |
|
277 |
sense curse User may discover whether items that he holds |
278 |
are 'cursed'. Controversial skill, may go away |
279 |
in later versions. |
280 |
|
281 |
sense magic User may discover whether items that he holds |
282 |
are 'magic'. Controversial skill, may go away |
283 |
in later versions. |
284 |
|
285 |
set traps Unimplemented. |
286 |
|
287 |
singing User may pacify hostile monsters with this skill. |
288 |
Certain kinds of monsters are immune. Success |
289 |
depends on user level and Cha. |
290 |
|
291 |
smithery User may ident arms and armour that they hold. |
292 |
Right now this is a powerful skill, and I |
293 |
am considering breaking it up into 2 ident skills |
294 |
in the future. |
295 |
|
296 |
spellcasting User is allowed to cast "wizard" spells. This |
297 |
skill may be acquired either through the use |
298 |
of a talisman or learned via a skill scroll. |
299 |
|
300 |
+ stealing User can take items from the inventory of other |
301 |
monsters. |
302 |
|
303 |
thaumagragist User can ident rods, wands and horns that they |
304 |
are holding. |
305 |
|
306 |
throwing Unimplemented. |
307 |
|
308 |
use magic item User can use magic items like rods/wands/horns. Note |
309 |
that by default, you do not gain experience with this |
310 |
skill, and thus, you don't get experience for using |
311 |
rods/wands/horns to kill monsters. |
312 |
|
313 |
woodsman While the skill is readied, the possessor will |
314 |
move faster through "wooded" terrain (forest, |
315 |
grasslands, brush, jungle, etc.) |
316 |
|
317 |
writing User may rewrite spell scrolls with a previously |
318 |
known spell. Sp, time and an old scroll are |
319 |
needed. Backfire effects are possible. Only |
320 |
available as a 'writing pen'. |
321 |
|
322 |
|
323 |
|
324 |
b. how stats are related to skills/experience |
325 |
|
326 |
Table of how experience is modified by the the stats associated |
327 |
with a skill. Each skill which may 'generate' experience |
328 |
(the "associated skills") have a number of stats which are |
329 |
associated with them. Each time experience is gained by the player, |
330 |
the base value is modified according to the value of the |
331 |
player's stats associated with the skill in use. The effect |
332 |
of the modification is shown below (wherein all the associated |
333 |
stats have been taken as an average). |
334 |
|
335 |
Average of Base exp | Average of Base Exp |
336 |
assoc. stats multiplier| assoc. stats multiplier |
337 |
------------- ----------|------------- ---------- |
338 |
1 0.00 | 16 1.05 |
339 |
2 0.01 | 17 1.10 |
340 |
3 0.03 | 18 1.15 |
341 |
4 0.05 | 19 1.2 |
342 |
5 0.20 | 20 1.3 |
343 |
6 0.35 | 21 1.4 |
344 |
7 0.5 | 22 1.5 |
345 |
8 0.65 | 23 1.6 |
346 |
9 0.7 | 24 1.7 |
347 |
10 0.75 | 25 2.0 |
348 |
11 0.8 | 26 2.2 |
349 |
12 0.85 | 27 2.4 |
350 |
13 0.9 | 28 2.6 |
351 |
14 0.95 | 29 2.8 |
352 |
15 1.0 | 30 3.0 |
353 |
|
354 |
|
355 |
c. Default parameters for skills |
356 |
|
357 |
Table of stats associated w/ each skill. Miscellaneous skills |
358 |
never have any stats related to them. This is the default |
359 |
table. Your release of CF may have difference bindings between |
360 |
experience categories (ExpCat) and relevant stats may differ. |
361 |
Use the -m5 flag to investigate this for your version of CF. |
362 |
|
363 |
|
364 |
sk# Skill name ExpCat Time Base xlvl Stat1 Stat2 Stat3 |
365 |
--- ---------- ------ ---- ---- ---- ----- ----- ----- |
366 |
0- stealing agility 0 25 2.5 Dex Int --- |
367 |
1- lockpicking agility 0 10 0.5 Dex Int --- |
368 |
2- hiding agility 0 5 1.5 Dex Int --- |
369 |
3- smithery mental 5 1 0.5 Int Dex --- |
370 |
4- bowyer mental 5 1 0.5 Int Dex --- |
371 |
5- jewelry mental 5 10 1 Int Dex --- |
372 |
6- alchemy mental 5 100 1 Int Dex --- |
373 |
7- thaumaturgy mental 5 10 0.75 Int Dex --- |
374 |
8- literacy mental 5 100 1.5 Int Dex --- |
375 |
9- bargaining NONE 0 0 0 --- --- --- |
376 |
10- jumping physique 0 0 2.5 Str Dex --- |
377 |
11- sense magic magic 0 1 0 Pow Int --- |
378 |
12- oratory personality 1 1 0.5 Cha Int --- |
379 |
13- singing personality 1 1 0.5 Cha Int --- |
380 |
14- sense curse wisdom 0 1 0 Pow Wis --- |
381 |
15- find traps mental 0 3 2 Int Dex --- |
382 |
16- meditation NONE 10 0 0 --- --- --- |
383 |
17- punching physique 0 0 0 Str Dex --- |
384 |
18- flame touch physique 0 0 0 Str Dex Int |
385 |
19- karate physique 0 0 0 Str Dex --- |
386 |
20- mountaineer NONE 0 0 0 --- --- --- |
387 |
21- woodsman mental 0 1 0.5 Int Dex --- |
388 |
22- inscription magic 0 1 5 Pow Int --- |
389 |
23- melee weapons physique 0 1 0 Str Dex --- |
390 |
24- missile weapons physique 0 1 0 Str Dex --- |
391 |
25- throwing physique 0 1 0 Str Dex --- |
392 |
26- spellcasting magic 0 0 0 Pow Int --- |
393 |
27- disarm traps agility 0 10 0.5 Dex Int Str |
394 |
28- set traps mental 5 3 2 Int Dex Str |
395 |
29- use magic item NONE 0 0 0 --- --- --- |
396 |
30- praying wisdom 0 0 0 Wis Pow --- |
397 |
31- clawing physique 0 0 0 Str Dex --- |
398 |
|
399 |
|
400 |
In the above table, "skill name" refers to the name of the skill |
401 |
as used by the player, "expcat" refers to the name of the assoc- |
402 |
iated experience category, "time" is the number of 'ticks' re- |
403 |
quired to perform the skill, "base" is the base amount of exp |
404 |
given for successful use of the skill, "xlvl" is the level multi- |
405 |
plier to the amount of experience gained, and "stat1, stat2, stat3" |
406 |
are the associated stats for the skill. The values of these stats |
407 |
will be used to reference a multiplier (see preceding table) to |
408 |
the amount of gained experience. |
409 |
|
410 |
|
411 |
d. Theory of Experience Gain |
412 |
|
413 |
[excerpted from the code in skill_util.c, as if you can't tell :) ] |
414 |
|
415 |
/* calc_skill_exp() - calculates amount of experience can be gained for |
416 |
* successful use of a skill and returns value of the experience gain. |
417 |
* Here we take the view that a player must 'overcome an opponent' |
418 |
* in order to gain experience. Examples include foes killed combat, |
419 |
* finding/disarming a trap, stealing from some being, etc. |
420 |
* The gained experience is based primarily on the difference in levels, |
421 |
* exp point value of vanquished foe, the relevant stats of the skill being |
422 |
* used and modifications in the skills[] table. |
423 |
* |
424 |
* For now, monsters and players will be treated differently. Below I give |
425 |
* the algorithm for *PLAYER* experience gain. Monster exp gain is simpler. |
426 |
* Monsters just get 10% of the exp of the opponent. |
427 |
* |
428 |
* Example: the basic exp gain for player 'who' how "vanquished" opponent |
429 |
* 'op' using skill 'sk' is: |
430 |
* |
431 |
* EXP GAIN = (op->exp + skills[sk].bexp) * (1 + lvl_mult) * stat_mult |
432 |
* |
433 |
* where lvl_mult is |
434 |
* |
435 |
* for(pl->level <= op->level):: |
436 |
* lvl_mult = skills[sk].lexp * (op->level - pl->level) |
437 |
* for(pl->level > op->level):: |
438 |
* lvl_mult = (op_lvl/pl_lvl) - 1; |
439 |
* |
440 |
* and stat_mult is taken from stat_exp_mult[] table above. |
441 |
* |
442 |
* Coded by b.t. thomas@astro.psu.edu |
443 |
*/ |
444 |
|