Mute Menú con CHAT y MICRÓFONO
#1
Simplemente, mutea al jugador vía chat, micrófono o vía todo directamente. Sí falla algo, me avisan..
Y sé que esta el de Cristian, pero quiero poner este que es más sencillo..
Es una versión un poquito más estable que la "vieja" [cosa que esta codeada para el orto]. Que deje por si les interesa en este thread.
Versión vieja
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <colorchat>

#define PREFIX_MENU        "\r[COMUNIDAD]\w"
#define PREFIX_SAY        "^4[COMUNIDAD]^1"

enum
{
    
CHAT=0,
    
VOZ,
    
TODO
};

new 
bool:g_mute[3][33][33];

new 
g_maxplayers;

public 
plugin_cfg()
    
server_cmd("amx_pausecfg add ^"Mute Menu^"");
public 
plugin_init() {
    
register_plugin("Mute Menu""v1.0""heNK'");
    
    
register_clcmd("say /mute""MuteMenu");
    
    
register_message(get_user_msgid ("SayText"), "Message_SayText");
    
    
register_forward(FM_Voice_SetClientListening"forward_SetVoice",0);
    
    
set_task((60.0*5.0), "TaskShowPublicidad", .flags="b");
    
    
g_maxplayers get_maxplayers();
}

public 
forward_SetVoice(receiversenderbool:bListen)
{
    if(
sender == receiver)
        return 
FMRES_IGNORED;
    
    if(
g_mute[VOZ][receiver][sender] || (g_mute[TODO][receiver][sender])) {
        
engfunc(EngFunc_SetClientListeningreceiversender0);
        return 
FMRES_SUPERCEDE;
    }
    return 
FMRES_IGNORED;
}

public 
Message_SayText(msgIdmsgDestid
{
    if(
g_mute[CHAT][id][get_msg_arg_int(1)] || (g_mute[TODO][id][get_msg_arg_int(1)]))
        return 
PLUGIN_HANDLED;
    return 
PLUGIN_CONTINUE;
    
}
public 
MuteMenu(id) {
    new 
Titulo[100];
    
formatex(Titulocharsmax(Titulo), "%s Mute Menu"PREFIX_MENU);
    
    new 
menu menu_create(Titulo"HandlerMuteMenu");
    
    for(new 
id2 1id2 <= g_maxplayersid2++) {
        if(
is_user_connected(id2) && (id2 != id) && !(is_user_bot(id2))) {
            new 
Nombre[32], szId[13];
            
formatex(szIdcharsmax(szId), "%d %d"id2get_user_userid(id2));
            
get_user_name(id2Nombrecharsmax(Nombre));
            if(
is_user_admin(id2))
                
formatex(Titulocharsmax(Titulo), "%s \y(ADMIN)"Nombre);
            else    
formatex(Titulocharsmax(Titulo), "%s"Nombre);
            
            
menu_additem(menuTituloszId);
        }
    }
    
    
menu_setprop(menuMPROP_NUMBER_COLOR"\y"),
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente"),
    
menu_setprop(menuMPROP_EXITNAME"Salir"),
    
menu_setprop(menuMPROP_BACKNAME"Atras");
    
menu_display(idmenu0);
}

public 
HandlerMuteMenu(idmenuitem)
{
    if(
item == MENU_EXIT) {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
accesscallback;
    new 
info[64], name[64];
    
menu_item_getinfo(menuitemaccessinfocharsmax(info), namecharsmax(name), callback);
    
    new 
player[11], userid[11], id2szId;
    
parse(infoplayercharsmax(player), useridcharsmax(userid));
    
id2 str_to_num(player),
    
szId str_to_num(userid);
    
    if(
is_user_connected(id2) && !is_user_bot(id2) && (szId != get_user_userid(id))) {
        new 
Nombre[32];
        
get_user_name(id2Nombrecharsmax(Nombre));
        
MutePlayer(idNombreid2);
    }
    
    return 
PLUGIN_HANDLED;
}

public 
MutePlayer(idNombre[], Player
{
    new 
Titulo[100];
    
formatex(Titulocharsmax(Titulo), "%s Mute Menu^nPlayer: \y%s"PREFIX_MENUNombre);
    
    new 
menu menu_create(Titulo"HandlerMutePlayer");
    new 
numero[3]; 
    
num_to_str(Playernumerocharsmax(numero)); //Pasamos el "id" del player..
    
    
formatex(Titulocharsmax(Titulo), "Mutear por SAY \y[%s]"g_mute[CHAT][id][Player] ? "Muteado" "Desmuteado");
    
menu_additem(menuTitulonumero);
    
formatex(Titulocharsmax(Titulo), "Mutear por MICROFONO \y[%s]"g_mute[VOZ][id][Player] ? "Muteado" "Desmuteado");
    
menu_additem(menuTitulonumero);
    
formatex(Titulocharsmax(Titulo), "Mutear por SAY y MICROFONO \y[%s]"g_mute[TODO][id][Player] ? "Muteado" "Desmuteado");
    
menu_additem(menuTitulonumero);
    
    
menu_setprop(menuMPROP_NUMBER_COLOR"\y"),
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente"),
    
menu_setprop(menuMPROP_EXITNAME"Salir"),
    
menu_setprop(menuMPROP_BACKNAME"Atras");
    
menu_display(idmenu0);
}

public 
HandlerMutePlayer(idmenuitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    static 
szData[100], nada;
    
menu_item_getinfo(menuitemnadaszDatacharsmax(szData), ""_nada);
    
    new 
id2 str_to_num(szData);
    new 
Nombre[32]; 
    
get_user_name(id2Nombrecharsmax(Nombre));
    
    switch(
item) {
        case 
0: {
            
g_mute[CHAT][id][id2] = !(g_mute[CHAT][id][id2]);
            
ColorChat(idGREEN"%s Le %s el say a ^3%s"PREFIX_SAY, (g_mute[CHAT][id][id2]) ? "Muteaste" "Desmuteaste"Nombre);
        }
        case 
1: {
            
g_mute[VOZ][id][id2] = !(g_mute[VOZ][id][id2]);
            
ColorChat(idGREEN"%s Le %s el microfono a ^3%s"PREFIX_SAY, (g_mute[VOZ][id][id2]) ? "Muteaste" "Desmuteaste"Nombre);
        }
        case 
2: {
            
g_mute[TODO][id][id2] = !(g_mute[TODO][id][id2]);
            
ColorChat(idGREEN"%s Le %s chat y microfono a ^3%s"PREFIX_SAY, (g_mute[TODO][id][id2]) ? "Muteaste" "Desmuteaste"Nombre);
        }
    }
    
    
MutePlayer(idNombreid2);
    
    return 
PLUGIN_HANDLED;
}

public 
TaskShowPublicidad()
    
ColorChat(0GREEN"%s Si un jugador te esta molestado, escribe ^3/mute ^1y mutealo de SAY o MICROFONO"PREFIX_SAY); 
Responder
#2
wtf porque le das tantos segundos Oh god why
Código PHP:
set_task((60.0*360.0), 
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder
#3
Tenés razón, me excedi demasiado... Ahora lo arreglo.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)