From 3fcaae6e87fec53fc30253c074c47f50c6ef8e80 Mon Sep 17 00:00:00 2001 From: Spargel Date: Sun, 29 Jun 2025 04:52:50 -0500 Subject: [PATCH] Added itemlevel price multiplier with conf setting. --- conf/mod_ahbot.conf.dist | 5 +++++ src/AuctionHouseBot.cpp | 9 +++++++++ src/AuctionHouseBot.h | 2 ++ 3 files changed, 16 insertions(+) diff --git a/conf/mod_ahbot.conf.dist b/conf/mod_ahbot.conf.dist index 57a19bc..5d13658 100644 --- a/conf/mod_ahbot.conf.dist +++ b/conf/mod_ahbot.conf.dist @@ -197,6 +197,11 @@ AuctionHouseBot.PriceMultiplier.Quality.Legendary = 3 AuctionHouseBot.PriceMultiplier.Quality.Artifact = 3 AuctionHouseBot.PriceMultiplier.Quality.Heirloom = 3 +# Multiplier applied to item level when determining auction price +# Final multiplier = itemLevel * this value +# Default: 0.1 +AuctionHouseBot.PriceMultiplier.ItemLevel = 0.1 + ############################################################################### # AuctionHouseBot.RandomStackRatio.* # Used to determine how often a stack of the class will be single or randomly-size stacked when posted diff --git a/src/AuctionHouseBot.cpp b/src/AuctionHouseBot.cpp index edf2365..57b7a83 100644 --- a/src/AuctionHouseBot.cpp +++ b/src/AuctionHouseBot.cpp @@ -164,6 +164,12 @@ void AuctionHouseBot::calculateItemValue(ItemTemplate const* itemProto, uint64& outBuyoutPrice *= qualityPriceMultplier; outBuyoutPrice *= classPriceMultiplier; + // Apply item level multiplier + if (itemProto->ItemLevel > 0) + { + outBuyoutPrice *= itemProto->ItemLevel * ItemLevelPriceMultiplier; + } + // If a vendor sells this item, make the price at least that high if (itemProto->SellPrice > outBuyoutPrice) outBuyoutPrice = itemProto->SellPrice; @@ -915,6 +921,9 @@ void AuctionHouseBot::InitializeConfiguration() NeutralConfig.SetMaxItems(sConfigMgr->GetOption("AuctionHouseBot.Neutral.MaxItems", 15000)); NeutralConfig.SetBiddingInterval(sConfigMgr->GetOption("AuctionHouseBot.Neutral.BidInterval", 1)); NeutralConfig.SetBidsPerInterval(sConfigMgr->GetOption("AuctionHouseBot.Neutral.BidsPerInterval", 1)); + + ItemLevelPriceMultiplier = sConfigMgr->GetOption("AuctionHouseBot.PriceMultiplier.ItemLevel", 1.0f); + } uint32 AuctionHouseBot::GetRandomStackValue(std::string configKeyString, uint32 defaultValue) diff --git a/src/AuctionHouseBot.h b/src/AuctionHouseBot.h index 71fcdee..bf79d59 100644 --- a/src/AuctionHouseBot.h +++ b/src/AuctionHouseBot.h @@ -223,6 +223,8 @@ private: uint32 PriceMinimumCenterBaseMisc; uint32 PriceMinimumCenterBaseGlyph; std::unordered_map PriceMinimumCenterBaseOverridesByItemID; + float ItemLevelPriceMultiplier; + AHBConfig AllianceConfig; AHBConfig HordeConfig;