• 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

Curiousity is getting the best of me...

I can't help it. I want to know what things are used for if they are accessible. The array of text called wDamageTbl, what is it used for? I thought it would be able to modify the actual damage listed in weapons, but it won't. That is generated strictly by the tag. And what exactly does No Attribute Damage mean?

Anyways, it's been a frustrating afternoon with HL, I've been working on the harder aspects of things, and meeting internal coding walls for things I really wish I had access to. Anyhow, does anyone know the answer to these questions? Thanks.
 
While viewing the weapon's fields, take a look at the various rows of wDamageTbl. Look at the value of wCurrEquip (a few items above wDamageTbl) - compare the row of wDamageTbl that corresponds to what wCurrEquip currently is with the damage that's actually printed - they'll be the same. wDamageTbl stores the final text that's been generated for the weapon's damage, for all the possible equip scenarios. Try different combinations of main hand, off-hand, both hands, and dual-wielding to watch wCurrEquip change.

To see the difference between the no attribute and normal versions of the damage, make sure your test character has a strength bonus to damage.
 
Duh, I was testing the attribute version of a normal 10 strength, brainless of me. I was actually thinking it was attribute damage (such as from a shadow). Brain lock.

As for the wCurrEquip, I knew that was tied to it, just because of the double weapons. However, the text determined wCurrEquip is still somehow overwritten afterwards. Thus, making the wDamageTbl array fields... uhm, unnecessary. Or am I missing something? I'm just assuming there is an internal piece of code that checks the values against the tags, and changes them back. Hmmm, gets me wondering about another approach...
 
Last edited:
Nah, that appproach didn't work either. Oh well, I'm just going to have to livename extra damage (which is what I was already doing, just thought I'd take a shot at adding the extra damage types, such as fire or acid, to the damage).
 
Yeah, I'm doing it at 500001, the table itself is filled in, I can see it when I open it in the debugger. However, the actual thing applied to the damage is strictly that damage dice. I've gone so far as to fill in every entry in the damage table, but still it doesn't change the damage for text, just puts the damage die in there and nothing else. My suspicion is that the table is filled out at 500000 and also output at 500000 to the damage text, thus my refilling the table in at 500001 is moot. Seems to be a timing issue that I can't interrupt. No biggie, it was just my attempt and doing something cool, and spending my afternoon vapor locked on it, when it just wasn't solvable. As a programmer, I always think there is a way to get something done, just doesn't seem to be a way in this case. Thanks for the info Mathias!

And still, I think I can crack this nut. Hard headed eh?
 
That's a familiar problem, the filled and output at the same time thing. In the community files there are several specials that replace the defaults specifically to split the timing up so there is a period in the middle to make changes.
 
Oh, I've replaced the table. I just can't do it with the necessary timing, thanks to the calculating and fetching happening at the same time. Now, I have started playing around with the Timing button, though I'm not sure what it does as yet. My attempts to put the table change between when it is filled out and when it is fetched from has met with failure. Currently pouring through some documentation to try and learn a bit more about the Timing button and how I can use it to fix this problem. Just got to understand how it's to be used.
 
Where is the timing button in the editor? Do you mean the Phase and Priority sections above eval scripts and such?
 
The timing button is located to the bottom left of the scripting window. It allows you to run your script within the same phase/priority in the order of your choosing. Unfortunately, as I'm finding out more and more, there is a stumbling block. I have to name the script I want to run after, and I can't because it is a Component.BaseWep script that I don't have access to. Sigh. Still trying.
 
That's not what the Timing button on the script window does.

It's so that if a script has been named (unfortunately, few of the scripts in d20 have been named), you can use the Timing to declare that this script must come before or after that named script in the phase/priority sequence.

All it will do is tell you if you made a mistake - it doesn't change the order of that script. It's designed to help during the process of building a new game system, and may not be as useful when adding content to a game system where you can't go into the structural files and alter the timing of the component scripts.

When creating a new game system, you'll often say "this can happen at phase X and priority Y", but later on, you find out that you need to know the result of that script earlier than you'd thought, or you find out it needs to run later, so you can incorporate something else - so, if you change the phase & priority of that script, a well set up network of before and afters will help you move around everything else that interacts with that script.
 
Ah, I see. Well, is there anyway to get scripts to run in a certain order? Currently I've got this running in Final/500000, but can't get the script between the BaseWep scripts

Component BaseWep: Eval Script #5 (this fills in the wDamageTbl).
Component BaseWep: Eval Script #6 (outputs the table damage indexed by wCurrEquip)
Thing rShadow: Eval Script #5 (this fills in the wDamageTbl with "1d6 Str" text)

I need it to script in the following order:

Component BaseWep: Eval Script #5
Thing rShadow: Eval Script #5
Component BaseWep: Eval Script #6

Any way to do that? Or to move Component BaseWep: Eval Script #6 to 500001?
 
If more than one script runs at the same phase & priority, you can't control what order Hero Lab will run them in.

Rather than changing the timing to allow a hacked version of the damage adds, I'd rather just add an additional damage field that Hero Lab will append to whatever damage text it's generated. There's no chance of getting enough time in my schedule to add that before Gen Con, I'm sorry to say.
 
No problem Mathias, appreciate all that you do. I'm willing to just livename it to the attack type, it's no biggie. This was just a flight of fancy. I've finally given up on it and started figuring out a new headache, heh. Getting the Enlarge Spell to correctly determine damage for thrown weapons. Which I got to work, in a hackish way. For the most part, I get HL to do the things I want, but every now and again, I get a wild hair to try to perfect something and realize why I gave up working on it the first time around. LOL. Thanks for all the help!
 
For enlarge, remember that even if you don't own it, you can open Pathfinder and look through its editor. I believe the Enlarge adjustment in Pathfinder is fully functional.
 
I've got it working. As for Pathfinder, I don't have the source file for it that I can tell. Just an empty folder.
 
Last edited:
Back
Top