Senior Member
Join Date: Oct 2011
Posts: 865
|
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? |
#11 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
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? |
#12 |
Senior Member
Join Date: Oct 2011
Posts: 865
|
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. |
#13 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
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 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. |
#14 |
Senior Member
Join Date: Oct 2011
Posts: 865
|
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. |
#15 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
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 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. |
#16 |
Senior Member
Join Date: Jul 2010
Posts: 3,144
|
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.
|
#17 |
Senior Member
Join Date: Oct 2011
Posts: 865
|
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....
|
#18 |
Senior Member
Join Date: Oct 2011
Posts: 865
|
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'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> |
#19 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
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.
|
#20 |
Thread Tools | |
Display Modes | |
|
|