From a20dd32de0a0eaea8a7e869b0b0aedf3f6920b5a Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 9 Oct 2010 17:33:19 +0200 Subject: [PATCH] Core/Trade: Fixed crash in WorldSession::moveItems, thx Derex for pointing it out Closes issue #4216. --HG-- branch : trunk --- .../game/Server/Protocol/Handlers/TradeHandler.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/server/game/Server/Protocol/Handlers/TradeHandler.cpp b/src/server/game/Server/Protocol/Handlers/TradeHandler.cpp index 3c3ea2b36d..2de33d342d 100755 --- a/src/server/game/Server/Protocol/Handlers/TradeHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/TradeHandler.cpp @@ -159,10 +159,11 @@ void WorldSession::moveItems(Item* myItems[], Item* hisItems[]) trader->GetName(), trader->GetSession()->GetAccountId()); } - // store - trader->MoveItemToInventory(traderDst, myItems[i], true, true); + // adjust time (depends on /played) if (myItems[i]->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_BOP_TRADEABLE)) myItems[i]->SetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME, trader->GetTotalPlayedTime()-(_player->GetTotalPlayedTime()-myItems[i]->GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME))); + // store + trader->MoveItemToInventory(traderDst, myItems[i], true, true); } if (hisItems[i]) { @@ -176,10 +177,11 @@ void WorldSession::moveItems(Item* myItems[], Item* hisItems[]) _player->GetName(), _player->GetSession()->GetAccountId()); } - // store - _player->MoveItemToInventory(playerDst, hisItems[i], true, true); + // adjust time (depends on /played) if (hisItems[i]->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_BOP_TRADEABLE)) hisItems[i]->SetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME, _player->GetTotalPlayedTime()-(trader->GetTotalPlayedTime()-hisItems[i]->GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME))); + // store + _player->MoveItemToInventory(playerDst, hisItems[i], true, true); } } else