Add some new features to Anomalies bot

Hi. Im new to botengine. Im tried it and it working great. But maybe if we add some things it will be better. I dont know how to code but there is my idea:

If ( Enemy or Neutral show up in Local Chat) then
Return Drone and Go dock in structure #null sec dont have npc station

Else Undock and start rating again

One more things: can we check if an blue or green friend was doing rat in site so we skip and go to another ?

Welcome Brian!

Thank you for the idea, I implemented it here:

You can run your variant of the ratting bot from FrontendWeb.Main

1 Like

I agree it is great and these 2 ideas would make it much better! you need the bot to dock when enemies arrive in local or you will die and leave anomaly sites that already have a friendly in them…

I am new to BotEngine as well and dont know much but I also have an idea to add to his that I think would be VERY useful to others using it…

Can you add an additional feature that checks for an enemy name in the rat site or overview that you specify so that it adds the anomaly to the ignore list and skips it to try and find another?

maybe something like
if (OverviewName = “Sentry”) then
RightClick ProbeScanner “Ignore Result”
and return drones and Dock
else (continue

Sometimes when you enter an anomaly that you can usually do no problem there is a chance it has enemies that are too strong and the bot needs to detect those enemy names you specify and avoid the anomalies they are in…

sorry if I sound ignorant

Thank you for implemented my idea. Its working great.

Like Michael T comment above. I have litte change like this:

IF ( anomaly sites that already have a friendly in them) or ( OverviewName = “Some rat name”)
Then (Go next anomaly sites)

with “Some rat name” can change with --app-settings
Combine it with version you implemented my idea before will be the best

Yes! Exactly! implementing something like Brian said I feel would improve the quality of this bot a lot because without these functions the bot still requires a lot of monitoring to make sure it doesn’t run into these problems we mentioned

I added this feature now here:

1 Like

Thank you for doing this! but am having trouble getting this to run

Getting this error when running this new version

If you try to run the bot from github rather than from your pc I get

Look like IF ( anomaly sites that already have a friendly in them) is not working. Tested few sites and if there are already have a friendly in them, bot still do the ratting without Go next anomaly sites

Found problem in this:

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

The objectType is return only ship type or struction type, none of it show as “friendly”.
I tried change to this but not working:

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

And it doesnt have code from first idea Adapt to idea from BrianCorner last week · Viir/bots@6d7499c · GitHub

I tried merge there 2 but it not working too.

Yea I notice now it doesn’t have the local chat enemy watch code in it…the 3 of these features (dock when enemy in local, warp to new anomaly on friendly detected and warp to new anomaly on rat name detected) together would improve this bot a lot

If the overview doesn’t display “friendly” as a string maybe you can change the code to detect objectType = ship and it’s color is blue Then that’s a friendly

I don’t know if that would help but I see you have code that says what color a rat is

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/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.