• 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

Using a string as a ThingID in a script

Lord Magus

Well-known member
I am trying to use a string, stored in the field "abText", as a thingID in a script, but I do not know how to do that properly.

I have tried
Code:
~ We calculate the bonuses for Elemental Augmentation

var AttBon as number
var AttTarget as string

foreach pick in hero where "abCategory.AMSAffin & Affinity.? & Helper.FirstCopy"
  AttBon = round(eachpick.field[abValue3].value/2,0,-1)
  AttTarget = eachpick.field[abText].text
  hero.child[AttTarget].field[aPostMod].value += AttBon
nexteach
but the "hero.child[AttTarget]" part does not work, even though the abText field that AttTarget refers to contains the thingID of the ability score I want to use.

Any pointers on how to properly convert a string to an thingID? Thanks!
 
Don't store the Id of the pick as text. Store some identity tag from the target pick on the picks you're foreaching through. Since this is attributes, and there's only 6 of them, use a 6-item if...elseif to apply the bonus to the correct attribute. If there were more picks, a nested foreach would be the way to find them.

Also, why is this script using a foreach - can't these AMSAffin picks run the script themselves, instead of running it from some master pick? As far as I can tell, this would be a 3-line script on those picks:

doneif (tagis[Helper.FirstCopy] = 0)
doneif (tagis[Affinity.?] = 0)

hero.chilfdound[aDex].field[aPostMod].value += round(field[abValue3].value/2,0,-1)

(just copying the script from pick to pick, changing the attribute Id for each one).
 
Last edited:
Don't store the Id of the pick as text. Store some identity tag from the target pick on the picks you're foreaching through. Since this is attributes, and there's only 6 of them, use a 6-item if...elseif to apply the bonus to the correct attribute. If there were more picks, a nested foreach would be the way to find them.

Thanks for the advice. I wanted to try and avoid running a series of if-then to do it.

Also, why is this script using a foreach - can't these AMSAffin picks run the script themselves, instead of running it from some master pick?

Funny that you're asking that, as this was my first idea that I then discarded to try to "centralize" the process on the Transform ability. I'll probably just transfer everything on the Affinities. Thanks again!
 
Back
Top