Timers module
Це короткий огляд одного з вдосконалених нами модулів для таймерів у open.mp:
native SetTimer(const func[], msInterval, bool:repeat) = SetTimerEx;
native SetTimerEx(const func[], msInterval, bool:repeat, const params[], GLOBAL_TAG_TYPES:...);
native KillTimer(timer) = Timer_Kill;
// CreateTimer
native Timer:Timer_Create(const func[], usDelay, usInterval, repeatCount, const params[] = "", GLOBAL_TAG_TYPES:...);
// KillTimer
native bool:Timer_Kill(Timer:timer);
// Return time till next call.
native Timer_GetTimeRemaining(Timer:timer);
// Get number of calls left to make (0 for unlimited).
native Timer_GetCallsRemaining(Timer:timer);
// Get `repeatCount` parameter.
native Timer_GetTotalCalls(Timer:timer);
// Get `usInterval` parameter.
native Timer_GetInterval(Timer:timer);
// Reset time remaining till next call to `usInterval`.
native bool:Timer_Restart(Timer:timer);
Перші два призначені лише для зворотної сумісності, решта — це вдосконалений API:
native Timer:Timer_Create(const func[], usDelay, usInterval, repeatCount, const params[] = "", GLOBAL_TAG_TYPES:...);
func
- Досить очевидно з назви.usDelay
- Знову очевидно, це затримка перед викликом (у мікросекундах).usInterval
- На що скинутиusDelay
після першого виклику. Отже, якщо ви хочете, щоб таймер працював щогодини, але зараз було 8:47, виклик будеTimer_Create("OnTheHour", 780 SECONDS, 3600 SECONDS, 0);
repeatCount
- На відміну від старих функцій, які є лише "один раз" або "назавжди", замість цього для виклику функції потрібна кількість разів. "раз" буде "1", "500" зупиниться після 500 дзвінків, і (назад від старого API) "0" означає "постійно".GLOBAL_TAG_TYPES
- Подібне до{Float, ...}
, але з більшою кількістю параметрів.