Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (10): В начало « 2 3 4 5 6 7 [8] 9 10 »   

> Описание: Добавление функции таймера (код выполняемый по времени)
lavpochta
Отправлено: 14 Марта, 2021 - 21:11:55
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 27
Дата рег-ции: Нояб. 2019  
Репутация: 0




Здравствуйте опять!
Опытным путем выяснил, что таймер перестаeт работать, если его вызов по счетчику таймера совпадет с вызовом функций key, keydown, keyup. Что в общем-то мешает автономной работе бота. Я пока вижу один выход - прерывать работу таймера и запускать вновь, но появляется тонкий момент, если оборвал таймер перед его активацией, то он начнет счет с нуля.

Пока проблему решаю тем, что дублирую функцию таймера обычной функцией. Есть что-то, что может помочь решить проблему?

Можно ли получить значение внутреннего счетчика таймера при его прерывании?

(Отредактировано автором: 14 Марта, 2021 - 21:27:33)

 
 Top
Kibor
Отправлено: 14 Марта, 2021 - 21:13:28
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 lavpochta пишет:
таймер перестаeт работать, если его вызов по счетчику таймера совпадет с вызовом функций key, keydown, keyup

Странно.
 
 Top
lavpochta
Отправлено: 14 Марта, 2021 - 21:46:01
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 27
Дата рег-ции: Нояб. 2019  
Репутация: 0




Я выделил отдельный кусок кода с виснущим таймером, прописал в него не саму функцию лечения персонажа, а только "флаг"лечение=1 каждые 3с, саму функцию лечения вызывал без таймера. Лечение происходило в ней по "флаг"=1, и сбрасывал после "флаг"=0,

записывал видео движения бота, отображая на экране точки таймера и нажатия клавиатуры по движению персонажем и таким образом вышел на этот вывод, при совпадении вызова нажатия клавиши с ожидаемым временем таймера - таймер так и не отобразил контрольное сообщение, перестал отображаться и "флаг"=1, он так и остался =0. Это произошло после 6-ти кратного успешного выполнения самой функции лечения.
(Добавление)
 Kibor пишет:
Странно.


Кстати а может ничего странного и нет, пишу для Lineage2 для Оффа, а там "Frost", влючаю Анти-Антикликер, пускаю прямо из под оболочки "Кибора" - вот оно глючит?

(Отредактировано автором: 14 Марта, 2021 - 21:57:47)

 
 Top
Dantes3000
Отправлено: 21 Марта, 2021 - 22:58:57
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




тоже заметил что таймер отключается самопроизвольно. в коде disabletimer нет вообще
 
 Top
Budni
Отправлено: 22 Марта, 2021 - 08:27:14
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018  
Репутация: 2




Добавлю и свои 5 копеек, когда в таймере вызываю функцию после нее не выполняется код что был в таймере.

Код с ошибкой (Отобразить)
 
 Top
Kibor
Отправлено: 22 Марта, 2021 - 08:41:19
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Budni пишет:
Добавлю и свои 5 копеек, когда в таймере вызываю функцию после нее не выполняется код что был в таймере.


Запускаемый пример тут:
Все отрабатывает.

CODE:
enabletimer(0);
loop()sleep(10);


function klik(int kor1, int kor2, int kor3, int kor4) {
if (finde()==0) ing();
return 1;
}


function ing() {

}

function waitin(){
if (scanpixel(199, 60, colorgame, R__HP, R__HP, R__HP, R__HP, R__HP, R__HP, -1)==0)
{
return 1;
}
}


function finde() {
int k=1;
if(k>=1) {
return 1;
}
return 0;
}


CREATE_TIMER(0, 1700)
{
beep(2000, 100);
loop(10) {
if(klik(0, 0, 800, 600)==1){sleep(rand(10,300))};
}
//После лупов код дальше не выполняется ?????
beep(1000, 100);
}
 
 Top
Budni
Отправлено: 22 Марта, 2021 - 08:43:30
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018  
Репутация: 2




Kibor , Да если так то конечно всё работает, поэтому выложил весь код где ошибка.
 
 Top
Kibor
Отправлено: 22 Марта, 2021 - 08:46:25
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Budni , Ваш код не запускаем. Выкладывать надо код который будет работать просто скопировав его в Кибор.
Мой код по логике идентичный. Просто убрал действия, которые на таймер не влияют.
Для проверки нужен запускаемый, простой сценарий.
(Добавление)
Budni , Проблема в вызове одной функции в таймере и коде:
loop()
{
for (int a1=0; a1<19; a1++)
{
if(klik(0, 0, 800, 600)==1){sleep(rand(10,30))};
}
a1=0;
ing();
}

============


CREATE_TIMER(0, 1000)
{


loop(10) {
if(klik(0, 0, 800, 600)==1){sleep(rand(10,300))};
}

Не используйте в таймере функции которые используете в коде.
 
 Top
Budni
Отправлено: 22 Марта, 2021 - 09:29:27
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018  
Репутация: 2




Kibor , Понял, думал можно, спасибо.
 
 Top
Kibor
Отправлено: 23 Марта, 2021 - 16:39:11
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Поправил алгоритм. Теперь не должно обрезать выполнение таймера.
 
 Top
Страниц (10): В начало « 2 3 4 5 6 7 [8] 9 10 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by