diff options
| -rw-r--r-- | sql/updates/2923_world_spell_proc_event.sql | 6 | ||||
| -rw-r--r-- | src/game/SpellMgr.cpp | 7 | ||||
| -rw-r--r-- | src/game/Unit.cpp | 8 |
3 files changed, 17 insertions, 4 deletions
diff --git a/sql/updates/2923_world_spell_proc_event.sql b/sql/updates/2923_world_spell_proc_event.sql new file mode 100644 index 00000000000..4212d703e75 --- /dev/null +++ b/sql/updates/2923_world_spell_proc_event.sql @@ -0,0 +1,6 @@ +DELETE FROM `spell_proc_event` WHERE `entry` IN (47569, 47570); +INSERT INTO `spell_proc_event` VALUES +(47569, 0x00, 6, 0x00004000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 50.000000, 0), +(47570, 0x00, 6, 0x00004000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 100.000000, 0); + + diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 15d6279bcd0..233ef09f4f5 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -1220,11 +1220,10 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr else // For spells need check school/spell family/family mask { // Item cast can trigger only with spells with spellfamily - if (procExtra & PROC_EX_INTERNAL_ITEM_CAST && procSpell->SpellFamilyName) + if (procExtra & PROC_EX_INTERNAL_ITEM_CAST) { - if (procSpell->SpellFamilyName == spellProcEvent->spellFamilyName) - return true; - return false; + if (!spellProcEvent->SpellFamilyName) + return false; } // Check (if set) for school if(spellProcEvent->schoolMask && (spellProcEvent->schoolMask & procSpell->SchoolMask) == 0) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 1ebbd606c2f..c0cc4266763 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5512,6 +5512,14 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger triggered_spell_id = 56160; break; } + // Improved Shadowform + case 47570: + case 47569: + { + RemoveAurasByTypeWithDispel(SPELL_AURA_MOD_ROOT); + RemoveAurasByTypeWithDispel(SPELL_AURA_MOD_DECREASE_SPEED); + break; + } // Psychic Horror case 47571: { |
