server-1.12/doc/skills.doc

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
*/