Skocz do zawartości

set_task - funkcje czasowe


Muzzik
# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Często bywa tak, że chcemy by jakaś akcja w cs'ie odbyła się z pewnym opóźnieniem lub trwała jakiś czas. Najbardziej podstawowym sposobem by to wykonać, jest użycie funkcji set_task - jest ona podstawową funkcja amxx'a.

 

Konstrukcja tej funkcji ma postać:

 

set_task ( Float:time, const function[], id = 0, parameter[]="", len = 0, flags[]="", repeat = 0 )

 

Omówie teraz poszczególne parametry:

 

time (typ float - zmienno przecinkowy) - tu podajemy czas w sekundach po jakim ma być wywołana funkcja. Może to być liczba znana już przed kompilacją (np 10.0 - zawsze dajemy wartość po przecinku, nawet jak jest to liczba całkowita). Może to też być zdeklarowana zmienna typu float o dowolnej wartości (choć rozsądek podpowiada by to były liczby nie ujemne ;> )

 

function[] - jak nam zdradza oznaczenie ' [] ' zmienna ta zbudowana jest z ciągu znakowego. Ciąg ten musi być nazwą funkcji w naszym plugu.

 

id - zmienna id oznacza nr identyfikacyjny naszego task'a. Jeśli jej nie zdeklarujemy (tj. użyjmy taska tylko z 2 parametrami), to id będzie miało wartość 0. Istotną rzeczą, jak też często pomijaną przez programistów jest zadbanie by nasz task miał jedyną w swoim rodzaju nr. id.

 

Znajomość id taska daje nam dostęp do następujących funkcji:

 

task_exists ( id = 0, outside = 0 ) - sprawdzanie czy task o podanym id istnieje

change_task ( id = 0, Float:newTime=1.0, outside = 0 ) - zmienianie czasu wywołania taska

remove_task ( id = 0, outside = 0 ) - usuwa taska o podanym id - funkcja nie zostaje wywołana a dane zawarte w tasku zostają utracone.

 

outside - gdy wartość jest równa 1 to są też brane taski z poza naszego pluga.

 

parameter - tutaj możemy przechowywać dowolnie wiele danych dla wywołanej danym taskiem funkcji. Parameter działą razem ze zmienną len w której jest zawarta informacja o ilości elementów w zmiennej parameter.

 

przykład:

 

...
new data[3]
data[0] = id
data[1] = vid
data[2] = dmg

set_task ( 5.0, "DoIt", 666, data, 3 )
...
public DoIt(data[])
{
new id = data[0]
new vid = data[1]
new dmg = data[2]
}
Jesli przekazujemy tylko jedna informacje typu int, to możemy użyć zmiennej id do przekazania informacji:

 

...
set_task ( 5.0, "KillIt", id )
...
public KillIt(id)
{
user_silentkill ( id)
}
flags - tu są przechowywane flagi typu wykonywanego tasku - gdy nie jest on zdefiniowany to task jest wykonywany 1 raz po określonym czasie od momentu wywołania. Mamy do dyspozycji flagi:

"a" - powtarza funkcje określoną liczbę razy (zmienna repeat ) - po wywołaniu funkcji zostaje jakoby zrobiony nowy task z takim samym opóźnieniem.

"b" - bardzo podobna do flagi z "a" tylko z 1 wyjątkiem - task będzie zapętlany aż do zmiany mapy lub do usunięcia taska.

"c" - wykonywana po czasie "timeleft"

"d" - wykonywana przed czasem "timeleft"

 

 

Źródło amxx.pl

Zapraszam na mojego twittera:

@Muzzikx

Odnośnik do komentarza

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności