Fix active module while reloading, refill ammo and drones

Hi Michael Rätzel

I have some idea to improve bot more effective:

Is there any way to read Modul tooltips if there are “Reload” text incluce, then do Nothing. Else: Active Module
ảnh

Before Undock if there are no enemy or neutral in local chat:

  • Refill Ammo and Drones ( Pick ammo and drone name frome app-settings )
  • Repair Ship ( We can set Repairshop shortcut to some key), pick Ship’s Name ( Get frome app-settings)
    ảnh
    Then click Repair Item => Repair All
    ảnh
  • undockUsingStationWindow

Btw: I was collected all key code to EffectOnWindow.elm

Hi Brian :wave:

What about using the display text you get from getAllContainedDisplayTexts in the moduleButtonTooltip field?
Do you see the “Reload” when you expand the node getAllContainedDisplayTexts in the inspection tool for the memory reading?

yes, i can see that
ảnh
ảnh

1 Like

Good, then you can use List.any (String.contains "Reload") on this list to check if it contains the “Reload”.

Also, here is an implementation to read the module tooltip:

I see you write a funtion to check moduleIsActiveOrReloading, so we done with reload problem.

Next challenge:

Before Undock if there are no enemy or neutral in local chat:

  • Refill Ammo and Drones ( Pick ammo and drone name frome app-settings )
  • Repair Ship ( We can set Repairshop shortcut to some key), pick Ship’s Name ( Get frome app-settings)
    ảnh
    Then click Repair Item => Repair All
    ảnh
  • undockUsingStationWindow

Why pick the name from app-settings?
Was the name of the ammo not visible in the module button tooltip?

1 Like

Yes, read from module button tooltip work too :smiley:

Good, reducing the number of app-settings looks like an improvement :+1:

What about this one:

Why get the ship name from app-settings?
Is there not a way to make the ship name visible on the screen?

I dont think so.

Anyway, your Orbit step maybe wrong.

( "Click on the overview entry and press the 'W' key."
, [ overviewEntryToOrbit.uiNode |> clickOnUIElement MouseButtonLeft
  , VolatileHostInterface.KeyDown keyCodeLetterW
  , VolatileHostInterface.KeyUp keyCodeLetterW
  ]
)

Need change to this:

( "Click on the overview entry and press the 'W' key."
,[ VolatileHostInterface.KeyDown keyCodeLetterW
  ,  overviewEntryToOrbit.uiNode |> clickOnUIElement MouseButtonLeft
  , VolatileHostInterface.KeyUp keyCodeLetterW
  ]
)
1 Like

Nice! Thank you for the tip!

Looking at your code: As far as I understand, you changed only the order of the effects. Is that correct?

I think after changing the order in the effects list, the part of the description text for the user interface would not fit anymore.

Can we change the description text to this:

Press the 'W' key and click on the overview entry.

?

I think it would better match the new ordering on the effects side.

Yes, it’s correct.

Yes again, it’s how orbit shortcut key work

I was using all shorcut key for: Lock target. Lauch Drones, Engage idling drones, Returning Drones. It better than using menu for each one ( may cause error ). Example:

    (describeBranch "Launch drones"
        (endDecisionPath
            (actWithoutFurtherReadings            
                ( " by using SHIFT + F Key"
                , [ VolatileHostInterface.KeyDown Common.EffectOnWindow.VK_SHIFT
                ,   VolatileHostInterface.KeyDown Common.EffectOnWindow.VK_T
                  , VolatileHostInterface.KeyUp Common.EffectOnWindow.VK_T
                  , VolatileHostInterface.KeyUp Common.EffectOnWindow.VK_SHIFT
                  ,VolatileHostInterface.KeyDown Common.EffectOnWindow.VK_SHIFT
                ,   VolatileHostInterface.KeyDown Common.EffectOnWindow.VK_F
                  , VolatileHostInterface.KeyUp Common.EffectOnWindow.VK_F
                  , VolatileHostInterface.KeyUp Common.EffectOnWindow.VK_SHIFT
                  ]
                )

        )
    )
    )

You can use key code to do all shortcut key and dont need to write a “keyCodeLetterW” anymore

1 Like

Thanks for the clarification.
There is also a bot in the examples repository which uses orbiting. I integrated your idea there so that other people also find it.

Can you Integrate Refill Ammo and Drones and repair ship too ?

Anyway. I remember that you have a function to active module in 3rd row if shield under Specifically % in some mining bot? I tried search but not found it on your github

What is there to integrate?

I found this screenshot above:
Screnshot found above

Do we have a memory reading or a session archive with that button?

When we have the data for your scenario, coding a function to use the button is easy.

I don’t remember seeing such a bot.