aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarrokDC <dennis.cappendijk@gmail.com>2016-02-21 16:26:24 +0100
committerShauren <shauren.trinity@gmail.com>2016-02-21 19:47:38 +0100
commit54ed3844527c957384a2d4591bc1be0202d240d4 (patch)
treeab8f373898220f08d44bddc71996b06aae1cb94d
parent09614568ee1d1975076d794cebccec1b5e893619 (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.cpp12
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);