There is a function in the runtime
engine named 'AdjustSkills'. You can
see a diagram of it
. The 'Adjust Skills Filter'
is activated before the first code in that function. The Filter
receives the following parameters :
- 0 - character index ( 0 to 3 )
- 1 - skill number ( 0 to 19 )
- 2 - experience to be applied ( should be positive )
- 3 - why the function is being called ( See list below )
- 4 to 8 - Parameters from a previous 'SetAdjustSkillsParameters'
in a DSA. These parameters initially contain zeroes.
The why paramater is an integer:
ASW_MonsterDamagesCharacter = 6,
ASW_SkillIncreaser1 = 7,
ASW_SkillIncreaser2 = 8,
ASW_ThrowByCharacter = 9,
The Filter can change any of the parameters and the changed
parameters will be used by the function 'AdjustSkills'. Only the
first three ( character index, skill number, and experience to be
applied ) will have any affect on the assignment of skills. The
remaining parameters are simply for the Filter to use to orient itself
and make decisions.