bug mute
#1
Bombilla 
mute player

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

#define PLUGIN     "mute menu"
#define VERSION "1.0"
#define AUTHOR     "cheap_suit"

#define MAX_PLAYERS 32

new bool:g_mute[MAX_PLAYERS+1][MAX_PLAYERS+1]
new 
g_menuposition[MAX_PLAYERS+1]
new 
g_menuplayers[MAX_PLAYERS+1][32]
new 
g_menuplayersnum[MAX_PLAYERS+1]

new 
cvar_alltalk
new g_maxclients

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_cvar(PLUGINVERSIONFCVAR_SPONLY|FCVAR_SERVER)

    
register_clcmd("say""clcmd_say")
    
register_clcmd("say_team""clcmd_say")

    
register_forward(FM_Voice_SetClientListening"fwd_voice_setclientlistening")
    
register_menucmd(register_menuid("mute menu"), 1023"action_mutemenu")
    
    
cvar_alltalk get_cvar_pointer("sv_alltalk")
    
g_maxclients global_get(glb_maxClients)
}

public 
client_putinserver(id)
    
clear_list(id)
    
public 
client_disconnect(id)
    
clear_list(id)

clear_list(id)
{
    for(new 
0<= g_maxclients; ++i
        
g_mute[id][i] = false
}

public 
clcmd_say(id)
{
    static 
say_args[10]
    
read_args(say_args9)
    
remove_quotes(say_args)
    
    if(
say_args[0] == '/' && containi(say_args"mute") != -1)
    {
        
display_mutemenu(idg_menuposition[id] = 0)
        return 
PLUGIN_HANDLED_MAIN
    
}
    return 
PLUGIN_CONTINUE
}

public 
fwd_voice_setclientlistening(receiversenderlisten
{
    if(
receiver == sender)
        return 
FMRES_IGNORED
        
    
if(g_mute[receiver][sender])
    {
        
engfunc(EngFunc_SetClientListeningreceiversender0)
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED
}

display_mutemenu(idpos
{
    if(
pos 0)  
        return
        
    static 
team[11]
    
get_user_team(idteam10)
    
    new 
at get_pcvar_num(cvar_alltalk)
    
get_players(g_menuplayers[id], g_menuplayersnum[id], 
    
at "c" "ce"at "" team)

      new 
start pos 8
      
if(start >= g_menuplayersnum[id])
            
start pos g_menuposition[id]

      new 
end start 8
    
if(end g_menuplayersnum[id])
            
end g_menuplayersnum[id]
    
    static 
menubody[512]    
      new 
len format(menubody511"\wMute Menu^n^n")

    static 
name[32]
    
    new 
0i
    
new keys MENU_KEY_0
    
      
for(new startend; ++a)
    {
            
g_menuplayers[id][a]
            
get_user_name(iname31)
        
        if(
== id || access(iADMIN_LEVEL_A))
        {
            ++
b
            len 
+= format(menubody[len], 511 len"\d#  %s %s\w^n"nameg_mute[id][i] ? "(Muted)" "")
        }
        else
        {
            
keys |= (1<<b)
            
len += format(menubody[len], 511 len"%s%d. %s %s\w^n"g_mute[id][i] ? "\y" "\w", ++bnameg_mute[id][i] ? "(Muted)" "")
        }
    }

      if(
end != g_menuplayersnum[id]) 
    {
            
format(menubody[len], 511 len"^n9. %s...^n0. %s""More"pos "Back" "Exit")
            
keys |= MENU_KEY_9
      
}
      else
        
format(menubody[len], 511-len"^n0. %s"pos "Back" "Exit")
    
      
show_menu(idkeysmenubody, -1"mute menu")
}


public 
action_mutemenu(idkey)
{
    switch(
key
    {
            case 
8display_mutemenu(id, ++g_menuposition[id])
        case 
9display_mutemenu(id, --g_menuposition[id])
            default: 
        {
            new 
player g_menuplayers[id][g_menuposition[id] * key]
            
            
g_mute[id][player] = g_mute[id][player] ? false true
            display_mutemenu
(idg_menuposition[id])
            
            static 
name[32]
            
get_user_name(playername31)
            
client_print(idprint_chat"You have %smuted %s"g_mute[id][player] ? "" "un"name)
            }
      }
    return 
PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 
Responder
#2
https://amxmodx-es.com/Thread-Mute-con-c...%C3%B3fono
Responder
#3
(30/10/2018, 12:35 PM)Jota escribió: no e logrado dar con el mute correcto . el tema es que necesito que me ayuden arreglar este plugins del /mute

los jugadores que no son admin ponen /mute para ellos , pero los admin mutean en general a loas cotorras
me ayudan ? porfa


[AMXX] Admin p ha silenciado a <pepe

[AMXX] Admin p le dio otra oportunidad a <pepe para volver a hablar

pero la idea que si el admin lo mutea y el jugador hace retry siga muteado me entiende ? .. porque cuando el admin mutea a un jugador hace retry y se desmutea

me ayudannnnn

el amx_gag no sirve pasa loo mismo al hacer retry se desmutean

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

#define PLUGIN     "mute menu"
#define VERSION "1.0"
#define AUTHOR     "cheap_suit"

#define MAX_PLAYERS 32

new bool:g_mute[MAX_PLAYERS+1][MAX_PLAYERS+1]
new 
g_menuposition[MAX_PLAYERS+1]
new 
g_menuplayers[MAX_PLAYERS+1][32]
new 
g_menuplayersnum[MAX_PLAYERS+1]

new 
cvar_alltalk
new g_maxclients

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_cvar(PLUGINVERSIONFCVAR_SPONLY|FCVAR_SERVER)

    
register_clcmd("say""clcmd_say")
    
register_clcmd("say_team""clcmd_say")

    
register_forward(FM_Voice_SetClientListening"fwd_voice_setclientlistening")
    
register_menucmd(register_menuid("mute menu"), 1023"action_mutemenu")
    
    
cvar_alltalk get_cvar_pointer("sv_alltalk")
    
g_maxclients global_get(glb_maxClients)
}

public 
client_putinserver(id)
    
clear_list(id)
    
public 
client_disconnect(id)
    
clear_list(id)

clear_list(id)
{
    for(new 
0<= g_maxclients; ++i
        
g_mute[id][i] = false
}

public 
clcmd_say(id)
{
    static 
say_args[10]
    
read_args(say_args9)
    
remove_quotes(say_args)
    
    if(
say_args[0] == '/' && containi(say_args"mute") != -1)
    {
        
display_mutemenu(idg_menuposition[id] = 0)
        return 
PLUGIN_HANDLED_MAIN
    
}
    return 
PLUGIN_CONTINUE
}

public 
fwd_voice_setclientlistening(receiversenderlisten
{
    if(
receiver == sender)
        return 
FMRES_IGNORED
        
    
if(g_mute[receiver][sender])
    {
        
engfunc(EngFunc_SetClientListeningreceiversender0)
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED
}

display_mutemenu(idpos
{
    if(
pos 0)  
        return
        
    static 
team[11]
    
get_user_team(idteam10)
    
    new 
at get_pcvar_num(cvar_alltalk)
    
get_players(g_menuplayers[id], g_menuplayersnum[id], 
    
at "c" "ce"at "" team)

      new 
start pos 8
      
if(start >= g_menuplayersnum[id])
            
start pos g_menuposition[id]

      new 
end start 8
    
if(end g_menuplayersnum[id])
            
end g_menuplayersnum[id]
    
    static 
menubody[512]    
      new 
len format(menubody511"\wMute Menu^n^n")

    static 
name[32]
    
    new 
0i
    
new keys MENU_KEY_0
    
      
for(new startend; ++a)
    {
            
g_menuplayers[id][a]
            
get_user_name(iname31)
        
        if(
== id || access(iADMIN_LEVEL_A))
        {
            ++
b
            len 
+= format(menubody[len], 511 len"\d#  %s %s\w^n"nameg_mute[id][i] ? "(Muted)" "")
        }
        else
        {
            
keys |= (1<<b)
            
len += format(menubody[len], 511 len"%s%d. %s %s\w^n"g_mute[id][i] ? "\y" "\w", ++bnameg_mute[id][i] ? "(Muted)" "")
        }
    }

      if(
end != g_menuplayersnum[id]) 
    {
            
format(menubody[len], 511 len"^n9. %s...^n0. %s""More"pos "Back" "Exit")
            
keys |= MENU_KEY_9
      
}
      else
        
format(menubody[len], 511-len"^n0. %s"pos "Back" "Exit")
    
      
show_menu(idkeysmenubody, -1"mute menu")
}


public 
action_mutemenu(idkey)
{
    switch(
key
    {
            case 
8display_mutemenu(id, ++g_menuposition[id])
        case 
9display_mutemenu(id, --g_menuposition[id])
            default: 
        {
            new 
player g_menuplayers[id][g_menuposition[id] * key]
            
            
g_mute[id][player] = g_mute[id][player] ? false true
            display_mutemenu
(idg_menuposition[id])
            
            static 
name[32]
            
get_user_name(playername31)
            
client_print(idprint_chat"You have %smuted %s"g_mute[id][player] ? "" "un"name)
            }
      }
    return 
PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 

Yo Te lo iba a portar tambien xdd Pero me ganaron de mano xdd
Cita: Kikizon2 Dijo :
Lo que deberian de aprender es a escribir, parece que escriben con el escroto en la mano.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)