Duda de MUY novato

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

Duda de MUY novato

Mensaje por ziknos »

Buenas, estoy rehaciendo un "bot" que hice hace tiempo pero que formatee el ordenador y estuve bastante tiempo sin usar autoit y ya no me acuerdo de nada...

Código: Seleccionar todo

$ceb = PixelGetColor(1100, 194)
$ecb = Pixelgetcolor(555, 235)
$scb = Pixelgetcolor(606, 701)



Do
sleep(5000)
Mouseclick("left", 844, 955, 1, 80) 
sleep(5000)
Mouseclick("left", 119, 556, 1, 80) 
Sleep(5000)
Until $ceb = 5706763

Do
 $ecb = 7471104
	mouseclick("left", 555, 235, 1, 80)
	sleep(1000)
	mouseclick("left", 555, 235, 1, 80)
	sleep(1000)




Send("w")
Send("w")
sleep(1000)
Send("w")
Send("s")
Send("s")
Sleep(1000)
Send("s")
Send("q")
if $scb = 3539201 then
	Mouseclick("left", 606, 701, 1, 80)
	sleep(1000)
	Mouseclick("left", 606, 701, 1, 80)
Lo que necesito hacer es lo siguiente, en la primera parte quiero que se repita hasta que el color del pixel que tengo puesto (pixelgetcolor) sea el puesto
Do
sleep(5000)
Mouseclick("left", 844, 955, 1, 80)
sleep(5000)
Mouseclick("left", 119, 556, 1, 80)
Sleep(5000)
Until $ceb = 5706763

es decir hacer eso hasta que el color sea el de la variable $ceb y cuando así sea, pasar a la siguiente linea del código y así continuamente con cada uno de los pasos, hasta el final que quiero que se repita el código entero.

Gracias!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Duda de MUY novato

Mensaje por Chefito »

Buenas.
Tienes que meter $ceb = PixelGetColor(1100, 194) dentro del bucle while ... until para que siempre lo revise y mire a ver si cambia el valor del color al que tu buscas. Si no lo mentes dentro, la varible $ceb siempre tendrá el mismo valor, el que coje al principio, y nunca saldrá del bucle (a no ser que coincida desde el principio con el color que le has puesto de condición para salir del bucle).

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

Re: Duda de MUY novato

Mensaje por ziknos »

Chefito escribió:Buenas.
Tienes que meter $ceb = PixelGetColor(1100, 194) dentro del bucle while ... until para que siempre lo revise y mire a ver si cambia el valor del color al que tu buscas. Si no lo mentes dentro, la varible $ceb siempre tendrá el mismo valor, el que coje al principio, y nunca saldrá del bucle (a no ser que coincida desde el principio con el color que le has puesto de condición para salir del bucle).

Saludos.
Gracias, voy a probar y ahora cuento que tal.
Avatar de Usuario
ms999
Hacker del Foro
Mensajes: 116
Registrado: 26 Ene 2011, 06:13

Re: Duda de MUY novato

Mensaje por ms999 »

ziknos escribió:

Código: Seleccionar todo

...
$ecb = Pixelgetcolor(555, 235)
...
Do
 $ecb = 7471104
	mouseclick("left", 555, 235, 1, 80)
	sleep(1000)
	mouseclick("left", 555, 235, 1, 80)
	sleep(1000)
Igual cito esta parte del code nomas porque esta rara,¿porque le decis el valor que tiene que tener $ecb, si antes ese valor salia de un pixelgetcolor? El resto no lo vi porque ando medio dormido, luego mas lucido me fijo bien.
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

Re: Duda de MUY novato

Mensaje por ziknos »

Nada, no hagas caso a eso, estaba mal.

Ahora ya me funciona, era lo que me pusiste, chefito.

Muchas gracias.

ms999 el código ese sería así:

Código: Seleccionar todo

Do
	$ecb = Pixelgetcolor(555, 235)
	$dcb = PixelGetColor(597, 91)

If $ecb = 7471104 then
	mouseclick("left", 555, 235, 1, 80)
	sleep(1000)
	mouseclick("left", 555, 235, 1, 80)
	sleep(1000)
	endif
Until $dcb = 4332552
Responder