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

Основной раздел => Общие вопросы => Topic started by: Qlloudy on March 13, 2019, 04:33:13 PM

Title: Подскажите пожалуйста как организовать правильную последовательность?
Post by: Qlloudy on March 13, 2019, 04:33:13 PM
Нужно реализовать скрипт с последовательным исполнением множества действий.
Суть в том что при написании столкнулся с тем, что если использовать else дважды в двух блоках If подряд, второе else игнорируется, что приводит к неправильным последствиям.
Пример:
Code: (clickermann) [Select]
skip:01
WHEELDOWN
   WAITMS(500)
   WHEELDOWN
   WAITMS(500)
GETSCREEN
IF_PICTURE_IN (464,238,493,337, "1.bmp")
   WAITMS(500)
   LCLICK($_return1-22, $_return2-22)
   WAIT(3)
Else
   GOTO(01)
   WAIT(1)
END_IF
GETSCREEN
IF_PICTURE_IN (401,156,365,249, "2.bmp")
   WAITMS(500)
   LCLICK($_return1-22, $_return2-22)
   WAIT(3)
Else
   GOTO(01)
   WAIT(1)
END_IF
и таких повторений множество. То есть если первый блок с IF выполнен, должен работать следующий, нет возвращаться к началу, если второй выполнен, тоже идет следующий, если нет, то опять к началу, и так множество раз, все блоки разные с разными условиями...
Сильно не смейтесь я нуб в этом деле, буду признателен помощи =)
Title: Re: Подскажите пожалуйста как организовать правильную последовательность?
Post by: Космич on March 13, 2019, 05:10:43 PM
Code: (clickermann) [Select]
skip01:

WHEELDOWN
WAITMS(500)
WHEELDOWN
WAITMS(500)

GETSCREEN
IF_PICTURE_IN (464,238,493,337, "1.bmp")
   WAITMS(500)
   LCLICK($_return1-22, $_return2-22)
   WAIT(3)
ELSE
   WAIT(1)
   GOTO(skip01)
END_IF

GETSCREEN
IF_PICTURE_IN (401,156,365,249, "2.bmp")
   WAITMS(500)
   LCLICK($_return1-22, $_return2-22)
   WAIT(3)
ELSE
   WAIT(1)
   GOTO(skip01)
END_IF

Title: Re: Подскажите пожалуйста как организовать правильную последовательность?
Post by: Qlloudy on March 13, 2019, 05:26:48 PM
Спасибо попробую сейчас. :D
Title: Re: Подскажите пожалуйста как организовать правильную последовательность?
Post by: Космич on March 13, 2019, 05:39:44 PM
А подпрограмма это разве не кусок кода, который вставляется на месте вызова? Если это так, то вообще любой переход меткам из условий может дать сбой

Title: Re: Подскажите пожалуйста как организовать правильную последовательность?
Post by: Космич on March 13, 2019, 06:10:00 PM
Я чёт об этом не подумал . Память действительно уходит даже если нет параметров вызова в самом скрипте
Title: Re: Подскажите пожалуйста как организовать правильную последовательность?
Post by: Qlloudy on March 14, 2019, 01:54:35 AM
Всем спасибо за участие, написал простенький скрипт для сбора телефонов с рубрики авито, работает исправно, если кому надо объясню ;)
вот часть кода самой сборки =)
Code: (clickermann) [Select]
SUB(_SKIP, $num)
   SWITCH($num)
   CASE(01)
      GOTO(skip01)
   CASE(02)
      GOTO(skip02)
   CASE(03)
      GOTO(skip03)
   END_SWITCH   
END_SUB   

$a=0
   while($a=0)
      GETSCREEN
IF_PICTURE_IN (174,557,377,595, "2.bmp")
      waitms(500)
         $a=1
         lclick(250,572)
      else
      _SKIP(01)
      END_IF
      END_CYC
 
skip01:
 
WHEELDOWN
WAITMS(500)
 
GETSCREEN
IF_PICTURE_IN (464,238,493,337, "1.bmp")
   WAITMS(500)
   LCLICK($_return1-22, $_return2-22)
   WAIT(3)
ELSE
WAITMS(50) 
   _SKIP(01)
END_IF
 
GETSCREEN
IF_PICTURE_IN (44,759,498,796, "3.bmp")
   WAITMS(500)
   LCLICK($_return1-2, $_return2-2)
   WAIT(3)
ELSE
LCLICK(56,63)
WAITMS(50)
   _SKIP(01)
END_IF

   LCLICK(260,431)
   WAITMS(500)
   LDOWN(142,460)
   WAITMS(500)
   LUP(245,458)
   WAITMS(500)
   KEYDOWN(#CTRL)
   WAITMS(500)
   KEYDOWN(#c)
   WAITMS(500)
   KEYUP(#CTRL)
   WAITMS(500)
   KEYUP(#c)
   WAITMS(500)
   LCLICK(784,919)
   WAITMS(500)
   KEYDOWN(#CTRL)
   WAITMS(500)
   KEYDOWN(#v)
   WAITMS(500)
   KEYUP(#CTRL)
   WAITMS(500)
   KEYUP(#v)
   WAITMS(500)
   KEYPRESS(#ENTER)
   WAITMS(500)
   LCLICK(55,59)
   WAITMS(2000)
   WAITMS(500)
   LCLICK(503,234)
   WAITMS(500)
   WHEELDOWN
   WAITMS(500)
   WHEELDOWN
   WAITMS(500)
   WAIT(3)
   

Title: Re: Подскажите пожалуйста как организовать правильную последовательность?
Post by: Космич on March 14, 2019, 04:18:51 AM
Мы вроде бы уже выяснили, что из саба прыгать по меткам нельзя, будет утечка памяти и бог его знает что еще...

Где то я уже это видел :D
Code: (clickermann) [Select]
$a=0
while($a=0) // Зацикливаем поиск картинки
   GETSCREEN
   IF_PICTURE_IN (174,557,377,595, "2.bmp")
      waitms(500)
      $a=1 // Выходим из цикла если нашли картинку
      lclick(250,572)
   else
      _SKIP(01) // Если не нашли всё равно выходим. Для чего здесь цикл?)
   END_IF
END_CYC

skip01:

Вот тоже самое только без цикла и перехода по метке
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (174,557,377,595, "2.bmp", - 1, 100)
   WAITMS(500)
   LCLICK(250,572)
   WHEELDOWN
   WAITMS(500)
END_IF

WHEELDOWN
WAITMS(500)

GETSCREEN
IF_PICTURE_IN(464,238,493,337, "2.bmp", - 1, 100)
   WAITMS(500)
   LCLICK($_return1-22, $_return2-22)
   WAIT(3)
   GETSCREEN
   IF_PICTURE_IN(464,238,493,337, "3.bmp", - 1, 100)
      WAITMS(500)
      LCLICK($_return1-2, $_return2-2)
      WAIT(3)
      LCLICK(260,431)
      WAITMS(500)
      LDOWN(142,460)
      WAITMS(500)
      LUP(245,458)
      WAITMS(500)
      KEYDOWN(#CTRL)
      WAITMS(500)
      KEYDOWN(#c)
      WAITMS(500)
      KEYUP(#CTRL)
      WAITMS(500)
      KEYUP(#c)
      WAITMS(500)
      LCLICK(784,919)
      WAITMS(500)
      KEYDOWN(#CTRL)
      WAITMS(500)
      KEYDOWN(#v)
      WAITMS(500)
      KEYUP(#CTRL)
      WAITMS(500)
      KEYUP(#v)
      WAITMS(500)
      KEYPRESS(#ENTER)
      WAITMS(500)
      LCLICK(55,59)
      WAITMS(2000)
      WAITMS(500)
      LCLICK(503,234)
      WAITMS(500)
      WHEELDOWN
      WAITMS(500)
      WHEELDOWN
      WAITMS(500)
      WAIT(3)
   ELSE
      LCLICK(56,63)
   END_IF
END_IF

WAITMS(50)