[11797] Do not remove item on unrelated auraholder remove

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
This commit is contained in:
Vinolentus 2011-09-18 01:46:28 +02:00 committed by Schmoozerd
parent 3cb907051b
commit a9e435c078
4 changed files with 5 additions and 6 deletions

View file

@ -7579,7 +7579,7 @@ void Player::ApplyItemOnStoreSpell(Item *item, bool apply)
}
}
void Player::DestroyItemWithOnStoreSpell(Item* item)
void Player::DestroyItemWithOnStoreSpell(Item* item, uint32 spellId)
{
if (!item)
return;
@ -7592,8 +7592,7 @@ void Player::DestroyItemWithOnStoreSpell(Item* item)
{
_Spell const& spellData = proto->Spells[i];
// no spell
if (!spellData.SpellId)
if (spellData.SpellId != spellId)
continue;
// apply/unapply only at-store spells

View file

@ -1992,7 +1992,7 @@ class MANGOS_DLL_SPEC Player : public Unit
void CastItemUseSpell(Item *item,SpellCastTargets const& targets,uint8 cast_count, uint32 glyphIndex);
void ApplyItemOnStoreSpell(Item *item, bool apply);
void DestroyItemWithOnStoreSpell(Item* item);
void DestroyItemWithOnStoreSpell(Item* item, uint32 spellId);
void SendEquipmentSetList();
void SetEquipmentSet(uint32 index, EquipmentSet eqset);

View file

@ -8642,7 +8642,7 @@ void SpellAuraHolder::_RemoveSpellAuraHolder()
if (m_target->GetTypeId() == TYPEID_PLAYER && m_removeMode != AURA_REMOVE_BY_DEFAULT && m_removeMode != AURA_REMOVE_BY_DELETE)
if (ObjectGuid castItemGuid = GetCastItemGuid())
if (Item* castItem = ((Player*)m_target)->GetItemByGuid(castItemGuid))
((Player*)m_target)->DestroyItemWithOnStoreSpell(castItem);
((Player*)m_target)->DestroyItemWithOnStoreSpell(castItem, GetId());
//passive auras do not get put in slots - said who? ;)
// Note: but totem can be not accessible for aura target in time remove (to far for find in grid)

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "11796"
#define REVISION_NR "11797"
#endif // __REVISION_NR_H__