[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) if (!item)
return; return;
@ -7592,8 +7592,7 @@ void Player::DestroyItemWithOnStoreSpell(Item* item)
{ {
_Spell const& spellData = proto->Spells[i]; _Spell const& spellData = proto->Spells[i];
// no spell if (spellData.SpellId != spellId)
if (!spellData.SpellId)
continue; continue;
// apply/unapply only at-store spells // 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 CastItemUseSpell(Item *item,SpellCastTargets const& targets,uint8 cast_count, uint32 glyphIndex);
void ApplyItemOnStoreSpell(Item *item, bool apply); void ApplyItemOnStoreSpell(Item *item, bool apply);
void DestroyItemWithOnStoreSpell(Item* item); void DestroyItemWithOnStoreSpell(Item* item, uint32 spellId);
void SendEquipmentSetList(); void SendEquipmentSetList();
void SetEquipmentSet(uint32 index, EquipmentSet eqset); 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 (m_target->GetTypeId() == TYPEID_PLAYER && m_removeMode != AURA_REMOVE_BY_DEFAULT && m_removeMode != AURA_REMOVE_BY_DELETE)
if (ObjectGuid castItemGuid = GetCastItemGuid()) if (ObjectGuid castItemGuid = GetCastItemGuid())
if (Item* castItem = ((Player*)m_target)->GetItemByGuid(castItemGuid)) 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? ;) //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) // 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__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "11796" #define REVISION_NR "11797"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__