• 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

Easy Metamagic feat from 3.5

Jewrrick

Active member
I'm trying to add this, and I am close but can't seem to get the drop down box to give me options.

Easy Metamagic
Type: Metamagic
Source: Dragon #325

One of your metamagic feats is easier to use.
Prerequisite: Any other metamagic feat.
Benefit: Choose a metamagic feat you already have. When preparing or casting a spell modified by that feat, lower the spell-slot cost by one. You can never reduce the spell-slot cost below one level higher than the spell's actual level. For example, taking this feat for the Quicken Spell feat reduces the spell slot cost of a quickened spell from four levels higher than the spell's actual level to three levels higher than the spell's actual level.
Special: You can gain this feat multiple times. Each time you take this feat, you must choose a new metamagic feat.

Here is what I have so far for the eval script:

var Lvl as number
var LvlRed as number
var MMg as string
var nlvl as number
var BLvl as number

doneif (field[usrChosen1].ischosen = 0)

MMg = field[usrChosen1].chosen.field[mmAbbr].text

foreach pick in hero where "NeedHelper.CustomSpl"
~Grab current level of the customized spell
Lvl = eachpick.field[sLevel].value
LvlRed=0
~Need the level of the base spell; I anticipate that this foreach
~will only find one thing.

foreach pick in eachpick.gizmo from BaseSpell
BLvl=eachpick.field[sLevel].value
nexteach

~Look for the metamagic chosen within the gizmos
foreach pick in eachpick.gizmo from BaseMetamg
if (compare(eachpick.field[mmAbbr].text,MMg) = 0) then
LvlRed += 1
endif
nexteach

nlvl=maximum(Lvl-LvlRed,BLvl)
perform eachpick.delete[sLevel.?]

~Set the field.
eachpick.field[sLevel].value=nlvl

~Set the correct tag
if (eachpick.field[sLevel].value = 0) then
perform eachpick.assign[sLevel.0]
elseif (eachpick.field[sLevel].value = 1) then
perform eachpick.assign[sLevel.1]
elseif (eachpick.field[sLevel].value = 2) then
perform eachpick.assign[sLevel.2]
elseif (eachpick.field[sLevel].value = 3) then
perform eachpick.assign[sLevel.3]
elseif (eachpick.field[sLevel].value = 4) then
perform eachpick.assign[sLevel.4]
elseif (eachpick.field[sLevel].value = 5) then
perform eachpick.assign[sLevel.5]
elseif (eachpick.field[sLevel].value = 6) then
perform eachpick.assign[sLevel.6]
elseif (eachpick.field[sLevel].value = 7) then
perform eachpick.assign[sLevel.7]
elseif (eachpick.field[sLevel].value = 8) then
perform eachpick.assign[sLevel.8]
else
perform eachpick.assign[sLevel.9]
endif
nexteach



any ideas?
 
Last edited:
Please include the text of the feat you're trying to implement, so we know what this script is trying to do, and please include the phase & priority you've assigned to this script, because when you're trying to accomplish this is important if you're trying to change the effective level of a spell.
 
You will probably get more help if you add what the Feat actually does to your post. Some don't have all of the old books, and others may not remember that particular feat or what book it is in. The more difficult it is to even know what you're trying to do, the more people who just don't have the time to try to figure that out before they can even think about answering.

And ninja'd :)
 
I recommend searching custom spells, and then searching inside them for the metamagic picks that match that particular metamagic, and then change the field on that, so that HL sees that this is a +1 effective level metamagic, instead of a +2, rather than trying to change the spell's level.

Changing it at the metamagic level also makes it easy to implement the "min +1" restriction - something = minimum(something - 1, 1)

You also haven't included the phase & priority, so I can't tell if your script is running at the right time.

Also, that script has nothing do to with whether the dropdown will give you options - that script is taking the result from the user's selection in the dropdown and doing things with it.
 
I recommend searching custom spells, and then searching inside them for the metamagic picks that match that particular metamagic, and then change the field on that, so that HL sees that this is a +1 effective level metamagic, instead of a +2, rather than trying to change the spell's level.

Changing it at the metamagic level also makes it easy to implement the "min +1" restriction - something = minimum(something - 1, 1)

You also haven't included the phase & priority, so I can't tell if your script is running at the right time.

Also, that script has nothing do to with whether the dropdown will give you options - that script is taking the result from the user's selection in the dropdown and doing things with it.

It's already done in the d20(3.5) part of HL, I just need to figure out how to convert that to the Pathfinder side.

Phase is pre-levels and priority 5000

I have successfully added the feat to the program and can choose the feat from the list of feats. I am just lacking being able to choose a metamagic feat for Easy Metamagic to affect.

I'm not sure if I'm being clear but it should work similar to Spell focus where you choose a school and get +1 to DC. Except here you choose a Metamagic feat and get -1 to spell level not to go less than +1
 
Last edited:
It's already done in the d20(3.5) part of HL, I just need to figure out how to convert that to the Pathfinder side.
You re-write the script from scratch. Pathfinder and d20 are two totally different HL game systems with almost NO similarity. I am not talking about rules I am talking about the scripts that are built on different components. :)
 
You re-write the script from scratch. Pathfinder and d20 are two totally different HL game systems with almost NO similarity. I am not talking about rules I am talking about the scripts that are built on different components. :)

Well suck... I mean, I feel like I'm close but I'm not real sure where to go from here.
 
Well suck... I mean, I feel like I'm close but I'm not real sure where to go from here.
Is the above code copy/pasted from d20? It looks like most would work in Pathfinder.

I would follow what Mathias said above. He is saying to modify the selected Metamagic values instead of trying to modify the spells.
 
Is the above code copy/pasted from d20? It looks like most would work in Pathfinder.

I would follow what Mathias said above. He is saying to modify the selected Metamagic values instead of trying to modify the spells.

it's c/p from d20 that I have started reworking to use in Pathfinder.
 
There are tags for that, the ReduMMCost tags:

Code:
      foreach pick in hero from BaseSpell where "HasMetaMag.mmXXX"
        perform eachpick.assign[ReduMMCost.mmXXX]
        nexteach

Obviously, replace mmXXX with the unique ID of the metamagic power your feat picked.
 
Last edited:
I had forgotten about those - that makes it even simpler - pull the ReduMMCost tag from the selected metamagic, and then push it to the hero, and you're done.

The description of the tags is in the v7.2 FAQ if you want more detail. They can either be used like Aaron says, adding them to the custom spells, or they can be added to the hero if every copy of that metamagic gets the discount.
 
I had forgotten about those - that makes it even simpler - pull the ReduMMCost tag from the selected metamagic, and then push it to the hero, and you're done.

The description of the tags is in the v7.2 FAQ if you want more detail. They can either be used like Aaron says, adding them to the custom spells, or they can be added to the hero if every copy of that metamagic gets the discount.

Ok I understand what you're getting at, but I'm not sure where I need to be putting it all to make this work.

I also did a search and can't find anything about a v7.2 FAQ
 
Aaron/Mathias I think I am missing something. I read the FAQ and what you guys wrote and thought this is easy. Plus this would make a great adjustment.

So I built the following:
Code:
  <thing id="pS2MetaDec" name="Metamagic, Decrease" compset="InPlay">
    <fieldval field="pCandExpr" value="component.BaseMetamg"/>
    <fieldval field="pMinimum" value="-10"/>
    <fieldval field="pMaximum" value="-1"/>
    <usesource source="srcS2Adjus"/>
    <tag group="OthAdjCat" tag="Spell"/>
    <tag group="ProductId" tag="HLCommunit"/>
    <tag group="Helper" tag="CoreCampOK"/>
    <tag group="Adjustment" tag="S2Custom"/>
    <eval phase="First" priority="500"><![CDATA[
      ~ If we're not enabled, get out now
      doneif (field[pIsOn].value = 0)
      ~ If nothing chosen, get out now
      doneif (field[pChosen].ischosen <> 1)

      var iX as number
      var nAdjust as number
      nAdjust = field[pAdjust].value * -1
      ~ Pull the correct number of tags based on the counter
      while (iX < nAdjust)
        iX += 1
        ~ Pull the Reduce Metamagic Cost tag
        perform field[pChosen].chosen.pulltags[ReduMMCost.?]
      loop

      ~ Push tag(s) to the hero
      perform hero.pushtags[ReduMMCost.?]]]></eval>
    <eval phase="PreLevel" priority="11000" index="2"><![CDATA[
      ~ Set custom expression to "All Things on Hero"
      field[pUsePicks].value = 0]]></eval>
    </thing>

I am running at First/500. To test I had a sorcerer with a Burning adhesive spittle spell and it was listed at level 3 before turning on the adjustment. I turned on the adjustment above selecting "Burning" and nothing changed. The spell was still listed at level 3 not 2.

It was not until I removed the mmBurning Pick and re-added it that the new value too effect. Its confusing me as to why it would be required to remove the mmBurning Pick to get this to work? :confused:
 
The bound script on pAdjust is at pre-levels/10000 ("Bound pAdjust"). I don't recommend looking up a user field's value before the bound script, or you can end up with the changes you're trying to apply being an evaluation behind.

To test if that's what's happening, try changing something else (like adding/deleting text in the character name, or turning on or off something unrelated).

ReduMMCost tags are checked in the "Set mmFinalLev Value" script at Post-Attr/10000, so you don't need a script as early as the first phase for this.
 
The bound script on pAdjust is at pre-levels/10000 ("Bound pAdjust"). I don't recommend looking up a user field's value before the bound script, or you can end up with the changes you're trying to apply being an evaluation behind.

To test if that's what's happening, try changing something else (like adding/deleting text in the character name, or turning on or off something unrelated).

ReduMMCost tags are checked in the "Set mmFinalLev Value" script at Post-Attr/10000, so you don't need a script as early as the first phase for this.
Thanks. I guess I never really combined pAdjust with early timing before to have noticed this issue. I think the latest I went to was Pre-Level/4000. :p

I will test when I get home but this makes perfect sense to why it was acting so strange... :)

P.S. - The Psionic stuff I was doing this week all had "really" early timing and I guess it stayed in my head when I wrote this script. For those I had to have scripts running at First/50.
 
Last edited:
The bound script on pAdjust is at pre-levels/10000 ("Bound pAdjust"). I don't recommend looking up a user field's value before the bound script, or you can end up with the changes you're trying to apply being an evaluation behind.

To test if that's what's happening, try changing something else (like adding/deleting text in the character name, or turning on or off something unrelated).

ReduMMCost tags are checked in the "Set mmFinalLev Value" script at Post-Attr/10000, so you don't need a script as early as the first phase for this.
So I have moved the script to Post-Level/50000. Same issue. The metamagic value does not get reduced unless I re-add the mmBurning Pick.

Even stranger once the value is reduced by 1. So in example I re-add the Burning mmBurning Pick with the adjustment on and its reduced from 3 to 2. Then I remove the adjustment totally from the character and mmBurning stays at 2. Then I tried changing a skill up and down. It still stayed at 2. I have never seen HL react this way before. Its almost like some "script" in the background is not always firing.

I know Colen did some work with causing some scripts to not always fire and I wonder if that is what is happening. :confused:

If you want try this out. Use the adjustment above and change its timing to after pre-levels/10000. Make a sorcerer and add Burning Hands. Then create a "Favorite Metamagic Spell" with "Burning" and you will have a level 3 spell. On the adjustment select "Burning" and leave the counter at -1. You will see the spell "Burning burning hands" is still a level 3 spell. Then edit the metamagic Pick and remove Burning and re-add it. Now it will show a level 2 spell.

So weird....
 
Back
Top