Member
Join Date: Sep 2007
Location: Salinas, CA
Posts: 67
|
I am trying to add a legendary item/artifact called the Equinox Crown, from Legendary Games' product, Road to War: The Equinox Crown.
One of its abilities is the ability to give the Selective Feat to the user, if it's equipped and if the wearer has 10+ ranks in Spellcraft. Adding the feat via Bootstraps is easy, but I'm having trouble trying to puzzle out the syntax for the Conditions on the bootstrap. I believe it should be something like: (fieldval:gIsEquip<>0) & (fieldval: #magic# >= 10) ...And that's where I can't find or figure out what the #magic# is. How do I get the skill ranks in Spellcraft from the wearer? skSpellcra should be in there somewhere, and I think I need the skRanks field (as that's the total ranks, both skInnate and skUser - right?). But how do I reference it in a bootstraps conditions? From what I've read here, I think it's something like either count:hero#hero.something or fieldval:hero#hero.something. I've tried the whack-a-mole approach (also known as "wild guesses"), but that's been ineffective. I haven't found any other bootstraps that reference skill ranks, so no copy and paste, either. Any ideas? |
#1 |
Senior Member
Join Date: Oct 2011
Posts: 6,793
|
fieldval in a bootstrap condition tag expression can only check fields on the current (bootstrapping) thing, so you wouldn't be able to check the field for the number of ranks directly. Instead, what you can do is add an eval script which occurs before your bootstrap condition that counts the number of ranks, and if enough are present apply a Custom tag to the hero. Then have the bootstrap condition check for that Custom tag.
One pitfall, because your eval script has to be earlier than the bootstrap condition, it'll only be able to catch ranks the user assigns directly (not those granted, for example, by an intelligence boosting item). |
#2 |
Member
Join Date: Sep 2007
Location: Salinas, CA
Posts: 67
|
Okay, I am doing it wrong.
I have this eval script: if (hero.child[skSpellcr].field[skUser].value + hero.child[skSpellcr].field[skInnate].value >= 10) then perform hero.assign[Custom.YSpellcr] elseif (hero.child[skSpellcr].field[skItem].value >= 10) then perform hero.assign[Custom.YSpellcr] endif And this bootstrap condition: hero#Custom.YSpellcr But I get this error message when I test it in the editor: Hero Lab was forced to stop compilation after the following errors were detected: Syntax error in 'bootstrap #1 condition' tag expression for Thing 'ioBEqCrwnW' -> Tag 'Custom.YSpellcr' not defined Syntax error in 'eval' script for Thing 'ioBEqCrwnW' (Eval Script '#2') on line 2 -> Tag 'Custom.YSpellcr' not defined So, how do you define a Custom tag? From looking at the Mask of the Forgotten Pharaoh, it looks like you just assign it and that creates it. But, no? I tried various phases (first, pre-levels, post-levels, final; all the (user) versions), with the bootstrap condition being later than the eval script. What am I doing wrong? |
#3 |
Senior Member
Join Date: Mar 2007
Location: Muskegon, MI
Posts: 2,975
|
You've got to put the tag on a thing before you can assign it, it actually has to exist. What I do is create an empty ability called "PROJECTNAME Tags" and give it an id. Then I add the Custom tags to that item.
So you would do that, click the Tag button and add Custom.YSpellcr and then you can assign them with your script. You'll have to do it really early for the assignment script (I usually do First/450) and make the condititional run at First/500. The fact that you have to do it so early means that you wouldn't be able to check the skItem field because those skill points are assigned pre-levels. |
#4 |
Member
Join Date: Sep 2007
Location: Salinas, CA
Posts: 67
|
Thank you both; I got it to work. (Maybe.)
Now I have to figure out how to add legendary item abilities to a custom magic item... Last edited by coyote6; October 14th, 2014 at 04:36 PM. |
#5 |
|
|