aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDiscover- <amort11@hotmail.com>2014-05-09 17:58:04 +0200
committerDiscover- <amort11@hotmail.com>2014-05-09 17:58:04 +0200
commit71795bf9776183429455d5742125b069836810e4 (patch)
tree653bb9f665e21b9b0f55372ff2f16c65e616214c /src
parent7aef44630e6071e356d1c59fd1524b394ab09a45 (diff)
Core/Trade: It's no longer possible to fake the amount of gold put into the trade window. It's only visual but still an exploit, allowing scamming.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp6
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp1
2 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index a701e6fc38f..e7d14d68377 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -364,6 +364,12 @@ void TradeData::SetMoney(uint32 money)
if (m_money == money)
return;
+ if (!m_player->HasEnoughMoney(money))
+ {
+ m_player->GetSession()->SendTradeStatus(TRADE_STATUS_BUSY);
+ return;
+ }
+
m_money = money;
SetAccepted(false);
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp
index 4372de9eafe..1fe4718d7ae 100644
--- a/src/server/game/Handlers/TradeHandler.cpp
+++ b/src/server/game/Handlers/TradeHandler.cpp
@@ -686,7 +686,6 @@ void WorldSession::HandleSetTradeGoldOpcode(WorldPacket& recvPacket)
if (!my_trade)
return;
- // gold can be incorrect, but this is checked at trade finished.
my_trade->SetMoney(gold);
}