• 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

Help cleaning this up

Illyahr

Well-known member
I'm trying to program in a custom special but I can't get the code to work itself out properly

Code:
foreach pick in hero from BaseSkill
  if (eachpick.islinkage[skillattr] <> 0) then
    if (eachpick.linkage[skillattr].tagis[thingid.aCHA] + eachpick.linkage[skillattr].tagis[thingid.aINT] + eachpick.linkage[skillattr].tagis[thingid.aWIS] <> 0) then
      field[usrCandid1].text = "hero.child.[thingid.each]"
    endif
  endif
nexteach

var bonus as number
var pen as number
bonus = chosen.field[kModValue].value/4
bonus = round(bonus,0,-1)
pen = chosen.field[kModValue].value/2
pen = round(pen,0,-1)

if (field[hIsOn1].value <> 0) then
  foreach pick in hero from BaseWep where "thingid.wSwordBast | thingid.wShortswd"
    eachpick.field[wAttBonus].value += bonus
    chosen.field[aFinalVal].value -= pen
  nexteach
endif

You choose a mental-based skill. While active, you gain a bonus to attack equal to 1/4 the bonus while using katana or wakizashi (bastard sword or shortsword) but you also lose half the final value from that skill.
 
What part isnt working?

Try adding this in front of chosen: field[usrChosen1].
 
Last edited:
Try adding this in front of chosen: field[usrChosen1].

That works to get it to compile, but I'm getting a custom expression error and doesn't reduce to just mental-based skills. It also doesn't pull the bonus from the chosen skill.

I changed the expression line to:
Code:
field[usrCandid1].text = "hero.child.tagis[thingid.each]"

EDIT: Got the bonuses and penalty to work. Just need to figure out why the selection isn't reduced to just skills
 
Last edited:
Replace your foreach loop with this:

Code:
var expr as string
var lngth as number

foreach pick in hero from BaseSkill
  if (eachpick.islinkage[skillattr] <> 0) then
    if (eachpick.linkage[skillattr].tagis[thingid.aCHA] + eachpick.linkage[skillattr].tagis[thingid.aINT] + eachpick.linkage[skillattr].tagis[thingid.aWIS] <> 0) then
      expr &= eachpick.tagids[thingid.?, " | "] & " | "
    endif
  endif
nexteach

lngth = length(expr)
lngth -= 2
expr = left(expr,lngth)

field[usrCandid1].text = expr

Let me know if that works for you.
 
Back
Top