Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Qlloudy on March 13, 2019, 04:33:13 PM
-
Нужно реализовать скрипт с последовательным исполнением множества действий.
Суть в том что при написании столкнулся с тем, что если использовать else дважды в двух блоках If подряд, второе else игнорируется, что приводит к неправильным последствиям.
Пример:
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 выполнен, должен работать следующий, нет возвращаться к началу, если второй выполнен, тоже идет следующий, если нет, то опять к началу, и так множество раз, все блоки разные с разными условиями...
Сильно не смейтесь я нуб в этом деле, буду признателен помощи =)
-
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
-
Спасибо попробую сейчас. :D
-
А подпрограмма это разве не кусок кода, который вставляется на месте вызова? Если это так, то вообще любой переход меткам из условий может дать сбой
-
Я чёт об этом не подумал . Память действительно уходит даже если нет параметров вызова в самом скрипте
-
Всем спасибо за участие, написал простенький скрипт для сбора телефонов с рубрики авито, работает исправно, если кому надо объясню ;)
вот часть кода самой сборки =)
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)
-
Мы вроде бы уже выяснили, что из саба прыгать по меткам нельзя, будет утечка памяти и бог его знает что еще...
Где то я уже это видел :D
$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:
Вот тоже самое только без цикла и перехода по метке
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)