Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: spelik on April 07, 2017, 02:04:59 PM

Title: Помогите с количеством повторений цикла
Post by: spelik on April 07, 2017, 02:04:59 PM
Подскажите пожалуйста. Как сделать если условие не выполняется (допустим 3 раза) чтобы скрипт переходил дальше по коду?
Code: [Select]
1:
$time = $_time_t + 10
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,224, 363,440, "file2.bmp", -1, 100)
      $time = 0
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      MOVE(309,239)
      LDOWN(309,239)
      WAITMS(500)
      LUP(309,239)
      WAIT(5)
      MOVE(103,387)
      LDOWN(103,387)
      WAITMS(500)
      LUP(103,387)
      WAIT(15)
      GOTO(1)
     
   END_IF
END_CYC
Title: Re: Помогите с количеством повторений цикла
Post by: Vint on April 07, 2017, 02:53:22 PM
А зачем тогда написано в течении 10 секунд?
И так по GOTO выпрыгивать нельзя.

Максимум 3 поиска. Нашёл - идёт дальше. Не нашёл за 3 раза - идёт дальше.
Code: (clickermann) [Select]
FOR($find=0, $find < 3)
    GETSCREEN
    IF_PICTURE_IN(0,224, 363,440, "file2.bmp")
        $find = 10
        LCLICK($_return1, $_return2)
        WAITMS(100)
    ELSE
        MOVE(309,239)
        LDOWN(309,239)
        WAITMS(500)
        LUP(309,239)
        WAIT(5)
        MOVE(103,387)
        LDOWN(103,387)
        WAITMS(500)
        LUP(103,387)
        WAIT(15)
    END_IF
END_CYC
Title: Re: Помогите с количеством повторений цикла
Post by: Dimitriy on April 14, 2017, 03:49:00 PM
А зачем тогда написано в течении 10 секунд?
И так по GOTO выпрыгивать нельзя.

Максимум 3 поиска. Нашёл - идёт дальше. Не нашёл за 3 раза - идёт дальше.
[spoiler]
Code: (clickermann) [Select]
FOR($find=0, $find < 3)
    GETSCREEN
    IF_PICTURE_IN(0,224, 363,440, "file2.bmp")
        $find = 10
        LCLICK($_return1, $_return2)
        WAITMS(100)
    ELSE
        MOVE(309,239)
        LDOWN(309,239)
        WAITMS(500)
        LUP(309,239)
        WAIT(5)
        MOVE(103,387)
        LDOWN(103,387)
        WAITMS(500)
        LUP(103,387)
        WAIT(15)
    END_IF
END_CYC
[/spoiler]

Добрый день! Столкнулся с аналогичной проблемой как у ТС. Мне нужно, что бы он переходил дальше сразу после того как "нашел".
Сделал как Вы посоветовали. Но даже после того, как он "нашел", он все равно повторяет цикл ровно столько раз, сколько прописано в"$find < і", а не идет дальше :С
Может я не правильно понял?
Code: (clickermann) [Select]
FOR($find=0, $find < 50)
   
   getscreen     
   if_pixel_in(587, 377, 590, 380, 11250603)
      KEYPRESS(#ESC)
      WAITMS (50)
      KEYPRESS(#ENTER)
      WAITMS (50)
      KEYPRESS(#ENTER)
      WAITMS (1000)
   else               
      LCLICK(617,369)
      WAITMS (50)
      KEYPRESS(#DOWN)
      WAITMS (50)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#C)
      WAITMS (50)
      KEYUP (#C)
      KEYUP (#CTRL)
      WAITMS (50)
      LCLICK(1111,666)
      WAITMS (50)
      LCLICK(969,666)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#V)
      WAITMS (50)
      KEYUP (#V)
      KEYUP (#CTRL)
      WAITMS (50)
      LCLICK(1111,666)
      WAITMS (50)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#C)
      WAITMS (50)
      KEYUP (#C)
      KEYUP (#CTRL)
      WAITMS (50)
      DBLCLICK(676,369)
      WAITMS (50)
      KEYPRESS(#BACKSPACE)
      WAITMS (50)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#V)
      WAITMS (50)
      KEYUP (#V)
      KEYUP (#CTRL)
      WAITMS (50)
      KEYPRESS(#ENTER)
      WAITMS (50)
   end_if
   
END_CYC
Title: Re: Помогите с количеством повторений цикла
Post by: open_78 on April 14, 2017, 05:34:43 PM
Code: (clickermann) [Select]
FOR($find=0, $find < 50)
 
   getscreen     
   if_pixel_in(587, 377, 590, 380, 11250603)
      $find=99  //   <<<<<<<<<<
      KEYPRESS(#ESC)
      WAITMS (50)
      KEYPRESS(#ENTER)
      WAITMS (50)
      KEYPRESS(#ENTER)
      WAITMS (1000)
   else               
      LCLICK(617,369)
      WAITMS (50)
      KEYPRESS(#DOWN)
      WAITMS (50)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#C)
      WAITMS (50)
      KEYUP (#C)
      KEYUP (#CTRL)
      WAITMS (50)
      LCLICK(1111,666)
      WAITMS (50)
      LCLICK(969,666)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#V)
      WAITMS (50)
      KEYUP (#V)
      KEYUP (#CTRL)
      WAITMS (50)
      LCLICK(1111,666)
      WAITMS (50)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#C)
      WAITMS (50)
      KEYUP (#C)
      KEYUP (#CTRL)
      WAITMS (50)
      DBLCLICK(676,369)
      WAITMS (50)
      KEYPRESS(#BACKSPACE)
      WAITMS (50)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#V)
      WAITMS (50)
      KEYUP (#V)
      KEYUP (#CTRL)
      WAITMS (50)
      KEYPRESS(#ENTER)
      WAITMS (50)
   end_if
 
END_CYC
Title: Re: Помогите с количеством повторений цикла
Post by: Dimitriy on April 17, 2017, 11:55:09 AM
Огромное спасибо!
Title: Re: Помогите с количеством повторений цикла
Post by: Dimitriy on April 21, 2017, 07:24:42 PM
И опять я с вопросами по циклам :)
Код сократил для простоты вопроса, но цикличность оставил как у меня.
Вопрос: когда условие 2-го блока выполняется положительно, он выполняется единожды, и потом начинает опять повторять ОСНОВНОЙ цикл с начала. Как его заставить идти дальше?
Пысы: еще такой вопросик, есть команда которая запускает скрипт с самого начала, независимо от того где она вставлена?
Code: (clickermann) [Select]
FOR($find=0, $find < 50)
   getscreen
   if_pixel_in(587, 377, 590, 380, 11250603)
      $find=99
      WAITMS (50)
      KEYPRESS(#ENTER)
///////////////////БЛОК 2////////////////////////////////
      FOR($find=0, $find < 15)
         getscreen
         if_picture_in(481, 354, 519, 394, "G.bmp")
            $find=30
            KEYPRESS(#END)
         else
            if_picture_in(481, 354, 519, 394, "krest.bmp")
               WAITMS (200)
               KEYPRESS(#ENTER)
            else
               WAITMS (500)
            end_if
         end_if
      END_CYC
///////////////////БЛОК 2////////////////////////////////
   else
      getscreen
      if_picture_in(847, 361, 858, 376, "pak.bmp")
         WAITMS (50)
         KEYPRESS(#DOWN)
      else
         WAITMS (50)
         KEYPRESS(#ENTER)
      end_if
   end_if
END_CYC
//////дальше это тут
Title: Re: Помогите с количеством повторений цикла
Post by: Vint on April 21, 2017, 08:37:18 PM
У вложенных циклов переменные цикла должны быть разные! Не экономь на буквах :D

По второму вопросу. Такой команды нет, но так можно сделать. Ты точно уверен что это нужно?
Title: Re: Помогите с количеством повторений цикла
Post by: Dimitriy on April 22, 2017, 12:43:08 PM
У вложенных циклов переменные цикла должны быть разные! Не экономь на буквах :D

По второму вопросу. Такой команды нет, но так можно сделать. Ты точно уверен что это нужно?
Действительно, спасибо! Жлоб я на буквы оказался :)
Скорее интересно просто было, помогло бы сэкономить несколько строчек кода
Title: Re: Помогите с количеством повторений цикла
Post by: Андрей8462 on April 28, 2017, 09:49:22 PM
Добрый вечер! есть скрипт для поиска определенной картинки и клика по ней, нужно переделать чтоб найдя картинку и кликнув по ней бот перешел в новую заданную точку и проделал там все то же самое а потом вернулся на предыдущее место и так бесконечно ) не подскажете как можно сделать это?
Code: (clickermann) [Select]
$time = $_time_t + 5
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 70)
$time=0
MOVE($_return1, $_return2)
WAITMS(100)
LCLICK($_return1, $_return2)
WAITMS(500)
LCLICK(846, 435)
WAITMS(100)
ELSE
WAITMS(50)
END_IF
END_CYC
WAITMS(500)
DBLCLICK(100,100)