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

Основной раздел => Общие вопросы => Тема начата: Иллидан от Апрель 18, 2018, 04:50:38 am

Название: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 18, 2018, 04:50:38 am
на экране куча одной и той же картинки, как заставить кликер тыкнуть на каждой из них без повторов тыка по предыдущим?
Примерный код дайте кто знает (про хеш я хз с чем его едят). :o
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Oraven от Апрель 18, 2018, 08:13:25 am
Тебе нужна функция SCANPICTURE возвращающая в массив все найденные картинки.

Шаблон из меню редактора.
Код: Clickermann
  1. GETSCREEN
  2. SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)
  3.  
  4. $ARR_NUM = 0
  5. WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
  6.   $X = $ARR_SCAN [$ARR_NUM]
  7.   INC($ARR_NUM,1)
  8.   $Y = $ARR_SCAN [$ARR_NUM]
  9.   INC($ARR_NUM,1)
  10.   LCLICK($X, $Y)   // Клик
  11.   WAITMS(100)
  12. END_CYC
  13. UNDEFINE($ARR_SCAN)
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 25, 2018, 02:18:17 pm
а как делается остановка не найденных ифов которая должна прерывать продолжение выполнения дочерних ифов и команд вних типа наведения курсора как в примере ниже в результате отсутствия искомой картинки?

GETSCREEN
IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1,currency(90))
   MOVE(406,186)
   WAIT(0.5)
   LCLICK(353,186)
   WAIT(0.5)
   GETSCREEN
   IF_PICTURE_IN(427,209,464,257,"Пустой лайк.bmp", -1,currency(90))
      MOVE(446,250)
      WAIT(0.5)
      LCLICK(446,224)
      WAIT(0.5)
   END_IF
   GETSCREEN
   IF_PICTURE_IN(999,769,1157,807,"повтор.bmp", -1)
      MOVE(1120,784)
      WAIT(0.5)
      LCLICK(1078,783)
      WAIT(0.5)
   END_IF
END_IF

у меня прост всё что идёт после последней скобки ифа (раньше енда) выполняется даже если ничё не найдено ???

и кстати currency(90) у меня пашет только в таком виде, у кого не пашет делайте так же :P
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Vint от Апрель 25, 2018, 02:40:09 pm
у меня прост всё что идёт после последней скобки ифа (раньше енда) выполняется даже если ничё не найдено ???

и кстати currency(90) у меня пашет только в таком виде, у кого не пашет делайте так же :P

У тебя так происходит, потому что ты хитрее системы. Придумал свои параметры "currency(90)" и кликер тебя не понимает. Для него эти строки вообще не существуют он их выбрасывает как мусор. Да, да делайте так. Ещё и советы дурацкие. Ты завтра пропадёшь с форума, а эту хрень ещё годами будут находить и всем мозг выносить. Ну как так можно.

Код: Clickermann
  1. IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1, 90)
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 25, 2018, 04:55:57 pm
у меня прост всё что идёт после последней скобки ифа (раньше енда) выполняется даже если ничё не найдено ???

и кстати currency(90) у меня пашет только в таком виде, у кого не пашет делайте так же :P

У тебя так происходит, потому что ты хитрее системы. Придумал свои параметры "currency(90)" и кликер тебя не понимает. Для него эти строки вообще не существуют он их выбрасывает как мусор. Да, да делайте так. Ещё и советы дурацкие. Ты завтра пропадёшь с форума, а эту хрень ещё годами будут находить и всем мозг выносить. Ну как так можно.

Код: Clickermann
  1. IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1, 90)

 ???

Clickermann.exe/Clickermann Help/Язык сценариев/Анализ экрана/IF_PICTURE_IN/currency - необязательный параметр; точность поиска в процентах (1..99)

Ещё скажи что эт я создал кликермен и спарвку для него ;D

кликермен то меня понимает(ну таким образом да ;D) просто я не знаю как остановить выполнение потока ифа ???
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Vint от Апрель 25, 2018, 06:31:08 pm
Да... 'остановить выполнение потока' необходимо.
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 25, 2018, 07:23:14 pm

Код: Clickermann
  1. IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1, 90)

говориш эта строчка должна правильно работать?
Как раз так кликер зависает, ничё не находит, пропускает этот иф и идёт дальше.
Цитировать
IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1,currency(90))
а так чё надо находит и чё надо делает вот только чё надо делает даже если ничего не находит!

В случае с твоей строчкой весь блок от ифа до енда просто не работает и пропускается после прочтения а в случае с моей строчкой изображение находится и выполняются действия блока но эти действия выполняются даже если изображение не находится...

Clickermann v4.12.001 канеш 2016 года, или у тебя новее/старее что твой вариант
Код: Clickermann
  1. IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1, 90)
в твоём кликермене работает без зависания и как мне надо?(

Можеш написать пример моего кода как написал бы его ты?
У меня там явно чёто лишнее найдётся а я у ся твой пример проверю :P
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Oraven от Апрель 25, 2018, 08:42:36 pm
а так чё надо находит и чё надо делает вот только чё надо делает даже если ничего не находит!

В случае с твоей строчкой весь блок от ифа до енда просто не работает и пропускается после прочтения а в случае с моей строчкой изображение находится и выполняются действия блока но эти действия выполняются даже если изображение не находится...

Просто мега неверные выводы!....

Тот бред что ты понаписал скорее всего вообще не воспринимается кликером, поэтому никаких условий нет, и все что внутри по любому выполняется.

А если написать по правильному то функция IF_PICTURE_IN ищет картинку "Список игроков.bmp" но не находит даже с 90% совпадением.

Здесь надо не функции ломать а правильно подготавливать картинки поиска!
Использовать процент совпадения без предварительной цветокоррекции бессмысленно. Так как в полно цветной графике со всеми там сглаживаниями и наложениями могут незначительно для глаза меняться все 100% пикселов.
Вот тут то и помогает цветокоррекция убирающая плавание градиентов, а легкие изменения в пикселах отсеиваются процентом совпадения.
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 25, 2018, 09:52:34 pm
Вот тут то и помогает цветокоррекция убирающая плавание градиентов, а легкие изменения в пикселах отсеиваются процентом совпадения.
ну я в паинте тупо вырезаю кусок скрина и сохраняю в битмап, а как подготавливать его тада под кликермен? ???
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Oraven от Апрель 26, 2018, 07:29:18 am
Вот тут то и помогает цветокоррекция убирающая плавание градиентов, а легкие изменения в пикселах отсеиваются процентом совпадения.
ну я в паинте тупо вырезаю кусок скрина и сохраняю в битмап, а как подготавливать его тада под кликермен? ???

Снимок надо сделать самим кликером вот таким скриптом
Код: Clickermann
  1. // Получение скриншота с цветокоррекцией (фильтр 6)
  2. GETSCREEN // Снимок в буфер кликера
  3. COLORMODE(6) // Цветокоррекция снимка в буфере кликера
  4. SCREENSHOTEX(0,0, $_xmax,$_ymax, "Image_", 0) // Вывод снимка из буфера кликера в файл BMP
  5. HALT

Из этого снимка надо вырезать фрагмент для поиска.
В своем скрипте также указываешь цветокоррекцию того же уровня

Код: Clickermann
  1. GETSCREEN
  2. COLORMODE(6)
  3. IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 80)
  4.   LCLICK($_return1, $_return2)
  5.   WAITMS(100)
  6. END_IF
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 28, 2018, 01:48:50 pm
LCLICK($_return1+12,$_return2+7)
UNDEFINE($_return1)
UNDEFINE($_return2)

они публичные или я их зря очищаю в каждом ифе?
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 28, 2018, 03:46:56 pm
$_return1 Используется для возврата в нее значения определенными инструкциями
$_return2 Аналогично
нормальным людям идея очищать системные переменные в думательный орган, до сих пор ни когда не приходила, вы первый и уникальный, с чем вас и паздрафляю.
пасиба ;D
халасо жы быть отличным от нормального стада! :P
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 28, 2018, 04:39:28 pm
Вот тут то и помогает цветокоррекция убирающая плавание градиентов, а легкие изменения в пикселах отсеиваются процентом совпадения.
ну я в паинте тупо вырезаю кусок скрина и сохраняю в битмап, а как подготавливать его тада под кликермен? ???

Снимок надо сделать самим кликером вот таким скриптом
Код: Clickermann
  1. // Получение скриншота с цветокоррекцией (фильтр 6)
  2. GETSCREEN // Снимок в буфер кликера
  3. COLORMODE(6) // Цветокоррекция снимка в буфере кликера
  4. SCREENSHOTEX(0,0, $_xmax,$_ymax, "Image_", 0) // Вывод снимка из буфера кликера в файл BMP
  5. HALT

Из этого снимка надо вырезать фрагмент для поиска.
В своем скрипте также указываешь цветокоррекцию того же уровня

Код: Clickermann
  1. GETSCREEN
  2. COLORMODE(6)
  3. IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 80)
  4.   LCLICK($_return1, $_return2)
  5.   WAITMS(100)
  6. END_IF
вернул всё как было раньше - под твой стандарт.
Первая картинка находится и тыкается, дальше кликермен жрёт проц и ничё не делает касательно этих ифов...
Уменьшил везде % для поиска и всё равно зависает и ничё не находит, ток через время выполняет мои кривые ифы и дальше тупит :'(

мож проблема в Windows Гавно 10 home?(
в свойствах кликермена стоит админ с 7...
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: dramster от Апрель 28, 2018, 05:17:08 pm
ооох, изначално все твои "тупит" и "зависает" изза недостоющих задержек. сам подумай, кликер ищет картинку, проц напрягается, если нашел, здорово, задержки клики и прочее ... но если не нашел, что он делает? а он без перерыва снова начинает искать, и снова искать ....

Код: Clickermann
  1. GETSCREEN
  2. COLORMODE(6)
  3. IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 80)
  4.   LCLICK($_return1, $_return2)
  5.   WAITMS(100)
  6. END_IF
  7. waitms(100) // если не наше, отдых для цп!!!!


или

Код: Clickermann
  1. GETSCREEN
  2. IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1,90)
  3.   MOVE(406,186)
  4.   WAITms(500)
  5.   LCLICK(353,186)
  6.   WAITms(500)
  7.   GETSCREEN
  8.   IF_PICTURE_IN(427,209,464,257,"Пустой лайк.bmp", -1,90)
  9.      MOVE(446,250)
  10.      WAITms(500)
  11.      LCLICK(446,224)
  12.      WAITms(500)
  13.   END_IF
  14.   GETSCREEN
  15.   IF_PICTURE_IN(999,769,1157,807,"повтор.bmp")
  16.      MOVE(1120,784)
  17.      WAITms(500)
  18.      LCLICK(1078,783)
  19.      WAITms(500)
  20.   END_IF
  21. END_IF
  22. waitms(100)//отдых длдя цп!!!
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 28, 2018, 07:26:23 pm
ооох, изначално все твои "тупит" и "зависает" изза недостоющих задержек. сам подумай, кликер ищет картинку, проц напрягается, если нашел, здорово, задержки клики и прочее ... но если не нашел, что он делает? а он без перерыва снова начинает искать, и снова искать ....
ну ващет у меня после каждого ифа стоит задержка не меньше
WAIT(0.5)на некоторых и несколько секунд.
Правда они стоят перед ендом внутри ифа, или надо снаружи ставить в теле скрипта а не ифов? 8)

Цитировать
он без перерыва снова начинает искать, и снова искать ....
если он ищет все ифы одновременно что сверхъестественно для обычного процесса, тада да а так у меня он же ищет в мелких областях экрана а не фулл что не должно сильно нагружать цп при последовательном выполнении ифов вместо одновременного бреда ;D

ну ща перенесу тада задержки наружу...
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: dramster от Апрель 28, 2018, 08:11:40 pm
или надо снаружи ставить в теле скрипта а не ифов?
ЕСТЕСТВЕННО!!!

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

Цитировать
если он ищет все ифы одновременно что сверхъестественно для обычного процесса,
читай то что я написал выше.

Цитировать
у меня он же ищет в мелких областях экрана а не фулл что не должно сильно нагружать цп при последовательном выполнении ифов вместо одновременного бреда ;D
а это не важно, хоть ты один пиксель проверяй. без задержек он у тебя в секунду тыщи раз проверит, и при этом попытается выжать максимум с производительности твоего пк.
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 29, 2018, 03:46:05 am
области обновления графического буфера не указаны.
Если он всунул десятку на слабый комп, забитый пылью и с большим монитором или несколькими, плюс параллельно работает несколько процессов и прожорливый игровой клиент, то такой код будет тормозить по любому.

затруднения с точным определением необходимых задержек между поиском картинок.
логично использовать не проверку, а ожидание картинок в заданном порядке с приемлемой разгрузкой внутри циклов ожидания.
0. Изи топовый лэптоп 17.2 дюйма, 3.4ГГц, 8 озу, 2.5 взу, HDD, винда заводское ограниченное гавно 10 home(ещё жду смерти гарантии)...  :P
0.1. Параллельно работает рабочий стол на котором тестирую эти скрины задействованные фоном рабочего стола, действительно много жрёт правда не в этой вселенной 8)
1. области то везде де над указаны.
2. вотэта у меня виснит на 2 цыкле и жрёт 30% цп ничё неделая ???
$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (748,825,854,875,"инвайт.bmp", -1, 100)
      $time = 0
MOVE($_return1,$_return2)
MOVE($_return1+29, $_return2+9)
      WAIT(0.5)
   ELSE
      WAIT(1)
   END_IF
END_CYC

$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (356,190,1306,750,"выход.bmp", -1, 90)
      $time = 0
      MOVE($_return1,$_return2)
    LCLICK($_return1+277,$_return2+61)
      WAIT(0.5)
   ELSE
      WAIT(1)
   END_IF
END_CYC

тут же норм задержки, стандартный шаблон а чё не так? :P
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Oraven от Апрель 29, 2018, 07:39:22 am
Речь идет об ограничении области снимка и цветокоррекции
Пример
Код: Clickermann
  1. $time = $_time_t + 2
  2. WHILE($time > $_time_t)
  3.   GETSCREEN(748,825,854,875)
  4.   COLORMODE(6,748,825,854,875)
  5.   IF_PICTURE_IN (748,825,854,875,"инвайт.bmp", -1, 100)
  6.      $time = 0
  7.      MOVE($_return1,$_return2)
  8.      MOVE($_return1+29, $_return2+9)
  9.      WAIT(0.5)
  10.   ELSE
  11.      WAIT(1)
  12.   END_IF
  13. END_CYC
  14.  
  15. $time = $_time_t + 2
  16. WHILE($time > $_time_t)
  17.   GETSCREEN(356,190,1306,750)
  18.   COLORMODE(6,356,190,1306,750)
  19.   IF_PICTURE_IN (356,190,1306,750,"выход.bmp", -1, 90)
  20.      $time = 0
  21.      MOVE($_return1,$_return2)
  22.      LCLICK($_return1+277,$_return2+61)
  23.      WAIT(0.5)
  24.   ELSE
  25.      WAIT(1)
  26.   END_IF
  27. END_CYC

Но у тебя другая проблема. Если на долго виснет при поиске картинки то значит эта картинка слишком большого размера.
Какой размер в пикселах картинок "инвайт.bmp" и "выход.bmp"?
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 29, 2018, 06:39:16 pm
Какой размер в пикселах картинок "инвайт.bmp" и "выход.bmp"?
54x21(тупо кнопка)
329x68(слева кусок текста, справа 2 кнопки)
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Oraven от Апрель 29, 2018, 07:21:20 pm
Вот смотри
54x21 = 1134 пикселов
329x68 = 22372 пикселов

Вторая картинка будет искаться в 19 раз дольше чем первая

Чем больше пикселов на сравнение тем дольше поиск. Во время работы функции горячие клавиши недоступны, поэтому кликер невозможно остановить, а анализироваться такая большая картинка (329x68) будет ощутимо долго.

Все что тебе нужно, срезать картинку до приемлемого размера
329x3 = 987

Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Апрель 30, 2018, 02:54:11 pm
Все что тебе нужно, срезать картинку до приемлемого размера
329x3 = 987
приемлемый эт меньше 1 КБ или скок мона?
Все уменьшил меньше КБ и пока вроде всё норм.

А как их правильно всунуть друг в друга чтоб если первый блок не выполняется 2 других пропускались и так с остальными такими кучками?)
у меня всего штук 18 таких циклоифов ;)

так или мона лучше?

$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN(1515,863,$_xmax,$_ymax)
   COLORMODE(1515,863,$_xmax,$_ymax)
   IF_PICTURE_IN (1515,863,$_xmax,$_ymax,"тык.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+25,$_return2+2)
      WAIT(1)

$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN(513,340,1087,465)
   COLORMODE(6,513,340,1087,465)
   IF_PICTURE_IN (513,340,1087,465,"конец.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+47,$_return2+53)
      WAIT(2)
      HALT
   ELSE
      WAIT(1)
   END_IF
END_CYC

   ELSE
      WAIT(1)
   END_IF
END_CYC

$time = $_time_t + 1
WHILE($time > $_time_t)
   GETSCREEN(276,165,432,205)
   COLORMODE(6,276,165,432,205)
   IF_PICTURE_IN (276,165,432,205,"поиск.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+26,$_return2+3)
      WAIT(1)

$time = $_time_t + 1
WHILE($time > $_time_t)
   GETSCREEN(427,209,464,257)
   COLORMODE(6,427,209,464,257)
   IF_PICTURE_IN (427,209,464,257,"инвайт.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+10,$_return2+9)
      WAIT(1)

$time = $_time_t + 1
WHILE($time > $_time_t)
   GETSCREEN(999,769,1157,807)
   COLORMODE(6,999,769,1157,807)
   IF_PICTURE_IN (999,769,1157,807,"тык.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+24,$_return2+2)
      WAIT(1)
   ELSE
      WAIT(1)
   END_IF
END_CYC

   ELSE
      WAIT(1)
   END_IF
END_CYC

   ELSE
      WAIT(1)
   END_IF
END_CYC
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Oraven от Апрель 30, 2018, 03:57:24 pm
Все что тебе нужно, срезать картинку до приемлемого размера
329x3 = 987
приемлемый эт меньше 1 КБ или скок мона?
Все уменьшил меньше КБ и пока вроде всё норм.

Не в килобайтах мерить надо а в пикселах.
50х50 что равняется 2500 пикселов считается нормой. Но картинку всегда нужно резать по минимуму, это сильно влияет на скорость поиска. Также на скорость влияет процент совпадения.

А как их правильно всунуть друг в друга чтоб если первый блок не выполняется 2 других пропускались и так с остальными такими кучками?)
у меня всего штук 18 таких циклоифов ;)

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


Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Май 10, 2018, 11:21:30 pm
бальшое пасиба коту!  ;D
/кот Oraven

а можно какнить скомпилировать скрипт кликермана в собственный бот-экзешник со своим интерфейсом шоб в скрипт не лез никто?
Название: Re: Цикл нажимающий на куче повторённого изабражения
Отправлено: Иллидан от Май 23, 2018, 05:41:11 pm

Код: Clickermann
  1. $ARR_NUM = 0
  2. WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
  3.  
чё мне над дописать чтоб если найдёт больше 10 картинок то ставил не 999 секунд поиска времени а 10?)