Author Topic: Последовательный поиск картинок + остановка части скрипта  (Read 3956 times)

0 Members and 1 Guest are viewing this topic.

икающий У

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Добрый день!

Задача - поймать и убить бота.

Ловить планирую так
GETSCREEN
IF_PICTURE_IN (1097,567, 1308,700, "1.bmp")
RCLICK($_return1+15, $_return2+5)
WAITMS(500)
LCLICK($_return1+20, $_return2+40)
WAITMS(50)
END_IF

Убивать так
GETSCREEN
IF_PICTURE_IN (114,133, 179,169, "2.bmp")
LCLICK($_return1+15, $_return2+15)
WAITMS(50)
LCLICK(772, 160)
WAITMS(50)
LCLICK(700, 188)
WAITMS(50)
END_IF

Сложности:
1. Руки-крюки
2. Картинка с ботом появляется рандомно 1 раз в сутки, а с убивством висит постоянно

Подскажите, пожалуйста, как объединить эти задачи в один скрипт так, чтобы пока первая не выполнена, кликер не тыкал во вторую, а когда бот споймался - выполнение первой было остановлено, а вторая зациклена (у меня 1 удар прописан).

П.С. если есть возможность прикрутить будильник к срабатыванию - воткните в 1 задачу, пожалуйста. глазки слипаются, неделю уже ловлю, а желающих много)

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
чтобы пока первая не выполнена, кликер не тыкал во вторую, а когда бот споймался - выполнение первой было остановлено, а вторая зациклена (у меня 1 удар прописан).

Что-то вроде этого?

Code: (clickermann) [Select]
GETSCREEN
IF($bot_poyman)
   IF_PICTURE_IN (114,133, 179,169, "2.bmp")
      LCLICK($_return1+15, $_return2+15)
      WAITMS(50)
      LCLICK(772, 160)
      WAITMS(50)
      LCLICK(700, 188)
      WAITMS(50)
      // Бот убит - обнуляем переменную
      $bot_poyman = 0
   END_IF
else
   IF_PICTURE_IN (1097,567, 1308,700, "1.bmp")
      RCLICK($_return1+15, $_return2+5)
      WAITMS(500)
      LCLICK($_return1+20, $_return2+40)
      WAITMS(50)
      // Бот пойман - отмечаем это в переменной
      $bot_poyman = 1
   END_IF
END_IF
WAITMS(50)

Или я что-то не понял...
« Last Edit: March 26, 2019, 11:38:36 AM by Hito »
Я не ду... Потому и не бу...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (1097,567, 1308,700, "1.bmp")
   BEEP(1000,600) // сигнал
   RCLICK($_return1+15, $_return2+5)
   WAITMS(500)
   LCLICK($_return1+20, $_return2+40)
   WAITMS(50)
   
   $check = 0
   WHILE($check = 0) // цикл завершится если "2.bmp" не будет найдено
      GETSCREEN
      IF_PICTURE_IN (114,133, 179,169, "2.bmp")
         LCLICK($_return1+15, $_return2+15)
         WAITMS(50)
         LCLICK(772, 160)
         WAITMS(50)
         LCLICK(700, 188)
         WAITMS(50)
      ELSE
         $check = 1
         WAITMS(50)
      END_IF
   END_CYC
   
ELSE
   WAITMS(100)
END_IF

икающий У

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Hito, спасибо, работает. правда

      LCLICK($_return1+15, $_return2+15)
      WAITMS(50)
      LCLICK(772, 160)
      WAITMS(50)
      LCLICK(700, 188)
      WAITMS(50)
     
это 1 атака, бот не убит и ловля начинается с начала, вот зациклить бы ее, пусть лупит пока не выключу, так можно?


Oraven, должно работать) спасибо, но есть проблема, бот на сегодня кончился.


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
так можно?

Все можно! Вон Oraven тебе вариант дал. Я просто изначально немного не понял ситуацию.
Я не ду... Потому и не бу...

икающий У

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile

      $bot_poyman = 0
   поменял на  $bot_poyman = 1 и норм, пусть крутит

Спасибо!

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile

      $bot_poyman = 0
   поменял на  $bot_poyman = 1 и норм, пусть крутит

Спасибо!

Мда...... Это эффект людей, которые не хотят разбираться в алгоритмах, даже в тех примерах, что им дают, а просто хотят готовые решения...
« Last Edit: March 26, 2019, 02:40:38 PM by Hito »
Я не ду... Потому и не бу...

Oraven

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

Code: (clickermann) [Select]
IF($first = 0)
   $first = 1
   $bot_poyman = INT(INIREAD("confbot.ini", "bot_poyman"))
END_IF
IF($bot_poyman ! $_date_d)
   GETSCREEN
   IF_PICTURE_IN (1097,567, 1308,700, "1.bmp")
      BEEP(1000,600) // сигнал
      RCLICK($_return1+15, $_return2+5)
      WAITMS(500)
      LCLICK($_return1+20, $_return2+40)
      WAITMS(50)
     
      $check = 0
      WHILE($check = 0) // цикл завершится если "2.bmp" не будет найдено
         GETSCREEN
         IF_PICTURE_IN (114,133, 179,169, "2.bmp")
            LCLICK($_return1+15, $_return2+15)
            WAITMS(50)
            LCLICK(772, 160)
            WAITMS(50)
            LCLICK(700, 188)
            WAITMS(50)
         ELSE
            $check = 1
            WAITMS(50)
         END_IF
      END_CYC
      $bot_poyman = $_date_d
      INIWRITE("confbot.ini", "bot_poyman", $_date_d)
   ELSE
      WAITMS(100)
   END_IF
END_IF

икающий У

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Oraven, спасибо!
почти получилось, но тут др. проблема -
бота ловит, но цикл завершается, если не найдет 2ю картинку, а в этой игрушке когда на бота нападаешь ставит в очередь на вмешательство (2й картинки нет) + если напасть получится в первой очереди идет задержка на 60 сек на удар, это отображается на картинке, там идет отсчет - не находит сохраненную и цикл завершен. я попробовал выдернуть вторую часть (с14 ло 28 строчки) удалить цикл, прикрутить таймер, но первый пункт моих сложностей помешал)). Сегодня последний день появления бота, до сл. года не актуально, но есть вопрос. Я поискал по форуму, не нашел. Есть ли скрипт для прохождения лабиринтов? выглядит как дум, квака(1е части) есть основная картинка и мини карта,но это я совсем размечтался))


икающий У

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