Módulo de timers
· 2 min de leitura
Esta prévia mostra melhorias no módulo de timers no open.mp, introduzindo uma API mais flexível e eficiente, mantendo a compatibilidade retroativa.
aviso
O conteúdo da publicação abaixo está desatualizado e não reflete o estado atual do open.mp. A publicação está disponível aqui para fins de arquivamento.
Esta é uma prévia de um dos módulos melhorados que fizemos, para timers no 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);
// Retorna o tempo até a próxima chamada.
native Timer_GetTimeRemaining(Timer:timer);
// Obtém o número de chamadas restantes a fazer (0 para ilimitado).
native Timer_GetCallsRemaining(Timer:timer);
// Obtém o parâmetro `repeatCount`.
native Timer_GetTotalCalls(Timer:timer);
// Obtém o parâmetro `usInterval`.
native Timer_GetInterval(Timer:timer);
// Redefine o tempo restante até a próxima chamada para `usInterval`.
native bool:Timer_Restart(Timer:timer);
Os dois primeiros existem apenas para compatibilidade retroativa; o restante é a API melhorada:
native Timer:Timer_Create(const func[], usDelay, usInterval, repeatCount, const params[] = "", GLOBAL_TAG_TYPES:...);
func- Bem óbvio: o que chamar.usDelay- Também óbvio: o atraso antes da chamada (em microssegundos).usInterval- Para qual valor redefinirusDelaydepois da primeira chamada. Então, se você quisesse um timer a cada hora cheia, mas agora fossem 8:47 da manhã, a chamada seriaTimer_Create("OnTheHour", 780 SECONDS, 3600 SECONDS, 0);repeatCount- Diferente das funções antigas, que eram apenas "uma vez" ou "para sempre", isto recebe o número de vezes que a função deve ser chamada. "Uma vez" seria1,500pararia após 500 chamadas e (ao contrário da API antiga)0significa "para sempre".GLOBAL_TAG_TYPES- Como{Float, ...}, mas com mais tags.