Jump to content

GetPixelColor value fluxuating in fullscreen games


Recommended Posts

Hello,

I am trying to create a simple script for EVE Online that would automatically move cargo based on how much is in your inventory. There is a status bar that is blue, then as you get more and more cargo it begins turning red from the left. I am trying to make a script that watches a point you select and then moves the cargo, but I ran into tons of weird problems.

A script that logs rgb values of a black pixel in the game screen returns this:

color: 49 61 64

color: 0 0 0

color: 0 0 0

color: 49 61 64

color: 0 0 0

color: 0 0 0

color: 49 61 64

color: 0 0 0

color: 0 0 0

color: 43 52 57

And decimal this:

color: 2964278

color: 0

color: 0

color: 4083790

color: 0

color: 0

color: 2964278

color: 0

color: 0

color: 4149583

color: 0

color: 0

color: 2964278

There is no change in the appearance of the pixel on the screen.

This has happened on other computers, and in other games.

(It does not happen in windowed mode though)

Does anybody know whats causing this?

-Terminal

Edited by TerminalVelocity
Link to comment
Share on other sites

I've had similar situations, but the return value wasn't usually 0. It turns out that the game pixel colors changed slighty under certain conditions (like night-time vs. daytime), and it couldn't be seen with the naked eye (unless you have super-man vision). If you are checking the same pixel under the same conditon (like re-running the exact same function), then it's possible the pixel is changing colors. But from Black to a dark shade of green should be somewhat visible, unless it's just an occasional pixel, then you wouldn't notice it with all the black.

You could also try multiple screenshots and take a close look at the pixel in question on all pics.

Nomad :D

Link to comment
Share on other sites

Hiya...

I've been coding stuff for Eve across several macro clients and now AutoIt and from experience, Eve is a very frustrating game. Becaue of light, angles, background, and whatever. The best thing I have done is find a pixel I want to check. Make a program that checks that pixel like every second or few seconds and writes the color to a text file. Then just set some bounds like...

If pixelgetcolor(x, y) > blah blah AND pixelgetcolor(x,y) < blah blah Then

; Cargo is full or whatever so do something

Else

; Cargo isn't full or whatever so do something else or do nothing

EndIf

You will find that when working with Eve, you will have alot of If/And/Then or If/Or/Then statements because you need to check a range because of the pixel shading changes.

Hope this helps a little.

Link to comment
Share on other sites

The cargo bar is also like 6 or 7 bars. It changes colors based on lighting and ship angle of view. I find it best to do as posted previous about a range but also use the average of all 6 or 7 bars for comparison. Still not a 100% solution but better than the 75% I was using..

Link to comment
Share on other sites

  • 3 weeks later...

Well... for EVE online, I'm checking the Cargo content itself. I've set the background transparency to 0 in the graph settings, so the background of the cargo panel is solid black for me. So my script check if the color is black on a given point or not. If its not black, then there is something in the cargo. If it is black, the cargo empty.

Unfortunately, it seems that the returned color somehow fluctuating. It is not 0, but in 10% of cases, it is simply wrong. But if I wait a couple turns without any intercation, suddenly the function returns the correct color and will be Ok. But in 90% of the cases, the returned color is OK... I dont know why....

Edited by lammaer25
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...