diff options
author | IntelligentQuantum <IntelligentQuantum@ProtonMail.Com> | 2019-12-19 10:18:26 +0330 |
---|---|---|
committer | Stoabrogga <38475780+Stoabrogga@users.noreply.github.com> | 2019-12-19 07:48:26 +0100 |
commit | ae810491e7f7e7e5925ad94f40d7fc711568338a (patch) | |
tree | 4764cc906ed3b407397d0ce24e29f3b7fc65a7aa /src/server/game/Handlers/ItemHandler.cpp | |
parent | f1f553b5094594beb090ff934eba7bdd1bafd97a (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.cpp | 13 |
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); |