I realized that there is one more thing I would like to do with the knight. It has an ability where if he is wearing heavy armor, he adds +4 to his intimidate check. Is there a way to set that up?
Here's how to go about this:
First, in the Develop menu, make sure that the first item "enable data file debugging" is checked.
Now, add a few armors to your character - you'll want light armor, medium armor, heavy armor, and shields.
For each of those armors, right-click, and select "Show debug tags for XXX". Now that you have a few tag lists showing, study those lists, looking for differences - you want to figure out what tags mark something as heavy armor, medium, etc.
(The answer is "ArmorClass.Heavy")
Next, try equipping one of them - watch the list of tags, and see what's added to the equipped armor.
(The answer is "Helper.CurrArmor")
Later on, you'll need to search through armors, so while you have those tag lists open, see if you can find a component tag that appears to be specific to armor (you may also want to add some weapons and regular gear, so you can compare the armor tags to their tags). component.BaseArmor is the tag you're looking for here.
Now for the script. This will be an Eval Script, running on whatever class special grants this ability. In terms of timing, we'll choose Post-Levels/10000, since that's when all class specials run their scripts, unless there's a reason to run it at another time.
We'll start with the standard opening for a class special, then declare a variable that we'll use later.
Code:
~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)
var bonus as number
Next, we'll search through all the armor on the character, restricting our search to heavy armors that are equipped:
Code:
foreach pick in hero from BaseArmor where "ArmorClass.Heavy & Helper.CurrEquip"
If we find one of those, we'll set our variable to 4 (and close the foreach)
Now, we're done searching through all the armors on the hero. If one of them was heavy and equipped, bonus = 4. If not, bonus = 0. So, now we'll add the variable to the intimidate skill:
Code:
#skillbonus[skIntim] += bonus
Assembling all that for easy copying (and adding some comments to the code):
Timing: Post-Levels/10000
Code:
~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)
var bonus as number
~if we have any heavy armor that's equipped, set the bonus
~we'll be granting to 4
foreach pick in hero from BaseArmor where "ArmorClass.Heavy & Helper.CurrEquip"
bonus = 4
nexteach
~assign the bonus we've calculated
#skillbonus[skIntim] += bonus