diff options
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 |