*Fix Glyph of Icy Veins.

--HG--
branch : trunk
rename : sql/updates/3914_world_spell_proc_event.sql => sql/updates/3927_world_spell_proc_event.sql
This commit is contained in:
QAston
2009-06-11 22:42:36 +02:00
parent 6d5d23faf6
commit bb01747ad1
4 changed files with 16 additions and 8 deletions

View File

@@ -1,4 +1,5 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (59088, 59089, 58388);
DELETE FROM `spell_proc_event` WHERE `entry` IN (59088, 59089, 58388, 56374);
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
(59088, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00010000, 0x00000000, 0, 0, 0), -- Improved Spell Reflection
(59089, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00010000, 0x00000000, 0, 0, 0); -- Improved Spell Reflection
(59088, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Improved Spell Reflection
(59089, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Improved Spell Reflection
(56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0); -- Glyph of icy veins

View File

@@ -1442,6 +1442,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
(56355, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0, 0, 0), -- Titanium Shield Spike
(56364, 0x00, 3, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Remove Curse
(56372, 0x00, 3, 0x00000000, 0x00000080, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Ice Block
(56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Icy Veins
(56451, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 3), -- Earth Shield
(56611, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Wrecking Crew (Rank 2)
(56612, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Wrecking Crew (Rank 3)
@@ -1483,8 +1484,8 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
(58874, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0, 0, 0), -- Damage Shield (Rank 2)
(58901, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Tears of Anguish
(59057, 0x00, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Rime (Rank 3)
(59088, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00010000, 0x00000000, 0, 0, 0), -- Improved Spell Reflection
(59089, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00010000, 0x00000000, 0, 0, 0), -- Improved Spell Reflection
(59088, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Improved Spell Reflection
(59089, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Improved Spell Reflection
(59176, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Spell Damping
(59327, 0x00, 15, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Rune Tap
(59725, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0, 0, 0), -- Spell Reflection

View File

@@ -4135,13 +4135,14 @@ void Unit::RemoveAurasDueToItemSpell(Item* castItem,uint32 spellId)
}
}
void Unit::RemoveAurasByType(AuraType auraType, uint64 casterGUID, Aura * except)
void Unit::RemoveAurasByType(AuraType auraType, uint64 casterGUID, Aura * except, bool negative, bool positive)
{
for (AuraEffectList::iterator iter = m_modAuras[auraType].begin(); iter != m_modAuras[auraType].end();)
{
Aura * aur = (*iter)->GetParentAura();
++iter;
if (aur != except && (!casterGUID || aur->GetCasterGUID()==casterGUID))
if (aur != except && (!casterGUID || aur->GetCasterGUID()==casterGUID)
&& ((negative && !aur->IsPositive()) || (positive && aur->IsPositive())))
{
uint32 removedAuras = m_removedAurasCount;
RemoveAura(aur);
@@ -5376,6 +5377,11 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
}
switch(dummySpell->Id)
{
// Glyph of Icy Veins
case 56374:
RemoveAurasByType(SPELL_AURA_MOD_HASTE, 0, 0, true, false);
RemoveAurasByType(SPELL_AURA_MOD_DECREASE_SPEED);
break;
// Ignite
case 11119:
case 11120:

View File

@@ -1403,7 +1403,7 @@ class TRINITY_DLL_SPEC Unit : public WorldObject
void RemoveAurasDueToSpellByDispel(uint32 spellId, uint64 casterGUID, Unit *dispeler);
void RemoveAurasDueToSpellBySteal(uint32 spellId, uint64 casterGUID, Unit *stealer);
void RemoveAurasDueToItemSpell(Item* castItem,uint32 spellId);
void RemoveAurasByType(AuraType auraType, uint64 casterGUID = 0, Aura * except=NULL);
void RemoveAurasByType(AuraType auraType, uint64 casterGUID = 0, Aura * except=NULL, bool negative = true, bool positive = true);
void RemoveAurasByTypeWithDispel(AuraType auraType, Spell * spell = NULL);
void RemoveNotOwnSingleTargetAuras();
bool RemoveNoStackAurasDueToAura(Aura *Aur);