Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Pathfinder Roleplaying Game
Register FAQ Community Today's Posts Search

Notices

Reply
 
Thread Tools Display Modes
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,213

Old March 24th, 2010, 10:12 AM
This question was emailed to our technical support email address, but since the answer will probably be useful to other people, I'm posting the answer here.

Quote:
Hello!

I have a question I am hoping you can help me with. How do I create
an alternate class ability in the Pathfinder RPG? I have a Poison
Master option from the Pathfinder Campaign Setting that I would like
to bring in to Hero Lab. It would be attained by Rogues only at 3rd
level, and would replace the Trapfinding class ability. Can you let
me know how to accomplish this so it would appear as an option for
selection at 3rd level for all Rogues? FYI, can you also help me
add a class ability that increases in potency every 3 levels (for
example, Cold Resistance that starts with a value of 2, and
increases by 2 every 3 class levels.

Also, can you guide me through the process of creating a feat with
prerequisites? Preferably, I would like to build a feat with an
ability score pre-requisite (CHA 13), and another feat to build a
feat chain that would appear on the feat list in Hero Lab as greyed
out until the prerequisite is reached.

Thanks in advance for your help!!
The first step in creating a Rogue with an alternate class ability is to go into the editor, to the class tab, and make a duplicate of the Rogue class. In the editor, select the help menu, and in the editor manual that pops up there, read through the beginning of Tutorial 4 (Creating a complex class) to learn about the process of duplicating a class.

Now that you have your duplicate of the Rogue class, go to the "Class Special Abilities" option in the editor - in the list that pops up, you'll see that Trapfinding is repeated 6 times, at levels 3, 6, 9...18. If you switch back to the main Hero Lab window, and look at the class specials for a rogue, you'll see that Trapfinding appears there at those same levels.

Close that list without changing anything (we'll make the changes later).

Now, go to the class specials button. The ability we're adding is this:

Quote:
At 3rd level, the rogue can use poison without any chance of poisoning himself. For every three levels of rogue beyond 3rd, the DC for any poison coated on the rogue's weapons increases by +1 if the target is poisoned as part of a sneak attack.
(When you are asking questions, please remember to provide me more than the name of what you are creating. I happen to own this book, but I won't own every book you do).

We'll start by making a copy of an existing class special that has an increasing bonus as it gains in levels - how about Trap Sense. At the bottom left, press the "New (Copy)" button, and select Trap Sense from that list.

Change the name, and give this a new unique Id, and then change the description and summary text.

In the body of the class special tab, you'll see that the "Special Ability Type" and "Ability Classification" are highlighted - pressing "Special Ability Type", you'll find that it's currently marked as a defense - change that to an Attack. "Ability Classification" is currently marked as an "Extraordinary Ability" which is correct.

Now, on to the Eval Script, which is on the top right of the tab. Here's the eval script for Trap Sense - this runs at a timing of Post-Level/10000:

Code:
 
field[abValue].value += field[xCount].value
field[livename].text = "Trap Sense +" & field[abValue].value
field[abSumm].text = "+" & field[abValue].value & " bonus on reflex saves and AC against traps."
field[listname].text = "Trap Sense +" & field[xIndex].value
The abValue field stores a value that relates to this ability, but the exact usage varies from ability to ability - whatever's needed at that time. In this case, it's being used to store the bonus granted by the ability. You'll also note that it's being set equal to the xCount of the ability - this is the number of active copies of the ability. Remember in the special abilities list for the class that trapfinding was available at levels 3, 6, 9...18? xCount is equal to the count of those copies that are at the correct level.

Looking again at this ability, it's really 2 different abilities - at 3rd level, you gain the Poison Use ability that assassins have. At levels 6, 9, 12...18, you gain a bonus to the poison save DC. So, we're currently only creating the level 6+ ability.

Therefore, the bonus we want is equal to xCount, so we can leave the first line alone. The next line is the livename - that's the name of the special as displayed on the special tab and the printout - change that line to the new name. The third line sets the abSumm - that's the summary that appears on the special tab and printout - change the text there to reflect what this ability does. The fourth line is the listname - look back at the main Hero Lab window, to the Rogue you have there - see how in the class specials list, the 3rd level version is listed as "Trap Sense + 1", and so on - that's the listname. xIndex is the position of this ability in the list - the 3rd level copy is first in the list, so it has xIndex = 1, the 6th level copy is second, so it has xIndex = 2, and so on. So, in this case, just change the name.

Here's what you'll have now:
Code:
 
field[abValue].value += field[xCount].value
field[livename].text = "Poison Master +" & field[abValue].value
field[abSumm].text = "+" & field[abValue].value & " save DC for poisons applied during a sneak attack."
field[listname].text = "Poison Master +" & field[xIndex].value
Now, save your new class special, and then press the "Test Now!" button on the top left. Go back to the class tab, and open the "Class Special Abilities" list.

Press the edit button on the far left of the 3rd level trap sense ability. The ability to use poison without risking poisoning yourself is identical to the Assassin's Poison Use ability, so we'll use that - find "Poison Use" in the list of available class specials, and select it. You want it to be available at 3rd level, so you can leave the level alone.

Now, for the 6th level copy of Trap Sense, do the same thing, looking for the Poison Master ability you've added. Then replace the remaining 4 copies of Trap Sense with Poison Master.

Save the class, and press "Test Now!", and now you can go test your variant rogue.


Now, the cold resistance ability - you'll use a script much like the one for the Poison Master ability, but you'll set field[abValue].value = field[xCount].value * 2.

The next question is how to apply cold resistance - answer; find another class special that applies cold resistance - how about the Water domain's 6th level ability? On the class special tab, find "Cold Resistance 10" and make a copy of it. You'll see that the bootstraps button on the top right is highlighted - look inside, and you'll see that the xDamRsCold ability is being bootstrapped.

The script uses a different method to decide how much of a bonus to apply - what you want to take away from that is the #applyresist[xDamRsCold, 10] line. Instead of applying a fixed amount of cold resistance, you'll apply abValue as your cold resistance.

Oh, one thing that isn't obvious from just these two specials. Most class specials begin with these two tests:

Code:
 
~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)
 
~only do the rest if we're the first copy
doneif (tagis[Helper.FirstCopy] = 0)
You will need to put those at the beginning of your script, otherwise every copy of the ability (the 3rd level copy, the 6th level copy, etc.) will apply cold resistance.

Setting the listname should be done before those tests, everything else after. Putting all that together:

Code:
 
var bonus as number
bonus = field[xIndex].value * 2
field[listname].text = "Cold Resistance " & bonus
 
~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)
 
~only do the rest if we're the first copy
doneif (tagis[Helper.FirstCopy] = 0)
 
field[abValue].value += field[xCount].value * 2
field[livename].text = "Cold Resistance" & field[abValue].value
#applyresist[xDamRsCold, field[abValue].value]

For a feat that depends on another feat, and has an ability score requirement, start by copying other feats that require those same type of things - how about Deflect Arrows - that requires DEX 13 and the Improved Unarmed Strike feat. You'll find that those requirements are stored in the Expr-reqs button in the top-left hand section. The "Find Thing" button you'll see while editing the Expr-req will help you figure out how to change a DEX requirement into a CHA requirement, and how to change Improved Unarmed Strike (fImpUnarm) into the feat you want to test for.

Last edited by Mathias; April 6th, 2010 at 01:55 PM. Reason: Didn't properly close the #applyresist at the end.
Mathias is offline   #1 Reply With Quote
goku60018
Junior Member
 
Join Date: Mar 2010
Location: rosemont,il
Posts: 6
Send a message via AIM to goku60018

Old March 24th, 2010, 01:04 PM
is there going to be an update to add where those alternate class abilitys come from
goku60018 is offline   #2 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,213

Old March 24th, 2010, 01:33 PM
goku, would you mind re-phrasing your question please, I don't understand what you're asking?
Mathias is offline   #3 Reply With Quote
goku60018
Junior Member
 
Join Date: Mar 2010
Location: rosemont,il
Posts: 6
Send a message via AIM to goku60018

Old March 24th, 2010, 02:45 PM
sure

the book from where the poisoner ability comes from (the pathfinder campaign setting) are you guys going to add an update to include those alternate class abilitys at some time in the future
goku60018 is offline   #4 Reply With Quote
FifthWanderer
Senior Member
Volunteer Data File Contributor
 
Join Date: Apr 2006
Posts: 649

Old March 24th, 2010, 04:27 PM
The campaign setting is due to be released in a revised more Pathfinder-friendly edition later this year. I would say they won't add it in until then.
FifthWanderer is offline   #5 Reply With Quote
TopCat
Member
 
Join Date: Feb 2010
Posts: 74

Old March 25th, 2010, 02:27 AM
It's my understanding that the alternate class abilities will be removed from the new Campaign Setting book and will instead be part of the Advanced Players' Guide.
TopCat is offline   #6 Reply With Quote
Johnny Scott
Junior Member
 
Join Date: Apr 2010
Posts: 2

Old April 6th, 2010, 10:49 AM
I encountered an error when trying to apply the Cold Resistance 2 Class Special Ability using your instructions below. My script is identical to the one you supplied:

var bonus as number
bonus = field[xIndex].value * 2
field[listname].text = "Cold Resistance " & bonus

~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)

~only do the rest if we're the first copy
doneif (tagis[Helper.FirstCopy] = 0)

field[abValue].value += field[xCount].value * 2
field[livename].text = "Cold Resistance" & field[abValue].value
#applyresist[xDamRsCold, field[abValue].value

However, when I Test Now, I receive this error:

"Syntax error in 'eval' script for Thing 'cXXXCldRes' (EvalScript '#1') on line 14
-> invalid macro reference encountered in script"

Can you let me know what I've done wrong? Line 14 refers to the Bootstrap. Am I supposed to do something with the Bootstrap?
Johnny Scott is offline   #7 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,213

Old April 6th, 2010, 01:54 PM
The following line:

Code:
 
#applyresist[xDamRsCold, field[abValue].value
needs to have the macro closed with a "]":

Code:
 
#applyresist[xDamRsCold, field[abValue].value]
That's what's causing the error. Sorry about that. I'll edit my original post for the convenience of anyone else trying to borrow this code.
Mathias is offline   #8 Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 06:20 AM.


Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.