• 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

Class Custom Special

Manalishi66

Well-known member
Ok. what I would like to do for a class is add a domain (user chosen from the list of clerical domains and other abilities) when he reaches 4th level. Every 3 levels thereafter he may add another domain or another custom ability. Each time a domain is chosen he can cast only the domain spells and at 1/3 his class level as if a cleric. How can this be done as the class is not a spellcaster unless he chooses a domain, then he can cast spells?
 
Is this always tied to a specific class? If so, an archetype would probably be the best way to handle this. If not, then you probably could handle things as a configurable, though that's considerably messier.
 
And does the domain also grant the associated domain powers or is it just the spells you want?
 
If it's its own class, then when you set the number of primary custom abilities there is a button for "Allow Custom Abilities" where you can pick cleric.

Secondary Spells has a section right above that where you can set the number per level and if it functions like a cleric.

Lastly, to remove/disable the domain abilities you'll need an eval script something like this:

First 400
Code:
foreach pick in hero from BaseClSpec
  if (eachpick.isroot <> 0) then
   if (root.tagexpr[component.BaseClrDom & CustTaken.cHelpWHATEVERYOURCLASSHELPERABBREVIATIONIS] <> 0) then
     perform eachpick.forward[AbReplace.?]
     perform eachpick.assign[Helper.SpcDisable]
     perform eachpick.assign[Hide.Special]
     endif
   endif
 
Since it is a chosen custom ability...How do you prevent the class from gaining spells from the domain until it is picked, if the character chooses it at all. This class can pick other abilities and never be able to cast cleric spells or he can choose a second domain, third domain, etc. (each time choosing a different domain or other custom class ability). I'm not even sure this is possible in HL?
 
You can add an eval script to the class which sets up the secondary spells only if a domain is found.

The other abilities can also be custom special abilities using the same table, and thus the same pool of picks. If he wants a domain, he adds a domain to the table, if he wants "Summon Instant Noodles" he picks that. Since he only has X number of picks at this level, it takes care of itself.
 
Well? My problem is that this is beyond my skill. I have no idea how to script this. I was looking for examples or if someone could do it.
 
Are you having trouble making the other options? Or linking them to the class?

For the only add domain spell slots if we have domains, it would be something like this in an eval script on the class Helper:

First 10000
Code:
var foundone as number

foreach pick in hero from BaseClSpec where "component.BaseClrDom & CustTaken.cHelpWHATEVERYOURCLASSHELPERABBREVIATIONIS"
  foundone = 1
  nexteach

doneif (foundone = 0)

      perform assign[CasterType.MemAll]
      perform assign[CasterSrc.Divine]

      if (linkage[varies].field[cTotalLev].value >= 17) then
        linkage[varies].field[cSecMax].arrayvalue[1] = 1
        linkage[varies].field[cSecMax].arrayvalue[2] = 1
        linkage[varies].field[cSecMax].arrayvalue[3] = 1
        linkage[varies].field[cSecMax].arrayvalue[4] = 1
        linkage[varies].field[cSecMax].arrayvalue[5] = 1
        linkage[varies].field[cSecMax].arrayvalue[6] = 1
        linkage[varies].field[cSecMax].arrayvalue[7] = 1
        linkage[varies].field[cSecMax].arrayvalue[8] = 1
        linkage[varies].field[cSecMax].arrayvalue[9] = 1
      elseif (linkage[varies].field[cTotalLev].value >= 15) then
        linkage[varies].field[cSecMax].arrayvalue[1] = 1
        linkage[varies].field[cSecMax].arrayvalue[2] = 1
        linkage[varies].field[cSecMax].arrayvalue[3] = 1
        linkage[varies].field[cSecMax].arrayvalue[4] = 1
        linkage[varies].field[cSecMax].arrayvalue[5] = 1
        linkage[varies].field[cSecMax].arrayvalue[6] = 1
        linkage[varies].field[cSecMax].arrayvalue[7] = 1
        linkage[varies].field[cSecMax].arrayvalue[8] = 1
      elseif (linkage[varies].field[cTotalLev].value >= 13) then
        linkage[varies].field[cSecMax].arrayvalue[1] = 1
        linkage[varies].field[cSecMax].arrayvalue[2] = 1
        linkage[varies].field[cSecMax].arrayvalue[3] = 1
        linkage[varies].field[cSecMax].arrayvalue[4] = 1
        linkage[varies].field[cSecMax].arrayvalue[5] = 1
        linkage[varies].field[cSecMax].arrayvalue[6] = 1
        linkage[varies].field[cSecMax].arrayvalue[7] = 1
AND SO ON TO LOWER LEVELS
 
Got the script you showed me to run without error. Domains list with the class and can be chosen. However, no spells can be picked, they do not show up. Also, I can't seem to disable the domain powers. The script you showed gave an error (I thinks it said missing if statements). Any help?
 
That fixed the script. It compiled ok...but, now I get this....

Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
- - -
Cannot reliably access bootstrap source for unique pick 'cHelpTMP'
 
Since you seem to be working with an archetype, I'll guess that somewhere in your code is:

linkage[varies].root.

Which isn't an allowed transition, since you've already reached the class special.

Or if this is on a class special, you might have

root.root.

Or, you've borrowed code that was written for a class special, but you've put it on the class itself, without modification.
 
I don't think this is for an archetype, but a custom ability for an actual class (he says it's a 20th level Paladin like class in like post 8)
 
Back
Top