• 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

How to bootstrap a Class Special onto a Cleric Domain?

draco963

Well-known member
Alright, I got another one. Yeesh.

I'm trying to make the Sphere Cleric (found somewhere in the reddit D&D forums). Essentially, a 3.5 cleric, but has a different spell organization setup and can "channel energy," which does exactly what it sounds like.

So far, I've figured out the basics of the class, and am building the domains as I need them. But, the issue is trying to bootstrap a Class Special thing (Channel Energy) onto a Cleric Domain thing. HeroLab doesn't like that...

So, the build of Channel Energy is mostly text flavouring, but it has a #/day of usages that is influenced by the hero's Wisdom modifier, so it has this script running on it at Post-attributes 10000:

Code:
var bonus as number
bonus = hero.child[aWIS].field[aModBonus].value

field[hTotal].value += bonus

Also, it's Source is the Sphere Cleric class I built, and it's flagged "yes" for Lost if Ex-Member?

Now, when Channel Energy is bootstrapped onto the Class it works just fine. But if I bootstrap it onto one of the Domains, I get this error:

Attempt to access field 'cTotalLev' that does not exist for thing 'cdSphereEarthMj'
Location: 'field calculate' script for Field 'xTotalLev' near line 10
- - -
Attempt to access field 'cExMember' that does not exist for thing 'cdSphereEarthMj'
Location: 'eval' script for Component 'BaseClSpec' (Eval Script '#1') near line 24

If I'm reading the error correctly, it looks like Channel Energy is trying, and failing, to find things related to the fact its Source is defined as my Sphere Cleric class. But I don't know how to make a bootstrap load its dependancies properly.

Does anyone know what to do here? I'm wondering if I need to use Gizmo or something....
 
Does anyone know what to do here? I'm wondering if I need to use Gizmo or something....

I haven't done much work with gizmos so I can't definitively say that won't work. Barring that, however, class specials must be bootstrapped to class levels. Anything else won't work. If you need to bootstrap it to a domain, it must be a regular special.
 
How could I bootstrap a class special to a class level? That sounds like it might work, if I can use an evaluation script to see if class level >0 to trigger loading the bootsrap...

I'll futz around with trying to build this as a regular special, see if it works for the way the ability, erm, works... I think the only real functionality lost would be the Ex-Member bit, which I can surely handle by hand.
 
How could I bootstrap a class special to a class level? That sounds like it might work, if I can use an evaluation script to see if class level >0 to trigger loading the bootsrap...

You could try using a Class Variant. Otherwise, you're potentially looking at re-creating the class (sorry, Class not Class Level) which doesn't always work smoothly.

I'll futz around with trying to build this as a regular special, see if it works for the way the ability, erm, works... I think the only real functionality lost would be the Ex-Member bit, which I can surely handle by hand.

Pretty sure you could script this. The idea would be to look for the field that indicates Ex-Member on the Class, and if it's not 0 adjust the tags that disables the special. For Example:

Code:
if (hero.child[cHelpClr].field[cExMember].value <> 0) then
   perform assign[Helper.SpcDisable]
   perform delete[Helper.ShowSpec]
endif

Not sure the timing off hand, but I suspect this field is set pretty early.
 
Last edited:
Back
Top