#if defined _countdown_included #endinput #endif #define _countdown_included #include #define TASK 5515 new ciTime; new ciColor[3] new Float:cfPosition[2]; new ciEffect; new ciMode; new ciChannel; new cszText[64]; new ciNum new giSec = 1 stock set_countdown(id, szText[], iColor[3], Float:posX, Float:posY, iEffect = 0, tTime, iMode = 1, channel = 4, const szFunction[] = "", ifindex = 0, ifParam[] = "", ifLen = 0) { /* iMode == 0 || Czas odlicza od 0 do tTime iMode == 1 || Czas odlicza od tTime do 0 */ if(task_exists(id+TASK)) return PLUGIN_CONTINUE ciNum = formatex(cszText, strlen(szText), szText); ciTime = tTime; ciColor = iColor; cfPosition[0] = posX cfPosition[1] = posY ciEffect = iEffect ciMode = iMode; ciChannel = channel; display_countdown(id+TASK) if(strlen(szFunction) > 0) set_task(float(tTime), szFunction, ifindex, ifParam, ifLen); return PLUGIN_CONTINUE } public display_countdown(id) { static gszSec[6]; id-=TASK if(giSec > ciTime) { remove_task(id+TASK); giSec = 1; ciTime = 0 ciColor = {0, 0, 0} cfPosition[0] = 0.0 cfPosition[1] = 0.0 ciEffect = 0 ciMode = 0 ciChannel = 0 return PLUGIN_CONTINUE } if(ciMode == 1){ formatex(gszSec, 5, " %d", ciTime-giSec); add(cszText, 64, gszSec); } else if(ciMode == 0) { formatex(gszSec, 5, " %d", giSec); add(cszText, 64, gszSec); } set_hudmessage(ciColor[0], ciColor[1], ciColor[2], cfPosition[0], cfPosition[1], ciEffect, 6.0, 1.1, _, _, ciChannel) show_hudmessage(id, cszText) formatex(cszText[ciNum], ciNum, "") formatex(cszText[ciNum+1], ciNum, "") formatex(cszText[ciNum+2], ciNum, "") formatex(cszText[ciNum+3], ciNum, "") giSec++; set_task(1.0, "display_countdown", id+TASK); return PLUGIN_CONTINUE }
Jest to stock stworzony przez GT Team, ma on na celu symulowanie odliczania. Sorka, za zmienne globalne, lecz musiałem je stworzyć. Do dyspozycji mamy 2 tryby, a dodatkowo możemy po odliczeniu czasu tTime wywołac dowolną funkcją i przesłać do niej parametry ( jak w set_task )
Gdy iMode == 0 | Czas odlicza od 0 do wyznaczonego przez nas czasu tTime Gdy iMode == 1 | Odlicza od wyznaczonego przez nas czasu t Time do 0
A to krótkie wyjaśnienie parametrów
id - Index gracza do pokazania, jesli 0 pokazuje serwerowi szText[] - Wiadomosc ktora bedzie towarzyszyc odliczanej liczbie, np damy "Nastepna mapa za:" to w Hudzie pokaze : "Nastepna mapa za: X" iColor[3] - Kolor wyświetlanej wiadomości w RGB, Float:posX, Float:posY - Pozycja X i Y wieswietlanej wiadomosci iEffect - Efekt wiadomosci ( Taki jak przy hudmessage) tTime - Czas do (od) którego będzie odliczany iMode - Tryb odliczania ( Omówiony powyżej ) channel - Kanał wyświetlanej wiadomości const szFunction[] - Funkcja która może ( choć nie musi ) się wykonać po zakończeniu odliczania ifindex - ID wysyłane do funkcji (gdy podana szFunction) ifParam[] - Parametry wysyłane do funkcji (gdy podana szFunction) ifLen - Maksymalny bufor ifParam[] (gdy podana szFunction)
Tutaj przykład uzycia:
/* Plugin generated by AMXX-Studio */ #include #include #define PLUGIN "asd" #define VERSION "2.0" #define AUTHOR "GT Team" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /asd", "asd") } public asd(id) { new data[4] data[0] = 5 data[1] = 20 data[2] = 30 data[3] = 55 set_countdown(id, "Odliczam do 20:", { 0, 0, 255} ,-1.0 ,-1.0 , 1 , 20 ,1 ,2, "asd2", id, data, 4) /*Wyświetl graczowi ID, Tekst: "Odliczam do 20:", Kolor niebieski, na środku ekranu, efekt migający, do 20, tryb 1, kanał 2, potem wykonaj funkcje "asd2", prześlij id = id i data*/ } public asd2(data[], id) { client_print(0, 3, "id: %d", id) client_print(0, 3, "1: %d", data[0])//wypisze 5 client_print(0, 3, "2: %d", data[1]) // 20 client_print(0, 3, "3: %d", data[2]) // 30 client_print(0, 3, "4: %d", data[3]) // 55 }
Uwaga, na serwerze moze być wyświetlany tylko jeden set_countdown na raz!
http://www.mediafire.com/?g6hte5h7aambb7a | Plik *.inc http://www.mediafire.com/?zqgny722d22tyo7 | Plik *.sma
Przepraszam bardzo, że nie w załącznikach, lecz mam problemy z przesłaniem ich na amxx.pl
Załączam pliki z mediafire do posta. ~21977
countdown.inc 2,06 KB 51 Ilość pobrań
test.sma 885 bajtów 68 Ilość pobrań
test.amxx
Użytkownik Benio101 edytował ten post 19.10.2013 08:12
+zał.