Author Topic: Помогите новичку)  (Read 2914 times)

0 Members and 1 Guest are viewing this topic.

naniel

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Помогите новичку)
« on: May 07, 2017, 02:20:21 PM »
Доброго времени суток, помогите пожалуйста со скриптом. Суть скрипта на странице может быть несколько картинок, нужно что бы клик был по приоритету 1-2-3 если клик был то всё начинается заново, а так же есть четвёртая картинка при появлении которой скрипт останавливается и подаёт звуковой сигнал.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку)
« Reply #1 on: May 07, 2017, 03:22:00 PM »
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 100)
         LCLICK($_return1, $_return2)
         WAITMS(100)
      ELSE
         IF_PICTURE_IN (0,0, $_xmax,$_ymax, "4.bmp", -1, 100)
            BEEP(900,1000)
            WAITMS(500)
            HALT
         END_IF
      END_IF
   END_IF
END_IF

naniel

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помогите новичку)
« Reply #2 on: May 07, 2017, 03:56:22 PM »
Спасибо. Ещё пара вопросов можно ли заменить  WAITMS на WAITMS(RND ? Если выскокочит картинка №4, а при этом будет доступна №1 скрипт крикнет по 1, а не остановится?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку)
« Reply #3 on: May 07, 2017, 04:32:25 PM »
Code: (clickermann) [Select]
WAITMS(RND(100,200)) // задержка на 100-200 мс
Если нужно по любому искать четвертую картинку то поиск нужно писать отдельно без вложения.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 100)
         LCLICK($_return1, $_return2)
         WAITMS(100)         
      END_IF
   END_IF
END_IF

IF_PICTURE_IN (0,0, $_xmax,$_ymax, "4.bmp", -1, 100)
   BEEP(900,1000)
   WAITMS(500)
   HALT
END_IF

WAITMS(100)

Заметь GETSCREEN я написал только в начале а не перед каждым анализом. В данном случаи мы делаем снимок а потом серией анализов проводим поиск на нем. Так лучше для нагрузки на процессор, так как GETSCREEN сильно жрет ресурсы.

naniel

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помогите новичку)
« Reply #4 on: May 07, 2017, 04:50:56 PM »
условно можно сказать первая картинка это Да, а четвертая это вопрос - Вы бот? т.е во всех случаях кроме этого нужно отвечать утвердительно, а на нём остановится.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку)
« Reply #5 on: May 07, 2017, 05:11:58 PM »
Ну тогда нужно сначала искать 4 а потом уже все остальные
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "4.bmp", -1, 100)
   BEEP(900,1000)
   WAITMS(500)
   HALT
END_IF

IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 100)
         LCLICK($_return1, $_return2)
         WAITMS(100)
      END_IF
   END_IF
END_IF

WAITMS(100)

naniel

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помогите новичку)
« Reply #6 on: May 07, 2017, 06:31:51 PM »
Всё работает, но иногда бывает глюк на 2ой картинке, клик проходит до того как курсор оказывается на картинке (возможно из за того что она меньше остальных) на этом месте всё останавливается.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку)
« Reply #7 on: May 07, 2017, 08:56:51 PM »
Добавь перед каждым кликом предварительное перемещение курсора
Code: (clickermann) [Select]
MOVE($_return1, $_return2)
WAITMS(60)
LCLICK($_return1, $_return2)
WAITMS(100)

А еще добавь в конце
Code: (clickermann) [Select]
MOVE(100,100) // любые удобные координатыЭто будет убирать курсор в сторону. Возможно из за него не кликает.

naniel

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помогите новичку)
« Reply #8 on: May 07, 2017, 09:32:43 PM »
Большое спасибо за помощь  :)

naniel

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Помогите новичку)
« Reply #9 on: May 10, 2017, 09:44:05 PM »
ну и наверное последний вопрос, если включать привязку к окну скрипт сильно нужно изменять?

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Помогите новичку)
« Reply #10 on: May 10, 2017, 11:04:17 PM »
Открываешь скрипт, наводишь курсор на окно, нажимаешь Alt+W, запускаешь скрипт.

ну или добавь вначале скрипта

Code: (clickermann) [Select]
$hwnd1 = wndfind("название окна") // можно скопировать из манагера окон
WAITMS(50)
HSET ($hwnd1, 1) // привязка к онку

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку)
« Reply #11 on: May 11, 2017, 08:16:49 AM »
ну и наверное последний вопрос, если включать привязку к окну скрипт сильно нужно изменять?

В режиме привязки координаты отсчитываются от начала окна, поэтому если есть клики координаты придется пересчитать.
Также не работают зажатия клавиш. Невозможно нажать Ctrl+V например.
Кликер может не видеть графику в привязанном окне из за аппаратного ускорения.

Все это надо учитывать.