Easier Setup of Mission Running Bot for EVE Online

Thank you @dew1960 for providing so much details about how mission running works. Good to have this information when working on a bot.

I remember the agent dialogue contained a warning if declining a mission would lead to a standing loss. Is this not the case anymore?
I did some searching in the source code of the old mission running bot and found the relevant part, a regex pattern to search in the text displayed in the agent dialog:

With this regex pattern, the remaining time was also extracted, so you even knew how many minutes until you can decline a mission from the agent again without standing loss.

Why am I writing this you might wonder?
To make the programming simpler:
Programming the not more often than every four hours part means more complexity in the bot. To support this, we would need to know when the last decline was. But, if we can depend on the text displayed in the UI instead, we don’t need even need this, it’s simpler.

I am working on obviating the need to learn C# at all, to make the development experience more enjoyable.

1 Like

In the last month, the C# problem was fixed. Now you don’t anymore need C# to make EVE Online bots (https://github.com/Viir/bots/blob/master/guide/how-to-develop-eve-online-bots.md)
The memory reading functionality is also available in the new simpler bot framework.

After this foundational work, I implemented the courier bot based on your description. You can find this bot at bots/implement/bot/eve-online/eve-online-dew1960-high-sec-courier-mission at 5e4e2b3641424688060e24b5dfa5a8d512a5200f · Viir/bots · GitHub

This courier bot integrates the example travel (auto-pilot) bot from bots/implement/bot/eve-online/eve-online-warp-to-0-autopilot at 32559530694cc0523f77b7ea27c530ecaecd7d2f · Viir/bots · GitHub to take over the travel part. To fit in the overall courier bot, the travel function is slightly changed to signal the completion of travel when the route in the info panel has disappeared.

3 Likes

trying to compile the courier bot as a test and I’m getting this error. Any suggestions?

Awesome! Nice work. :slight_smile:

The error in the screenshot looks like some strange character was inserted at the start of the file Main.elm. Seeing this, I guess that some error happened during the transmission of that file.

Mid-term, I think this kind of problem can be avoided by adding functionality to use GitHub URLs with --bot-source, so that the botengine console takes care of the downloading process.

You can use the Download ZIP feature on GitHub to get the files from the repository:
https://i.imgur.com/z2qOBvd.png

Getting a new error when trying to run the warp to zero bot. Any suggestions would be appreciated.

Thanks @n2o for posting your observation.
The error I see in the screenshot indicates the problem happened during execution of that method:

I suspect the error happened in the branch which fetches the blob from the network. (After it has searched the local files and did not find the specific requested file). This problem could be caused by an unstable network connection, but I have not yet reproduced this error.

This error looks like:

  • Happens before the bot is even started. Happens when trying to compile the bot code.
  • Is independent of the bot code. As long as it fails in this place, it will fail with any other bot too.

Probably the next step for me is to expand the code to propagate more details. Maybe we can add a more helpful error message when the network connection does not work at all.

For your specific case, we can probably solve it by downloading the particular requested file and place it in the cache directory in the file system. Once the program finds the file in there, it does not even need to attempt to download it from the network.

In case Windows has blocked network connections for the botengine.exe process, this problem could be resolved by configuration in Windows.

Digging further into this: I just run a test from initial state with empty blob cache: It seems the only file downloaded in that scope was 08931A8DB552E67EF09C4ECD0A9E8E464FFDFF29BC58DAD2990DDE5D4FDC7C6F. This was placed in ./.cache/blob-library/by-sha256.
The file can be downloaded from https://kalmit.blob.core.windows.net/blob-library/by-sha256/08931A8DB552E67EF09C4ECD0A9E8E464FFDFF29BC58DAD2990DDE5D4FDC7C6F

I created a reminder for the backlog of the framework upstream to improve error messages in these cases:
https://github.com/Viir/Kalmit/issues/7

Vert cool and just what I needed, I will try to implement this and post any issues. Just posting some love and thanks for sharing Viir! <3

1 Like

Does this mean that you can ignore C#, but you have to learn Elm?

Thats right, no need to learn C#. Learning Elm is necessary for some parts of bot development. If you want to develop a complete bot from scratch, then you need to learn Elm.
For example, for the part of bot development that is selecting and annotating screenshots, Elm is not required.

And how can we use this currier bot? :slight_smile:

You can use this bot as described in the guide How to Use EVE Online Bots - version a49bdf8

Ohh so this is different then the sanderling what we using to mine and rat

Well its runing in the cmd, and it gives me the info the bot is running and trying to do its job, but it not clicks in the client.
I need to configure for my self?
or it needs something else?

Where can I find a screenshot of the game client at that moment? What is the location of the pixel where the bot should click?
If the bot does not click where it should, we describe the problem using such an annotated screenshot.

You can upload your screenshot to imgur.com to share it here.

2 posts were merged into an existing topic: How to Develop Bots

Imgur

When i start the warp to 0 bot, just to try how its working, i get this message.
Its not doing anything.
What do i wrong?

And its the same with the courier bot, the bot is running but not clicking nowhere in the window, and gets the same message : geting mission, undocking, travel finish, ect…
But do nothing in EVE.
Thanks
Imgur

I think the problem is that the bot not using the memory reading, its running but no iteraction with the game, the auto warp is working well with 32bit client.

Any suggestion? :slightly_smiling_face:

well i get some more info for you :slight_smile:
If i use the 2019-06-18 - botengine console the its not reading the memory.
if i use the 2019-08-14 botengine console then i get this error message.
Imgur

Since the auto warp is working, I assume it is not a problem with memory reading.

In this case, we start with getting a screenshot of the game client at the time you see the problem: How to Provide the Information to Fix or Improve a Bot