Author Topic: Последовательные клики по картинкам  (Read 6667 times)

0 Members and 1 Guest are viewing this topic.

alex2000ru

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Подскажите, пожалуйста, как будет выглядеть скрипт для такого сценария:

1.Поиск первой  картинки.

2. В случае ее нахождения кликаем на нее и ищем 2-ю картинку.

3. Если не находим 1-ю картинку, останавливаем скрипт.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Последовательные клики по картинкам
« Reply #1 on: June 12, 2013, 12:14:55 AM »
Просто вложи одну функцию в другую

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp")
   LCLICK($_return1, $_return2)
   WAITMS(500)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp")
      LCLICK($_return1, $_return2)
      WAITMS(500)
   END_IF
Else
   HALT
END_IF

WAITMS(50)

А еще хорошо бы убирать курсор после клика функцией MOVE, чтоб не загораживал картинку.
« Last Edit: June 12, 2013, 12:17:48 AM by Oraven »

alex2000ru

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Последовательные клики по картинкам
« Reply #2 on: June 12, 2013, 10:31:12 PM »
Спасибо, уважаемый  Oraven  ,

 я попробовал Ваш скрипт, но у меня почему-то  HALT все выключает после 1 картинки по-любоу. Нашел, не нашел.
Правда у меня чуть сложнее с KEYSTRINGом посередине.
Где может быть ошибка?

Code: (clickermann) [Select]
GOSUB(sub_name)
SUB (sub_name)   
getscreen
IF_PICTURE_IN (990,390,1114,567, "odin.bmp")
lclick($_return1+20, $_return2+5)
WAITMS(10000)
LCLICK(121,903)
WAITMS(11000)
KEYSTRING("dva",250)
HINTPOPUP("Message", "Title 1")
LCLICK(752,148)
WAIT(1)
getscreen
IF_PICTURE_IN (0,0, 304,427, "dva.bmp")
lclick($_return1+20, $_return2+5)
WAITMS(100)
lclick($_return1+40, $_return2+6)
      WAITMS(500)
  END_IF
Else
  HALT
END_IF
   
END_SUB

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Последовательные клики по картинкам
« Reply #3 on: June 12, 2013, 10:48:44 PM »
Скрипт может остановиться только если не найдет "odin.bmp". Может задержка маленькая или картинка незначительно меняется. Попробуй в место хальта вставить записи в лог, так сразу будет понятно как там именно срабатывают условия. И зачем этот СУБ?

alex2000ru

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Последовательные клики по картинкам
« Reply #4 on: June 12, 2013, 11:10:11 PM »
Oraven, спасибо за ответ.
Убрал саб, поменял хальт на лог. В логе пишет, что ничего не найдено, хотя визуально видно, что кликает на 1 картинку

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Последовательные клики по картинкам
« Reply #5 on: June 13, 2013, 12:25:16 AM »
Oraven, спасибо за ответ.
Убрал саб, поменял хальт на лог. В логе пишет, что ничего не найдено, хотя визуально видно, что кликает на 1 картинку

Ну тык наверно задержка слишком быстрая там 500 миллисекунд стоит попробуй увеличить

alex2000ru

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Последовательные клики по картинкам
« Reply #6 on: June 13, 2013, 12:49:53 AM »
ok, спасибо, завтра поэксперементирую :)

kolik76_76

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Последовательные клики по картинкам
« Reply #7 on: December 18, 2015, 11:03:29 PM »
Привет ребята, не стал создавать новую тему вопрос почти такой же. Написал скрипт, работает на половину, как допилить?
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "/picture/1.bmp")
   LCLICK($_return1, $_return2)
   WAITMS(500)
WAIT(RND(1,2))
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "/picture/2.bmp")
      LCLICK($_return1, $_return2)
      WAITMS(500)
   END_IF
END_CYC

Скрипт должен сначала кликать по первой картинке потом через рандом времени 1-2сек по второй и если не находит первую картинку то кликает по второй
« Last Edit: December 18, 2015, 11:07:04 PM by kolik76_76 »

Atas

  • Активный участник
  • ***
  • Posts: 147
    • View Profile
Re: Последовательные клики по картинкам
« Reply #8 on: December 19, 2015, 12:05:22 AM »
kolik76_76 у тебя в скрипте не хватает просто END_IF после шестой строки.
И GETSCREEN в восьмой строке по моему лишний, т.к. после задержки в 2 мс может появиться первая картинка, а у тебя получится клик сразу по второй, без проверки есть ли первая.
Еще, в шестой строке WAITMS(500) тоже вроде не к месту, там же рандомная задержка стоит.
Просто невнимательность в написании кода, а в целом всё норм.  :)
В редакторе надо на волшебную палочку иногда нажимать, это кнопка такая (вверху, на панели действий); если в коде есть подобные ошибки (например с END_IF), то будет заметно как скрипт перекосится.

kolik76_76

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Последовательные клики по картинкам
« Reply #9 on: December 19, 2015, 02:09:12 AM »
Там как, сначала на первую жмакаешь тогда появляется вторая, но бывает, что нет первой, есть только вторая. С вашей помощью ребята допилил скрипт, получился вот так
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "picture/1.bmp")
      LCLICK($_return1, $_return2)
      WAIT(5)
   END_IF
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "picture/2.bmp")
      LCLICK($_return1, $_return2)
      WAITMS(500)
   END_IF
END_CYC


Рандом пока убрал, для теста, ну и WAITMS тоже можно убрать

kolik76_76

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Последовательные клики по картинкам
« Reply #10 on: December 19, 2015, 04:47:05 PM »
Это я сделал так для теста, добавил ещё чтобы по ссылкам кликал и получился полуавтоматический бот