diff options
-rw-r--r-- | sql/updates/1559_world.sql | 13 | ||||
-rw-r--r-- | src/game/Spell.cpp | 22 | ||||
-rw-r--r-- | src/game/Unit.cpp | 3 |
3 files changed, 30 insertions, 8 deletions
diff --git a/sql/updates/1559_world.sql b/sql/updates/1559_world.sql new file mode 100644 index 00000000000..eea06da956d --- /dev/null +++ b/sql/updates/1559_world.sql @@ -0,0 +1,13 @@ +INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES +(48077, 48075, 0, 'Holy Nova (rank8)'), +(48078, 48076, 0, 'Holy Nova (rank9)'), +(47585, 60069, 0, 'Dispersion (transform/regen)'); + +DELETE FROM `spell_proc_event` WHERE `entry` IN (47549); +INSERT INTO `spell_proc_event` VALUES (47549, 0x00, 6, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0); +DELETE FROM `spell_proc_event` WHERE `entry` IN (47551); +INSERT INTO `spell_proc_event` VALUES (47551, 0x00, 6, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0); +DELETE FROM `spell_proc_event` WHERE `entry` IN (47552); +INSERT INTO `spell_proc_event` VALUES (47552, 0x00, 6, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0); + + diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index aa04784fb97..9d9fdc70305 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1127,7 +1127,20 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask) // Apply additional spell effects to target if (m_preCastSpell) - m_caster->CastSpell(unit,m_preCastSpell, true, m_CastItem); + { + // Special spell id + // TODO: Handle all of special spells in one place? + if(m_preCastSpell==61988) + { + //Cast forbearance + m_caster->CastSpell(unit,25771, true, m_CastItem); + // Cast Avenging Wrath Marker + m_caster->CastSpell(unit,61987, true, m_CastItem); + } + else + m_caster->CastSpell(unit,m_preCastSpell, true, m_CastItem); + } + for(uint32 effectNumber=0;effectNumber<3;effectNumber++) { @@ -2179,13 +2192,6 @@ void Spell::cast(bool skipCheck) m_preCastSpell = 23230; // Blood Fury - Healing Reduction break; } - - case SPELLFAMILY_PRIEST: - { - if (m_spellInfo->Id == 47585) // Dispersion (transform) - m_preCastSpell = 60069; // Dispersion (mana regen) - break; - } } // traded items have trade slot instead of guid in m_itemTargetGUID // set to real guid to be sent later to the client diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 92bf97e9e02..ce22eca1854 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4332,6 +4332,9 @@ Aura* Unit::GetAura(AuraType type, uint32 family, uint32 familyFlag1, uint32 fam bool Unit::HasAura(uint32 spellId) const { + //Special case for non existing spell + if (spellId==61988) + return HasAura(61987) || HasAura(25771); for (int i = 0; i < 3 ; ++i) { AuraMap::const_iterator iter = m_Auras.find(spellEffectPair(spellId, i)); |