Sanderling release version 15.10.27

Version 15.10.27 of the Eve Online Botting Framework has just been released.

changes coming with release v15.10.27

  • bugfix: Window members where not included in IWindowAgentDialogue.
  • feature: added parsing of mission information in agent dialogue window (shown in screenshot). This includes the objectives (with locations and items) and rewards of the mission. To see all the available properties, select an agent dialogue window in the API Explorer in theMemoryMeasurementParsed branch.
  • new scripting features:
  • added recommendations window (screenshot) which helps you to choose from commands available in the current context.
  • new Break command on Host interface to interrupt script execution from script until user continues.
  • the HostSanderling symbol was abbreviated to Sanderling. You don’t have to adjust existing scripts because the old identifier is still present as an alias.

new mission API

recommendations in scripteditor.

Hello.

On this weekend i had some free time, so i tested this version.

1) new feature are helpful, but i have some bug. Not sure it is interconnected, but here we are:

when i use your default IDE few hours, i have this error:

{
“SeverityText”: “Error”,
“DescriptorId”: “CS0009”,
“LineIndex”: 0,
“CharacterIndexInLine”: 0,
“Message”: "Metadata file ‘S:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll’ could not be opened – Not enough storage is available to process this command.
",
“LineIndexInAvalonEdit”: 1,
“CharacterIndexInLineInAvalonEdit”: 1
}

I have not conducted in-depth investigation, but regardless of the reason I request to add a new option: hotkey for quick save (write to file). It could be Ctrl+S or another combination.

  1. As i understand it, Sanderling  works by the following algorithm: the client side gathers information from memory and sends to the server. Server side part of program parse information and send it back as structure. What is the interval between updates?

I open agent dialog, click “Accept” button and want click “Close” button, but this button have other coordinates. So as i understand, i need some delay for waiting update information.

PS: I am very glad that the project is not in place and continues to evolve. I will try more often report experiences.

1 Like

Thank you for taking the time Terpla,

I saw that error message too and fixed the bug which caused it. It caused the process to allocate too much memory and eventually run out of address space. That bug is fixed in version 15.11.11.

I will add the hotkey for quick save as requested.

On the interval between updates:

If no input is made, a new measurement is started four seconds after the last measurement has been completed. (As is defined in that line: https://github.com/Arcitectus/Sanderling/blob/v15.11.11/src/Sanderling/Sanderling.Exe/App.Interface.cs#L134)

If the last measurement is older than the last input (as in your case with the buttons) a new measurement is started 300 milliseconds after the input (As defined in that line https://github.com/Arcitectus/Sanderling/blob/v15.11.11/src/Sanderling/Sanderling.Exe/App.Interface.cs#L65). If the script requests some info frome the measurement, execution will be delayed until the new measurement is completed or a timeout is met (https://github.com/Arcitectus/Sanderling/blob/v15.11.11/src/Sanderling/Sanderling.Exe/App.Interface.cs#L99).

I wanted the delay after an input to be long enough to allow a submenu in a contextmenu to appear. That is why I chose the 300ms. The agent dialogue needs more time to update so we need a different solution there.
At the moment, I think I will add a method called

InvalidateMeasurement

on the IHostToScript Interface for such cases. Calling that method would have a similar effect as calling any of the input methods: After calling that method a call to any of the Measurement properties will give you a measurement that has been started after the call to InvalidateMeasurement.

As long as that method is not yet available, the workaround is to delay the script execution by the maximum time you expect the update to take plus the four seconds mentioned earlier. If for example you expect the button to appear at max one second after the click on “Accept”, you’d call:

Host.Delay(5000);