fix(Core/ItemHandler): fix selling items over gold limit (#11673)

* cherry-pick commit (d0b8fb87f2)

Co-Authored-By: okfok <44704482+okfok@users.noreply.github.com>

Co-authored-by: okfok <44704482+okfok@users.noreply.github.com>
This commit is contained in:
Kitzunu
2022-05-08 10:42:35 +02:00
committed by GitHub
parent ca0de49df2
commit 33f6486180

View File

@@ -807,6 +807,14 @@ void WorldSession::HandleSellItemOpcode(WorldPacket& recvData)
{
if (pProto->SellPrice > 0)
{
uint32 money = pProto->SellPrice * count;
if (_player->GetMoney() >= MAX_MONEY_AMOUNT - money) // prevent exceeding gold limit
{
_player->SendEquipError(EQUIP_ERR_TOO_MUCH_GOLD, nullptr, nullptr);
_player->SendSellError(SELL_ERR_UNK, creature, itemguid, 0);
return;
}
if (sWorld->getBoolConfig(CONFIG_ITEMDELETE_VENDOR))
recoveryItem(pItem);
@@ -839,7 +847,6 @@ void WorldSession::HandleSellItemOpcode(WorldPacket& recvData)
_player->UpdateTitansGrip();
}
uint32 money = pProto->SellPrice * count;
_player->ModifyMoney(money);
_player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS, money);
}