Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Poof! Head just exploded...One is CG the other is NG ... you'll have to figure out which is which ;-)
One is CG the other is NG ... you'll have to figure out which is which ;-)
Excuses Excuses is all I hear. Maybe if you spent less time answering posts on the boards it would be done already...... give me time ... sheesh. It is not the simplist class to input.
Nice! Yeah I did that for a FGG class with spellcasting being an option. I got it work but was never 100% happy with it.Well the Avenger is done. But let me say that the Warlock and the Zealot are annoying ... I hate turning a non-casting class into a casting class with custom abilities (even archetypes are a PITA). But I think I've go the system figured out really well.
What have something in a module procedure so it can be reused over and over again. That is just crazy talk.I'm going to post what I did in a bit so that anyone can figure out what the heck they need to do ... I might create a procedure to take care of a lot of the difficult work.
<procedure id="CustMagic" context="pick"><![CDATA[
~This sets up a class to become a spellcaster from either a Custom Ability
~or a class ability.
~ sClass.? is the tag of the casting class that's spells you will use
~ CasterType.? is the tag for the type of caster: SponKnow (Bard), SponBook (Arcanist),
~ SponAll (Warmage), MemBook (Wizard), MemAll(Cleric)
~ CasterSrc.? determines whether you're: Arcane, Divine, Alchem, Psychic
~ maxspell is your maximum spell level, if left blank defaults to 9
~ SplAttr is the id of the attribute for your spellcasting: aINT, aWIS, aCHA (usually)
~ MaxSplAttr is the id of attribute for your max spell level, defaults to SplAttr
var maxspell as number
perform state.clearfocus
if (tagis[component.BaseCustSp] <> 0) then
perform linkage[table].setfocus
elseif (root.tagis[component.BaseCustSp] <> 0) then
perform root.linkage[table].setfocus
elseif (tagis[component.BaseVary] <> 0) then
perform linkage[varies].setfocus
endif
doneif (state.isfocus = 0)
if (tagis[CastInfini.0] <> 0) then
focus.field[cCastMax].arrayvalue[0] += 99
endif
focus.field[cSplMaxLvl].value = maxspell
perform focus.pushtags[CastInfini.?]
perform focus.pushtags[sClass.?]
perform focus.pushtags[CasterType.?]
perform focus.pushtags[CasterSrc.?]
perform focus.pushtags[SplAttr.?]
perform focus.pushtags[MaxSplAttr.?]
perform focus.assign[Hero.Caster]
if (tagis[CasterType.SpontBook] + tagis[CasterType.MemBook] <> 0) then
perform focus.assign[Hero.Spellbook]
endif
if (tagis[component.BaseCustSp] <> 0) then
focus.field[cCasterLev].value = field[xTotalLev].value
elseif (root.tagis[component.BaseCustSp] <> 0) then
focus.field[cCasterLev].value = field[xAllLev].value
elseif (tagis[component.BaseVary] <> 0) then
focus.field[cCasterLev].value += linkage[varies].field[cTotalLev].value
endif]]></procedure>
<procedure id="AdjSpellsC" context="pick"><![CDATA[
~ This procedure adjusts yours spells cast/known/memorized at each level
~ You only need to adjust the variables for the levels you want to adjust
~ Do an if/then/else statement to set each based on class levels
~ ========== Number of Spells Cast at Each Level =============
var cast0 as number
var cast1 as number
var cast2 as number
var cast3 as number
var cast4 as number
var cast5 as number
var cast6 as number
var cast7 as number
var cast8 as number
var cast9 as number
~ ========== Number of Spells Known at Each Level =============
var know0 as number
var know1 as number
var know2 as number
var know3 as number
var know4 as number
var know5 as number
var know6 as number
var know7 as number
var know8 as number
var know9 as number
~ ========== Number of Spells Memorized at Each Level =============
var mem0 as number
var mem1 as number
var mem2 as number
var mem3 as number
var mem4 as number
var mem5 as number
var mem6 as number
var mem7 as number
var mem8 as number
var mem9 as number
perform state.clearfocus
if (tagis[component.BaseCustSp] <> 0) then
perform linkage[table].setfocus
elseif (root.tagis[component.BaseCustSp] <> 0) then
perform root.linkage[table].setfocus
elseif (tagis[component.BaseVary] <> 0)
perform linkage[varies].setfocus
endif
doneif (state.isfocus = 0)
focus.field[cCastMax].arrayvalue[0] += cast0
focus.field[cCastMax].arrayvalue[1] += cast1
focus.field[cCastMax].arrayvalue[2] += cast2
focus.field[cCastMax].arrayvalue[3] += cast3
focus.field[cCastMax].arrayvalue[4] += cast4
focus.field[cCastMax].arrayvalue[5] += cast5
focus.field[cCastMax].arrayvalue[6] += cast6
focus.field[cCastMax].arrayvalue[7] += cast7
focus.field[cCastMax].arrayvalue[8] += cast8
focus.field[cCastMax].arrayvalue[9] += cast9
focus.field[cKnowMax].arrayvalue[0] += know0
focus.field[cKnowMax].arrayvalue[1] += know1
focus.field[cKnowMax].arrayvalue[2] += know2
focus.field[cKnowMax].arrayvalue[3] += know3
focus.field[cKnowMax].arrayvalue[4] += know4
focus.field[cKnowMax].arrayvalue[5] += know5
focus.field[cKnowMax].arrayvalue[6] += know6
focus.field[cKnowMax].arrayvalue[7] += know7
focus.field[cKnowMax].arrayvalue[8] += know8
focus.field[cKnowMax].arrayvalue[9] += know9
focus.field[cMemMax].arrayvalue[0] += mem0
focus.field[cMemMax].arrayvalue[1] += mem1
focus.field[cMemMax].arrayvalue[2] += mem2
focus.field[cMemMax].arrayvalue[3] += mem3
focus.field[cMemMax].arrayvalue[4] += mem4
focus.field[cMemMax].arrayvalue[5] += mem5
focus.field[cMemMax].arrayvalue[6] += mem6
focus.field[cMemMax].arrayvalue[7] += mem7
focus.field[cMemMax].arrayvalue[8] += mem8
focus.field[cMemMax].arrayvalue[9] += mem9]]></procedure>
var maxspell as number
maxspell = 1
call CustMagic
var cast1 as number
var know0 as number
var know1 as number
cast1 += 2
if (field[xAllLev].value = 1) then
know0 += 4
know1 += 2
elseif (field[xAllLev].value = 2) then
know0 += 5
know1 += 3
elseif (field[xAllLev].value = 3) then
know0 += 6
know1 += 4
elseif (field[xAllLev].value = 4) then
know0 += 6
know1 += 4
elseif (field[xAllLev].value = 5) then
know0 += 6
know1 += 4
elseif (field[xAllLev].value = 6) then
know0 += 6
know1 += 4
elseif (field[xAllLev].value = 7) then
know0 += 6
know1 += 5
elseif (field[xAllLev].value = 8) then
know0 += 6
know1 += 5
elseif (field[xAllLev].value = 9) then
know0 += 6
know1 += 5
elseif (field[xAllLev].value = 10) then
know0 += 6
know1 += 5
elseif (field[xAllLev].value >= 11) then
know0 += 6
know1 += 6
endif
call AdjSpellsC