←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

hookowanie say_team

Zablokowany

  • +
  • -
stepdub - zdjęcie stepdub 29.08.2011

Witam, mam problem z tym. Może rozwiązanie jest proste, może jednak nie?
Powiedzmy mam taki kod:
public plugin_init() register_clcmd("say_team", "hook_say_team")

public hook_say_team(id) //bla bla bla


i jak teraz pokazać wiadomość jednej drużynie?
bo mam id, czyli jedną osobę, która wpisuje wiadomość, jeżeli dam warunek teamu i dam np. ColorChat(id, GREY, "blabla");
to wyświetli jednej osobie, jak dam 0 to wyświetli wszystkim? czy się mylę?

W każdym razie proszę o pomoc :)
Odpowiedz

Dwdov - zdjęcie Dwdov 29.08.2011

Trzeba zrobić pętle po graczach

new iPlayers[32], iNum, iForwardRet;
get_players( iPlayers, iNum );

for( new i = 0 ; i < iNum ; i++ )
{
new id = iPlayers[i]

if( !is_user_alive( id ) && get_user_team( id ) != 2 ) continue; //pokazuje tylko dla tt
//kod
}
Odpowiedz

  • +
  • -
byCZUS - zdjęcie byCZUS 29.08.2011

Widzę kopiuj wklej z jakiegoś kodu po co sprawdzać czy on jest żywy i jego team później jeżeli funkcja get_players ma to wbudowane w sobie ?

new players[32], num, pid;
get_players(players, num, "e", "TERRORIST");

for(new i = 0; i < num; i++) {
pid = players[i];
// działania na graczach np client_print(pid, print_chat, "asd");
}


Jeżeli chcesz tylko żywych to zamień
get_players(players, num, "e", "TERRORIST");
na
get_players(players, num, "ae", "TERRORIST");
Odpowiedz

  • +
  • -
stepdub - zdjęcie stepdub 29.08.2011

a powiedzmy, że chce to zrobić na Zombie Plague 4.3, wrzuciłem get_user_team fix, więc chyba teoretycznie powinno wyświetlać prawidłowym osobom? Dołączona grafika
Użytkownik stepdub edytował ten post 29.08.2011 13:26
Odpowiedz
Zablokowany