Автокликер 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
-
Благодарю за ответ :) Как раз то, чего ожидал :)