Sign in to follow this  
Followers 0
bigassmuffin

Pixel Search around a radius of the mouse

7 posts in this topic

I obviously now how to pixel search:

PixelSearch( 0, 0, 1000, 585, $color, 3, 5 )

Buy I dont want the coords to search for to be 0, 0, 1000, 585 as in this example,

I want it to be a radius of say 30 (it will b user defined, but I know how to do that part)

While 1
    If $game = 1 Then
        PixelSearch( 0, 0, 1000, 585, $color, 3, 5 )
            If IsArray($coord) = 1 Then
                MouseMove( $coord[0], $coord[1], 0)
            EndIf
        Sleep(500)
    EndIf
WEnd

Thank you very much for any help and time you give!

Share this post


Link to post
Share on other sites



see: MouseGetPos In your help file,

Then just use that and some math to get the four corners of your search.


Time + Effort = Constant

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

see: MouseGetPos In your help file,

Then just use that and some math to get the four corners of your search.

Alright, I think that helped...

While 1
    If $game = 1 Then
            $pos = MouseGetPos()
            $coord = PixelSearch( $pos[0]+30, $pos[1]+30, $pos[0]-30, $pos[1]-30, $color, 3, 5 )
            If IsArray($coord) = 1 Then
                MouseMove( $coord[0], $coord[1], 0)
            EndIf
        Sleep(500)
    EndIf
WEnd

This looks a bit better to me, But even so, this will produce a square around the cursor, if it would even do that ;P, I would prefer a circle

Edited by bigassmuffin

Share this post


Link to post
Share on other sites

If you wanted a circle the code becomes a bit more complex... You would need to write your own pixel search i think so ya....

I dont know what your coding, But imo a square should work fine for most applications


Time + Effort = Constant

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Alright, I think that helped...

While 1
    If $game = 1 Then
            $pos = MouseGetPos()
            $coord = PixelSearch( $pos[0]+30, $pos[1]+30, $pos[0]-30, $pos[1]-30, $color, 3, 5 )
            If IsArray($coord) = 1 Then
                MouseMove( $coord[0], $coord[1], 0)
            EndIf
        Sleep(500)
    EndIf
WEnd

This looks a bit better to me, But even so, this will produce a square around the cursor, if it would even do that ;P, I would prefer a circle

Your pluses and minuses are incorrect?

The below eliminates the 4 outside corners. Still leaves little pieces of included area which could be eliminated with further extraction of squares inside ellipses. Not sure why you have to have a circle but this should bring you a little closer.

If you take your 30 as the radius.

$r = 30

Then inside square radius = $r ( INT(($r ^2+$r ^2)^(1/2))- $r) :rounded to a whole number = 18

So first check out inside square

$coord = PixelSearch( $pos[0]-18, $pos[1]-18, $pos[0]+18, $pos[1]+18, $color, 3, 5 )

Then check the four outside rectangles (long way you could create a loop for the whole thing)

(left, top, right and bottom)

$coord = PixelSearch( $pos[0]-30, $pos[1]-18, $pos[0]-18, $pos[1]+18, $color, 3, 5 )

$coord = PixelSearch( $pos[0]-18, $pos[1]-30, $pos[0]+18, $pos[1]-18, $color, 3, 5 )

$coord = PixelSearch( $pos[0]+18, $pos[1]-18, $pos[0]+30, $pos[1]+18, $color, 3, 5 )

$coord = PixelSearch( $pos[0]-18, $pos[1]+18, $pos[0]+18, $pos[1]+30, $color, 3, 5 )

Not sure if this helps and I have not tested it.

Edited by 1905russell

Share this post


Link to post
Share on other sites

If you take your 30 as the radius.

$r = 30

Then inside square radius = $r ( INT(($r ^2+$r ^2)^(1/2))- $r) :rounded to a whole number = 18

So first check out inside square

$coord = PixelSearch( $pos[0]-18, $pos[1]-18, $pos[0]+18, $pos[1]+18, $color, 3, 5 )

Then check the four outside rectangles (long way you could create a loop for the whole thing)

(left, top, right and bottom)

$coord = PixelSearch( $pos[0]-30, $pos[1]-18, $pos[0]-18, $pos[1]+18, $color, 3, 5 )

$coord = PixelSearch( $pos[0]-18, $pos[1]-30, $pos[0]+18, $pos[1]-18, $color, 3, 5 )

$coord = PixelSearch( $pos[0]+18, $pos[1]-18, $pos[0]+30, $pos[1]+18, $color, 3, 5 )

$coord = PixelSearch( $pos[0]-18, $pos[1]+18, $pos[0]+18, $pos[1]+30, $color, 3, 5 )

Not sure if this helps and I have not tested it.

Thank you for inputing all your time in this, however a square will still be good enough, however, doi you think the script i posted will work(the script u quoted)

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Thank you for inputing all your time in this, however a square will still be good enough, however, doi you think the script i posted will work(the script u quoted)

Wow you were fast

I edited my post to tell you that your + and - should be reversed.

I enjoyed trying to remember my rusty trigonometry.

If you want to be more accurate in your search, leave out the shade and the step.

If you really wanted an accurate circle you would need to PixelSearch each row individualy with a calculated start and stop position for each row. Its possible I guess.

Edited by 1905russell

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