diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 1cef132fcda..36a597ce736 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2861,7 +2861,17 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered { m_castItemGUID = m_CastItem->GetGUID(); m_castItemEntry = m_CastItem->GetEntry(); - m_castItemLevel = int32(m_CastItem->GetItemLevel(m_CastItem->GetOwner())); + + if (Player* owner = m_CastItem->GetOwner()) + m_castItemLevel = int32(m_CastItem->GetItemLevel(owner)); + else if (m_CastItem->GetOwnerGUID() == m_caster->GetGUID()) + m_castItemLevel = int32(m_CastItem->GetItemLevel(m_caster->ToPlayer())); + else + { + SendCastResult(SPELL_FAILED_EQUIPPED_ITEM); + finish(false); + return; + } } InitExplicitTargets(*targets); |