---
title: "Módulo de timers | open.mp"
description: "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."
canonical: https://omp.itsneufox.com/pt-BR/blog/timers
language: pt-BR
---

# Módulo de timers

22 de maio de 2019 · 2 min de leitura

Y\_Less

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:

```c
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:

```c
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 redefinir `usDelay` depois da primeira chamada. Então, se você quisesse um timer a cada hora cheia, mas agora fossem 8:47 da manhã, a chamada seria `Timer_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" seria `1`, `500` pararia após 500 chamadas e (ao contrário da API antiga) `0` significa "para sempre".
-   `GLOBAL_TAG_TYPES` - Como `{Float, ...}`, mas com mais tags.
