summaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ItemHandler.cpp
diff options
context:
space:
mode:
authorIntelligentQuantum <IntelligentQuantum@ProtonMail.Com>2019-12-19 10:18:26 +0330
committerStoabrogga <38475780+Stoabrogga@users.noreply.github.com>2019-12-19 07:48:26 +0100
commitae810491e7f7e7e5925ad94f40d7fc711568338a (patch)
tree4764cc906ed3b407397d0ce24e29f3b7fc65a7aa /src/server/game/Handlers/ItemHandler.cpp
parentf1f553b5094594beb090ff934eba7bdd1bafd97a (diff)
fix(Core/ItemHandler): crash buy back item (#2511)
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index f1c806c299..7c22a85407 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -784,19 +784,20 @@ void WorldSession::HandleBuybackItem(WorldPacket & recvData)
InventoryResult msg = _player->CanStoreItem(NULL_BAG, NULL_SLOT, dest, pItem, false);
if (msg == EQUIP_ERR_OK)
{
- _player->ModifyMoney(-(int32)price);
- _player->RemoveItemFromBuyBackSlot(slot, false);
- _player->ItemAddedQuestCheck(pItem->GetEntry(), pItem->GetCount());
- _player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM, pItem->GetEntry(), pItem->GetCount());
- _player->StoreItem(dest, pItem, true);
-
if (sWorld->getBoolConfig(CONFIG_ITEMDELETE_VENDOR))
{
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_RECOVERY_ITEM);
stmt->setUInt32(0, _player->GetGUID());
stmt->setUInt32(1, pItem->GetEntry());
+ stmt->setUInt32(2, pItem->GetCount());
CharacterDatabase.Execute(stmt);
}
+
+ _player->ModifyMoney(-(int32)price);
+ _player->RemoveItemFromBuyBackSlot(slot, false);
+ _player->ItemAddedQuestCheck(pItem->GetEntry(), pItem->GetCount());
+ _player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM, pItem->GetEntry(), pItem->GetCount());
+ _player->StoreItem(dest, pItem, true);
}
else
_player->SendEquipError(msg, pItem, NULL);