18 June 2018 Tagged: eulorac++

I’ve been focusing my recent eulora client work on getting the bot mining into shape. Today I’m releasing my work so far. The tar ball contains 7 source files that will lay down properly over either EuloraV0.1.2 original source or any previous patch of mine you may have used. 5 of these files contain minor edits and fixes only, while botactivity.cpp and botactivity.h carry the bulk of my work.

My ability to test this is limited by the fact that my character is a noob and doesn’t do things like get multiple quality outputs from a single mine. Feedback is welcome, please use #eulora.

Changes in Build 24

Usage

The command for explore has changed slightly

/bot explore total_times [line|grid] size [0|1] [m|M] maxDelay timeout

Using 1 will leave keys in the claim, 0 will keep keys.

Using m will use minimum build materials, M will use max.

The default maxDelay is 8000ms. Timeout default is now 30000ms.

Example
/bot explore 100 line 100 0 M 8000 8000

Fixes

  • Fixed: bot doesn’t find the craft table in inventory

  • Fixed: bot drops the wrong table when multiple craft tables are in inventory

  • Fixed: bot gets stuck in run mode and keeps going

  • Fixed: bot leaves multiple quality outputs in inventory

  • Fixed: bot ignores large stack of ingredients, instead failing on an insufficient stack earlier in inventory

  • Fixed: in some cases bot fails to change direction in accordance with movement strategy

  • Fixed: in some cases bot leaves craft table on the ground at the end of mining run

  • Fixed: in some cases bot uses movement strategy specified on prior mining run

  • Fixed: bot fails trying to swap out worn tools

Enhancements

  • Added a version string as the first line of output in the bot window

  • Enhanced table pickups and drops to stop using "/pickup" and "/drop"

  • Build 4 added 'backup mode' which caused the bot to move in the reverse direction after getting the message that the table was too far away to pick up, until it was within reach of the table again. This build adds an enhancement where the bot monitors its distance from table and only keeps backing up as long as it’s getting closer to the table. If backing up ever results in becoming more distant from the table it enters a new 'urgent' mode, turning and taking steps directly toward the table until within reach. To test this out, I encourage you to strafe or walk the bot away from the table while in the middle of building a claim to see how it behaves. Keeping the table is of the utmost importance and I’ve tried to make this part solid.

  • The management of resources in the table has been completely rewritten. I consider this to be stage one of managing resource quality. At the start of a mining run, the table is scanned and the name and quality of each item is tracked. During the mining run, each new output is stacked in the table with existing items of identical quality, or stacked in an empty slot if there is not an exact match. Multiple qualities should never be mixed and I welcome assistance in testing this. If it is the case that you get many different quality items, then your table may fill up quickly. In a future build there may be support for more advanced features. The purpose of this stage one feature set is for a solid foundation. The bot will stop if the table fills and you are able to mix qualities as needed and restart the bot.

  • Worn tool swapping works as follows: when a tool is worn, the bot searches inventory for another tool with identical name and higher quality.

  • The default timeout has been changed from 15 minutes to 30 seconds to better accommodate the new building times.

  • Table selection works as follows: at startup the bot selects the heaviest table for use. If there are multiple heaviest tables the one in the lowest numbered slot is used. The benefit of this is that it will always remain the heaviest table and so tracking the slot numbers of used and / or unused tables is unnecessary. The slot number approach seemed to be fragile in practice. Now, when the bot needs to find the table in inventory, it performs a fresh scan for the heaviest table.

Known Issues

  • Logging has yet to be fixed.

  • If you bot-mine on a slope steep enough that you slide down or can’t climb up, you will probably lose your table despite 'urgent' mode.

  • There is an occasional issue with getting a "too far away" message while trying to transfer resources from inventory to the table. I have looked at it and suspect it may be a targeting race condition, but I haven’t found the solution yet. When this occurs the table is not out of range and can be picked up / re-viewed. If the resources that failed to transfer do not put you over weight, the mining run will continue and they will be transferred the next time you mine items with the same name. If it does put you over weight, the bot will be stuck but you should be able to stop it and transfer manually.

  • Claim selection is improved but not yet perfect. Sometimes the wrong claim stick will be targeted and either a transfer to it will fail, or the build will fail. I’ve not yet written the code to reacquire the proper stick. When this happens you will lose the durability on your tool from the dig, but the bundle should be returned to you. This appears to only happen rarely when mining fresh ground and ever more commonly as you retrace the same ground with much spent claim clutter.

  • Table ghosts persist even though I’ve added code that specifically deletes them. It may be that the timing of the deletion is not yet right. They seem to be much more common in certain areas like the sides of hills. This does not seem to hurt the functioning of the current build of the bot.


Add a Comment