Junior Member
Join Date: Feb 2018
Posts: 14
|
Hey guys, I'm working on a parts file for a custom class/archetype I'm developing called the Studied Summoner. It's basically the Summoner that dumps the Eidolon and focuses on using the Spell-Like Ability Summon Monster ability.
I've got everything working the way I want except the spellbook (Renamed to a Grimoire for the Studied Summoner). Basically everything in the Herolab application is working fine for the Spellbook, but when I go to Print Preview, and use the Spellbook Full Descriptions or Spellbook Summaries, it shows completely blank with nothing to print. Obviously I'm missing a configuration somewhere, but I have no idea where I'm missing it. Here's a link to the custom parts file that I've developed. Any help or guidance is greatly appreciated. |
#1 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,213
|
I'm sorry, but at this time, the list of classes whose spellbooks will show up on that sheet is hard-coded, and cannot be expanded by users.
|
#2 |
Senior Member
Join Date: Oct 2011
Posts: 6,793
|
I seem to recall I helped a fellow make his own dossier for his spellbook casting class. Let me see if I can hunt that thread down.
|
#3 |
Junior Member
Join Date: Feb 2018
Posts: 14
|
So is it only coded for the Print Preview functionality, and if you actually printed it to like PDF or really printed it, would it work?
|
#4 |
Junior Member
Join Date: Feb 2018
Posts: 14
|
Welp, answered my own question. Neither works. Okay, so do I have any options for making this work, or am I SOL?
|
#5 |
Senior Member
Join Date: Oct 2011
Posts: 6,793
|
I was unable to find the previous time, but reproducing things wasn't that hard. Create a new .user file, open it up in a text editor, and paste in this between the "document signature" and "/document" elements.
Code:
<portal id="oSplBkTb2" style="outtable"> <output_table component="BaseSpell" showtemplate="osPick" showpicks="yes" varyheight="yes" showsortset="SpellOut"> <list><![CDATA[ Spellbook.? & !Helper.CustomItem & ((hero#Classes.StuSu_v1 & Spellbook.cHelpMMT) | Spellbook.PrayerBook | Spellbook.MeditaBook) & !Hide.Spell & !Helper.ActMythSpl ]]></list> </output_table> </portal> <layout id="oSpellboo2"> <portalref portal="oSplBkTb2"/> <position><![CDATA[ perform portal[oSplBkTb2].autoplace ]]></position> </layout> <sheet id="splbkdes2" name="Spellbook sheet, spillover2 (Description)" spillover="yes"> <layoutref layout="oSpellboo2" reference="left"/> <layoutref layout="oSpellboo2" reference="right"/> <layoutref layout="osBkHeader"/> <position><![CDATA[ ~ Set our global variable to 'output description' scenevalue[spellout] = 0 ~setup the gap to be used between the various sections of the character sheet autogap = 40 scenevalue[sectiongap] = autogap layout[osBkHeader].width = width perform layout[osBkHeader].render layout[left].top = layout[osBkHeader].bottom + 40 layout[right].top = layout[osBkHeader].bottom + 40 ~calculate the width of the two columns of the character sheet, leaving a ~suitable center gap between them var colwidth as number colwidth = (width - 50) / 2 ~output the layout on the lefthand side with whatever information will fit layout[left].width = colwidth layout[left].height = height - layout[left].top perform layout[left].render ~output the layout on the righthand side with whatever information will fit layout[right].width = colwidth layout[right].height = height - layout[right].top layout[right].left = width - colwidth perform layout[right].render ]]></position> </sheet> <sheet id="splbksum2" name="Spellbook sheet, spillover (Summary)" spillover="yes"> <layoutref layout="oSpellboo2" reference="left"/> <layoutref layout="oSpellboo2" reference="right"/> <layoutref layout="osBkHeader"/> <position><![CDATA[ ~ Set our global variable to 'output summaries' scenevalue[spellout] = 1 ~setup the gap to be used between the various sections of the character sheet autogap = 40 scenevalue[sectiongap] = autogap layout[osBkHeader].width = width perform layout[osBkHeader].render layout[left].top = layout[osBkHeader].bottom + 40 layout[right].top = layout[osBkHeader].bottom + 40 ~calculate the width of the two columns of the character sheet, leaving a ~suitable center gap between them var colwidth as number colwidth = (width - 50) / 2 ~output the layout on the lefthand side with whatever information will fit layout[left].width = colwidth layout[left].height = height - layout[left].top perform layout[left].render ~output the layout on the righthand side with whatever information will fit layout[right].width = colwidth layout[right].height = height - layout[right].top layout[right].left = width - colwidth perform layout[right].render ]]></position> </sheet> <!-- Various spellbook output formats --> <dossier id="splbkdes2" name="Spells in Spellbook (Custom Class) - Full Descriptions"> <dossier_sheet grouping="spellbook"> <live><![CDATA[ (Hero.Spellbook | HasBook.?) & !CharType.typArmy & !CharType.typKing ]]></live> <sheetref sheet="splbkdes2"/> </dossier_sheet> </dossier> <dossier id="splbksum2" name="Spells in Spellbook (Custom Class) - Summaries"> <dossier_sheet grouping="spellbook"> <live><![CDATA[ (Hero.Spellbook | HasBook.?) & !CharType.typArmy & !CharType.typKing ]]></live> <sheetref sheet="splbksum2"/> </dossier_sheet> </dossier> For example, if you wanted to add a class called "Taxman" with a Classes tag of "Classes.Taxman" and a unique ID of the class helper of "cHelpTax", you would change this: Code:
((hero#Classes.StuSu_v1 & Spellbook.cHelpMMT) | Spellbook.PrayerBook | Spellbook.MeditaBook) Code:
((hero#Classes.Taxman & Spellbook.cHelpTax) | (hero#Classes.StuSu_v1 & Spellbook.cHelpMMT) | Spellbook.PrayerBook | Spellbook.MeditaBook) |
#6 |
Junior Member
Join Date: Feb 2018
Posts: 14
|
Hey Aaron, thanks so much, looks like that fixed it. Rather than work with the Print Preview, looks like it creates a new category of "Spells in Spellbook (Custom Class) - Full Descriptions" that works like a charm.
One minor additional question I had, if you have time. If you look at my file, all the "Tags" have been generated by all the modifications I made, but I haven't gone in and actually assigned any Names or Abbreviations to those Tags. Does that matter at all? It doesn't seem to affect any of the functionality (thus far) for the file itself. |
#7 |
Senior Member
Volunteer Data File Contributor
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,729
|
Quote:
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. |
|
#8 |
Senior Member
Join Date: Oct 2011
Posts: 6,793
|
The only reason the names or abbreviations of a tag are important is if you plan to refer to them with "tagnames" or "tagabbrevs" functions, as in building some text from them. I don't think it will matter for most user's purposes, and many tags that are generated as identity tags automatically have their names set to the thing which creates them.
For example, Spellbook tags are identity tags which are generated by all class helpers. As soon as you create a new class helper for your Taxman class (unique ID cHelpTax) then it automatically creates the Spellbook.cHelpTax tag, which has the tag name attribute default to "Taxman". Sooo... probably not something you need to worry about. |
#9 |
Junior Member
Join Date: Feb 2018
Posts: 14
|
Thanks everyone, I think this has all worked out wonderfully and I appreciate everyone's help. Look forward to seeing the Studied Summoner in the upcoming adventure, Murder at Myrefall. We'll likely be adding the Herolab file to the DriveThruRPG Zip for use (As an NPC in the module will be a Studied Summoner).
|
#10 |
|
|