Problema con if y else en PixelSearch

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

rakion269
Posts: 1
Joined: 19 Aug 2023, 12:00

Problema con if y else en PixelSearch

Post by rakion269 » 19 Aug 2023, 12:14

Buenas, hace poco inicié con AHK otra vez, ya que antes lo usé en la v1 pero no tanto, y ahora le estoy dando mas de lleno...

Estoy presentando un problema con un código que quiero hacer, el código funciona bien, pero quería agregarle algo que sea ''SI no encuentro este pixel, saltare a buscar otro que sí este y volveré a iniciar", pero no encontré la forma, obviamente seguí el Doc con los códigos de ejemplo que dan, seguí todo paso a paso y nunca me funciona, soy nuevo en esto obviamente, pero al menos voy mejorando y estudio a cada rato para poder entender y comprender más todo esto... Pero lastimosamente no hay guías de la v2 en youtube que sean en español, y las que hay en inglés enseñan cosas demasiado complicadas para iniciar, y aunque lo intente, no me funcionan a mi en nada, no sé si es porque son de 4 meses atrás o yo qué sé... pero les dejare mi código aquí abajo, el que no tiene la configuración de buscar el otro pixel del "else"...

Code: Select all

|::

	{
		Retry:
		Start:

	if WinActive("Google Chrome") {
	PixelSearch &FoundX, &FoundY, -8, 2, 913, 590, 0x275A23
	MouseMove FoundX, FoundY, 50
	Click "Left"
	Sleep 300
	Click "Left"
	Sleep 7000

goto Start

	}
}
El código como dije me encuentra el pixel, me alegra eso, pero hay un problema también, la velocidad del MouseMove no se aplica, no sé por qué... entonces lo que trato de hacerle a eso es que tenga la otra opción, de buscar otro pixel si no encuentra ese...

Me dieron un ejemplo del código que debo colocar, que sería este

Code: Select all

PixelSearch("whatever") ; This calls the function

; This evaluates the return value of the function call
if (PixelSearch("whatever")) {
    ; Color found
} else {
    ; Color NOT found
}
Y con eso, seguí el ejemplo, hice mi código nuevamente con ese cambio, pero de igual forma, no lo agarró, porque decía un error de "Expected a string but got a Func" en la parte de "if (PixelSearch (blablabla)) {... No sé que hacer la verdad, hice todo, pregunté en discord, y la gente despues de 4 mins, 3 mins, se cansa de explicar porque no están hechas para explicar la verdad, se estresan ellos y bueno, me quedo con la duda, ya que nadie mas me ayuda, y ningun video sirve para mi.

Espero alguien me pueda ayudar, de verdad disculpen las molestias.

kintar0e
Posts: 41
Joined: 05 Mar 2019, 07:32

Re: Problema con if y else en PixelSearch

Post by kintar0e » 21 Aug 2023, 09:20

Ejemplo con loop:

Code: Select all

SetTitleMatchMode 2
CoordMode "Pixel", "Window"

f1::
{
    loop 5 ;Bucle se repetira 5 veces
    {
        if WinActive("Google Chrome"){
            if PixelSearch(&Px,&Py,1,2,913,590,0x00AA00){
                Move_Click(Px,Py)
            } else {
                if PixelSearch(&Px,&Py,1,2,913,590,0xFF5500)
                    Move_Click(Px,Py)
            }
        }
    }
}

Move_Click(x,y){
    MouseMove(x, y, 5)
    Sleep 300
    Click x,y
    ToolTip "Pixel Found Here",x,y
    SetTimer RemoveToolTip, -3000
    ; Sleep 300
	; Click x,y
	; Sleep 7000
}
RemoveToolTip(){
    ToolTip
    Return
}

Post Reply

Return to “Pedir Ayuda”