diff options
author | KarrokDC <dennis.cappendijk@gmail.com> | 2016-02-21 16:26:24 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-02-21 19:47:38 +0100 |
commit | 54ed3844527c957384a2d4591bc1be0202d240d4 (patch) | |
tree | ab8f373898220f08d44bddc71996b06aae1cb94d | |
parent | 09614568ee1d1975076d794cebccec1b5e893619 (diff) |
Create fallback for item-cast spells while character is still in the process of logging in.
closes #16604
-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); |