No "entries" after last eve update

After this last update I’m not getting any “entries” on data like:
WindowRegionalMarket[0].QuickBarView.Entry
or
WindowRegionalMarket[0].SelectedItemTypeDetails.MarketData.SellerView

Can you fix this or point me to which values on the source code should I change?
Thank you, regards.

The interface has been updated. Many nulls. Apparently the developer will need a lot of time for rescan signatures.

Up
The scripts do not work, we are waiting for the bot update, the question is, when? :slight_smile:

Is Sanderling bot fully open source?

I’d love to help, but having briefly looked into the sources, I didn’t find the memory reading service part.

P.S. Thanks for the amazing job you’ve done so far!

1 Like

Definitely a lot of issues after the new release. From a mining perspective Asteroids can no longer be found in the overview. A really interesting change in behaviour is the inventory window. Moving items out of the cargo hold works as expected, but if the hold was originally empty there is a new “No items found” entry which the bot thinks is an item and tries to move it. Love CCP!

Personally I really dislike the new probe scan window. Yuck!

Hack

I will add guidance about how to go about such an issue soon.
It will probably start with how to reproduce the issue in Visual Studio using a process sample from the eve online client.

Anyone who wants to work on this will need such a sample. See the guide at How to Collect Samples for 32-bit Memory Reading Development for how to collect such a sample.

Now it is, as I added the remaining memory reading code to the sanderling repository: +Add the memory reading code used in production to inspect the eve on… · Arcitectus/Sanderling@2c7e0f3 · GitHub

I published a guide on how reproduce the memory reading and inspect the memory reading service part at https://github.com/Arcitectus/Sanderling/blob/master/guide/Adapt-memory-reading.md

2 Likes

Nice! Spent my yesterday evening looking into the code. :smile: Do you, by chance, have plans to refactor it to English? It’s a bit hard to read when you don’t know German.

Yes, I intent to translate to english, when the memory reading is fixed.

We are making progress with the investigation of the issue with the Entry property as you can see at measurement.WindowOverview.ListView.Entry is null · Issue #11 · Arcitectus/Sanderling · GitHub

Now that we have established how to find the source code and how to reproduce memory reading from a saved process sample, lets take a closer look at the particular issue here.

Lets start with the report:

Looking up QuickBarView and SellerView in the source code, you can see that both properties have the type IListViewAndControl.

The property of this interface where fierc finds unexpected values is the Entry property.
The last step of the computation of the value for this property is coded at Sanderling/AuswertGbs.List.Viewport.cs at 678a0b47ef2f15a68e64ff9923e1f4b28a27b481 · Arcitectus/Sanderling · GitHub

(The assignment of the value to an object which implements the IListViewAndControl interface is coded at Sanderling/AuswertGbs.List.Viewport.cs at 678a0b47ef2f15a68e64ff9923e1f4b28a27b481 · Arcitectus/Sanderling · GitHub)

Therefore I think this would be a good place to take a closer look at.

2 Likes

Dreambottle contributed a change which he observed to fix the issue of missing ListView entries. You can see it at fix reading of the entries in the overview by dreambottle · Pull Request #12 · Arcitectus/Sanderling · GitHub

https://github.com/Arcitectus/Sanderling/issues/11#issuecomment-287504783

A summary of what I see in the commit ad1c44f647a733bb4e67d0425be90c48f5444ee1 contributed by dreambottle:

First some context

The memory reading expects the ListViews items to be contained in a Scroll. The scroll UIElement contains the actual item in one of its child nodes. The scroll can also contain other stuff like a scroll handle the user can interact with. So when reading the Scroll, we want to find different things in there and the items are to be found in the portion labeled as Content in the code.

Dreambottle changed how the Content node is selected

The SuuceFlacMengeAstFrüheste method used for this selection step first does a Breadth-first search within the node passed as the first argument and returns the first node which matches the predicate which is passed as the second argument. The changed line only affects the predicate and makes it more restrictive.
So the reason for the old version failing could be the introduction of another node in the UITree which matches the predicate and comes first in the breadth-first order but is not the node which contains the nodes for the items in the list view.

I published a release containing the fix from dreambottle: Release release v17.02.17 · Arcitectus/Sanderling · GitHub

@fierc, do you still see the problem with this release?

var snapshot = BotEngine.Interface.Process.Snapshot.Extension.SnapshotFromWindowHandle(handle);
var memoryReader = new BotEngine.Interface.Process.Snapshot.SnapshotReader(snapshot?.ProcessSnapshot?.MemoryBaseAddressAndListOctet);
var memoryMeasurement = memoryReader.MemoryMeasurement().Parse();

Please help me. How memoryMeasurement is accumulate in MemoryMeasurementAccumulator in order to see MemoryMeasurementAccu?.Value?.ShipUiModule?.FirstOrDefault().TooltipLast? FromProcessMeasurement<Sanderling.Parse.IMemoryMeasurement> is required for MemoryMeasurementAccu.Accumulate().

You can pass it to Accumulate like this:

var memoryMeasurementAccumulator = new MemoryMeasurementAccumulator();

//	Feed the measurement to an accumulator:

memoryMeasurementAccumulator.Accumulate(
	new BotEngine.Interface.FromProcessMeasurement<IMemoryMeasurement>(memoryMeasurement, 0, 1));

It work, FromProcessMeasurement was created. Thanks.

I think it’s working, at least those entries show. Thank you