Como puedo cambiar el mute a un muteo global
#1
Como puedo cambiar el mute a un mute global para admin es que lo quiero poner solo para admin pero quiero que el mute sea global que todos dejemos de escuchar al jugador no solo el jugador que lanza el mute

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <reapi>

#define PLUGIN  "[ReAPI] Mute Menu"
#define VERSION "1.0"
#define AUTHOR  "GabsHp"

//Creditos
// g0ze: correción del userid

#define GetPlayerBit(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetPlayerBit(%1,%2) %1 |= (1 << (%2 & 31))
#define ClearPlayerBit(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_maxPlayersg_iConnected;

public 
plugin_init()
{
    register_plugin(PLUGINVERSIONAUTHOR);
    g_maxPlayers get_maxplayers();

    register_clcmd("say /mute""muteMenu");
}

public 
client_putinserver(id)
{
    SetPlayerBit(g_iConnectedid);
}

public 
client_disconnected(id)
{
    ClearPlayerBit(g_iConnectedid);
}

public 
muteMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;

    static iMenuszTitle[32], szText[64], szIndex16 ], bool:i_CanHear;
    formatex(szTitlecharsmax(szTitle), "\r[ReAPI] \wMute Menu");

    iMenu menu_create(szTitle"muteMenu_Handler");
    for(new 1<= g_maxPlayersi++)
    {
        if(!GetPlayerBit(g_iConnectedi))
            continue;
        if(== id)
            continue;
        static szName[33];
        get_user_name(iszNamecharsmax(szName));
        i_CanHear rg_get_can_hear_player(idi);
        formatex(szTextcharsmax(szText), "\y[\w%s\y]    \r[\w%s\r]"szNamei_CanHear "ON" "OFF");
        formatex(szIndexcharsmax(szIndex), "%d#%d"iget_user_userid(i));

        menu_additem(iMenuszTextszIndex);
    }
    menu_setprop(iMenuMPROP_BACKNAME"Atrás");
    menu_setprop(iMenuMPROP_NEXTNAME"Siguiente");
    menu_setprop(iMenuMPROP_EXITNAME"Salir");
    menu_display(idiMenu);
    return PLUGIN_HANDLED;
}


public 
muteMenu_Handler(idiMenuiItem)
{
    if((iItem == MENU_EXIT) || !GetPlayerBit(g_iConnectedid))
    {
        menu_destroyiMenu );
        
        
return PLUGIN_HANDLED;
    }
    
    
new szInfo[16], szTarget[4], szUserId[8];
    
    
new iNumiTargetiUserId;
    
    menu_item_getinfo
(iMenuiItemiNumszInfocharsmax(szInfo), __iNum);
    menu_destroyiMenu );
    
    strtok
(szInfoszTargetcharsmax(szTarget), szUserIdcharsmax(szUserId), '#');
    
    iTarget 
str_to_num(szTarget);
    iUserId str_to_num(szUserId);

    if (!GetPlayerBit(g_iConnectediTarget) || (get_user_userid(iTarget) != iUserId)) 
    {
        client_print_color(idprint_team_default"^4[ReAPI]^1 El jugador al que seleccionaste ya no está conectado!");
        muteMenu(id);
        return PLUGIN_HANDLED;
    }
    static szName[32], bool:i_CanHear;
    i_CanHear rg_get_can_hear_player(idiTarget);
    get_user_name(iTargetszNamecharsmax(szName));
    switch(i_CanHear)
    {
        case true:
        {
            rg_set_can_hear_player(idiTargetfalse);
            client_print_color(idprint_team_default"^4[ReAPI]^1 Has ^4muteado^1 al jugador ^4%s^1!"szName);
        }
        case false:
        {
            rg_set_can_hear_player(idiTargettrue);
            client_print_color(idprint_team_default"^4[ReAPI]^1 Has ^4desmuteado^1 al jugador ^4%s^1!"szName);
        }
    }
    muteMenu(id);
    return PLUGIN_HANDLED;

Pawn Básico no critiquen xD  Approved

Responder
#2
(12/06/2021, 12:35 AM)Meliodas escribió: Como puedo cambiar el mute a un mute global para admin es que lo quiero poner solo para admin pero quiero que el mute sea global que todos dejemos de escuchar al jugador no solo el jugador que lanza el mute

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <reapi>

#define PLUGIN  "[ReAPI] Mute Menu"
#define VERSION "1.0"
#define AUTHOR  "GabsHp"

//Creditos
// g0ze: correción del userid

#define GetPlayerBit(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetPlayerBit(%1,%2) %1 |= (1 << (%2 & 31))
#define ClearPlayerBit(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_maxPlayersg_iConnected;

public 
plugin_init()
{
    register_plugin(PLUGINVERSIONAUTHOR);
    g_maxPlayers get_maxplayers();

    register_clcmd("say /mute""muteMenu");
}

public 
client_putinserver(id)
{
    SetPlayerBit(g_iConnectedid);
}

public 
client_disconnected(id)
{
    ClearPlayerBit(g_iConnectedid);
}

public 
muteMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;

    static iMenuszTitle[32], szText[64], szIndex16 ], bool:i_CanHear;
    formatex(szTitlecharsmax(szTitle), "\r[ReAPI] \wMute Menu");

    iMenu menu_create(szTitle"muteMenu_Handler");
    for(new 1<= g_maxPlayersi++)
    {
        if(!GetPlayerBit(g_iConnectedi))
            continue;
        if(== id)
            continue;
        static szName[33];
        get_user_name(iszNamecharsmax(szName));
        i_CanHear rg_get_can_hear_player(idi);
        formatex(szTextcharsmax(szText), "\y[\w%s\y]    \r[\w%s\r]"szNamei_CanHear "ON" "OFF");
        formatex(szIndexcharsmax(szIndex), "%d#%d"iget_user_userid(i));

        menu_additem(iMenuszTextszIndex);
    }
    menu_setprop(iMenuMPROP_BACKNAME"Atrás");
    menu_setprop(iMenuMPROP_NEXTNAME"Siguiente");
    menu_setprop(iMenuMPROP_EXITNAME"Salir");
    menu_display(idiMenu);
    return PLUGIN_HANDLED;
}


public 
muteMenu_Handler(idiMenuiItem)
{
    if((iItem == MENU_EXIT) || !GetPlayerBit(g_iConnectedid))
    {
        menu_destroyiMenu );
        
        
return PLUGIN_HANDLED;
    }
    
    
new szInfo[16], szTarget[4], szUserId[8];
    
    
new iNumiTargetiUserId;
    
    menu_item_getinfo
(iMenuiItemiNumszInfocharsmax(szInfo), __iNum);
    menu_destroyiMenu );
    
    strtok
(szInfoszTargetcharsmax(szTarget), szUserIdcharsmax(szUserId), '#');
    
    iTarget 
str_to_num(szTarget);
    iUserId str_to_num(szUserId);

    if (!GetPlayerBit(g_iConnectediTarget) || (get_user_userid(iTarget) != iUserId)) 
    {
        client_print_color(idprint_team_default"^4[ReAPI]^1 El jugador al que seleccionaste ya no está conectado!");
        muteMenu(id);
        return PLUGIN_HANDLED;
    }
    static szName[32], bool:i_CanHear;
    i_CanHear rg_get_can_hear_player(idiTarget);
    get_user_name(iTargetszNamecharsmax(szName));
    switch(i_CanHear)
    {
        case true:
        {
            rg_set_can_hear_player(idiTargetfalse);
            client_print_color(idprint_team_default"^4[ReAPI]^1 Has ^4muteado^1 al jugador ^4%s^1!"szName);
        }
        case false:
        {
            rg_set_can_hear_player(idiTargettrue);
            client_print_color(idprint_team_default"^4[ReAPI]^1 Has ^4desmuteado^1 al jugador ^4%s^1!"szName);
        }
    }
    muteMenu(id);
    return PLUGIN_HANDLED;


Código PHP:
rg_set_can_hear_player(idiTargetfalse); 
-------------------------------------->
Código PHP:
rg_set_can_hear_player(0iTargetfalse); -> id jugadortodos 

Para el menu

Código PHP:
public muteMenu(id)
{
    if(!is_user_connected(id) && !is_user_admin(id))
        return PLUGIN_HANDLED;

    static iMenuszTitle[32], szText[64], szIndex16 ], bool:i_CanHear;
    formatex(szTitlecharsmax(szTitle), "\r[ReAPI] \wMute Menu");

    iMenu menu_create(szTitle"muteMenu_Handler");
    for(new 1<= g_maxPlayersi++)
    {
        if(!GetPlayerBit(g_iConnectedi))
            continue;
        if(== id)
            continue;
        static szName[33];
        get_user_name(iszNamecharsmax(szName));
        i_CanHear rg_get_can_hear_player(idi);
        formatex(szTextcharsmax(szText), "\y[\w%s\y]    \r[\w%s\r]"szNamei_CanHear "ON" "OFF");
        formatex(szIndexcharsmax(szIndex), "%d#%d"iget_user_userid(i));

        menu_additem(iMenuszTextszIndex);
    }
    menu_setprop(iMenuMPROP_BACKNAME"Atrás");
    menu_setprop(iMenuMPROP_NEXTNAME"Siguiente");
    menu_setprop(iMenuMPROP_EXITNAME"Salir");
    menu_display(idiMenu);
    return PLUGIN_HANDLED;

Desde el cel Insecure
Responder
#3
(12/06/2021, 01:01 AM)CARNAGE escribió:
Código PHP:
rg_set_can_hear_player(idiTargetfalse); 
-------------------------------------->
Código PHP:
rg_set_can_hear_player(0iTargetfalse); -> id jugadortodos 

Para el menu

Código PHP:
public muteMenu(id)
{
    if(!is_user_connected(id) && !is_user_admin(id))
        return PLUGIN_HANDLED;

    static iMenuszTitle[32], szText[64], szIndex16 ], bool:i_CanHear;
    formatex(szTitlecharsmax(szTitle), "\r[ReAPI] \wMute Menu");

    iMenu menu_create(szTitle"muteMenu_Handler");
    for(new 1<= g_maxPlayersi++)
    {
        if(!GetPlayerBit(g_iConnectedi))
            continue;
        if(== id)
            continue;
        static szName[33];
        get_user_name(iszNamecharsmax(szName));
        i_CanHear rg_get_can_hear_player(idi);
        formatex(szTextcharsmax(szText), "\y[\w%s\y]    \r[\w%s\r]"szNamei_CanHear "ON" "OFF");
        formatex(szIndexcharsmax(szIndex), "%d#%d"iget_user_userid(i));

        menu_additem(iMenuszTextszIndex);
    }
    menu_setprop(iMenuMPROP_BACKNAME"Atrás");
    menu_setprop(iMenuMPROP_NEXTNAME"Siguiente");
    menu_setprop(iMenuMPROP_EXITNAME"Salir");
    menu_display(idiMenu);
    return PLUGIN_HANDLED;

Desde el cel  Insecure
me sale esto en consola
Código PHP:
L 06/12/2021 01:17:28: [ReAPIrg_set_can_hear_playerinvalid player index 0 [arg_listener]

L 06/12/2021 01:17:28: [AMXXDisplaying debug trace (plugin "Pre-Mute.amxx"version "1.0")

L 06/12/2021 01:17:28: [AMXXRun time error 10native error (native "rg_set_can_hear_player")

L 06/12/2021 01:17:28: [AMXX]    [0Pre-Mute.sma::muteMenu_Handler (line 103
Pawn Básico no critiquen xD  Approved

Responder
#4
(12/06/2021, 12:35 AM)Meliodas escribió: Como puedo cambiar el mute a un mute global para admin es que lo quiero poner solo para admin pero quiero que el mute sea global que todos dejemos de escuchar al jugador no solo el jugador que lanza el mute

(06/07/2016, 12:24 AM)Cristian escribió: Bueno, ya que ando muy retirado de la programación (AMXX) voy a publicar este plugin que hice hace tiempo, que consiste en un mute que mutear CHAT y MICRÓFONO, aparte de tener incorporado la opción de amordazar / desamordazar mediante menú (SOLO ADMIN). Espero que les sea útil.

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#pragma semicolon 1
#define SZPREFIX "!g[MUTE]"

const OFFSET_CSMENUCODE 205;
const 
OFFSET_MENU_OFFSET 5;

enum _:MUTE_STRUCT
{
 
MICROPHONE,
 
CHAT,
 
GAGGED
};

enum _:GAG_STRUCT
{
 
PLAYER,
 
TARGET,
 
TIME
};

new const 
TITTLE_MENUES[][] = { "MICRÓFONO""CHAT""TODO \d[GAG]" };

new 
g_mute[33][MUTE_STRUCT][33];
new 
g_gag[33][GAG_STRUCT];
new 
g_page[33];
new 
g_maxplayers[1 char];
new 
g_msgsaytext;

public 
plugin_init()
{
 
register_plugin("Mute Menú""1.0""Cristian'");
 
 
register_clcmd("say""clcmd_say");
 
register_clcmd("say_team""clcmd_say");
 
register_clcmd("say /mute""clcmd_mute");
 
register_clcmd("say_team /mute""clcmd_mute");
 
register_clcmd("AMORDAZAR_TIEMPO""clcmd_gag");
 
 
register_forward(FM_Voice_SetClientListening"fw_Voice_SetClientListening");
 
 
g_msgsaytext get_user_msgid("SayText");
 
register_message(g_msgsaytext"message_saytext");
 
 
g_maxplayers{0} = get_maxplayers();
 
 
set_task(120.0"print_message"0__"b");
}

public 
print_message()
 
chat_color(0"%s !yEscribí !g/mute!y para silenciar a un jugador molesto."SZPREFIX);
 
public 
clcmd_say(id)
{
 if (
g_gag[id][PLAYER])
 {
 
chat_color(id"%s !yEstás amordazado. No podés hablar ni escribir."SZPREFIX);
 return 
PLUGIN_HANDLED;
 }
 
 return 
PLUGIN_CONTINUE;
}
 
public 
clcmd_mute(id)
{
 static 
menu;
 
menu menu_create("\r[MUTE] \yMUTE MENÚ""handled_clcmd_mute");
 
 
menu_additem(menu"SILENCIAR MICRÓFONO""1"0);
 
menu_additem(menu"SILENCIAR CHAT""2"0);
 
 if (
is_user_admin(id))
 
menu_additem(menu"AMORDAZAR JUGADOR""3"0);
 
 
menu_display(idmenu);
 return 
PLUGIN_HANDLED;
}

public 
handled_clcmd_mute(idmenuitem)
{
 if (
item == MENU_EXIT)
 {
 
menu_destroy(menu);
 return;
 }
 
 
g_page[id] = item;
 
show_menu_players(id);
 
 
menu_destroy(menu);
}

public 
show_menu_players(id)
{
 static 
menuisztext[128], num[7], name[32];
 
format(sztextcharsmax(sztext), "\ySILENCIAR %s"TITTLE_MENUES[g_page[id]]);
 
menu menu_create(sztext"handled_show_players");
 
 switch(
g_page[id])
 {
 case 
MICROPHONE:
 {
 for (
1<= g_maxplayers{0}; i++)
 {
 if (!
is_user_connected(i))
 continue;
 
 if (
== id)
 continue;
 
 if (
get_user_flags(i) & ADMIN_IMMUNITY)
 continue;
 
 
num_to_str(inumcharsmax(num));
 
get_user_name(inamecharsmax(name));
 
format(sztextcharsmax(sztext), "%s%s %s", (g_mute[id][MICROPHONE][i]) ? "\d" "\w"name, (g_mute[id][MICROPHONE][i]) ? "\y[SILENCIADO]" "");
 
menu_additem(menusztextnum);
 }
 }
 case 
CHAT:
 {
 for (
1<= g_maxplayers{0}; i++)
 {
 if (!
is_user_connected(i))
 continue;
 
 if (
== id)
 continue;
 
 if (
get_user_flags(i) & ADMIN_IMMUNITY)
 continue;
 
 
num_to_str(inumcharsmax(num));
 
get_user_name(inamecharsmax(name));
 
format(sztextcharsmax(sztext), "%s%s %s", (g_mute[id][CHAT][i]) ? "\d" "\w"name, (g_mute[id][CHAT][i]) ? "\y[SILENCIADO]" "");
 
menu_additem(menusztextnum);
 }
 }
 case 
GAGGED:
 {
 if (!
is_user_admin(id))
 {
 
menu_destroy(menu);
 return;
 }
 
 for (
1<= g_maxplayers{0}; i++)
 {
 if (!
is_user_connected(i))
 continue;
 
 if (
== id)
 continue;
 
 if (
get_user_flags(i) & ADMIN_IMMUNITY)
 continue;
 
 
num_to_str(inumcharsmax(num));
 
get_user_name(inamecharsmax(name));
 
format(sztextcharsmax(sztext), "%s%s %s", (g_gag[i][PLAYER]) ? "\d" "\w"name, (g_gag[i][PLAYER]) ? "[AMORDAZADO]" "");
 
menu_additem(menusztextnum);
 }
 }
 }
 
 
menu_setprop(menuMPROP_BACKNAME"ATRÁS");
 
menu_setprop(menuMPROP_NEXTNAME"SIGUIENTE");
 
menu_setprop(menuMPROP_EXITNAME"VOLVER");
 
 
set_pdata_int(idOFFSET_CSMENUCODEfalseOFFSET_MENU_OFFSET);
 
 
menu_display(idmenu);
}

public 
handled_show_players(idmenuitem)
{
 if (
item == MENU_EXIT)
 {
 
menu_destroy(menu);
 
clcmd_mute(id);
 return;
 }
 
 static 
targetnum[7], callbackdataname[32];
 
menu_item_getinfo(menuitemdatanumcharsmax(num), __callback);
 
 
target str_to_num(num);
 
 if (
is_user_connected(target))
 {
 switch(
g_page[id])
 {
 case 
MICROPHONE:
 {
 
g_mute[id][MICROPHONE][target] = !(g_mute[id][MICROPHONE][target]);
 
 
get_user_name(targetnamecharsmax(name));
 
chat_color(id"%s !yLe %s el micrófono a !g%s!y."SZPREFIX, (g_mute[id][MICROPHONE][target]) ? "deshabilitaste" "habilitaste"name);
 }
 case 
CHAT:
 {
 
g_mute[id][CHAT][target] = !(g_mute[id][CHAT][target]);
 
 
get_user_name(targetnamecharsmax(name));
 
chat_color(id"%s !yLe %s el chat a !g%s!y."SZPREFIX, (g_mute[id][CHAT][target]) ? "deshabilitaste" "habilitaste"name);
 }
 case 
GAGGED
 {
 if (!
is_user_admin(id))
 {
 
menu_destroy(menu);
 return;
 }
 
 if (
g_gag[target][PLAYER])
 {
 static 
name[32], name2[32];
 
get_user_name(idnamecharsmax(name));
 
get_user_name(targetname2charsmax(name2));
 
 
chat_color(0"%s !g%s!y desamordazó a !g%s!y."SZPREFIXnamename2);
 
g_gag[target][PLAYER] = false;
 return;
 }
 
 
g_gag[id][TARGET] = target;
 
client_cmd(id"messagemode ^"AMORDAZAR_TIEMPO^"");
 }
 }
 }
 else
 
chat_color(id"%s !yEl jugador que seleccionaste se desconectó del servidor."SZPREFIX);
 
 
menu_destroy(menu);
 
show_menu_players(id);
}

public 
clcmd_gag(id)
{
 if (!
g_gag[id][TARGET])
 return;
 
 static 
text[12], name[32], name2[32];
 
read_args(textcharsmax(text));
 
remove_quotes(text);
 
trim(text);
 
 if (!
isdigit(text[0]))
 {
 
chat_color(id"%s !ySólo números."SZPREFIX);
 return;
 }
 
 if (!
strlen(text) || strlen(text) < 1)
 {
 
chat_color(id"%s !yTenés que poner un valor mayor a 0."SZPREFIX);
 return;
 }
 
 
get_user_name(idnamecharsmax(name));
 
get_user_name(g_gag[id][TARGET], name2charsmax(name2));
 
 
g_gag[id][TIME] = str_to_num(text);
 
g_gag[g_gag[id][TARGET]][PLAYER] = true;
 
 
chat_color(0"%s !g!g%s!y fue amordazado para que no pueda hablar/escribir durante !g%d %s!y."SZPREFIXname2,
 
g_gag[id][TIME], (g_gag[id][TIME] > 1) ? "minutos" "minuto");
 
 
set_task(float(g_gag[id][TIME]) * 60.0"task_player_gag"g_gag[id][TARGET]);
}

public 
task_player_gag(id)
{
 static 
name[32];
 
get_user_name(idnamecharsmax(name));
 
 
g_gag[id][PLAYER] = false;
 
chat_color(0"%s !yEl jugador !g%s!y ya puede volver a hablar / escribir."SZPREFIXname);
}

public 
fw_Voice_SetClientListening(receiversenderlisten)
{
 if (
receiver == sender)
 return 
FMRES_IGNORED;
 
 if (
g_mute[receiver][MICROPHONE][sender] || g_gag[sender][PLAYER])
 {
 
engfunc(EngFunc_SetClientListeningreceiversenderfalse);
 return 
FMRES_SUPERCEDE;
 }
 
 return 
FMRES_IGNORED;
}

public 
message_saytext(msgiddestid)
{
 if (
g_mute[id][CHAT][get_msg_arg_int(1)])
 return 
PLUGIN_HANDLED;
 
 return 
PLUGIN_CONTINUE;
}

stock chat_color(id, const input[], any:...)
{
 static 
message[191];
 
vformat(message190input3);
 
 
replace_all(message190"!g""^4");
 
replace_all(message190"!t""^3");
 
replace_all(message190"!y""^1");
 
 
message_begin((id) ? MSG_ONE_UNRELIABLE MSG_BROADCASTget_user_msgid("SayText"), .player id);
 
write_byte((id) ? id 33);
 
write_string(message);
 
message_end();

www.GameHost.com.ar
Discord: Luzbe#6650 

(05/06/2021, 01:07 AM)Hinami escribió: SON LIBRES DE PODER USAR EL PANEL, PERO EVITEN SER RATAS Y PONER QUE LO HICIERON USTEDES (DIRIGIDO A VENEZOLANOS EN GENERAL).

(09/02/2020, 06:08 PM)Skylar escribió: Capo, tu vida no nos interesa para que nos estemos informando, asi que cerra la cola

Responder
#5
me gustaria usar el q publique pero con el mute global
Pawn Básico no critiquen xD  Approved

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)