Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
Been trying to get to this and help you out, but I have been extremely busy lately. I should have a chance tomorrow or the next to give it a look.
|
#11 |
Spy
Join Date: Jan 2011
Location: Van Nuys, California
Posts: 1,220
|
I've gotten this to work in a test wizard type class. Because the metamagic scripting that determines level and how it is applied is encapsulated and hidden from user modification, there is nothing I can do about what the metamagic feat reports as the new spell level when you apply the metamagic feat to a spell. However, the spell itself uses up the correctly modified slot for the Incantatrix special ability (-1 level to the metamagic).
There is another problem though. Metamagic applied spells have no memory of what metamagic feat was applied to it. HL creates a temporary custom spell, modifies its name to the modified spell's name with the metamagic title added on ("Maxim, Quick, Still, etc.) and modifies the spell level to the new spell level. This means, I have no idea how to tell which feat got applied, or how many of them. I've tried a few different methods, and the one I'd like to work out is to get the sLevel of the gizmo (spell) that is being modified. I'm not entirely sure how to do that, but if there is a way to do that, I can take the difference of the gizmo spell and the metamagic spell. Unfortunately, this causes another problem in any case, because if you apply multiple +1 metamagics to a spell, this will lead to a false positive on that difference. So, I'm not sure that can be fixed, a real conundrum. As it stands, this works for applying a single metamagic. It just doesn't have a way to limit which metamagics get the -1 applied and which do not. As a GM, you might have to enforce it yourself, since there is no way to figure out if a +1 or less metamagic is being applied. This is the best I could do in the time I had available, use this as a starting point to getting the code to work as you'd like. Code:
<<Pre-Levels (users) 10000>> ~ Determine new metamagic spell level. foreach pick in hero where "thingid.sCustomSpl" if (eachpick.field[sLevel].value > 1) then eachpick.field[sLevel].value -= 1 endif nexteach Code:
var diff as number foreach pick in hero where "thingid.sCustomSpl" ~ Difference of actual spell level vs. the metamagic spell level. ~ Would still need to track for multiple applications of metamagics to a spell. diff = eachpick.field[sLevel].value - <gizmo sLevel, parent non-existent> if (diff > 1) then eachpick.field[sLevel].value -= 1 endif nexteach Last edited by Kendall-DM; March 22nd, 2011 at 12:38 PM. |
#12 |
Senior Member
Join Date: Jan 2011
Location: Quebec, QC, Canada
Posts: 464
|
Thanks a lot!
And to think I started this out thinking this ability would be rather easy to devise... Another way to try to do it would be to create an ability (feat-like) that could be applied to spells by the user to reduce its level (kind of a reverse Heighten Spell), so the user could manually adjust the spell's level. Again, not sure how to do this: I don't think Heighten Spell allows for negative modifiers. |
#13 |
Senior Member
Join Date: Jan 2011
Location: Quebec, QC, Canada
Posts: 464
|
Nope... can't work around metamagic feats' inherent limitations (no negative value, HL not keeping track of the individual modifiers to spell level).
What I was hoping to do now is to systematically recreate "improved" versions of all MM feats in the community files with a lvl adjustment >1, give those prerequisites of the original metamagic feat as well as the Improved Metamagic class special, and bootstrap those to that same Improved MM class special. Roughly, does that seem feasible? |
#14 |
Junior Member
Join Date: Mar 2013
Posts: 5
|
Not sure if you ever got this done, but I found that this works
Code:
~<Pre-Levels (users) 10000>> ~ Determine new metamagic spell level. var x as number foreach pick in hero where "thingid.sCustomSpl" x = 0 if (eachpick.tagis[HasMetaMag.?] <> 0) then foreach pick in eachpick.gizmo from BaseMetamg if (eachpick.field[mmLevel].value > 1) then x += 1 endif nexteach endif eachpick.field[sLevel].value -= x nexteach |
#15 |
Senior Member
Join Date: Nov 2013
Location: Andover, Ma
Posts: 632
|
Quote:
Hero Labs was forced to stop compilation after the following errors were detected: Syntax error in 'eval' script for Thing 'cMissMetaMa' (Eval Script '#1') on line 6 -> Group 'HasMetaMag' not defined Also, I'd love to have the file for the Incantrix or even Hathran if it exists. |
|
#16 |
Senior Member
Join Date: Jul 2010
Posts: 3,147
|
Check out this thread for info on the incantatrix:
http://forums.wolflair.com/showthread.php?t=44854 The final version of this will be available with the next release. |
#17 |
Junior Member
Join Date: Mar 2013
Posts: 5
|
Odd, I just was setting up the dweomerkeeper from F&P, which has a similar feature. I just added that in, copied this script, and it is working correctly. The HasMetaMagic tag should exist. It appears to be assigned to any spell modified by MetaMagic. Note that I am using Pathfinder ruleset, so if this is different for you, just look at the tags for a spell modified by metamagic, find the modifying field, and change the script above accordingly.
Last edited by Storm Matthews; February 23rd, 2014 at 04:14 PM. |
#18 |
Senior Member
Join Date: Nov 2013
Location: Andover, Ma
Posts: 632
|
Hrm, I kinda abandoned this because I couldn't get it to work right. I was creating the prestige Metaphysical Spellshaper, from the BoEF and this is the capstone of that class as well and it failed.
I also still don't know enough about how the foreach works to try and tinker with it. I'm sure it would solve alot of my problems if I did but I just havent had the time to jump into a new area when I was working on debugging what I already have. But if you are doing the dweomerkeeper, I'd love to see if I can port it over to the 3.5 set. As it is part of the Faerun stuff, along with anything else for the Forgotten Realms Campaign Setting. Though I have no idea how hard converting is, I've not really tried. |
#19 |
|
|