444 lines
18 KiB
Plaintext
444 lines
18 KiB
Plaintext
|
|
|
|
SKILLS/EXPERIENCE DOCUMENTATION for PLAYERS.
|
|
--------------------------------------------
|
|
|
|
- Summary -
|
|
|
|
0. Description of system
|
|
|
|
1. Using the new skills system
|
|
a. new player commands
|
|
b. learning a new skill
|
|
c. about experience and skills
|
|
d. starting skills by player profession
|
|
|
|
2. Appendices
|
|
a. skills descriptions
|
|
b. how stats are related to skills/experience
|
|
c. Default parameters for skills
|
|
d. Theory of Experience Gain
|
|
|
|
0.DESCRIPTION OF SKILLS/EXPERIENCE SYSTEM
|
|
---------------------------------------
|
|
|
|
When crossfire is compiled with the ALLOW_SKILLS flag defined
|
|
(in include/config.h) the new skills/experience system is enabled.
|
|
|
|
Under this system the flow of play changes dramatically. Instead of
|
|
gaining experience for basically just killing monsters (and disarming
|
|
traps) players will now gain a variety of experience through the use
|
|
of skills. Some skills replicate old functions in the game (cf. melee
|
|
weapons skill, missile weapon skill) while others add new functionality
|
|
(cf stealing, hiding, etc).
|
|
|
|
One important aspect of this new system is the way in which experience
|
|
is gained -- basically it is the philosophy that "you are what you do".
|
|
A player who kills monsters with spells gains experience in casting
|
|
destructive spells. A player who steals from creatures often will
|
|
get better at stealing, and so on. The player's aptitude (eg stats)
|
|
will influence the amount of experience gained.
|
|
|
|
The new skills/experience system *is* compatible with older character
|
|
files.
|
|
|
|
See the skills_developers.doc for a more technical discussion of the
|
|
skills/experience system.
|
|
|
|
|
|
1.USING THE NEW SKILLS SYSTEM
|
|
---------------------------
|
|
|
|
a. New player commands
|
|
|
|
Two new commands now exist in CF through which skills are utilized:
|
|
|
|
'skills' -- this command lists all the player's
|
|
current known skills, their level
|
|
of use and the associated experience
|
|
category of each skill.
|
|
|
|
'use_skill <skillname>' -- this command changes the player's
|
|
current readied skill.
|
|
|
|
Generally, a player will use a skill by first readying the right one,
|
|
with the 'use_skill' command and then making a ranged "attack" to
|
|
activate the skill. Using most skills is just like firing a wand or a
|
|
bow. In a few cases however, a skill can be used just by having it
|
|
"readied". An example of this is the "bargaining" skill.
|
|
|
|
To change to a new skill, a player will have to using the 'use_skill'
|
|
command, but not always. The use of several common items will auto-
|
|
matically change the player's current skill. Examples of this include
|
|
readying a bow (which will cause the code to make the player's current
|
|
skill "missile_weapons") or readying a melee weapon (current skill
|
|
auto-matically becomes "melee weapons"). Also, some player actions
|
|
can cause a change in the current skill. Running into a monster while
|
|
you have a readied weapon in your inventory causes the code to auto-
|
|
matically make our current skill "melee weapons". Casting a spell
|
|
will cause the code to switch the current skill to "spellcasting" or
|
|
"praying" (as appropriate to the spell type).
|
|
|
|
It is not possible to use more than one skill at a time.
|
|
|
|
|
|
b. Acquiring skills
|
|
|
|
Skills may be gained in 2 ways. In the first, new skills may "learned".
|
|
This is done by reading a "skill scroll" and the process is very similar
|
|
to learning a spell. There is one big difference - all attempts to learn
|
|
skills are successful. Note that skill scrolls are rarely named exactly
|
|
for the skill they grant (ex "scroll of piety" is the skillscroll that
|
|
grants the skill "praying" to the reader).
|
|
|
|
The acquisition of a "skill tool" will also allow the player to use
|
|
a new skill. An example of a skill tool is "lockpicks" (which allow the
|
|
player to pick door locks). The player mearly applies the skill
|
|
tool in order to gain use of the new skill. If the tool is unapplied,
|
|
the player looses the use of the skill associated with the tool.
|
|
|
|
== AVAILABLE SKILL TOOLS ==
|
|
|
|
Skill tool Skill gained
|
|
---------- ------------
|
|
Lockpicks Lockpicking
|
|
Holy Symbol Praying
|
|
Talisman Spellcasting
|
|
Writing Pen Inscription
|
|
|
|
After a new skill is gained (either learned or if player has an applied
|
|
skill tool) it will appear on the player's skill roster (use the
|
|
'skills' command to view its status). If the new skill is related to a
|
|
particular kind of experience, it will automatically be gained at the
|
|
player's current level of experience in the appropriate category.
|
|
|
|
|
|
c. About experience and skills
|
|
|
|
Successful use of many skills will result in the player gaining
|
|
experience. No special commands from the player are needed for this
|
|
to occur. All gained experience is modified by the relevant stats for
|
|
that skill and then the appropriate experience category automatically
|
|
updated as needed.
|
|
|
|
All players may gain experience in any of the experience categories
|
|
irrespective of player class or stats. All new players start with zero
|
|
experience in all experience categories.
|
|
|
|
There are no inherent restrictions on player skill use--any player may
|
|
use any acquired skill. How well a player uses a skill is related
|
|
to their stats and their appropriate level of experience.
|
|
|
|
For most skills both the chance of success and effect of the skill are
|
|
tied to the player level of experience (eg 'melee weapons', 'stealing',
|
|
'writing', 'hiding', etc).
|
|
|
|
But there are a smaller number of skills whose use will automatically
|
|
be 'successful' with every attempt: (eg 'use magic item', 'bargaining',
|
|
all miscellaneous skills and the 'identification skills': smithery,
|
|
woodsman, alchemy, etc.),
|
|
|
|
The default array of stats for associated skills is in Appendix B.
|
|
|
|
|
|
d. starting skills by player profession
|
|
|
|
|
|
All players start with the skills "melee weapons", "find traps",
|
|
"use magic item" and "disarm traps". Under the current release of the
|
|
skills system, further skills are parceled out as follows:
|
|
|
|
Player profession Additional skills
|
|
----------------- -----------------
|
|
|
|
Barbarian Missile Weapons, Woodsman, Mountaineer
|
|
Cleric Missile Weapons, Praying (holy symbol),
|
|
Oratory
|
|
Dwarf Missile Weapons, Smithery
|
|
Elf Missile Weapons, Spellcasting (talisman),
|
|
Bowyer, Woodsman
|
|
Fireborn Missile Weapons, Spellcasting, Praying,
|
|
Flame touch
|
|
Human Missile Weapons, 2 Random skills
|
|
Mage Missile Weapons, Spellcasting
|
|
Monk Missile Weapons, Meditation, Karate,
|
|
Sense Magic
|
|
Ninja Missile Weapons, Jumping, Hiding
|
|
Priest Praying, Spellcasting (talisman)
|
|
Quetzalcoatl Missile Weapons, Spellcasting, Clawing
|
|
Swashbuckler Missile Weapons, Stealing, Singing
|
|
Thief Missile Weapons, Stealing,
|
|
Lockpicking (lockpicks)
|
|
Viking Missile Weapons, Bargaining
|
|
Warrior Missile Weapons, Punching, Oratory
|
|
Wizard Spellcasting, Praying (holy symbol)
|
|
Wraith Spellcasting, Praying (holy symbol)
|
|
|
|
|
|
2.APPENDICES
|
|
----------
|
|
|
|
A. skills descriptions
|
|
|
|
The following is the current (8/15/95) roster of skills and the
|
|
description for each. Use the command 'crossfire -m5' to see the array
|
|
of skills and experience in your version of crossfire.
|
|
(Note: you need to have compilied with the DUMP_SWITCHES and
|
|
ALLOW_SKILLS flags for this to work!)
|
|
|
|
+ -denotes a skill which monsters/NPC's may also use.
|
|
|
|
Skill description
|
|
----- -----------
|
|
|
|
alchemy User can identify potions, containers, and
|
|
amulets. (One day I would like to see this skill
|
|
allow mixing of potions -b.t.).
|
|
|
|
bargaining While this skill is readied the user has added Cha
|
|
for purposes of purchase and selling of items only.
|
|
Cha is never allowed to exceed 30.
|
|
|
|
bowyer User can identify missile weapons and missiles.
|
|
|
|
+ clawing User can make a "bare-handed attack". Damage
|
|
is based on the user's Str and level.
|
|
|
|
find traps User can search (more effectively) for traps.
|
|
Not a 'passive' skill, it is applied in order
|
|
to gain the advantage in discovering traps.
|
|
|
|
+ flame touch User can make a "bare-handed attack". Damage
|
|
is based on the user's Str and level. This
|
|
is the default hand-to-hand fighting skill
|
|
for the fireborn character class.
|
|
|
|
+ hide User enjoys limited form of invisibility. If
|
|
they attack or move too much they become
|
|
visible. Right now it is possible to
|
|
hidden while next to hostile monsters. Not
|
|
a reasonable feature!
|
|
|
|
jeweler User can ident gems and rings that they hold.
|
|
|
|
+ jumping User can 'skip' over 1-2 spaces in a selected
|
|
direction. Distance depends on weight carried,
|
|
Str and Dex of the user. This skill may also
|
|
be used as an attack.
|
|
|
|
+ karate User can make a "bare-handed attack". Damage
|
|
is based on the user's Str and level. This attack
|
|
is the fastest and (at higher levels) most deadly
|
|
of the "hand to hand" attacks available.
|
|
|
|
literacy User can ident books and scrolls that they hold.
|
|
Since scrolls are currently always identified,
|
|
this is not the greatest of skills.
|
|
|
|
+ lockpicking User may 'pick locks' (open doors). User needs
|
|
to have readied some 'lockpicks' to use this
|
|
skill.
|
|
|
|
meditation Player can regain mana/hp at an accelerated rate.
|
|
Player must first strip off encumbering armour
|
|
however. This skill is only available to the 'monk'
|
|
character class.
|
|
|
|
melee weapons User may use hand-held weapons (eg swords,
|
|
spears, mace, etc). One day this skill could be
|
|
made to allow the player to make special attacks
|
|
with various weapons. (For example, a disarming
|
|
attack with Sai).
|
|
|
|
missile weapons The user is allowed to make attacks with
|
|
ranged weapons (eg bow, crossbow).
|
|
|
|
mountaineer While the skill is readied, the possessor will
|
|
move faster through "hilly" terrain (hills,
|
|
mountains, etc.)
|
|
|
|
oratory User may 'recruit' followers. Recruitees must be
|
|
of lower level, and unaggressive to start. Use
|
|
of this skill may anger the audience. Also,
|
|
'special' monsters are immune to recruitment.
|
|
Success depends on User Cha and level.
|
|
|
|
praying User is allowed to cast "cleric" spells. In addition,
|
|
this skill may be used to accelerate the accumulation
|
|
of grace. This skill may be either 'learned' or
|
|
acquired through the use of a "holy symbol".
|
|
|
|
+ punching User can make a "bare-handed attack". Damage
|
|
is based on the user's Str and level. This is
|
|
the most feeble of the hth attacks.
|
|
|
|
remove_traps User may remove previously discovered traps.
|
|
|
|
sense curse User may discover whether items that he holds
|
|
are 'cursed'. Controversial skill, may go away
|
|
in later versions.
|
|
|
|
sense magic User may discover whether items that he holds
|
|
are 'magic'. Controversial skill, may go away
|
|
in later versions.
|
|
|
|
set traps Unimplemented.
|
|
|
|
singing User may pacify hostile monsters with this skill.
|
|
Certain kinds of monsters are immune. Success
|
|
depends on user level and Cha.
|
|
|
|
smithery User may ident arms and armour that they hold.
|
|
Right now this is a powerful skill, and I
|
|
am considering breaking it up into 2 ident skills
|
|
in the future.
|
|
|
|
spellcasting User is allowed to cast "wizard" spells. This
|
|
skill may be acquired either through the use
|
|
of a talisman or learned via a skill scroll.
|
|
|
|
+ stealing User can take items from the inventory of other
|
|
monsters.
|
|
|
|
thaumagragist User can ident rods, wands and horns that they
|
|
are holding.
|
|
|
|
throwing Unimplemented.
|
|
|
|
use magic item User can use magic items like rods/wands/horns. Note
|
|
that by default, you do not gain experience with this
|
|
skill, and thus, you don't get experience for using
|
|
rods/wands/horns to kill monsters.
|
|
|
|
woodsman While the skill is readied, the possessor will
|
|
move faster through "wooded" terrain (forest,
|
|
grasslands, brush, jungle, etc.)
|
|
|
|
writing User may rewrite spell scrolls with a previously
|
|
known spell. Sp, time and an old scroll are
|
|
needed. Backfire effects are possible. Only
|
|
available as a 'writing pen'.
|
|
|
|
|
|
|
|
b. how stats are related to skills/experience
|
|
|
|
Table of how experience is modified by the the stats associated
|
|
with a skill. Each skill which may 'generate' experience
|
|
(the "associated skills") have a number of stats which are
|
|
associated with them. Each time experience is gained by the player,
|
|
the base value is modified according to the value of the
|
|
player's stats associated with the skill in use. The effect
|
|
of the modification is shown below (wherein all the associated
|
|
stats have been taken as an average).
|
|
|
|
Average of Base exp | Average of Base Exp
|
|
assoc. stats multiplier| assoc. stats multiplier
|
|
------------- ----------|------------- ----------
|
|
1 0.00 | 16 1.05
|
|
2 0.01 | 17 1.10
|
|
3 0.03 | 18 1.15
|
|
4 0.05 | 19 1.2
|
|
5 0.20 | 20 1.3
|
|
6 0.35 | 21 1.4
|
|
7 0.5 | 22 1.5
|
|
8 0.65 | 23 1.6
|
|
9 0.7 | 24 1.7
|
|
10 0.75 | 25 2.0
|
|
11 0.8 | 26 2.2
|
|
12 0.85 | 27 2.4
|
|
13 0.9 | 28 2.6
|
|
14 0.95 | 29 2.8
|
|
15 1.0 | 30 3.0
|
|
|
|
|
|
c. Default parameters for skills
|
|
|
|
Table of stats associated w/ each skill. Miscellaneous skills
|
|
never have any stats related to them. This is the default
|
|
table. Your release of CF may have difference bindings between
|
|
experience categories (ExpCat) and relevant stats may differ.
|
|
Use the -m5 flag to investigate this for your version of CF.
|
|
|
|
|
|
sk# Skill name ExpCat Time Base xlvl Stat1 Stat2 Stat3
|
|
--- ---------- ------ ---- ---- ---- ----- ----- -----
|
|
0- stealing agility 0 25 2.5 Dex Int ---
|
|
1- lockpicking agility 0 10 0.5 Dex Int ---
|
|
2- hiding agility 0 5 1.5 Dex Int ---
|
|
3- smithery mental 5 1 0.5 Int Dex ---
|
|
4- bowyer mental 5 1 0.5 Int Dex ---
|
|
5- jewelry mental 5 10 1 Int Dex ---
|
|
6- alchemy mental 5 100 1 Int Dex ---
|
|
7- thaumaturgy mental 5 10 0.75 Int Dex ---
|
|
8- literacy mental 5 100 1.5 Int Dex ---
|
|
9- bargaining NONE 0 0 0 --- --- ---
|
|
10- jumping physique 0 0 2.5 Str Dex ---
|
|
11- sense magic magic 0 1 0 Pow Int ---
|
|
12- oratory personality 1 1 0.5 Cha Int ---
|
|
13- singing personality 1 1 0.5 Cha Int ---
|
|
14- sense curse wisdom 0 1 0 Pow Wis ---
|
|
15- find traps mental 0 3 2 Int Dex ---
|
|
16- meditation NONE 10 0 0 --- --- ---
|
|
17- punching physique 0 0 0 Str Dex ---
|
|
18- flame touch physique 0 0 0 Str Dex Int
|
|
19- karate physique 0 0 0 Str Dex ---
|
|
20- mountaineer NONE 0 0 0 --- --- ---
|
|
21- woodsman mental 0 1 0.5 Int Dex ---
|
|
22- inscription magic 0 1 5 Pow Int ---
|
|
23- melee weapons physique 0 1 0 Str Dex ---
|
|
24- missile weapons physique 0 1 0 Str Dex ---
|
|
25- throwing physique 0 1 0 Str Dex ---
|
|
26- spellcasting magic 0 0 0 Pow Int ---
|
|
27- disarm traps agility 0 10 0.5 Dex Int Str
|
|
28- set traps mental 5 3 2 Int Dex Str
|
|
29- use magic item NONE 0 0 0 --- --- ---
|
|
30- praying wisdom 0 0 0 Wis Pow ---
|
|
31- clawing physique 0 0 0 Str Dex ---
|
|
|
|
|
|
In the above table, "skill name" refers to the name of the skill
|
|
as used by the player, "expcat" refers to the name of the assoc-
|
|
iated experience category, "time" is the number of 'ticks' re-
|
|
quired to perform the skill, "base" is the base amount of exp
|
|
given for successful use of the skill, "xlvl" is the level multi-
|
|
plier to the amount of experience gained, and "stat1, stat2, stat3"
|
|
are the associated stats for the skill. The values of these stats
|
|
will be used to reference a multiplier (see preceding table) to
|
|
the amount of gained experience.
|
|
|
|
|
|
d. Theory of Experience Gain
|
|
|
|
[excerpted from the code in skill_util.c, as if you can't tell :) ]
|
|
|
|
/* calc_skill_exp() - calculates amount of experience can be gained for
|
|
* successful use of a skill and returns value of the experience gain.
|
|
* Here we take the view that a player must 'overcome an opponent'
|
|
* in order to gain experience. Examples include foes killed combat,
|
|
* finding/disarming a trap, stealing from some being, etc.
|
|
* The gained experience is based primarily on the difference in levels,
|
|
* exp point value of vanquished foe, the relevant stats of the skill being
|
|
* used and modifications in the skills[] table.
|
|
*
|
|
* For now, monsters and players will be treated differently. Below I give
|
|
* the algorithm for *PLAYER* experience gain. Monster exp gain is simpler.
|
|
* Monsters just get 10% of the exp of the opponent.
|
|
*
|
|
* Example: the basic exp gain for player 'who' how "vanquished" opponent
|
|
* 'op' using skill 'sk' is:
|
|
*
|
|
* EXP GAIN = (op->exp + skills[sk].bexp) * (1 + lvl_mult) * stat_mult
|
|
*
|
|
* where lvl_mult is
|
|
*
|
|
* for(pl->level <= op->level)::
|
|
* lvl_mult = skills[sk].lexp * (op->level - pl->level)
|
|
* for(pl->level > op->level)::
|
|
* lvl_mult = (op_lvl/pl_lvl) - 1;
|
|
*
|
|
* and stat_mult is taken from stat_exp_mult[] table above.
|
|
*
|
|
* Coded by b.t. thomas@astro.psu.edu
|
|
*/
|