(SOLUCIONADO) /mute que funcione con amx_off
#1
Hola chicos, que tal me veo obligado nuevamente a consultarles, ya que con otros plugins me funciono pero con este no. les dejo el sma del /mute, necesito que ande con el amx_off porque es para un sv de mix/pcw

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

#define PLUGIN_VERSION "2.1"

new const g_szMute[] = "buttons/blip1.wav"
new const g_szUnmute[] = "buttons/button9.wav"

enum _:Cvars
{
    
advmute_adminflag,
    
advmute_mutechat,
    
advmute_mutemic,
    
advmute_reopen,
    
advmute_sounds
}

new 
g_eCvars[Cvars], bool:g_bMuted[33][33], g_iFlag

new const g_szMenuCommands[][] = 
{
    
"amx_mutemenu",
    
"amx_chatmutemenu",
    
"say /mute",
    
"say_team /mute",
    
"say /mutemenu",
    
"say_team /mutemenu",
    
"say /chatmute",
    
"say_team /chatmute",
    
"say /chatmutemenu",
    
"say_team /chatmutemenu"
}

public 
plugin_init()
{
    
register_plugin("Advanced Mute"PLUGIN_VERSION"El Abuelo")
    
register_cvar("AdvancedMute"PLUGIN_VERSIONFCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    
register_dictionary("AdvancedMute.txt")
    
register_message(get_user_msgid("SayText"), "OnPlayerMessage")
    
register_forward(FM_Voice_SetClientListening"OnPlayerTalk")
    
    
register_clcmd("amx_mute""Cmd_Mute"ADMIN_ALL"<nick|#userid>")
    
register_clcmd("amx_chatmute""Cmd_Mute"ADMIN_ALL"<nick|#userid>")
    
    for(new 
isizeof(g_szMenuCommands); i++)
        
register_clcmd(g_szMenuCommands[i], "MuteMenu")
    
    
g_eCvars[advmute_adminflag] = register_cvar("advmute_adminflag""a")
    
g_eCvars[advmute_mutechat] = register_cvar("advmute_mutechat""1")
    
g_eCvars[advmute_mutemic] = register_cvar("advmute_mutemic""1")
    
g_eCvars[advmute_reopen] = register_cvar("advmute_reopen""1")
    
g_eCvars[advmute_sounds] = register_cvar("advmute_sounds""1")
    
    
CC_SetPrefix("&x04[&x03Advanced Mute&x04]")
}

public 
plugin_precache()
{
    
precache_sound(g_szMute)
    
precache_sound(g_szUnmute)
}

public 
plugin_cfg()
{
    new 
szFlag[2]
    
get_pcvar_string(g_eCvars[advmute_adminflag], szFlagcharsmax(szFlag))
    
g_iFlag read_flags(szFlag)
}

public 
OnPlayerMessage(iMsgidiDestiReceiver)
{
    if(!
get_pcvar_num(g_eCvars[advmute_mutechat]))
        return 
PLUGIN_CONTINUE
        
    
static iSender
    iSender 
get_msg_arg_int(1)    
    return 
get_mute(iReceiveriSender) ? PLUGIN_HANDLED PLUGIN_CONTINUE
}

public 
OnPlayerTalk(iReceiveriSenderiListen)
{
    if(!
get_pcvar_num(g_eCvars[advmute_mutemic]) || iReceiver == iSender)
        return 
FMRES_IGNORED
        
    
if(get_mute(iReceiveriSender))
    {
        
engfunc(EngFunc_SetClientListeningiReceiveriSender0)
        return 
FMRES_SUPERCEDE
    
}
    
    return 
FMRES_IGNORED
}

public 
Cmd_Mute(id)
{
    new 
szArg[32]
    
read_argv(1szArgcharsmax(szArg))
    
    new 
iPlayer cmd_target(idszArg0)
    
    if(!
iPlayer)
        return 
PLUGIN_HANDLED
    
    
if(get_user_flags(iPlayer) & g_iFlag)
    {
        
CC_SendMessage(id"%L"id"ADVMUTE_CANT_MUTE")
        
user_spksound(idg_szUnmute)
        return 
PLUGIN_HANDLED
    
}
    
    
switch_mute(idiPlayer)
    
display_mute_message(idiPlayer)
    return 
PLUGIN_HANDLED
}

public 
MuteMenu(id)
{
    new 
iMenu menu_create(formatin("%L"id"ADVMUTE_MENU_HEADER"), "MuteMenu_Handler")
    
menu_additem(iMenuformatin("%L"id"ADVMUTE_MUTE_ALL"))
    
menu_additem(iMenuformatin("%L"id"ADVMUTE_UNMUTE_ALL"))
    
    new 
iPlayers[32], iPnum
    get_players
(iPlayersiPnum)
    
    for(new 
szItem[40], szName[32], szUserId[16], iPlayeriiPnumi++)
    {
        
iPlayer iPlayers[i]
        
        if(
get_user_flags(iPlayer) & g_iFlag)
            continue
            
        
get_user_name(iPlayerszNamecharsmax(szName))
        
formatex(szUserIdcharsmax(szUserId), "%i"get_user_userid(iPlayer))
        
formatex(szItemcharsmax(szItem), "%s%s"get_mute(idiPlayer) ? "\r" ""szName)
        
menu_additem(iMenuszItemszUserId)
    }
    
    
menu_setprop(iMenuMPROP_BACKNAMEformatin("%L"id"ADVMUTE_PREVIOUS_PAGE"))
    
menu_setprop(iMenuMPROP_NEXTNAMEformatin("%L"id"ADVMUTE_NEXT_PAGE"))
    
menu_setprop(iMenuMPROP_EXITNAMEformatin("%L"id"ADVMUTE_EXIT"))
    
menu_display(idiMenu)
    return 
PLUGIN_HANDLED
}

public 
MuteMenu_Handler(idiMenuiItem)
{
    if(
iItem == MENU_EXIT)
    {
        
menu_destroy(iMenu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
szData[16], iUnused
    menu_item_getinfo
(iMenuiItemiUnusedszDatacharsmax(szData), .callback iUnused)
    
    new 
iUserId str_to_num(szData)
    
    if(
<= iItem <= 1)
    {
        new 
iPlayers[32], iPnumbool:bMute iItem == 0
        get_players
(iPlayersiPnum)
        
        for(new 
iiPlayeriPnumi++)
        {
            
iPlayer iPlayers[i]
            
            if(
get_user_flags(iPlayer) & g_iFlag)
                continue
                
            
set_mute(idiPlayerbMute)
        }
        
        
CC_SendMessage(id"%L"idbMute "ADVMUTE_MUTED_ALL" "ADVMUTE_UNMUTED_ALL")
        
        if(
get_pcvar_num(g_eCvars[advmute_sounds]))
            
user_spksound(idbMute g_szMute g_szUnmute)
    }
    else
    {
        new 
iPlayer find_player("k"iUserId)
        
        if(
iPlayer)
        {
            
switch_mute(idiPlayer)
            
display_mute_message(idiPlayer)
        }
    }
    
    
menu_destroy(iMenu)
    
    if(
get_pcvar_num(g_eCvars[advmute_reopen]))
        
MuteMenu(id)
    
    return 
PLUGIN_HANDLED


display_mute_message(const id, const iPlayer)
{
    new 
szName[32], bool:bMute get_mute(idiPlayer)
    
get_user_name(iPlayerszNamecharsmax(szName))
    
CC_SendMessage(id"%L"idbMute "ADVMUTE_MUTED_PLAYER" "ADVMUTE_UNMUTED_PLAYER"szName)
    
    if(
get_pcvar_num(g_eCvars[advmute_sounds]) == 1)
        
user_spksound(idbMute g_szMute g_szUnmute)
}


set_mute(const id, const iPlayer, const bool:bMute)
    
g_bMuted[id][iPlayer] = bMute true false

bool
:get_mute(const id, const iPlayer)
    return 
bool:g_bMuted[id][iPlayer]

switch_mute(const id, const iPlayer)
    
set_mute(idiPlayerget_mute(idiPlayer) ? false true)

user_spksound(const id, const szSound[])
    
client_cmd(id"spk %s"szSound

y aca lo que use en otros plugins y me funciono, pero aqui no se donde ponerlo para que funcione.

Código PHP:
public plugin_cfg()
{
    if(
is_plugin_loaded("Pause Plugins") > -1)
        
server_cmd("amx_pausecfg add ^"NOMBREPLUGIN^"");


o tambien usaba este.

Código PHP:
este (FUNCIONA EN BULLET DAMAGE AUTO FRIENDLYFIRE)

public 
plugin_cfg( ) {

    if( 
is_plugin_loaded"Pause Plugins" ) > )
        
server_cmd"amx_pausecfg add ^"%s^""g_sPluginName );


Asi que si me indican donde colocarlo o que debo poner para que funcione se los agradeceria. Claramente soy un novato solo me guio con esta pagina y ustedes. Asi que pueden insultarme si parece tonto lo que pido XD Whatdone

Saludos. Atte El Abuelo
Responder
#2
Estaba editando el plugin para ayudarte pero vi esto... es lamentable.

Código PHP:
register_plugin("Advanced Mute"PLUGIN_VERSION"El Abuelo"
Responder
#3
(26/02/2020, 09:38 PM)Chema escribió: Estaba editando el plugin para ayudarte pero vi esto... es lamentable.

Código PHP:
register_plugin("Advanced Mute"PLUGIN_VERSION"El Abuelo"

eso lo hago para saber que lo toque yo y que no es el original, tengo 2 carpetas 1 donde dejo todo lo que descargo original y otra donde meto mano, el tema es que el amx studio hay a veces que edito y me modifica el original directamente, entonces de esta manera puedo reconocer al abrir el sma si lo toque yo o si es el original.

PD; todavia no estoy capacitado para crear un plugin tranquilo Chema.

Gracias por preocuparte, te saluda atte El Abuelo
Responder
#4
(26/02/2020, 10:14 PM)El Abuelo escribió:
(26/02/2020, 09:38 PM)Chema escribió: Estaba editando el plugin para ayudarte pero vi esto... es lamentable.

Código PHP:
register_plugin("Advanced Mute"PLUGIN_VERSION"El Abuelo"

eso lo hago para saber que lo toque yo y que no es el original, tengo 2 carpetas 1 donde dejo todo lo que descargo original y otra donde meto mano, el tema es que el amx studio hay a veces que edito y me modifica el original directamente, entonces de esta manera puedo reconocer al abrir el sma si lo toque yo o si es el original.

PD; todavia no estoy capacitado para crear un plugin tranquilo Chema.

Gracias por preocuparte, te saluda atte El Abuelo

Y si le cambias el nombre del archivo?, no sé solo digo. Whatever

+1 por la excusa, nunca había leído eso.
Responder
#5
(26/02/2020, 10:16 PM)Chema escribió:
(26/02/2020, 10:14 PM)El Abuelo escribió:
(26/02/2020, 09:38 PM)Chema escribió: Estaba editando el plugin para ayudarte pero vi esto... es lamentable.

Código PHP:
register_plugin("Advanced Mute"PLUGIN_VERSION"El Abuelo"

eso lo hago para saber que lo toque yo y que no es el original, tengo 2 carpetas 1 donde dejo todo lo que descargo original y otra donde meto mano, el tema es que el amx studio hay a veces que edito y me modifica el original directamente, entonces de esta manera puedo reconocer al abrir el sma si lo toque yo o si es el original.

PD; todavia no estoy capacitado para crear un plugin tranquilo Chema.

Gracias por preocuparte, te saluda atte El Abuelo

Y si le cambias el nombre del archivo?, no sé solo digo. Whatever

+1 por la excusa, nunca había leído eso.

Creeme que asi lo reconozco mas fácil, en fin con todo esto me di cuenta que es complicado y que no cualquier forma funciona para hacer que funcione con amx_off Whatdone
Responder
#6
Probá agregando debug alado del nombre del plugin. Y con respecto al robadísimo autor que estamos presenciando hoy, Dios nos salve de cometer lo mismo, todo para que cuando un admin ponga amx_plugins, en consola, vea el tan presenciado nick del usuario el cual modificó y usurpó el autor original, generando así, una reacción de asombro en dicho usuario que está leyendo el autor (no autor), entre comillas, del plugin en el cual el autor fue modificado. Sin más preambulos, este mensaje termina aquí. Gracias por leer dicho mensaje. Vuelva pronto.
Responder
#7
(26/02/2020, 10:52 PM)El Abuelo escribió:
(26/02/2020, 10:16 PM)Chema escribió:
(26/02/2020, 10:14 PM)El Abuelo escribió:
(26/02/2020, 09:38 PM)Chema escribió: Estaba editando el plugin para ayudarte pero vi esto... es lamentable.

Código PHP:
register_plugin("Advanced Mute"PLUGIN_VERSION"El Abuelo"

eso lo hago para saber que lo toque yo y que no es el original, tengo 2 carpetas 1 donde dejo todo lo que descargo original y otra donde meto mano, el tema es que el amx studio hay a veces que edito y me modifica el original directamente, entonces de esta manera puedo reconocer al abrir el sma si lo toque yo o si es el original.

PD; todavia no estoy capacitado para crear un plugin tranquilo Chema.

Gracias por preocuparte, te saluda atte El Abuelo

Y si le cambias el nombre del archivo?, no sé solo digo. Whatever

+1 por la excusa, nunca había leído eso.

Creeme que asi lo reconozco mas fácil, en fin con todo esto me di cuenta que es complicado y que no cualquier forma funciona para hacer que funcione con amx_off Whatdone

agregalo en amxx.cfg, amx_pausecfg add "Acá va el nombre del plugin"
Responder
#8
(27/02/2020, 04:13 AM)Ballers escribió:
(26/02/2020, 10:52 PM)El Abuelo escribió:
(26/02/2020, 10:16 PM)Chema escribió:
(26/02/2020, 10:14 PM)El Abuelo escribió:
(26/02/2020, 09:38 PM)Chema escribió: Estaba editando el plugin para ayudarte pero vi esto... es lamentable.

Código PHP:
register_plugin("Advanced Mute"PLUGIN_VERSION"El Abuelo"

eso lo hago para saber que lo toque yo y que no es el original, tengo 2 carpetas 1 donde dejo todo lo que descargo original y otra donde meto mano, el tema es que el amx studio hay a veces que edito y me modifica el original directamente, entonces de esta manera puedo reconocer al abrir el sma si lo toque yo o si es el original.

PD; todavia no estoy capacitado para crear un plugin tranquilo Chema.

Gracias por preocuparte, te saluda atte El Abuelo

Y si le cambias el nombre del archivo?, no sé solo digo. Whatever

+1 por la excusa, nunca había leído eso.

Creeme que asi lo reconozco mas fácil, en fin con todo esto me di cuenta que es complicado y que no cualquier forma funciona para hacer que funcione con amx_off Whatdone

agregalo en amxx.cfg, amx_pausecfg add "Acá va el nombre del plugin"

Probe con amx_pausecfg add crx_advmute y con amx_pausecfg add crx_advmute.amxx y no funciono. igual gracias por la ayuda bro!
Responder
#9
Tenes que poner el nombre del plugin por cómo está registrado en el mismo no el nombre del archivo.
Responder
#10
(27/02/2020, 08:07 PM)Chema escribió: Tenes que poner el nombre del plugin por cómo está registrado en el mismo no el nombre del archivo.

Listo chicos gracias por su ayuda lo que realize fue agregar estas lineas a una parte donde ya estaba el public cfg

Código PHP:
public plugin_cfg()
{
    new 
szFlag[2]
    
get_pcvar_string(g_eCvars[advmute_adminflag], szFlagcharsmax(szFlag))
    
g_iFlag read_flags(szFlag)
    
    if(
is_plugin_loaded("Pause Plugins") > -1)
        
server_cmd("amx_pausecfg add ^"Advanced Mute^""); ACA LO QUE AGREGUE


BUENO SE PUEDE FINALIZAR EL TEMA. SI QUIEREN LES SUBO EL SMA Y EL AMXX YA REALIZADO PARA COMPARTIRLO. YA FUNCIONA CON AMX_OFF. DIGANME EN QUE PARTE DEL FORO PUEDO SUBIRLO.

SALUDOS y MUCHAS GRACIAS. Los saluda atte El Abuelo
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)