Discussion:
This DSA receives a message which tells it which character(s) is to
receive added experience. It looks at Parameter A to determine
the skill that is to receive the added experience. It uses
Parameter B to determine the numerical amout of experience to be added..
A little discussion about skills might be valuable now. There are
a total of 20 skills. They are numbered as:
0 - Basic Fighter Skill
1 - Basic Ninja Skill
2 - Basic Priest Skill
3 - Basic Wizard Skill
4 through 7 - Individual Fighter Skills
8 through 11 - Individual Ninja Skills
12 through 15 - Individual Priest Skills
16 through 19 - Individual Wizard Skills
A character's proficiency level in any of the four skill types
(Fighter, Ninja, Priest, or Wizard) is based on the number of
experience points gained in the 'Basic Skill' of that skill type.
For example, a character's Ninja level is based on the accumulation of
experience in skill number 1.
Experience can be gained in the 'Basic Skill' or in one of the
'Individual Skills'. Any experience added to an 'Individual
Skill' is also added to the 'Basic Skill' and therefore contributes to
the character's level development.
The DSA:
You send a message to this DSA. The message tells which
character(s) is to receive the skill experience.
S0
|
Character 0
|
S1
|
Character 1
|
S2
|
Character 2
|
S3
|
Character 3
|
C0 |
The Lead Character
|
C1
|
All Living Characters
|
The experience will not be added to any character with zero hitpoints
(ie. Dead).
Parameter A of the DSA tells which skill is to be increased.
Don't forget that if you specify skill number 4 through 19 that it will
also be added to the Basic Skill of the same type.
Parameter B of the DSA tells the amount of the increase.
If you examine the code of the DSA you will see that state 1S0 is used
to determine a 'Multiplier'. Parameter B is multiplied by this
number before being added to the character's skill experience.
The code included here (in 1S0) fetches the Party's dungeon level and
then uses that to fetch the level's 'Difficulty Multiplier'. If
you don't want to use the difficulty multiplier then you can easily
replace state 1S0 to load a constant multiplier. For example
'L1' would provide a constant multiplier of one.
Here is the DSA code. You should be able to cut/paste this into a
text file (using Notepad or any text editor) and 'Import' it into a DSA
in your dungeon. Or get the
Text
File Here.
Description = Add experience (B)
times 'Level Difficulty' to skill (A)
State = 0
StateLocation = 0
GroupID = 0
Number of States = 2
First Displayed State = 1
Number of non-empty states = 2
State Number = 0
Number of Actions = 6
#
# S0 Adds experience to character 0
S0 = L0 G1S1
#
# S1 Adds experience to character 1
S1 = L1 G1S1
#
# S2 Adds experience to character 2
S2 = L2 G1S1
#
# S3 Adds experience to character 3
S3 = L3 G1S1
#
#C0 adds experience to the Lead Character
C0 = L0 L9 &PARTY@ L8 &@ G1S1
#
# C1 adds experience all living characters
C1 = G GS1 GS2 GS3
#
State Number = 1
Number of Actions = 2
#
#1S0 ( . . . multiplier) Fetches the difficulty multiplier for the
party's current dungeon level.
S0 = L0 L2 &PARTY@ L1 &@ &MULTIPLIER@
#
#1S1 (char# . . . ) Adds experience (B) times Difficulty Multiplier to
skill number (A)
S1 = LA LB G &* &EXPERIENCE+
signature = 4049D79ABD3763F95CF9BEC2E69CA57F