Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Authoring Kit
Register FAQ Community Today's Posts Search

Notices

Reply
 
Thread Tools Display Modes
dragon
Junior Member
 
Join Date: Jun 2008
Posts: 11

Old November 9th, 2009, 02:59 PM
I have been working with the skeleton files for a few weeks now and it has been great to help learn how the Hero Labs system works, however it has been a real headache to try to modify them to my needs.

Every time I try to effect some change, the program explodes with errors as multiple references can no longer find the original code. This means more time is spent tracking down extraneous errors generated from features I don't even want, but they can't just be deleted wholesale because they are in turn referenced in some other file that is required by HL.

What I would like would be a completely empty skeleton with only the most basic files required by HL to compile that I can then build the system upon. Then I can pick, pull and modify the basic building blocks I need without the entire structure collapsing on me.

Thanks,

Bill Whitmore

Last edited by dragon; November 13th, 2009 at 02:07 AM.
dragon is offline   #1 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old November 9th, 2009, 05:03 PM
The first stuff to rip out would be all output-related mechanisms. This means deleting the various sheet files and the statblock output. Those don't rely on anything else, so deleting them first - or simply stripping out their content - is where I'd start.

The next stuff to rip out would be all the panels and the visual elements they rely upon. You'll need at least one panel to get HL to compile and load, but you can rip out all the layouts, templates, and portals safely - resulting in a single empty panel.

Most of the issues you'll run into when stripping the Skeleton files down are due to the various things defined in those files. The first thing to do would be to delete most of the things, one at a time, with a re-compile after each is deleted.

Some of the things are referenced in validation scripts and other places that you don't seem to want, so that's why I recommend deleting the things one at a time. When errors crop up from a thing being deleted, you ought to be able to quickly locate them and rip them out.

Given the nature of the game, you can delete the advancements logic. All of that logic is encapsulated in the various forms controlling advancement and the structure file that contains all the components and compsets used with advancement. It's possible that you'll run into a few issues when you delete the structure file (I can't remember for sure if there are any), but you should be able to quickly delete any scripts where that info is referenced.

Beyond that, I can't think of anything else that you'll want to rip out. Virtually all of the components and compsets will be quite useful to you. There may be a few exceptions, but there is no harm in keeping a few extra components lying around that you aren't using. They certainly won't complicate things for you.

Hope this helps....

Last edited by rob; November 13th, 2009 at 04:35 AM.
rob is offline   #2 Reply With Quote
dragon
Junior Member
 
Join Date: Jun 2008
Posts: 11

Old November 13th, 2009, 04:44 AM
I was able to remove out_statblock.dat without any problems. Deleting the 3 sheet files (sheet_standard1.dat, sheet_standard2.dat, and sheet_journal.dat) generated errors which I eventually tracked to dossiers.dat. I looked through dossiers.dat and it appears to just be part of the character sheet output.

When I deleted all of those, the various print and hero summaries under File were disabled, but everything else seems to be working. This is fine for my current purposes. I'll come back and add character sheet and stat block options once everything else is in place.

I have modified tab_basics.dat and the only errors I had were from the "valCP" script in thing_validate.dat which I don't need at all for my project, so I removed it with no problems. I did find that if I try to remove all of the validation scripts, HL generates a warning when I compile but it runs fine. I'll continue to remove or modify these validation scripts as required until I find which one is causing this warning.

Lastly, when I tried removing the advancement tab there was a panellink buried in thing_miscellaneous.dat that was causing errors which took me a while to track down, but I did eventually find it.

Thanks for the help. I have been modifying the Basics panel for my purposes and it is nice that I can finally change the name on the panel without everything exploding on me.

Bill Whitmore
dragon is offline   #3 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old November 13th, 2009, 04:53 AM
Quote:
Originally Posted by dragon View Post
I looked through dossiers.dat and it appears to just be part of the character sheet output.
Yep, I forgot about that file. It's the "control" file for all the different sheet output options, so it needs to be deleted along with the other stuff.

Quote:
Originally Posted by dragon View Post
I did find that if I try to remove all of the validation scripts, HL generates a warning when I compile but it runs fine. I'll continue to remove or modify these validation scripts as required until I find which one is causing this warning.
The error message ought to be giving you useful information that should help you to isolate the source of the problem. You shouldn't need to experiment to accomplish this. What is the error the HL is reporting?

Quote:
Originally Posted by dragon View Post
Lastly, when I tried removing the advancement tab there was a panellink buried in thing_miscellaneous.dat that was causing errors which took me a while to track down, but I did eventually find it.
Again, the error message should have made it reasonably quick to locate the source of the error. What was the error shown?

I'd like to better understand things so that we can improve the error reporting. The errors should be reasonably helpful and it sounds like they aren't.
rob is offline   #4 Reply With Quote
dragon
Junior Member
 
Join Date: Jun 2008
Posts: 11

Old November 13th, 2009, 06:07 AM
After removing all of the validate scripts the error is:

Code:
Hero Labs is loading the data files, but the following warnings were reported:

One or more timing errors were identified.  Please review the timing report and correct
the errors.  You can access the report un the 'Develop' menu or by clicking this link.
I am not sure exactly how to read the timing report yet, but it would seem that removing "Check Hands" caused some warning as it is listed under unknowns. At a guess I would say something is trying to evaluate before or after "Check Hands" but I can't say where exactly since I don't know in which file "Component Equippable" is located.
Code:
<unknown name="Check Hands">
   <task name="Component Equippable: Eval Script #3">
   </task>
</unknown>
In the case of the panellink, the error was:
Code:
Thing 'resAdvance' - Tab panel linkage 'advances' does not exist
The problem again is there is nothing that indicates in which file "resAdvance" resides. Had I remembered at the time that "res" means "resource" and that resources were defined in thing_miscellaneous.dat I may have found it faster, but I didn't. So I was looking at 30+ .dat files any of which might have contained this panellink. Luckily by starting with the thing_***.dat files, I was able to find it relatively quickly, but I still sifted through about 6 or 7 files before I happened upon it.

Bill Whitmore
dragon is offline   #5 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old November 13th, 2009, 01:02 PM
First, let's take a look at the timing error. All of the various scripts have a timing assigned to them. This enables you to control what scripts are evaluated in what order, which is critical to ensuring everything happens in the proper order for the game rules.

As your data files evolve, you'll have lots of different scripts and their relative timings can become complex to manage. This is further compounded if you discover that you need to change the timing of a particular script to handle a rule you initially overlooked or some new mechanic introduce in a supplement. Changing the timing of one script often entails changing the timing of other scripts that have dependency relationships with it. And this has a domino effect, which can often lead to errors that are difficult to track down. To help avoid timing errors like this, the compiler generates the timing report.

You can also specifically designate that script X must occur before/after script Y. The compiler verifies all these relationships and includes any errors at the top of the report. If you change the timing of script X and script Y must always occur after it, the timing change could break that requirement, which will then be reported. The same error occurs if you delete script X, since the dependency can no longer be verified.

All timing errors will be found at the top of the timing report. Viewing the timing report is simply a matter of clicking on the link within the error message. For each error, the name assigned to the script and its context are provided. As such you should be able to do a simple search across all the data files for the game system, looking for the name of the script with the error in it. If you are using an editor that is even a half-notch better than Notepad, it should provide searching across multiple files. So just do a quick search and you'll find the source of the error in a matter of seconds.
rob is offline   #6 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old November 13th, 2009, 01:09 PM
For the panellink error, the message gives you everything you need to instantly find the problem, assuming your editor allows you to search across multiple files. You are given the name of the thing, which can be quickly searched for. You can also key on the panel linkage, which will always have the contents below, based on the error message:
Code:
panellink="advances"
Since the id of the resource will probably be used in multiple places, but the panel linkage will only be used in a couple, it might be faster to just search for the panel linkage. Again, this relies on having a decent editor for mucking with the data files.

If your editor does not support searching across multiple files, it will negatively impact your ability to write data files, so I recommend you explore other tools with this feature. There are a number of goods tools available freely, and we've identified a few of them at the start of the Wiki documentation.
rob is offline   #7 Reply With Quote
dragon
Junior Member
 
Join Date: Jun 2008
Posts: 11

Old November 13th, 2009, 02:06 PM
Quote:
Originally Posted by rob View Post
First, let's take a look at the timing error. All of the various scripts have a timing assigned to them. This enables you to control what scripts are evaluated in what order, which is critical to ensuring everything happens in the proper order for the game rules.

...
I understand the need for the timing rules, but since my focus so far has been stripping out what I don't need, I haven't needed to worry about it before now. I can already see the timing report may be a godsend when it comes time to debug later.

Quote:
Originally Posted by rob View Post
If your editor does not support searching across multiple files, it will negatively impact your ability to write data files, so I recommend you explore other tools with this feature. There are a number of goods tools available freely, and we've identified a few of them at the start of the Wiki documentation.
I have been using XML Marker which I found through the wiki. I rather like it for its speed and simplicity, but if there is a way to have it search through multiple files, I haven't found it.

Another XML editor I have is one called Crimson Editor which I found from a google search a while back. I actually don't like the editor as much, but I just found out it does have a "Find in Files..." feature.

Looks like I'll need to keep both around.

Bill Whitmore
dragon is offline   #8 Reply With Quote
Reply


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 05:47 AM.


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