diff --git a/conf/mod_ahbot.conf.dist b/conf/mod_ahbot.conf.dist index a3a4d04..48a9c3f 100644 --- a/conf/mod_ahbot.conf.dist +++ b/conf/mod_ahbot.conf.dist @@ -67,7 +67,7 @@ AuctionHouseBot.Neutral.BidsPerInterval = 1 ############################################################################### # AuctionHouseBot.ListProportion.* # Determines how many of the listings, proportionally, show up as new auctions -# "0" will mean the item never shows up +# "0" will mean the item never shows up. Values must be whole numbers. # Defaults: Consumable: 2 # Container: 2 # Weapon: 6 @@ -101,6 +101,39 @@ AuctionHouseBot.ListProportion.Key = 1 AuctionHouseBot.ListProportion.Misc = 0 AuctionHouseBot.ListProportion.Glyph = 2 +############################################################################### +# AuctionHouseBot.PriceMultiplier.* +# 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.Category.Consumable = 1 +AuctionHouseBot.PriceMultiplier.Category.Container = 1 +AuctionHouseBot.PriceMultiplier.Category.Weapon = 1 +AuctionHouseBot.PriceMultiplier.Category.Gem = 1 +AuctionHouseBot.PriceMultiplier.Category.Armor = 1 +AuctionHouseBot.PriceMultiplier.Category.Reagent = 1 +AuctionHouseBot.PriceMultiplier.Category.Projectile = 1 +AuctionHouseBot.PriceMultiplier.Category.TradeGood = 2 +AuctionHouseBot.PriceMultiplier.Category.Generic = 1 +AuctionHouseBot.PriceMultiplier.Category.Recipe = 1 +AuctionHouseBot.PriceMultiplier.Category.Quiver = 1 +AuctionHouseBot.PriceMultiplier.Category.Quest = 1 +AuctionHouseBot.PriceMultiplier.Category.Key = 1 +AuctionHouseBot.PriceMultiplier.Category.Misc = 1 +AuctionHouseBot.PriceMultiplier.Category.Glyph = 1 + +AuctionHouseBot.PriceMultiplier.Quality.Poor = 1 +AuctionHouseBot.PriceMultiplier.Quality.Normal = 1 +AuctionHouseBot.PriceMultiplier.Quality.Uncommon = 1.8 +AuctionHouseBot.PriceMultiplier.Quality.Rare = 1.9 +AuctionHouseBot.PriceMultiplier.Quality.Epic = 2.1 +AuctionHouseBot.PriceMultiplier.Quality.Legendary = 3 +AuctionHouseBot.PriceMultiplier.Quality.Artifact = 3 +AuctionHouseBot.PriceMultiplier.Quality.Heirloom = 3 + ############################################################################### # 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 04e8d09..2d931c0 100644 --- a/src/AuctionHouseBot.cpp +++ b/src/AuctionHouseBot.cpp @@ -113,12 +113,7 @@ void AuctionHouseBot::calculateItemValue(ItemTemplate const* itemProto, uint64& double powValue = 1.8; switch (itemProto->Quality) { - case ITEM_QUALITY_UNCOMMON: powValue = 1.8; break; - case ITEM_QUALITY_RARE: powValue = 1.9; break; - case ITEM_QUALITY_EPIC: powValue = 2.1; break; - default: break; - } - uint32 minPossiblePrice = (uint32)(pow((double)itemProto->ItemLevel, powValue)); + uint32 minPossiblePrice = (uint32)(pow((double)itemProto->ItemLevel, qualityPriceMultplier)); if (minPossiblePrice > outBuyoutPrice) { outBuyoutPrice = urand(minPossiblePrice, minPossiblePrice * 1.1); @@ -133,14 +128,7 @@ void AuctionHouseBot::calculateItemValue(ItemTemplate const* itemProto, uint64& } // Multiply the price based on quality - switch (itemProto->Quality) - { - case ITEM_QUALITY_UNCOMMON: outBuyoutPrice *= 2; break; - case ITEM_QUALITY_RARE: outBuyoutPrice *= 5; break; - case ITEM_QUALITY_EPIC: outBuyoutPrice *= 8; break; - case ITEM_QUALITY_LEGENDARY: outBuyoutPrice *= 13; break; - default: break; - } + outBuyoutPrice *= qualityPriceMultplier; // If a vendor sells this item, make the price at least that high if (itemProto->SellPrice > outBuyoutPrice) diff --git a/src/AuctionHouseBot.h b/src/AuctionHouseBot.h index 7ea2d78..720e50e 100644 --- a/src/AuctionHouseBot.h +++ b/src/AuctionHouseBot.h @@ -168,6 +168,29 @@ private: uint32 ListProportionKey; uint32 ListProportionMisc; uint32 ListProportionGlyph; + double PriceMultiplierCategoryConsumable; + double PriceMultiplierCategoryContainer; + double PriceMultiplierCategoryWeapon; + double PriceMultiplierCategoryGem; + double PriceMultiplierCategoryArmor; + double PriceMultiplierCategoryReagent; + double PriceMultiplierCategoryProjectile; + double PriceMultiplierCategoryTradeGood; + double PriceMultiplierCategoryGeneric; + double PriceMultiplierCategoryRecipe; + double PriceMultiplierCategoryQuiver; + double PriceMultiplierCategoryQuest; + double PriceMultiplierCategoryKey; + double PriceMultiplierCategoryMisc; + double PriceMultiplierCategoryGlyph; + double PriceMultiplierQualityPoor; + double PriceMultiplierQualityNormal; + double PriceMultiplierQualityUncommon; + double PriceMultiplierQualityRare; + double PriceMultiplierQualityEpic; + double PriceMultiplierQualityLegendary; + double PriceMultiplierQualityArtifact; + double PriceMultiplierQualityHeirloom; AHBConfig AllianceConfig; AHBConfig HordeConfig;