View Single Post
AndrewD2
Senior Member
 
Join Date: Mar 2007
Location: Muskegon, MI
Posts: 2,975

Old June 20th, 2015, 11:56 PM
OK Here's what I've got for Procedures, before you add these to the CB I am submitting them with the Vigilante so they should end up in the general data files. But I would like comments if you can see any adjustments that need to be made.

Code:
<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>
Code:
  <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>

Last edited by AndrewD2; June 21st, 2015 at 12:14 PM.
AndrewD2 is offline   #15 Reply With Quote