#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 61 Ilość pobrań
test.sma 885 bajtów 86 Ilość pobrań
test.amxx
Użytkownik Benio101 edytował ten post 19.10.2013 08:12
+zał.


Dodatki SourceMod














