Conversation
| config->SetMinPrice(ITEM_QUALITY_POOR, minpricegrey); | ||
| config->SetMaxPrice(ITEM_QUALITY_POOR, maxpricegrey); | ||
| config->SetMinPrice(ITEM_QUALITY_NORMAL, minpricewhite); | ||
| config->SetMaxPrice(ITEM_QUALITY_NORMAL, maxpricewhite); | ||
| config->SetMinPrice(ITEM_QUALITY_UNCOMMON, minpricegreen); | ||
| config->SetMaxPrice(ITEM_QUALITY_UNCOMMON, maxpricegreen); | ||
| config->SetMinPrice(ITEM_QUALITY_RARE, minpriceblue); | ||
| config->SetMaxPrice(ITEM_QUALITY_RARE, maxpriceblue); | ||
| config->SetMinPrice(ITEM_QUALITY_EPIC, minpricepurple); | ||
| config->SetMaxPrice(ITEM_QUALITY_EPIC, maxpricepurple); | ||
| config->SetMinPrice(ITEM_QUALITY_LEGENDARY, minpriceorange); | ||
| config->SetMaxPrice(ITEM_QUALITY_LEGENDARY, maxpriceorange); | ||
| config->SetMinPrice(ITEM_QUALITY_ARTIFACT, minpriceyellow); | ||
| config->SetMaxPrice(ITEM_QUALITY_ARTIFACT, maxpriceyellow); | ||
|
|
||
| // Load min and max bid prices | ||
| config->SetMinBidPrice(ITEM_QUALITY_POOR, minbidpricegrey); | ||
| config->SetMaxBidPrice(ITEM_QUALITY_POOR, maxbidpricegrey); | ||
| config->SetMinBidPrice(ITEM_QUALITY_NORMAL, minbidpricewhite); | ||
| config->SetMaxBidPrice(ITEM_QUALITY_NORMAL, maxbidpricewhite); | ||
| config->SetMinBidPrice(ITEM_QUALITY_UNCOMMON, minbidpricegreen); | ||
| config->SetMaxBidPrice(ITEM_QUALITY_UNCOMMON, maxbidpricegreen); | ||
| config->SetMinBidPrice(ITEM_QUALITY_RARE, minbidpriceblue); | ||
| config->SetMaxBidPrice(ITEM_QUALITY_RARE, maxbidpriceblue); | ||
| config->SetMinBidPrice(ITEM_QUALITY_EPIC, minbidpricepurple); | ||
| config->SetMaxBidPrice(ITEM_QUALITY_EPIC, maxbidpricepurple); | ||
| config->SetMinBidPrice(ITEM_QUALITY_LEGENDARY, minbidpriceorange); | ||
| config->SetMaxBidPrice(ITEM_QUALITY_LEGENDARY, maxbidpriceorange); | ||
| config->SetMinBidPrice(ITEM_QUALITY_ARTIFACT, minbidpriceyellow); | ||
| config->SetMaxBidPrice(ITEM_QUALITY_ARTIFACT, maxbidpriceyellow); | ||
|
|
||
| // Load max stacks | ||
| config->SetMaxStack(ITEM_QUALITY_POOR, maxstackgrey); | ||
| config->SetMaxStack(ITEM_QUALITY_NORMAL, maxstackwhite); | ||
| config->SetMaxStack(ITEM_QUALITY_UNCOMMON, maxstackgreen); | ||
| config->SetMaxStack(ITEM_QUALITY_RARE, maxstackblue); | ||
| config->SetMaxStack(ITEM_QUALITY_EPIC, maxstackpurple); | ||
| config->SetMaxStack(ITEM_QUALITY_LEGENDARY, maxstackorange); | ||
| config->SetMaxStack(ITEM_QUALITY_ARTIFACT, maxstackyellow); |
There was a problem hiding this comment.
Bad indent
| config->SetMinPrice(ITEM_QUALITY_POOR, minpricegrey); | |
| config->SetMaxPrice(ITEM_QUALITY_POOR, maxpricegrey); | |
| config->SetMinPrice(ITEM_QUALITY_NORMAL, minpricewhite); | |
| config->SetMaxPrice(ITEM_QUALITY_NORMAL, maxpricewhite); | |
| config->SetMinPrice(ITEM_QUALITY_UNCOMMON, minpricegreen); | |
| config->SetMaxPrice(ITEM_QUALITY_UNCOMMON, maxpricegreen); | |
| config->SetMinPrice(ITEM_QUALITY_RARE, minpriceblue); | |
| config->SetMaxPrice(ITEM_QUALITY_RARE, maxpriceblue); | |
| config->SetMinPrice(ITEM_QUALITY_EPIC, minpricepurple); | |
| config->SetMaxPrice(ITEM_QUALITY_EPIC, maxpricepurple); | |
| config->SetMinPrice(ITEM_QUALITY_LEGENDARY, minpriceorange); | |
| config->SetMaxPrice(ITEM_QUALITY_LEGENDARY, maxpriceorange); | |
| config->SetMinPrice(ITEM_QUALITY_ARTIFACT, minpriceyellow); | |
| config->SetMaxPrice(ITEM_QUALITY_ARTIFACT, maxpriceyellow); | |
| // Load min and max bid prices | |
| config->SetMinBidPrice(ITEM_QUALITY_POOR, minbidpricegrey); | |
| config->SetMaxBidPrice(ITEM_QUALITY_POOR, maxbidpricegrey); | |
| config->SetMinBidPrice(ITEM_QUALITY_NORMAL, minbidpricewhite); | |
| config->SetMaxBidPrice(ITEM_QUALITY_NORMAL, maxbidpricewhite); | |
| config->SetMinBidPrice(ITEM_QUALITY_UNCOMMON, minbidpricegreen); | |
| config->SetMaxBidPrice(ITEM_QUALITY_UNCOMMON, maxbidpricegreen); | |
| config->SetMinBidPrice(ITEM_QUALITY_RARE, minbidpriceblue); | |
| config->SetMaxBidPrice(ITEM_QUALITY_RARE, maxbidpriceblue); | |
| config->SetMinBidPrice(ITEM_QUALITY_EPIC, minbidpricepurple); | |
| config->SetMaxBidPrice(ITEM_QUALITY_EPIC, maxbidpricepurple); | |
| config->SetMinBidPrice(ITEM_QUALITY_LEGENDARY, minbidpriceorange); | |
| config->SetMaxBidPrice(ITEM_QUALITY_LEGENDARY, maxbidpriceorange); | |
| config->SetMinBidPrice(ITEM_QUALITY_ARTIFACT, minbidpriceyellow); | |
| config->SetMaxBidPrice(ITEM_QUALITY_ARTIFACT, maxbidpriceyellow); | |
| // Load max stacks | |
| config->SetMaxStack(ITEM_QUALITY_POOR, maxstackgrey); | |
| config->SetMaxStack(ITEM_QUALITY_NORMAL, maxstackwhite); | |
| config->SetMaxStack(ITEM_QUALITY_UNCOMMON, maxstackgreen); | |
| config->SetMaxStack(ITEM_QUALITY_RARE, maxstackblue); | |
| config->SetMaxStack(ITEM_QUALITY_EPIC, maxstackpurple); | |
| config->SetMaxStack(ITEM_QUALITY_LEGENDARY, maxstackorange); | |
| config->SetMaxStack(ITEM_QUALITY_ARTIFACT, maxstackyellow); | |
| config->SetMinPrice(ITEM_QUALITY_POOR, minpricegrey); | |
| config->SetMaxPrice(ITEM_QUALITY_POOR, maxpricegrey); | |
| config->SetMinPrice(ITEM_QUALITY_NORMAL, minpricewhite); | |
| config->SetMaxPrice(ITEM_QUALITY_NORMAL, maxpricewhite); | |
| config->SetMinPrice(ITEM_QUALITY_UNCOMMON, minpricegreen); | |
| config->SetMaxPrice(ITEM_QUALITY_UNCOMMON, maxpricegreen); | |
| config->SetMinPrice(ITEM_QUALITY_RARE, minpriceblue); | |
| config->SetMaxPrice(ITEM_QUALITY_RARE, maxpriceblue); | |
| config->SetMinPrice(ITEM_QUALITY_EPIC, minpricepurple); | |
| config->SetMaxPrice(ITEM_QUALITY_EPIC, maxpricepurple); | |
| config->SetMinPrice(ITEM_QUALITY_LEGENDARY, minpriceorange); | |
| config->SetMaxPrice(ITEM_QUALITY_LEGENDARY, maxpriceorange); | |
| config->SetMinPrice(ITEM_QUALITY_ARTIFACT, minpriceyellow); | |
| config->SetMaxPrice(ITEM_QUALITY_ARTIFACT, maxpriceyellow); | |
| // Load min and max bid prices | |
| config->SetMinBidPrice(ITEM_QUALITY_POOR, minbidpricegrey); | |
| config->SetMaxBidPrice(ITEM_QUALITY_POOR, maxbidpricegrey); | |
| config->SetMinBidPrice(ITEM_QUALITY_NORMAL, minbidpricewhite); | |
| config->SetMaxBidPrice(ITEM_QUALITY_NORMAL, maxbidpricewhite); | |
| config->SetMinBidPrice(ITEM_QUALITY_UNCOMMON, minbidpricegreen); | |
| config->SetMaxBidPrice(ITEM_QUALITY_UNCOMMON, maxbidpricegreen); | |
| config->SetMinBidPrice(ITEM_QUALITY_RARE, minbidpriceblue); | |
| config->SetMaxBidPrice(ITEM_QUALITY_RARE, maxbidpriceblue); | |
| config->SetMinBidPrice(ITEM_QUALITY_EPIC, minbidpricepurple); | |
| config->SetMaxBidPrice(ITEM_QUALITY_EPIC, maxbidpricepurple); | |
| config->SetMinBidPrice(ITEM_QUALITY_LEGENDARY, minbidpriceorange); | |
| config->SetMaxBidPrice(ITEM_QUALITY_LEGENDARY, maxbidpriceorange); | |
| config->SetMinBidPrice(ITEM_QUALITY_ARTIFACT, minbidpriceyellow); | |
| config->SetMaxBidPrice(ITEM_QUALITY_ARTIFACT, maxbidpriceyellow); | |
| // Load max stacks | |
| config->SetMaxStack(ITEM_QUALITY_POOR, maxstackgrey); | |
| config->SetMaxStack(ITEM_QUALITY_NORMAL, maxstackwhite); | |
| config->SetMaxStack(ITEM_QUALITY_UNCOMMON, maxstackgreen); | |
| config->SetMaxStack(ITEM_QUALITY_RARE, maxstackblue); | |
| config->SetMaxStack(ITEM_QUALITY_EPIC, maxstackpurple); | |
| config->SetMaxStack(ITEM_QUALITY_LEGENDARY, maxstackorange); | |
| config->SetMaxStack(ITEM_QUALITY_ARTIFACT, maxstackyellow); |
| AuctionEntry *Aentry = itr->second; | ||
| Item *item = sAuctionMgr->GetAItem(Aentry->item_guid); | ||
| if (item) | ||
| Item* item = sAuctionMgr->GetAItem(auction->item_guid); |
There was a problem hiding this comment.
| Item* item = sAuctionMgr->GetAItem(auction->item_guid); | |
| Item* item = sAuctionMgr->GetAItem(auction->item_guid); |
| // Load buyer bid prices | ||
| config->SetBuyerPrice(ITEM_QUALITY_POOR, buyerpricegrey); | ||
| config->SetBuyerPrice(ITEM_QUALITY_NORMAL, buyerpricewhite); | ||
| config->SetBuyerPrice(ITEM_QUALITY_UNCOMMON, buyerpricegreen); | ||
| config->SetBuyerPrice(ITEM_QUALITY_RARE, buyerpriceblue); | ||
| config->SetBuyerPrice(ITEM_QUALITY_EPIC, buyerpricepurple); | ||
| config->SetBuyerPrice(ITEM_QUALITY_LEGENDARY, buyerpriceorange); | ||
| config->SetBuyerPrice(ITEM_QUALITY_ARTIFACT, buyerpriceyellow); | ||
|
|
||
| // Load bidding interval | ||
| config->SetBiddingInterval(Minutes(buyerbiddinginterval)); | ||
|
|
||
| // Load bids per interval | ||
| config->SetBidsPerInterval(buyerbidsperinterval); | ||
|
|
There was a problem hiding this comment.
| // Load buyer bid prices | |
| config->SetBuyerPrice(ITEM_QUALITY_POOR, buyerpricegrey); | |
| config->SetBuyerPrice(ITEM_QUALITY_NORMAL, buyerpricewhite); | |
| config->SetBuyerPrice(ITEM_QUALITY_UNCOMMON, buyerpricegreen); | |
| config->SetBuyerPrice(ITEM_QUALITY_RARE, buyerpriceblue); | |
| config->SetBuyerPrice(ITEM_QUALITY_EPIC, buyerpricepurple); | |
| config->SetBuyerPrice(ITEM_QUALITY_LEGENDARY, buyerpriceorange); | |
| config->SetBuyerPrice(ITEM_QUALITY_ARTIFACT, buyerpriceyellow); | |
| // Load bidding interval | |
| config->SetBiddingInterval(Minutes(buyerbiddinginterval)); | |
| // Load bids per interval | |
| config->SetBidsPerInterval(buyerbidsperinterval); | |
| // Load buyer bid prices | |
| config->SetBuyerPrice(ITEM_QUALITY_POOR, buyerpricegrey); | |
| config->SetBuyerPrice(ITEM_QUALITY_NORMAL, buyerpricewhite); | |
| config->SetBuyerPrice(ITEM_QUALITY_UNCOMMON, buyerpricegreen); | |
| config->SetBuyerPrice(ITEM_QUALITY_RARE, buyerpriceblue); | |
| config->SetBuyerPrice(ITEM_QUALITY_EPIC, buyerpricepurple); | |
| config->SetBuyerPrice(ITEM_QUALITY_LEGENDARY, buyerpriceorange); | |
| config->SetBuyerPrice(ITEM_QUALITY_ARTIFACT, buyerpriceyellow); | |
| // Load bidding interval | |
| config->SetBiddingInterval(Minutes(buyerbiddinginterval)); | |
| // Load bids per interval | |
| config->SetBidsPerInterval(buyerbidsperinterval); | |
src/AuctionHouseBotConfig.cpp
Outdated
| } | ||
| else if (totalPercent != 100) | ||
| { | ||
| _itemsPercent[ITEM_QUALITY_POOR] = 0; |
There was a problem hiding this comment.
Should print a warning log message here?
Or re-normalize the values
80+80 = 160
value*(100/160)
so it becomes 50+50
|
What is holding this back? looks good to me |
|
I don't remember if I finished everything here or forgot something |
|
If I find time I'll deploy this on my server on the weekend. |
| return _buyerBiddingInterval; | ||
| } | ||
|
|
||
| void CalculatePercents(); |
There was a problem hiding this comment.
That is a bad name
This doesn't calculate "Percents", it calculates the maximum number of items per quality level.
I will probably rename to "CalculateMaxCounts" later
There was a problem hiding this comment.
In general naming is bad all over the place.
"SetMinPrice" doesn't set the min price. It sets the minimum price multiplier in percent with 0-100 value.
| return; | ||
| } | ||
|
|
||
| QueryResult result = CharacterDatabase.Query("SELECT id FROM auctionhouse WHERE itemowner<>{} AND buyguid<>{}", AHBplayerGUID, AHBplayerGUID); | ||
| auto sharedConfig = std::make_shared<AHBConfig>(*config); |
There was a problem hiding this comment.
Every time we add new auctions, we copy the whole config.
The config should've been a shared_ptr to begin with..
I'll rework that later
Co-authored-by: Dedmen Miller <dedmen@users.noreply.github.com>
| * You should have received a copy of the GNU General Public License along | ||
| * with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| */ | ||
|
|
There was a problem hiding this comment.
Missing include guard, including this file twice will break stuff
| isVendorItem = true; | ||
| } | ||
|
|
||
| if (isVendorItem) | ||
| continue; | ||
| } | ||
|
|
||
| if ((Vendor_TGs == 0) && (itr->second.Class == ITEM_CLASS_TRADE_GOODS)) |
There was a problem hiding this comment.
BUG!
Class check went from == to !=
There are more of these here
| isLootTG = true; | ||
| } | ||
|
|
||
| if (isLootTG) | ||
| continue; | ||
| } | ||
|
|
||
| if ((Other_Items == 0) && !(itr->second.Class == ITEM_CLASS_TRADE_GOODS)) |
There was a problem hiding this comment.
more bug.
Other_Items == 0 turned into OtherItems
|
Please merge my indent fixes. |
|
I'm now running this plus my PR on my server, no issues so far 🤞 |
* chore: switch to reusable module workflow (#58) * chore(Module/Structure): update structure (#72) * chore(Bot): add db env include * Split item indexing into separate files * Fixed copyright headers * Remove unused variable --------- Co-authored-by: Patrick Lewis <pat@lo5t.com> Co-authored-by: Walter Pagani <paganiwalter@gmail.com> Co-authored-by: Winfidonarleyan <dowlandtop@yandex.com>
Changes: