diff options
author | Erik Schilling <ablu.erikschilling@googlemail.com> | 2011-08-26 21:48:00 +0800 |
---|---|---|
committer | Yohann Ferreira <yohann.ferreira@orange.fr> | 2011-09-01 04:35:21 +0800 |
commit | 4f0ebc30c5a5d35226931ec8cc463dac13d979e5 (patch) | |
tree | 55cc6df475bdc251940c49a5f3d63dcc7326bbbc /src | |
parent | e892e5aeff8c45f2d0c9167afa5737178e66754c (diff) | |
download | manaserv-4f0ebc30c5a5d35226931ec8cc463dac13d979e5.tar.gz manaserv-4f0ebc30c5a5d35226931ec8cc463dac13d979e5.tar.bz2 manaserv-4f0ebc30c5a5d35226931ec8cc463dac13d979e5.tar.xz manaserv-4f0ebc30c5a5d35226931ec8cc463dac13d979e5.zip |
Prevented char from picking up items when inventory is full.
Resolves: Mana-Mantis: #379.
Diffstat (limited to 'src')
-rw-r--r-- | src/game-server/gamehandler.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/game-server/gamehandler.cpp b/src/game-server/gamehandler.cpp index 30a620cd..92971903 100644 --- a/src/game-server/gamehandler.cpp +++ b/src/game-server/gamehandler.cpp @@ -472,15 +472,20 @@ void GameHandler::handlePickup(GameClient &client, MessageIn &message) { Item *item = static_cast< Item * >(o); ItemClass *ic = item->getItemClass(); - Inventory(client.character).insert(ic->getDatabaseID(), - item->getAmount()); - GameState::remove(item); - // log transaction - std::stringstream str; - str << "User picked up item " << ic->getDatabaseID() - << " at " << opos.x << "x" << opos.y; - accountHandler->sendTransaction(client.character->getDatabaseID(), - TRANS_ITEM_PICKUP, str.str()); + if (!Inventory(client.character).insert(ic->getDatabaseID(), + item->getAmount())) + { + + GameState::remove(item); + // log transaction + std::stringstream str; + str << "User picked up item " << ic->getDatabaseID() + << " at " << opos.x << "x" << opos.y; + accountHandler->sendTransaction( + client.character->getDatabaseID(), + TRANS_ITEM_PICKUP, str.str() + ); + } break; } } |