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

Основной раздел => Общие вопросы => Topic started by: контакт on March 09, 2018, 01:00:28 PM

Title: Помогите плз.
Post by: контакт on March 09, 2018, 01:00:28 PM
Нет времени разобраться,помогите новичку,спасибо.
Задача,выполнять цикличное нажатие по заданным координатам,при условии что в определенной области цвет пиксела отличный от заданного.При условии что цвет пиксела совпадает с заданным,запускается другой скрипт,после выполнении которого запускается изначальный скрипт(цикличного нажатия по заданным координатам).СПАСИБИЩЕ!
Title: Re: Помогите плз.
Post by: Oraven on March 09, 2018, 01:56:31 PM
Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(400,400, 500,500, 255)
   // сюда вписываешь другой скрипт
ELSE
   LCLICK(10,10)
   WAITMS(100)
END_IF
Title: Re: Помогите плз.
Post by: контакт on March 09, 2018, 02:35:38 PM
ОоО!Получается (читаю скрипт)"при условии что если в области 400.400-500.500 цвет 255 то "скрипт"."ELSE"(иначе) левой клавишей по координатам 10.10 с задержкой 100.Верно?
Title: Re: Помогите плз.
Post by: контакт on March 09, 2018, 03:14:22 PM
Если вот так,то скрипт тупо гоняет без соблюдения условия (запуска доп скрипта) :-\

GETSCREEN
IF_PIXEL_IN(664,143, 709,165, 20730)
   
$S_CORR = 0

waitms(2 + $S_CORR)
move(121,721)
-----------
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 14:55:29
ELSE
GETSCREEN
  WAIT(4)
$S_CORR = 0

waitms(3 + $S_CORR)
----------
eleted
waitms(0 + $S_CORR)
// deleted
waitms(395 + $S_CORR)
  keyUp(18)
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 14:43:57
END_IF
Title: Re: Помогите плз.
Post by: контакт on March 09, 2018, 07:52:02 PM
ОоО!Получается (читаю скрипт)"при условии что если в области 400.400-500.500 цвет 255 то "скрипт"."ELSE"(иначе) левой клавишей по координатам 10.10 с задержкой 100.Верно?
У меня вопрос,это если ВСЯ область 400.400 имеет цвет 255,или если в области 400.400 появляется пиксел цвета 255?
Title: Re: Помогите плз.
Post by: Oraven on March 09, 2018, 08:09:18 PM
второе
Title: Re: Помогите плз.
Post by: Qwerry on March 09, 2018, 09:10:53 PM
Если вот так,то скрипт тупо гоняет без соблюдения условия (запуска доп скрипта) :-\

Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(664,143, 709,165, 20730)
   
$S_CORR = 0

waitms(2 + $S_CORR)
move(121,721)
-----------
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 14:55:29
ELSE
GETSCREEN
  WAIT(4)
$S_CORR = 0

waitms(3 + $S_CORR)
----------
// deleted
waitms(0 + $S_CORR)
// deleted
waitms(395 + $S_CORR)
  keyUp(18)
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 14:43:57
END_IF

Не великий знаток, но попробую прочитать скрипт:
"Сфоткать экран. Проверить наличие пикселя. Если есть - присвоить значение $S_CORR = 0, подождать 2 миллисекунды (почему настолько мало, может не надо вообще?), переместить курсор  в координаты (121,721), подождать 0 милисекунд (ааааа!), отпустить  ненажатую клавишу (и не существующую в природе - где вы 164 нашли?).
Если пикселя нет - то сфоткать экран (и не анализировать его потом. хм...), подождать 4 секунды (ну хоть нормальная задержка),  присвоить значение $S_CORR = 0 (зачем? почему не сделать это над условиями, раз совпадает?), подождать 3 раза по чуть-чуть (суммарно менее половины секунды), отпустить виртуальную клавишу Alt (18 существует - уже спасибо)), подождать нисколько, отпустить несуществующую клавишу.
Повторять бесконечно".

Если резюмировать, то ваш скрипт ничего и не должен делать (ну кроме перемещения мышки в координаты  (121,721), если  был найден пиксель, а курсор не там находился).
Title: Re: Помогите плз.
Post by: контакт on March 09, 2018, 10:34:58 PM
Как оказалось иконка в игре в которой скрипт ищет заданный цвет пикселя,хитрая.Цвет вроде один и тот же,но при наведении курсора код цвета не бывает одинаков.Вернее он(код цвета) вообще в заданной области не повторяется,хотя по виду имеет один и тот же цвет. Как такое может быть?И как в конце концов с этим бороться?
http://prntscr.com/ip137y
Title: Re: Помогите плз.
Post by: James on March 10, 2018, 10:06:02 AM
Можно попробовать использовать цветокоррекцию (COLORMODE), чтобы"упростить" цвета
Правда все равно не факт, что они не будут меняться
Черно - белый режим может все решить, но в вашем случае он может не подойти
Либо сделать черно - белую цветокоррекцию и искать не пиксель, а маленький кусочек вашей кнопки в виде картинки, размером буквально 10х10 пикселей, а то и меньше. Ищет тоже быстро
Title: Re: Помогите плз.
Post by: контакт on March 10, 2018, 11:37:48 AM
Очень интересно!Как реализовать? маленький код плз.Еще наверное будет смысл сделать скриншот и при совпадении картинки,чтоб запускался доп скриптик.Как будет выглядеть такой скриптик и чем сделать скрин шот?
Title: Re: Помогите плз.
Post by: контакт on March 10, 2018, 08:00:28 PM
Вот так пробую
WAIT(1)
GETSCREEN(675,145,690,165)
COLORMODE(7,675,145,690,165)
IF_PIXEL_IN(675,145, 690,165, 219622) и тд.
Вопрос,как узнать цвет моего пикселя для COLORMODE 7?Я ж так понимаю произойдет корекция цвета после запуска скрипта?
Title: Re: Помогите плз.
Post by: James on March 10, 2018, 09:39:14 PM
Насчёт кода я надеюсь вам подскажут сторожилы форума, я синтаксис подзабыл уже, могу накосячить :)
Чтобы посмотреть как видит кликер, вам нужно использовать инструмент лупа, там под ней есть +- и циферка, которая будет меняться от нажатий. Эта циферка и есть колормод. И вы будете видеть как видит сам кликер и какой он видит цвет. Его и нужно вписывать.
Title: Re: Помогите плз.
Post by: Oraven on March 11, 2018, 07:54:58 AM
Вот так пробую
WAIT(1)
GETSCREEN(675,145,690,165)
COLORMODE(7,675,145,690,165)
IF_PIXEL_IN(675,145, 690,165, 219622) и тд.
Вопрос,как узнать цвет моего пикселя для COLORMODE 7?Я ж так понимаю произойдет корекция цвета после запуска скрипта?

Либо использовать скрипт для получения скриншота
Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 7)
GETSCREEN
COLORMODE(7)
SCREENSHOT
HALT

Либо в редакторе под окном лупы изменить % 0 на % 7
Включи лупу и увидишь как кликер видит при цветокоррекции в реальном времени.

Кстати вот таким кодом можно сохранять скорректированный снимок нужного размера.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(7)
SCREENSHOTEX(675,145,690,165, "Image_", 0)
HALT
Title: Re: Помогите плз.
Post by: контакт on March 16, 2018, 02:57:14 PM
Здорово!Спасибо выручили.
Title: Re: Помогите плз.
Post by: контакт on March 18, 2018, 08:29:16 PM
Проверьте синтаксис плз.
FOR($a=0, $a<3)
FOR($a=0, $a<4)
скрипт 1
END_CYC
скрипт 2
END_CYC
скрипт 3

Задача скрипт 1 выполняется 4 раза,затем один раз скрипт 2.Это все действие повторяется 3 раза.Затем один раз выполняется скрипт 3.И все это начинается заново до бесконечности.
На деле происходит выполнение скрипта 1,4 раза.Затем один раз скрипт 2.И сразу начинается скрипт 3.Нет повторения скриптов 1,2 положенных трех раз.

Title: Re: Помогите плз.
Post by: open_78 on March 18, 2018, 08:33:19 PM
Имена переменных во вложенных циклах должны отличаться.
Code: (clickermann) [Select]
FOR($a=0, $a<3)
   FOR($b=0, $b<4)
      //скрипт 1
   END_CYC
   //скрипт 2
END_CYC
//скрипт 3