diff options
author | click <none@none> | 2010-11-29 00:59:02 +0100 |
---|---|---|
committer | click <none@none> | 2010-11-29 00:59:02 +0100 |
commit | efeb512fbf6d25e50ade629194037c9cefac46cc (patch) | |
tree | 9bd21c445886724719f41ab1d7905b52ed1dd7a7 /src/server/game/AuctionHouse/AuctionHouseMgr.cpp | |
parent | 3fccb2b7bfcbc819988c2f8aa435a810f3707c82 (diff) |
Core/AuctionHouse: Calculate deposit taken for item(s) being auctioned properly + pick up correct number of items being auctioned (Thanks to Paradox)
Comment issue 4958
Added and pending further testing. Also need testing for issue 3681 (related to AH packetsize?).
Closes issue 4089.
Closes issue 4919.
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/AuctionHouse/AuctionHouseMgr.cpp')
-rw-r--r-- | src/server/game/AuctionHouse/AuctionHouseMgr.cpp | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index e506f8c608b..04970e79860 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -63,28 +63,19 @@ AuctionHouseObject * AuctionHouseMgr::GetAuctionsMap(uint32 factionTemplateId) return &mNeutralAuctions; } -uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32 time, Item *pItem) +uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32 time, Item *pItem, uint32 count) { uint32 MSV = pItem->GetProto()->SellPrice; - int32 deposit; - uint32 timeHr = (((time / 60) / 60) / 12); - - if (MSV > 0) - deposit = (int32)floor((double)MSV * (((double)(entry->depositPercent * 3) / 100.0f * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT) * (double)pItem->GetCount()))) * timeHr; - else - deposit = 0; - - sLog.outDebug("Sellprice: %u / Depositpercent: %f / AT1: %u / AT2: %u / AT3: %u / Count: %u", MSV, ((double)entry->depositPercent / 100.0f), time, MIN_AUCTION_TIME, timeHr, pItem->GetCount() ); - if (deposit > 0) - { - sLog.outDebug("Deposit: %u", deposit); - return deposit; - } - else - { - sLog.outDebug("Deposit: 0"); + if (MSV <= 0) return 0; - } + uint32 timeHr = (((time / 60) / 60) /12); + float multiplier = (float)(entry->depositPercent * 3) / 100.0f; + uint32 deposit = ((uint32)((float)MSV * multiplier * (float)count)/3) * 3 * timeHr; + sLog.outDebug("MSV: %u", MSV); + sLog.outDebug("Items: %u", count); + sLog.outDebug("Multiplier: %f", multiplier); + sLog.outDebug("Deposit: %u", deposit); + return deposit; } //does not clear ram |