Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: zloyvip on November 02, 2015, 08:37:19 PM

Title: Поиск пикселов определенных цветов.
Post by: zloyvip on November 02, 2015, 08:37:19 PM
Есть функция GETSCREEN, которая ищет пиксел определенного цвета и если находит то запускает приложение.
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 5342499)

EXECUTE("    ") //запуск приложения

Как сделать чтобы она искала пиксел не одного конкретного цвета, а скажем трёх и в случае нахождения пиксела любого из заданного списка цветов запускала приложение?
Title: Re: Поиск пикселов определенных цветов.
Post by: zloyvip on November 03, 2015, 11:22:36 PM
Указать цвета через запятую, была такая мысль, но подумал что это слишком просто, чтобы сработало. :) Спасибо!
Title: Re: Поиск пикселов определенных цветов.
Post by: Vint on November 05, 2015, 08:02:56 AM
А зачем гадать, если есть справка.
[spoiler]
Quote
IF_PIXEL_IN

Синтаксис

IF_PIXEL_IN (x, y, x2, y2, color1, ...) - производит поиск пикселя заданного цвета в прямоугольной области буфера анализа


Параметры
x, y - числовые координаты левого верхнего угла области поиска
x2, y2 - числовые координаты правого нижнего угла области поиска
color1, ... - цвета, поиск которых будет осуществляться


Возвращаемые параметры
$_return1 - x координата найденного пикселя
$_return2 - y координата



Пример
getscreen

// поиск красного пикселя
IF_PIXEL_IN (10,20, 100, 40, 255)
 lclick($_return1, $_return2)
END_IF

// поиск красного или зеленого пикселя
IF_PIXEL_IN (10,20, 100, 40, 255, 65280)
 lclick($_return1, $_return2)
END_IF


Примечания
Как только первый попавшийся пиксель будет найден, инструкция вернет его координаты в переменные $_return1, $_return2 и прекратит анализ
Добавление каждого цвета увеличивает длительность анализа на 100%

[/spoiler]
Неужели не нужно узнать правильный синтаксис, да и вообще существующие команды и возможности.
Title: Re: Поиск пикселов определенных цветов.
Post by: Puncha on November 26, 2015, 12:12:17 PM
Здравствуйте, хорошая программа, настроил на кв кач профы в аионе, работает хорошо (с записанными движениями мыши и фиксированным таймером, пока не пройдут все раны на изготовление).
На этом можно было бы и остановиться, но если есть время и функционал, че б не замутить покруче).
Время изготовления постоянно разное и постепенно добавляется количество ранов.
Поэтому попробовал контроль окончания изготовления, на изменение цвета в окне профессии:

это в процессе (http://ipic.su/img/img7/fs/2015-11-2616-48-44Skrinshotekrana.1448529061.png)

это по окончании (http://ipic.su/img/img7/fs/2015-11-2616-51-38Skrinshotekrana.1448529119.png)

цвет сундука меняется, вот мой текст:
lDown(432,628)
waitms(113)
  lUp(432,628)
waitms(30000)                                                          //30 сек взято условно чтоб проверял не сразу
IF_PIXEL_IN (504,227, 508,229, 3226180)
lclick($_return1, $_return2)
END_IF
waitms(10000)
lDown(906,863)                                     // клик на макросе разговор сдать кв
waitms(124)
  lUp(906,863)

но скрипт поиска пикселя не срабатывает, перепрыгивает на следующую команду не дождавшись появления нужного цвета, плохо различает оттенки серого?

(http://ipic.su/img/img7/fs/2015-11-2619-22-01Skrinshotekrana.1448530018.png)

(http://ipic.su/img/img7/fs/2015-11-2619-25-26Skrinshotekrana.1448530046.png)

мышей не смог второй раз найти 3226180
не сложнее будет сделать критерием анализ числа тут?

(http://ipic.su/img/img7/fs/2015-11-2619-30-22Skrinshotekrana.1448530254.png)

 
Title: Re: Поиск пикселов определенных цветов.
Post by: Золотой on November 26, 2015, 01:29:36 PM
сложнее, но это возможно.
Title: Re: Поиск пикселов определенных цветов.
Post by: Vint on December 01, 2015, 11:38:53 AM
...но скрипт поиска пикселя не срабатывает, перепрыгивает на следующую команду не дождавшись появления нужного цвета, плохо различает оттенки серого?

Вообще не различает. И не только серого. Без GETSCREEN


Команда IF_PIXEL_IN просто ищет, она ничего не ждёт. Чтобы ждать нужно делать поиск в цикле.
На самом деле здесь поиск вообще не нужен, нужен анализ цвета определённого пиксела.
Code: (clickermann) [Select]
lDown(432,628)
waitms(113)
lUp(432,628)
waitms(30000)

GETSCREEN
WHILE(PXL (506, 228) ! 3226180)
   WAITMS (100)
   GETSCREEN
END_CYC
lclick(506, 228)

waitms(10000)
lDown(906,863)
waitms(124)
lUp(906,863)