Перейти к содержанию

Сохранение таймера.


Рекомендуемые сообщения

Всем привет.

Столкнулся с такой проблемой, не знаю как уберечь таймер команды "initnpctimer;", Дело в том что я создаю таймер и вывожу его, но вот при использовании команды @reloadscript или перезагрузки сервера таймер обнуляется. Что можно сделать что бы сохранить его?

Ссылка на комментарий
Поделиться на другие сайты

...

initnpctimer;

setnpctimer -172800000;

set timer,gettimetick(2);

end;

...

Дублю 1:

OnInit:

setnpctimer ((gettimetick(2)-timer)*(-1)); //у меня просто идет действие с отрицательным значением.

end;

}

Дубль 2:

OnInit:

setnpctimer ((172800000-timer)*(-1)); //у меня просто идет действие с отрицательным значением.

end;

}

пробовал разные вариации, но таймер по прежнему обнуляется.

P.S. У меня такой вопросик, "а в onInit написать setnpctimer(gettimetick(2) - <переменная>) "

разве вы не отнимаем один и тот же таймер от таймера, т.к. точка отчета одна или в переменно мы прописали промежуток до и отнимаем точку после?

Изменено пользователем Saha
Ссылка на комментарий
Поделиться на другие сайты

setnpctimer ((172800000-(gettimetick(2)-timer)*1000)*(-1));

Вопрос не понял, но попробую объяснить

1) в переменную записываем время старта таймера

2) в онините: "gettimetick(2)-timer" даст нам разницу между текущим временем и временем старта таймера

3) отнимаем из 2х суток эту разницу и продолжаем таймер

И еще раз на цифрах

1) в переменную timer помещается количество секунд, прошедшее с 1 янв 1970г. Но для удобства примера, пусть там будет 0 секунд

2) Допустим ровно через 12ч перезапустили сервер "gettimetick(2)-timer" даст 43200 (секунд)

3) умножаем на 1000 и отнимаем от 172800000 полученное значение, получаем 129600000 (36ч)

P.S.: В онините тоже нужно инициализоровать таймер, т.к. старого больше нет

P.S.S.: используйте нпц переменную, а не переменную чара.

Ссылка на комментарий
Поделиться на другие сайты

Ну, есть 2 новости:

1) После перезапуска таймер работает. //>.< initnpctimer; xD

2) Он то стал появляется, но ставит одно и тоже значение и начинает от него отсчет.

...

OnInit:

initnpctimer;

set .timert,gettimetick(2);

setnpctimer ((172800000-((.timert-.timero)/1000))*(-1));

goto tier;

end;

}

Ссылка на комментарий
Поделиться на другие сайты

Не совсем понял, откуда и зачем 2 переменных...

2) Он то стал появляется, но ставит одно и тоже значение и начинает от него отсчет.

Ну дык потому что без проверки на в OnInit

initnpctimer;

setnpctimer -172800000;

set .timer,gettimetick(2);

end;

...

OnInit:

if(.timer){

initnpctimer;

setnpctimer ((172800000-(gettimetick(2)-.timer)*1000)*(-1));

}

end;

Соответственно после остановки таймера переменную лучше сбрасывать

Ссылка на комментарий
Поделиться на другие сайты

я попробовал вывести в числах переменную и в итоге у меня получилось наша переменная .timer = 0 и gettimetick(2) = 1408171484, причем статично.

P.S. Я тут подумал, а если попробовать прописать в переменную как точку отчета время сервера и при перезагрузке отнимать разницу?

Изменено пользователем Saha
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика