[ROZWIĄZANE] Odliczanie czasu do końca run...
Best Answer VertekS 28.05.2014 17:25
remove_task + set_task z własnym id taska (parametr 3).
Ponad plugin_init używasz dyrektywy preprocesora #define (będzie to ID taska, ważne aby było wyższe niż 32, żeby uniknąć błędów):
#define task_odliczanie 667
Przy ustawianiu taska:
set_task(1.0, "odliczanie", task_odliczanie,_,_,"b");
Następnie, jeśli zostało 11 sekund do końca rundy, to usuń task:
public odliczanie() { new g_czas = floatround(g_licznik - get_gametime(), floatround_floor); if(g_czas == 11) { for(new i = 1; i < maxPlayers; i++) { if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_T) { client_print(i,print_chat, "Czas") remove_task(task_odliczanie) } } } }Go to the full post
Scorpion Flail
28.05.2014
Witam.
Chcę zrobić by X czasu przed końcem rundy pojawiła się dana wiadomość w chat.
Dlatego zrobiłem tak:
W nowej rundzie (event HLTV):
set_task(1.0, "odliczanie",_,_,_,"b");
Następnie (11 sec przed końcem):
public odliczanie() { new g_czas = floatround(g_licznik - get_gametime(), floatround_floor); if(g_czas == 11) { for(new i = 1; i < maxPlayers; i++) { if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_T) { client_print(i,print_chat, "Czas") } } } }
Odliczanie czasu oraz pokazywanie wiadomości działa, jednak przez taska powtarzającego, wiadomość w chat wyświetla się 2-3 razy.
Jak zrobić by wyświetlała się tylko raz?
DaanD 28.05.2014
hmm zrób poprostu set_task i dźwięk.
#include <amxmodx> #include <amxmisc> #define PLUGIN "Sound on finish rund" #define VERSION "1.0" #define AUTHOR "Mentos" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "event_round_start", "a", "1=0", "2=0") } public plugin_precache() { precache_sound("koniec/10.mp3") precache_sound("koniec/9.mp3") precache_sound("koniec/8.mp3") precache_sound("koniec/7.mp3") precache_sound("koniec/6.mp3") precache_sound("koniec/5.mp3") precache_sound("koniec/4.mp3") precache_sound("koniec/3.mp3") precache_sound("koniec/2.mp3") precache_sound("koniec/1.mp3") } public event_round_start() { set_task(120.0, "countdown") } public countdown() { set_task(1.0, "one") set_task(2.0, "two") set_task(3.0, "three") set_task(4.0, "four") set_task(5.0, "five") } public five() { client_cmd(0, "spk koniec/5") } public four() { client_cmd(0, "spk koniec/4") } public three() { client_cmd(0, "spk koniec/3") } public two() { client_cmd(0, "spk koniec/2") } public one() { client_cmd(0, "spk koniec/1") }
Best Answer
VertekS
28.05.2014
remove_task + set_task z własnym id taska (parametr 3).
Ponad plugin_init używasz dyrektywy preprocesora #define (będzie to ID taska, ważne aby było wyższe niż 32, żeby uniknąć błędów):
#define task_odliczanie 667
Przy ustawianiu taska:
set_task(1.0, "odliczanie", task_odliczanie,_,_,"b");
Następnie, jeśli zostało 11 sekund do końca rundy, to usuń task:
public odliczanie() { new g_czas = floatround(g_licznik - get_gametime(), floatround_floor); if(g_czas == 11) { for(new i = 1; i < maxPlayers; i++) { if(is_user_connected(i) && cs_get_user_team(i) == CS_TEAM_T) { client_print(i,print_chat, "Czas") remove_task(task_odliczanie) } } } }