aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <none@none>2010-10-09 17:33:19 +0200
committerShauren <none@none>2010-10-09 17:33:19 +0200
commita20dd32de0a0eaea8a7e869b0b0aedf3f6920b5a (patch)
treee4b840542e9f5f321ad642e23ea5d8cbf8995434 /src
parent9a47bc96a1ebb3d10d6a8ead0f26f958c4f8b838 (diff)
Core/Trade: Fixed crash in WorldSession::moveItems, thx Derex for pointing it out
Closes issue #4216. --HG-- branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/TradeHandler.cpp10
1 files 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 3c3ea2b36d6..2de33d342da 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