Download - Please download a clean copy of Beta for each version. Do not "update", because the changes will break other versions. Before reporting issues, please make sure you are using a clean copy.
Please attach a full log if you have any problems. I've made sure as much debugging information is logged as possible to track down various issues that might happen. I need the full log though, and not partial snippets. If you do not feel comfortable posting a full log, you can PM me it instead with a link to your thread.
Beta #894
Beta #893
Please attach a full log if you have any problems. I've made sure as much debugging information is logged as possible to track down various issues that might happen. I need the full log though, and not partial snippets. If you do not feel comfortable posting a full log, you can PM me it instead with a link to your thread.
Beta #894
Please be sure to read the #893 section below for general stuff.
This version hopefully fixes the waypoint issues. The API has been changed to expose only areas that have waypoints unlocked. The internal workings of TakeWaypoint now use the old waypoint data object, but users do not need to deal with that anymore.
Local area transition support has been added to all the known boss areas (Brutus, Merveil, Weaver, Vaal, Piety, and Dominus). The bot should now be able to make its way though the areas into the boss rooms. However, users must implement CR specific boss fighting logic. This includes moving into range to start the boss fight, performing any other actions required to start the boss fight (Vaal, for example), and staying in combat until the boss fight is fully finished (Merveil has two stages, Weaver has disappearing phases, etc...). Without this logic, the bot will skip the boss fight, or most likely timeout leaving the area if the area transition is not usable. In the case of Dominus, the bot will simply get stuck without anything to do, because it doesn't have the logic to traverse Upper Sceptre of God backwards. The CR should also implement boss fighting logic for Hillock, as it's possible for the bot to try and leave the area before killing him, in which case, it would fail to take the area transition to town. I will not be adding any sort of boss fighting logic into ExampleRoutine anytime soon.
Various other logic fixes have been done, but there are some known issues that will always exist. Due to random area transition placement and orientation, there may be times where the bot fails to correctly take one, because it's not right in front of it. This problem cannot be easily solved, because the area transition object, is not the actual model for the door way / stairs i/ cave it's representing. The rotation and positioning of it doesn't matter, because it's adjusted based on the title itself, and there's no known way to process the static model. As a result, more comprehensive logic is needed to ensure an area transition can be taken, roughly by generating 8 points away from the area transition, and then moving to each, and trying to interact. BasicGrindBot logic does not do that, so that's why it can get stuck at times. Upper Sceptre of God and Catacombs are the two worst area transitions for the bot right now.
The logout after 2 exceptions logic has been removed from BasicGrindBot. This means the bot will attempt to restart as fast as possible after an exception is thrown that would otherwise cause it to stop. If an infinite exception cycle is hit though, the bot most likely will need to be killed though TaskManager, as there won't be a way to stop the bot though the GUI, since worker threads are being created to start it again and again. However, this should make the bot usable for some people who experienced a lot of exceptions. This weekend's goal is to work out a new way to handle objects and components to avoid the issue.
Vendoring, iding, chest config, various plugins, and other QoL stuff is on the horizon. After the object/component issue is fixed, then work can start on those. Please remember all in town stuff has a new API now, and seeing some of the issues that have popped up with the World Panel, I want to be sure things are going to work as they should before putting out new features for people to use.
Changelog
This version hopefully fixes the waypoint issues. The API has been changed to expose only areas that have waypoints unlocked. The internal workings of TakeWaypoint now use the old waypoint data object, but users do not need to deal with that anymore.
Local area transition support has been added to all the known boss areas (Brutus, Merveil, Weaver, Vaal, Piety, and Dominus). The bot should now be able to make its way though the areas into the boss rooms. However, users must implement CR specific boss fighting logic. This includes moving into range to start the boss fight, performing any other actions required to start the boss fight (Vaal, for example), and staying in combat until the boss fight is fully finished (Merveil has two stages, Weaver has disappearing phases, etc...). Without this logic, the bot will skip the boss fight, or most likely timeout leaving the area if the area transition is not usable. In the case of Dominus, the bot will simply get stuck without anything to do, because it doesn't have the logic to traverse Upper Sceptre of God backwards. The CR should also implement boss fighting logic for Hillock, as it's possible for the bot to try and leave the area before killing him, in which case, it would fail to take the area transition to town. I will not be adding any sort of boss fighting logic into ExampleRoutine anytime soon.
Various other logic fixes have been done, but there are some known issues that will always exist. Due to random area transition placement and orientation, there may be times where the bot fails to correctly take one, because it's not right in front of it. This problem cannot be easily solved, because the area transition object, is not the actual model for the door way / stairs i/ cave it's representing. The rotation and positioning of it doesn't matter, because it's adjusted based on the title itself, and there's no known way to process the static model. As a result, more comprehensive logic is needed to ensure an area transition can be taken, roughly by generating 8 points away from the area transition, and then moving to each, and trying to interact. BasicGrindBot logic does not do that, so that's why it can get stuck at times. Upper Sceptre of God and Catacombs are the two worst area transitions for the bot right now.
The logout after 2 exceptions logic has been removed from BasicGrindBot. This means the bot will attempt to restart as fast as possible after an exception is thrown that would otherwise cause it to stop. If an infinite exception cycle is hit though, the bot most likely will need to be killed though TaskManager, as there won't be a way to stop the bot though the GUI, since worker threads are being created to start it again and again. However, this should make the bot usable for some people who experienced a lot of exceptions. This weekend's goal is to work out a new way to handle objects and components to avoid the issue.
Vendoring, iding, chest config, various plugins, and other QoL stuff is on the horizon. After the object/component issue is fixed, then work can start on those. Please remember all in town stuff has a new API now, and seeing some of the issues that have popped up with the World Panel, I want to be sure things are going to work as they should before putting out new features for people to use.
Changelog
- SkeletonShrine override added to ExampleRoutine.
- WalkablePositionFor chooses a random walkable position within the first 5 results rather than all.
- Added TerrainData.TgtUnderPlayer. It's an expensive call because it doesn't cache GetTgtEntries, so use sparsely.
- Added ObjectManager.PietyArenaPortal2.
- Added a TakeAreaTransition that takes an object, for the case of piety portals that don't have a name that match the destination.
- Static locations added for Lunaris Temple 2/3.
- The bot should now be able to travel though Lunaris 3 to the piety fight. As with the other bosses, it's up to the CR to implement proper boss fight logic.
- Added LeaveCurrentBossAreaTask for a few boss areas, such as Weaver's Den and Lunaris 3.
- Removed the bot logout logic when exceptions are thrown. This is a temp change so the bot isn't unusable if it throws a lot.
- BasicGrindBotSettings.DeathsBeforeNewInstance added. It now defaults to 5.
- The bot should now travel though The Ancient Pyramid, The Weaver's Chambers, and the Upper Sceptre of God. However, it needs additional CR logic and plugin logic to start/correctly fight the bosses. For example, the CR needs to get into range of the weaver, as it starts out hidden to trigger the boss fight. The Strange Device needs to be interacted with at the top of the Ancient Pyramid to trigger the boss fight. The CR must wait for Vaal and kill it before letting the other tasks run, as they will expect the area transition to be usable. The same is true of Dominus, the CR mutt get into range to trigger the fight, and keep fighting though the entire boss fight, then a plugin handles logic for going back to town or taking the portal to the next difficulty.
- Actor.IsCorruptedMissionBeast added.
- WorldPanel.AvailableWaypoints now returns an IEnumerable of DatWorldAreaWrapper that represent currently unlocked waypoints.
- TakeWaypoint logic updated to hopefully take the correct waypoint based on area now.
- WalkablePositionFor now returns a random point of the possible walkable points.
- MoveTowards now uses a different calculation for town, to avoid getting stuck on stairs.
- Logic fix for when an area transition is known, but in a boss area, and you are not connected to it.
- Merveil transition fixed.
- TravelThroughBossAreasTask now takes precedence over explore in boss areas to avoid issues of getting stuck.
- Input's ProcessHookManager wrappers removed.
- Added debugging calls to PHM reset functions to track down a bug.
- TravelThroughBossAreasTask now has two executions, one for boss farming, and one for general exploration though a boss area.
Beta #893
1. Please place the "Move only" skill on your skillbar, but not in Left Mouse Button.
2. Make sure "Always Highlight" is enabled (PoE Options-> Ui or press Z)
3. Make sure "Key Pickup" is enabled (PoE Options-> Ui)
4. For a rough guide to Beta, please see the ExilebuddyBeta User's Guide. It's not fully updated yet for post 1.2, but the core stuff is still mostly the same.
5. A new guide for understanding and dealing with ExampleRoutine will be added 'soon", but the priority still is identifying core issues and fixing them so a Release can be made asap.
This version fixes several bugs, and further reduces the log spam that is causing some performance issues. Please remember, if you find any bugs, providing a full log greatly helps in the process of getting them fixed.
Various CR issues have also been addressed, including a new addition to targeting. The targeting system allows users to customize the priority of monsters based on various criteria provided by the API. the aura issue should now be fixed. Most issues I've seen reported with the CR come down to configuration, so if you are having troubles, I'll need you to post your ExampleRoutine settings and specify which skills are in which slots. Making the CR ignore less mobs will be coming soon with an implementation of a monster tracking system to the CR. I'll say once again, the CR ignores mobs by design right now.
The bot will be getting some additional features and functionality after all the core issues are worked out. Right now, the biggest thing left to do is to update the object/component system to avoid the memory issues that trigger quite frequently for some users. The new CR targeting logic might actually trigger this for more users now, but the issue is being worked out as fast as possible. This means town vendoring, item iding, strongbox configuration, and other basic stuff the previous version had are coming soon, but not the main focus right now.
A few quality of life features have made in back in from the previous beta. The bot should now do Brutus boss runs (whether or not the bot can kill him, will be up to your gear and the CR) when you select the grind area to be Upper Prison. Most issues should be fixed, but due to the nature of randomly generated areas, there might be times where the bot gets stuck and is unable to concubine. If this happens for you, please just submit a log, and take a screenshot of where it was stuck at, and I'll try to get it resolved. Merveil has not been tested yet, and is currently unsupported. That fight requires some waiting, so the bot most likely won't handle it correctly.
The Move skill will now be placed on the skillbar if it's not already assigned. The bot will stop if it's unassigned, so users don't get confused why the bot doesn't move. I'm not enforcing users to not place it on LMB, but the bot will get stuck on various objects if you do. Lastly, area transition logic has some fixes to prevent issues where the bot would get stuck due to quest states being unfulfilled. The bot does not have any quest handling, so if you try grinding in an area, or using the bot to play though the game, there's several locations it can get stuck if you don't do the quests. TravelToGrindZoneTask now uses some static location guessing to try to get to the grind zone faster.
Changelog
Alert Plugin
These examples are not included with the bot, because they require a hard coded path to a system file. It would make the bot unable to startup for users with different system configurations, so for now, they will just be pasted here:
AlertPlugin.cs: https://gist.github.com/anonymous/a4cf87bf2e0018468f2c
AlertPluginSettings.cs: https://gist.github.com/anonymous/889bbe73b5c9ad14bdad
SettingsGui.xaml: https://gist.github.com/anonymous/c4590318b0759b5057ae
You'll need to reference System.Speech / modify the path if it's different for your system for it to work. The bot will pause as the notification is played, but that can be solved by offloading that into a WorkerThread with a pre-formatted text string.
2. Make sure "Always Highlight" is enabled (PoE Options-> Ui or press Z)
3. Make sure "Key Pickup" is enabled (PoE Options-> Ui)
4. For a rough guide to Beta, please see the ExilebuddyBeta User's Guide. It's not fully updated yet for post 1.2, but the core stuff is still mostly the same.
5. A new guide for understanding and dealing with ExampleRoutine will be added 'soon", but the priority still is identifying core issues and fixing them so a Release can be made asap.
This version fixes several bugs, and further reduces the log spam that is causing some performance issues. Please remember, if you find any bugs, providing a full log greatly helps in the process of getting them fixed.
Various CR issues have also been addressed, including a new addition to targeting. The targeting system allows users to customize the priority of monsters based on various criteria provided by the API. the aura issue should now be fixed. Most issues I've seen reported with the CR come down to configuration, so if you are having troubles, I'll need you to post your ExampleRoutine settings and specify which skills are in which slots. Making the CR ignore less mobs will be coming soon with an implementation of a monster tracking system to the CR. I'll say once again, the CR ignores mobs by design right now.
The bot will be getting some additional features and functionality after all the core issues are worked out. Right now, the biggest thing left to do is to update the object/component system to avoid the memory issues that trigger quite frequently for some users. The new CR targeting logic might actually trigger this for more users now, but the issue is being worked out as fast as possible. This means town vendoring, item iding, strongbox configuration, and other basic stuff the previous version had are coming soon, but not the main focus right now.
A few quality of life features have made in back in from the previous beta. The bot should now do Brutus boss runs (whether or not the bot can kill him, will be up to your gear and the CR) when you select the grind area to be Upper Prison. Most issues should be fixed, but due to the nature of randomly generated areas, there might be times where the bot gets stuck and is unable to concubine. If this happens for you, please just submit a log, and take a screenshot of where it was stuck at, and I'll try to get it resolved. Merveil has not been tested yet, and is currently unsupported. That fight requires some waiting, so the bot most likely won't handle it correctly.
The Move skill will now be placed on the skillbar if it's not already assigned. The bot will stop if it's unassigned, so users don't get confused why the bot doesn't move. I'm not enforcing users to not place it on LMB, but the bot will get stuck on various objects if you do. Lastly, area transition logic has some fixes to prevent issues where the bot would get stuck due to quest states being unfulfilled. The bot does not have any quest handling, so if you try grinding in an area, or using the bot to play though the game, there's several locations it can get stuck if you don't do the quests. TravelToGrindZoneTask now uses some static location guessing to try to get to the grind zone faster.
Changelog
- LokiPoe.ClientFunctions is now public.
- BestDeadTarget now checks for rarity to prevent trying to raise unique corpses.
- MoveTowards logic updated to try and address an infinite looping action from wall hugging issues near corners and doors.
- Added TakeWaypointToTown coroutine.
- GenerateStaticLocations now uses pathfinding to determine a walkable location. RegenerateStaticLocations needs to be called after a local area transition.
- TravelToGrindZoneTask will now try to take a waypoint back to town if in range, to not waste a portal.
- Added Coroutines.WaitForPositionChange.
- TakeAreaTransition now supports local area transitions.
- Added TravelThroughBossAreasTask to handle boss area transitions. Only Act 1 is supported currently.
- Additional log spamming reduced.
- Added Targeting class to Loki.Bot.
- ExampleRoutine now uses a CombatTargeting system again.
- Actor.IsMissionAreaSpawn added (mobs with a red shading that are exp worthless).
- TravelToGrindZoneTask optimizations added for Act 1.
- Various instances of log spam reduced to cut back on performance issues that result.
- Added WaitForAreaTransition, which will prevent the bot from trying to take an area transition too soon, or for too long.
- Added AssignMoveSkillTask so the bot will assign Move to the skillbar if there's room. If there's not room, the bot will stop.
- Waypoint data updated again to fix an issue with certain areas.
- Aura issue fixed in ExampleRoutine.
- IExplorer now has an Unload function that must be implemented to unload explorer data.
- AreaStateCache now unloads the exploration data of previous areas to prevent excess memory use.
- AreaStateCache.WorldAreaId / WorldAreaName removed in favor of WorldArea (DatWorldAreaWrapper).
- TravelToGrindZoneTask now closes blocking windows under all scenarios so it doesn't get stuck at stash.
- Fixed a debugging log for the current path. The area id was not logged.
Alert Plugin
These examples are not included with the bot, because they require a hard coded path to a system file. It would make the bot unable to startup for users with different system configurations, so for now, they will just be pasted here:
AlertPlugin.cs: https://gist.github.com/anonymous/a4cf87bf2e0018468f2c
AlertPluginSettings.cs: https://gist.github.com/anonymous/889bbe73b5c9ad14bdad
SettingsGui.xaml: https://gist.github.com/anonymous/c4590318b0759b5057ae
You'll need to reference System.Speech / modify the path if it's different for your system for it to work. The bot will pause as the notification is played, but that can be solved by offloading that into a WorkerThread with a pre-formatted text string.
Last edited: