В скриптах иногда применяют так называемые таймеры. Они бывают двух
видов: игрового времени и реального времени. Примером использования
таймеров может служить алгоритм Выброса. Всё это хозяйство находится в
библиотеке служебных скриптов amk.script. Стартовать таймер можно из любого места.
Например:
amk.g_start_timer("bl1",0,1,0) - старт таймера с именем bl1
в игровом времени. Кроме имени таймера функции в качестве аргументов
передаются дни, часы, минуты, то есть промежуток времени, через который
должен сработать таймер. В данном случае таймер сработает через 0 дней,
1 час 0 минут игрового времени.
amk.start_timer("bl2",1) - старт таймера с именем bl2 в реальном времени. Здесь кроме имени передаются секунды задержки. Этот таймер сработает через секунду реального времени.
Это мы запустили таймер. Контроль работы всех таймеров осуществляется функцией function __do_timer_action(select_string,params_string), в которую, собственно и вставляется действие, которое должно выполняться при срабатывании таймера.
if select_string=="slp" then sleep_manager.test_for_need_sleep() end
То есть при срабатывании таймера slp вызовется функция test_for_need_sleep() из sleep_manager.script.
Теперь о том, как заменить один тип таймера на другой. Да элементарно.
Вот такой вариант может понадобиться, если Вы играете на тайм-факторе, приближенном к реальности:
g_start_timer("bl1",0,1,0) - таймер игрового времени на 1 час можно заменить строкой start_timer("bl1",30) - таймер реального времени на 30 секунд
Или наоборот:
start_timer("md2",120) - таймер в реальном времени на 2 минуты заменим g_start_timer("md2",0,2,30) - таймер в игровом времени на 2,5 часа.