Menu z lista graczy z drużyny
AnoMusiTak
20.05.2014
Mam pytanie jak zrobić menu z listą graczy z drużyny , mam menu z listą graczy całego serwera ale trzeba że tylko drużyna CT
public Zapros(id) if(is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_CT) { new menu = menu_create("Buduj z", "Zapros_Handle"); new cb = menu_makecallback("Grupa_Callback"); for(new i=0, n=0; i<=32; i++) { if(!is_user_connected(i)) continue; grupa_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0, cb); } menu_display(id, menu); }
To jest linijka menu i jak zrobić żeby tylko lista drużyny CT się pokazywała
Z góry dzięki , daję ++
Użytkownik AnoMusiTak edytował ten post 20.05.2014 20:13
korake
20.05.2014
public Zapros(id) if(is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_CT) { new menu = menu_create("Buduj z", "Zapros_Handle"); new cb = menu_makecallback("Grupa_Callback"); for(new i=0, n=0; i<=32; i++) { if(!is_user_connected(i)) continue; if(cs_get_user_team(i) != CS_TEAM_CT) continue; grupa_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0, cb); } menu_display(id, menu); }
Drago36
21.05.2014
new maxPlayers //(...) public plugin_cfg(){ maxPlayers=get_maxplayers(); } //(...) public Zapros(id) { new menu = menu_create("Buduj z", "Zapros_Handle"); new cb = menu_makecallback("Grupa_Callback"); for(new i = 1; i <= maxPlayers; i++) { if(is_user_alive(i) && get_user_team == 2 && i != id) // wyswietli sie lista zywych graczy z CT oraz na tej liscie twoj nick nie bedzie istanial { grupa_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0, cb); } } menu_display(id, menu); }
GwynBleidD
24.05.2014
NIE UŻYWAJ takiego menu pod ŻADNYM POZOREM!!! Żadnego wymienionego wcześniej w temacie!
Założę się, że w handlerze menu pobierasz znów listę graczy żeby się dowiedzieć który gracz został wybrany. Ale przecież od wyświetlenia menu do kliknięcia czegoś w nim może minąć sporo czasu. Zanim gracz przewertuje całą listę i znajdzie tego, co go interesuje, jeszcze przy okazji może z 3 fragi ustrzeli... a przez ten czas może kilka osób z serwera wyjść i kilka dojść przez co kolejność graczy się zmieni i wybrany gracz NIE BĘDZIE tym, który być wybrany powinien!!! A to może mieć katastrofalne skutki przy np menu banowania, możesz zbanować nawet sam siebie w ten sposób i skutecznie zablokować sobie dostęp do serwera na długi czas.
Dlatego przy tworzeniu gracza ZAWSZE w info (3 parametr menu_additem, tam gdzie teraz podajesz "0" podaj przekonwertowane na string id z get_user_userid(i). Następnie odnajdź tego gracza w handlerze po tym ID (np poprzez find_player albo lecąc pętlą po graczach i porównując userid). W ten sposób będziesz w 100% pewny, że trafisz na właściwego gracza, bo userid jest unikalne w obrębie serwera!
Założę się, że w handlerze menu pobierasz znów listę graczy żeby się dowiedzieć który gracz został wybrany. Ale przecież od wyświetlenia menu do kliknięcia czegoś w nim może minąć sporo czasu. Zanim gracz przewertuje całą listę i znajdzie tego, co go interesuje, jeszcze przy okazji może z 3 fragi ustrzeli... a przez ten czas może kilka osób z serwera wyjść i kilka dojść przez co kolejność graczy się zmieni i wybrany gracz NIE BĘDZIE tym, który być wybrany powinien!!! A to może mieć katastrofalne skutki przy np menu banowania, możesz zbanować nawet sam siebie w ten sposób i skutecznie zablokować sobie dostęp do serwera na długi czas.
Dlatego przy tworzeniu gracza ZAWSZE w info (3 parametr menu_additem, tam gdzie teraz podajesz "0" podaj przekonwertowane na string id z get_user_userid(i). Następnie odnajdź tego gracza w handlerze po tym ID (np poprzez find_player albo lecąc pętlą po graczach i porównując userid). W ten sposób będziesz w 100% pewny, że trafisz na właściwego gracza, bo userid jest unikalne w obrębie serwera!