Add some new features to Anomalies bot

Michael Rätzel I tried copy all the + line of code you put in here Adapt to idea from BrianCorner last week · Viir/bots@6d7499c · GitHub to here Adapt to idea from BrianCorner from yesterday · Viir/bots@0466e92 · GitHub

It look like this:
https://justpaste.it/2heds

I tried to run it but there are some error that i cant understand. Can you help me?
ảnh

I do not see this kind of classification in the training data so far, so that would require an addition.

Can you get a sample of the game client with such an object on screen?
In case you are not familiar with the process of collecting this training data, you can follow this guide: bots/guide/how-to-collect-samples-for-64-bit-memory-reading-development.md at 8064ac0545499c60196efab32bc0bd35944f70d0 · Viir/bots · GitHub

Yes, what error do you see?
Can you post the error or link a screenshot in which I can read the error?

Here is error i got when try to combine LocalWatch with version 2020-06-18 BrianCorner
https://justpaste.it/4z7l7

For (anomaly sites that already have a friendly in them) i make it work by adding this to ParseUserInterface.elm
This under parseOverviewWindowEntry : List

 , objectAlliance = cellsTexts |> Dict.get "Alliance"

And this under type alias :
, objectAlliance : Maybe String

Then change in BotEngineApp.elm

anomalySiteAlreadyHasAFriendly =
    seeUndockingComplete.overviewWindow.entries
        |> List.any (.objectType >> Maybe.map (String.contains "friendly") >> Maybe.withDefault False)

To this

anomalySiteAlreadyHasAFriendly =
    seeUndockingComplete.overviewWindow.entries
        |> List.any (.objectAlliance >> Maybe.map (String.contains "Alliance's Name") >> Maybe.withDefault False)

Now all we need is Combine this Local Watch version

with this version

Thank you Brian for the clarification.

I read your description and translated it into app code, so that you can run it as a bot: bots/implement/applications/eve-online/eve-online-anomaly-ratting-bot at 7abddedf92bd943d37838f39d4f1be48caf864bd · Viir/bots · GitHub

You can run this bot from FrontendWeb.Main

You can use the friendly-alliance-name setting on that page to set the alliance name.

Does this bot work for you?

1 Like

Thank for translated it into app code, i make it work in local already. Im just viewed version you made 2 hours ago. It still dont have localwatch
Add some new features to Anomalies bot

Can you reuse what you made to that new version ?

So final version will be:

If ( Enemy or Neutral show up in Local Chat) 
   Then (Go dock in structure #null sec dont have npc station)
    
If ( anomaly sites that already have a friendly in them) or ( OverviewName = “Some rat name”)
   Then ( Ignore Result current site #To avoid come back ) and (go next anomaly sites)

If ( no matching anomaly )
  then (Go dock in structure #null sec dont have npc station) #i was get killed because of floating on space to wait new site to appear

New problem: if we in anomally site and an ally warp in. It warp to next site too. We only need to check if ally was in site right after warp in. Not while doing rat.

Sure, I added these now here:

About the NAMING ERROR that you saw when you tried to merge the useContextMenuOnListSurroundingsButton from the older version:
I resolved this problem by copying the function from the latest mining bot instead. The mining bot uses the same framework, all files except BotEngineApp.elm are the same. The helper functions to use the context menu cascade evolved since your earlier branch, so I took useContextMenuOnListSurroundingsButton from the latest mining bot instead of from your older branch.

2 Likes

Thanks @Viir for your dedication…is it possible to use multiple bot settings, like having 2 anomaly site and rat avoid names?

Nice, i did notice that function useContextMenuOnListSurroundingsButton doesnt available. Thank for your help :slight_smile:

Yes, having multiple settings is possible.

hello there,
thanks for your great work, but I have also couple ideas to optimize:
in ‘null’-space it is much more efficient not to dock into the structure, but to warp to a bookmark in tether range of any friendly citadel, this allows you to restart farming couple minutes after enemy/neutral leaves local:

If ( Enemy or Neutral show up in Local Chat) 
   Then (warp to bookmark and wait 5min)
If ( ship is on tether and no enemies in local) 
   Then (restart farming)

When I try to add multiple settings like --app-settings=“anomaly-name=Drone Patrol,anomaly-name=Drone Horde” the bot only uses the last one in the line

Yes, that app-settings string is a new kind of scenario.
I changed the bot to support this scenario too:

Here is the bot that supports settings strings like anomaly-name=Drone Patrol,anomaly-name=Drone Horde: FrontendWeb.Main

Thank you! does this also allow you to set multiple rat-name-to-go-to-next-anomaly=Lookout Tower,rat-name-to-go-to-next-anomaly=

?

Not yet, this is a new example.
I can adapt the bot to support that too, but there is something that I understand about your current app:
About the friendly-alliance-name setting: When you see an object in the overview that has a non-empty string in the ‘Alliance’ column: As long as it not matches the setting, it does not cause you to leave this anomaly? This is how I understood your app. Is this correct?

Maybe we can find an even simpler set of scenarios to describe the choice:

  • When you see a pilot from the specified alliance in the overview, you skip this anomaly.
  • When you see a pilot from another alliance in the overview, you continue working in this anomaly.

@BrianCorner @link858 why this distinction?

When seeing pilot from another alliance that mean it a neutral or enemy in localchat. We going to dock, wait them to get in anomaly site that mean we are dead :smiley:

Thank you for the clarification.

Does this mean we can simplify the setting friendly-alliance-name?
Can we replace friendly-alliance-name by skip-anomaly-with-other-pilot and only allow true or false for this setting?
Why should the user need to type the name of an alliance in friendly-alliance-name?
What if the user makes a typing error in friendly-alliance-name? Then the bot will continue in the anomaly when there is a friendly in the anomaly. If I understand correctly, this could be avoided by friendly-alliance-name with skip-anomaly-with-other-pilot.

Does this make sense?

Maybe another angle to explain it:

This is only true as long as the user correctly wrote the alliance name in friendly-alliance-name right?

Yes. It true. Using Pilot only should be good too. But mostly we only need to avoid same alliance. Different one will be known as enemies so we already have local watch to get docked

Good to know.
Based on todays learnings, I coded this version, much simpler then before:

Is there any problem with this change?

Small problem. You still let it check for pilot in overview even we in anomaly site first. It should be check in this part like my own version :grin:

nextOverviewEntryToLock :: _ ->
                                        DescribeBranch "I see an overview entry to lock."
                                            (lockTargetFromOverviewEntry nextOverviewEntryToLock)
                                )

Wait. How about we keep alliance setting and check for pilot in site. If Pilot wasnt in alliance so we lock and shot him ? This could become pvp combat bot too :star_struck: