Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,213
|
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:
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:
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 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 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) 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. |
||
#1 |
Junior Member
|
is there going to be an update to add where those alternate class abilitys come from
|
#2 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,213
|
goku, would you mind re-phrasing your question please, I don't understand what you're asking?
|
#3 |
Junior Member
|
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 |
#4 |
Senior Member
Volunteer Data File Contributor
Join Date: Apr 2006
Posts: 649
|
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.
|
#5 |
Member
Join Date: Feb 2010
Posts: 74
|
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.
|
#6 |
Junior Member
Join Date: Apr 2010
Posts: 2
|
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? |
#7 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,213
|
The following line:
Code:
#applyresist[xDamRsCold, field[abValue].value Code:
#applyresist[xDamRsCold, field[abValue].value] |
#8 |
|
|