New Fighters

The SquadronUI.cs so far is just a draft for your review. I published this to learn from you whether the API structure as shown would be helpful and sufficient for what you are planning.

With rat targeted all we need to do is to click artillery button in EVE - the question is how we can click that button ?

Ok, with the sample I have so far I can read all buttons for all squadrons. But I do not have a solution yet for the classification as “artillery”. I would try hovering the mouse over each of the buttons and storing the tooltip for each of them, making the connection between tooltip and button with the highlight that appears on the button when it is hovered. Then we could look for the string ‘artillery’ in the saved tooltip. When I have a eve online client process sample with the button tooltip while the button itself is highlighted, I can look into reading this too.

In case a you take a new sample, you could include the squadron UI from the inventory in case you want to use that too. I mean the ‘Fighter Bay’ as shown at https://support.eveonline.com/hc/en-us/articles/207659599-Fighter-Controls

Is this is something you had in mind using ?

public interface SquadronUI
    {
        int? SquadronNumber { get; }

        SquadronHealth Health { get; }

        IEnumerable<SquadronAbility> SetAbility { get; }
    }

It depends on your feedback. For clicking the button you marked in your screenshot, the SetAbility property would be used to obtain references to the three buttons. The element from the collection could then used to click on. That is the plan so far.

I adopted the name ‘Ability’ from the eve online memory to refer to the button, but I do not know if the eve online UI uses other symbols for this entity.

I see the helpdesk article too uses the term ‘Ability’:

The Fighter Control panel is used to send fighters to attack a target or otherwise use their abilities

We will provide you with a new process sample with the button tooltip and fighter squadron bay UI.

To target all the rats I use this (setRatVisible array comes from your previous example):

int ratTargets = setRatVisible.Length-1;
 
 for(int i =0;  i <=ratTargets; i++)
    {
 KeyDown(VirtualKeyCode.LCONTROL);
 Sanderling.MouseClickLeft(setRatVisible[i]);
 Host.Delay(delayDuration);
 KeyUp(VirtualKeyCode.LCONTROL);
 }

It works.

Right now I am trying to figure it out how to warp within 30km instead of 0.

The targeting code can be improved:

  • Your code will throw an exception and thus stop the script if setRatVisible is ever null
  • If you place the keyboard code outside the loop you save the time for the delay
  • The loop code can be simplified with the foreach statement.

The following code incorporates all those changes:

KeyDown(VirtualKeyCode.LCONTROL);  foreach(var ratEntry in setRatVisible.EmptyIfNull())     Sanderling.MouseClickLeft(ratEntry);  Host.Delay(delayDuration); KeyUp(VirtualKeyCode.LCONTROL);

If you have a menu entry that contains the 30km, you can use this pattern instead the one I showed for warp to 0:

"warp.*30s*km"

With release of version 16.06.11, I expanded memory reading to include probe scan results and squadron UI.

You can now access the probe scan results over the follwing path:

memoryMeasurement?.WindowProbeScanner?.FirstOrDefault()?.ScanResultView?.Entry

To access the squadron UI, use the new SquadronsUI property of the IShipUi:

memoryMeasurement?.ShipUi?.SquadronsUI

You can find the release at https://github.com/Arcitectus/Sanderling/releases/tag/v16.06.11

Do we have any attribute or flag for selected squadron?

I don’t think we have this yet.

If you submit a corresponding process sample, I can look into adding an IsSelected property.

Done.Check your PM.

Also i dont found this hint:

Update:

You’ve reached the maximum number of replies a new user can create on their first day. Please wait 3 hours before trying again.

Now I cant reply on forum. :grinning:
Yes second sample contain all, soo you can download only them.

I see you uploaded two samples. Does the last one contain everything we need? I do not want to store multiple samples for stuff that can be covered in one.
Unless there is a good reason to do otherwise, I’d prefer to use one sample as reference for both selection and hint to keep the storage requirements low.

Good, I stored that one.

Also i should to know Is this ability active/not active/deactiveted. :fearful:

Where can I see this in the screenshot from the process sample?

(I just assigned you the next higher trust level, so you should be able to write posts without the waiting time you mentioned earlier)

In measurement that i mail you no one ability in use, soo i guess it will be impossible to find differences. We need new one, isn’t it?

Yes, we need some sample of what we want to read.

@Terpla, the additions to the interface for the Sqadron UI you requested have been added with version 16.11.17: Sanderling release v16.11.17

1 Like

Thank you. I tested, it works. But I still have a couple of questions:

  1. Is it possible to distinguish active from deactivated abilities?

In both cases, property RampActive == True

  1. Is it possible to understand that the ability is on cooldown?

It looks like you need to add another property.

  1. I ran into a problem: I can not tell the difference from the first and second abilities.

So I ask to add a hint. As for Squadron.

Is it possible add this hint without mouseovers as for modules? Do you need another memory measurement?

Hello Terpla,
I did not forget about your request. At the moment, I have no time to search through process samples for the additional properties you described.
Maybe we could speed up the development process by having multiple people take on the part of searching for memory reading paths. What do you think?

Do we have any tools for this task? or algorithm described with steps?
I would like to help but do not know how to do it.

I will upload a tool which extracts from the UI from a eve client process sample and exporrts the info in an easy to read format. This will follow the algorithm I explained at Advanced Do It Yourself Memory Reading In EVE Online
It will be a tool to persist what you can aleady read with the mentioned algorithm today.