Senior Member
Join Date: Sep 2007
Posts: 136
|
The back end data they have stated will be the same. Now the editor that makes that data may be different since the UI and engine that uses that data will be different.
Paul "Yes that Paul" Grosse PCGen BoD - PR Silverback Forums: Nylanfs (or Nylan) Hero Lab Shadowrun 4E & 5e user |
#81 |
Senior Member
Join Date: Dec 2011
Posts: 100
|
What are some examples of UI scripts? I have several custom data files for each campaign I've played in, ranging from items and feats, to a complex class/template addition to add an extra tab for structure without a class. Other then tricking the system into adding the extra class tab I don't think I have anything that affects the UI, but I've been wrong before. I had to rebuild most of my data files after v5 and I would prefer to isolate potential problems early this time.
|
#82 |
Senior Member
Volunteer Data File Contributor
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,729
|
Quote:
I am talking about custom UI created outside of the HL editor using raw XML in a text file: Code:
<?xml version="1.0" encoding="UTF-8"?> <document signature="Hero Lab Data"> <!-- Created by: Tim Shadow Date: December 5, 2016 This is a community created sheet. --> <!-- Generate the text for a Maneuvers title label on the Manuevers printout --> <procedure id="PoWManLbl" scripttype="label"><![CDATA[ var level as number var desc as string @text &= hero.actorname & " - Level " & level & " " & desc ]]></procedure> <!-- NOTE: The global variable pwmanout can have the following values: 0 - output full descriptions 1 - output summaries --> <!-- Manuever lists --> <portal id="oManTbl" style="outtable"> <output_table component="PWManuever" showtemplate="oManPick" showpicks="yes" varyheight="yes" showsortset="SpellOut"> <list><![CDATA[ PathOfWar.Manuever & !Helper.Obsolete & !Helper.Helper ]]></list> </output_table> </portal> <!-- Stances lists --> <portal id="oStanceTbl" style="outtable"> <output_table component="PWManuever" showtemplate="oManPick" showpicks="yes" varyheight="yes" showsortset="SpellOut"> <list><![CDATA[ PathOfWar.Stance & !Helper.Obsolete & !Helper.Helper ]]></list> </output_table> </portal> <!-- Manuever and Stances Header --> <template id="omHeader" name="Manuever and Stances Display Header" compset="Totals"> <portal id="text" style="oNormal"> <output_label> <labeltext><![CDATA[ foreach pick in hero from PWManList @text = splice(@text,eachpick.field[name].text & " " & eachpick.field[cIL].value," / ") nexteach @text = splice(hero.actorname,@text,", ") ~& " " & chr(150) & " Maneuvers" ]]></labeltext> </output_label> </portal> <position><![CDATA[ perform portal[text].centerhorz height = portal[text].height ]]></position> </template> <!-- Maneuvers and Stances pick --> <template id="oManPick" name="Output Maneuvers and Stances Table" compset="PWManuever"> <portal id="mName" style="oSplTitle"> <output_label> <labeltext><![CDATA[ @text = "{align left}{horz 15}" & tagnames[Ability.?] & " (" & tagnames[ClsCountAs.?] & ")" ]]></labeltext> </output_label> </portal> <portal id="mLevel" style="oSplTitle"> <output_label> <labeltext><![CDATA[ @text = tagnames[mLevel.?] ]]></labeltext> </output_label> </portal> <portal id="mText" style="oSmall"> <output_label> <labeltext><![CDATA[ ~ TODO: Update this to use the new PWManSumm procedure once ~ we are not updating the Thing text. @text = field[descript].text ]]></labeltext> </output_label> </portal> <portal id="mSummary" style="oSmall"> <output_label> <labeltext><![CDATA[ @text = field[abSumm].text ]]></labeltext> </output_label> </portal> <position><![CDATA[ ~ The level portal has centered text, so by adding twice the padding we ~ want, we get a small gap at it's right-hand side, so that the number ~ doesn't bump right against the edge of the grey section. ~ The name accomplishes the same thing with a horz element, but the level ~ seems to be ignoring horz's and spaces at the end of the text portal[mLevel].width += 30 portal[mName].width = width - portal[mLevel].width perform portal[mLevel].alignedge[right,0] if (scenevalue[pwmanout] = 1) then portal[mSummary].width = width perform portal[mSummary].autoheight perform portal[mSummary].alignrel[ttob,mName,10] height = portal[mSummary].bottom + 30 portal[mText].visible = 0 else portal[mText].width = width perform portal[mText].autoheight perform portal[mText].alignrel[ttob,mName,10] height = portal[mText].bottom + 30 portal[mSummary].visible = 0 endif ]]></position> </template> <layout id="oManeuvers"> <portalref portal="oManTbl"/> <portalref portal="oStanceTbl"/> <position><![CDATA[ perform portal[oManTbl].autoplace perform portal[oStanceTbl].autoplace ]]></position> </layout> <layout id="omHeader"> <templateref template="omHeader" thing="Totals" ispick="yes"/> <position><![CDATA[ template[omHeader].width = width perform template[omHeader].render height = template[omHeader].bottom ]]></position> </layout> <sheet id="shPWManDes" name="Maneuvers Sheet (Description)" spillover="yes"> <layoutref layout="oManeuvers" reference="left"/> <layoutref layout="oManeuvers" reference="right"/> <layoutref layout="omHeader"/> <position><![CDATA[ ~ Set our global variable to 'output description' scenevalue[pwmanout] = 0 ~ Setup the gap to be used between the various sections of the character sheet autogap = 40 scenevalue[sectiongap] = autogap layout[omHeader].width = width perform layout[omHeader].render layout[left].top = layout[omHeader].bottom + 40 layout[right].top = layout[omHeader].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="shPWManSum" name="Maneuvers Sheet (Summaries)" spillover="yes"> <layoutref layout="oManeuvers" reference="left"/> <layoutref layout="oManeuvers" reference="right"/> <layoutref layout="omHeader"/> <position><![CDATA[ ~ Set our global variable to 'output summaries' scenevalue[pwmanout] = 1 ~setup the gap to be used between the various sections of the character sheet autogap = 40 scenevalue[sectiongap] = autogap layout[omHeader].width = width perform layout[omHeader].render layout[left].top = layout[omHeader].bottom + 40 layout[right].top = layout[omHeader].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> </document> One of the reasons I have been holding off doing a big fix for Path of War is I am hoping to only have to write the new UI tab one time. Trust me when I say you will remember writing UI for HLC because well it SUCKS! I love HL but the UI scripts are really PITA to work with. 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. |
|
#83 |
Senior Member
Join Date: May 2017
Posts: 135
|
Quote:
Here's a quick, rough idea of the kind of thing it will look like. All subject to change, some of the stuff here isn't what we're currently doing, etc, but this is generally similar to what the current UI templates for HLO look like. Code:
// locales/en-US/maneuvers.json { "oManTbl": "Maneuvers", "oStanceTbl": "Stances" } // templates/manuevers.xml <?xml version="1.0" encoding="UTF-8"?> <LayoutContainer> <Iterate tagGroup="PWManList"> <Text align="center"> {~livename} {~textKey oManTbl} ({~field cIL}) </Text> <LayoutContainer direction="horizontal"> <Iterate tableIds="oManTbl, oStanceTbl"> <SheetTable groupByTag="sLevel"> <template:item> <TableCell align="left"> {~tags Ability} ({~tags ClsCountAs}) </TableCell> <TableCell>{~tags mLevel}</TableCell> <TableCell>{~field abSumm}</TableCell> </template:item> </SheetTable> </Iterate> </LayoutContainer> </Iterate> </LayoutContainer> The idea is to have something with easy text handling, declarative- rather than imperative-oriented, with minimal hassle dealing with loops and tables, and with anything beyond minimal layout control neither allowed nor needed (because of the need to reflow everything to fit on different screen sizes). Last edited by Ian; December 24th, 2017 at 06:03 PM. |
|
#84 |
Senior Member
Volunteer Data File Contributor
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,729
|
Quote:
Quote:
Thanks! The above looks much more like normal HTML in many ways which would make doing the UI stuff allot faster/easier for me. Maybe I won't wait and will do the stuff now..... Appreciate the info... 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. |
||
#85 |
Senior Member
Join Date: May 2017
Posts: 135
|
There's an extremely distant chance it might happen someday, but the basic limitations of web stuff (layout on extremely varying screen sizes, the language in use, etc) mean that all the internals of what we're doing for the web UI are hugely, drastically different in every way from the internals of the desktop UI.
|
#86 |
Junior Member
Join Date: Jul 2018
Posts: 2
|
I am new to Hero Lab and I am very curious as to which version I should get. It sounds almost like I would need to get a version that is purely for online use to be able to do anything with it. I am not always able to be online though— that or just not being in the mood to be— so is there a version I can use that has full functionality offline or what?
|
#87 |
Senior Member
Join Date: Jan 2013
Location: Rochester, MN
Posts: 1,518
|
Quote:
|
|
#88 |
Junior Member
Join Date: Jul 2018
Posts: 2
|
|
#89 |
Senior Member
Join Date: Mar 2013
Location: Greater London, UK
Posts: 2,623
|
If you want Pathfinder 2nd edition playtest/beta, that'll be Online soon(ish).
Farling Author of the Realm Works Import tool, Realm Works Output tool and Realm Works to Foundry module Donations gratefully received via Patreon, Ko-Fi or Paypal |
#90 |
|
|