Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: PerfectO on March 05, 2023, 05:06:21 PM

Title: Пауза основного действия для выполнения другого действия каждые N минут
Post by: PerfectO on March 05, 2023, 05:06:21 PM
Здравствуйте. правильно ли я написал скрипт? задача: цикличное выполнения основного действия, но раз в 1 минуту выполнять другое действия пока основное на паузе. после выполнения другого действия, продолжается цикличное выполнения основного действия. я правильно понимаю, что отсчет 1 минуты для запуска другого действия идет после запуска скрипта в кликере?

Code: (clickermann) [Select]
go: // далее произойдет зацикливание до метки GO
// ДЕЙСТВИЕ РАЗ В 1 МИНУТУ
IF($time1 < $_time_t)
$time1 = $_time_t + 60
 
KEYPRESS(#B) //
WAIT(12)
KEYPRESS(#F2)
WAIT(1.55)
// Тут будет макрос выбора
WAIT(20)
END_IF // конец первого условия
 
KEYPRESS(#1) // вне условий можно написать действия которые должны выполняться постоянно
KEYPRESS(#TAB)
KEYPRESS(#3)
WAIT(0.3)
KEYPRESS(#TAB)
KEYPRESS(#3)
WAIT(0.3)
KEYPRESS(#TAB)
KEYPRESS(#3)
WAIT(0.3)
WAIT(0.35)
KEYPRESS(#1)
WAIT(1.25)
KEYPRESS(#C)
WAIT(1.25)
KEYPRESS(#1)
WAIT(1.25)
KEYPRESS(#F)
 
WAITMS (500) // задержка скрипта 500 мс для разгрузки процессора
goto(go) // переход к метке GO

UPDATE: проверил на практике. вроде, все работает. единственный момент, который хотелось бы улучишь, это тот факт, что сейчас "ДЕЙСТВИЕ РАЗ В 1 МИНУТУ" стартует сразу после запуска скрипта. как прописать, чтобы сначала запускалось основное действия, а уже через 1 минуту и с дальнейшим условием "РАЗ В 1 МИНУТУ" запускалось это периодическое действие?
Title: Re: Пауза основного действия для выполнения другого действия каждые N минут
Post by: Vint on March 06, 2023, 10:35:20 AM
UPDATE: проверил на практике. вроде, все работает. единственный момент, который хотелось бы улучишь, это тот факт, что сейчас "ДЕЙСТВИЕ РАЗ В 1 МИНУТУ" стартует сразу после запуска скрипта. как прописать, чтобы сначала запускалось основное действия, а уже через 1 минуту и с дальнейшим условием "РАЗ В 1 МИНУТУ" запускалось это периодическое действие?

Добавь перед меткой начальное задание времени
Code: (clickermann) [Select]
$time1 = $_time_t + 60
"Раз в минуту" в этом коде очень условно, приблизительно от 60 до +66.8 сек.
Title: Re: Пауза основного действия для выполнения другого действия каждые N минут
Post by: PerfectO on March 07, 2023, 01:03:11 AM
Добавь перед меткой начальное задание времени
Code: (clickermann) [Select]
$time1 = $_time_t + 60
Подскажи, пожалуйста, как это правильно сделать. мой вариант ниже не запускает сразу основное действие, а просто делает паузу в 10 секунд, потом запускается "ДЕЙСТВИЕ РАЗ В 1 МИНУТУ" и только потом основное действие.
Code: (Clickermann) [Select]
go: // далее произойдет зацикливание до метки GO
// ДЕЙСТВИЕ РАЗ В 1 МИНУТУ
IF($time1 < $_time_t)
WAIT(10)
$time1 = $_time_t + 60

"Раз в минуту" в этом коде очень условно, приблизительно от 60 до +66.8 сек.
это не критично, такой диапазон подходит.
Title: Re: Пауза основного действия для выполнения другого действия каждые N минут
Post by: Vint on March 07, 2023, 12:52:36 PM
Подскажи, пожалуйста, как это правильно сделать.
Просто добавить первой строкой указанную строку и нажать "применить".

мой вариант ниже не запускает сразу основное действие, а просто делает паузу в 10 секунд, потом запускается "ДЕЙСТВИЕ РАЗ В 1 МИНУТУ" и только потом основное действие.
По указанному обрывку ничего нельзя сказать.
Title: Re: Пауза основного действия для выполнения другого действия каждые N минут
Post by: PerfectO on April 15, 2023, 02:39:41 PM
Просто добавить первой строкой указанную строку и нажать "применить".
Спасибо, работает.

Чтобы не плодить темы, спрошу тут. есть макрос, который работает с привязкой Clickermann к окну игры:

Code: (clickermann) [Select]
KEYPRESS(#1) //Удар мечом
WAIT(0.5)
KEYDOWN(#UP) // 1. поворот персонажа налево на 45 градусов за 0.5 сек
WAIT(0.5)
KEYUP(#UP)
WAIT(0.5)
KEYDOWN(#DOWN) // 2. поворот персонажа направо на 90 градусов за 1 сек
WAIT(1)
KEYUP(#DOWN)
WAIT(1)
KEYDOWN(#UP) // 3. поворот персонажа налево на 45 градусов за 0.5 сек, чтобы оказаться в изначальной точке до всех поворотов
WAIT(0.5)
KEYUP(#UP)
WAIT(0.5)
В игре с камерой от 3 лица делаю поворот персонажа методом зажатия кнопок UP (поворот влево) и DOWN (поворот вправо), что приблизительно 0.5 сек = 45 градусов, 1 сек = 90 градусов. но из-за лагов игры/интернета/ПК на дистанции по времени это не всегда 45 и 90 градусов, а иногда меньше/больше. можно ли в режиме привязки к окну настроить, чтобы персонажа периодически корректировал свое положение и становился/смотрел строго в изначальную точку до всех поворотов, например, при появлении определенного цвета пикселя окна игры на нужной вертикали? постарался объяснить задачу на скриншоте из игры. надеюсь, будет понятно.

(https://i.imgur.com/A1XE9O6.jpg)

на форуме есть тег "спойлер"? как "спрятать" картинку?
Title: Re:с привязкой Clickermann
Post by: kiril on April 15, 2023, 07:32:31 PM
для начала откажитесь от попыток использовать привязку, а потом сможете попытаться реализовать собственные хотелки.
Title: Re: Пауза основного действия для выполнения другого действия каждые N минут
Post by: PerfectO on April 15, 2023, 07:37:24 PM
привязка - это обязательное требование. если нельзя реализовать эту задачу с ней, то вопрос отпадает. придется периодически руками поправлять направление изначальной точки персонажа, что создает большие неудобства.
Title: Re: Пауза основного действия для выполнения другого действия каждые N минут
Post by: ya12 on April 16, 2023, 02:53:44 PM
Имею сомнения, что пиксель такого цвета будет один, но допустим это так.
(Хо, Yо) разрешение окна в пикселях. Координаты точки (половина от Xo , Yt). Высоту Yt замеришь сам. 
Делаешь снимок экрана и анализируешь каждую точку от 0 до Xo на высоте Yt.
Если ничего нет, значит нужно повернуться на 180 градусов.
Если нашлось и координата по X больше половины от Xo повернешь вправо, иначе влево.