Senior Member
Volunteer Data File Contributor
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,729
|
Really sorry I think you may have to wait for Mathias or Aaron I can't see why its doing what its doing.
Just a stupid question you have nothing the "containerreq" section for the talent do you? Maybe for one last check can you post the full XML for this talent that is causing the issue? Hero Lab Resources: Pathfinder - d20pfsrd and Pathfinder Pack Setup 3.5 D&D (d20) - Community Server Setup 5E D&D - Community Server Setup Hero Lab Help - Hero Lab FAQ, Editor Tutorials and Videos, Editor & Scripting Resources. Created by the community for the community - Realm Works kickstarter backer (Alpha Wolf) and Beta tester.- d20 HL package volunteer editor. |
#11 |
Senior Member
Join Date: Feb 2015
Posts: 676
|
Huh, weird. I even tried setting the bootstrap condition to "1=2" to ensure the talent would never go live. Same error.
EDIT: Oops, didn't see this: Quote:
Code:
<thing id="sopTlCreGD" name="Greater Destroy" description="Increase the amount of damage dealt when you use your destroy ability to 1d6 + your caster level." compset="SoPTalent" summary="You do more damage with your destroy ability" uniqueness="useronce"> <fieldval field="abValue" value="6"/> <fieldval field="abValue2" value="1"/> <usesource source="pDDSSoP"/> <tag group="SoPSphere" tag="Creat"/> <tag group="SoPTlClass" tag="Talent"/> <tag group="SoPBanDesc" tag="CreAlter"/> <tag group="Helper" tag="SpecUp"/> <eval phase="PostLevel" priority="5000"><![CDATA[ ~ Stop if we're disabled doneif (tagis[Helper.SpcDisable] <> 0) ~ Find the Destroy ability perform hero.childfound[sopTlCreDs].setfocus doneif (state.isfocus = 0) ~ Replace die size, swap out CL progression tag focus.field[abValue2].value = maximum(focus.field[abValue2].value,field[abValue].value) perform focus.tagreplace[SoPAbV3Sc.1_2CL,SoPAbV3Sc.1_1CL] ~ Update description of Destroy #appenddesc[sopTlCreDs, "{b}" & field[thingname].text & ":{/b} Increase the amount of damage dealt when you use your destroy ability to 1d6 + your caster level."]]]></eval> </thing> Last edited by TheIronGolem; January 9th, 2018 at 08:08 PM. |
|
#12 |
Senior Member
Volunteer Data File Contributor
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,729
|
LOL I give you points cause I can not currently see anything wrong. This should not be acting this way.
That talent/Thing looks really normal and you are not doing anything that special in the script. Its nice clean code don't get me wrong. But nothing in it should be causing this......... Hero Lab Resources: Pathfinder - d20pfsrd and Pathfinder Pack Setup 3.5 D&D (d20) - Community Server Setup 5E D&D - Community Server Setup Hero Lab Help - Hero Lab FAQ, Editor Tutorials and Videos, Editor & Scripting Resources. Created by the community for the community - Realm Works kickstarter backer (Alpha Wolf) and Beta tester.- d20 HL package volunteer editor. |
#13 |
Senior Member
Join Date: Oct 2011
Posts: 6,793
|
Code:
<prereq message="This ability (or an equivalent) has already been added to the hero."> <match><![CDATA[ thing.useronce ]]></match> <validate><![CDATA[ ~ If this is a pick, we're valid validif (@ispick <> 0) ~ Otherwise, see if the identity tag for this thing appears in the ~ "HasFeat" group on the Hero. If it does, we already have this feat, ~ so we don't need another copy if (altthing.tagis[component.BaseFeat] <> 0) then @valid = !altthing.tagmatch[thingid,IsFeat,current] else ~if we're not a feat, perform the same check using the HasAbility group @valid = !altthing.tagmatch[thingid,Ability,current] endif ]]></validate> </prereq> |
#14 |
Senior Member
Join Date: Feb 2015
Posts: 676
|
Quote:
I started by creating a bare-bones component that has no fields, no tags, no scripts, and no other components in its compset. I also made a single Thing with this component (again, no tags/scripts) and boostrapped it from a class ability with an impossible condition (1=2) Code:
<component id="SoPTEST" name="test" autocompset="yes" hasshortname="no" ispublic="yes"> </component> ... <thing id="SoPtest" name="test thingy" compset="SoPTEST"></thing> Code:
<component id="SoPTEST" name="test" autocompset="no" hasshortname="no" ispublic="yes"> </component> <compset id="SoPTEST"> <compref component="SoPTEST"/> <compref component="Ability"/> </compset> But this time, the hero had the Ability.SoPtest tag. So I'm guessing that the tag is being forwarded/assigned somewhere from the Ability component, but (because this does not happen with feats), this forwarding/assignment must be preventable by means I do not yet know. I guess I could have a script that loops through talents and deletes Ability tags from the hero if the corresponding pick isn't live, but that feels pretty hacky and prone to false positives. |
|
#15 |
Senior Member
Join Date: Feb 2015
Posts: 676
|
Here's something else that confuses me: If I test the bootstrapped talent with "hero.childlives[talentID]", this always returns 1, indicating that the talent is indeed live. This happens even if the bootstrap has an impossible condition, and without regard to whether the test occurs before or after the bootstrap condition is scheduled. The only way childlives will fail is if I remove the bootstrap. And yet the talent doesn't act as if it is live unless the boostrap conditions are met (apart from forwarding its Ability tag).
Unfortunately this means my workaround of "delete the Ability tag if the talent isn't live" isn't going to be viable. |
#16 |
Senior Member
Lone Wolf Staff
Join Date: Dec 2008
Posts: 4,690
|
Quote:
Code:
<bootstrap thing="abMarksman"> <containerreq phase="Initialize" priority="1000">FALSE</containerreq> </bootstrap> <eval index="1" phase="Initialize" priority="500"><![CDATA[ debug hero.childlives[abMarksman] ]]></eval> <eval index="2" phase="PreTraits" priority="500"><![CDATA[ debug hero.childlives[abMarksman] ]]></eval> Right after the pick is added, script 1 prints "1", script 2 prints "0" - this happens because the pick is assumed to be live until the live test is actually run. After that, both scripts print "0". So the basics of this functionality seem to be working. Are you sure there's not another copy of the pick on the hero that is live? If that's happening, it will make childlives return 1. If that's not causing it, can you package up your data files and put them on Dropbox (or a similar service) so I can download them and see what's causing it? If not, you can email them to me at colen@wolflair.com. Hope this helps! |
|
#17 |
Senior Member
Join Date: Feb 2015
Posts: 676
|
Quote:
Quote:
Quote:
|
|||
#18 |
Senior Member
Lone Wolf Staff
Join Date: Dec 2008
Posts: 4,690
|
To update everyone awaiting the exciting conclusion of this thread - childlives is working as expected, but TheIronGolem pointed me towards another bug in Hero Lab that we will be fixing soon. TIG has a workaround that will resolve the issue until the bugfix comes out.
|
#19 |
Senior Member
Volunteer Data File Contributor
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,729
|
Quote:
Thanks for the update Colen! Hero Lab Resources: Pathfinder - d20pfsrd and Pathfinder Pack Setup 3.5 D&D (d20) - Community Server Setup 5E D&D - Community Server Setup Hero Lab Help - Hero Lab FAQ, Editor Tutorials and Videos, Editor & Scripting Resources. Created by the community for the community - Realm Works kickstarter backer (Alpha Wolf) and Beta tester.- d20 HL package volunteer editor. |
|
#20 |
|
|