• 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

Spellbook Print Preview Blank

Korlac

Member
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.
 
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.
 
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.
 
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?
 
Welp, answered my own question. Neither works. Okay, so do I have any options for making this work, or am I SOL?
 
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>

Now, what controls the spells which show here is the <list> expression in the oSplBkTb2 portal. I used your Studied summoner file and filled in the default for that class above. If you want to expand it for future classes you'll be appending to the Classes.??? and Spellbook.??? sections in that tag expression.

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)

to this:

Code:
((hero#Classes.Taxman & Spellbook.cHelpTax) | (hero#Classes.StuSu_v1 & Spellbook.cHelpMMT) | Spellbook.PrayerBook | Spellbook.MeditaBook)

Hope that helps!
 
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.
 
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.
The only time you want to provide Names/Abbr for tags is if your creating NEW ones in the "Custom.?" group. Otherwise really should leave them off/remove them. Most of the time HL will just ignore what you type in for tags created by LW but its best to not have them.
 
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.
 
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).
 
Back
Top