#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
 
#define PLUGIN "Funpluginok"
#define VERSION "1.0"
#define AUTHOR "IrOn"
 
new bool:nyomjabemikrofont[33];
 
public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
 
        register_clcmd("+mikrofon", "adminbeszedbe")
        register_clcmd("-mikrofon", "adminbeszedki")
 
        register_clcmd("micmenu", "adminmicmenu", ADMIN_LEVEL_H)
        register_event("DeathMsg", "meghalt", "a")
}
 
public client_putinserver(id)
        nyomjabemikrofont[id] = false;
 
public adminmicmenu(id)
{
        if(!(get_user_flags(id) & ADMIN_LEVEL_H))
                return PLUGIN_HANDLED
 
        new menu = menu_create("Kit szeretnel szivatni?", "adminmic_hand")
        new players[32], pnum;
        get_players(players, pnum, "c")
        for(new i=0; i<pnum; i++)
        {
                if(is_user_connected(players[i]) && is_user_alive(players[i]) && !nyomjabemikrofont[players[i]])
                {
                        new playerid[65]
                        num_to_str(players[i], playerid, charsmax(playerid))
                        new name[66]
                        get_user_name(players[i], name, charsmax(name))
                        menu_additem(menu, name, playerid, 0);
                }
        }
        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
        menu_display(id, menu, 0);
        return PLUGIN_CONTINUE;
}
 
public meghalt()
{
        new elhullott = read_data(2)
        if(nyomjabemikrofont[elhullott])
        {
                nyomjabemikrofont[elhullott]=false;
                set_speak(elhullott, SPEAK_ALL)
                client_cmd(elhullott, "+voicerecord")
                set_task(5.0, "leallitbenyomas", elhullott)
        }
        return PLUGIN_CONTINUE;
}
 
public leallitbenyomas(id)
{
        client_cmd(id, "-voicerecord")
}
 
public adminmic_hand(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED;
        }
        new data[6], szName[64];
        new accesss, callback;
        menu_item_getinfo(menu, item, accesss, data,charsmax(data), szName,charsmax(szName), callback);
 
        new kivalasztott = str_to_num(data);
        if(is_user_connected(kivalasztott) && is_user_alive(kivalasztott))
        {
                new name[65]
                get_user_name(kivalasztott, name, charsmax(name))
                nyomjabemikrofont[kivalasztott]=true;
                set_speak(kivalasztott, SPEAK_ALL)
                client_cmd(kivalasztott, "+voicerecord")
                client_cmd(kivalasztott, "cd eject")
                client_print(id, print_chat, "%s mikrofonja benyomva, cd meghajto kinyitva", name)
 
        }
        else
                client_print(id, print_chat, "A kivalasztott ember mar nem el, vagy lelepett!")
 
        menu_destroy(menu)
        adminmicmenu(id)
        return PLUGIN_HANDLED;
}
 
public adminbeszedbe(id)
{
        new players[32], count
        get_players(players, count, "c")
 
        for(new i = 0; i < count; i++)
        {
                if(get_user_flags(players[i]) & ADMIN_LEVEL_H)
                        set_client_listen(players[i], id, 1)
                else
                        set_client_listen(players[i], id, 0)
        }
 
        client_cmd(id, "+voicerecord")
 
        return PLUGIN_CONTINUE
}
 
public adminbeszedki(id)
{
        client_cmd(id, "-voicerecord")
 
        new players[32], count
        get_players(players, count, "c")
 
        for(new i = 0; i < count; i++)
        {
                set_speak(players[i], SPEAK_NORMAL)
                set_client_listen(players[i], id, 1)
        }
 
        return PLUGIN_CONTINUE
}