Alright, I think the skills table is going to be the best place to implement this. The influences can be CHA-linked skills.
I'm thinking of creating these such that they don't report their ranks to the normal skill points total, but instead report their ranks to a new resource.
Since I haven't added a Resources tab to the editor yet, I'll have to create that for you:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<document signature="Hero Lab Data">
<thing
id="resInflu"
name="Influence Points"
compset="Resource"
panellink="skills">
</thing>
<thing
id="abInflu"
name="Influence Points Reporting"
compset="Ability"
description="Describe the Influence Points here.">
<tag group="Helper" tag="ShowSpec"/>
<eval index="1" phase="Render" priority="10000"><![CDATA[
field[livename].text = "Influence Points: " & hero.child[resInflu].field[resSummary].text
~we don't want to show this in printouts
if (state.isoutput <> 0) then
perform delete[Helper.ShowSpec]
endif
]]></eval>
</thing>
<thing
id="mechInflu"
name="Influence Points Mechanic"
compset="Mechanics">
<usesource source="InfluPoint" name="Use Influence Points" parent="UserParent"/>
<bootstrap thing="resInflu"/>
<bootstrap thing="abInflu"/>
</thing>
</document>
Open a new file in Notepad or some other text editor, copy all of that into the file, and save the file with the extension ".user", in the HeroLab/data/pathfinder folder. (If you use Word or another document editor, it may introduce extra characters that Hero Lab won't understand, which is why I suggest using Notepad).
Close Notepad, open HL, and enable the "Use Influence Points" source that should now exist for your characters. On the Special tab, you'll see "Influence Points: 0 of 0".
Now, you can go into HL's editor and work on the next steps.
On the Ability tab, you'll find the "Ability Points Reporting" ability - replace the description text there with something more appropriate.
Now, go to the skill tab - create your influences as new skills - they'll be Charisma-linked skills, and you'll want to check the "Must Add Manually?" option. I don't know if you'll want "Only usable when trained?".
I noticed that the checkbox for user text in the skills (like the Knowledge: Other" or Craft: Other" skills) is missing from the editor. I'll fix that in the next update, but in the meantime, when you're creating your Influence: Other skill, press the "Tags" button that's at the top right. "Click to add another tag", then enter "Helper" in the "Group Id" box and "Custom" in the "Tag Id" box - leave the rest alone, and press "OK" to get out.
Okay, now for the resource usage for Influences:
For each Influence skill you create, press the Eval Scripts button among those on the top right. Add a new Eval Script, and then set the Phase to Post-Attributes, Priority: 10000.
Enter the following into the body of the script:
Code:
~subtract our ranks from the total skill points, to cancel out another
~script that adds them
hero.child[resSkill].field[resSpent].value -= field[skUser].value + field[skInnate].value
~add our ranks to the Influence Points mechanic
hero.child[resInflu].field[resSpent].value += field[skUser].value + field[skInnate].value
Now, for the classes.
Rather than duplicating all 18 base classes, the NPC classes, the prestige classes, and presumably every race and template that has racial HD, here's how to handle those in a single long script:
Go to the Ability tab, to the Influence Points Reporting ability that's already there - let's make use of that to calculate the total resource, rather than creating something new.
Add a new Eval Script
Phase: Post-Attributes, Priority: 10000
Code:
var bonus as number
var multiple as number
~count how many levels will give 2 influence points/level:
~fighters, barbarians,
bonus = #levelcount[Fighter] + #levelcount[Barbarian]
~our multipler is 2 + CHA mod, minimum 1 if we have a low CHA:
multiple = maximum(2 + #attrmod[aCHA], 1)
field[abValue].value += bonus * multiple
bonus = 0
multiple = 0
~count how many levels will give 4 influence points/level:
~wizards, clerics,
bonus = #levelcount[Wizard] + #levelcount[Cleric]
~our multipler is 4 + CHA mod, minimum 1 if we have a low CHA:
multiple = maximum(4 + #attrmod[aCHA], 1)
field[abValue].value += bonus * multiple
bonus = 0
multiple = 0
~add our total to the Influence points resource
#resmax[resInflu] += field[abValue].value
You'll need a separate set of additions for each separate multiple (2, 4, 6, 8, etc.), and the bonus = #levelcount[] + #levelcount[] + #levelcount[] lines will probably get pretty long.