• 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

Adding 'Custom Wand' variant

The Wyrm Ouroboros

Active member
All right, so wands are spell-trigger items; to use the wand, you have to have the spell it uses in your class list. Well, I want to create a 'clacker', virtually identical to a wand, but which is use-activated - you squeeze it, with the business end pointed at (or pressed against) your target, and boom, there you go. Instead of a x750gp multiplier, it would have a x1000gp multiplier (x2000 for use-activated, x1/2 for 50 charges).

Now, I know how do this in the editor on a case-by-case basis; what I'm looking to discover is whether or not there's a way to create a blank in the editor for use. It would be virtually identical to the custom wand gizmo, the only difference being the GP multiplier.

Any suggestions?
 
Technically the answer is "yes" you can do this but you would need to write the Gizmo from scratch in XML. This is not something that can be built in the editor and is a very advanced feature of HL. Not something I would recommend anyone starting with.

For something easier you may wish to look at the dorje from Ultimate Psionics in the 3PP Pack which is a type of wand but for Psionic Powers. Its not as cool as the Wand gizmo but allot easier to work with.
 
Hm. Considering the fact that really, there's only one or two bits of information that need to be changed - where-ever it says '750' in relation to GP, change to '1000' - is the XML for custom wands available anywhere?
 
Last edited:
Here is the XML

Code:
  <thing
    id="sCustomWnd"
    name="- Add custom wand -"
    compset="MagicItem"
    description="Add this item to create a wand of a chosen spell."
    buytemplate="BuyGeneral"
    xactspecial="2"> <!-- Barebones purchase, showing just coin fields -->
    <tag group="Helper" tag="CustomItem"/>
    <tag group="Helper" tag="CustSpCont"/>
    <tag group="Helper" tag="EquipMag"/>
    <tag group="User" tag="Tracker"/>
    <tag group="gType" tag="Wand"/>
    <tag group="SpecialTab" tag="GRWand"/>
    <tag group="Helper" tag="EquipAvail"/>
    <eval value="1" phase="Render" priority="105100">
      <after name="Gen Custom Spell Name"/><![CDATA[
      var spellname as string
      foreach pick in gizmo from BaseSpell
        if (eachpick.field[sCL].value > eachpick.field[sCasterMin].value) then
          spellname = splice(spellname,"CL " & ordinal(eachpick.field[sCL].value),", ")
          endif

        spellname = splice(spellname, field[trkMax].value & " charges",", ")
        spellname = lowercase(eachpick.field[sbName].text) & " (" & spellname & ")"
        nexteach

      field[livename].text = "Wand of " & spellname
      field[sbName].text = "wand of " & spellname
      ]]></eval>
    <eval index="2" phase="First" priority="1000"><![CDATA[
      if (field[gIsEquip].value = 0) then
        perform assign[Hide.Tracker]
        perform assign[Hide.Activation]
        perform assign[Helper.SpecUp]
        endif
      ]]></eval>
    <eval index="3" phase="Final" priority="10000"><![CDATA[
      ~our list of spells does not include wordspells
      gizmo.child[CustWand].field[abItemExpr].text = "!component.BaseWord & !Helper.Helper & !Helper.Obsolete"
      ]]></eval>
    <eval index="4" phase="Final" priority="10000"><![CDATA[
      ~during play, this doesn't need to be on the Special tab, but we do want
      ~it displayed in the gear description appendix, so we add tags that will
      ~make it show up in that list if we're outputting this item, but *not* in
      ~the general special abilities list at the end of the statblock
      if (state.isoutput <> 0) then
        perform assign[Helper.ShowSpec]
        perform assign[Hide.Statblock]
        endif
      ]]></eval>

    <evalrule index="1" phase="Validation" priority="5000" severity="warning" message="The Craft Wand feat only allows wands to be created with 50 charges."><![CDATA[
      validif (field[trkMax].value <= 50)
      ]]></evalrule>
    <evalrule index="2" phase="Validation" priority="5000" message="Wands must be created with exactly one spell."><![CDATA[
      validif (tagcount[Helper.CustHasSpl] <= 1)
      ]]></evalrule>
    <child entity="CustWand">
      <tag group="Helper" tag="WandLevReq"/>
      </child>
    </thing>
 
(Later ...)

Hm. Darn. While it loads just fine (which is to be expected), the cost multiplier isn't accessable there and, I expect, is another gizmo that'd have to be added / edited / modified to fit with the clacker wand variant. Gaah. Ah, well. Would love the info, Aaron, if you feel like helping. :P :) In return, though, I'd certainly put up the modification. ;)

For what that's worth. :P :)
 
First calculate how much more this version of item should cost, then:

Final 26000
Code:
        gizmo.child[CustWand].field[abValue].value += THEDIFFERENCEINCOST
 
Very cool, could I ask for the xml for scrolls please? I always wanted to do the Spell App from the Modern Path. I messed with the above script and can't seem to get rid of the 50 charges. Spells Apps are 1 one shot like a scroll.

Thank you.
 
Very cool, could I ask for the xml for scrolls please? I always wanted to do the Spell App from the Modern Path. I messed with the above script and can't seem to get rid of the 50 charges. Spells Apps are 1 one shot like a scroll.

Thank you.

Code:
  <thing
    id="sCustomScr"
    name="- Add custom scroll -"
    compset="MagicItem"
    description="Add this item to create a scroll with spells on it."
    buytemplate="BuyGeneral"
    xactspecial="2"> <!-- Barebones purchase, showing just coin fields -->
    <tag group="Helper" tag="CustomItem"/>
    <tag group="Helper" tag="CustSpCont"/>
    <tag group="gType" tag="Scroll"/>
    <tag group="SpecialTab" tag="GRScroll"/>
    <eval value="1" phase="Render" priority="105100" name="Gen Custom Scroll Name">
      <after name="Gen Custom Spell Name"/>
      <after name="Default livename Modify"/><![CDATA[
      var spelllist as string

      call GenSplList

      field[livename].text = "Scroll of " & spelllist
      field[sbName].text = "scroll of " & spelllist
      ]]></eval>

    <eval index="2" phase="Final" priority="10000"><![CDATA[
      ~our list of spells does not include wordspells
      gizmo.child[CustScroll].field[abItemExpr].text = "!component.BaseWord & !Helper.Helper & !Helper.Obsolete"
      ]]></eval>

    <eval index="3" phase="Final" priority="10000"><![CDATA[
      ~during play, this doesn't need to be on the Special tab, but we do want
      ~it displayed in the gear description appendix, so we add tags that will
      ~make it show up in that list if we're outputting this item, but *not* in
      ~the general special abilities list at the end of the statblock
      if (state.isoutput <> 0) then
        perform assign[Helper.ShowSpec]
        perform assign[Hide.Statblock]
        endif
      ]]></eval>

    <evalrule index="1" phase="Validation" priority="5000" severity="warning" message="The scroll is empty."><![CDATA[
      validif (tagcount[Helper.CustHasSpl] <> 0)
      ]]></evalrule>
    <child entity="CustScroll"/>
    </thing>
 
First calculate how much more this version of item should cost, then:

Final 26000
Code:
        gizmo.child[CustWand].field[abValue].value += THEDIFFERENCEINCOST

Hrm. Did this, experimented, and unfortunately it's not what's needed. Changing the magic item's spell effect base from '50 charges, spell trigger' to '50 charges, use-activated' doesn't add on a flat amount (which is what this code does); instead, changing the baseline increases the base multiplier for the object from 750gp to 1000gp.

So I presume it wouldn't affect the abValue value, but ... I don't know. It'd increase the multiplier by 250. :/ I just don't know how the multiplier is encoded. Ideally, it'd add 250 to that ...
 
The multiplier is supposed to be calculated by you earlier in the script, based on however many charges, spell level, caster level, etc. and only then do you add whatever amount you calculated to the abValue field inside the gizmo.
 
Back
Top