Add price multipliers

This commit is contained in:
NathanHandley
2025-01-20 12:19:07 -06:00
parent 666bc3caae
commit 700c41ca7a
3 changed files with 59 additions and 15 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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;