What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

ExilebuddyBeta #899 Feedback and Discussion

pushedx

Well-Known Member
Joined
Sep 24, 2013
Messages
4,252
Reaction score
290
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 #899

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.

Standard town functionality using the new API has been re-added and is ready for testing. The bot will now id items based on your Id filters, and will sell items based on your sell filters. The filters are the same as before, so nothing has changed in that regards. With the new API, the bot will perform all actions the same way a user would. That is, it has to open the appropriate window first (stash/sell/inventory), and then it will perform actions by moving the mouse and checking the current client state. As the bot ids items, it will look the same as if you were doing it yourself. However, it is possible to interrupt the logic if you click inside the client or perform any actions yourself while the bot is running. The current logic attempts to handle this as best as possible, but please be aware of how the bot works now; your actions in the client affect the game, and in turn interfere with the bot.

A lot of the previous beta functionality has been updated for the new API and re-added, but not all of it is done yet. The bot does not have the withdraw id/tp scrolls logic yet, so even though the option is in the GUI, the bot will not do it yet. Likewise with inventory sorting, to get quest items moved to the left most positions. That stuff will most likely make it back in the next version, as this update is quite large and has taken a few days as it is. The bot will handle ordering inventory shards, non-virtual items on the cursor, and merging inventory stacks.

The new stashing logic is setup to work the same way a normal user would stash, with some exceptions. The bot will go to the first stash tab before starting to work its way though the stash to process each tab. This is necessary, as the new API does not perform any actions at a time that a normal user couldn't. That is, if your Wisdom Scrolls were on tab 1, and you're on tab 2, a normal user couldn't withdraw them (even though the client makes no distinction between which tab you're actually on once you have the contents). The API has support for switching tabs using the tab list drop down, but BasicGrindBot will not make use of that functionality, and simply rely on the normal left/right arrow changing tabs method, as it's the most reliable. Unlike before, the bot will not request stash tabs any longer, but rather just changes to a stash tab and lets the client request the contents. There is not currently a max stash tabs to use setting as a result.

Iding logic works as follows: the bot will check your main inventory for id scrolls and id as many items as possible. If the bot needs more, it will go to stash and start looking from the first tab. In the event you're out of id scrolls, it will try again, and eventually stop because iding has failed. This is just a short term logic implementation that will be changed later.

Lastly, for town stuff, the bot will exhibit a new behavior when placing items from the cursor. Since the bot does not directly call any client functions to perform actions now with the new API, it must "drag" items to the desired location to place them before being able to drop them. This means you'll see cursor drop operations take longer than before as the item moves across a few inventory cells to the location it needs to be in. This is working as intended, and how the API will work from now on.

Various out of town issues have been fixed and logic has been improved. The extra town trip when going to an area that has a different governing town should now be fixed. That is, if you're in town, the bot should not take a waypoint to another town, and then take a waypoint to the grind zone. This would happen in a few specific areas at the start of the act. The bug with Merciless Upper Sceptre of God should now be fixed as well, and there should be no more waypoint issues.

Various plugins from the last beta have been updated and worked back into Beta. These are just working examples of how some things can be done, and are provided for users to customize or extend to their needs. The logic is setup to work for any bot implementation, and none of the plugins have logic for working directly with BasicGrindBot. That is why, for example, StuckDetection cannot trigger exploration complete, because there's no generic interface across IBot that would allow for that.

A few changes were worked into ExampleRoutine as well. There is now a ranged attack distance used to determine ranged combat. This is to address the issue of CombatRange needing to be larger, say 70, to correctly trigger some boss fights in the CR. In addition, a reported null exception issue was fixed due to typo.

The object/component system was not rewritten yet, because the focus was getting back iding/selling, as that seemed to be the biggest issue people were waiting for. There are still quite a number of things to cleanup and do, but progress is steadily continuing on. Strongboxes should now be opened by default, if not ignored in settings, but it has not been tested yet. Please remember this is still Beta, so be cautious on the characters you test on if you cannot afford anything going wrong.

Changelog
  • OpenChestTask now uses GlobalChestsToIgnore to determine which chests to open. Strongbox specific logic is not implemented.
  • AreaStateCache.CorruptedAreaParentId added to try and auto-detect the parent area for corrupted areas. Corrupted area logic is not in yet.
  • Chicken, StuckDeteection, and the Scheduler plugins have been updated and re-added from the previous Beta.
  • HandleInventoryItemsTask added.
  • Bug fix in ExampleRoutine that was causing null exceptions.
  • Added SellItemsCoroutine.
  • FinishCurrentAction now waits 250 ms if input was reset.
  • WaitFor functions now log their entry to make debugging easier.
  • Added WaitForNpcDialogPanel.
  • InteractWith delay increased to 64ms from 32ms.
  • Added TalkToNpc.
  • Added SellTask, a generic, reusable coroutine like Stash and Id.
  • StashItemsCoroutine logic updates.
  • Added IdItemsCoroutine.
  • IdTask is now generic and reusable.
  • Added ClearCursorTask and MergeInventoryTask.
  • TravelToGrindZoneTask now removes extra town hops for certain areas.
  • ExampleRoutine curse logic now uses MaxRangeRange.
  • ExampleRoutineSettings.CombatRange now controls total combat range, but not skill use.
  • Added ExampleRoutineSettings.MaxRangeRange, which controls how far to use ranged skills. The CR will move into attacking distance for ranged attacks now.
  • Added BasicGrindBotSettings.TriggerTownRun.
  • LootItemsTask, ReturnToGrindZoneTask logic updated to be reusable.
  • Added TownRunTask to replace the old CreateAndTakePortalToTown calls.
  • TravelToGrindZoneTask updated to make use of new common coroutines.
  • Commonly used coroutine logic added and updated. See v3.Coroutines.
  • StashPanel.GoToFirstTab added.
  • Coroutines.StashItemsCoroutine added.
  • Coroutines.OpenStash updated to move to stash if in town (only works in hideout if Stash is spawned in range).
  • ExilePather.FindPath now has a releaseFrame parameter for advanced usage.
  • ExilePather.WalkablePositionFor now has a noCache parameter for advanced usage.
  • StashTask updated to be fully reusable by devs wanting to implement custom stashing.
  • BasicGrindBot now implements stash specific logic to use in StashTask.
 
Last edited:
First :D

And I get this when i start it up:

Code:
[OnStartup] A top-level exception has been caught.System.Windows.Markup.XamlParseException: 'Cannot create unknown type '{clr-namespace:Loki.Utilities.Controls;assembly=Loki.Utilities}TimePicker'.' Line number '30' and line position '22'. ---> System.Xaml.XamlObjectWriterException: 'Cannot create unknown type '{clr-namespace:Loki.Utilities.Controls;assembly=Loki.Utilities}TimePicker'.' Line number '30' and line position '22'.
   at System.Xaml.XamlObjectWriter.WriteStartObject(XamlType xamlType)
   at System.Xaml.XamlWriter.WriteNode(XamlReader reader)
   at System.Windows.Markup.WpfXamlLoader.TransformNodes(XamlReader xamlReader, XamlObjectWriter xamlWriter, Boolean onlyLoadOneNode, Boolean skipJournaledProperties, Boolean shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, XamlContextStack`1 stack, IStyleConnector styleConnector)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   --- End of inner exception stack trace ---
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, Boolean skipJournaledProperties, Uri baseUri)
   at System.Windows.Markup.XamlReader.Load(XamlReader xamlReader, ParserContext parserContext)
   at System.Windows.Markup.XamlReader.Load(XmlReader reader, ParserContext parserContext, XamlParseMode parseMode)
   at System.Windows.Markup.XamlReader.Load(Stream stream, ParserContext parserContext)
   at System.Windows.Markup.XamlReader.Load(Stream stream)
   at Scheduler.Scheduler.get_Control()
   at BotGui.Windows.MainWindow.HandleInterfaces(Object obj)
   at BotGui.Windows.MainWindow.<OnStartup>b__14()
   at System.Windows.Threading.DispatcherOperation.InvokeDelegateCore()
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback)
   at BotGui.Windows.MainWindow.<OnStartup>b__5(Object o)

And here is LOG:
View attachment Exilebuddy 162920 2014-09-08 22.14.txt

And when I download from ExilebuddyBeta #893/#894 Feedback and Discussion

I get this error:
Code:
[OnStartup] A top-level exception has been caught.System.Windows.Markup.XamlParseException: 'Cannot create unknown type '{clr-namespace:Loki.Utilities.Controls;assembly=Loki.Utilities}TimePicker'.' Line number '30' and line position '22'. ---> System.Xaml.XamlObjectWriterException: 'Cannot create unknown type '{clr-namespace:Loki.Utilities.Controls;assembly=Loki.Utilities}TimePicker'.' Line number '30' and line position '22'.
   at System.Xaml.XamlObjectWriter.WriteStartObject(XamlType xamlType)
   at System.Xaml.XamlWriter.WriteNode(XamlReader reader)
   at System.Windows.Markup.WpfXamlLoader.TransformNodes(XamlReader xamlReader, XamlObjectWriter xamlWriter, Boolean onlyLoadOneNode, Boolean skipJournaledProperties, Boolean shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, XamlContextStack`1 stack, IStyleConnector styleConnector)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   --- End of inner exception stack trace ---
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, Boolean skipJournaledProperties, Uri baseUri)
   at System.Windows.Markup.XamlReader.Load(XamlReader xamlReader, ParserContext parserContext)
   at System.Windows.Markup.XamlReader.Load(XmlReader reader, ParserContext parserContext, XamlParseMode parseMode)
   at System.Windows.Markup.XamlReader.Load(Stream stream, ParserContext parserContext)
   at System.Windows.Markup.XamlReader.Load(Stream stream)
   at Scheduler.Scheduler.get_Control()
   at BotGui.Windows.MainWindow.HandleInterfaces(Object obj)
   at BotGui.Windows.MainWindow.<OnStartup>b__14()
   at System.Windows.Threading.DispatcherOperation.InvokeDelegateCore()
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback)
   at BotGui.Windows.MainWindow.<OnStartup>b__5(Object o)
 
Last edited:
Getting exceptions once starting the EB, sent the log to you thru Skype.
 
I was thinking it was my routine's edit that was causing the error but then I took a look on this topic updates :p
 
Whoops, will be fixed soon. Forgot about a plugin issue when deploying via build server.
 
The Scheduler and StuckDetection plugins will be removed until I can figure out why they break the bot under the new setup.
 
Code:
[OnStartup] A top-level exception has been caught.System.Windows.Markup.XamlParseException: 'Cannot create unknown type '{clr-namespace:Loki.Utilities.Controls;assembly=Loki.Utilities}TimePicker'.' Line number '41' and line position '22'. ---> System.Xaml.XamlObjectWriterException: 'Cannot create unknown type '{clr-namespace:Loki.Utilities.Controls;assembly=Loki.Utilities}TimePicker'.' Line number '41' and line position '22'.
   at System.Xaml.XamlObjectWriter.WriteStartObject(XamlType xamlType)
   at System.Xaml.XamlWriter.WriteNode(XamlReader reader)
   at System.Windows.Markup.WpfXamlLoader.TransformNodes(XamlReader xamlReader, XamlObjectWriter xamlWriter, Boolean onlyLoadOneNode, Boolean skipJournaledProperties, Boolean shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, XamlContextStack`1 stack, IStyleConnector styleConnector)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   --- End of inner exception stack trace ---
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, Boolean skipJournaledProperties, Uri baseUri)
   at System.Windows.Markup.XamlReader.Load(XamlReader xamlReader, ParserContext parserContext)
   at System.Windows.Markup.XamlReader.Load(XmlReader reader, ParserContext parserContext, XamlParseMode parseMode)
   at System.Windows.Markup.XamlReader.Load(Stream stream, ParserContext parserContext)
   at System.Windows.Markup.XamlReader.Load(Stream stream)
   at StuckDetection.StuckDetection.get_Control() in c:\Users\shane\Desktop\POE PLANNER\Plugins\StuckDetection\StuckDetection.cs:line 255
   at BotGui.Windows.MainWindow.HandleInterfaces(Object obj)
   at BotGui.Windows.MainWindow.<OnStartup>b__14()
   at System.Windows.Threading.DispatcherOperation.InvokeDelegateCore()
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback)
   at BotGui.Windows.MainWindow.<OnStartup>b__5(Object o)

Following update just
 
Make sure to download a clean copy of #899. If you update, then the plugins that are bricking the bot will still be included.

Alternatively, just delete the StuckDetection and Scheduler folders from Plugins and the bot should start up.
 
Will be firing this up tonight and start to do some tweaking :) VERY excited to say the least!
 
Now if somebody could upload a modified item filter for the vendor that would be great :D
 
First bug report.

Loot on the ground, inventory full, it opens a portal, when it is on town, joins the portal again and goes to grind zone and tries to talk with NPC on the grind zone.

After stopping and starting the bot on the grind zone it correctly went through the portal and vendored.
 

Attachments

Last edited:
First bug report.

Loot on the ground, inventory full, it opens a portal, when it is on town, joins the portal again and goes to grind zone and tries to talk with NPC on the grind zone.

After stopping and starting the bot on the grind zone it correctly went through the portal and vendored.

Is your Move on left mouse button?
 
The settings for where to keep scrolls/shards in the basic grindbot settings wont change from their initial values on a clean install, nor does the "randomize locations" work. Whenever i try to change the x/y values as soon as i click out of the box it goes back to what was there before.
 
Yes I have both on Left mouse and another key.

It can't be on your LMB, because the client "auto-guesses" what you intended to do based on what is under the cursor. I'll repaste the need to knows again in this thread, but that's been mentioned in all the previous Beta threads.
 
Back
Top