Mutear Menu
#1
me pueden hacer un menu de /mute algo asi como aca:

[Imagen: r2odKRr.jpg]

que se pueda a mutear a todos apretando el numero 1 para no andar muteando 1 cada 1 player
Responder
#2
Código PHP:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Menu de Mute"
#define VERSION "0.1"

new g_bMuted[33], g_players[32], g_menucallbackcvar_alltalk;

#define is_player_muted(%0,%1) (g_bMuted[%0] & (1 << %1-1))
#define player_muted_all(%0) (g_bMuted[0] & (1 << %0-1))

public plugin_init()
{
    
register_plugin(PLUGINVERSION"Mario AR.");
    
register_clcmd("say /mute""clcmd_mute"0);
    
    
register_forward(FM_Voice_SetClientListening"fw_Voice");
    
    
g_menucallback menu_makecallback("menu_mute_cb");
    
cvar_alltalk get_cvar_pointer("sv_alltalk");
}

public 
client_putinserver(id)
{
    
g_bMuted[id] = 0;
    
    for (new 
0<= 32i++)
        
g_bMuted[i] &= ~(<< id-1);
}

public 
fw_Voice(idsenderlisten
{
    if (
id != sender && (player_muted_all(id) || is_player_muted(idsender)))
    {
        
engfunc(EngFunc_SetClientListeningidsender0);
        return 
FMRES_SUPERCEDE;
    }
    
    return 
FMRES_IGNORED;
}

public 
clcmd_mute(idpage)
{
    static 
inummenuszItem[46], szData[1];
    
menu menu_create("Menu de Mute""menu_mute");
    
    
menu_additem(menuplayer_muted_all(id) ? "\rMutear a todos [\yON\r]" "\rMutear a todos [\dOFF\r]");
    
    if (!(
num get_pcvar_num(cvar_alltalk)))
        
get_user_team(idszItem11);
    
    
get_players(g_playersnumnum "" "e"num "" szItem);
    
    for (new 
0numa++)
    {
        
g_players[a];
        
        
get_user_name(iszItem31);
        
        if (!
player_muted_all(id) && is_player_muted(idi))
            
add(szItemcharsmax(szItem), "\y [Muteado]");
        
        
szData[0] = i;
        
        
menu_additem(menuszItemszData0g_menucallback);
    }
    
    
menu_setprop(menuMPROP_BACKNAME"Atras");
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente^n");
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
    
menu_display(idmenupage);
}

public 
menu_mute_cb(idmenuitem)
{
    if (
player_muted_all(id) || id == g_players[item-1])
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}

public 
menu_mute(idmenuitem)
{
    switch (
item)
    {
        case 
0:
        {
            
g_bMuted[0] ^= (<< id-1);
        }
        case 
MENU_EXIT:
        {
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED;
        }
        default:
        {
            new 
szData[1], Junk;
            
            
menu_item_getinfo(menuitemJunkszDatasizeof(szData), .callback Junk);
            
            
g_bMuted[id] ^= (<< szData[0]-1);
        }
    }
    
    
clcmd_mute(iditem/7);
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;

Responder
#3
(06/07/2014, 05:29 PM)Mario AR. escribió:
Código PHP:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Menu de Mute"
#define VERSION "0.1"

new g_bMuted[33], g_players[32], g_menucallbackcvar_alltalk;

#define is_player_muted(%0,%1) (g_bMuted[%0] & (1 << %1-1))
#define player_muted_all(%0) (g_bMuted[0] & (1 << %0-1))

public plugin_init()
{
    
register_plugin(PLUGINVERSION"Mario AR.");
    
register_clcmd("say /mute""clcmd_mute"0);
    
    
register_forward(FM_Voice_SetClientListening"fw_Voice");
    
    
g_menucallback menu_makecallback("menu_mute_cb");
    
cvar_alltalk get_cvar_pointer("sv_alltalk");
}

public 
client_putinserver(id)
{
    
g_bMuted[id] = 0;
    
    for (new 
0<= 32i++)
        
g_bMuted[i] &= ~(<< id-1);
}

public 
fw_Voice(idsenderlisten
{
    if (
id != sender && (player_muted_all(id) || is_player_muted(idsender)))
    {
        
engfunc(EngFunc_SetClientListeningidsender0);
        return 
FMRES_SUPERCEDE;
    }
    
    return 
FMRES_IGNORED;
}

public 
clcmd_mute(idpage)
{
    static 
inummenuszItem[46], szData[1];
    
menu menu_create("Menu de Mute""menu_mute");
    
    
menu_additem(menuplayer_muted_all(id) ? "\rMutear a todos [\yON\r]" "\rMutear a todos [\dOFF\r]");
    
    if (!(
num get_pcvar_num(cvar_alltalk)))
        
get_user_team(idszItem11);
    
    
get_players(g_playersnumnum "" "e"num "" szItem);
    
    for (new 
0numa++)
    {
        
g_players[a];
        
        
get_user_name(iszItem31);
        
        if (!
player_muted_all(id) && is_player_muted(idi))
            
add(szItemcharsmax(szItem), "\y [Muteado]");
        
        
szData[0] = i;
        
        
menu_additem(menuszItemszData0g_menucallback);
    }
    
    
menu_setprop(menuMPROP_BACKNAME"Atras");
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente^n");
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
    
menu_display(idmenupage);
}

public 
menu_mute_cb(idmenuitem)
{
    if (
player_muted_all(id) || id == g_players[item-1])
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}

public 
menu_mute(idmenuitem)
{
    switch (
item)
    {
        case 
0:
        {
            
g_bMuted[0] ^= (<< id-1);
        }
        case 
MENU_EXIT:
        {
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED;
        }
        default:
        {
            new 
szData[1], Junk;
            
            
menu_item_getinfo(menuitemJunkszDatasizeof(szData), .callback Junk);
            
            
g_bMuted[id] ^= (<< szData[0]-1);
        }
    }
    
    
clcmd_mute(iditem/7);
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;


Este es solo para admins? (es que yo tengo el clasico mute menu) pero quiero uno solo para admins que mutie a x jugador para todos, y dejando igual el mute menu para usuario normal.
[Imagen: 76561198258768928.png][Imagen: AddFriend.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)