Автокликер Clickermann :: Форум
		Основной раздел => Общие вопросы => Topic started by: larin on December 15, 2016, 01:48:28 PM
		
			
			- 
				Здравствуйте. Вот простой скрипт. Нужно что бы он выполнился ровно 100 раз. 
 Я так понимаю, его можно просто 100 раз скопировать. Но это кажется не совсем правильным.
 Подскажите, пожалуйста, как сделать так, что бы скрипт выполнился 100 раз?
 
 
 //Программа поиска звездочки
 
 print("Программа поиска звездочки запущена")
 WAITMS(1000)
 
 GETSCREEN
 IF_PICTURE_IN(0, 0, $_xmax, $_ymax, "star.bmp", -1, 100)
 
 WAITMS(100)
 move($_RETURN1+20,$_RETURN2)
 WAITMS(100)
 LCLICK($_RETURN1+20,$_RETURN2)
 WAITMS(100)
 print("Найдена!!!")
 
 waitms(1000)
 
 ELSE
 print("Звездочка не найдена")
 
 // нужно выполнить этот скрипт 100 раз
 
 
- 
				Здравствуйте. Вот простой скрипт. Нужно что бы он выполнился ровно 100 раз. 
 Я так понимаю, его можно просто 100 раз скопировать. Но это кажется не совсем правильным.
 Подскажите, пожалуйста, как сделать так, что бы скрипт выполнился 100 раз?
 
 END_IF где?
 Может надо выполнить 100 раз если твоя звездочка найдена? Тогда так
 //Программа поиска звездочки
 
 print("Программа поиска звездочки запущена")
 WAITMS(1000)
 
 $count = 0
 WHILE($count < 100)
 GETSCREEN
 IF_PICTURE_IN(0,0, $_xmax,$_ymax, "star.bmp", -1, 100)
 INC($count,1) // увеличиваем число
 WAITMS(100)
 move($_RETURN1+20,$_RETURN2)
 WAITMS(100)
 LCLICK($_RETURN1+20,$_RETURN2)
 print("Найдена!!!")
 waitms(1000)
 ELSE
 waitms(50)
 print("Звездочка не найдена")
 END_IF
 END_CYC
 
 HALT // стоп
- 
				вариант
 
- 
				А можно ли изменить скрипт таким образом: сначала на экране 100 раз ищется star1.bmp, а потом 50 раз star2.bmp. 
 Могу ли я просто копировать этот цикл второй раз и изменить WHILE($count < 50).
 Не будет ли при этом ошибки? Простите за нубовопросы!
 
     //Программа поиска звездочки
 
 print("Программа поиска звездочки запущена")
 WAITMS(1000)
 
 $count = 0
 WHILE($count < 100)
 GETSCREEN
 IF_PICTURE_IN(0,0, $_xmax,$_ymax, "star1.bmp", -1, 100)
 INC($count,1) // увеличиваем число
 WAITMS(100)
 move($_RETURN1+20,$_RETURN2)
 WAITMS(100)
 LCLICK($_RETURN1+20,$_RETURN2)
 print("Найдена!!!")
 waitms(1000)
 ELSE
 waitms(50)
 print("Звездочка не найдена")
 END_IF
 END_CYC
 
 // тут начинается поиск второй звездочки, которая никак не зависит от первой, но я хочу что бы цикл повторялся только 50 раз
 
 $count = 0
 WHILE($count < 50)
 GETSCREEN
 IF_PICTURE_IN(0,0, $_xmax,$_ymax, "star2.bmp", -1, 100)
 INC($count,1) // увеличиваем число
 WAITMS(100)
 move($_RETURN1+20,$_RETURN2)
 WAITMS(100)
 LCLICK($_RETURN1+20,$_RETURN2)
 print("Найдена!!!")
 waitms(1000)
 ELSE
 waitms(50)
 print("Звездочка не найдена")
 END_IF
 END_CYC
 
 HALT // стоп
- 
				Могу ли я просто копировать этот цикл второй раз и изменить WHILE($count < 50).
 
 
 Можешь.
- 
				Так как код одинаковый можно его засунуть в подпрограмму с передачей параметра имени картинки.
 Просто для оптимизации
 
 SUB(search, $pic)
 GETSCREEN
 IF_PICTURE_IN(0,0, $_xmax,$_ymax, $pic, -1, 100)
 INC($count,1) // увеличиваем число
 WAITMS(100)
 move($_RETURN1+20,$_RETURN2)
 WAITMS(100)
 LCLICK($_RETURN1+20,$_RETURN2)
 print("Найдена!!!")
 waitms(1000)
 ELSE
 waitms(50)
 END_IF
 END_SUB
 
 
 //Программа поиска звездочки
 
 print("Программа поиска звездочки запущена")
 WAITMS(1000)
 
 $count = 0
 WHILE($count < 100)
 search("star1.bmp")
 END_CYC
 
 $count = 0
 WHILE($count < 50)
 search("star2.bmp")
 END_CYC
 
 HALT // стоп
- 
				А можно еще вопрос - скрипт работает, находит звездочку 100 раз. А как реализовать условие, что цикл должен заканчиваться: либо после 100 раз нахождения звездочки, либо после 1 минуты работы?
 Как сделать вот это условие ЛИБО?
 //Программа поиска звездочки
 // Программа должна закончится либо после 100 раз нахождения звездочки, либо после 1 минуты работы, в зависимости от того, что наступит раньше
 print("Программа поиска звездочки запущена")
 WAITMS(1000)
 
 $count = 0
 WHILE($count < 100)
 GETSCREEN
 IF_PICTURE_IN(0,0, $_xmax,$_ymax, "star.bmp", -1, 100)
 INC($count,1) // увеличиваем число
 WAITMS(100)
 move($_RETURN1+20,$_RETURN2)
 WAITMS(100)
 LCLICK($_RETURN1+20,$_RETURN2)
 print("Найдена!!!")
 waitms(1000)
 ELSE
 waitms(50)
 print("Звездочка не найдена")
 END_IF
 END_CYC
 
 HALT // стоп
 
- 
				//Программа поиска звездочки
 
 print("Программа поиска звездочки запущена")
 WAITMS(1000)
 
 $count = 0
 $time = $_time_t + 60 // таймер на 60 секунд
 WHILE(($count < 100)&($time > $_time_t))
 GETSCREEN
 IF_PICTURE_IN(0,0, $_xmax,$_ymax, "star.bmp", -1, 100)
 INC($count,1) // увеличиваем число
 WAITMS(100)
 move($_RETURN1+20,$_RETURN2)
 WAITMS(100)
 LCLICK($_RETURN1+20,$_RETURN2)
 print("Найдена: ", $count, " раз")
 waitms(1000)
 ELSE
 waitms(50)
 END_IF
 END_CYC
 
 HALT // стоп
- 
				Доброго времени всем :)
 Вроде нашёл что-то подходящее в этой теме по своему вопросу, но не могу осилить один момент. В одном участке скрипта у меня сделана задержка в 9,3 секунды для того, чтобы кликер нажал на кнопку в заданной координате. Но эта кнопка может появиться как на первой секунде, так и на второй, и на третьей и т.д.. Подскажите, как сделать, чтобы кликер проверял нужную мне координату до появления кнопки, но не более 9 секунд, после чего продолжил бы дальше свою работу. А то выходит так, что скрипт у меня простаивает впустую 8 секунд, если кнопка появилась на первой секунде :) Вот участок скрипта:LCLICK(1054,207)  // 10853244
 WAITMS(50)
 LCLICK(11,283)  // 10853244
 WAITMS(50)
 LCLICK(1054,207)  // 10853244
 WAITMS(50)
 LCLICK(11,283)  // 10853244
 WAITMS(50)
 LCLICK(11,283)  // 10853244
 //-----
 waitms(500)
 LCLICK(47,396)
 waitms(100)
 LCLICK(527,247)
 //-----
 waitms(9300)
 lclick(458,44)
 wait(1)
 LCLICK(547,371)
 wait(2)
 LCLICK(460,512)
Как задавать проверки цветов в координатах, я знаю. Подскажите, правильнее будет делать мою задумку с помощью for.... Ожидание кнопки и если появилась, то переход далее..., но ждать не более 9 секунд ... end_cyc или то же самое, но с помощью WHILE  ... END_CYC?
- 
				$time = $_time_t + 10 // таймер на 10 секунд
 WHILE($time > $_time_t) // цикл выполняется не более 10 секунд
 GETSCREEN
 IF_PIXEL_IN(400,400, 450,450, 255)
 $time = 0  // обнуляем время, прерываем цикл
 ELSE
 WAITMS(50)
 END_IF
 END_CYC
 IF($time ! 0) // необязательное условие на случай если цвет не был найден
 // время истекло, цвет не найден
 END_IF
- 
				Благодарю за ответ :) Как раз то, чего ожидал :)