[ROZWIĄZANE] Sprawdzanie drużyny po końcu...
Best Answer VertekS 27.05.2014 06:16
Mam taki kod:
public event_roundend_t(id) { if(is_user_connected(id) && xTeam[id] == CS_TEAM_T) { //client_cmd(id, "mp3 play sound/misc/win") client_print(id,print_center, "Jestes TT") } }Przy odrodzeniu działa, natomiast po wygraniu rundy przez TT nadal nic.
get_user_team w ogóle nie działa (nawet przy respawnie)
Może są jeszcze inne sposoby sprawdzenia tego kto wygrał/przegrał rundę?
W tym evencie nie sprawdzisz graczy po ID w ten sposób. Musisz zrobić pętle for:
for(new i = 1; i < 33; i++){ if(is_user_connected(i) && xTeam[i] == CS_TEAM_T) { client_cmd(i, "mp3 play sound/misc/win") client_print(i,print_center, "Jestes TT") } if(is_user_connected(i) && xTeam[i] == CS_TEAM_CT) { client_cmd(i, "mp3 play sound/misc/lose") client_print(i,print_center, "Jestes CT") } }
Pętlę for możesz usprawnić jeszcze poprzez użycie funkcji get_maxplayers() w plugin_precache i podstawienie wartości zwracanej przez nią w miejsce liczby 33.
Go to the full post
Scorpion Flail
26.05.2014
Witam.
Chcę zrobić dźwięk dla wygranej i przegranej drużyny (2 różne dźwięki).
Dlatego też zrobiłem coś takiego:
#include <amxmodx> #include <amxmisc> #define PLUGIN "Test" #define VERSION "1.0" #define AUTHOR "Test" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("SendAudio", "event_roundend_t", "a", "2&%!MRAD_terwin") register_event("SendAudio", "event_roundend_ct", "a", "2&%!MRAD_ctwin") } public plugin_precache() { precache_sound("misc/win.mp3") precache_sound("misc/lose.mp3") } public event_roundend_t(id) { if (get_user_team(id) == 2) { //client_cmd(id, "mp3 play sound/misc/lose") client_print(id,print_center, "Jestes CT") } if ((get_user_team(id) == 1)) { //client_cmd(id, "mp3 play sound/misc/win") client_print(id,print_center, "Jestes TT") } } public event_roundend_ct(id) { if (get_user_team(id) == 1) { //client_cmd(id, "mp3 play sound/misc/lose") client_print(id,print_center, "Jestes CT") } if ((get_user_team(id) == 2)) { //client_cmd(id, "mp3 play sound/misc/win") client_print(id,print_center, "Jestes TT") } }
Bez sprawdzania drużyny dźwięk/wiadomość się pokazuje.
Po dodaniu sprawdzania już nie.
cs_get_user_team również nie pomaga.
Macie jakiś pomysł?
Pomager'ek 26.05.2014
#include <amxmodx>
new maxplayers;
public plugin_init()
{
register_plugin("Dzwiek wygrana druzyn", "0.1", "kapi10072 edit by pomager'ek");
register_event("SendAudio", "Wygrana_TT", "a", "2&%!MRAD_terwin");
register_event("SendAudio", "Wygrana_CT", "a", "2&%!MRAD_ctwin");
maxplayers = get_maxplayers();
}
public Wygrana_TT()
{
for(new id = 0; id < maxplayers; id++)
{
if(is_user_connected(id))
{
if(get_user_team(id) == 1)
{
client_cmd(id, "spk dzwiek/wygrana_tt.wav");
}
else
{
client_cmd(id, "spk dzwiek/przegrana_ct.wav");
}
}
}
}
public Wygrana_CT()
{
for(new id=0; id < maxplayers; id++)
{
if(is_user_connected(id))
{
if(get_user_team(id) == 2)
{
client_cmd(id, "spk dzwiek/wygrana_ct.wav");
}
else
{
client_cmd(id, "spk dzwiek/przegrana_tt.wav");
}
}
}
}
public plugin_precache()
{
precache_sound("dzwiek/przegrana_tt.wav");
precache_sound("dzwiek/wygrana_tt.wav");
precache_sound("dzwiek/przegrana_ct.wav");
precache_sound("dzwiek/wygrana_ct.wav");
Edited by Pomager'ek, 26.05.2014 16:08.
Scorpion Flail
26.05.2014
Nadal nic (testowałem również na samym client_print):
#include <amxmodx> new maxplayers; public plugin_init() { register_plugin("Dzwiek wygrana druzyn", "0.1", "kapi10072"); register_event("SendAudio", "Wygrana_TT", "a", "2&%!MRAD_terwin"); register_event("SendAudio", "Wygrana_CT", "a", "2&%!MRAD_ctwin"); maxplayers = get_maxplayers(); } public Wygrana_TT() { for(new id = 0; id < maxplayers; id++) { if(is_user_connected(id)) { if(get_user_team(id) == 1) { client_print(0,print_center, "Wygrywa TT") } else { client_print(0,print_center, "Przegrywa CT") } } } } public Wygrana_CT() { for(new id=0; id < maxplayers; id++) { if(is_user_connected(id)) { if(get_user_team(id) == 2) { client_print(0,print_center, "Wygrywa CT") } else { client_print(0,print_center, "Przegrywa TT") } } } }
VertekS
26.05.2014
Zaciekawił mnie ten problem i postanowiłem sprawdzić, dlaczego jest tak, a nie inaczej. Event SendAudio odpowiada tylko i wyłącznie za obsługę dźwięków - wynika to z moich testów. Pobieranie drużyny, do której gracz należy, czy wyświetlenie czegoś w czacie musisz zrobić przy wyłapywaniu innego eventu (pobieranie drużyny - spawn powinien być ok, a wyświetlenie czegoś w czacie, to odpowiedni logevent)
register_logevent("showTopPlayers", 2, "1=Round_End")
W celu przechowywania drużyny, do której gracz należy utwórz tablicę 33 elementową, a następnie przy spawnie sprawdź drużynę, do której gracz należy. Na pewno ten sposób działa z cs_get_user_team, nie dam 100% gwarancji, że zadziała z get_user_team; chociaż nie widzę przeciwwskazań.
Następnie w evencie SendAudio możesz sprawdzać drużynę poprzez utworzoną tablicę.
Scorpion Flail
27.05.2014
Mam taki kod:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <hamsandwich> #define PLUGIN "Test" #define VERSION "1.0" #define AUTHOR "Test" new CsTeams:xTeam[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("SendAudio", "event_roundend_t", "a", "2&%!MRAD_terwin") //register_event("SendAudio", "event_roundend_ct", "a", "2&%!MRAD_ctwin") RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1); } public plugin_precache() { precache_sound("misc/win.mp3") precache_sound("misc/lose.mp3") } public event_roundend_t(id) { if(is_user_connected(id) && xTeam[id] == CS_TEAM_T) { //client_cmd(id, "mp3 play sound/misc/win") client_print(id,print_center, "Jestes TT") } } public Odrodzenie(id) { xTeam[id] = cs_get_user_team(id) if(is_user_connected(id) && xTeam[id] == CS_TEAM_T) client_print(id, print_chat, "Jestes w terro"); }
Przy odrodzeniu działa, natomiast po wygraniu rundy przez TT nadal nic.
get_user_team w ogóle nie działa (nawet przy respawnie)
Może są jeszcze inne sposoby sprawdzenia tego kto wygrał/przegrał rundę?
Edited by Scorpion Flail, 27.05.2014 00:18.
Best Answer
VertekS
27.05.2014
Mam taki kod:
public event_roundend_t(id) { if(is_user_connected(id) && xTeam[id] == CS_TEAM_T) { //client_cmd(id, "mp3 play sound/misc/win") client_print(id,print_center, "Jestes TT") } }Przy odrodzeniu działa, natomiast po wygraniu rundy przez TT nadal nic.
get_user_team w ogóle nie działa (nawet przy respawnie)
Może są jeszcze inne sposoby sprawdzenia tego kto wygrał/przegrał rundę?
W tym evencie nie sprawdzisz graczy po ID w ten sposób. Musisz zrobić pętle for:
for(new i = 1; i < 33; i++){ if(is_user_connected(i) && xTeam[i] == CS_TEAM_T) { client_cmd(i, "mp3 play sound/misc/win") client_print(i,print_center, "Jestes TT") } if(is_user_connected(i) && xTeam[i] == CS_TEAM_CT) { client_cmd(i, "mp3 play sound/misc/lose") client_print(i,print_center, "Jestes CT") } }
Pętlę for możesz usprawnić jeszcze poprzez użycie funkcji get_maxplayers() w plugin_precache i podstawienie wartości zwracanej przez nią w miejsce liczby 33.
Scorpion Flail
28.05.2014
Dzięki działa.
Teraz nie muszę nawet tworzyć zmiennej do przechowywania drużyny.