diff --git a/conf/mod_ahbot.conf.dist b/conf/mod_ahbot.conf.dist index 57a19bc..2809963 100644 --- a/conf/mod_ahbot.conf.dist +++ b/conf/mod_ahbot.conf.dist @@ -165,11 +165,17 @@ AuctionHouseBot.PriceMinimumCenterBase.Glyph = 1000 AuctionHouseBot.PriceMinimumCenterBase.OverrideItems = ############################################################################### -# AuctionHouseBot.PriceMultiplier.* +# AuctionHouseBot.PriceMultiplier.Category.* +# AuctionHouseBot.PriceMultiplier.Quality.* # Category/Quality-level modifier values for the prices of items, which can be # represented as decimal numbers, and must be > 0. Keep in mind that # the pricing algorithm has many steps to it and this is just a tuning # modifier. +# +# AuctionHouseBot.PriceMultiplier.ItemLevel.* +# Multiplier applied to item level when determining auction price +# Final multiplier = itemLevel * this value. Set to 0 (or less) to disable. +# Default: 0 (Disabled) ############################################################################### AuctionHouseBot.PriceMultiplier.Category.Consumable = 1 @@ -197,6 +203,8 @@ AuctionHouseBot.PriceMultiplier.Quality.Legendary = 3 AuctionHouseBot.PriceMultiplier.Quality.Artifact = 3 AuctionHouseBot.PriceMultiplier.Quality.Heirloom = 3 +AuctionHouseBot.PriceMultiplier.ItemLevel = 0 + ############################################################################### # 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..a2ada1c 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 (ItemLevelPriceMultiplier > 0.0f && 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; @@ -874,6 +880,7 @@ void AuctionHouseBot::InitializeConfiguration() PriceMultiplierQualityLegendary = sConfigMgr->GetOption("AuctionHouseBot.PriceMultiplier.Quality.Legendary", 3); PriceMultiplierQualityArtifact = sConfigMgr->GetOption("AuctionHouseBot.PriceMultiplier.Quality.Artifact", 3); PriceMultiplierQualityHeirloom = sConfigMgr->GetOption("AuctionHouseBot.PriceMultiplier.Quality.Heirloom", 3); + ItemLevelPriceMultiplier = sConfigMgr->GetOption("AuctionHouseBot.PriceMultiplier.ItemLevel", 0); // Price minimums PriceMinimumCenterBaseConsumable = sConfigMgr->GetOption("AuctionHouseBot.PriceMinimumCenterBase.Consumable",1000); 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;