• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

trkReset Field on Trackers....

ShadowChemosh

Well-known member
So I noticed the new behavior of the Arcanist "Arcane Reservoir" where instead of resetting to 0 we can reset to another value. I thought cool I think I can use that for a Spell Adjustment.

I mimicked the logic from Arcane Reservoir which seems to be basically just setting the new trkReset field at Post-Levels/10000. So I did that on a new Tracker (not a Class Special) and it does not seem to work.

I would have assumed this new logic was attached to the component "Tracker" but maybe i assumed wrong?

So this spell adjustment is set to set the max value on the tracker:
Code:
  <thing id="pS2ProtEne" name="Protection from Energy" description="Protection from energy grants temporary immunity to the type of energy you specify when you cast it (acid, cold, electricity, fire, or sonic). When the spell absorbs 12 points per caster level of energy damage (to a maximum of 120 points at 10th level), it is discharged.\n\nProtection from energy overlaps (and does not stack with) resist energy. If a character is warded by protection from energy and resist energy, the protection spell absorbs damage until its power is exhausted." compset="InPlay">
    <fieldval field="pDuration" value="1 hour/level (D)"/>
    <fieldval field="abValue" value="20"/>
    <fieldval field="abValue2" value="10"/>
    <fieldval field="pMinimum" value="0"/>
    <usesource source="s20PFCamp"/>
    <tag group="Helper" tag="AdjSpell"/>
    <tag group="Adjustment" tag="EnerResist"/>
    <tag group="ProductId" tag="Shadowd20"/>
    <tag group="Helper" tag="AdjNoPlus"/>
    <bootstrap thing="trkS2ProtE">
      <containerreq phase="First" priority="500"><![CDATA[fieldval:pIsOn <> 0]]></containerreq>
      </bootstrap>
    <eval phase="PreLevel" priority="10000"><![CDATA[
      ~ If we're not enabled, get out now
      doneif (field[pIsOn].value = 0)
      ~if nothing's been chosen, get out now
      doneif (field[pChosen].ischosen = 0)

      ~ Set livename
      field[livename].text = field[name].text & " (" & field[pChosen].chosen.field[shortname].text & ")"
      ~ Set the tracker counter as CL x 12
      #trkmax[trkS2ProtE] += field[pAdjust].value * 12
      ]]></eval>
    </thing>

Here is the tracker code that sets the reset value to be the same as the max value at Post-Levels/10000:
Code:
  <thing id="trkS2ProtE" name="Protection from Energy" description="." compset="Tracker" uniqueness="useronce">
    <usesource source="UltCombat"/>
    <tag group="User" tag="Tracker" name="Modern Action Points" abbrev="Modern Action Points"/>
    <tag group="ProductId" tag="Shadowd20"/>
    <tag group="SpInfo" tag="spProtfro3"/>
    <eval phase="PostLevel" priority="10000"><![CDATA[
      ~ Make the reset value be the "max" value
      field[trkReset].value += field[trkMax].value
      ]]></eval>
    </thing>

The issue being that when I tell HL to "reset" the tracker it goes back to zero not the value calculated on the adjustment. I have done total restarts of HL. I removed the bootstrap condition logic. I even tried setting the reset value to be less than the max. I am I missing something in the use of this field or does it only work on Class Specials????? :confused:
 
Don't forget the Helper.ResetField tag - that tells HL to look at the trkReset field instead of trkMinimum to get the reset value.
 
Don't forget the Helper.ResetField tag - that tells HL to look at the trkReset field instead of trkMinimum to get the reset value.
Yes that would be the stuff I was missing. I swore I looked for a Helper.? flags last night on the Class Special. It was late and must have missed it.

Thanks Mathias! Will give a go tonight. :)
 
Mathias another quick question. Any way to have the tracker "start" right away at the "trkReset" value? So that lets say max is 50 and trkReset is 50 can it start right away with "50/50" or do you have to press the "reset". I got the idea from the Class Special that you have to do the reset right?

I ask because of the iPad. It has no way to individually reset a tracker. Its all trackers or none at all.
 
If you always know what the reset value will be, like if you know you always want it to be 50, can you set trkUser as a field value on the thing?

For the Arcanist's ability, the trkReset is a function of level, so the reset value can't be set in a script - the script can't know when the user is done setting levels, and therefore the trkReset value has become fixed.
 
Oh, BTW, Helper.ResetField isn't the only reset-altering option. There's also Helper.ResetMax and Helper.ResetAver
 
Awesome thanks! I swear I tried playing around before with setting trkUser and it caused all sorts of issues. I am pretty sure it causes the tracker to not be adjustable then. I did that for a older version of Psioncis where I made spells work on Spell Points instead.

I will give it a another try tonight as it was at least a year ago or more. And you and Aaron like to keep adding these crazy new features. :D
 
If you always know what the reset value will be, like if you know you always want it to be 50, can you set trkUser as a field value on the thing?
So just FYI but using trkUser requires "trust me" and while it does set the value to 50 you can't change then using the arrows.

Oh well so close to letting my players all have counters that count down instead of up. :)
 
Couldn't you use a mechanic to foreach through all picks of the Tracker component which have a non-zero trkMax field value, and apply the Helper.ResetMax tag? That would cause everything to reset to the max, rather than the minimum (although, as you noted above, the initial value would still be the minimum).
 
<fieldval field="trkUser" value="50"/>

should work - that won't need trustme, and it should not permanently set the value - just set the initial value.
 
Couldn't you use a mechanic to foreach through all picks of the Tracker component which have a non-zero trkMax field value, and apply the Helper.ResetMax tag? That would cause everything to reset to the max, rather than the minimum (although, as you noted above, the initial value would still be the minimum).
Yep that is my plan. It should work if "everything" is set that way and require a one time reset back to max.

I was just hoping for a way to get around the reset to max. It works but its not "intuitive" is all.

<fieldval field="trkUser" value="50"/>

should work - that won't need trustme, and it should not permanently set the value - just set the initial value.
Ahh ok yea that would work. Its just that the value is being calculated on the fly. This would work for wands or staffs that are custom where I can set the value directly on the Thing.

Thanks guys! :)
 
Back
Top