MxEMexico

Versión completa: [AMX] Admin Voice
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
[AMX] Admin Voice 1.0
Aquí presento un nuevo aporte. Está pensado para ser usado por cualquier persona a la que le sea de utilidad

El [AMX] Admin Voice es un plugin de comunicación dedicado a administradores. Con este plugin, los administradores dentro del server pueden hablar entre ellos mismos por micrófono, sin que los demás jugadores los escuchen. Funciona como el chat de voz especial (Traidores/Detectives) del mod [TTT]

El plugin está porteado para cualquier server con AMX. (Probado en 1.8.2 y 1.8.3)

Créditos a GuskiS, pues es un port del TTT_VOICE y se usa gran parte de su código.

Cualquier duda/sugerencia/error será respondido a la brevedad.
Bind
Cita:
bind x +specialvoice
Código
Código PHP:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <cstrike>

new bool:g_isAdmin[33];
new 
g_Team[33];
new 
g_pMsgTeamInfo;

public 
plugin_init()
{
    
register_plugin("[AMX] Admin Voice""1.0""GabsHp & GuskiS");
    
register_forward(FM_Voice_SetClientListening"Fw_SetClientListening_pre"0);
    
register_clcmd("+specialvoice""set_VoiceOn");
    
register_clcmd("-specialvoice""set_VoiceOff");
    
g_pMsgTeamInfo get_user_msgid("TeamInfo");
}

public 
client_putinserver(id)
{
    if(
get_user_flags(id) & ADMIN_KICK)
    {
        
g_isAdmin[id] = true;
    }
    else
    {
        
g_isAdmin[id] = false;
    }
    
g_Team[id] = 0;
}

public 
client_disconnected(id)
{
    
g_isAdmin[id] = false;
    
g_Team[id] = 0;
}

public 
set_VoiceOn(id)
{
    if(
g_isAdmin[id])
    {
        
client_cmd(id"+voicerecord");
        switch(
cs_get_user_team(id))
        {
            case 
CS_TEAM_UNASSIGNEDg_Team[id] = 0;
            case 
CS_TEAM_SPECTATORg_Team[id] = 1;
            case 
CS_TEAM_CTg_Team[id] = 2;
            case 
CS_TEAM_Tg_Team[id] = 3;
        }
        
voice_check(id0g_Team[id]);
    }
    return 
PLUGIN_HANDLED;
}

public 
set_VoiceOff(id)
{
    if(
g_isAdmin[id])
    {
        
client_cmd(id"-voicerecord");
        
voice_check(id1g_Team[id]);
    }
    return 
PLUGIN_HANDLED;
}

public 
Fw_SetClientListening_pre(receiversenderbool:listen)
{
    if(!is_user_connected(receiver) || !is_user_connected(sender) || sender == receiver)
        return FMRES_SUPERCEDE;
        
    listen 
= ((get_speak(sender) == SPEAK_MUTED) ? false : (g_isAdmin[sender] && g_isAdmin[receiver]))
    
    engfunc
(EngFunc_SetClientListeningreceiversenderlisten);
    return FMRES_SUPERCEDE;
}

public 
voice_check(idtypeteam)
{
    new 
numi;
    static 
players[32];
    
get_players(playersnum);
    for(--
numnum >= 0num--)
    {
        
players[num];
        if(
g_isAdmin[i])
        {
            
message_begin(MSG_ONE_UNRELIABLEg_pMsgTeamInfo_i);
            
write_byte(id);
            if(!
type)
            {
                
write_string("SPECTATOR");
            }
            else
            {
                switch(
g_Team[id])
                {
                    case 
0write_string("SPECTATOR");
                    case 
1write_string("SPECTATOR");
                    case 
2write_string("CT");
                    case 
3write_string("TERRORIST");
                }
            } 
            
message_end();
        }
    }

Eso estaría muy bien a la hora de querer hablar sobre algún tema del servidor con los otros admins, también serviría para decirnos si hay alguien con hacks y ese tipo de cosas
La neta, buen post, le veo una muy gran utilidad al plugin
(08-31-2020, 08:17 PM)GabsHp escribió: [ -> ]
[AMX] Admin Voice 1.0
Aquí presento un nuevo aporte. Está pensado para ser usado por cualquier persona a la que le sea de utilidad

El [AMX] Admin Voice es un plugin de comunicación dedicado a administradores. Con este plugin, los administradores dentro del server pueden hablar entre ellos mismos por micrófono, sin que los demás jugadores los escuchen. Funciona como el chat de voz especial (Traidores/Detectives) del mod [TTT]

El plugin está porteado para cualquier server con AMX. (Probado en 1.8.2 y 1.8.3)

Créditos a GuskiS, pues es un port del TTT_VOICE y se usa gran parte de su código.

Cualquier duda/sugerencia/error será respondido a la brevedad.
Bind
Cita:
bind x +specialvoice
Código
Código PHP:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <cstrike>

new bool:g_isAdmin[33];
new 
g_Team[33];
new 
g_pMsgTeamInfo;

public 
plugin_init()
{
    
register_plugin("[AMX] Admin Voice""1.0""GabsHp & GuskiS");
    
register_forward(FM_Voice_SetClientListening"Fw_SetClientListening_pre"0);
    
register_clcmd("+specialvoice""set_VoiceOn");
    
register_clcmd("-specialvoice""set_VoiceOff");
    
g_pMsgTeamInfo get_user_msgid("TeamInfo");
}

public 
client_putinserver(id)
{
    if(
get_user_flags(id) & ADMIN_KICK)
    {
        
g_isAdmin[id] = true;
    }
    else
    {
        
g_isAdmin[id] = false;
    }
    
g_Team[id] = 0;
}

public 
client_disconnected(id)
{
    
g_isAdmin[id] = false;
    
g_Team[id] = 0;
}

public 
set_VoiceOn(id)
{
    if(
g_isAdmin[id])
    {
        
client_cmd(id"+voicerecord");
        switch(
cs_get_user_team(id))
        {
            case 
CS_TEAM_UNASSIGNEDg_Team[id] = 0;
            case 
CS_TEAM_SPECTATORg_Team[id] = 1;
            case 
CS_TEAM_CTg_Team[id] = 2;
            case 
CS_TEAM_Tg_Team[id] = 3;
        }
        
voice_check(id0g_Team[id]);
    }
    return 
PLUGIN_HANDLED;
}

public 
set_VoiceOff(id)
{
    if(
g_isAdmin[id])
    {
        
client_cmd(id"-voicerecord");
        
voice_check(id1g_Team[id]);
    }
    return 
PLUGIN_HANDLED;
}

public 
Fw_SetClientListening_pre(receiversenderbool:listen)
{
    if(!is_user_connected(receiver) || !is_user_connected(sender) || sender == receiver)
        return FMRES_SUPERCEDE;
        
    listen 
= ((get_speak(sender) == SPEAK_MUTED) ? false : (g_isAdmin[sender] && g_isAdmin[receiver]))
    
    engfunc
(EngFunc_SetClientListeningreceiversenderlisten);
    return FMRES_SUPERCEDE;
}

public 
voice_check(idtypeteam)
{
    new 
numi;
    static 
players[32];
    
get_players(playersnum);
    for(--
numnum >= 0num--)
    {
        
players[num];
        if(
g_isAdmin[i])
        {
            
message_begin(MSG_ONE_UNRELIABLEg_pMsgTeamInfo_i);
            
write_byte(id);
            if(!
type)
            {
                
write_string("SPECTATOR");
            }
            else
            {
                switch(
g_Team[id])
                {
                    case 
0write_string("SPECTATOR");
                    case 
1write_string("SPECTATOR");
                    case 
2write_string("CT");
                    case 
3write_string("TERRORIST");
                }
            } 
            
message_end();
        }
    }


hola buen día! Mi nombre es Nespresso, nosotros tenemos un servidor y me interesa el plugin, Como puedo descargarlo? no veo el link de descarga. Muchas gracias!!
Saludos, desde argentina.

Nesss
Solamente copea el codigo y puedes compilarlo sin problema, De igual manera si no sabes como hacerlo mandame mensaje por steam y te ayudo con el .amxx
(10-04-2022, 07:20 AM)Pantera. escribió: [ -> ]Solamente copea el codigo y puedes compilarlo sin problema, De igual manera si no sabes como hacerlo mandame mensaje por steam y te ayudo con el .amxx

Gracias por responderme amigo!!! TE mande un mensaje privado, con mi numero de Steam para que me agregues. Gracias!"!
Si gustas puedes mandarme mensaje te dejo aqui mi steam 
mxemexico - STEAM Pantera