Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 3.33 Добавление функции таймера (код выполняемый по времени)

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

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

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

Можно ли получить значение внутреннего счетчика таймера при его прерывании?
72. Kibor - 14 Марта, 2021 - 14:13:28 - перейти к сообщению
 lavpochta пишет:
таймер перестаeт работать, если его вызов по счетчику таймера совпадет с вызовом функций key, keydown, keyup

Странно.
73. lavpochta - 14 Марта, 2021 - 14:46:01 - перейти к сообщению
Я выделил отдельный кусок кода с виснущим таймером, прописал в него не саму функцию лечения персонажа, а только "флаг"лечение=1 каждые 3с, саму функцию лечения вызывал без таймера. Лечение происходило в ней по "флаг"=1, и сбрасывал после "флаг"=0,

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


Кстати а может ничего странного и нет, пишу для Lineage2 для Оффа, а там "Frost", влючаю Анти-Антикликер, пускаю прямо из под оболочки "Кибора" - вот оно глючит?
74. Dantes3000 - 21 Марта, 2021 - 15:58:57 - перейти к сообщению
тоже заметил что таймер отключается самопроизвольно. в коде disabletimer нет вообще
75. Budni - 22 Марта, 2021 - 01:27:14 - перейти к сообщению
Добавлю и свои 5 копеек, когда в таймере вызываю функцию после нее не выполняется код что был в таймере.

Код с ошибкой (Отобразить)
76. Kibor - 22 Марта, 2021 - 01:41:19 - перейти к сообщению
 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);
}
77. Budni - 22 Марта, 2021 - 01:43:30 - перейти к сообщению
Kibor , Да если так то конечно всё работает, поэтому выложил весь код где ошибка.
78. Kibor - 22 Марта, 2021 - 01:46:25 - перейти к сообщению
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))};
}

Не используйте в таймере функции которые используете в коде.
79. Budni - 22 Марта, 2021 - 02:29:27 - перейти к сообщению
Kibor , Понял, думал можно, спасибо.
80. Kibor - 23 Марта, 2021 - 09:39:11 - перейти к сообщению
Поправил алгоритм. Теперь не должно обрезать выполнение таймера.

Powered by ExBB FM 1.0 Final