Голосование

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

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

Автор Тема: Цикл нажимающий на куче повторённого изабражения  (Прочитано 4806 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Иллидан

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Тебе нужна функция 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)

Иллидан

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

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
« Последнее редактирование: Апрель 26, 2018, 09:19:49 am от Иллидан »

Vint

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

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

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

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


Иллидан

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

и кстати 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) просто я не знаю как остановить выполнение потока ифа ???
« Последнее редактирование: Апрель 25, 2018, 05:01:56 pm от Иллидан »

Vint

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


Иллидан

  • Освоившийся
  • **
  • Сообщений: 40
  • Дзен-Мастер
    • Просмотр профиля

Код: 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

Oraven

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

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

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

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

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

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

Иллидан

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

Oraven

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

Снимок надо сделать самим кликером вот таким скриптом
Код: 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

Иллидан

  • Освоившийся
  • **
  • Сообщений: 40
  • Дзен-Мастер
    • Просмотр профиля
LCLICK($_return1+12,$_return2+7)
UNDEFINE($_return1)
UNDEFINE($_return2)

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

Иллидан

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

Иллидан

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

Снимок надо сделать самим кликером вот таким скриптом
Код: 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...
« Последнее редактирование: Апрель 28, 2018, 04:42:20 pm от Иллидан »

dramster

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

Код: 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)//отдых длдя цп!!!

Иллидан

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

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

ну ща перенесу тада задержки наружу...
« Последнее редактирование: Апрель 28, 2018, 07:34:31 pm от Иллидан »