From 229ee1b49794088e2ea91f3828c13529abb4289f Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 24 Jun 2021 11:16:14 -0400 Subject: [PATCH] Core/AuctionHouse: Fixed paying for commodities Port From (https://github.com/TrinityCore/TrinityCore/commit/0bbf3f7300895008a37796f3d5be7e8f23c9a143) --- Source/Game/AuctionHouse/AuctionManager.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Source/Game/AuctionHouse/AuctionManager.cs b/Source/Game/AuctionHouse/AuctionManager.cs index 730889f33..c38428d10 100644 --- a/Source/Game/AuctionHouse/AuctionManager.cs +++ b/Source/Game/AuctionHouse/AuctionManager.cs @@ -1131,7 +1131,7 @@ namespace Game _replicateThrottleMap[player.GetGUID()] = throttleData; } - public ulong CalcualteAuctionHouseCut(ulong bidAmount) + public ulong CalculateAuctionHouseCut(ulong bidAmount) { return (ulong)Math.Max((long)(MathFunctions.CalculatePct(bidAmount, _auctionHouse.ConsignmentRate) * WorldConfig.GetFloatValue(WorldCfg.RateAuctionCut)), 0); } @@ -1311,7 +1311,7 @@ namespace Game $"Count: {boughtFromAuction}) and pay money: { auction.BuyoutOrUnitPrice * boughtFromAuction}. Original owner {ownerName} (Account: {Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(auction.Owner)})"); } - ulong auctionHouseCut = CalcualteAuctionHouseCut(auction.BuyoutOrUnitPrice * boughtFromAuction); + ulong auctionHouseCut = CalculateAuctionHouseCut(auction.BuyoutOrUnitPrice * boughtFromAuction); ulong depositPart = Global.AuctionHouseMgr.GetCommodityAuctionDeposit(items[0].Items[0].GetTemplate(), (auction.EndTime - auction.StartTime), boughtFromAuction); ulong profit = auction.BuyoutOrUnitPrice * boughtFromAuction + depositPart - auctionHouseCut; @@ -1329,6 +1329,9 @@ namespace Game .SendMailTo(trans, new MailReceiver(Global.ObjAccessor.FindConnectedPlayer(auction.Owner), auction.Owner), new MailSender(this), MailCheckMask.Copied, WorldConfig.GetUIntValue(WorldCfg.MailDeliveryDelay)); } + player.ModifyMoney(-(long)totalPrice); + player.SaveGoldToDB(trans); + foreach (MailedItemsBatch batch in items) { MailDraft mail = new(Global.AuctionHouseMgr.BuildCommodityAuctionMailSubject(AuctionMailType.Won, itemId, batch.Quantity), @@ -1479,7 +1482,7 @@ namespace Game // owner exist if ((owner || Global.CharacterCacheStorage.HasCharacterCacheEntry(auction.Owner)))// && !sAuctionBotConfig.IsBotChar(auction.Owner)) { - ulong auctionHouseCut = CalcualteAuctionHouseCut(auction.BidAmount); + ulong auctionHouseCut = CalculateAuctionHouseCut(auction.BidAmount); ulong profit = auction.BidAmount + auction.Deposit - auctionHouseCut; //FIXME: what do if owner offline @@ -1566,7 +1569,7 @@ namespace Game new MailDraft(Global.AuctionHouseMgr.BuildItemAuctionMailSubject(AuctionMailType.Invoice, auction), Global.AuctionHouseMgr.BuildAuctionInvoiceMailBody(auction.Bidder, auction.BidAmount, auction.BuyoutOrUnitPrice, (uint)auction.Deposit, - CalcualteAuctionHouseCut(auction.BidAmount), WorldConfig.GetUIntValue(WorldCfg.MailDeliveryDelay), eta)) + CalculateAuctionHouseCut(auction.BidAmount), WorldConfig.GetUIntValue(WorldCfg.MailDeliveryDelay), eta)) .SendMailTo(trans, new MailReceiver(owner, auction.Owner), new MailSender(this), MailCheckMask.Copied); } }