Author Topic: Нужна помощь, кликер через раз пропускает картинку.  (Read 3621 times)

0 Members and 1 Guest are viewing this topic.

nikolay8696

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Всем привет! Сделал скрипт из шаблонов, которые были в кликере. Задача этого скрипта ставить лайк или подписываться на канал, когда я его запускаю он работает через раз, иногда находит лайк, иногда пропускает и переходит к следующему сценарию. Не могу понять в чём проблема, помогите пожалуйста.

Code: (clickermann) [Select]
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "zadanye.bmp", -1, 100)
   MOVE($_return1, $_return2)
   WAITMS(250)
   LCLICK($_return1, $_return2)
   WAITMS(250)
END_IF

WAIT(30)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "like.bmp", -1, 100)
   MOVE($_return1, $_return2)
   WAITMS(250)
   LCLICK($_return1, $_return2)
   WAITMS(250)
END_IF
WAIT(2)

KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#W)
KEYUP (#CTRL)
« Last Edit: February 06, 2019, 07:21:35 PM by nikolay8696 »

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Используй лог для отладки скрипта
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "like.bmp", -1, 100)
   PRINT("Нашёл like.bmp")
   MOVE($_return1, $_return2)
   WAITMS(250)
   LCLICK($_return1, $_return2)
   WAITMS(250)
ELSE
   PRINT("Не нашёл like.bmp")
END_IF
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

nikolay8696

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Что мне даст лог, если я и так знаю что он не находит.

Oraven

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

Code: (clickermann) [Select]
WAITMS(500)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "zadanye.bmp", -1, 100)
      MOVE($_return1, $_return2)
      WAITMS(250)
      LCLICK($_return1, $_return2)
      WAITMS(500)
      $check = 1
   ELSE
      WAITMS(50)
   END_IF
END_CYC

$check = 0
WHILE($check = 0)
   GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "like.bmp", -1, 100)
      MOVE($_return1, $_return2)
      WAITMS(250)
      LCLICK($_return1, $_return2)
      WAITMS(500)
      $check = 1
   ELSE
      WAITMS(50)
   END_IF
END_CYC

KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#W)
KEYUP (#CTRL)
WAIT(1)

Ну а если не находит то нужно использовать цветокоррекцию и процент совпадения.

nikolay8696

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Всем спасибо! всё получилось, я поставил совпадение 60% и теперь он всегда кликает на лайк не разу не пропустив.
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (300,100, 1350,870, "like.bmp", -1, 60)
      PRINT("Нашёл like.bmp")
      MOVE($_return1+9, $_return2+6)
      WAITMS(250)
      LCLICK($_return1+9, $_return2+6)
      WAITMS(500)
      $check = 1
   ELSE
      PRINT("Не нашёл like.bmp")
      WAITMS(50)
   END_IF
END_CYC
« Last Edit: February 06, 2019, 09:53:09 PM by nikolay8696 »

nikolay8696

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Ребят ещё такой вопрос. Как сделать чтобы он 5 раз проверил, если картинка не найдена то он закрывает окно браузера. Бывает такое что видео не доступно или сбой соединения с сервером.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Не 5 раз а заданный промежуток времени!

Такой цикл будет искать картинку не более 20 секунд. Если за 20 сек не найдет выполнение продолжится после цикла.
Code: (clickermann) [Select]
$time = $_time_t + 20 // таймер на 20 секунд
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (300,100, 1350,870, "like.bmp", -1, 60)
      PRINT("Нашёл like.bmp")
      MOVE($_return1+9, $_return2+6)
      WAITMS(250)
      LCLICK($_return1+9, $_return2+6)
      WAITMS(500)
      $time = 0
   ELSE
      WAITMS(50)
   END_IF
END_CYC

nikolay8696

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Ребят хотел спросить по поводу цветокоррекции, как применить эту функцию в моём коде? Дело в том, что если я зайду с другого браузера или использую этот скрипт на другом компе он откажется работать потому что он не видит картинки.

Oraven

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

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

Можно попробовать значения 5-7

Из полученного скриншота вырезаешь то что тебе нужно.
В своем скрипте указываешь цветокоррекцию того же уровня.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)

Geraran

  • Освоившийся
  • **
  • Posts: 26
    • View Profile
    • Инфо-блог для инвалидов и не только
всем привет.
у меня та же проблема. скрипт поиска картинки работал без цветокорекции на 64 железе. на днях комп сдох, пришлось перейти на 32 бит. сначала кликерман тормозил, поставил фрамеворк 4.5. начал работать. мой скрипт работает чужом компе, но не видит картинку. уже хотел тему создавать, но увидел вашу беседу. сделал с COLORMODE(6). скрипт увидел картинку

НО..
увидел всего раз. после захода в другой аккаунт, опять не видит картинку...  :o

подскажите в чем проблема?

я уже привык к автоматизации  ;), а еще не известно когда починят мой пк  :(

заранее спасибо

nikolay8696

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Попробуй поставить меньше процент совпадения.

Geraran

  • Освоившийся
  • **
  • Posts: 26
    • View Profile
    • Инфо-блог для инвалидов и не только
GETSCREEN
COLORMODE(5)
    IF_PICTURE_IN (20,150, 600,1150, "makowkina.bmp", -1, 80)
       LCLICK($_return1, $_return2)
       WAITMS(100)
    END_IF // поиск кнопки репоста
WAIT(3)

изменил колормоде на 5 и процент совпадения 80. заработало. но потом ждал облом, скриншот кнопки (логотип на белом фоне) срабатывал только на том сайте где был сделан снимок экрана, на салатовом фоне, хоть скриншот был обрезан. сделал кнопку на белом фоне, как у себя на компе, начало срабатывать на всех сайтах.

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

Quote
Изучи игнорирование фона, в сложных случаях нужно использовать все доступные возможности.
спасибо, учту

nikolay8696

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Ребят подскажите в чём моя ошибка? Это сценарий для выполнения заданий на сайте vkmix. Кликер успешно выполняет задание, после того как он обратно переходит к пункту start он уже не видит картинку "Выполнить задание (sub)" и останавливается, хотя картинка есть, только на другом месте чуть правее.
Code: (clickermann) [Select]
// Переход на главную страницу и на задания instagram
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "main.bmp", -1, 80)
   MOVE($_return1, $_return2)
   WAITMS(250)
   LCLICK($_return1, $_return2)
   WAIT(3)
   GETSCREEN
   COLORMODE(5)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "instagram.bmp", -1, 80)
      MOVE($_return1, $_return2)
      WAITMS(250)
      LCLICK($_return1, $_return2)
      WAIT(3)   
   END_IF
END_IF

// Нажимает начать выполнение задания
start:
WAITMS(500)
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "sub.bmp", -1, 80)
      $check = 1
      MOVE($_return1-14, $_return2+50)
      WAITMS(250)
      LCLICK($_return1-14, $_return2+50)
      WAITMS(250)
   ELSE
      WAITMS(50)
      GOTO(stop) // Если он не нашёл картинку выполнить задание
   END_IF
END_CYC

WAIT(5)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "subinst.bmp", -1, 70)
      $check = 1
      MOVE($_return1, $_return2)
      WAITMS(250)
      LCLICK($_return1, $_return2)
      WAIT(2)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYPRESS (#W)
      KEYUP (#CTRL)
      GOTO(start) // Выполнив задание переходит к start
   ELSE
      WAITMS(500)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYPRESS (#W)
      KEYUP (#CTRL)
      GOTO(stop)
   END_IF
END_CYC


stop:
HALT
« Last Edit: February 19, 2019, 11:58:50 AM by nikolay8696 »

nikolay8696

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Спасибо за исправления, я только учусь :)