Circle of Protection, Dirge - No longer breaks circle
Undeaths Eternal Foe - Stop effects from stacking
Mind Fog - Removed; not a bug - documentation error
Scribing - Allow legacy wizards to scribe scrolls
Planar summons - Stop multiple summons bug
Banishment - Fix death effect
Doom, Bane, Feeblemind - Correct immune feedback
In 1.67 patch discussion it has been mentioned many PW spell-fixes have not been made available to the public; Bioware seems to have picked them up admirably, but I scrubbed through my own fixes and found these that have not yet made it into official code.
There's a script for getting rid of stackable buffs and items, using spellhooks. This had some good fixes though, thanks. _________________________ Lan's Placeable Groups v1.5
Just in case it wasn't clear, 3.0 SRD states "In cases when two or more identical spells are operating in the same area, but at different strengths, only the best one applies." so this is not just 3.5 rule. Non-instantaneous spell effects don't stack. (I'm aware NWN doesn't always implement stacking correctly). UEF itself ONLY appears in 3.5 Player's Guide to Faerun and Magic of Faerun sourcebooks, and in both its AC is non-stacking Deflection vs. undead. There's no 3.0 version. So, I've got no issue with people doing what they want with their own modules, but whichever way you look at it, the current UEF implementation is in error.
Posted by Anonymous ( 71.66.xxx.xxx ) at 2006-02-25 15:28:01
Oh I encourage everyone to do what they feel works for them but as for me I still want the ability to have it as I like it is all Im saying. Some 3.5 ed spells Im ok with but others I like the way they work and it doesnt essentially make you immune to physical damage.. that again all depends on the server
Posted by Anonymous ( 64.65.xxx.xxx ) at 2006-02-23 09:07:03
and lets pray that some of the spell fixes from the 'community' never do make it to public release or I will have to unfix them...such as your fix for the UEF
Descriptions of Banishment and Planar summon fixes copied over from spellmods:
If you cast timestop and multiple planar bindings/gates right in front of you in quick succession during Bioware timestop, you will gain multiple summons. This is because EffectSummonCreature() checks for other summons at effect assignment time, but allow delaying actual summon. Most PW's use scripted timestop which doesn't allow this, but it's possible lag and certain other conditions could trigger this exploit. It's really engine problem, but in this scripted fix a flag is set and cleared to indicate pending summon.
Banishment uses DestroyObject on the target. This is a problem for PW's and modules that allow players to play outsider chars, though there are ways to gain outsider shape even in OC. So to be sure, DestroyObject is only applied to non-players. Death effect has also been made Supernatural to bypass death immunity.
I decided to update this ahead of 1.67 anyway considering the amount of testing I've been doing and the latest find. I have removed Mindfog fix as it was no longer needed and wrapped the Banishment and Planar summons fix from my alternate spell scripts pack in to this fix-pack. As a completely new fix Doom, Feeblemind and Bane have been fixed to correctly display * target immune * feedback to players. Previously they would display it as annoying whisper, or fail entirely.
Okay, last time I trust documentation over extensive testing. It would appear the engine picks up immunities and even DC increases just fine even without passing GetAreaOfEffectCreator() in the saving functions. I am at loss over why it should be passed to the save functions - that's probably outdated documentation. Phew, lot less fixing to be done.
Both Protection and Aura vs. Alignment spells affect ALL saves, so technically to get the DC's right, all AoE's do have to pass the AoE creator to the save function. Unfortunately this means they also need to deal with the strange immunity cases. It'll get some time to get them right. I might wait and see what 1.67 brings with it first.
Somehow I forgot Aura of Menac, Dragon Fear and Tyrantfog from the non-spell effect list. Testing, it *appears* at least VersusAlignment effect is affected by passing AoE creator to effect. This means in addition to Mind Fog the following spells/effects are suspect:
Mind Fog - Corrects feedback
Stonehold - MoF no save, probably should ignore all immu
Battletide - No mind descriptor, should be okay
Terrifying Rage - It may be house-rule area, but I don't think mind-*spell* immunity should effect TR anyway. (As an aside, Bio TR is severely nerfed)
Aura of Blindness, Aura of Fear, Aura of Menace, Aura of Stun, Aura of Unnatural, Aura of Unearthly Grace, Dragon Fear - Now it just depends, doesn't it?
Aura of Fear, Stun, Unnatural and Dragonfear should pass it for feedback purposes, Menace should pass it and handle immunity because Doom has mind-descriptor. Aura of Unnatural Grace is bit of special case.
Note that in most of these cases the actual effect DOES check for immunity, but the target will get a Save vs. DC output even though they're immune. That's what I mean by feedback purposes.
I didn't expect to find these anymore, but good thing I checked. The following static (ie. not moving along the creature) AoE's will dispell all effects from multiple instances on exit from any of them: Mind Fog, Web, Entangle, Grease, Darkness
Additional oddity, the documentation specifically stresses passing GetAreaOfEffectCreator() to save-routines from AoE scripts, yet the following spells don't do that:
Blade Barrier, Evard's Black Tentacles, Stinking Cloud, Web, Cloud of Bewilderment, Hellfire, Stonehold.
Enter only: Cloudkill, Mind Fog, Battletide
HB only: Grease, Entangle
Non-spells that don't pass AoE creator: Aura of Cold, Aura of Electricity, Aura of Fire, Aura of Sonic.
Aura of Blinding, Aura of Fear, Aura of Stun, Horrific Appearance, Aura of Unnatural, Aura of Unearthly Grace, Stink, Trogoldyte Stink, Bebilith Web, Terrifying Rage.
The following pass AoE creator to save: Acid Fog, Storm of Vengeance, Vine Mind - Entangle, Ghoul Touch.
Considering how dire the warnings about not passing the AoE creator into the save are, I'm surprised. I'm not sure why passing it to the save function is supposed to be so important, though. My first assumption was it was for determining DC, but it seems DC is generally handled fine. Maybe it's for vs. alignment protection effects? I will test that.
In addition to the MOB AoE's fixed in this spell, the following are affected:
VFX_MOB_PROTECTION NW_S1_AuraProtB (Probably all problems)
VFX_PER_INVIS_SPHERE NW_S0_InvSphB (Flickers)
VFX_MOB_SILENCE NW_S0_SilenceB (Flickers)
VFX_MOB_BATTLETIDE X2_s0_BatttideB (Flickers)
Additional technical details:
Scripts that already use GetEffectType() won't accidentally remove the AoE itself. For some reason there isn't EFFECT_TYPE_PROTECTION_* so safest bet is to use GetEffectDurationType() instead. Dirge could check for EFFECT_TYPE_ABILITY_DECREASE, but I like to check duration type instead.
Verifying if the flicker is a problem is hard as it would require exact timing. I am certain it is there anyway, though, as you can verify it with all spells where its easily detectable - Dirge's incremental effect gets reset, invisibility spheres invis. gets re-applied even if you lost it etc.
Most of the AoE exit-scripts already use bValid flag to ensure only one effect is remove per exit. Not sure why Dirge has it commented out, and Circle of Protection vs. Alignment doesn't have it at all (though they define the variable). It may be related to how the spell-effect indicators wouldn't keep up.
I have not checked static (Ie. non-moving) AoE's for removal of multiple effects yet.
Aside, to mangamuscle and others who've commented on how few people make their work available, most bug-fixes are sent directly to [email protected] ; I've personally sent quite a bit there before. So just because it's not seen in public, don't assume people aren't contributing. For me this is scraping the bottom of the barrel, nearly everything else I'm aware of that hasn't made it to the official game yet, for reason or another - often probably because I forgot to submit the bug in the first place. That, not knowing when Bioware might be able to include them and welcoming community feedback on some things like the Circle of Protection made me opt to post them publically.
The Circle of Protection & Dirge scripts fix the imemdiate problem, but for the record I want to state that a few problems remain even after those fixes are applied.
a) Due to the multiplayer protocol, the circles will occasionally "flicker" for brief amount of time in multiplayer. This allows the carrier to be affected by fear-auras and the like. Simple solution is to delay the effect removal briefly, however this will cause the spell indicators at the top of the screen get out of synch, which is why I didn't include it in submission.
b) Should somebody actually use multiple Circles of Protection as suggested in the bug reproduction instructions below, they should be forewarned that even though the actual circle is no longer removed, the AoE exit script will strip ALL protection effects from circles by the same caster. This is relatively rare concern, but unfortunately, known bug. On the PW I added a break; statement after the effect removal, and this seems to have solved the problem, it has also neglible performance benefit. However, this would also lead to the spell indicators getting out of sync, so I've opted to leave that behaviour as is with this fix.
Don't get me wrong; the circle fixes are major improvement, they just don't address all issues. Unfortunately, I can't think of a simple way to fix all the problems with the char-centered AoE circles in scripting alone. If somebody has a good solution, let me know. The spell-indicator desynch could be addressed by maintaining a count of active effects and applying/removing the effect according to that. However, dispells would thwart this and need to access the counter as well - which we can't even do for Holy Avenger, for example. Delayed exit function would solve the circles flickering, but the AoE object would no longer be valid in delayed function, so we can get only so fancy with it. Hence, I've decided to address ONLY the circles dispelling itself in this fix.
Wanted to keep the description short, so here's few details. First for full disclosure, the fixes are mainly from Orb of Abrogation PW where the problems were encountered, though all of those are my work.
The Circle of Protection bugs are easiest to reproduce by casting same circle both on you and an associate, then move so the circles encompass itself and back separate. At that point, both the protection effect AND the circle will be dispelled. The fix makes it so only the protection, which is permanent effect, is removed.
Unfortunately the games online multiplayer protocol conspires to aggravate this bug. Due to the protocol, it occasionally appears the character with the circle will move outside the circle even when they don't. This will cause both CoP and Dirge to dispell itself when the carrier moves, unless the fix is applied.
Undeaths Eternal Foe is rather simple case, Dodge AC stacks (as does negative damage immunity) so it's possible for a caster to repeat cast this on themselves and get +20 dodge AC. Fix is to remove effects from same spell on each subsequent casting.
Mind Fog, the spellsave function when used within Area of Effect script needs to pass the AoE creator instead of OBJECT_SELF for determining correct, caster based DC.
Scribing may be more debatable, I included it because it's spellscript-fix that's got a lot of testing as well. It's mostly useful for PW's, but doesn't really hurt anything. Scroll Scribing feat is free for Wizards at 1st level, but characters that were built before the feat was added don't get it. The change is to simply allow scribing both with the feat OR any wizard-levels.