#26
Post
by Pathfinder » Wed Feb 22, 2012 9:46 pm
Well, based on all the great feedback and suggestions so far, looks like the bot is going to have to be a bit "smarter" than I was looking to do.
But that's a good thing, I guess.
Going to break it down into even smaller modules so I can start to get some releases out and some perfecting done.
So, changing focus, first things first:
Going to identify and store the primary, secondary, and third class into variables. If the character doesn't have these yet, they will be set as profile options and the bot will pick them up when ready.
Next, storing the level of all 3 for appropriate management.
Next, identifying "top 5" stats in prioritized order, depending on our class. This will be used to score gear and manage runes.
Then, depending on level, set up our skill profile. This will determine which moves we want to learn, and which moves should be leveled on levelup.
Then, based on our class levels, determine which class should be "focused". The exact formula for this is something I'm still determining. We'll probably have a few focus options in the profile, something to the effect of "Primary" "Primary and Secondary - Even" "Primary and Secondary - Optimal" "All Three - Even" and "All Three - Optimal". Optimal will likely lag one class 7-8 levels behind the other, to use quest turnins for boosting, etc.
So, we proceed to the nearest class hub (housemaid), and switch to the appropriate focus class.
Then, based on its level, we determine the appropriate target area. If we are less than 75% of a level before the next target area, we may proceed ahead. I will likely include a "risk magnitude" factor in the profile that determines skipping rates and fight difficulty levels, primarily for debugging so we can easily adjust it if we find the bot to be taking too many risks.
Next, we determine the zone that contains the target area, and setup a rescue path to the nearest long distance hub, then travel to other long distance hubs to reach the target zone.
Once we are in the target zone, we proceed to the nearest recovery waypoint (as there should be a path from the nearest hub to each waypoint). Once we've reached the recovery, we follow that to our (re)starting point.
Now the action begins. It checks to see if the "quest todo list" for this level is done, and acts accordingly. Once the quest todo is hit, it resorts to grinding away the rest of the level. It also checks if the quest is actually available, so if any pre-requisites were missed, it will not screw up trying to do that quest.
In addition, there will be a few behaviour changes made to the bot.
First, and simplest, it will auto-sit when resting. This increases regen speed, and should buy us a few seconds.
Second is a massive overhaul of the inventory system. This will likely involve a custom addon, which will add several new features.
Features of the new inventory system:
1.) Dynamic Loot Filtering - Basically, it will filter items differently based on how much space is left in the bag.
2.) Stat Scoring - Effectively scores items to a single, easy to compare number for each of our classes. (Rune slots are counted in scoring.)
3.) Equip Memory - "Remembers" the equipment for our 3 classes (uses bank slots 1-13 for the odd class out). This way we can score equipment against other classes current equipment.
4.) Auto Equip - If the latest equip is better than what we already had for any class, equip it if the class is currently active, or mark it for equip if the class is inactive.
5.) Auto Vendor - It will be able to autorepair, and autovendor items that are no longer useful (underscored equips, etc)
6.) Marking System - It will keep track of items in inventory and their "mark" status which determines what is planned for these items. Possible marks include "vendor" (would be sold to vendor on next visit), "potion" (the currently in-use stack of potions), "auction" (items to be posted on the AH at next visit), "bank" (items the bot should bank, such as guild runes), etc. This marking system will be updated with the inventory, meaning that when you approach a vendor, it already knows which slots to sell, rather than performing any comparisons on the spot. In addition, debug prints of the inventory will allow us to see and be aware of potential issues, such as a valuable item being marked as vendor, etc.
7.) Auto Rune - Each class will have a predefined list of "top runes" (say top 5 runes for this class). When we have a runeslot open, and we come into possession of one of these runes, it will be applied to the first available (and appropriate) rune slot.
So, the project has changed methods a bit, but the overall goal remains the same. Because of the mass increase of "intelligence" of the bot, modules will be reduced to single-level, plus hubs, etc. Therefore a release will be far more imminent as I might as well start with level 1. For initial release, supported zones will be Howling Mountains, Silverspring, and Elven Islands. You will have to be somewhere in one of these zones to start the bot. It *will* support the tutorial, thanks again to lisa for showing me how to do that.
Edit: I updated the first post to mark a few completed challenges. While I have race detection, I'm doing it via a skill check, there's probably a more reliable way? Thanks to everyone for their help, soon we'll start to show some real progress. (My day job needs me, been some long weeks here. I *promise* as soon as I get some time to actually sit down and work on this for a few, we'll have a release.)