Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Таймер

Страниц (2): [1] 2 »
 

1. 007wan - 09 Сентября, 2017 - 11:38:22 - перейти к сообщению
Как сделать так, что бы если нажали кнопку, то запускается таймер на 15сек , по истечению которого можно будет снова нажать эту кнопку, но если время не вышло, то кнопку нельзя нажать(реагировать не будет) к тому же будет выводиться то время, которое идет на самой кнопке, т.е 15сек. будут отображаться на самой кнопку и идти в онлайн режиме каждую секунду отображать, я не могу сделать это в этом примере:

int time1, time2;
time1=gettime();
time2=time1;

if (time2-time1<15000)
{
time2=gettime();
}
2. 007wan - 10 Сентября, 2017 - 03:44:35 - перейти к сообщению
CODE:
int time1, time2;
time1=gettime();
time2=time1;
if (time2-time1<=10000)
{
textout(0, 0, 0, ""+format(time2/1000-time1/1000), 1);
time2=gettime();
}
if (time2-time1==10000)
{
messagebox(time2/1000-time1/1000);
time2=gettime();
sleep(1000);
time1=gettime();//это походу обнуление таймера
time2=time1;
resettextout(1);
}
Как сделать так, что бы если кпнока нажата, то нажать снова можно будет через 10 сек?
3. Kibor - 10 Сентября, 2017 - 04:14:04 - перейти к сообщению
CODE:


int t=0;



int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];

pos_size_button0[0][0]=11; pos_size_button0[0][1]=14; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="Кнопка 0";

//////////

createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////

showdialog(0, "Диалог", 558, 234, 132, 84, 1, 1);
//////////







enabletimer(0);




loop()
{

sleep(10);
}





CREATE_TIMER(0, 500)//Номер таймера, выполнение таймера через мсек.
{
if (flag_button0[0]>0)
{
flag_button0[0]=0;
if (gettime()-t>10000)
{
t=gettime();
messagebox ("есть");
}
}
}
4. 007wan - 10 Сентября, 2017 - 04:50:57 - перейти к сообщению
Нет, мне надо, что бы при нажатии кнопки выполнился скрипт 1 раз, а потом начинался таймер 10сек, и потом можно снова выполнить скрипт ТОЛЬКО если время вышло.
5. 007wan - 07 Октября, 2017 - 06:32:15 - перейти к сообщению
Нужна помощь, как сделать из этого:
CODE:
if (gettime()-t>10000)
{
t=gettime();
messagebox ("есть");
}

Пояснение: если время выйдет(10 секунд), то сообщение "есть"
Как сделать, что бы время НАЧАЛОСЬ считатся, именно, что бы таймер пошел считать 10 секунд не сразу перед запуском, просто у меня такая проблема+как сделать, что бы время вышло и таймер прекратился считать и всё
(Добавление)
Мне просто не нравится, что при запуске этого куска он уже сразу выдает это сообщение "есть", а мне надо, что бы при запуске сразу начал считать это время, а уже потом сообщение.
6. Kibor - 07 Октября, 2017 - 14:58:47 - перейти к сообщению
int t=gettime();
7. 007wan - 08 Октября, 2017 - 03:05:29 - перейти к сообщению
 Kibor пишет:
int t=gettime();

ясно-понял спс.
8. 007wan - 10 Октября, 2017 - 10:43:48 - перейти к сообщению
Kibor , А тоесть, если у меня известное время, пусть будет 10сек. и мне надо, что бы прошло 30сек., вычитая это время, то надо. что бы прошло 20сек., то надо использовать это:
 007wan пишет:
int t=gettime();
заменить:
 007wan пишет:
int t=10000;
Так?
9. Kibor - 10 Октября, 2017 - 11:00:56 - перейти к сообщению
Переменной t мы присвоили время которое сейчас. что бы от него отсчитывал . не выдавал сразу сообщение.
10. 007wan - 11 Октября, 2017 - 07:20:02 - перейти к сообщению
Kibor , Чет я не понял:
int t=gettime();
 Kibor пишет:
Переменной t мы присвоили время которое сейчас.

Тоесть:
CODE:
if (gettime()-t>300000)
Если время, которое
 Kibor пишет:
Добавлена функция gettime
Возвращает время в милисекундах с момента запуска Windows.

Тобишь, если время, которое в милисекундах с момента запуска Windows минус
CODE:
t
, чем время 300.000мсек.(5 мин.)?Мне кажется тут бред
(Добавление)
А всё понял, просто не понял разницы. Тоесть все время на компе с момента запуска вычитается время, которое сейчас...А если вычел, то идет своебразное прибавление с 0 мсек, а потом прибавляет, и так до 5 мин.)
(Добавление)
Я просто не могу сделать так, что бы время, которое в массиве char... Тоесть он начинал отсчитывать эти же 5мин, но и вычитал еще то время, которое в массие char. Это вроде не сложно, но не могу понять, что с чем вычитать
(Добавление)
CODE:
CREATE_TIMER(1, 1)
{
if (getkeystate(81)==1)
{
beep(500, 500);
textout(0, 0, 0, "Загрузка...", 1);
strcpy(#ch[0], format(gettime()-t)));
writebuffernet(#ch[0], size(#ch[0]), "kluch_prog", -1);
sleep(1000);
disabletimer(1);
resettextout(1);
close();
}
//
if (gettime()-t>300000)
{
t=gettime();
destroydialog(0);
beep(500, 500);
textout(0, 0, 0, "Загрузка...", 1);
strcpy(#ch[0], "");
writebuffernet(#ch[0], size(#ch[0]), "kluch_prog", -1);
resettextout(1);
disabletimer(1);

}
else
{
textout(0, 0, 0, "Прошло: "+format(gettime()/60000-t/60000)+" мин.", 1);
}
}

Вот как сделать, что бы при запуске он возвращал из char эти цифры, и начинал снова отсчет, но и вычитая это же время, т.е, например, мы хотим, что бы прошло 5 минут, я нажал Q время сохранилось, ну скажем пусть прошло и сохранило 2 мин., потом при запуске возвращает и пойдет таймер заного, но уже не 5 мин., а 3 минуты.
(Добавление)
Кстати коды к клавишам и остальное не работает на сайте, именно PHP страницы

Powered by ExBB FM 1.0 Final