mirror of
https://github.com/NathanHandley/mod-ah-bot-plus.git
synced 2026-01-13 01:08:37 +00:00
Add configs to enable/disable sellprice restrictions
This commit is contained in:
@@ -97,6 +97,11 @@ AuctionHouseBot.ListingExpireTimeInSecondsMax = 86400
|
|||||||
# Note: Do not go negative on either number. Set both to 0 if you want bids
|
# Note: Do not go negative on either number. Set both to 0 if you want bids
|
||||||
# to always be exactly buyout for both buyer and seller.
|
# to always be exactly buyout for both buyer and seller.
|
||||||
#
|
#
|
||||||
|
# AuctionHouseBot.BuyoutBelowVendorVariationAddPercentEnabled
|
||||||
|
# If true, price calculation will apply the following config percent when
|
||||||
|
# a price's buyout is calculated below the item_template.SellPrice
|
||||||
|
# Default: true
|
||||||
|
#
|
||||||
# AuctionHouseBot.BuyoutBelowVendorVariationAddPercent
|
# AuctionHouseBot.BuyoutBelowVendorVariationAddPercent
|
||||||
# If a buyout calculates to a price below vendor price, this is how much to
|
# If a buyout calculates to a price below vendor price, this is how much to
|
||||||
# add to it in order to bring it up above vendor price.
|
# add to it in order to bring it up above vendor price.
|
||||||
@@ -110,6 +115,7 @@ AuctionHouseBot.BuyoutVariationReducePercent = 0.15
|
|||||||
AuctionHouseBot.BuyoutVariationAddPercent = 0.25
|
AuctionHouseBot.BuyoutVariationAddPercent = 0.25
|
||||||
AuctionHouseBot.BidVariationHighReducePercent = 0
|
AuctionHouseBot.BidVariationHighReducePercent = 0
|
||||||
AuctionHouseBot.BidVariationLowReducePercent = 0.25
|
AuctionHouseBot.BidVariationLowReducePercent = 0.25
|
||||||
|
AuctionHouseBot.BuyoutBelowVendorVariationAddPercentEnabled = true
|
||||||
AuctionHouseBot.BuyoutBelowVendorVariationAddPercent = 0.25
|
AuctionHouseBot.BuyoutBelowVendorVariationAddPercent = 0.25
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -372,11 +378,21 @@ AuctionHouseBot.ListProportion.CategoryGlyph.QualityHeirloom = 0
|
|||||||
AuctionHouseBot.ListProportion.ListMultipliedItemIDs = 2589:10,2592:10,4306:10,4338:10,14047:10,21877:10,33470:10,2318:10,2319:10,4234:10,4304:10,8170:10,21887:10,33568:10,2770:10,2771:10,2772:10,2775:10,2776:10,3858:10,7911:10,10620:10,23424:10,23425:10,23426:10,23427:10,36909:10,36912:10,36910:10,2835:10,2836:10,2838:10,12365:10,7912:10,765:10,785:10,2447:10,2449:10,2450:10,2452:10,2453:10,3355:10,3356:10,3357:10,3358:10,3369:10,3818:10,3819:10,3820:10,3821:10,4625:10,8153:10,8831:10,8836:10,8838:10,8839:10,8845:10,8846:10,13463:10,13464:10,13465:10,13466:10,13467:10,13468:10,22785:10,22786:10,22787:10,22789:10,22790:10,22791:10,22792:10,22793:10,22794:10,22795:10,36901:10,36902:10,36903:10,36904:10,36905:10,36906:10,36907:10,36908:10,37921:10,10938:10,10939:10,10940:10,10978:10,10998:10,11082:10,11084:10,11128:10,11134:10,11135:10,11138:10,11139:10,11174:10,11175:10,11177:10,11178:10,14343:10,16202:10,16203:10,16204:10,22445:10,22446:10,22447:10,22448:10,22449:10,34052:10,34053:10,34054:10,34055:10,34056:10,774:10,818:10,1206:10,1210:10,1529:10,1705:10,3864:10,7909:10,7910:10,12361:10,12364:10,12799:10,12800:10,21929:10,23077:10,23079:10,23107:10,23112:10,23117:10,23436:10,23437:10,23438:10,23439:10,23440:10,23441:10,36917:10,36918:10,36919:10,36920:10,36921:10,36922:10,36923:10,36924:10,36925:10,36926:10,36927:10,36928:10,36929:10,36930:10,36931:10,36932:10,36933:10,36934:10,118:5,858:5,929:5,2455:5,2456:5,3827:5,3928:5,6149:5,13443:5,13446:5,18253:5,22829:5,22832:5,22850:5,33447:5,33448:5,39671:5,40067:5,43569:5,43570:5
|
AuctionHouseBot.ListProportion.ListMultipliedItemIDs = 2589:10,2592:10,4306:10,4338:10,14047:10,21877:10,33470:10,2318:10,2319:10,4234:10,4304:10,8170:10,21887:10,33568:10,2770:10,2771:10,2772:10,2775:10,2776:10,3858:10,7911:10,10620:10,23424:10,23425:10,23426:10,23427:10,36909:10,36912:10,36910:10,2835:10,2836:10,2838:10,12365:10,7912:10,765:10,785:10,2447:10,2449:10,2450:10,2452:10,2453:10,3355:10,3356:10,3357:10,3358:10,3369:10,3818:10,3819:10,3820:10,3821:10,4625:10,8153:10,8831:10,8836:10,8838:10,8839:10,8845:10,8846:10,13463:10,13464:10,13465:10,13466:10,13467:10,13468:10,22785:10,22786:10,22787:10,22789:10,22790:10,22791:10,22792:10,22793:10,22794:10,22795:10,36901:10,36902:10,36903:10,36904:10,36905:10,36906:10,36907:10,36908:10,37921:10,10938:10,10939:10,10940:10,10978:10,10998:10,11082:10,11084:10,11128:10,11134:10,11135:10,11138:10,11139:10,11174:10,11175:10,11177:10,11178:10,14343:10,16202:10,16203:10,16204:10,22445:10,22446:10,22447:10,22448:10,22449:10,34052:10,34053:10,34054:10,34055:10,34056:10,774:10,818:10,1206:10,1210:10,1529:10,1705:10,3864:10,7909:10,7910:10,12361:10,12364:10,12799:10,12800:10,21929:10,23077:10,23079:10,23107:10,23112:10,23117:10,23436:10,23437:10,23438:10,23439:10,23440:10,23441:10,36917:10,36918:10,36919:10,36920:10,36921:10,36922:10,36923:10,36924:10,36925:10,36926:10,36927:10,36928:10,36929:10,36930:10,36931:10,36932:10,36933:10,36934:10,118:5,858:5,929:5,2455:5,2456:5,3827:5,3928:5,6149:5,13443:5,13446:5,18253:5,22829:5,22832:5,22850:5,33447:5,33448:5,39671:5,40067:5,43569:5,43570:5
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
# AuctionHouseBot.PriceMinimumCenterBase.UseItemSellPriceIfHigher
|
||||||
|
# If set to true, the minimum center base will use the item sell price
|
||||||
|
# defined in sql table item_template.SellPrice if that value is higher
|
||||||
|
# than the defined PriceMinimumCenterBase below. Generally leave this
|
||||||
|
# as true, as the price minimums were meant only to catch zero or
|
||||||
|
# ultra low value items. Basically, if this is false then all items
|
||||||
|
# will use this category price as the base before formulas, so it
|
||||||
|
# is only advisable to make false if you are doing item level settings
|
||||||
|
# Note: Be mindful of BuyoutBelowVendorVariationAddPercentEnabled
|
||||||
|
#
|
||||||
# AuctionHouseBot.PriceMinimumCenterBase.*
|
# AuctionHouseBot.PriceMinimumCenterBase.*
|
||||||
# Category-level price minimums, in copper, before any multipliers come
|
# Category-level price minimums, in copper, before any multipliers come
|
||||||
# into play. Value shouldn't be zero, and the base minimum price will
|
# into play. Value shouldn't be zero, and the base minimum price will
|
||||||
# the BidVariation* variables above. This is used to catch 0 cost or
|
# the BidVariation* variables above. This is used to catch 0 cost or
|
||||||
# extremely low cost items
|
# extremely low cost items. Note that the value can never be lower than 1
|
||||||
#
|
#
|
||||||
# AuctionHouseBot.PriceMinimumCenterBase.OverrideItems
|
# AuctionHouseBot.PriceMinimumCenterBase.OverrideItems
|
||||||
# Comma separated list of items in the format of "itemID:PriceMinCopper"
|
# Comma separated list of items in the format of "itemID:PriceMinCopper"
|
||||||
@@ -386,6 +402,8 @@ AuctionHouseBot.ListProportion.ListMultipliedItemIDs = 2589:10,2592:10,4306:10,4
|
|||||||
# of linen cloth to 100 gold and silk cloth to 10 gold each
|
# of linen cloth to 100 gold and silk cloth to 10 gold each
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
AuctionHouseBot.PriceMinimumCenterBase.UseItemSellPriceIfHigher = true
|
||||||
|
|
||||||
AuctionHouseBot.PriceMinimumCenterBase.Consumable = 1000
|
AuctionHouseBot.PriceMinimumCenterBase.Consumable = 1000
|
||||||
AuctionHouseBot.PriceMinimumCenterBase.Container = 1000
|
AuctionHouseBot.PriceMinimumCenterBase.Container = 1000
|
||||||
AuctionHouseBot.PriceMinimumCenterBase.Weapon = 1000
|
AuctionHouseBot.PriceMinimumCenterBase.Weapon = 1000
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ AuctionHouseBot::AuctionHouseBot() :
|
|||||||
BuyoutVariationAddPercent(0.25f),
|
BuyoutVariationAddPercent(0.25f),
|
||||||
BidVariationHighReducePercent(0),
|
BidVariationHighReducePercent(0),
|
||||||
BidVariationLowReducePercent(0.25f),
|
BidVariationLowReducePercent(0.25f),
|
||||||
|
BuyoutBelowVendorVariationAddPercentEnabled(true),
|
||||||
BuyoutBelowVendorVariationAddPercent(0.25f),
|
BuyoutBelowVendorVariationAddPercent(0.25f),
|
||||||
BuyingBotBuyCandidatesPerBuyCycleMin(1),
|
BuyingBotBuyCandidatesPerBuyCycleMin(1),
|
||||||
BuyingBotBuyCandidatesPerBuyCycleMax(1),
|
BuyingBotBuyCandidatesPerBuyCycleMax(1),
|
||||||
@@ -136,6 +137,7 @@ AuctionHouseBot::AuctionHouseBot() :
|
|||||||
PriceMultiplierQualityLegendary(1),
|
PriceMultiplierQualityLegendary(1),
|
||||||
PriceMultiplierQualityArtifact(1),
|
PriceMultiplierQualityArtifact(1),
|
||||||
PriceMultiplierQualityHeirloom(1),
|
PriceMultiplierQualityHeirloom(1),
|
||||||
|
UseItemSellPriceIfHigherThanPriceMinimumCenterBase(true),
|
||||||
PriceMinimumCenterBaseConsumable(1),
|
PriceMinimumCenterBaseConsumable(1),
|
||||||
PriceMinimumCenterBaseContainer(1),
|
PriceMinimumCenterBaseContainer(1),
|
||||||
PriceMinimumCenterBaseWeapon(1),
|
PriceMinimumCenterBaseWeapon(1),
|
||||||
@@ -232,8 +234,11 @@ uint32 AuctionHouseBot::GetStackSizeForItem(ItemTemplate const* itemProto) const
|
|||||||
|
|
||||||
void AuctionHouseBot::CalculateItemValue(ItemTemplate const* itemProto, uint64& outBidPrice, uint64& outBuyoutPrice)
|
void AuctionHouseBot::CalculateItemValue(ItemTemplate const* itemProto, uint64& outBidPrice, uint64& outBuyoutPrice)
|
||||||
{
|
{
|
||||||
// Start with a buyout price related to the sell price
|
// Start with a buyout price related to the sell price, if configured
|
||||||
outBuyoutPrice = itemProto->SellPrice;
|
if (UseItemSellPriceIfHigherThanPriceMinimumCenterBase == true)
|
||||||
|
outBuyoutPrice = itemProto->SellPrice;
|
||||||
|
else
|
||||||
|
outBuyoutPrice = 1; // Avoid zeros
|
||||||
|
|
||||||
// Get the price multipliers
|
// Get the price multipliers
|
||||||
float classPriceMultiplier = 1;
|
float classPriceMultiplier = 1;
|
||||||
@@ -351,29 +356,25 @@ void AuctionHouseBot::CalculateItemValue(ItemTemplate const* itemProto, uint64&
|
|||||||
if (itemLevelPriceMultplier > 0.0f && itemProto->ItemLevel > 0 && advancedPricingMultiplier == 1.0f)
|
if (itemLevelPriceMultplier > 0.0f && itemProto->ItemLevel > 0 && advancedPricingMultiplier == 1.0f)
|
||||||
outBuyoutPrice *= itemProto->ItemLevel * itemLevelPriceMultplier;
|
outBuyoutPrice *= itemProto->ItemLevel * itemLevelPriceMultplier;
|
||||||
|
|
||||||
// If a vendor sells this item, make the price at least that high
|
|
||||||
if (itemProto->SellPrice > outBuyoutPrice)
|
|
||||||
outBuyoutPrice = itemProto->SellPrice;
|
|
||||||
|
|
||||||
// Avoid price overflows
|
// Avoid price overflows
|
||||||
if (outBuyoutPrice > MaxBuyoutPriceInCopper)
|
if (outBuyoutPrice > MaxBuyoutPriceInCopper)
|
||||||
outBuyoutPrice = MaxBuyoutPriceInCopper;
|
outBuyoutPrice = MaxBuyoutPriceInCopper;
|
||||||
|
|
||||||
|
// If variance brought price below sell price, bring it back up to avoid making money off vendoring AH items
|
||||||
|
if (BuyoutBelowVendorVariationAddPercentEnabled == true && outBuyoutPrice < itemProto->SellPrice)
|
||||||
|
{
|
||||||
|
float minLowPriceAddVariancePercent = 1.0f + BuyoutBelowVendorVariationAddPercent;
|
||||||
|
outBuyoutPrice = urand(itemProto->SellPrice, minLowPriceAddVariancePercent * itemProto->SellPrice);
|
||||||
|
}
|
||||||
|
|
||||||
// Calculate a bid price based on a variance against buyout price
|
// Calculate a bid price based on a variance against buyout price
|
||||||
float sellVarianceBidPriceTopPercent = 1.0f - BidVariationHighReducePercent;
|
float sellVarianceBidPriceTopPercent = 1.0f - BidVariationHighReducePercent;
|
||||||
float sellVarianceBidPriceBottomPercent = 1.0f - BidVariationLowReducePercent;
|
float sellVarianceBidPriceBottomPercent = 1.0f - BidVariationLowReducePercent;
|
||||||
outBidPrice = urand(sellVarianceBidPriceBottomPercent * outBuyoutPrice, sellVarianceBidPriceTopPercent * outBuyoutPrice);
|
outBidPrice = urand(sellVarianceBidPriceBottomPercent * outBuyoutPrice, sellVarianceBidPriceTopPercent * outBuyoutPrice);
|
||||||
|
|
||||||
// If variance brought price below sell price, bring it back up to avoid making money off vendoring AH items
|
// Catch any zeros
|
||||||
if (outBuyoutPrice < itemProto->SellPrice)
|
if (outBuyoutPrice == 0)
|
||||||
{
|
outBuyoutPrice = 1;
|
||||||
float minLowPriceAddVariancePercent = 1.0f + BuyoutBelowVendorVariationAddPercent;
|
|
||||||
outBuyoutPrice = urand(itemProto->SellPrice, minLowPriceAddVariancePercent * itemProto->SellPrice);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Bid price can never be below sell price
|
|
||||||
if (outBidPrice < itemProto->SellPrice)
|
|
||||||
outBidPrice = itemProto->SellPrice;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
float AuctionHouseBot::GetAdvancedPricingMultiplier(ItemTemplate const* itemProto)
|
float AuctionHouseBot::GetAdvancedPricingMultiplier(ItemTemplate const* itemProto)
|
||||||
@@ -1374,6 +1375,7 @@ void AuctionHouseBot::InitializeConfiguration()
|
|||||||
BuyoutVariationAddPercent = sConfigMgr->GetOption<float>("AuctionHouseBot.BuyoutVariationAddPercent", 0.25f);
|
BuyoutVariationAddPercent = sConfigMgr->GetOption<float>("AuctionHouseBot.BuyoutVariationAddPercent", 0.25f);
|
||||||
BidVariationHighReducePercent = sConfigMgr->GetOption<float>("AuctionHouseBot.BidVariationHighReducePercent", 0);
|
BidVariationHighReducePercent = sConfigMgr->GetOption<float>("AuctionHouseBot.BidVariationHighReducePercent", 0);
|
||||||
BidVariationLowReducePercent = sConfigMgr->GetOption<float>("AuctionHouseBot.BidVariationLowReducePercent", 0.25f);
|
BidVariationLowReducePercent = sConfigMgr->GetOption<float>("AuctionHouseBot.BidVariationLowReducePercent", 0.25f);
|
||||||
|
BuyoutBelowVendorVariationAddPercentEnabled = sConfigMgr->GetOption<bool>("AuctionHouseBot.BuyoutBelowVendorVariationAddPercentEnabled", true);
|
||||||
BuyoutBelowVendorVariationAddPercent = sConfigMgr->GetOption<float>("AuctionHouseBot.BuyoutBelowVendorVariationAddPercent", 0.25f);
|
BuyoutBelowVendorVariationAddPercent = sConfigMgr->GetOption<float>("AuctionHouseBot.BuyoutBelowVendorVariationAddPercent", 0.25f);
|
||||||
ListingExpireTimeInSecondsMin = sConfigMgr->GetOption<uint32>("AuctionHouseBot.ListingExpireTimeInSecondsMin", 900);
|
ListingExpireTimeInSecondsMin = sConfigMgr->GetOption<uint32>("AuctionHouseBot.ListingExpireTimeInSecondsMin", 900);
|
||||||
if (ListingExpireTimeInSecondsMin < 900)
|
if (ListingExpireTimeInSecondsMin < 900)
|
||||||
@@ -1532,6 +1534,7 @@ void AuctionHouseBot::InitializeConfiguration()
|
|||||||
AdvancedPricingMiscMountEnabled = sConfigMgr->GetOption<bool>("AuctionHouseBot.AdvancedPricing.Misc.Mount.Enabled", true);
|
AdvancedPricingMiscMountEnabled = sConfigMgr->GetOption<bool>("AuctionHouseBot.AdvancedPricing.Misc.Mount.Enabled", true);
|
||||||
|
|
||||||
// Price minimums
|
// Price minimums
|
||||||
|
UseItemSellPriceIfHigherThanPriceMinimumCenterBase = sConfigMgr->GetOption<bool>("AuctionHouseBot.PriceMinimumCenterBase.UseItemSellPriceIfHigher", true);
|
||||||
PriceMinimumCenterBaseConsumable = sConfigMgr->GetOption<uint32>("AuctionHouseBot.PriceMinimumCenterBase.Consumable",1000);
|
PriceMinimumCenterBaseConsumable = sConfigMgr->GetOption<uint32>("AuctionHouseBot.PriceMinimumCenterBase.Consumable",1000);
|
||||||
PriceMinimumCenterBaseContainer = sConfigMgr->GetOption<uint32>("AuctionHouseBot.PriceMinimumCenterBase.Container", 1000);
|
PriceMinimumCenterBaseContainer = sConfigMgr->GetOption<uint32>("AuctionHouseBot.PriceMinimumCenterBase.Container", 1000);
|
||||||
PriceMinimumCenterBaseWeapon = sConfigMgr->GetOption<uint32>("AuctionHouseBot.PriceMinimumCenterBase.Weapon", 1000);
|
PriceMinimumCenterBaseWeapon = sConfigMgr->GetOption<uint32>("AuctionHouseBot.PriceMinimumCenterBase.Weapon", 1000);
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ private:
|
|||||||
float BuyoutVariationAddPercent;
|
float BuyoutVariationAddPercent;
|
||||||
float BidVariationHighReducePercent;
|
float BidVariationHighReducePercent;
|
||||||
float BidVariationLowReducePercent;
|
float BidVariationLowReducePercent;
|
||||||
|
bool BuyoutBelowVendorVariationAddPercentEnabled;
|
||||||
float BuyoutBelowVendorVariationAddPercent;
|
float BuyoutBelowVendorVariationAddPercent;
|
||||||
uint32 BuyingBotBuyCandidatesPerBuyCycleMin;
|
uint32 BuyingBotBuyCandidatesPerBuyCycleMin;
|
||||||
uint32 BuyingBotBuyCandidatesPerBuyCycleMax;
|
uint32 BuyingBotBuyCandidatesPerBuyCycleMax;
|
||||||
@@ -254,6 +255,7 @@ private:
|
|||||||
bool AdvancedPricingTradeGoodMeatEnabled;
|
bool AdvancedPricingTradeGoodMeatEnabled;
|
||||||
bool AdvancedPricingMiscJunkEnabled;
|
bool AdvancedPricingMiscJunkEnabled;
|
||||||
bool AdvancedPricingMiscMountEnabled;
|
bool AdvancedPricingMiscMountEnabled;
|
||||||
|
bool UseItemSellPriceIfHigherThanPriceMinimumCenterBase;
|
||||||
uint32 PriceMinimumCenterBaseConsumable;
|
uint32 PriceMinimumCenterBaseConsumable;
|
||||||
uint32 PriceMinimumCenterBaseContainer;
|
uint32 PriceMinimumCenterBaseContainer;
|
||||||
uint32 PriceMinimumCenterBaseWeapon;
|
uint32 PriceMinimumCenterBaseWeapon;
|
||||||
|
|||||||
Reference in New Issue
Block a user