*Remove possessed summons when aura is cancelled but not when channelling is canncelled. This fix Eye of Kilrogg.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-02-23 09:54:48 -06:00
parent 08b760e953
commit 7ca5b9a8e7
2 changed files with 17 additions and 20 deletions

View File

@@ -4673,7 +4673,7 @@ void Unit::RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode)
// Statue unsummoned at aura remove
Totem* statue = NULL;
bool channeled = false;
if(IsChanneledSpell(AurSpellInfo))
if(Aur->GetAuraDuration() && IsChanneledSpell(AurSpellInfo))
{
if(!caster) // can be already located for IsSingleTargetSpell case
caster = Aur->GetCaster();
@@ -4700,6 +4700,22 @@ void Unit::RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode)
}
}
}
// Unsummon summon as possessed creatures on spell cancel
if(caster->GetTypeId() == TYPEID_PLAYER)
{
for(int i = 0; i < 3; ++i)
{
if(AurSpellInfo->Effect[i] == SPELL_EFFECT_SUMMON &&
(AurSpellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED ||
AurSpellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED2 ||
AurSpellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED3))
{
((Player*)caster)->StopCastingCharm();
break;
}
}
}
}
}