Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: doushy on March 19, 2018, 10:44:21 PM
-
Подскажите, как сделать так, чтобы первое действие выполнялось всегда, а второе, которое "//", каждые 20 минут...или в идеале, чтобы когда второе выполнялось, первое временно переставала работать.
GETSCREEN
IF_PIXEL_IN(1072,247, 1543,284, 2410228)
LCLICK($_return1, $_return2)
WAITMS(1000)
LCLICK(1307, 535)
WAITMS(40000)
LCLICK(1512,65)
WAITMS(1000)
LCLICK(1312,584)
WAITMS(1000)
LCLICK(1331,341)
END_IF
/ //
LCLICK(1111,111)
WAITMS(1000)
LCLICK(345,111)
WAITMS(1000)
LCLICK(561,111)
WAITMS(120000)
///
-
GETSCREEN
IF_PIXEL_IN(1072,247, 1543,284, 2410228)
LCLICK($_return1, $_return2)
WAIT(1)
LCLICK(1307, 535)
WAIT(40)
LCLICK(1512,65)
WAIT(1)
LCLICK(1312,584)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
ELSE
WAITMS(100)
END_IF
DEFINE($time, $_time_t + 1200)
IF($time < $_time_t) // условие сработает через 20 мин после запуска, и будет срабатывать каждые 20 мин
LCLICK(1111,111)
WAIT(1)
LCLICK(345,111)
WAIT(1)
LCLICK(561,111)
WAIT(1)
$time = $_time_t + 1200
END_IF
-
С погрешностью до ~ +44 сек.
Ну это так, чтоб в курсе был.
-
Можно конечно в поток запихнуть, тогда 40 сек не помеха
THREAD(t1, 0)
GETSCREEN
IF_PIXEL_IN(1072,247, 1543,284, 2410228)
LCLICK($_return1, $_return2)
WAIT(1)
LCLICK(1307, 535)
WAIT(40)
LCLICK(1512,65)
WAIT(1)
LCLICK(1312,584)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
ELSE
WAITMS(100)
END_IF
END_THREAD
SETTHREAD (t1, 0)
WAITMS(50)
LCLICK(1111,111)
WAIT(1)
LCLICK(345,111)
WAIT(1)
LCLICK(561,111)
WAIT(1)
SETTHREAD (t1, 1)
WAIT(1200)
-
Oraven, спасибо большое, а ещё один вопрос, можно ли сделать так, чтобы в лого выводило координаты(это понятно как), и цвет, по которому он нашёл совпадение(Это при условии, что там много цветов в коде)
И ещё, как сделать, что бы не с 20 минуты начиналось второе условие, а с запуска и соответственно каждые 20 минут.
-
THREAD(t1, 0)
GETSCREEN
IF_PIXEL_IN(1072,247, 1543,284, 2410228)
LOGWRITE ("Координата ", $_return1, "," $_return2, " Цвет = ", PXL($_return1,$_return2))
LCLICK($_return1, $_return2)
WAIT(1)
LCLICK(1307, 535)
WAIT(40)
LCLICK(1512,65)
WAIT(1)
LCLICK(1312,584)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
ELSE
WAITMS(100)
END_IF
END_THREAD
SETTHREAD (t1, 0)
WAITMS(50)
LCLICK(1111,111)
WAIT(1)
LCLICK(345,111)
WAIT(1)
LCLICK(561,111)
WAIT(1)
SETTHREAD (t1, 1)
WAIT(1200)
-
Спасибо, Oraven.
Но вот с потоками что то не получается...не работает первая часть, только вторая(
Ещё такой не стандартный вопрос. возможно ли сделать так, чтобы второе условие когда выполнялось, первое не работала, но и сделать так, чтобы втрое условие врубалось после 20 минут, но обязательно по завершению первого. потому что сейчас бывают случаи, когда второе, спустя 20 минут включается, а в это время первый кусок ещё не выполнил своё действие...
-
Без потоков все выполняется последовательно сверху вниз.
GETSCREEN
IF_PIXEL_IN(1072,247, 1543,284, 2410228)
LCLICK($_return1, $_return2)
LOGWRITE ("Координата ", $_return1, "," $_return2, " Цвет = ", PXL($_return1,$_return2))
WAIT(1)
LCLICK(1307, 535)
WAIT(40)
LCLICK(1512,65)
WAIT(1)
LCLICK(1312,584)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
ELSE
WAITMS(100)
END_IF
IF($time < $_time_t)
LCLICK(1111,111)
WAIT(1)
LCLICK(345,111)
WAIT(1)
LCLICK(561,111)
WAIT(1)
$time = $_time_t + 1200
END_IF
-
- Вопросик, как можно сделать, что бы сам кликер спустя время(например час), выключался и включался(ну типо запускался по новой)
- Как сделать так, чтобы LOGWRITE выполнялся после второго pixel, но писал данные первого поиска(так как второй pixel это просто проверка, а данные нужны с первого)
- И ещё, как сделать if в if (например: чтобы кусок где "IF($time < $_time_t)" , перед этим проверился (IF_PIXEL_IN или IF_PICTURE_IN).
- Как сделать, go-goto(go), если оно уже используется ?!как то go переименовать или как ?
П.с. Извините что так много вопросов. Просто очень интересно стало в этой области...
GETSCREEN
go:
IF_PIXEL_IN(1077,243, 1543,280, 5816544, 2410228, 3920632, 5431289, 2996716, 48618 )
WAITMS(1)
LCLICK($_return1, $_return2)
WAITMS(300)
//
IF_PIXEL_IN(1240,490, 1384,562, 16760320)
LCLICK($_return1, $_return2)
LOGWRITE ("Координаты:", $_return1, "," $_return2, " Цвет = ", PXL($_return1,$_return2))
WAIT(1)
LCLICK(1307, 535)
WAIT(40)
LCLICK(1512,65)
WAIT(2)
LCLICK(1312,584)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
ELSE
goto(go)
WAITMS(50)
END_IF
END_IF
WAITMS(100)
IF($time < $_time_t)
LCLICK(1319,989)
WAIT(1)
LCLICK(1395,987)
WAIT(1)
LCLICK(1488,458)
WAIT(40)
LCLICK(1520,59)
WAIT(1)
LCLICK(1332,327)
WAIT(1)
LCLICK(1395,987)
WAIT(1)
$time = $_time_t + 1200
END_IF
-
- Вопросик, как можно сделать, что бы сам кликер спустя время(например час), выключался и включался(ну типо запускался по новой)
- Как сделать так, чтобы LOGWRITE выполнялся после второго pixel, но писал данные первого поиска(так как второй pixel это просто проверка, а данные нужны с первого)
- И ещё, как сделать if в if (например: чтобы кусок где "IF($time < $_time_t)" , перед этим проверился (IF_PIXEL_IN или IF_PICTURE_IN).
- Как сделать, go-goto(go), если оно уже используется ?!как то go переименовать или как ?
П.с. Извините что так много вопросов. Просто очень интересно стало в этой области...
Зачем там вкорячено GOTO? Тем более неправильно. Перезапуск здесь нужен как пятое колесо.
Не нужно ставить паузы сразу после поиска, зачем они там? Паузы нужны после действий и при ожидании изменений на экране.
2. Ну так и запоминай их после первого поиска, см. код.
3. :o Просто вставь блок внутрь другого блока. Непонятно в чём проблема.
4. здесь go - любая текстовая метка.
Ммм... судя по всему ты справку в глаза не видел. Если интересно стало, то чего же бредёшь на ощупь? Только не говори что она не открывается.
GETSCREEN
IF_PIXEL_IN(1077,243, 1543,280, 5816544,2410228,3920632,5431289,2996716,48618)
$x1 = $_return1
$y1 = $_return2
$c1 = PXL($x1, $y1)
LCLICK($x1, $y1)
WAITMS(300)
IF_PIXEL_IN(1240,490, 1384,562, 16760320)
LCLICK($_return1, $_return2)
LOGWRITE("Координаты:", $x1, "," $y1, " Цвет = ", $c1)
WAIT(1)
LCLICK(1307, 535)
WAIT(40)
LCLICK(1512,65)
WAIT(2)
LCLICK(1312,584)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
ELSE
WAITMS(50)
END_IF
END_IF
IF($time < $_time_t)
LCLICK(1319,989)
WAIT(1)
LCLICK(1395,987)
WAIT(1)
LCLICK(1488,458)
WAIT(40)
LCLICK(1520,59)
WAIT(1)
LCLICK(1332,327)
WAIT(1)
LCLICK(1395,987)
WAIT(1)
$time = $_time_t + 1200
END_IF
-
А как сделать цикл, чтобы он повторялся в течении 60 секунд к примеру ?
Vint, Спасибо. Не поверишь, но справка у меня не работает. написано файла не найдено. так что прошу у вас совета...извините за тупые вопросы. Спасибо
где ошибка ?Да, знаю, бред написан, тем более не дописан, но я запутался:( и да, я знаю что цвета можно запихнуть в одну кучу, но мне нужно именно так для понимания Подправьте пожалуйста...(хочу что бы он в течение 60 секунд проверял то или иное место, и если не находил ничего, то заново искал, а по истечению 60 сек нажимал в выбранное место...
$time = $_time_t + 60
WHILE($time > $_time_t) // öèêë äëèòñÿ 60 ñåê
GETSCREEN
IF_PIXEL_IN(1491,58,1532,100, 3092272)
LCLICK($_return1, $_return2)
$time = 0
WAIT(1)
else
IF_PIXEL_IN(1470,56,1541,110, 6513764)
LCLICK($_return1, $_return2)
$time = 0
WAIT(1)
else
WAITMS(50)
END_IF
END_IF
END_CYC
HALT
-
Vint, Спасибо. Не поверишь, но справка у меня не работает. написано файла не найдено. так что прошу у вас совета...
Я же говорил "не говори" :) :D
Скачай нормальный дистрибутив и проверь чтобы все файлы распаковались нормально.
Если файл на месте, но проблема с отображением, то сделать это:
Раздел "Ошибки", прибитая сверху тема СПРАВКА НЕ ОТКРЫВАЕТСЯ (решение проблемы) (http://crapware.aidf.org/forum/index.php?topic=1031.0)
-
Да, я уже разобрался с этим вопросом, спасибо.
Что по поводу проги ?подскажиье пожалуйста
-
Непонятно описание.
Нужно в течении 60 секунд искать 2 цвета, раздельно. По истечении 60 сек кликать в найденный (видать последним). Так?
Даже если нашли сразу, всё равно ждём все 60 сек? Зачем?
И что делать, если в течении 60 сек не нашли? Об этом никаких упоминаний.
-
Подскажите, почему условие зациклилось на последнем(где время), оно же должно каждые 20 минут
GETSCREEN
IF_PIXEL_IN(1077,243, 1543,280, 48618) //Это поиск сундука. Первые 2 числа, это x1y1, вторые - x2y2. Рисует прямоугольник и там ищет цвета(которые идут дальше))
$x1 = $_return1
$y1 = $_return2
$c1 = PXL($x1, $y1)
LCLICK($x1, $y1)
WAITMS(300)
IF_PIXEL_IN(1240,490, 1384,562, 16760320) //это проверка, когда выскакивает окошко вы хотите посмотреть видео. и цвет поиска прям в серединке типо.
LCLICK($_return1, $_return2)
LOGWRITE("Координаты:", $x1, "," $y1, " Цвет = ", $c1)
WAIT(1)
LCLICK(1307, 535) //хз куда наживает, но по логике туда, где до этого нажимает пред. строчка)
WAIT(40)
LCLICK(1531,68)
//жмёт на крестик. закрывает рекламу.
WAIT(2)
LCLICK(1312,584) //собирает награду.
WAIT(1)
LCLICK(1331,341)
WAIT(1)
LCLICK(1331,341) //жмёт в поле, что бы убрать окно, если выскачит, но это наверное не важно, это предыдущие ошибки.
WAIT(1)
ELSE
WAITMS(50)
END_IF
END_IF
DEFINE($time, $_time_t + 1200)
IF($time < $_time_t)
WAIT(5)
LCLICK(1261,988) // 10914
WAIT(1)
LCLICK(1399,990) // 410316
WAITms(300)
LCLICK(1485,466) // 3492740
WAIT(40)
LCLICK(1531,68)
WAIT(2)
LCLICK(1312,584)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
$time = $_time_t + 1200 /
END_IF
//LCLICK(1073,11) // 2104092
-
Не мусори в коде!
Оставленная косая черта
$time = $_time_t + 1200 /
привела к вот такому результату
Значение переменной $time
16:32:44 1522168364+1200/
Условия стоит писать таким образом
GETSCREEN
IF_PIXEL_IN(1077,243, 1543,280, 48618) //Это поиск сундука. Первые 2 числа, это x1y1, вторые - x2y2. Рисует прямоугольник и там ищет цвета(которые идут дальше))
$x1 = $_return1
$y1 = $_return2
$c1 = PXL($x1, $y1)
LCLICK($x1, $y1)
WAITMS(300)
IF_PIXEL_IN(1240,490, 1384,562, 16760320) //это проверка, когда выскакивает окошко вы хотите посмотреть видео. и цвет поиска прям в серединке типо.
LCLICK($_return1, $_return2)
LOGWRITE("Координаты:", $x1, "," $y1, " Цвет = ", $c1)
WAIT(1)
LCLICK(1307, 535) //хз куда наживает, но по логике туда, где до этого нажимает пред. строчка)
WAIT(40)
LCLICK(1531,68)
//жмёт на крестик. закрывает рекламу.
WAIT(2)
LCLICK(1312,584) //собирает награду.
WAIT(1)
LCLICK(1331,341)
WAIT(1)
LCLICK(1331,341) //жмёт в поле, что бы убрать окно, если выскачит, но это наверное не важно, это предыдущие ошибки.
WAIT(1)
END_IF
ELSE
WAITMS(50)
END_IF
DEFINE($time, $_time_t + 1200)
IF($time < $_time_t)
WAIT(5)
LCLICK(1261,988) // 10914
WAIT(1)
LCLICK(1399,990) // 410316
WAITms(300)
LCLICK(1485,466) // 3492740
WAIT(40)
LCLICK(1531,68)
WAIT(2)
LCLICK(1312,584)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
LCLICK(1331,341)
WAIT(1)
$time = $_time_t + 1200
END_IF
//LCLICK(1073,11) // 2104092
-
Oraven, спасибо
а ещё, это так делается, что два временных условия выполнялись не зависимо друг от друга ?!
или по другому ?!...по мочему то есть задержка, то есть нет такого что первое, первое второе, первое, первое второе...оно как то странно это делает....
IF($time_1 < $_time_t)
LCLICK(413,757)
$time_1 = $_time_t + 5
END_IF
IF($time_2 < $_time_t)
LCLICK(417,838)
$time_2 = $_time_t + 10
END_IF
-
по мочему то есть задержка, то есть нет такого что первое, первое второе, первое, первое второе...оно как то странно это делает....
Ничего странного, выполняется ровно то, что написано.
Если другого кода нет, то можно писать прямо
[spoiler]LCLICK(413,757) // первое
WAIT(5)
LCLICK(413,757) // первое
LCLICK(417,838) // второе
WAIT(5)
[/spoiler]
А почему сейчас не первое, первое второе... На самом деле точность у тебя до секунды, это низкая точность для коротких интервалов. Переменная $_time_t дискретная, меняет значение раз в секунду. Нужно переходить на миллисекунды $_ms.
Вот возьмём такой простой короткий код:
IF($time_1 < $_time_t)
LCLICK(413,757)
$time_1 = $_time_t + 5
END_IF
Через сколько времени от первого произойдёт второй клик? Через 5 секунд (5000 ms)? Неа. А через сколько?
На самом деле в таком написании примерно... от 5000 до 5999 ms. Когда прибавлял 5 к $_time_t, $_time_t могла стать такой какая она есть и 0 ms назад и 999. Соответственно и следующее переключение будет или через 1000 или через 1 ms.
Так же, само выполнение кода требует времени, это нужно учитывать. К примеру, у LCLICK добавлена задержка по умолчанию в 30 мс (в настройках программы можно убрать). И остальной код не мгновенный. Даже при переходе на $_ms реальный интервал временами будет увеличиваться на эту величину, ведь условий то два. Но это будет очень редко и всего на ~30-40 ms. Обычно это не критично для большинства задач.
DEFINE($time_2, $_ms + 4000)
IF($time_1 < $_ms)
LOGWRITE("Клик 1")
WAITMS(30)
$time_1 = $_ms + 2000
END_IF
IF($time_2 < $_ms)
LOGWRITE("Клик 2")
WAITMS(30)
$time_2 = $_ms + 4000
END_IF
WAITMS(5) // если есть ещё код с задержками, то эта строка не обязательна.
Если прям кровь из носу всегда нужен точный порядок 1-1-2, то нужно писать по другому.