Junior Member
Join Date: Jun 2008
Posts: 11
|
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. |
#1 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 8,232
|
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. |
#2 |
Junior Member
Join Date: Jun 2008
Posts: 11
|
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 |
#3 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 8,232
|
Quote:
Quote:
Quote:
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. |
|||
#4 |
Junior Member
Join Date: Jun 2008
Posts: 11
|
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. Code:
<unknown name="Check Hands"> <task name="Component Equippable: Eval Script #3"> </task> </unknown> Code:
Thing 'resAdvance' - Tab panel linkage 'advances' does not exist Bill Whitmore |
#5 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 8,232
|
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. |
#6 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 8,232
|
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" 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. |
#7 |
Junior Member
Join Date: Jun 2008
Posts: 11
|
Quote:
Quote:
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 |
||
#8 |
|
|