Lull,Alliance,Mem Blur - Spell/Song Line Fix/Implementation
This fix allows the following spells/songs to take affect on NPCs.
Wake of Tranquility Lull Animal Calm Animal Numb the Dead Rest the Dead Pacify Calm Benevolence Lull Alliance Soothe Collaboration Pacification Harmony of Nature Placate Nature's Serenity Placate Beholder Dispel Strip Enchantment Pillage Enchantment Nullify Magic Annul Magic Recant Magic Recant Magic SpellTheft1 SpellTheft2 SpellTheft3 Nature Veil Omen-Bst-PH Devour Enchantment Mind Wipe Blanket of Forgetfulness Reoccurring Amnesia Memory Blur Atone Guide Memory Blur Guide Memory Blur Memory Flux Cinda`s Charismatic Carillon Kelin`s Lugubrious Lament Silent Song of Quellious Luvwen's Aria of Serenity The current code considers these spells/songs beneficial and won't allow them to be cast on NPCs. Here is the Diff: Code:
--- E:\EQEmu815\zone\spdat.cpp Sat Feb 26 14:39:14 2005 Here is the Diff: Code:
--- E:\EQEmu815\zone\spell_effects.cpp Tue Jul 04 09:33:18 2006 |
Few comments:
- I think it would be better to use a map<faction ID, mod amount> instead of your set<NPCFaction> structure. This would avoid your need for the functor and should make the manipulation functions more straight forward (get becomes a find), further it avoids memory management on our part. - You need to make sure you implement the "buff fade" side of it, otherwise the effects will be permanent. Mob::BuffFadeBySlot - Please make an enum for the various meanings of of SpellAffectIndex in spdat.h instead of putting constants directly in the code. - Im not sure I understand why you call ClearFactionBonuses in the zone code... I dont think theres ever any need to call that function |
I'll look at using the map class instead of set, that sounds better from what you say, I was hoping you'd suggest something easier than what I did :)
I'm a bit unclear what you mean by the buff fade side of things. The lull line is the only one that actually puts a buff on a mob and it does fade fine. I get a message in game telling me when Pacify for example wears off. The mem blur line doesn't use a buff slot. The alliance line is active until you zone there is no buff to fade in that case. That is why I stuck the ClearFactionBonuses call in the zone code. Get back to me and I'll make adjustments as needed. I'll work on rewriting with the MAP class instead of SET and adding the SpellAffectIndex Enum in the mean time. |
the buff is fading fine, but the effect would not. Any spell effect applied for a buff which is not just added to spell_bonuses has to be removed in FadeBuff. However, it actually looks like the Pacify spell effect (SE_Lull) is not even implemented. But if it were, it would need to be faded when the buff wears off.
Given that the faction mod stuff is not a buff, does it stack if the spell is cast again? Either way, dont worry about clearing the faction mods when they zone, their Client object will get destroyed soon after and they will clear anyways. you should come to #support on IRC, a lot easier to talk. |
Made the changes you recommended, I think :)
Here's the diff Code:
--- E:\EQEmu815\zone\mob.h Mon Jul 10 00:55:03 2006 |
All times are GMT -4. The time now is 01:01 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.