Sign in to follow this  
Followers 0
Andraax

EVE-Online Mining Bot.

75 posts in this topic

#1 ·  Posted (edited)

Ok, I been working on this Mining Bot a while and since it is in a relatively good state I Think I'll just toss it out there for ya'll to test and comment on :D

Source script is in 4 files(main.au3 is the main one, duh...), old habbit to split up programs/script in smaller parts for easier reading...

Update:

v0.09

- Fixed locating when done mining if using 2 lasers.

Mining_Bot_v0.09.rar

main.au3

vars.au3

gui.au3

The compiled exe is there also incase you just want to try it out without reading code...

The bot have some things it looks for so some setting up of the client is neessesary:

1) EVE Client in windowed 1280x1024 mode.

2) Overview window minimum width and displaying ONLY the astroids/ice you are going to mine.

3) Items Hangar minimum size, iconview, located in lower right corner beside the NeoCom

4) Ships Cargohold same size to the left on items Hangar.

5) Tick the checkbox under graphics labled "widescreen", this will enable the litterboxing so I have a black background up top and bottom to check for :D

That's it... go mine!

In the GUI you can configure number of mining lasers/harvesters/stripminers (1-8 supported), also what belt and what station to use for mining/unloading (number counted from top in the menu ingame), the script itself supports any station/belt so make sure you don't tell it to use one that don't excist :P

MouseSpeed field is just what will be used by MouseClick and MouseMove as last parameter, I default it to 10, since it seems closest to what you'd use if you where moving the mouse yourself.

Hope someone will leave some coments for improvements, it works good for me in my barge, but I havn't tested with any other ship...

Cheers,

Andraax

Edited by Andraax

Share this post


Link to post
Share on other sites



Looks really good, but I have a slight problem useing it. I have followed your instrusctions to the letter about screen setup, ect.. But after the script undocks me, It moves the mouse to the top left corner to warp me to the asteriod belt. The only problem is that it doesnt seem to click the little > symbol in the UI so the ship doesnt actually move anywhere :D

Would it be possible to fix this?

Share this post


Link to post
Share on other sites

Looks really good, but I have a slight problem useing it. I have followed your instrusctions to the letter about screen setup, ect.. But after the script undocks me, It moves the mouse to the top left corner to warp me to the asteriod belt. The only problem is that it doesnt seem to click the little > symbol in the UI so the ship doesnt actually move anywhere :D

Would it be possible to fix this?

That is odd...

Only thing I can think of is that you are not using litterboxing and those the triangle is the wrong color...

Check the code it is well comented you shouldn't have a problem finding the right line and check what your color is compared to what my script says... I run my script every night, and it only fails once / week, due to someone bumping me away from my astroid be4 I manage to fire the lasers.

Share this post


Link to post
Share on other sites

cheers for the reply. I meant to post back here sooner. I gave the bot another go, and for some reason the problem went away. I did change a couple of things tho. The only major one being that I got the bot to orbit instead of aproach the roid, as I found that if it locked onto a rock that was 10km away, it would start the aproach and then instanly stop, so there was a possibility of the ship drifting out of mining range. I dont really know if this will be a problem in the larger mining ships, but it has no effect on my bantam :D

Other then thats its a wicked little bot. The only thing that I have noticed is that sometimes it doesnt detect that mining has finished, but that only happened once or twice in quite a few runs.

Share this post


Link to post
Share on other sites

cheers for the reply. I meant to post back here sooner. I gave the bot another go, and for some reason the problem went away. I did change a couple of things tho. The only major one being that I got the bot to orbit instead of aproach the roid, as I found that if it locked onto a rock that was 10km away, it would start the aproach and then instanly stop, so there was a possibility of the ship drifting out of mining range. I dont really know if this will be a problem in the larger mining ships, but it has no effect on my bantam :D

Other then thats its a wicked little bot. The only thing that I have noticed is that sometimes it doesnt detect that mining has finished, but that only happened once or twice in quite a few runs.

Glad you like it.

Reson I don't use orbit is that monst bots does, and I don't want to be seen as a bot instantly...

Sinec you have modified it you know I approach till you are under 10 km from the roid, then stop, a barge takes a while to stop so you endup around 9000m from the roid facing it, in my own version that I run now I experiment with stoppng the ship during the mining cycle aswell incase you get bumped now and then by other mining ships.

Until I figger out a way to "read" the EVE font, or even compare the text to a sample, this is about the best I can do... OCRing EVE text isn't going to be easy since space don't have a constant color and some of the text have a slight alpha channle to it... If you could get the "WARP DRIVE ACTIVE" text on black background for example you would have a very easy time detecting when you get out of a warp.

CCP have done a good job on making EVE hard to write bots for, other MMOs like EQ/EQ2/WoW are extreamly easy to write bots for since you can pretty much change the graphics/text to your liking. In eve all you can do is change colors of some windows and the rest are all overlays of space graphics.

If anyone manages to make a OCR in AutoIt or a DLL that can read the EVE text making a fool proof bot for it will be childs play, you could make a bot that runs missions or even hunt pirates witha proper ORC :D

Anyhow, Untill I figger out a realy different way of doing things this is the code that I'll leave you with, so play around with it to your hearts content! :P

Cheers

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Glad you like it.

If anyone manages to make a OCR in AutoIt or a DLL that can read the EVE text making a fool proof bot for it will be childs play, you could make a bot that runs missions or even hunt pirates witha proper ORC :D

Anyhow, Untill I figger out a realy different way of doing things this is the code that I'll leave you with, so play around with it to your hearts content! :D

Cheers

What I wanted to try and do was identify memory address's in the program on the fly to identify different states... Being that its all python good luck with that. I fought with it for a week and gave up. This is a very nice bot, the only problem I have is it does not handle jet can mining, I do all of my mining in 0.0 and would like to stick it call into a can then have it zip back to stn grab a hauler and haul it out then repeat.. Also since I min in 0.0 I am trying to figure out how to link the 2 pc's I run so that my bot knows that the tank has crashed and runs away before it gets wiped out by the npc's

Thats where I am at now.. Nice bot btw.. I am also modifying it to use insta jump book marks... cut travel time down to 0... =)

P.S you can change the fonts in eve VERY easily... =) Drop me a pm for information.

Edited by tai

Share this post


Link to post
Share on other sites

I just tried your bot and it looks nice :P Are you planing to do a hauler too? :D:D

Share this post


Link to post
Share on other sites

Also since I min in 0.0 I am trying to figure out how to link the 2 pc's I run so that my bot knows that the tank has crashed and runs away before it gets wiped out by the npc's

Thats where I am at now.. Nice bot btw.. I am also modifying it to use insta jump book marks... cut travel time down to 0... =)

P.S you can change the fonts in eve VERY easily... =) Drop me a pm for information.

Hi,

I'm co-author of several Eve macros, MaxCote and SuperNOVA. MaxCOTE had viable code for running 2 clients over a network and I'll give you the short story. It was alpha code and very unreliable but something to think about.

We simply setup a shared folder and used a array file to store info on rather or not the mining ship had left a jet can at a belt. A unique name for each can was used with a +/- at end to show if full or not. The same principal can be used to share any client/macro info.

On the fonts, I don't think changing them would help since you would still have the background color changes....but if you try it out and can manage a simple OCR please l et us know!

The script of this topic is a good script, hope everyone enjoys it!

Litterbox mode means Eve widescreen setup under options/graphics, how did "Litterbox" come about?

Buck

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

Hi,

I'm co-author of several Eve macros, MaxCote and SuperNOVA. MaxCOTE had viable code for running 2 clients over a network and I'll give you the short story. It was alpha code and very unreliable but something to think about.

We simply setup a shared folder and used a array file to store info on rather or not the mining ship had left a jet can at a belt. A unique name for each can was used with a +/- at end to show if full or not. The same principal can be used to share any client/macro info.

On the fonts, I don't think changing them would help since you would still have the background color changes....but if you try it out and can manage a simple OCR please l et us know!

The script of this topic is a good script, hope everyone enjoys it!

Litterbox mode means Eve widescreen setup under options/graphics, how did "Litterbox" come about?

Buck

The shared folder is a pretty good idea, simple hack for a complicated problem =)

Autoit also includes tcp/ip support so it may be just as easy to write up a client server system. Well not as easy perhaps elegant is the word.

I at one point had most of a bot finished in C#.net but lost it in an hdd crash..

I only wish I had a 3rd account to run as a dedicated hauler =)

How did you change the names on the cans / identify your can and change the name on it?

also without giving too much away, how did you idetify that the jet can was full ? =)

Edited by tai

Share this post


Link to post
Share on other sites

How did you change the names on the cans / identify your can and change the name on it?

also without giving too much away, how did you idetify that the jet can was full ? =)

JetCan identification can be done anyway you want. Once the can is deployed you can right clik and rename it. I simply add the "+/-" to the front of the name. + is full and - is empty, simply do a pixel color search to identify plus or minus flag. Finding the can if mining in more than one field is something much more complicated requiring a array with belt number and can bookmark. I can't go into more detail on that but look for it in a future version of SuperNOVA!

I've said it before, a macro will be only as good as your knowledge of the game your writing it for...

Buck

Share this post


Link to post
Share on other sites

Ok, ive tried out your script. But i have a little problem. When I start at the station and start the bot, it undocks from the station. But after that it just stops. In the gui is seis "Undocking" Ive followed all the points and still doesent work. No idea on what might be wrong. Please help out mate :-)

In any case, really good job. i took a look at the scripts (im not the best scripter myself, but i can read em pretty well) and everything seamed really nice :-)

Keep up the good work!

Share this post


Link to post
Share on other sites

The shared folder is a pretty good idea, simple hack for a complicated problem =)

Autoit also includes tcp/ip support so it may be just as easy to write up a client server system. Well not as easy perhaps elegant is the word.

I at one point had most of a bot finished in C#.net but lost it in an hdd crash..

I only wish I had a 3rd account to run as a dedicated hauler =)

How did you change the names on the cans / identify your can and change the name on it?

also without giving too much away, how did you idetify that the jet can was full ? =)

Hiya, first off... good script... and 2ndly, I am co-author of SuperNOVA with Buck and am working on a macro called WoW RCP (Remote Controlled Player). I am using the tcp functions found in the forums for a "server/client" relation there. It wouldn't be too hard to setup a hauler/jet-can miner to do the work. Like Buck said with the shared folder, but instead I would use something like a "shared" ini that the miner would send to the hauler computer along with a command that the client or hauler app would recognize and know to check the ini. You would also just send a command such as "Haul" and upon receipt of that command, it would initiate the hauling script. Contact me at cyber_author@cyber-scripts.net about the tcp stuff if interested.

Like I said with WoW RCP, I am using a "client" to send commands to the "server" to control a World of Warcraft character. So if someone clicks on the "Follow" button, it commands the server to send a command to the game to follow its target and so on. It has been pretty in-depth to get the commands to fire correctly and we've had 3 complete re-writes of the code, but we think we are on the right track now.

Share this post


Link to post
Share on other sites

#14 ·  Posted (edited)

For some reason when I run EVE in windowed mode with wide screen enabled, it eats up 99% CPU and frames per second are like, 0.5, and the interface doesn't respond fast enough to work with the bot, so I'm trying to get it to work in fullscreen, which runs at around 50 frames per second :wacko:

I can change the mouse movements like

MouseClick("left", 19, $clientHeight-4, 1, $MouseSpeed)

into

MouseClick("left", 19, $clientHeight-($clientHeight/45), 1, $MouseSpeed)

to work with full screen.. but I don't know what to do with the pixelgetcolors, like

Until PixelGetColor(56, 73) = Dec("E6E6E6") ; 15132390

:D

Can you please give me a hint how I can get them to work with fullscreen? Or how I can resolve the windowed mode lag? I'm using an AMD 64 btw

Thanks in advance for any help :D

BTW this script looks really nice, thanks for releasing it!

Edited by Azu

Share this post


Link to post
Share on other sites

For some reason when I run EVE in windowed mode with wide screen enabled, it eats up 99% CPU and frames per second are like, 0.5, and the interface doesn't respond fast enough to work with the bot, so I'm trying to get it to work in fullscreen, which runs at around 50 frames per second

Can you please give me a hint how I can get them to work with fullscreen? Or how I can resolve the windowed mode lag? I'm using an AMD 64 btw

Thanks in advance for any help :D

BTW this script looks really nice, thanks for releasing it!

Your windowed Eve problem is Eve by itself or with the macro running? If Eve by itself see the technical help forums at Eve-Online. I think it is something to do with the AMD dual processor.....

Share this post


Link to post
Share on other sites

Your windowed Eve problem is Eve by itself or with the macro running? If Eve by itself see the technical help forums at Eve-Online. I think it is something to do with the AMD dual processor.....

It only does that when I run it in windowed mode with wide screen enabled.. and I have a single core 64-bit AMD processor.. no hyper threading.. hyper transport though.. I didn't see anything on the EVE support forums about 64bit AMD processors having problems.. even if I can get it fixed though, I'd still rather have it in full screen, so any help on converting it to full screen mode would be appreciated.. thanks for the advice though. =)

I'll keep trying to get it to run in windowed mode but I don't think I can :D

Share this post


Link to post
Share on other sites

It only does that when I run it in windowed mode with wide screen enabled.. and I have a single core 64-bit AMD processor.. no hyper threading.. hyper transport though.. I didn't see anything on the EVE support forums about 64bit AMD processors having problems.. even if I can get it fixed though, I'd still rather have it in full screen, so any help on converting it to full screen mode would be appreciated.. thanks for the advice though. =)

I'll keep trying to get it to run in windowed mode but I don't think I can :D

To my knowledge it is not possible to make a script for Eve in true full screen since we cannot determine pixel location. The closest I have been able to get is window mode at same size as desktop, then using the script to drag window to top left so borders do not show. Any "windows event" that happens to Eve when in full screen causes it to minimize :wacko:

If there is a AutoIt solution to this someone please inform us.

Share this post


Link to post
Share on other sites

#18 ·  Posted (edited)

To my knowledge it is not possible to make a script for Eve in true full screen since we cannot determine pixel location. The closest I have been able to get is window mode at same size as desktop, then using the script to drag window to top left so borders do not show. Any "windows event" that happens to Eve when in full screen causes it to minimize :wacko:

If there is a AutoIt solution to this someone please inform us.

:D

Changing the place the mouse moves so it clicks on the undock button works for me, it doesn't minimize, but the pixels are in a differant place in full screen mode then in windowed mode, and I don't know what to do for those :S

If you can explain to me how you get the stuff to put in for that, maybe I can do that in full screen and it might work O_o

Edited by Azu

Share this post


Link to post
Share on other sites

:D

Changing the place the mouse moves so it clicks on the undock button works for me, it doesn't minimize, but the pixels are in a differant place in full screen mode then in windowed mode, and I don't know what to do for those :S

If you can explain to me how you get the stuff to put in for that, maybe I can do that in full screen and it might work O_o

There may have to some compensation for the missing window frame .so....

use the AutoIt window info tool. It will show coordinates if you have dual monitor setup. No dual screen setup? I have no idea how to get screen coordinates.

Share this post


Link to post
Share on other sites

There may have to some compensation for the missing window frame .so....

use the AutoIt window info tool. It will show coordinates if you have dual monitor setup. No dual screen setup? I have no idea how to get screen coordinates.

With the AutoIt windows info thing, it can be frozen by a key combination, I forget what, it says right on it though.. so I should be able to use it in full screen but I'm not sure how.. the numbers for the pixel stuff doesn't make sense to me at all.. like in

Until PixelGetColor(56, 73) = Dec("E6E6E6") ; 15132390

I have no clue what to do with that.. I'm guessing that 56, 73 has to do with coordinates but I'm not sure what to change it to or anything.. I'm a total newb at pixels.. :D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0