View Single Post
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old February 25th, 2016, 02:15 PM
Is this a class ability which is gained at higher than 1st level? If so, it's good that you are checking for ShowSpec, since that indicates you are high enough level to get the bootstrap activated. Unfortunately, as Mathias says, you can't rely on ShowSpec when messing around with bootstrap conditions, because ShowSpec is assigned in early Post Levels, and bootstrap conditions have to execute in early First. So, there is a workaround I sometimes use.

The Class Level field on the actual class helper (cTotalLev) is set way earlier than the Class Level fields on Custom Abilities (xTotalLev) and Class Abilities (xAllLev). So, first call the "foctoclass" procedure, which navigates from a class special to the class helper it is associated with, and sets the focus to that class helper. Then, instead of looking for Helper.ShowSpec, compare the value of cTotalLev to the tag value of the ClSpecWhen tag on this class special.

For example, say you have your bootstrap conditions at First 500, add the following eval script:

First 400
Code:
call foctoclass

doneif (state.isfocus = 0)

doneif (focus.field[cTotalLev].value < tagvalue[ClSpecWhen.?])

doneif (tagis[Helper.Disable] <> 0)

if (field[usrChosen1].chosen.tagis[thingid.spChilTouc] <> 0) then
  field[abValue5].value = 1
  endif

if (field[usrChosen1].chosen.tagis[thingid.sp5CSpareD] <> 0) then
  field[abValue5].value = 2
  endif
Aaron is offline   #10 Reply With Quote