diff options
Diffstat (limited to 'src/server/game/Handlers/TradeHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/TradeHandler.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp index 4545a8df353..b25f0a301a9 100644 --- a/src/server/game/Handlers/TradeHandler.cpp +++ b/src/server/game/Handlers/TradeHandler.cpp @@ -353,6 +353,20 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPacket& /*recvPacket*/) return; } + if (_player->GetMoney() >= uint64(MAX_MONEY_AMOUNT) - his_trade->GetMoney()) + { + _player->SendEquipError(EQUIP_ERR_TOO_MUCH_GOLD, NULL, NULL); + my_trade->SetAccepted(false, true); + return; + } + + if (trader->GetMoney() >= uint64(MAX_MONEY_AMOUNT) - my_trade->GetMoney()) + { + trader->SendEquipError(EQUIP_ERR_TOO_MUCH_GOLD, NULL, NULL); + his_trade->SetAccepted(false, true); + return; + } + // not accept if some items now can't be trade (cheating) for (uint8 i = 0; i < TRADE_SLOT_TRADED_COUNT; ++i) { @@ -363,6 +377,7 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPacket& /*recvPacket*/) SendTradeStatus(TRADE_STATUS_TRADE_CANCELED); return; } + if (item->IsBindedNotWith(trader)) { SendTradeStatus(TRADE_STATUS_NOT_ELIGIBLE); |