Added itemlevel price multiplier with conf setting.

This commit is contained in:
Spargel
2025-06-29 04:52:50 -05:00
parent 694f3a8853
commit 3fcaae6e87
3 changed files with 16 additions and 0 deletions

View File

@@ -197,6 +197,11 @@ AuctionHouseBot.PriceMultiplier.Quality.Legendary = 3
AuctionHouseBot.PriceMultiplier.Quality.Artifact = 3 AuctionHouseBot.PriceMultiplier.Quality.Artifact = 3
AuctionHouseBot.PriceMultiplier.Quality.Heirloom = 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.* # AuctionHouseBot.RandomStackRatio.*
# Used to determine how often a stack of the class will be single or randomly-size stacked when posted # Used to determine how often a stack of the class will be single or randomly-size stacked when posted

View File

@@ -164,6 +164,12 @@ void AuctionHouseBot::calculateItemValue(ItemTemplate const* itemProto, uint64&
outBuyoutPrice *= qualityPriceMultplier; outBuyoutPrice *= qualityPriceMultplier;
outBuyoutPrice *= classPriceMultiplier; 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 a vendor sells this item, make the price at least that high
if (itemProto->SellPrice > outBuyoutPrice) if (itemProto->SellPrice > outBuyoutPrice)
outBuyoutPrice = itemProto->SellPrice; outBuyoutPrice = itemProto->SellPrice;
@@ -915,6 +921,9 @@ void AuctionHouseBot::InitializeConfiguration()
NeutralConfig.SetMaxItems(sConfigMgr->GetOption<uint32>("AuctionHouseBot.Neutral.MaxItems", 15000)); NeutralConfig.SetMaxItems(sConfigMgr->GetOption<uint32>("AuctionHouseBot.Neutral.MaxItems", 15000));
NeutralConfig.SetBiddingInterval(sConfigMgr->GetOption<uint32>("AuctionHouseBot.Neutral.BidInterval", 1)); NeutralConfig.SetBiddingInterval(sConfigMgr->GetOption<uint32>("AuctionHouseBot.Neutral.BidInterval", 1));
NeutralConfig.SetBidsPerInterval(sConfigMgr->GetOption<uint32>("AuctionHouseBot.Neutral.BidsPerInterval", 1)); NeutralConfig.SetBidsPerInterval(sConfigMgr->GetOption<uint32>("AuctionHouseBot.Neutral.BidsPerInterval", 1));
ItemLevelPriceMultiplier = sConfigMgr->GetOption<float>("AuctionHouseBot.PriceMultiplier.ItemLevel", 1.0f);
} }
uint32 AuctionHouseBot::GetRandomStackValue(std::string configKeyString, uint32 defaultValue) uint32 AuctionHouseBot::GetRandomStackValue(std::string configKeyString, uint32 defaultValue)

View File

@@ -223,6 +223,8 @@ private:
uint32 PriceMinimumCenterBaseMisc; uint32 PriceMinimumCenterBaseMisc;
uint32 PriceMinimumCenterBaseGlyph; uint32 PriceMinimumCenterBaseGlyph;
std::unordered_map<uint32, uint64> PriceMinimumCenterBaseOverridesByItemID; std::unordered_map<uint32, uint64> PriceMinimumCenterBaseOverridesByItemID;
float ItemLevelPriceMultiplier;
AHBConfig AllianceConfig; AHBConfig AllianceConfig;
AHBConfig HordeConfig; AHBConfig HordeConfig;