diff options
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index ee447509c2b..3305d5e3a03 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -453,9 +453,13 @@ void SpellCastTargets::Update(Unit* caster) if (m_targetMask & TARGET_FLAG_ITEM) m_itemTarget = player->GetItemByGuid(m_itemTargetGUID); else if (m_targetMask & TARGET_FLAG_TRADE_ITEM) - if (m_itemTargetGUID == ObjectGuid(uint64(0), uint64(TRADE_SLOT_NONTRADED))) // here it is not guid but slot. Also prevents hacking slots + { + ObjectGuid nonTradedGuid; + nonTradedGuid.SetRawValue(uint64(0), uint64(TRADE_SLOT_NONTRADED)); + if (m_itemTargetGUID == nonTradedGuid) // here it is not guid but slot. Also prevents hacking slots if (TradeData* pTrade = player->GetTradeData()) m_itemTarget = pTrade->GetTraderData()->GetItem(TRADE_SLOT_NONTRADED); + } if (m_itemTarget) m_itemTargetEntry = m_itemTarget->GetEntry(); |