Firstly the main issues remaining with 4.0.0:
- 1. How to deal with 3 sets of skills... What I've done is gotten the info, about the skills you have, from memory. This means we can directly check if you have a skill before trying to use it. This required adding the skill ids to the skills database. The info I get from memory and update the skills with are; Id, Level, aslevel, ReqLevel and TPToLevel.
For example, if you are a p/m/k you can add both the mage and knight general skills to the priest skills section with no worries. As a bonus you can also add skills you don't already have. For instance you could make a 1-10 profile that includes all the skills you will want to use between levels 1-10.
2. Because the skills can now be identified by name, via the id, they can all be cast by name in any language. That means everyone can now use hotkey="MACRO" and the skills_local.xml file is no longer needed. This also means we no longer need the skilltab and skillnum values. They have been removed. I've tried to add support for people who create virtual skills to action their own macros via the action bar. To do so just make sure you don't give your database skill an id and make sure to give the skill, in your profile, a valid hotkey.
3. Because some buffs have changed, so have their ids. To avoid having to update the buff ids I changed it from comparing the ids to comparing the names gotten using the ids. This way, even though the ids change, as long as the name remains the same it will work. This means less maintenance. I did the same with the skill ids. It compares the ids names not the ids themselves. A bonus to this is we no longer need multiple ids for stackable buffs like the knight seals. Any of the ids that yield the right name will do.
4. We can now add permanent mounts and pets to a new bag called the Partner Bag. It can hold 10 of each and uses its own functions to control it. It doesn't act the same as regular bag but more of an interface. I've added it to the mount function so player:mount() will find and mount mounts there.
I didn't need to but I added 2 functions "AddPartner(nameOrId)" and "CallPartner(nameOrId). These can add a pet or mount to the interface and call them by name.
Other minor, mostly unrelated changes:
- 1. Moved "LoadTables" from inside inventory.lua to higher up in bot.lua. Don't know why it wasn't done sooner. It has no dependencies and solves all my problems with trying to use GetIdName during bot start up.
2. Increased moveto "successDist" by 10. A few people have reported running back to waypoints and increasing this valued fixed it.
3. Tidied up settings.loadSkillSet(class) function.
4. Moved the check for ranged damage skills to the settings.loadSkillSet(class) function so that it gets checked every time you change class.
5. Added level 66 pots.
6. Added a couple of druid elites.
7. Fixed Warrior Elite skill Blood Dance maxhpper.
8. The bot no longer errors when you set your COMBAT_DISTANCE to a higher value than the longest range of your attack skills. Instead it just reduces COMBAT_DISTANCE to the longest range, writes a warning, and continues.
Todo:
Fix createpath, getid and getpos - forgot about them. Just remembered now. I don't think it's the first time.