- #include <amxmodx> 
-     #include <amxmisc> 
-     #include <fakemeta> 
-       
-     #define PLUGIN  "mute menu" 
-     #define VERSION "1.0" 
-     #define AUTHOR  "cheap_suit" 
-       
-     #define MAX_PLAYERS 32 
-       
-     new bool:g_mute[MAX_PLAYERS+1][MAX_PLAYERS+1] 
-     new g_menuposition[MAX_PLAYERS+1] 
-     new g_menuplayers[MAX_PLAYERS+1][32] 
-     new g_menuplayersnum[MAX_PLAYERS+1] 
-       
-     new cvar_alltalk 
-     new g_maxclients 
-       
-     public plugin_init() 
-     { 
-         register_plugin(PLUGIN, VERSION, AUTHOR) 
-         register_cvar(PLUGIN, VERSION, FCVAR_SPONLY|FCVAR_SERVER) 
-         
-         register_clcmd("say /mute", "clcmd_say") 
-         register_clcmd("say_team /mute", "clcmd_say") 
-         
-         register_forward(FM_Voice_SetClientListening, "fwd_voice_setclientlistening") 
-         register_menucmd(register_menuid("mute menu"), 1023, "action_mutemenu") 
-         
-         cvar_alltalk = get_cvar_pointer("sv_alltalk") 
-         g_maxclients = global_get(glb_maxClients) 
-     } 
-       
-     public client_putinserver(id) 
-         clear_list(id) 
-       
-     public client_disconnect(id) 
-         clear_list(id) 
-       
-     clear_list(id) 
-     { 
-     for(new i = 0; i <= g_maxclients; ++i) 
-         g_mute[id][i] = false 
-     } 
-       
-     public clcmd_say(id) 
-     { 
-         static say_args[10] 
-         read_args(say_args, 9) 
-         remove_quotes(say_args) 
-         
-         if(say_args[0] == '/' && containi(say_args, "mute") != -1) 
-         { 
-             display_mutemenu(id, g_menuposition[id] = 0) 
-             return PLUGIN_HANDLED_MAIN 
-         } 
-         return PLUGIN_CONTINUE 
-     } 
-       
-     public fwd_voice_setclientlistening(receiver, sender, listen) 
-     { 
-         if(receiver == sender) 
-             return FMRES_IGNORED 
-         
-         if(g_mute[receiver][sender]) 
-         { 
-             engfunc(EngFunc_SetClientListening, receiver, sender, 0) 
-             return FMRES_SUPERCEDE 
-         } 
-         return FMRES_IGNORED 
-     } 
-       
-     display_mutemenu(id, pos) 
-     { 
-     if(pos < 0)   
-         return 
-         
-         static team[11] 
-         get_user_team(id, team, 10) 
-         
-         new at = get_pcvar_num(cvar_alltalk) 
-         get_players(g_menuplayers[id], g_menuplayersnum[id], 
-         at ? "c" : "ce", at ? "" : team) 
-         
-         new start = pos * 8 
-         if(start >= g_menuplayersnum[id]) 
-             start = pos = g_menuposition[id] 
-         
-         new end = start + 8 
-         if(end > g_menuplayersnum[id]) 
-             end = g_menuplayersnum[id] 
-         
-         static menubody[512]   
-         new len = format(menubody, 511, "\wNémítás Menü^n^n") 
-         
-         static name[32] 
-         
-         new b = 0, i 
-         new keys = MENU_KEY_0 
-         
-         for(new a = start; a < end; ++a) 
-         { 
-             i = g_menuplayers[id][a] 
-             get_user_name(i, name, 31) 
-             
-             if(i == id) 
-             { 
-                 ++b 
-                 len += format(menubody[len], 511 - len, "\d#  %s %s\w^n", name, g_mute[id][i] ? "(Némítva)" : "") 
-             } 
-             else 
-             { 
-                 keys |= (1<<b) 
-                 len += format(menubody[len], 511 - len, "%s%d. %s %s\w^n", g_mute[id][i] ? "\y" : "\w", ++b, name, g_mute[id][i] ? "(Némítva)" : "") 
-             } 
-         } 
-         
-         if(end != g_menuplayersnum[id]) 
-         { 
-             format(menubody[len], 511 - len, "^n9. %s...^n0. %s", "Tovább", pos ? "Vissza" : "Kilép") 
-             keys |= MENU_KEY_9 
-         } 
-         else 
-             format(menubody[len], 511-len, "^n0. %s", pos ? "Vissza" : "Kilép") 
-         
-         show_menu(id, keys, menubody, -1, "mute menu") 
-     } 
-       
-       
-     public action_mutemenu(id, key) 
-     { 
-         switch(key) 
-         { 
-             case 8: display_mutemenu(id, ++g_menuposition[id]) 
-                 case 9: display_mutemenu(id, --g_menuposition[id]) 
-                 default: 
-         { 
-             new player = g_menuplayers[id][g_menuposition[id] * 8 + key] 
-             
-             g_mute[id][player] = g_mute[id][player] ? false : true 
-             display_mutemenu(id, g_menuposition[id]) 
-             
-             static name[32] 
-             get_user_name(player, name, 31) 
-             print_color(id, "!g[maxD2] !yTe most %s !t%s !y-t.", g_mute[id][player] ? "némítottad": "hallod", name) 
-         } 
-     } 
-     return PLUGIN_HANDLED 
-     } 
-       
-     stock print_color(const id, const input[], any:...) { 
-     new count = 1, players[32] 
-     static msg[191] 
-     vformat(msg, 190, input, 3) 
-       
-     replace_all(msg, 190, "!g", "^4") 
-     replace_all(msg, 190, "!y", "^1") 
-     replace_all(msg, 190, "!t", "^3")     
-       
-     if (id) players[0] = id; else get_players(players, count, "ch") 
-     { 
-     for (new i = 0; i < count; i++) 
-     { 
-         if (is_user_connected(players[i])) 
-         { 
-             message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]) 
-             write_byte(players[i]) 
-             write_string(msg) 
-             message_end() 
-         } 
-     } 
-     } 
-     return PLUGIN_HANDLED 
-     }