Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: 1337 on December 15, 2015, 04:47:22 PM
-
товарищи, доброго всем
помогите, пожалуйста, на языке кликермана написать то, что я описал в коде словами
понятно ли я написал?
заранее спасибо
[spoiler]getscreen
IF_PICTURE_IN (x, y, x2, y2, "1.bmp") // поиск картинки "1.bmp"
move($_return1+10, $_return2+10) // можно ли поставить рэндомное значение на сколько мышку переместить ? от 10 до 20 например
WAIT(delay) // можно ли поставить рэндомное значение ? от и до
LCLICK ($_return1+10, $_return2+10)
WAIT(delay)
getscreen
IF_PICTURE_IN (x, y, x2, y2, "2.bmp")
move($_return1+5, $_return2+5)
WAIT(delay)
LCLICK ($_return1+5, $_return2+5)
WAIT(delay)
getscreen
IF_PICTURE_IN (x, y, x2, y2, "3.bmp")
move($_return1-10, $_return2-10)
WAIT(delay)
LCLICK($_return1-10, $_return2-10)
WAIT(delay)
KEYDOWN(#CTRL)
KEYDOWN (87)
KEYUP (#CTRL)
KEYUP (#87)
WAIT(delay)
// Если все удачно, то повторяем заново, зациклить
//ЕСЛИ КАРТИНКУ "3.bmp" не нашло,
//то WAIT(delay)
//Повторить поиск "3.bmp"
getscreen
IF_PICTURE_IN (x, y, x2, y2, "3.bmp")
move($_return1-10, $_return2-10)
WAIT(delay)
LCLICK($_return1-10, $_return2-10)
WAIT(delay)
KEYDOWN(#CTRL)
KEYDOWN (87)
KEYUP (#CTRL)
KEYUP (#87)
WAIT(delay)
//6 раз повторить поиск картинки "3.bmp"
//если не нашло, то закрыть вкладку
KEYDOWN(#CTRL)
KEYDOWN (87)
KEYUP (#CTRL)
KEYUP (#87)
WAIT(delay)
// Если картинку "1.bmp" не нашло,
// то начать поиск картинки "1.1.bmp"
// Если картинку "1.1.bmp" нашло, то повторить то же самое, что и с "1.bmp"
// Если Картинку "1.1.bmp" не нашло, то перейти к поиску картинки "1.2.bmp"
// Итак 10 картинок перебрать,
// Если одну из картинок "1.X.bmp" нашло, то делаем с ней, что и с "1.bmp"
// Если все удачно, то повторяем заново, зациклить
// если не нашло, то
END_IF
HALT
[/spoiler]
-
// имена картинок от "1.0.bmp" до "1.10.bmp"
FOR($num=0,$num<11)
GETSCREEN
IF_PICTURE_IN (100,100, 800,800, STRCONCAT("1.", $num, ".bmp")) // поиск картинок "1.0.bmp" - "1.10.bmp"
move($_return1+RND(10,20), $_return2+RND(10,20))
WAITMS(RND(60,120)) // рандомное значение от 60 до 120 мс
LCLICK ($_return1+10, $_return2+10)
WAIT(1)
GETSCREEN
IF_PICTURE_IN (100,100, 800,800, "2.bmp")
move($_return1+5, $_return2+5)
WAITMS(RND(60,120))
LCLICK ($_return1+5, $_return2+5)
WAIT(1)
$time = $_time_t + 10 // таймер на 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (100,100, 800,800, "3.bmp") // ожидание картинки 3 не более 10 секунд
$time = 0
move($_return1-10, $_return2-10)
WAITMS(RND(60,120))
LCLICK($_return1-10, $_return2-10)
WAIT(1)
KEYDOWN(#CTRL)
KEYDOWN(#W)
WAITMS(50)
KEYUP(#W)
KEYUP(#CTRL)
WAIT(1)
ELSE
WAITMS(50)
END_IF
END_CYC
IF($time ! 0)
// время истекло, картинка не найдена
KEYDOWN(#CTRL)
KEYDOWN(#W)
WAITMS(50)
KEYUP(#W)
KEYUP(#CTRL)
WAIT(5)
END_IF
END_IF
$num=0
ELSE
WAITMS(100)
END_IF
END_CYC
HALT
-
Спасибо
[spoiler]WAIT(5)
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "1.bmp", -1, 100)
move($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
LCLICK ($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
END_IF
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "2.bmp", -1, 100)
move($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
LCLICK ($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
END_IF
WAIT(RND(2,5))
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "3.bmp", -1, 75)
move($_return1+RND(10,15), $_return2+RND(10,15))
WAIT(RND(2,5))
LDOWN($_return1+RND(10,15), $_return2+RND(10,15))
WAIT(RND(2,5))
LUP (100, 670)
END_IF
A:
$time = $_time_t + 50
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
$time = -1
move($_return1+RND(20,28), $_return2+RND(20,28))
WAIT(RND(1,4))
lclick($_return1+RND(20,28), $_return2+RND(20,28))
WAITMS(100)
ELSE
GOTO(B)
END_IF
END_CYC
GOTO(A)
B:
$time = $_time_t + 50
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (100,670, 1280,1024, "5.bmp", -1, 100)
$time = -1
lclick($_return1+RND(20,28), $_return2+RND(20,28))
WAIT(1)
ELSE
GOTO(D)
END_IF
END_CYC
GOTO(B)
D:
GetScreen
IF_PICTURE_IN (100, 650, 1280, 1024, "6.bmp", -1, 50)
move($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(2,8))
LCLICK($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(5,10))
KEYDOWN(#CTRL)
KEYDOWN (87)
KEYUP (#CTRL)
KEYUP (#87)
WAIT(RND(2,8))
END_IF
GetScreen
IF_PICTURE_IN (100, 650, 1280, 1024, "7.bmp", -1, 50)
move($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(2,8))
LCLICK($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(5,10))
KEYDOWN(#CTRL)
KEYDOWN (87)
KEYUP (#CTRL)
KEYUP (#87)
WAIT(RND(2,8))
END_IF
HALT
[/spoiler]
Может кто подсказать почему в данном скрипте GOTO не срабатывает?
После "3.bmp" сразу перескакивает на действия с "6.bmp"
-
Выпрыгивать из циклов не рекомендуется. не говоря уже о том что ты там своими гото лишаешь эти циклы всякого смысла. 4 и 5 пропускаются видимо потому что картинки не найдены.
Вот это что?
KEYDOWN(#CTRL)
KEYDOWN (87)
KEYUP (#CTRL)
KEYUP (#87)
Если ты думаешь что это Ctrl+W то нет.
Вот так правильно!
KEYDOWN(#CTRL)
KEYDOWN(#W)
WAITMS(50)
KEYUP(#W)
KEYUP(#CTRL)
Вот верный скрипт
WAIT(5)
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "1.bmp", -1, 100)
move($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
LCLICK ($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
END_IF
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "2.bmp", -1, 100)
move($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
LCLICK ($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
END_IF
WAIT(RND(2,5))
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "3.bmp", -1, 75)
move($_return1+RND(10,15), $_return2+RND(10,15))
WAIT(RND(2,5))
LDOWN($_return1+RND(10,15), $_return2+RND(10,15))
WAIT(RND(2,5))
LUP (100, 670)
END_IF
$check = 0
WHILE($check = 0) // цикл выполняется если картинка найдена
GETSCREEN
IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
move($_return1+RND(20,28), $_return2+RND(20,28))
WAIT(RND(1,4))
lclick($_return1+RND(20,28), $_return2+RND(20,28))
WAITMS(100)
ELSE
$check = 1 // и прекращает выполняться если не найдена
END_IF
END_CYC
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PICTURE_IN (100,670, 1280,1024, "5.bmp", -1, 100)
lclick($_return1+RND(20,28), $_return2+RND(20,28))
WAIT(1)
ELSE
$check = 1
END_IF
END_CYC
GetScreen
IF_PICTURE_IN (100, 650, 1280, 1024, "6.bmp", -1, 50)
move($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(2,8))
LCLICK($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(5,10))
KEYDOWN(#CTRL)
KEYDOWN(#W)
WAITMS(50)
KEYUP(#W)
KEYUP(#CTRL)
WAIT(RND(2,8))
END_IF
GetScreen
IF_PICTURE_IN (100, 650, 1280, 1024, "7.bmp", -1, 50)
move($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(2,8))
LCLICK($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(5,10))
KEYDOWN(#CTRL)
KEYDOWN(#W)
WAITMS(50)
KEYUP(#W)
KEYUP(#CTRL)
WAIT(RND(2,8))
END_IF
HALT
-
Oraven, спасибо.
[spoiler]$check = 0
WHILE($check = 0) // цикл выполняется если картинка найдена
GETSCREEN
IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
move($_return1+RND(20,28), $_return2+RND(20,28))
WAIT(RND(1,4))
lclick($_return1+RND(20,28), $_return2+RND(20,28))
WAITMS(100)
ELSE
$check = 1 // и прекращает выполняться если не найдена
END_IF
END_CYC[/spoiler]
К этому циклу возможно добавить ожидание картинку в течение нескольких минут, но если картинка появляется через 30 сек, чтобы сразу жал на нее?
или масло масленое с циклами выйдет?
-
$time = $_time_t + 60 // время на поиск 60 секунд
$check = 0
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
$check = 1
move($_return1+RND(20,28), $_return2+RND(20,28))
WAIT(RND(1,4))
lclick($_return1+RND(20,28), $_return2+RND(20,28))
WAITMS(100)
ELSE
IF($check = 1)
$check = 0
$time = $_time_t + 1
ELSE
WAITMS(50)
END_IF
END_IF
END_CYC
-
Oraven,
один раз находит картинку, выполняет действие, а потом цикл завершается. Почему то не хочет ее заново ожидать 60 секунд ( а она появляется раз в 20-50 секунд в том же месте )
Что нетак ?
-
Вот так проще
$time = $_time_t + 60 // время на поиск 60 секунд
$check = 0
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
move($_return1+RND(20,28), $_return2+RND(20,28))
WAIT(RND(1,4))
lclick($_return1+RND(20,28), $_return2+RND(20,28))
WAITMS(100)
$time = $_time_t + 60 // снова заводим таймер
ELSE
WAITMS(50)
END_IF
END_CYC