21/05/2019, 10:55 PM
(Última modificación: 23/05/2019, 10:07 AM por Niper.-.. Edited 3 times in total.)
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
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(receiver, sender, bool:bListen)
{
if(sender == receiver)
return FMRES_IGNORED;
if(g_mute[VOZ][receiver][sender] || (g_mute[TODO][receiver][sender])) {
engfunc(EngFunc_SetClientListening, receiver, sender, 0);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public Message_SayText(msgId, msgDest, id)
{
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(Titulo, charsmax(Titulo), "%s Mute Menu", PREFIX_MENU);
new menu = menu_create(Titulo, "HandlerMuteMenu");
for(new id2 = 1; id2 <= g_maxplayers; id2++) {
if(is_user_connected(id2) && (id2 != id) && !(is_user_bot(id2))) {
new Nombre[32], szId[13];
formatex(szId, charsmax(szId), "%d %d", id2, get_user_userid(id2));
get_user_name(id2, Nombre, charsmax(Nombre));
if(is_user_admin(id2))
formatex(Titulo, charsmax(Titulo), "%s \y(ADMIN)", Nombre);
else formatex(Titulo, charsmax(Titulo), "%s", Nombre);
menu_additem(menu, Titulo, szId);
}
}
menu_setprop(menu, MPROP_NUMBER_COLOR, "\y"),
menu_setprop(menu, MPROP_NEXTNAME, "Siguiente"),
menu_setprop(menu, MPROP_EXITNAME, "Salir"),
menu_setprop(menu, MPROP_BACKNAME, "Atras");
menu_display(id, menu, 0);
}
public HandlerMuteMenu(id, menu, item)
{
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new access, callback;
new info[64], name[64];
menu_item_getinfo(menu, item, access, info, charsmax(info), name, charsmax(name), callback);
new player[11], userid[11], id2, szId;
parse(info, player, charsmax(player), userid, charsmax(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(id2, Nombre, charsmax(Nombre));
MutePlayer(id, Nombre, id2);
}
return PLUGIN_HANDLED;
}
public MutePlayer(id, Nombre[], Player)
{
new Titulo[100];
formatex(Titulo, charsmax(Titulo), "%s Mute Menu^nPlayer: \y%s", PREFIX_MENU, Nombre);
new menu = menu_create(Titulo, "HandlerMutePlayer");
new numero[3];
num_to_str(Player, numero, charsmax(numero)); //Pasamos el "id" del player..
formatex(Titulo, charsmax(Titulo), "Mutear por SAY \y[%s]", g_mute[CHAT][id][Player] ? "Muteado" : "Desmuteado");
menu_additem(menu, Titulo, numero);
formatex(Titulo, charsmax(Titulo), "Mutear por MICROFONO \y[%s]", g_mute[VOZ][id][Player] ? "Muteado" : "Desmuteado");
menu_additem(menu, Titulo, numero);
formatex(Titulo, charsmax(Titulo), "Mutear por SAY y MICROFONO \y[%s]", g_mute[TODO][id][Player] ? "Muteado" : "Desmuteado");
menu_additem(menu, Titulo, numero);
menu_setprop(menu, MPROP_NUMBER_COLOR, "\y"),
menu_setprop(menu, MPROP_NEXTNAME, "Siguiente"),
menu_setprop(menu, MPROP_EXITNAME, "Salir"),
menu_setprop(menu, MPROP_BACKNAME, "Atras");
menu_display(id, menu, 0);
}
public HandlerMutePlayer(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
static szData[100], nada;
menu_item_getinfo(menu, item, nada, szData, charsmax(szData), "", _, nada);
new id2 = str_to_num(szData);
new Nombre[32];
get_user_name(id2, Nombre, charsmax(Nombre));
switch(item) {
case 0: {
g_mute[CHAT][id][id2] = !(g_mute[CHAT][id][id2]);
ColorChat(id, GREEN, "%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(id, GREEN, "%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(id, GREEN, "%s Le %s chat y microfono a ^3%s", PREFIX_SAY, (g_mute[TODO][id][id2]) ? "Muteaste" : "Desmuteaste", Nombre);
}
}
MutePlayer(id, Nombre, id2);
return PLUGIN_HANDLED;
}
public TaskShowPublicidad()
ColorChat(0, GREEN, "%s Si un jugador te esta molestado, escribe ^3/mute ^1y mutealo de SAY o MICROFONO", PREFIX_SAY);