Poll

Была ли полезна вам эта тема?)

Да
Нет
От части
Не читал xD
Очень полезна

Author Topic: Цикл нажимающий на куче повторённого изабражения  (Read 7432 times)

0 Members and 3 Guests are viewing this topic.

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
на экране куча одной и той же картинки, как заставить кликер тыкнуть на каждой из них без повторов тыка по предыдущим?
Примерный код дайте кто знает (про хеш я хз с чем его едят). :o

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Тебе нужна функция SCANPICTURE возвращающая в массив все найденные картинки.

Шаблон из меню редактора.
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)

$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   LCLICK($X, $Y)   // Клик
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
а как делается остановка не найденных ифов которая должна прерывать продолжение выполнения дочерних ифов и команд вних типа наведения курсора как в примере ниже в результате отсутствия искомой картинки?

Code: [Select]
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
« Last Edit: April 26, 2018, 09:19:49 AM by Иллидан »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
у меня прост всё что идёт после последней скобки ифа (раньше енда) выполняется даже если ничё не найдено ???

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

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

Code: (clickermann) [Select]
IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1, 90)


Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
у меня прост всё что идёт после последней скобки ифа (раньше енда) выполняется даже если ничё не найдено ???

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

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

Code: (clickermann) [Select]
IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1, 90)

 ???

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

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

кликермен то меня понимает(ну таким образом да ;D) просто я не знаю как остановить выполнение потока ифа ???
« Last Edit: April 25, 2018, 05:01:56 PM by Иллидан »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Да... 'остановить выполнение потока' необходимо.


Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile

Code: (clickermann) [Select]
IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1, 90)

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

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

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

Можеш написать пример моего кода как написал бы его ты?
У меня там явно чёто лишнее найдётся а я у ся твой пример проверю :P

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
а так чё надо находит и чё надо делает вот только чё надо делает даже если ничего не находит!

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

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

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

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

Здесь надо не функции ломать а правильно подготавливать картинки поиска!
Использовать процент совпадения без предварительной цветокоррекции бессмысленно. Так как в полно цветной графике со всеми там сглаживаниями и наложениями могут незначительно для глаза меняться все 100% пикселов.
Вот тут то и помогает цветокоррекция убирающая плавание градиентов, а легкие изменения в пикселах отсеиваются процентом совпадения.

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
Вот тут то и помогает цветокоррекция убирающая плавание градиентов, а легкие изменения в пикселах отсеиваются процентом совпадения.
ну я в паинте тупо вырезаю кусок скрина и сохраняю в битмап, а как подготавливать его тада под кликермен? ???

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Вот тут то и помогает цветокоррекция убирающая плавание градиентов, а легкие изменения в пикселах отсеиваются процентом совпадения.
ну я в паинте тупо вырезаю кусок скрина и сохраняю в битмап, а как подготавливать его тада под кликермен? ???

Снимок надо сделать самим кликером вот таким скриптом
Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN // Снимок в буфер кликера
COLORMODE(6) // Цветокоррекция снимка в буфере кликера
SCREENSHOTEX(0,0, $_xmax,$_ymax, "Image_", 0) // Вывод снимка из буфера кликера в файл BMP
HALT

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

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 80)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
Code: [Select]
LCLICK($_return1+12,$_return2+7)
UNDEFINE($_return1)
UNDEFINE($_return2)

они публичные или я их зря очищаю в каждом ифе?

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
$_return1 Используется для возврата в нее значения определенными инструкциями
$_return2 Аналогично
нормальным людям идея очищать системные переменные в думательный орган, до сих пор ни когда не приходила, вы первый и уникальный, с чем вас и паздрафляю.
пасиба ;D
халасо жы быть отличным от нормального стада! :P
« Last Edit: April 28, 2018, 04:41:57 PM by Иллидан »

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
Вот тут то и помогает цветокоррекция убирающая плавание градиентов, а легкие изменения в пикселах отсеиваются процентом совпадения.
ну я в паинте тупо вырезаю кусок скрина и сохраняю в битмап, а как подготавливать его тада под кликермен? ???

Снимок надо сделать самим кликером вот таким скриптом
Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN // Снимок в буфер кликера
COLORMODE(6) // Цветокоррекция снимка в буфере кликера
SCREENSHOTEX(0,0, $_xmax,$_ymax, "Image_", 0) // Вывод снимка из буфера кликера в файл BMP
HALT

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

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

мож проблема в Windows Гавно 10 home?(
в свойствах кликермена стоит админ с 7...
« Last Edit: April 28, 2018, 04:42:20 PM by Иллидан »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
ооох, изначално все твои "тупит" и "зависает" изза недостоющих задержек. сам подумай, кликер ищет картинку, проц напрягается, если нашел, здорово, задержки клики и прочее ... но если не нашел, что он делает? а он без перерыва снова начинает искать, и снова искать ....

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 80)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
waitms(100) // если не наше, отдых для цп!!!!


или

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN(287,172,428,202,"Список игроков.bmp", -1,90)
   MOVE(406,186)
   WAITms(500)
   LCLICK(353,186)
   WAITms(500)
   GETSCREEN
   IF_PICTURE_IN(427,209,464,257,"Пустой лайк.bmp", -1,90)
      MOVE(446,250)
      WAITms(500)
      LCLICK(446,224)
      WAITms(500)
   END_IF
   GETSCREEN
   IF_PICTURE_IN(999,769,1157,807,"повтор.bmp")
      MOVE(1120,784)
      WAITms(500)
      LCLICK(1078,783)
      WAITms(500)
   END_IF
END_IF
waitms(100)//отдых длдя цп!!!

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
ооох, изначално все твои "тупит" и "зависает" изза недостоющих задержек. сам подумай, кликер ищет картинку, проц напрягается, если нашел, здорово, задержки клики и прочее ... но если не нашел, что он делает? а он без перерыва снова начинает искать, и снова искать ....
ну ващет у меня после каждого ифа стоит задержка не меньше
Code: [Select]
WAIT(0.5)на некоторых и несколько секунд.
Правда они стоят перед ендом внутри ифа, или надо снаружи ставить в теле скрипта а не ифов? 8)

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

ну ща перенесу тада задержки наружу...
« Last Edit: April 28, 2018, 07:34:31 PM by Иллидан »