Автокликер 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