diff options
author | megamage <none@none> | 2009-04-30 16:31:05 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-04-30 16:31:05 -0500 |
commit | 48dab8af91eadec76f59d0cd3d99fc7fca3a69e9 (patch) | |
tree | 97dbed833e095599a50d5877aa8c4943660d9fb1 /src/game/AuctionHouseBot.cpp | |
parent | d6b1013763a4405ec844ace19398c2bda5b5940e (diff) | |
parent | eb9328e4dbd5e136728f90ae794da1066688953f (diff) |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src/game/AuctionHouseBot.cpp')
-rw-r--r-- | src/game/AuctionHouseBot.cpp | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/src/game/AuctionHouseBot.cpp b/src/game/AuctionHouseBot.cpp index b2b06faae84..08b4695125f 100644 --- a/src/game/AuctionHouseBot.cpp +++ b/src/game/AuctionHouseBot.cpp @@ -503,14 +503,25 @@ static void addNewAuctionBuyerBotBid(Player *AHBplayer, AHBConfig *config, World } } + uint32 bids = config->GetBidsPerInterval(); + for (uint32 count = 1;count <= bids;count++) + { + // Do we have anything to bid? If not, stop here. if(possibleBids.empty()) { + count = bids + 1; return; } // Choose random auction from possible auctions - uint32 auctionID = possibleBids[urand(0, possibleBids.size() - 1)]; + uint32 vectorPos = urand(0, possibleBids.size() - 1); + uint32 auctionID = possibleBids[vectorPos]; + + // Erase the auction from the vector to prevent bidding on item in next itteration. + vector<uint32>::iterator iter = possibleBids.begin(); + advance(iter, vectorPos); + possibleBids.erase(iter); // from auctionhousehandler.cpp, creates auction pointer & player pointer AuctionEntry* auction = auctionHouse->GetAuction(auctionID); @@ -758,7 +769,7 @@ static void addNewAuctionBuyerBotBid(Player *AHBplayer, AHBConfig *config, World auctionHouse->RemoveAuction(auction->Id); // Remove from database auction->DeleteFromDB(); - + } delete auction; } } @@ -781,33 +792,21 @@ void AuctionHouseBot() addNewAuctions(&_AHBplayer, &AllianceConfig); if (((_newrun - _lastrun_a) > (AllianceConfig.GetBiddingInterval() * 60)) && (AllianceConfig.GetBidsPerInterval() > 0)) { - uint32 bids = AllianceConfig.GetBidsPerInterval(); - for (uint32 count = 1;count <= bids;count++) - { - addNewAuctionBuyerBotBid(&_AHBplayer, &AllianceConfig, &_session); - _lastrun_a = _newrun; - } + addNewAuctionBuyerBotBid(&_AHBplayer, &AllianceConfig, &_session); + _lastrun_a = _newrun; } addNewAuctions(&_AHBplayer, &HordeConfig); if (((_newrun - _lastrun_h) > (HordeConfig.GetBiddingInterval() *60)) && (HordeConfig.GetBidsPerInterval() > 0)) { - uint32 bids = HordeConfig.GetBidsPerInterval(); - for (uint32 count = 1;count <= bids;count++) - { - addNewAuctionBuyerBotBid(&_AHBplayer, &HordeConfig, &_session); - _lastrun_h = _newrun; - } + addNewAuctionBuyerBotBid(&_AHBplayer, &HordeConfig, &_session); + _lastrun_h = _newrun; } } addNewAuctions(&_AHBplayer, &NeutralConfig); if (((_newrun - _lastrun_n) > (NeutralConfig.GetBiddingInterval() * 60)) && (NeutralConfig.GetBidsPerInterval() > 0)) { - uint32 bids = NeutralConfig.GetBidsPerInterval(); - for (uint32 count = 1;count <= bids;count++) - { - addNewAuctionBuyerBotBid(&_AHBplayer, &NeutralConfig, &_session); - _lastrun_n = _newrun; - } + addNewAuctionBuyerBotBid(&_AHBplayer, &NeutralConfig, &_session); + _lastrun_n = _newrun; } ObjectAccessor::Instance().RemoveObject(&_AHBplayer); } |