Skocz do zawartości

Znajdź zawartość

Wyświetlanie wyników dla tagów 'y_timers' .



Więcej opcji wyszukiwania

  • Wyszukaj za pomocą tagów

    Wpisz tagi, oddzielając je przecinkami.
  • Wyszukaj przy użyciu nazwy użytkownika

Typ zawartości


Forum

  • Społeczność Pawno.PL
    • Ogłoszenia
    • Projekty Pawno.PL
  • Programowanie PAWN
    • Bazy danych
    • Pomocne materiały
    • Rozwiązywanie problemów
    • Gotowe rozwiązania
  • Programowanie ogólne
    • LUA
    • Języki programowania
    • Webdevelopment
  • Grand Theft Auto V - Multiplayer
    • GTA MP - Dyskusja
    • GTA MP - Programowanie
    • GTA MP - Serwery
  • Grand Theft Auto San Andreas - Multiplayer
    • San Andreas MultiPlayer - Rozmowy
    • San Andreas MultiPlayer - Serwery
    • Multi Theft Auto - Rozmowy
    • Multi Theft Auto - Serwery
  • Singleplayer
    • V
    • IV
    • San Andreas
    • Vice City
    • I, II, III i pozostałe
  • Technologia komputerowa / Administracja serwerów
    • Serwery wirtualne / dedykowane
    • Komputery / laptopy
  • Pozostałe
    • Oferty
    • Firmy hostingowe
    • Off Topic
    • Archiwum

Szukaj wyników w...

Znajdź wyniki, które...


Data utworzenia

  • Od tej daty

    Do tej daty


Ostatnia aktualizacja

  • Od tej daty

    Do tej daty


Filtruj po ilości...

Dołączył

  • Od tej daty

    Do tej daty


Grupa podstawowa


Strona WWW


Skype


Gadu-Gadu


Miejscowość


Nazwa serwera


Adres IP

Znaleziono 1 wynik

  1. y_timers Przedstawienie y_timers jest jedną z bibliotek wchodzących w skład zbioru YSI, którego autorem jest y_less. Czy marzyłeś kiedyś o tym aby bez zbędnych ceregieli szybko tworzyć i wykonywać timery? - ta biblioteka jest dla Ciebie! y_timers umożliwiwa szybkie tworzenie tasków oraz timerów, a dodatkowo poprawia błąd przez który nie można przekazywać tablic w SetTimerEx! Podstawowe użycie Dzięki tej bibliotece nasz dawny kod: forward RepeatTimer(); public RepeatTimer() { printf("Powtarzajacy sie timer co 1 sekunde."); } forward DelayTimer(playerid); public DelayTimer(playerid) { SendClientMessage(playerid, -1, "Wiadomosc wyslana po 1s."); } public OnGameModeInit() { SetTimer("RepeatTimer", 1000, true); return 1; } public OnPlayerConnect(playerid) { SetTimerEx("DelayTimer", 1000, false, "d", playerid); return 1; } ...możemy zastąpić: task RepeatTimer[1000]() { print("Timer wykonuje sie co 1s."); } timer DelayTimer[1000](playerid) { SendClientMessage(playerid, -1, "Wiadomosc wyslana po 1s."); } public OnPlayerConnect(playerid) { defer DelayTimer(playerid); return 1; } Download Paczka YSI - https://github.com/Y-Less/YSI/archive/master.zip Taski y_timers dodaje możliwość tworzenia tasków, które są automatycznie uruchamiane OnGameModeInit lub OnFilterScriptInit. Istnieją ich dwa typy: zwykły task - zwykły timer, który wykonuje się ciągle co jakiś konkretny okres czasu: task RepeatTimer[5000]() { print("Timer wykonuje sie co 5s."); } player task(ptask) - podobny do zwykłego task'a z tą różnicą, że automatycznie wykonywany jest dla każdego podłączonego gracza: ptask PlayerRepeatTimer[2000](playerid) { SendClientMessage(playerid, -1, "Wiadomosc co 2s dla kazdego gracza."); } Ważne! Taski nie mogą przyjmować żadnych parametrów(z wyjątkiem ptask'a, który ma parametr "playerid"), ani nie mogę być używane razem z defer(nie mogą być wykonywane jak timer'y). Dodatkowo każdy task możesz również użyć jako zwykłą funkcję co nie przerwie jej ciągłego wykonywania: task RepeatTimer[5000]() { print("Timer wykonuje sie co 5s."); } public OnPlayerConnect(playerid) { RepeatTimer(); // Funkcja będąca taskiem wykona się "asynchronicznie" return 1; } Timery Timery w tym przypadku są bardziej dynamiczne niż zwykłe SetTimer czy SetTimerEx, ponieważ możesz swobodnie zmieniać opóźnienie po jakim zostanie wywołana funkcja: timer DelayTimer[500](playerid) { printf("Timer wykonywany co 1s."); } public OnPlayerConnect(playerid) { defer DelayTimer(playerid); // Timer wykona się po 500ms, tak jak zdefiniowany został czas domyślny defer DelayTimer[2000](playerid); // Timer wykona się po 2000ms return 1; } Czas opóźnienia przy użyciu defer, może być zmienną lub wyrażeniem, które w wyniku daje liczbę: timer DelayTimer[500](playerid) { print("Timer wykonywany co jakiś tam czas."); } public OnPlayerConnect(playerid) { new zmienna = 5000; defer DelayTimer[10*100](playerid); // 1000 ms => 1s defer DelayTimer[zmienna](playerid); // zmienna => 5000ms => 1s return 1; } Wywoływanie timerów defer - wykonanie funkcji raz po określonym opóźnieniu: defer DelayTimer(playerid); repeat - powtarzanie wykonywania funkcji po określonym opóźnieniu(wykonywana jest co czas opóźnienia): new Timer:a = repeat DelayTimer[1000](playerid); // DelayTimer wykona się po sekundzie i będzie powtarzać co 1s stop a; // Aby zatrzymać timer zwykłe - natychmiastowo wykonuje funkcje: DelayTimer(playerid); Przekazywanie tablicy jako parametru Jak wspomniałem na początku, y_timers naprawia błąd występujący w SetTimerEx, a przez który nie można przekazywać tablic i stringów. Aby przekazać tablice do timer'a, musimy: timer ArrayTimer[500](arr[], len) { printf("Array (%d): %d, %d, ...", len, arr[0], arr[1]); } Gdzie pierwszym parametrem jest sama tablica, a drugi jest jej wielkość(sizeof). Natomiast jeśli chcemy przekazać string: timer StringTimer[500](string:str[]) { printf("String: %s", str); } Uwaga! Powyższy kod może powodować tag-mismatch, ale nie macie się nim co przejmować. Przykład użycia dwóch powyższych timerów: public OnGameModeInit() { new array[3] = {42, 43, 44}; defer ArrayTimer(array, sizeof(array)); defer StringTimer("Hi there"); return 1; }
×