*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

@@ -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);