Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <fakemeta>
- #define PLUGIN "Mute Menu"
- #define VERSION "1.5"
- #define AUTHOR "Sugisaki"
- new bool:iPmuted[33][33]
- new bool:iMute_by_admin[33]
- new iMaxP
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- register_forward(FM_Voice_SetClientListening, "pfn_voice_hook")
- register_clcmd("say /mute", "pfn_mute_menu_callbegin")
- iMaxP = get_maxplayers()
- }
- stock bool:is_user_admin(id)
- {
- return (get_user_flags(id) & ADMIN_BAN) ? true : false
- }
- public pfn_voice_hook(r, s, l)
- {
- if(s == r) return FMRES_IGNORED
- if(iPmuted[r][s] || iMute_by_admin[s])
- {
- engfunc(EngFunc_SetClientListening, r, s, 0)
- return FMRES_SUPERCEDE
- }
- return FMRES_IGNORED
- }
- public client_putinserver(id)
- {
- for(new i = 1 ; i <= iMaxP ; i++)
- {
- iPmuted[i][id] = false
- }
- iMute_by_admin[id] = false
- }
- public client_disconnect(id)
- {
- for(new i = 1 ; i <= iMaxP ; i++)
- {
- iPmuted[id][i] = false
- }
- iMute_by_admin[id] = false
- }
- public pfn_mute_menu_callbegin(id)
- {
- if(!is_user_connected(id))
- return PLUGIN_HANDLED
- new menu = menu_create("\rMute Menu", "mh_menu_callbegin")
- menu_additem(menu, "Silenciar")
- menu_additem(menu, "Escuchar")
- menu_addblank(menu, 3)
- if(is_user_admin(id))
- menu_additem(menu, "Admin menu")
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display(id, menu)
- return PLUGIN_HANDLED
- }
- public mh_menu_callbegin(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- menu_destroy(menu)
- switch(item)
- {
- case 0: make_menu_mute(id)
- case 1: make_menu_listen(id)
- case 2:
- {
- if(!is_user_admin(id))
- return PLUGIN_HANDLED
- make_admin_menu(id)
- }
- }
- return PLUGIN_HANDLED
- }
- make_menu_mute(id)
- {
- new menu = menu_create("\rSelect Player", "mh_mute")
- new name[32], num[3]
- for(new i = 1 ; i <= iMaxP ; i++)
- {
- if(!is_user_connected(i) || iPmuted[id][i] || id == i)
- continue
- get_user_name(i, name, 31)
- num_to_str(i, num, 2)
- menu_additem(menu, name, num)
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display(id, menu)
- return PLUGIN_HANDLED
- }
- public mh_mute(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new name[32], num[3], a, c
- menu_item_getinfo(menu, item, a, num, charsmax(num), name, charsmax(name), c)
- menu_destroy(menu)
- c = str_to_num(num)
- client_print(id, print_chat, "[AMXX] Has silenciado a %s", name)
- iPmuted[id][c] = true
- return PLUGIN_HANDLED
- }
- make_menu_listen(id)
- {
- new menu = menu_create("\rSelect Player", "mh_listen")
- new name[32], num[3]
- for(new i = 1 ; i <= iMaxP ; i++)
- {
- if(!is_user_connected(i) || !(iPmuted[id][i]) || id == i)
- continue;
- get_user_name(i, name, 31);
- num_to_str(i, num, 2);
- menu_additem(menu, name, num);
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display(id, menu)
- return PLUGIN_HANDLED
- }
- public mh_listen(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new name[32], num[3], a, c
- menu_item_getinfo(menu, item, a, num, charsmax(num), name, charsmax(name), c)
- menu_destroy(menu)
- c = str_to_num(num)
- client_print(id, print_chat, "[AMXX] Has vuelto a escuchar a %s", name)
- iPmuted[id][c] = false
- return PLUGIN_HANDLED
- }
- make_admin_menu(id)
- {
- if(!is_user_admin(id))
- return PLUGIN_HANDLED
- new menu = menu_create("\rAdmin Menu", "mh_admin_menu_callbegin")
- menu_additem(menu, "Silenciar")
- menu_additem(menu, "Escuchar")
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display(id, menu)
- return PLUGIN_HANDLED
- }
- public mh_admin_menu_callbegin(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- menu_destroy(menu)
- switch(item)
- {
- case 0: make_admin_menu_mute(id)
- case 1: make_admin_menu_listen(id)
- }
- return PLUGIN_HANDLED
- }
- make_admin_menu_mute(id)
- {
- new menu = menu_create("\rSelect Player", "mh_admin_mute")
- new name[32], num[3]
- for(new i = 1 ; i <= iMaxP ; i++)
- {
- if(!is_user_connected(i) || iMute_by_admin[i] || id == i)
- continue
- get_user_name(i, name, 31)
- num_to_str(i, num, 2)
- menu_additem(menu, name, num)
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display(id, menu)
- return PLUGIN_HANDLED
- }
- public mh_admin_mute(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new name[32], num[3], a, c, admin[32]
- menu_item_getinfo(menu, item, a, num, charsmax(num), name, charsmax(name), c)
- menu_destroy(menu)
- get_user_name(id, admin, 31)
- c = str_to_num(num)
- iMute_by_admin[c] = true
- client_print(0, print_chat, "[AMXX] Admin %s ha silenciado a %s", admin, name)
- return PLUGIN_HANDLED
- }
- make_admin_menu_listen(id)
- {
- new menu = menu_create("\rSelect Player", "mh_admin_listen")
- new name[32], num[3]
- for(new i = 1 ; i <= iMaxP ; i++)
- {
- if(!is_user_connected(i) || !(iMute_by_admin[i]) || id == i)
- continue
- get_user_name(i, name, 31)
- num_to_str(i, num, 2)
- menu_additem(menu, name, num)
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display(id, menu)
- return PLUGIN_HANDLED
- }
- public mh_admin_listen(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new name[32], num[3], a, c, admin[32]
- menu_item_getinfo(menu, item, a, num, charsmax(num), name, charsmax(name), c)
- menu_destroy(menu)
- get_user_name(id, admin, 31)
- c = str_to_num(num)
- iMute_by_admin[c] = false
- client_print(0, print_chat, "[AMXX] Admin %s le dio otra oportunidad a %s para volver a hablar", admin, name)
- return PLUGIN_HANDLED
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement