Lone Wolf Development Forums  

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

Notices

Reply
 
Thread Tools Display Modes
mirtos
Senior Member
 
Join Date: Oct 2011
Posts: 865

Old March 8th, 2014, 08:13 PM
i was able to bootstrap the shield bash to normal shields, but when i create a custom weapon and use the shield as the base "armor", the bootstrap doesnt work.

thoughts?
mirtos is offline   #11 Reply With Quote
Kendall-DM
Spy
 
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220

Old March 8th, 2014, 11:07 PM
I assume you mean custom armor, not a custom weapon, correct?

Are you making this from the HeroLab Editor, or just making a custom item from within the custom/masterwork framework of HeroLab itself?
Kendall-DM is offline   #12 Reply With Quote
mirtos
Senior Member
 
Join Date: Oct 2011
Posts: 865

Old March 9th, 2014, 08:00 AM
yes, you are correct i meant a custom armor, within the custom/masterwork framework of herolab itself.

Also some other things that i was wondering about (assuming you can get the magical shield part to work)

1. Any idea how to get "bashing to work" (which increases the damage two sizes)
2. Any idea how to allow someone to custom the shield to be a weapon? (since you're supposed to be allowed to enchant the shield as a weapon.... im starting to wonder if the real thing im interested in is getting shield spikes to work.. as that seems closer, but im not sure...

thoughts?

Last edited by mirtos; March 9th, 2014 at 08:29 AM.
mirtos is offline   #13 Reply With Quote
Kendall-DM
Spy
 
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220

Old March 9th, 2014, 09:44 AM
I've completed that whole process, from shield spikes to magical enhancement to bashing with a shield. But before I get into the task you have ahead of you, I need to clarify a few things. I'm assuming the following steps are correct:

1. You created new normal weapons in the Editor called Shield Bash.
2. You copied each of your shields in the Editor with Replaces Thing Id set to the old Id (the one you have copied from).
3. You've bootstrapped each shield with the Shield Bash.

If you have done this, you should be seeing Shield Bash on your weapons tab when you have a shield equipped to the character. Assuming this is what you have done thus far.

I've left out some steps here purposely. When I put the code above for shield bashing (and using Improved Shield Bash), it was incomplete. That is on purpose, because it was meant as a starting point since what I have implemented is complex and is not easily explained. However, I will help you just to get your Shield Bash working right.

So, in the Shield Bash you have created in the Editor, set your Damage Dice to 1d3, Proficiency Required to Martial, Class to Light, Category to Melee Weapon, Critical Hit Target to 20, Critical Hit Multiplier to 2, Damage Type to Bludgeoning, check the Weapon Finesse Applies, and check Don't Allow Selection. Then add the following code at Pre-Levels/10000.

Code:
~ If we are a heavy shield, we do 1d4 damage and one handed.
if (container.tagis[ShldClass.Heavy] <> 0) then
  perform delete[wMain.?]
  perform delete[wClass.?]
  perform delete[Helper.Finesse]
  perform assign[wMain.1d4_4]
  perform assign[wClass.OneHanded]
endif
This should now take care of light shields vs. heavy shields damage appropriately, which is what I think you mean by getting "bashing to work".

You can use a shield as a weapon to shield bash, but a shield is not a weapon by itself per se. Therefore, a shield bash is a shield bash, regardless of the enhancement on the shield itself. you can't use the shield enhancement bonus as a weapon enhancement bonus. If the shield is to be 'weaponized' itself, you have to add shield spikes, and enchant them separately, which is whole other can of worms.

Let's just get the shield bash working, and if you really want to get shield spikes working I'll help with that too. Shield spikes are broke currently in the d20 files, they don't work when enchanted or set to masterwork (they just error). I've made a workaround for that, but it is quite involved. So shield bash first.
Kendall-DM is offline   #14 Reply With Quote
mirtos
Senior Member
 
Join Date: Oct 2011
Posts: 865

Old March 9th, 2014, 11:39 AM
For your 1,2,3 questions: yes.

I actually did the damage as a bootstrap tag (that was the example that I was provided) I can change it to not be done in the bootstrap tag, but be part of the eval script you are mentioning.

What I was referring to was being able to create a masterwork/custom magic item (not through the editor, through the normal hero lab), and make it also have the shield bash available. Its only available in "Other Armor" and not "Custom, Magic, and Masterwork".

When I say "get Bashing" to work, I was referring to the special ability, bashing (a +2 modifier) which steps up the bashing damage by two sizes (light become 1d6, and heavy 1d8)

But the real issue is that shield bash only works for the non-custom/masterwork ones.

As an aside, for what its worth, by d20 rules, you can weaponize a shield without adding spikes. I just dont know if hero lab allows for it.

Last edited by mirtos; March 9th, 2014 at 11:51 AM.
mirtos is offline   #15 Reply With Quote
Kendall-DM
Spy
 
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220

Old March 9th, 2014, 02:06 PM
Even with the bootstrap tag, you can do the same thing, delete the old tag, add the new one. But I digress.

When I create a "Custom, Magic, and Masterwork" shield, I still have the Shield Bash listed in my weapons tab once I add it to the character. So I'm not sure what you are doing differently than what I am doing. I'm essentially doing what I laid out above.

Bashing, as in the magical enhancement, that would have been good to mention. Got it now. You should be able to set that Shield Bash's damage up one. Here is some simple code as an example.
Code:
container.parent.childexists[wShldBash].field[wDamage].value += 1
This will increase the shield bash up another die. So Bashing would have to have a new version made to replace the old one with something like this scripted. As for how to get it to apply to the Shield Bash, there is some parent child relationship that I don't know right off the top of my head, so I'm not sure I have that 100% right, but it gets you going in the right direction.

And you're right, you can weaponize a shield outside of the spikes, by enchanting the shield as a weapon (in addition to enchanting it separately as a shield). I don't allow it in my game, which is why I was confused. My bad.

Anyhow, the probable reason you are not getting your Shield Bash to work with custom items is that each item is a container, and the only way to access things bootstrapped to a container is to refer to the container's parent or child or gizmo. Yeah, it's about as clear as mud, but that is usually the culprit when things appear on regular items but not on custom items. Unfortunately, I really don't know how you are implementing everything to give you the appropriate steps to rectify the problem.
Kendall-DM is offline   #16 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 3,144

Old March 9th, 2014, 05:01 PM
Is there something you can add to the community data files, Kendall? I had started something, but its only about half finished so far. I'd like to be able to have it available for the next release.
Sendric is offline   #17 Reply With Quote
mirtos
Senior Member
 
Join Date: Oct 2011
Posts: 865

Old March 9th, 2014, 06:26 PM
I could email you, or even PM my whole file if you'd like? id like to learn what im doing wrong so i can do other bootstraps....
mirtos is offline   #18 Reply With Quote
mirtos
Senior Member
 
Join Date: Oct 2011
Posts: 865

Old March 9th, 2014, 06:42 PM
Here is my shield bash and heavy shield, respectively.

Code:
  <thing id="wShldBash" name="Shield Bash" compset="Weapon">
    <tag group="wCritMin" tag="20"/>
    <tag group="wCritMult" tag="2"/>
    <tag group="wCategory" tag="Melee"/>
    <tag group="Helper" tag="Helper"/>
    <tag group="wType" tag="B"/>
    <tag group="wMain" tag="1d3_3"/>
    <tag group="wProfReq" tag="Martial"/>
    <eval phase="PreLevel" priority="10000"><![CDATA[~ If we are a heavy shield, we do 1d4 damage and one handed.
if (container.tagis[ShldClass.Heavy] <> 0) then
  perform delete[wMain.?]
  perform delete[wClass.?]
  perform delete[Helper.Finesse]
  perform assign[wMain.1d4_4]
  perform assign[wClass.OneHanded]
endif]]></eval>
    <exprreq message="Light Shield Proficiency required"><![CDATA[#hasfeat[fArmLgShld] + hero.tagis[Hero.ProfShield] <> 0]]></exprreq>
    </thing>
Code:
  <thing id="mShlHvSt2" name="Shield, Heavy Steel" description="You can&apos;t carry anything in your hand while using a Heavy Shield. You can Shield Bash with a heavy shield." compset="Armor" replaces="mShlHvStl">
    <fieldval field="gWeight" value="15"/>
    <fieldval field="gSizeCost" value="20"/>
    <tag group="mAC" tag="2" name="2" abbrev="2"/>
    <tag group="mArcFail" tag="15" name="15" abbrev="15"/>
    <tag group="mArmorChk" tag="2" name="2" abbrev="2"/>
    <tag group="mClass" tag="Shield" name="Shield" abbrev="Shield"/>
    <tag group="mMaxDex" tag="1000" name="1000" abbrev="1000"/>
    <tag group="EquipType" tag="Metal" name="Metal" abbrev="Metal"/>
    <tag group="ShldClass" tag="Heavy" name="Heavy Shield" abbrev="Heavy"/>
    <bootstrap thing="wShldBash">
      <autotag group="Helper" tag="Proficient"/>
      <autotag group="wClass" tag="OneHanded"/>
      </bootstrap>
    <eval phase="First"><![CDATA[~ Work out if we're equipped, or, if we're the child of a magic item, 
~ if our parent is equipped.
var result as number
result = field[gIsEquip].value
if (container.ishero = 0) then
  result += container.parent.field[gIsEquip].value
endif

~ If shield bash is being used, allow for use of shield and bash.
~ Remove shield AC if equipped, unless Improved Shield Bash exists.
if (result <> 0) then
  var ac as number
  if (container.ishero = 0) then
    if (container.parent.gizmo.child[wShldBash].field[gIsEquip].value <> 0) then
      perform hero.assign[Hero.ShldOffOK]
      if (#hasfeat[fImpShBash] = 0) then
        ac = container.parent.field[mAC].value + container.parent.field[BonEnhance].value
      endif
      hero.child[ArmorClass].field[tACShield].value -= ac
    elseif (container.parent.gizmo.child[wShldBash].field[wIs2nd].value <> 0) then
      perform hero.assign[Hero.ShldOffOK]
      if (#hasfeat[fImpShBash] = 0) then
        ac = container.parent.field[mAC].value + container.parent.field[BonEnhance].value
      endif
      hero.child[ArmorClass].field[tACShield].value -= ac
    endif
  elseif (hero.child[wShldBash].field[gIsEquip].value <> 0) then
    perform hero.assign[Hero.ShldOffOK]
    if (#hasfeat[fImpShBash] = 0) then
      ac = field[mAC].value
    endif
    hero.child[ArmorClass].field[tACShield].value -= ac
  elseif (hero.child[wShldBash].field[wIs2nd].value <> 0) then
    perform hero.assign[Hero.ShldOffOK]
    if (#hasfeat[fImpShBash] = 0) then
      ac = field[mAC].value
    endif
    hero.child[ArmorClass].field[tACShield].value -= ac
  endif
endif]]></eval>
    </thing>
mirtos is offline   #19 Reply With Quote
Kendall-DM
Spy
 
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220

Old March 9th, 2014, 08:05 PM
Quote:
Originally Posted by Sendric View Post
Is there something you can add to the community data files, Kendall? I had started something, but its only about half finished so far. I'd like to be able to have it available for the next release.
Sendric, my stuff probably wouldn't gel well with the Community Files, since it is not strictly d20 (lots of house ruled changes), and there is a ton of interaction between all my file elements that may break. I'll see what I can do though, but I don't have a ton of time at the moment to devote to anything more than casual usage. But I'll try and see.
Kendall-DM is offline   #20 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 06:28 AM.


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