From fd10a5f819cd49a7d51050a1d01022d90656bdbe Mon Sep 17 00:00:00 2001 From: NathanHandley Date: Thu, 18 Sep 2025 17:13:23 -0500 Subject: [PATCH] All disabling of bots bidding against players --- conf/mod_ahbot.conf.dist | 7 +++++++ src/AuctionHouseBot.cpp | 8 +++++++- src/AuctionHouseBot.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/conf/mod_ahbot.conf.dist b/conf/mod_ahbot.conf.dist index 40d2bd4..b5e9995 100644 --- a/conf/mod_ahbot.conf.dist +++ b/conf/mod_ahbot.conf.dist @@ -163,12 +163,19 @@ AuctionHouseBot.Neutral.MaxItems = 15000 # If disabled, the bot may still purchase vendor items above vendor value # if they fall within the acceptable price modifier rules. # Default: 1 +# +# AuctionHouseBot.Buyer.BidAgainstPlayers +# When enabled, the buyer bot will post bids against auctions that players +# bid against, within the acceptable price range the buyer bot was willing +# to pay +# Default: true ############################################################################### AuctionHouseBot.Buyer.Enabled = 0 AuctionHouseBot.Buyer.BuyCandidatesPerBuyCycle = 1 AuctionHouseBot.Buyer.AcceptablePriceModifier = 1 AuctionHouseBot.Buyer.PreventOverpayingForVendorItems = 1 +AuctionHouseBot.Buyer.BidAgainstPlayers = true ############################################################################### # AuctionHouseBot.ListProportion.* diff --git a/src/AuctionHouseBot.cpp b/src/AuctionHouseBot.cpp index cc94575..46e6059 100644 --- a/src/AuctionHouseBot.cpp +++ b/src/AuctionHouseBot.cpp @@ -52,6 +52,7 @@ AuctionHouseBot::AuctionHouseBot() : ListingExpireTimeInSecondsMax(86400), BuyingBotBuyCandidatesPerBuyCycle(1), BuyingBotAcceptablePriceModifier(1), + BuyingBotWillBidAgainstPlayers(true), AHCharactersGUIDsForQuery(""), ItemsPerCycle(75), DisabledItemTextFilter(true), @@ -982,7 +983,11 @@ void AuctionHouseBot::addNewAuctionBuyerBotBid(Player* AHBplayer, AHBConfig *con return; } - QueryResult result = CharacterDatabase.Query("SELECT id FROM auctionhouse WHERE itemowner NOT IN ({}) AND buyguid NOT IN ({})", AHCharactersGUIDsForQuery, AHCharactersGUIDsForQuery); + // Pull auctions. + string queryString = "SELECT id FROM auctionhouse WHERE itemowner NOT IN ({}) AND buyguid NOT IN ({})"; + if (BuyingBotWillBidAgainstPlayers == false) + queryString = "SELECT id FROM auctionhouse WHERE itemowner NOT IN ({}) AND buyguid NOT IN ({}) AND lastbid = 0"; + QueryResult result = CharacterDatabase.Query(queryString, AHCharactersGUIDsForQuery, AHCharactersGUIDsForQuery); if (!result) return; @@ -1257,6 +1262,7 @@ void AuctionHouseBot::InitializeConfiguration() PreventOverpayingForVendorItems = sConfigMgr->GetOption("AuctionHouseBot.Buyer.PreventOverpayingForVendorItems", true); if (PreventOverpayingForVendorItems) populateVendorItemsPrices(); + BuyingBotWillBidAgainstPlayers = sConfigMgr->GetOption("AuctionHouseBot.Buyer.BidAgainstPlayers", true); // Stack Ratios RandomStackRatioConsumable = GetRandomStackValue("AuctionHouseBot.ListingStack.RandomRatio.Consumable", 50); diff --git a/src/AuctionHouseBot.h b/src/AuctionHouseBot.h index 2978739..ed0f0ad 100644 --- a/src/AuctionHouseBot.h +++ b/src/AuctionHouseBot.h @@ -132,6 +132,7 @@ private: uint32 ListingExpireTimeInSecondsMin; uint32 ListingExpireTimeInSecondsMax; float BuyingBotAcceptablePriceModifier; + bool BuyingBotWillBidAgainstPlayers; std::vector vendorItemsPrices; std::string AHCharactersGUIDsForQuery; uint32 ItemsPerCycle;