aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMachiavelli <machiaveltman@gmail.com>2012-01-18 03:53:11 -0800
committerMachiavelli <machiaveltman@gmail.com>2012-01-18 03:53:11 -0800
commit1f42324c4430cc42a7929a2c5748410d7647d380 (patch)
treef902fcc4a450694f7b7c1792ff8f5da297113cc3
parentafc0d72761e8ceb7e733d1f2fe16a52eb4f01f1b (diff)
parentcc88681dc5da60218e36ca00873cdf3033bcc5b5 (diff)
Merge pull request #4871 from TrinityCoreRu/master
Core/Items: Really fix a trading spoof exploit.
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp6
-rwxr-xr-xsrc/server/game/Entities/Player/Player.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index ed65e1ce527..855fb9332b2 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -319,11 +319,11 @@ Item* TradeData::GetSpellCastItem() const
return m_spellCastItem ? m_player->GetItemByGuid(m_spellCastItem) : NULL;
}
-void TradeData::SetItem(TradeSlots slot, Item* item)
+void TradeData::SetItem(TradeSlots slot, Item* item, bool update)
{
uint64 itemGuid = item ? item->GetGUID() : 0;
- if (m_items[slot] == itemGuid)
+ if (m_items[slot] == itemGuid && !update)
return;
m_items[slot] = itemGuid;
@@ -12893,7 +12893,7 @@ void Player::SplitItem(uint16 src, uint16 dst, uint32 count)
//! in the underlying packet builder function
TradeSlots const slot = GetTradeData()->GetTradeSlotForItem(pSrcItem->GetGUID());
if (slot != TRADE_SLOT_INVALID)
- GetTradeData()->SetItem(slot, pSrcItem);
+ GetTradeData()->SetItem(slot, pSrcItem, true);
}
void Player::SwapItem(uint16 src, uint16 dst)
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index fccd380bd29..ae889e342c3 100755
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1004,7 +1004,7 @@ class TradeData
Item* GetItem(TradeSlots slot) const;
bool HasItem(uint64 itemGuid) const;
TradeSlots const GetTradeSlotForItem(uint64 itemGuid);
- void SetItem(TradeSlots slot, Item* item);
+ void SetItem(TradeSlots slot, Item* item, bool update = false);
uint32 GetSpell() const { return m_spell; }
void SetSpell(uint32 spell_id, Item* castItem = NULL);