31. 007wan - 18 Мая, 2019 - 02:05:11 - перейти к сообщению
Zireael , Спасибо, но я лучше таймер создам )
32. 007wan - 24 Мая, 2019 - 07:49:47 - перейти к сообщению
Вопрос: Существует таймер, в котором выполняется скрипт. Если какой-то условие не удовлетворяет нужному результату (if else), то вызывается функция, которая прекращает действие таймера. Причем это условие в начале таймера. А теперь вопрос: возможно ли прекратить действия таймера в начале, даже когда он не завершит полностью свои действия(не дойдет до конца). Разумеется ответ я знаю - НЕТ. Нельзя прекратить прервать таймер там, где его отключили, но есть один нюанс ведь если таймер отключен, то по сути ввел в журнал событий, что он выключен из-за того, что условие не выполнено(Например, изображение не найдено), а он до сих пор идет вниз и ищет другие изображения. Получается, что в журнал он пишет: "Бот приостановлен, потому что, например, изображение 1 не найдено", а потом спускается ниже и ищет новые изображения, но ТАЙМЕР ЖЕ ПРИОСТАНОВЛЕН! зачем ему искать и спускаться ниже! Выглядит не очень красиво, кстати. И мой вопрос: Что же делать?
(Добавление)
Таймер винАпи такой же?
(Добавление)
(Добавление)
Таймер винАпи такой же?
(Добавление)
007wan пишет:
зачем ему искать и спускаться ниже!
Я к чему виду то. Если он будет при отключении спускаться до конца, то будет искать все изображения и писать в лог, что все не найдены и тогда не поймешь какая ошибка.
33. Kibor - 24 Мая, 2019 - 07:53:34 - перейти к сообщению
Команда отключения таймера не прерывает его работу, а дает знать, что при следующем цикле времени его срабатывания таймер не должен срабатывать.
То есть отключение таймера в таймере не прервет его.
Таймер можно прервать только переходом гото с него в код.
То есть отключение таймера в таймере не прервет его.
Таймер можно прервать только переходом гото с него в код.
34. 007wan - 24 Мая, 2019 - 07:54:50 - перейти к сообщению
007wan пишет:
какая ошибка
А пчоему? потому что все изображения ищутся в нужный момент и нужное время. Если, например, изображение 2 ищется, когда я нажму изображение 1, то получается, что если изображение 1 не найдено в начале, то тогда он напишет ошибку в лог(журнал), а если не нашел, то искать дальше нечего и тогда в изображении 2 - тоже ошибка.(Добавление)
Kibor пишет:
Таймер можно прервать только переходом гото с него в код.
А можно пример? Как его прервать, т.е выйти из него.
35. Kibor - 24 Мая, 2019 - 07:58:15 - перейти к сообщению
007wan пишет:
Я к чему виду то. Если он будет при отключении спускаться до конца, то будет искать все изображения и писать в лог, что все не найдены и тогда не поймешь какая ошибка.
Что мешает просто пропускать часть кода в таймере по if?
CODE:
CREATE_TIMER(0, 1000)//Номер таймера, выполнение таймера через мсек.
{
отключить=0;
код
код
код
if (бла бла == 0)
{
отключить=1;
disabletimer(0);
}
if (отключить==0)
{
код
код
код
}
}
{
отключить=0;
код
код
код
if (бла бла == 0)
{
отключить=1;
disabletimer(0);
}
if (отключить==0)
{
код
код
код
}
}
CODE:
CREATE_TIMER(0, 1000)//Номер таймера, выполнение таймера через мсек.
{
код
код
код
if (бла бла == 0)disabletimer(0);
else
{
код
код
код
}
}
{
код
код
код
if (бла бла == 0)disabletimer(0);
else
{
код
код
код
}
}
36. 007wan - 24 Мая, 2019 - 08:02:25 - перейти к сообщению
Kibor , Просто никогда ненавидел эти метки) как-то раз из-за них программа плохо работала) Но сейчас не знаю. Всеравно их не люблю. Вот условно как все-таки сделаю.
(Добавление)
А массивы для меток можно? А хотя не. Это же не переменная, а простой текст.
CODE:
CREATE_TIMER(0, 1000)
{
if (если нашли изображение)
{
}
else
{
пишем в лог, что не нашли
останавливаем таймер
goto m;
}
тут код...
много...
m:;//в конец
}
{
if (если нашли изображение)
{
}
else
{
пишем в лог, что не нашли
останавливаем таймер
goto m;
}
тут код...
много...
m:;//в конец
}
(Добавление)
А массивы для меток можно? А хотя не. Это же не переменная, а простой текст.
37. Kibor - 24 Мая, 2019 - 08:06:43 - перейти к сообщению
CODE:
CREATE_TIMER(0, 1000)//Номер таймера, выполнение таймера через мсек.
{
loop(1)//Цикл с 1 круга. для возможности использовать break
{
код
код
код
if (бла бла == 0){disabletimer(0); break;}
код
код
код
}
}
{
loop(1)//Цикл с 1 круга. для возможности использовать break
{
код
код
код
if (бла бла == 0){disabletimer(0); break;}
код
код
код
}
}
38. 007wan - 24 Мая, 2019 - 08:11:38 - перейти к сообщению
Kibor , О, спасибо.
39. Kibor - 24 Мая, 2019 - 08:15:11 - перейти к сообщению
Kibor пишет:
Цикл с 1 круга. для возможности использовать break
Только используйте гото
В данном случае оно оправдано вполне. Одна метка на которую переходят при разных ситуациях.
Зачем лишняя проверка в конце loop на закончился ли цикл?
40. 007wan - 24 Мая, 2019 - 08:19:43 - перейти к сообщению
Kibor ,
(Добавление)
А понял вроде. Метка будет одна, т.е в конце таймера, в использовать goto goto... многор аз, что ыб вызывать метку(при разных ситуациях)..
Kibor пишет:
Только используйте гото
Использую, но не одну метку полагаю буду использовать Kibor пишет:
Одна метка на которую переходят при разных ситуациях
Как сделать одну при разных ситуациях? Kibor пишет:
Зачем лишняя проверка в конце loop на закончился ли цикл?
Не понял. Я решил использовать свой пример.(Добавление)
А понял вроде. Метка будет одна, т.е в конце таймера, в использовать goto goto... многор аз, что ыб вызывать метку(при разных ситуациях)..