Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - d20 System

Notices

Reply
 
Thread Tools Display Modes
CptCoots
Senior Member
 
Join Date: Apr 2013
Location: Poughkeepsie, NY
Posts: 102

Old January 19th, 2016, 09:01 AM
So I know this is a problem with a great amount of history but the wMain.xdy_z tags are tricky (at least for me), and authoring custom dice seems to me to be out of my reach (unless you can show me how to in a straightforward manner - doesn't have to be easy just straightforward).

A little background on what I'm doing, I'm almost done implementing the Revised Core Rulebook for Star Wars d20 in the standard d20 setting (I made a copy of the 3.5 game system so I could completely screw with it without worry while I was building). A sticking point is the Martial Arts, Improved Martial Arts, and Advanced Martial Arts feat progression. Specifically, the damage progression.

Long story short MA->IMA->AMA gives Medium characters unarmed strike damage of 1d4->2d4->3d4 (Small get 1d3->2d3->3d3 and Large get 1d6->2d6->3d6). Now if you've messed around with d20 sizes, monk class in Hero Lab, or any other sort of natural attack fiasco then you know
a) those aren't the typical size progressions
b) there are no system tags for 2d3, 3d3, 3d4, and 3d6.

I can circumvent a) but b) is a real pisser. Anyone know how to write my own damage tags?

This is the logic behind my script that is in the Martial Arts Feat:
Post-Levels 5000
~ Get our unarmed strike pick, delete the damage tag from it, and assign
~a new damage tag.
var result as number
var dice as string
result = hero.child[wUnarmed].delete[wMain.?]

~need to find out which feats are on, namely look for HasFeat.fImMA and .fAdMA and what size we are!

if (hero.tagcount[Size.Medium]<>0) then
if (hero.tagcount[HasFeat.fAdMA]<>0) then
~commented because these break.
~perform hero.child[wUnarmed].assign[wMain.3d4_X]
~dice = "3d4"
elseif (hero.tagcount[HasFeat.fImMA]<>0) then
perform hero.child[wUnarmed].assign[wMain.2d4_6]
dice = "2d4"
else
perform hero.child[wUnarmed].assign[wMain.1d4_4]
dice = "1d4"
endif
elseif (hero.tagcount[Size.Small]<>0) then
BLAH BLAH BLAH
endif

field[livename].text = field[name].text & " (" & dice & ")"
CptCoots is offline   #1 Reply With Quote
Aaron
Senior Member
Lone Wolf Staff
 
Join Date: Oct 2011
Posts: 6,791

Old January 19th, 2016, 12:02 PM
I think what needs to happen here is the wMain tag group needs to be set as dynamic, so you can make a dummy item with your new tags. Main problem is that the existing logic for "what happens when damage is bumped up by size or other effect" might not react well to seeing tags it doesn't recognize. Either it will do nothing (so size changes and similar have no effect), or it will shove the result into an existing advancement track (in which case you'd have to create special scripts to counteract that somehow). I believe there is a tag for "weapon damage does not change with size", and that might be helpful. In any case, it's a matter which requires further study, and I'll point ShadowChemosh at this thread for hopefully an update in the next release.
Aaron is offline   #2 Reply With Quote
ShadowChemosh
Senior Member
Volunteer Data File Contributor
 
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,727

Old January 19th, 2016, 12:40 PM
Why I can make the change to wMain very easily the issue comes in that the change must be tested. Will it break anything else and will d20 toss any component errors when it finds "randomly" made wMain tags. Which takes time to do because if any "errors" happen because of these Dynamic tags it will be expected that it gets fixed. That is all time that I could be using to fix or add still missing features of d20 D&D. To support support something that d20 is not really configured at this time to support. I am not sure Sendric and many others would agree with me doing that actually. I know many still want to see "Gods" in d20.

As a volunteer my time is very limited and I have to weigh changes and fixes against how many will benefit. I know that sucks right now but its where we are at. I will add this to the "to-do" list along with the ability to maybe support d20 modern and stuff. Its just going to be down the road a little.

If you want to be able to take total control of the value displayed I recommend looking at wFixDamage field. That is text field that whatever you put in it will get displayed for damage. But it does mean you will also have logic to add in other values like Str and Magic bonuses. But you can then display "any" value you fill like.

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.
ShadowChemosh is offline   #3 Reply With Quote
CptCoots
Senior Member
 
Join Date: Apr 2013
Location: Poughkeepsie, NY
Posts: 102

Old January 19th, 2016, 03:53 PM
Quote:
Originally Posted by ShadowChemosh View Post
If you want to be able to take total control of the value displayed I recommend looking at wFixDamage field. That is text field that whatever you put in it will get displayed for damage. But it does mean you will also have logic to add in other values like Str and Magic bonuses. But you can then display "any" value you fill like.
I'm going to play around with this then. I know it would involve a HUGE (read impossible) overhaul but it would have been nice to impliment damage as a number of dice and the side of those dice sort of thing (i.e. two number fields on the pick) rather than a single block defining the damage. That way it could be abstracted to two arrays of numbers so things like 2d6+1d3+1d4 are natural.
CptCoots is offline   #4 Reply With Quote
ShadowChemosh
Senior Member
Volunteer Data File Contributor
 
Join Date: Jan 2010
Location: Chicago, IL (USA)
Posts: 10,727

Old January 20th, 2016, 11:08 AM
Quote:
Originally Posted by CptCoots View Post
I'm going to play around with this then. I know it would involve a HUGE (read impossible) overhaul but it would have been nice to impliment damage as a number of dice and the side of those dice sort of thing (i.e. two number fields on the pick) rather than a single block defining the damage. That way it could be abstracted to two arrays of numbers so things like 2d6+1d3+1d4 are natural.
So your comments made me think about a feature that is coming "soon" that maybe helpful for you. I am going to be adding in Pathfinders "extra damage" logic. Normally its made for Sneak Attack Dice or Flaming weapon. So that a Longsword would display as 1d8 plus 1d6 Fire. But the "plus 1d6 fire" is set by a script. Meaning that you will "soon" be able to easily display 2d6+1d3+1d4 for damage.

Along that same thinking when I am in that "area" of weapons making the above change. I will look at how hard it will be to break the "dice" values of the "main" weapon down into two Variables. Variables that can be changed at say "Final/100+" or something. So in example for a Greatsword 2d6 we would have "wNumDice" holding 2 and "wDiceSize" holding 6. I should be able to allow a script timing "window" where those values can be changed before I display them in the UI.

Please note that "Soon" means many months still but needing to add the "extra damage" logic is bubbling to the top of the list.

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.
ShadowChemosh is offline   #5 Reply With Quote
CptCoots
Senior Member
 
Join Date: Apr 2013
Location: Poughkeepsie, NY
Posts: 102

Old January 21st, 2016, 06:59 AM
Quote:
Originally Posted by ShadowChemosh View Post
Along that same thinking when I am in that "area" of weapons making the above change. I will look at how hard it will be to break the "dice" values of the "main" weapon down into two Variables. Variables that can be changed at say "Final/100+" or something. So in example for a Greatsword 2d6 we would have "wNumDice" holding 2 and "wDiceSize" holding 6. I should be able to allow a script timing "window" where those values can be changed before I display them in the UI.[/I][/B]
Squeee! The only thing I can see this screwing up would be when you evoke a size change. I say this because a d6 doesn't always become a d8. These are the easy rules (forget that 1d12 makes no appearance):
1d2 -> 1d3
1d3 -> 1d4
1d4 -> 1d6
1d6 -> 1d8
1d8 -> 2d6
1d10 ->2d8

The dumb arises from
2d6 -> 3d6
2d8 -> 3d8

So how would we do 2d3? Or 5d6? Are the obvious answers 2d4 and 5d8 (what about 3d6+3d8 or 6d6+1d8)? Tricky dicky.

I can help author the logic behind die changes not covered in the srd20 (I'm a PhD Mathematician) in such a way as to preserve the probabilistic ideas contained within the known charts.
CptCoots is offline   #6 Reply With Quote
porl
Junior Member
 
Join Date: Apr 2018
Posts: 17

Old May 6th, 2018, 07:17 PM
I know this is an old thread, but I'm currently trying to make a custom small weapon to match something from our campaign. Unfortunately it deals 2d3 + str damage, so I'm hitting the same problem as the OP.
porl is offline   #7 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 2,888

Old May 7th, 2018, 03:31 AM
Quote:
Originally Posted by porl View Post
I know this is an old thread, but I'm currently trying to make a custom small weapon to match something from our campaign. Unfortunately it deals 2d3 + str damage, so I'm hitting the same problem as the OP.
Yea, unfortunately, there's still no 2d3 tag to my knowledge. If you don't need to worry about size adjustments too much, you can use the wFixDamage field to set the damage. You would need to use a script to set the bonus Str damage which would have to account for when the weapon is being held in the off-hand. That's not too difficult, though.

Alternatively, if you do need to worry about adjusting for size or don't want to worry about scripting, you could just give it the 1d6 tag and make a note in the weapon description or summary that it's really 2d3.
Sendric is offline   #8 Reply With Quote
porl
Junior Member
 
Join Date: Apr 2018
Posts: 17

Old May 7th, 2018, 03:13 PM
Thanks Sendric. I guess I'll just keep it in the description for now.
porl is offline   #9 Reply With Quote
porl
Junior Member
 
Join Date: Apr 2018
Posts: 17

Old June 17th, 2018, 09:38 PM
Hi Sendric
I've been playing around with Hero Lab a bit since last post, but coming back to this I'd like to do better than my "note to myself".

With the wFixDamage field, is there any way I can get the current value and modify it? Eg. it currently says 1d6 + 8 so I take that, use some scripting to get 2d3 + 8.

The reason I ask is that not only do I have to make the script add any magic damage etc. but we have some custom feats (a dex-to-damage one for starters) and I'm not confident I'll catch every edge case. If I could just "read" the current value and then build from there it would help a lot. Even if it is just a hacky "remove the first three characters" it will do for now (though could obviously have its own issues too).
porl is offline   #10 Reply With Quote
Reply

Thread Tools
Display Modes

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 07:31 AM.


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