1 (изменено: pwch, 2023-01-01 19:09:03)

Тема: AHK: Выполнение действий в зависимости от цвета пикселя

Помогите реализовать считовние цвета пикселя и выполнения действий.
Считование цвета пикселя и как только он становиться нужным нажимать на него 0xA66CF3. После чего через 2 секунды если цвет в 4 определённых позициях равен 0xFFFFFF то через 10 секунд жмёт на определённую точку, если не подходит хотябы 1 пиксель то нажимает на эту точку через 30 секунд и всё запускается по новой.
Координаты раставлю сам. Заранее спасибо.

2 (изменено: Clannad5, 2023-01-02 01:56:49)

Re: AHK: Выполнение действий в зависимости от цвета пикселя

pwch

Используйте это PixelSearch.
Самый легкий пример с Loop'ом, если ваши действия идут строго по порядку:


Loop, ;Ищем вначале тут цвет
{
PixelSearch, Px, Py, 200, 200, 300, 300, 0x9d6346, 3, Fast
if Px > 0
Break ;Нашли, выходим из лупа
}
;Повторяем следующие поиски таким же методом
Loop,
{
PixelSearch, Px, Py, 200, 200, 300, 300, 0x9d6346, 3, Fast
if Px > 0
Break
}

3

Re: AHK: Выполнение действий в зависимости от цвета пикселя

Спасибо но это не то что нужно было но код был полезен чтобы понять принцип и сделать то что мне надо.

4 (изменено: pwch, 2023-01-02 03:58:49)

Re: AHK: Выполнение действий в зависимости от цвета пикселя

Не работает команда sleep. Код просто игнорирует. Так же if в 10 строке выполняется даже когда цвет не соответствует 0xFFFFFF

F5::
loop
{
st:
     PixelGetColor, pc, 372, 866
     if pc = 0xA66CF3
         
		 click 372 866
         PixelGetColor, wc, 90, 950
             if wc = 0xFFFFFF
                 sleep 15000 # вот тут 
                 click 1795 70
				 sleep 1000
				 Goto st
             if wc != 0xFFFFFF
                 sleep 60000 # вот тут 
	             click 1795 70
				 sleep 1000
		         Goto st
     if pc != 0xA66CF3
	 Goto st
}
return

5

Re: AHK: Выполнение действий в зависимости от цвета пикселя

pwch пишет:

Не работает команда sleep. Код просто игнорирует. Так же if в 10 строке выполняется даже когда цвет не соответствует 0xFFFFFF

F5::
loop
{
st:
     PixelGetColor, pc, 372, 866
     if pc = 0xA66CF3
         
		 click 372 866
         PixelGetColor, wc, 90, 950
             if wc = 0xFFFFFF
                 sleep 15000 # вот тут 
                 click 1795 70
				 sleep 1000
				 Goto st
             if wc != 0xFFFFFF
                 sleep 60000 # вот тут 
	             click 1795 70
				 sleep 1000
		         Goto st
     if pc != 0xA66CF3
	 Goto st
}
return

В общем код не работает как надо

6 (изменено: Clannad5, 2023-01-02 08:09:44)

Re: AHK: Выполнение действий в зависимости от цвета пикселя

pwch
Если вы хотите несколько действий прописать после условия IF, то нужно указывать их внутри скобок:


F5::
loop
{
st:
PixelGetColor, pc, 372, 866
if pc = 0xA66CF3
click 372 866

PixelGetColor, wc, 90, 950
if wc = 0xFFFFFF
	{
		sleep 15000
		click 1795 70
		sleep 1000
		Goto st
		}

if wc != 0xFFFFFF
	{
		sleep 60000 
		click 1795 70
		sleep 1000
		Goto st
		}

if pc != 0xA66CF3
Goto st
}
return

Так же мне не совсем понятен смысл вашего Goto st, как и самой метки, ведь Loop все равно дойдёт до конца и начнёт проверку с самого начала.
Прочитайте подробнее что такое Loop здесь.

P.S

pwch пишет:

В общем код не работает как надо

Не забывайте указывать точки в конце предложений, на форуме здесь с этим строго.