PDA

View Full Version : Need Special Ability Help: v3.5 Scout Conversion to PFRPG


Paris.Crenshaw
July 5th, 2010, 05:41 PM
Hi, All.

I've enjoyed working with Hero Lab's Pathfinder content and I'm now ready to start entering my converted v3.5 classes.

My first attempt was the Scout class from Complete Adventurer.

Amazingly, I got the Skirmish ability to work, but I'm having difficulty with the Scout's Battle Fortitude ability. I'd appreciate some assistance in getting the script correct. Here's the (converted) ability description:

Battle Fortitude (Ex): At 2nd level, a scout gains a +1 competence bonus on Fortitude saves and initiative checks. This bonus increases to +2 at 11th level and +3 at 20th level. A scout loses this bonus when wearing medium or heavy armor or when carrying a medium or heavy load.

I tried basing the ability on other abilities that modify values, but it isn't working.

Here's the script I'm using:
field[abValue].value += field[xIndex].value
hero.child[svFort].field[Bonus].value += field[abValue].value
hero.child[Initiative].field[Bonus].value += field[abValue].value

field[livename].text = field[thingname].text & "Battle Fortitude +" & field[abValue].value
field[abSumm].text = "+" & field[abValue].value & "competence bonus to Fort saves and Initiative checks."

I appreciate any and all help.

Cheers!

ShadowChemosh
July 6th, 2010, 03:43 PM
Your pretty close their actually, but their are two different values that have to be used. One is the xIndex and the other is the xCount value. You should use the xIndex for displaying the info in the Class List section and use xCount for the actual abValue and only when that class ability is shown. Which happens when they have enough class levels.

Below is some code I have running on a class. For timing I use Render 1,000.

Hope that helps.


~Set the list name
field[listname].text = field[thingname].text & "(+" & field[xIndex].value & ")"

~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)
field[abValue].value += field[xCount].value
field[livename].text = field[thingname].text & "(+" & field[abValue].value & ")"

Theocrat
July 6th, 2010, 09:40 PM
Pairs, please don't keep this dataset all to yourself when you've completed it. My Evol WifeFIEND said she is willing to join our Kingmaker game starting in a couple weeks. She only plays archers. But as we're going to be playing two characters (one off adventuring the other running a kingdom), I want one to be the scout and one to be either a rogue or fighter - but as HL is awesome for PC management (and she only plays, she doesn't make characters) I want as much help as possible. Making this available on either Cheese Weasel or Shadow's d20PFSRD for HeroLab site would be totally beneficial to me. Please consider this when you've created the class.
Theocrat Issak

Paris.Crenshaw
July 16th, 2010, 05:44 PM
Hi, folks!

Sorry it's taken me so long to respond. I've been so busy with work, I haven't had time to play around with this.

I'll give this a try tonight and let you know how it works out.

Once I get it working, I'll be happy to share, Theocrat!

Paris.Crenshaw
July 19th, 2010, 05:41 AM
I finally got around to trying a few things out, but unfortunately, I'm still missing something.

At this point, I'm just trying to get the ability to show up in the "Scout" Class List with the right bonuses. The ability is granted at 2nd, 11th, and 20th levels with a +1 increase each time. But when I add levels of the class, it shows up as "Battle Fortitude +0" each time.

I'm not sure whether there's a problem with the code or with a setting that I should have selected when linking the class with the special ability.

Mathias
July 19th, 2010, 06:33 AM
On the class tab, there's a list of special abilities that the class gets.

On that list, do you see Battle Fortitude listed 3 times, at the appropriate levels?

Does each level list (+1), (+2), and (+3)?

Paris.Crenshaw
July 19th, 2010, 05:03 PM
No. I've added the ability to the class in the editor. When I apply levels of the class to a character, I see the ability in the list, but each time, it shows up as +0 at each of the 3 levels. I know there's something missing about how to make Hero Lab count the number of times a character gets an ability, but I can't figure out what it is.

blzbob
July 19th, 2010, 05:10 PM
What I did was copy the fighter's bravery ability. I had to do some minor changes to the eval script so that the text came out right. Here is the one I did for the Knight's Rallying Presence:

Phase: Render Priority: 1000
field[listname].text = "Rallying Presence +" & field[xIndex].value

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

field[abValue].value += field[xCount].value
field[abSumm].text = "+" & field[abValue].value & " Bonus to saves against fear"
field[livename].text = "Rallying Presence +" & field[abValue].value

Paris.Crenshaw
July 19th, 2010, 05:28 PM
Okay...so I got this to work, but I don't know how. Here's what I originally had for the script.


field[abValue].value += field[xCount].value
field[livename].text = "Battle Fortitude +" & field[abValue].value
field[abSumm].text = "+" & field[abValue].value & " competence bonus to Fort saves and Initiative checks."
field[listname].text = "Battle Fortitude +" & field[xIndex].value

I made a copy of Sneak Attack and used that script as the base, and that ability now works. Here's that script.


field[abValue].value += field[xCount].value
field[livename].text = "Battle Fortitude +" & field[abValue].value
field[abSumm].text = "+" & field[abValue].value & " competence bonus to Fort saves and Initiative checks."
field[listname].text = "Battle Fortitude +" & field[xIndex].value

As you can see the scripts are identical. The only difference is that my original ability had a phase of "First", while the one based on Sneak Attack has a phase of "Final Phase". I have no idea why that would make a difference, since I don't know what phase means in the context of the scripts.

Thoughts?

Paris.Crenshaw
July 19th, 2010, 05:29 PM
Thanks, blzbob. I can see now that the problem is in the Phase and Priority properties. Where do I go to learn more about what those mean and how to use them properly?

EDIT: Now I'm having trouble getting the bonuses to add to Initiative and Fortitude Saves. Are the hero.child statements in my first post accurate? What do I need to do with the bootstraps?

Sorry to be such a dunce. Still trying to learn the language associated with this software. :D

blzbob
July 19th, 2010, 08:00 PM
I'm still learning is as I go. I just ask questions for now. There is a site that has all these answers but I get confused when I read it. What I do right now is just find something that matches what I want to do and just mimic it. If I can't find anything, then I come on here and ask.

Mathias
July 19th, 2010, 10:25 PM
All scripts in Hero Lab are run in a specific order. That order is set by the Phase and Priority.

So, we start with the First phase - there, we set up things like the size of the hero, and do a quick count of how many levels of each class there are (along with noting the race, templates, etc. in a way that's easy for other things to look up).

Then comes the levels phase (with pre-levels before it and post-levels after it) - that's when each class figures out what level it's at, and tells each of its abilities what level it was selected at, how many levels there are of the parent class, etc.

The same sort of thing happens in the attributes phase, this time for attributes, and everything that needs to know an attribute value.

Then the Final phase, when things like the attack value and the armor class are calculated - they need to know how many levels you have and what your attribute values are, so those need to be calculated after the levels and attributes phases.

Everything's finished off with the Render phase - how things look when they're displayed to the user.

Within each phase, the scripts are placed in order by priority, from lowest to highest.

If you're putting a script on a class, you'll have to use Post-Levels / 500 or later - the class special doesn't know how many levels of its parent class have been taken until shortly before then. By default, I stick Class Specials at Post-Levels / 10000.

Paris.Crenshaw
July 20th, 2010, 08:41 PM
Ah! That makes sense. Now I understand what you meant about your use of the timing Render, 1000.

Thanks for the explanation!

Theocrat
July 22nd, 2010, 09:25 PM
Paris any timeframe for when you'll have this converted to PF ruleset? I'm making a Ranger Archer for the evol WifeFIEND, but really think the scout might make a viable option.

Paris.Crenshaw
July 25th, 2010, 12:59 PM
Hey, Theocrat.

Sorry this is taking so long. I don't have large chunks of time to spend on this and I'm still having trouble.

I've got the ability showing properly in the class table, but I can't get it to actually add the value to the Initiative and Fort Save modifiers.

I'm still working on it and will let you know when I'm done.

Here're the lines I'm using in the script.

hero.child[svFort].field[Bonus].value += field[abValue].value
hero.child[Initiative].field[Bonus].value += field[abValue].value
Note: field[abValue].value += field[xCount].value

Mathias
July 25th, 2010, 01:27 PM
The Render phase is too late to make any changes to saves or initiative. I'd recommend moving your script to Post-Levels/10000 (if you need to look up an attribute value, for example Uses = 3 + CHA mod, use Post-Attributes/10000 instead).

Paris.Crenshaw
July 25th, 2010, 02:06 PM
Thanks, Mathias. That got my numbers to show up.

Unfortunately, now they're showing up incorrectly. I've only added this ability to the scout class for levels 2, 11, and 20. But when I add the 1st level of scout, the Initiative and Fort Save bonuses increase by +1. After the first ability is added, it seems to work correctly for every other one, but for some reason, it's showing up at first level, even though I've added it to the class starting at 2nd level.

I'm having a very tough time getting the hang of this. ;)

Mathias
July 25th, 2010, 02:24 PM
Take another look at the script ShadowChemosh gave you. It included the following lines:

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

You'll need to put that into your script, after the part that generates the listname, but before everything else.

Every class special is active, even if they show grey-ed out. Therefore, you need to stop the script from running if this is on a class special you haven't gained yet.

Since you also want to add the bonuses from only one copy, not the level 2, 11 and 20 copies (which would mean that the bonus was tripled by the time you got to 20th level), we'll add a little more:

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

~ If we're not the first copy, just get out now
doneif (tagis[Helper.FirstCopy] = 0)


If you haven't done so already, I'd recommend reading through the tutorials (help menu within the editor), especially #7. That's where I've tried to cover this sort of thing

Paris.Crenshaw
July 25th, 2010, 02:59 PM
Mathias, you're awesome. I completely missed the importance of that line.

Here's the final script. The goal was to increase the bonus from +1 at 2nd level, to +2 at 11th, and +3 at 20th. It works perfectly! :D

Phase: Post-Levels (User), Priority: 10000, Index: 1
~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)

field[abValue].value += field[xIndex].value
field[livename].text = "Battle Fortitude +" & field[abValue].value
field[listname].text = "Battle Fortitude +" & field[xIndex].value

#applybonus[BonComp,hero.childfound[svFort], field[xCount].value]
#applybonus[BonComp, hero.childfound[Initiative], field[xCount].value]

As for the tutorials, I guess I got ahead of myself. I made it through #3 and got impatient. ;) I'll go back through and give the rest of them a try, now. Thanks, again!

I'm putting the finishing touches on the class, now. I'll let you know when I'm done!

Mathias
July 25th, 2010, 03:45 PM
Some minor revisions:


field[listname].text = "Battle Fortitude +" & field[xIndex].value

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

~ If we're not the first copy, just get out now
doneif (tagis[Helper.FirstCopy] = 0)

field[abValue].value += field[xIndex].value
field[livename].text = "Battle Fortitude +" & field[abValue].value
#applybonus[BonComp,hero.childfound[svFort], field[xCount].value]
#applybonus[BonComp, hero.childfound[Initiative], field[xCount].value]


I moved the listname line before the Helper.ShowSpec section, becuase you want to generate a listname all the time, even if you haven't reached that level. (the listname is what's shown on the class tab, so this way, the first copy displays +1, the second +2, etc.)

I added the FirstCopy section so that when you're 20th level, the script only runs once, not 3 times. Because you're using competence bonuses, and they don't stack, you're not seeing it, but if you used a non-stacking bonus, you'd see it applied three times.

Paris.Crenshaw
July 25th, 2010, 04:25 PM
Thanks, Mathias!

Paris.Crenshaw
July 25th, 2010, 05:23 PM
I've got the file ready, along with the Scout-specific feats from "Complete Adventurer". Where should I post it?

Mathias
July 25th, 2010, 07:46 PM
One of our users, Chiefweasel, has set up a user content repository on his site:

http://forums.wolflair.com/showthread.php?t=9050

He's currently experiencing a site outage, though, so I'd suggest people use the personal message system on this board to trade email addresses in order to transfer the files until that's back up.

Theocrat
July 25th, 2010, 10:27 PM
You can also e-mail Tim Shadow (ShadowChemosh) and he'll get it put up at d20PFSRD for the HeroLab section. He's done a lot of things for the site. But Chesse Weasel's site is good too - we can always have more places to put stuff. Plus, I'm one that really wants to download this.
Put it up already!
Theocrat Issak

Mathias
July 26th, 2010, 06:24 AM
Actually, since this book is WotC closed content, I believe they may not want to put that up at d20pfsrd.

Paris.Crenshaw
July 26th, 2010, 08:39 AM
Actually, since this book is WotC closed content, I believe they may not want to put that up at d20pfsrd.

Good point. I'll work out a way to get it to Theocrat via e-mail.

Thanks!

ShadowChemosh
July 26th, 2010, 09:22 AM
I appreciate the mention of d20pfsrd (http://www.d20pfsrd.com/extras/community-creations/hero-lab) and myself, but I can only post OGL or CUP specific stuff to d20pfsrd (http://www.d20pfsrd.com/extras/community-creations/hero-lab). Converted 3.5 material from the complete books are not OGL and so I can't post them. Heck the Eberron races I converted I can't post either as they are non-OGL and available only on chiefweasel@cheeseweasel.net site.

I have discussed the problem with cheifweasel and currently do to time limitations on both are parts we have no current solution really. So for now OGL and CUP stuff can be sent to myself to get posted to d20pfsrd (http://www.d20pfsrd.com/extras/community-creations/hero-lab) and the non-OGL stuff has to be sent to chiefweasel@cheeseweasel.net.

I am looking forward to this class myself as I always like the scout character and would be great to have a PFRPG version of it available. So thanks for the awesome work on this Paris.Crenshaw.

Paris.Crenshaw
July 26th, 2010, 08:04 PM
Thanks, folks. I should have remembered the OGL/Non-OGL issue, myself. I guess I wasn't thinking.

I just sent the file to Theocrat via e-mail. I guess I'll go ahead and send it to chiefweasel, too.

As for "awesome work", I think that remains to be seen. Please let me know what bugs or problems you find with the class. I'm still very much an amateur.

Cheers!
Paris

Paris.Crenshaw
July 26th, 2010, 08:07 PM
File sent. Standing by for feedback! :D

Paris.Crenshaw
July 29th, 2010, 12:05 PM
Hey, Folks.

I just realized I need to make some changes to the Scout class. I built some of the abilities into the class by simply using the ones already assigned to another class.

I have moved on to try building the Hexblade and in the process of creating the new spell list, I realized that I need to create copies of special abilities specifically for the Scout class, rather than using the ones from a different class.

Theocrat, I'll fix that and resend the file to you.

Also, chiefweasel, I'll send the file to you with an e-mail in the format you requested in your other thread.

Cheers!
Paris

Mathias
July 29th, 2010, 12:11 PM
In 3.5 you did need to create specific copies for each class that would use them. In Pathfinder, the ideal is that you'll be able to re-use abilities.

Note the use of the same Trap Sense ability by both Rogues and Barbarians, or Wild Empathy by Druids and Rangers.

Paris.Crenshaw
July 30th, 2010, 02:24 PM
Thanks for the clarification, Mathias.

Does the same hold true for spells? Do I still need to copy spells to create a spell list for...say, the hexblade? ;)

Mathias
July 30th, 2010, 03:14 PM
Well, sort-of. If you can get into the structural files and edit the original version of the spell like I can, no, spells can be used by multiple classes (as long as they all use it at the same level), unlike d20 where a separate spell is needed for each class.

The problem is that if you made a replacement copy of the spell in order to allow it to another class, and another person also made a replacement copy of the same spell to allow it to the class they had created, Hero Lab won't know which replacement to use, and will throw up an error.

So, for a new class, you will have to duplicate many existing spells to make copies that your new class can use.

The Alchemist Tutorial in the editor manual has a section that takes you through the steps to do so.

Paris.Crenshaw
July 30th, 2010, 04:30 PM
Thanks. I did follow the Alchemist tutorial, this time. I just wanted to make sure that there wasn't something new since the tutorial had been created.

Time to get back to building spell lists! ;)