aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Protocol
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2011-01-24 23:10:08 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2011-01-24 23:10:08 +0100
commit0ad2c90d2259316be875bd1a2e441b97e189df4c (patch)
tree41f7a1ac1981f60ca4baad0a143d874ee05b6906 /src/server/game/Server/Protocol
parentba204ae3a793653dea585acffb5a36f1bca37d56 (diff)
Core/Items: Fix money refund amount. Also fix a possible exploit possibility of redeeming both vendor sellprice and money refund price in one go.
Diffstat (limited to 'src/server/game/Server/Protocol')
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/ItemHandler.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp b/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp
index 5c33e5c3d56..514461b5dfd 100755
--- a/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp
@@ -529,6 +529,12 @@ void WorldSession::HandleSellItemOpcode(WorldPacket & recv_data)
return;
}
+ // prevent selling item for sellprice when the item is still refundable
+ // this probably happens when right clicking a refundable item, the client sends both
+ // CMSG_SELL_ITEM and CMSG_REFUND_ITEM (unverified)
+ if (pItem->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_REFUNDABLE))
+ return; // Therefore, no feedback to client
+
// special case at auto sell (sell all)
if (count == 0)
{