|
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
I have an ability for Rogue's to gain access to an extra skill point, but the extra skill point only applies to Rogue levels, and only the current level and and further levels in Rogue gained. So, this has been an issue I've tried resolving a number of ways in HeroLab, without success. I decided to try a different approach today, and I feel I'm close, but I'm not sure I understand what is happening with the timing here.
The idea I have, is I make a user tag, which is called User.RogSkPt, which indicates that an extra skill point should be assigned to the Rogue. I have a custom ability that is chosen as a special ability for the Rogue called Extra Skill Point, whose script follows. Code:
<Post-Levels 1000> ~ If we're not shown, just get out now doneif (tagis[Helper.ShowSpec] = 0) ~ Assign skill point tag to rogue. perform hero.assign[User.RgeSkPt] Code:
<Post-Levels 1000> ~ For each new level, if we have extra skill points because we ~ selected it as a special ability, assign them. var index as number var extra as number index = hero.child[cHelpRog].field[cClsIndex].value extra = hero.tagcount[User.RgeSkPt] notify extra herofield[tSkTotals].arrayvalue[index] += extra Also, I can't seem to count tags until Post-Levels, which could be a timing issue. So are the skill points derived before I can count the tags and add the skill points, i.e. a timing issue? I feel like I'm close, and I'm just missing some vital step. Thanks. Last edited by Kendall-DM; September 2nd, 2011 at 07:45 AM. |
#1 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,215
|
The determination of whether a class special has reached the correct level isn't done until Post-Levels/100, so until then , tagis[Helper.ShowSpec] always = 0, and your first script is never assigning the tag.
|
#2 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
Sorry, I mistyped that, it should have said Post-Levels. I just mistyped it. I've also edited out the ShowSpec line (because I have the Helper.SpecUp tag, and I thought that was the problem, but nope). When I first assign the Extra Skill Point, it works correctly for that level, it just fails to work on the later levels of Rogue. That is why I'm suspecting the script needs to be in cHelpRog.
|
#3 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,215
|
If you want to add to that level and all levels beyond it, you'll need some way to record what level the character was at the time they took this ability. The best option that's currently available for that is to use the activation amount, and let the user set the level. Then, you can subtract that from the class' current level, and add that many skill points.
|
#4 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,215
|
If your scripts are at the same Phase & Priority, it's out of your control which will be executed before the other.
|
#5 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
Quote:
I'll keep plugging away at it. This was a good solution, if I could just get the script to run at the additional levels. Thanks for the reply. |
|
#6 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
Nevermind. I took your suggestion and allowed the user to pick the level from an array (can only happen at even levels, so it worked out great). Working fine now. I never looked farther down the custom ability list of functions to see the array based menu. Thanks for all the help Mathias, I learnt me sumthin'!
Last edited by Kendall-DM; September 2nd, 2011 at 04:06 PM. |
#7 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,215
|
Converting text to numbers is pretty easy in Hero Lab:
Code:
var bonus as number bonus = field[something].text "1st-level spell" "2nd-level spell" etc. Where I use that to turn the selected text into a number. |
#8 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
Ok, you've got me curious. One of the things I love about the HL scripting is that it isn't strongly typed (which I forgot when I first posted the question, then immediately remembered, doh). Anyhow, in your example above, when it turns the selected text into a number, is it only reading the first letter and converting it to a value, or is it actually see the entire text string, but extracting the one text ascii value that equates to a number? This opens new possibilities...
|
#9 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,215
|
Here's the wiki page on the subject: http://hlkitwiki.wolflair.com/index....age_Mechanisms
|
#10 |
|
|