Prefixe De Administradores
#1
Guiño 
Código:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

enum _:ADM_DATA { ADMIN_TYPE[ 30 ], ADMIN_FLAGS }

new const Admins[][ADM_DATA] =
{
    { "[OFF]~[Dueño]", ADMIN_RCON },
    { "[OFF]~[Sub-Dueño]", ADMIN_CFG },
    { "[OFF]~[STAFF]", ADMIN_PASSWORD },
    { "[OFF]~[SOCIO-PREMIUN]", ADMIN_LEVEL_B},
        { "[OFF]~[VIP-PREMIUN]", ADMIN_LEVEL_D },
        { "[OFF]~[ADMIN-FULL]", ADMIN_LEVEL_C },
    { "[OFF]~[ADMIN-BASICO]", ADMIN_LEVEL_E }    
    
};

new kAdminType[ 33 ][ 30 ], kMP, kPN[ 33 ][ 32 ], cvar_adminlisten, admlisten;

public plugin_init()
{
    register_plugin( "Admin Say n Types" , "1.0" , "RAMBO" );
    
    register_clcmd("say", "BlockSay")
    register_clcmd("say_team", "BlockTeamSay")

    // Cvar Definicion
    // 0 = Los vivos no pueden leer a los muertos
    // 1 = Los vivos no pueden leer a los muertos, Excepto los admins
    // 2 = Todos se pueden leer
    cvar_adminlisten = register_cvar( "amx_adminlisten", "1" );
    admlisten = get_pcvar_num( cvar_adminlisten );
    
    kMP = get_maxplayers();
}

public client_putinserver( index )
{
    get_user_name( index, kPN[ index ], 31 );
    kAdminType[ index ] = "^0";
    
    if(is_user_admin( index ))
    {
        static i, flags; flags = get_user_flags( index );
        
        for(i = 0 ; i < sizeof Admins ; i++ )
        {
            if(flags & Admins[i][ADMIN_FLAGS])
            {                    
                formatex(kAdminType[index], charsmax(kAdminType), "%s", Admins[i][ADMIN_TYPE]);
                break;
            }
        }
    }    
}

public BlockSay( index )
{
    static said[191];
    read_args(said, charsmax(said));
    remove_quotes(said);
    replace_all(said, charsmax(said), "%", " "); replace_all(said, charsmax(said), "#", " ");
        
    if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE;
    
    static color[11], prefix[91]
    get_user_team(index, color, charsmax(color))
    
    formatex(prefix, charsmax(prefix), "%s^x04%s^x03 %s",
    is_user_alive( index ) ? "^x01" : "^x01*MUERTO* ",  kAdminType[ index ], kPN[ index ])
    
    if (is_user_admin(index)) format(said, charsmax(said), "^x04%s", said)    
    
    format(said, charsmax(said), "%s^x01 :  %s", prefix, said)
    
    static i, team[11];
    for (i = 1; i <= kMP; i++)
    {
        if (!is_user_connected(i)) continue;

        if( admlisten == 0 && ( is_user_alive( index ) && is_user_alive( i ) || !is_user_alive( index ) && !is_user_alive(i))
        || admlisten == 1 && (is_user_admin(i) || is_user_alive( index ) && is_user_alive( i ) || !is_user_alive( index ) && !is_user_alive(i))
        || admlisten == 2 )
        {        
            get_user_team(i, team, charsmax(team))            
            changeTeamInfo(i, color)            
            writeMessage(i, said)
            changeTeamInfo(i, team)
        }
    }
        
    return PLUGIN_HANDLED_MAIN;
}

public BlockTeamSay( index )
{
    static said[191];
    read_args(said, charsmax(said));
    remove_quotes(said);
    replace_all(said, charsmax(said), "%", " "); replace_all(said, charsmax(said), "#", " ");
        
    if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE;
    
    static playerTeam, teamname[19];
    playerTeam = get_user_team(index);
    
    switch (playerTeam)
    {
        case 1: formatex( teamname, 18, " ^x01[^x03 TT^x01 ] ");
        case 2: formatex( teamname, 18, " ^x01[^x03 CT^x01 ] ");
        default: formatex( teamname, 18, " ^x01[^x03 SPEC^x01 ] ");
    }
    
    static color[11], prefix[91]
    get_user_team(index, color, charsmax(color))
    
    formatex(prefix, charsmax(prefix), "%s%s^x04%s^x03 %s",
    is_user_alive( index ) ? "^x01" : "^x01*MUERTO* ",  teamname, kAdminType[ index ], kPN[ index ])
    
    if (is_user_admin(index)) format(said, charsmax(said), "^x04%s", said)    
    
    format(said, charsmax(said), "%s^x01 :  %s", prefix, said)
    
    static i, team[11];
    for (i = 1; i <= kMP; i++)
    {
        if (!is_user_connected(i)) continue;
        
        if (get_user_team(i) == playerTeam)
        {
            if( admlisten == 0 && ( is_user_alive( index ) && is_user_alive( i ) || !is_user_alive( index ) && !is_user_alive(i))
            || admlisten == 1 && (is_user_admin(i) || is_user_alive( index ) && is_user_alive( i ) || !is_user_alive( index ) && !is_user_alive(i))
            || admlisten == 2 )
            {        
                get_user_team(i, team, charsmax(team))            
                changeTeamInfo(i, color)            
                writeMessage(i, said)
                changeTeamInfo(i, team)
            }
        }
    }
    
    return PLUGIN_HANDLED_MAIN;
}

public changeTeamInfo(player, team[])
{
    message_begin(MSG_ONE, get_user_msgid( "TeamInfo" ), _, player)
    write_byte(player)
    write_string(team)
    message_end()
}

public writeMessage(player, message[])
{
    message_begin(MSG_ONE, get_user_msgid( "SayText" ), {0, 0, 0}, player)
    write_byte(player)
    write_string(message)
    message_end()
}

stock ValidMessage(text[], maxcount)
{
    static len, i, count;
    len = strlen(text);
    count = 0;
    
    if (!len) return false;
    
    for (i = 0; i < len; i++)
    {
        if (text[i] != ' ')
        {
            count++
            if (count >= maxcount)
                return true;
        }
    }
    
    return false;
}
SI NO VAS AYUDAR, POR FAVOR NO COMENTARLovepanda
#2
veo que eres nuevo, pásate por acá https://amxmodx-es.com/Thread-Reglas para no tener problemas

y no hay necesidad del doblepost. Whatever
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
#3
mete tus códigos dentro del botón de PHP donde escribís las publicaciones, así se aprecia mejor el code.
#4
Sólo se permite publicar plugins de autoría propia en esta sección.


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)