Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Pathfinder Roleplaying Game

Notices

Reply
 
Thread Tools Display Modes
ShadowChemosh
Senior Member
Volunteer Data File Contributor
 
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,729

Old June 20th, 2015, 06:47 PM
Quote:
Originally Posted by AndrewD2 View Post
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.
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.

Hero Lab Resources:
Pathfinder - d20pfsrd and Pathfinder Pack Setup
3.5 D&D (d20) - Community Server Setup
5E D&D - Community Server Setup
Hero Lab Help - Hero Lab FAQ, Editor Tutorials and Videos, Editor & Scripting Resources.
Created by the community for the community
- Realm Works kickstarter backer (Alpha Wolf) and Beta tester.
- d20 HL package volunteer editor.
ShadowChemosh is offline   #11 Reply With Quote
AndrewD2
Senior Member
 
Join Date: Mar 2007
Location: Muskegon, MI
Posts: 2,975

Old June 20th, 2015, 07:12 PM
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.
AndrewD2 is offline   #12 Reply With Quote
ShadowChemosh
Senior Member
Volunteer Data File Contributor
 
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,729

Old June 20th, 2015, 07:26 PM
Quote:
Originally Posted by AndrewD2 View Post
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.
What have something in a module procedure so it can be reused over and over again. That is just crazy talk.

The issue goes back to though without this procedure documented somewhere it will be hard to find. Unless a person can think of a class where it is used. Its my only one big issue still. A well maintained wiki or document center with macros, scripts, tags, and procedures documented somewhere.

Even just the idea is what happens (heaven for bid) the plane carrying Aaron and Mathias goes done after GenCon. Who is the backup? I am thinking tons of information, logic and design are currently ONLY held in there heads.

Hero Lab Resources:
Pathfinder - d20pfsrd and Pathfinder Pack Setup
3.5 D&D (d20) - Community Server Setup
5E D&D - Community Server Setup
Hero Lab Help - Hero Lab FAQ, Editor Tutorials and Videos, Editor & Scripting Resources.
Created by the community for the community
- Realm Works kickstarter backer (Alpha Wolf) and Beta tester.
- d20 HL package volunteer editor.
ShadowChemosh is offline   #13 Reply With Quote
AndrewD2
Senior Member
 
Join Date: Mar 2007
Location: Muskegon, MI
Posts: 2,975

Old June 20th, 2015, 07:33 PM
A well documented wiki? Crazy talk! I've considered trying to start a community documentation ... but I really really suck at documentation ... But a Google site or a wiki or something wouldn't be bad to consider ...
AndrewD2 is offline   #14 Reply With Quote
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
AndrewD2
Senior Member
 
Join Date: Mar 2007
Location: Muskegon, MI
Posts: 2,975

Old June 20th, 2015, 11:58 PM
And example of them in use:

Add the required tags to the Class Special/Custom Ability
CasterType.?, CasterSrc.?, sClass.?, SplAttr.?, MaxSplAttr.?, CastInfini.? (currently only works for 0)
Code:
 
  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

Last edited by AndrewD2; June 21st, 2015 at 12:17 PM.
AndrewD2 is offline   #16 Reply With Quote
frumple
Senior Member
 
Join Date: Nov 2011
Location: South Riding, VA
Posts: 841

Old June 21st, 2015, 04:43 AM
That is awesome. I have been trying to figure something like this for the noble class for Freeport. I has strated to implement by making some specialized secondary classes.
frumple is offline   #17 Reply With Quote
AndrewD2
Senior Member
 
Join Date: Mar 2007
Location: Muskegon, MI
Posts: 2,975

Old June 21st, 2015, 05:54 AM
I spent 3 hours on the initial code alone just for getting 0, 1 level spells. I'll need to modify these for archetypes too. As I know of at least 2 archetypes I need to do this with. I might do it for feats too ...

EDIT: modified for archetypes

EDIT: I should probably do some work for secondary spells too

EDIT: So I modified it again, this time simplifying it. Instead of typing in the tags in the eval script, you just add them to the special and this script will move them to the class helper. It also makes some things simpler as you don't have to remember to assign Hero.Spellbook, or Hero.Arcane/Divine/Psychic/etc.

Last edited by AndrewD2; June 21st, 2015 at 12:20 PM.
AndrewD2 is offline   #18 Reply With Quote
wdmartin
Senior Member
 
Join Date: May 2013
Posts: 240

Old June 30th, 2015, 11:12 AM
Bump! Just wondering how this is coming along.
wdmartin is offline   #19 Reply With Quote
Kronicarn88
Junior Member
 
Join Date: Apr 2015
Posts: 24

Old July 4th, 2015, 04:20 PM
Also bump! Also wondering if this is going to be a go soon as I want to play test it.
Kronicarn88 is offline   #20 Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 03:38 AM.


Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.