Lone Wolf Development Forums

Lone Wolf Development Forums (http://forums.wolflair.com/index.php)
-   HL - D&D 5th Edition SRD (http://forums.wolflair.com/forumdisplay.php?f=89)
-   -   Multiattack question (http://forums.wolflair.com/showthread.php?t=61431)

DeltaMasterMind October 18th, 2018 06:57 AM

Multiattack question
 
So can someone inform me as to why field[rMultiatt] was not added to the compset for subraces? Seems like it would be useful to be there for some races like constructs where they are not all created equal, but are part of the same race.

Edit: Count this post as a request for addition of rMultiatt to subraces.

Mergon October 18th, 2018 07:53 AM

rMultiatt is strictly for creatures, not for PC's.

DeltaMasterMind October 18th, 2018 01:56 PM

Not sure why this should matter from a coding perspective
Quote:

Originally Posted by Mergon (Post 271755)
rMultiatt is strictly for creatures, not for PC's.

If say making a a Slaad monster and you want to simplify the coding to have it use subraces to list the variants Green Slaad, Blue Slaad, etc. then why go through the trouble of recreating each slaad as a new race. I realize that is the path that was taken due to the nature of the creatures not being PC's, still it shouldn't mean that I shouldn't be able to. I run monsters (creatures) as possible player characters and I want it to be easy for me to add a subrace with multiattack when the lore calls for it without going through a lot of hoops just to get independent loading support out of my files.

Mergon October 18th, 2018 02:43 PM

If you are talking about using it for creature subraces, its simply a matter of adding the rMultiatt ability as a bootstrap, then configuing it. Just use a creature who has multiatt as an ability as an example.

DeltaMasterMind October 18th, 2018 02:51 PM

The ability thingid is xMultiatt and I do have that bootstrapped. However the subrace will not let me add rMultiatt in the field values stating that this field is not within the compset. rMultiatt adds the text that xMultiatt grants to the hero. So I can only do this at the race level. Here is the problem I have a race on the official content file, I made a subrace that is a monster variant and has multiattack, unfortunately transferring this code that lacks field support and not using a base hero field to trigger boot strap conditions instead makes this quite tedious!

Mergon October 18th, 2018 03:01 PM

I'd need to see the coding you are woring with to assign the values you are trying to work with. Hard to say where you might be going wrong otherwise.

DeltaMasterMind October 18th, 2018 03:59 PM

So here is the code I am working on:
Quote:

<thing id="srSUCShatr" name="The Shattered" description="You are a monstrosity. Your form consist of multiple other Gem fragments. Your Gem was shattered like the rest of them, but you came out with enough structure to maintain your higher functions, but without the body structure needed to function, instead as you were grouped with other fragments you started to take form. You now control the defuncted shards as a part of you. Attempting to control all these fragments slows down your processing power and makes you bulky." compset="SubRace" uniqueness="unique">
<fieldval field="rSpeed" value="25"/>
<usesource source="SU_5eCS"/>
<tag group="ClVaryName" tag="AppParen" name="Append (in Parentheses)" abbrev="Append (in Parentheses)"/>
<tag group="Helper" tag="ManyLegs"/>
<tag group="SubRace" tag="rSUGem" name="Gem" abbrev="Gem"/>
<tag group="RaceType" tag="Normal" name="Normal (Player) Race" abbrev="Normal (Player) Race"/>
<tag group="Language" tag="lSUGem"/>
<tag group="RaceSize" tag="Large1"/>
<tag group="AlgnForbid" tag="Lawful"/>
<tag group="AlgnForbid" tag="Good"/>
<tag group="Helper" tag="NotHum"/>
<bootstrap thing="xSwim">
<autotag group="Value" tag="15"/>
</bootstrap>
<bootstrap thing="wFist">
<autotag group="AttackTarg" tag="1Target"/>
<assignval field="wDieCount" value="1"/>
<assignval field="wDieSize" value="4"/>
<assignval field="sbName" value="Fist x4"/>
<assignval field="livename" value="MultiAttack Fist x4"/>
</bootstrap>
<bootstrap thing="xMultiatt"></bootstrap>
<bootstrap thing="raSUCShatA"></bootstrap>
<bootstrap thing="wHeadButt">
<autotag group="AttackTarg" tag="1Target"/>
<assignval field="wDieCount" value="1"/>
<assignval field="wDieSize" value="12"/>
</bootstrap>
<bootstrap thing="spSUCShatR">
<autotag group="Helper" tag="RaceSpell"/>
<autotag group="Usage" tag="AtWill"/>
</bootstrap>
<bootstrap thing="tpMonstros"></bootstrap>
<bootstrap thing="raSUCMulAr"></bootstrap>
<bootstrap thing="sShattered"></bootstrap>
<eval phase="First">hero.child[rSUGem].field[rWeightMin].value -= 1</eval>
</thing>
<thing id="raSUCShatA" name="+6 to Str and Con, -6 to Dex,Int,Wis,Cha" description="Grants a +6 bonus to Strength and Constitution.\nBestows a -6 penalty to Dexterity, Intelligence, Wisdom, and Charisma." compset="RaceSpec">
<fieldval field="abValue" value="6"/>
<usesource source="DMM"/>
<tag group="ChooseSrc1" tag="Hero" name="All Picks on Hero" abbrev="All Picks on Hero"/>
<tag group="Custom" tag="AbilScore" name="AbilScore" abbrev="AbilScore"/>
<tag group="RaceSort" tag="Attribute" name="Attribute" abbrev="Attribute"/>
<eval phase="PreAttr" priority="5000"><![CDATA[
~if we've been replaced, get out now
doneif (tagis[Helper.SpcReplace] <> 0)

~ If we're disabled, do nothing
doneif (tagis[Helper.Disable] <> 0)

hero.child[aSTR].field[aStartMod].value += field[abValue].value
hero.child[aSTR].field[aMaxValue].value += field[abValue].value
hero.child[aCON].field[aStartMod].value += field[abValue].value
hero.child[aCON].field[aMaxValue].value += field[abValue].value
hero.child[aDEX].field[aStartMod].value -= field[abValue].value
hero.child[aDEX].field[aMaxValue].value -= field[abValue].value
hero.child[aINT].field[aStartMod].value -= field[abValue].value
hero.child[aINT].field[aMaxValue].value -= field[abValue].value
hero.child[aWIS].field[aStartMod].value -= field[abValue].value
hero.child[aWIS].field[aMaxValue].value -= field[abValue].value
hero.child[aCHA].field[aStartMod].value -= field[abValue].value
hero.child[aCHA].field[aMaxValue].value -= field[abValue].value]]></eval>
</thing>
<thing id="spSUCShatR" name="Energy Adaptation" description="As an bonus action, you give yourself {b}resistance{/b} to acid, cold, fire, or lightning (your choice), which the choice lasts until you are hit with a different type of energy damage, which from then on you have that energy resistance, until hit with another energy type." compset="Spell" summary="You gain resistance to energy of choice">
<fieldval field="sRange" value="Self"/>
<fieldval field="sDuration" value="1 round/lvl"/>
<usesource source="DMM"/>
<usesource source="SU_5eCS"/>
<tag group="sRange" tag="Personal" name="Personal" abbrev="Personal"/>
<tag group="sCastTime" tag="BonusAct1"/>
<tag group="sLevel" tag="1" name="1" abbrev="1"/>
</thing>
<thing id="raSUCMulAr" name="Multi-Armed" description="{b}Benefit{/b}: Members of this subrace possess four or more arms, but may only use 4 at a time. A member of this race can wield multiple weapons, but only one hand is its primary hand, and all others are off hands. It can also use its hands for other purposes that require free hands." compset="RaceSpec">
<usesource source="DMM"/>
<tag group="Helper" tag="SpecUp" name="SpecUp" abbrev="SpecUp"/>
<tag group="AbilType" tag="Extra" name="Extraordinary Ability" abbrev=" (Ex)"/>
<eval phase="PostLevel" priority="10000"><![CDATA[
~if we've been replaced, get out now
doneif (tagis[Helper.SpcDisable] <> 0)

herofield[tNumHands].value += 2]]></eval>
</thing>
Quote:

<thing id="rSUGem" name="Gem" description="&quot;SIMPLIFIED DOWN TO OUR BASIC FORM , GEMS ARE JUST GEMS. OUR BODIES ARE ACTUALLY GENERATED BY OUR GEMSTONE... WELL, PROJECTIONS. THINK OF IT LIKE A HOLOGRAM , BUT WITH MASS . ” -Pearl\n\nGems are a people of the stars, parasitizing entire worlds to propagate their species. Born into a strict-caste system that determines their job and worth from the moment of their birth, most gems have little autonomy to speak of. It takes an incredibly strong-willed gem to break the shackles of its birth , and most are more than happy to live by the purpose for which they are created." compset="Race" uniqueness="useronce">
<fieldval field="rCON" value="2"/>
<fieldval field="rHeightMin" value="48"/>
<fieldval field="rWeightMin" value="1"/>
<fieldval field="rMultiatt" value="The Shattered have parts that can attack independently. When using a full round attack action you attack with a headbutt including up to 4 &quot;fists&quot; (any appendage that isn&apos;t used for movement)."/>
<usesource source="SU_5eCS" parent="pfHBC" name="Steven Universe Campaign Setting"/>
<tag group="RaceType" tag="Normal"/>
<tag group="RaceSize" tag="Medium0"/>
<tag group="Alignment" tag="Lawful"/>
<tag group="Helper" tag="NoAdvLeag"/>
<bootstrap thing="lSUGem">
<autotag group="Promote" tag="Top"/>
</bootstrap>
<bootstrap thing="lCommon"></bootstrap>
<bootstrap thing="raSURebirt"></bootstrap>
<bootstrap thing="ttSUGem"></bootstrap>
<bootstrap thing="spSULightC">
<autotag group="Usage" tag="AtWill"/>
<autotag group="Helper" tag="RaceSpell"/>
</bootstrap>
<bootstrap thing="raSUInorgN"></bootstrap>
<bootstrap thing="xMultiatt"></bootstrap>
<bootstrap thing="tpConst"></bootstrap>
<bootstrap thing="tpHumanoid">
<containerreq phase="First" priority="500"><![CDATA[fieldval:rWeightMin >= 1]]></containerreq>
</bootstrap>
<eval phase="First" index="2"><![CDATA[~ doneif (tagis[thingid.sShattered] = 0)
if (hero.childlives[sShattered] = 0) then
hero.child[rSUGem].field[rMultiatt].text = ""
endif]]></eval>
<eval phase="PreLevel" priority="1000">~ doneif (tagis[thingid.srSUCShatr] = 0)
if (hero.childlives[sShattered] = 0) then
perform hero.child[xMultiatt].delete[FeatureTyp.Action]
perform hero.child[xMultiatt].delete[Helper.ShowSpec]
endif</eval>
</thing>
Each is in a different file with different sources, the issue is the order of loading with this structure. I have no real way to bypass the way this is handled. I still haven't tried the replace feature yet though. I will give it a try tomorrow.

At the end of the second box is me forcing multiattack off when The Shattered is not live. Sadly I had to add the shattered rMultiatt text into the race because the subrace doesn't allow this field. So I have to go (at least this is what I know) in an reversed order to get the results, but this requires me to modify the official source file to do so.

In the first box I am using the races minweight field to trigger a bootstrap condition to make Humanoid type tag go away. Since this variant is a monstrous form of the race. There is a lore reason why I am not doing the monster form as a template.

dungeonguru October 19th, 2018 03:45 AM

So, here's a method that may work for you.

Step 1. Open or create a Custom tags.1st file for yourself and add something like this between the <document> tags that are in those files (You can look at the Community .1st files and see where there is a tags file you can use to copy):

Code:

  <group id="A2ZMulti" name="Multiattack">
  <value id="yes"      name="yes"/>
  <value id="no"      name="no"/>
 </group>

The above creates a custom tag group with two members:
A2ZMulti.yes
A2ZMulti.no

Whenever you create a .1st file you need to completely exit HL and reload it before anything shows up.

Step 2. On your base race or a copy of your base race that will be used instead of it bootstrap the xMultiatt ability.
On the Conditions button for xMultiatt set the timing to First/150 and the tag expression to

A2ZMulti.yes

This means that xMultiatt will only bootstrap if you have the A2ZMulti.yes tag assigned.

In my test example I have made a copy of the Elf race and given it an id of rA2ZElf.

Step 3. On your subrace that will have multiattack put an Eval Script that runs before Step 2 (First/100). This can be your script:

Code:

hero.childfound[rA2ZElf].field[rMultiatt].text = "I get more attacks."
perform hero.assign[A2ZMulti.yes]

In my example I created a subrace of rA2ZElf, so I know that I'm looking for the rA2ZElf race as my base race. I add my multiattack text and then I assign the custom tag I created in step 1.

I use A2Z as an ID for my example, but you can substitute your personal ID in your files.

This means that you need to replace almost all the races with copies of your own. It's not really that hard to copy/paste the bootstrap line into your .user files if you're willing. The eval scripting, not so much. But from a GM perspective I would only create PC versions of monsters on demand, not everything at once.

DeltaMasterMind October 19th, 2018 11:07 PM

xD I completely forgot about 1st files, been over a year since the last one I made. You are definitely right though that will work perfectly. Thank you Dungeonguru.


All times are GMT -8. The time now is 09:43 PM.

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