Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Market price adaptation mechanism #102

Merged
merged 7 commits into from
Sep 8, 2024
Merged

Conversation

kewinrausch
Copy link

Changes Proposed:

  • Minor fixes to the initialization stage to correct the moment where certain operation are performed
  • Introduced a mechanism which allows the seller bot to adapt the price of the item to the one of the market. Auctions are monitored and a statistic about the price per unit is stored inside the AH configuration. When a new stock is sold, the bot will use this price instead of the item hardcoded one. The bot can be configured to adapt quickly or slowly to the market oscillations. This new feature is backward compatible, as it is disabled by default. If disabled, the default selling strategy is used.
  • Bot in game commands extended to enable/disable this new mechanism on the fly
  • Extended the README

Issues Addressed:

  • No open issues are fixed by this pull; just providing new functionalities

SOURCE:

  • No sources

Tests Performed:

  • Compile without errors with the last version of the core (2024-09-07)
  • I've performed preliminary tests by having the bots compete against themselves on the market. While this is not a real test in an environment with real persons, this allowed to test the core mechanism for the statistics collection and the selling part. It would be good to have some feedback on real auction markets with hundreds of players.

How to Test the Changes:

  1. Enable the bot and configure it for a standard behavior
  2. Configure the bot to adapt to market prices with AuctionHouseBot.UseMarketPriceForSeller = 1
  3. Enable the debugging of the configuration AuctionHouseBot.DEBUG_CONFIG = 1
  4. Enter in the game before buying hover the auction with the mouse to see the price per item of that auction. Write down the price somewhere and buyout it.
  5. On the server console you will see a log like Updating market price item=2450, price=49
  6. If you buy again the same item with a different price per unit, you will see the item price change, fluctuating up and down depending on the market mood for that item
  7. Changing AuctionHouseBot.MarketResetThreshold allows you to setup a slower or faster adaptation threshold

@@ -1,4 +1,9 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

file not found, let's put https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done as requested.

@Helias Helias merged commit 86f62d2 into azerothcore:master Sep 8, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants