Сповіщення
Очистити все
15.10.2023 18:46
Навіщо потрібні таймери? Припустимо, ви хочете, щоб Меченому після діалогу надійшло повідомлення на ПДА, але не відразу, а для надання більшого реалізму із затримкою в ~7-8 секунд. У такому випадку, якщо ви читаєте цю статтю, то у вас є:
- готовий діалог
- потрібна функція у свіжому скриптовому файлі.
Щоб створити таймер, необхідно відкрити файл з вашими скриптами і написати наступне :
local iTimer function function_onetimer ( ) iTimer = time_global ( ) + 6 * 1000 end function timer_5_minutes ( ) if iTimer and iTimer < time_global ( ) then iTimer = nil wolfscripts.humorist_killed_msg ( ) end end
Поясню:
function function_onetimer ( ) - назва функції ( це головна функція і її викликатимемо з діалогу ) iTimer = time_global ( ) + 6 * 1000 - затримка за часом (6 секунд) function timer_5_minutes ( ) - власне, налаштування таймера iTimer = nil -- відключаємо таймер wolfscripts.humorist_killed_msg ( ) -- назва скрипта. Назва функції
Тут начебто все просто. Але таймер просто так не почне працювати. Лезем у bind_stalker.script та в
function actor_binder:update(delta)
пишемо:
назва_вашого_скрипта.timer_5_minutes()
Вуаля, тепер все працює. Дякую за увагу. Так, до речі, з діалогу викликаємо функцію function_onetimer .
Але є спосіб простіше
function action_timer ( ) .... ваш код після закінчення таймера .... end function start_timer ( ) -- піднімаємо таймер на 10 секунд local iTimer = time_global ( ) + 10000 -- функція очікування закінчення таймера local function check_timer ( ) return time_global ( ) > iTimer end - Ставимо її на апдейт level.add_call ( check_timer, action_timer ) end
По суті, це те саме, але реалізація простіше. Все міститься в одному файлі, без редагування bind_stalker.script.