Timers czyli funkcje czasowe cz. 1 - CreateTimer()
Wprowadzenie
Timer pozwala na wykonywanie funkcji po jakimś czasie. Jest to odpowiednik set_task z amxx.
Teraz zajmiemy się jedną podstawową funkcją.
CreateTimer() - Tworzy timer

native Handle:CreateTimer(Float:interval, Timer:func, any:data=INVALID_HANDLE, flags=0);
interval - Czas podany w sekundach. np. 1.0 czyli 1 sekunda.
func - Nazwa funkcji która ma być wywołana po upływie czasu
data - wartość albo uchwyt
flags - Czyli poprostu flaga w tej części będziemy używać
- TIMER_REPEAT - Timer będzie się powtarzał aż nie zostanie zwrócone Plugin_Stop
Jednorazowy timer
Jak sama nazwa wskazuje timer jednorazowy wykona funkcję jeden raz po określonym czasie. Tutaj macie przykład:
public OnPluginStart() { CreateTimer(5.0, DawajInfo) // tworzymy timer } public Action:DawajInfo(Handle:timer) { PrintToServer("Testowa informacja w konsoli serwera wywolana przez timer") }W tym przykładzie gdy plugin zostanie uruchomiony to po 5 sekundach zostanie napisana informacja w konsoli serwera.
Powtarzający się timer
W tym przykładzie co 3 sekundy będzie powtarzana funkcja PrintMsg (dzięki flagi TIMER_REPEAT) aż do momentu gdy NumPrinted będzie miało wartość 5 i zwrócone zostanie Plugin_Stop a przy okazji wyświetli wiadomość w konsoli serwera

DajWiadomosc() { CreateTimer(3.0, PrintMsg, _, TIMER_REPEAT) } public Action:PrintMsg(Handle:timer) { static NumPrinted = 0 if (NumPrinted++ >= 5) { PrintToServer("Wiadomosc!!!") NumPrinted = 0 return Plugin_Stop } return Plugin_Continue }
Nie jest to nic trudnego ale mam nadzieję że pomogłem

Użytkownik Harsay edytował ten post 23.08.2011 20:43