Admin Tag
#1
Admin tag con Roles de Admin Vencimiento 0.1b (Hinami)
https://amxmodx-es.com/showthread.php?tid=18936 <---Admin Panel


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

native get_roleUser(iddest[], len);

#define PATTERN                "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" // \b

#define RCON ADMIN_RCON

enum{
    NUM 0,
    POINT 1,
    DPOINT 2,
    WWW 3,
    TOTAL_LTS



new const 
chat[] = "chat.log"
new gSzTag33 ][ 32 ], gPlayerName33 ][ 32 ], gMaxPlayers;

public 
plugin_init()
{
    
register_plugin"Admin Tag(Para noobs)" "0.1" "kikizon" );
    
    
register_clcmd"say" "clcmdSay" );
    
register_clcmd"say_team" "clcmdSayTeam" );

    
gMaxPlayers get_maxplayers();

    
register_message(get_user_msgid("SayText"), "MessageNameChange")
}


public 
client_putinserverindex )
{
    
get_user_nameindex gPlayerName[index], 31 );
    
gSzTag[index][0] = EOS;

    
get_roleUser(indexgSzTag[index], 31);
    
check_user_name(index)

}

public 
client_infochangedindex )
{
    new 
oldname[32], newname[32];
    
get_user_nameindex oldname31 );
    
get_user_infoindex "name"newname31 );

    if( !
equal(oldnamenewname))
        
copygPlayerName[index], 31newname );
    
check_user_name(indexnewname)
}

public 
clcmdSay(index)
{
    static 
said[191]; read_args(said190); remove_quotes(said); replace_all(said190"%"""); replace_all(said190"#""");
    new 
contador[TOTAL_LTS]

    for( new 
0strlen(said) ; i++)
    {
        switch(said[i])
        {
            case '0''1''2''3''4''5''6''7''8''9' contador[NUM]++
            
            
case '.' contador[POINT]++
            
            
case ':' contador[DPOINT]++
            
            
case 'w' contador[WWW]++
            
        
}
    }
    
        
if(!(get_user_flags(index) & RCON))
        {


        if(
contador[NUM] >= && contador[POINT] || (contador[WWW] >= && containi(said,".com")) || contador[NUM] >= || contador[NUM] >= && contador[POINT])
        {    

            
client_print(0print_chat"[Anti-Spam] %s Mensaje bloqueado. Considerado Spam"gPlayerName[index])
            return 
PLUGIN_HANDLED
                
                
        
}
        }

    

    if (!
ValidMessage(said1)) return PLUGIN_CONTINUE;

    static 
color[11], prefix[128]; get_user_team(indexcolor10);
    
formatex(prefix127"%s^x04%s^x03 %s"is_user_alive(index)?"^x01":"^x01*DEAD* "gSzTag[index], gPlayerName[index]);

    if (
is_user_admin(index)) format(saidcharsmax(said), "^x04%s"said);

    
format(saidcharsmax(said), "%s^x01 : %s"prefixsaid);

    static 
iteam[11];

    for (
1<= gMaxPlayers; ++i)
    {
        if (!
is_user_connected(i)) continue;

        
get_user_team(iteam10);
        
changeTeamInfo(icolor);
        
writeMessage(isaid);
        
changeTeamInfo(iteam);
    }
    
log_to_file(chat"%s",  saidgPlayerName[index])
    
    
return PLUGIN_HANDLED_MAIN;
}

public 
clcmdSayTeamindex )
{
    static 
said[191]; read_args(said190); remove_quotes(said); replace_all(said190"%"""); replace_all(said190"#""");

    new 
contador[TOTAL_LTS]

    for( new 
0strlen(said) ; i++)
    {
        switch(said[i])
        {
            case '0''1''2''3''4''5''6''7''8''9' contador[NUM]++
            
            
case '.' contador[POINT]++
            
            
case ':' contador[DPOINT]++
            
            
case 'w' contador[WWW]++
            
        
}
    }

    if(
contador[NUM] >= && contador[POINT] || (contador[WWW] >= && containi(said,".com"))|| contador[NUM] >= || contador[NUM] >= && contador[POINT])
    {
        
client_print(0print_chat"[Anti-Spam] Mensaje bloqueado. Considerado Spam")
        return 
PLUGIN_HANDLED
    
}

    if (!
ValidMessage(said1)) return PLUGIN_CONTINUE;

    static 
playerTeamplayerTeamName[20]; playerTeam get_user_team(index);

    switch (
playerTeam)
    {
        case 
1formatexplayerTeamName19"^x01(^x03 CT^x01 ) " );
        case 
2formatexplayerTeamName19"^x01(^x03 TT^x01 ) " );
        default: 
formatexplayerTeamName19"^x01(^x03 SPEC^x01 ) " );
    }

    static 
color[11], prefix[128]; get_user_team(indexcolor10); 
    
formatex(prefix127"%s%s^x04%s^x03 %s"is_user_alive(index)?"^x01":"^x01*DEAD* "playerTeamNamegSzTag[index], gPlayerName[index]);

    if (
is_user_admin(index)) format(saidcharsmax(said), "^x04%s"said);

    
format(saidcharsmax(said), "%s^x01 : %s"prefixsaid);

    static 
iteam[11];
    for (
1<= gMaxPlayers; ++i)
    {
        if (!
is_user_connected(i) || get_user_team(i) != playerTeam) continue;

        
get_user_team(iteam10);
        
changeTeamInfo(icolor);
        
writeMessage(isaid);
        
changeTeamInfo(iteam);
    }    
    
log_to_file(chat"%s"saidgPlayerName[index] )
    return 
PLUGIN_HANDLED_MAIN;
}

stock ValidMessage(text[], maxcount
{
    static 
lenicount;
    
len strlen(text);
    
count 0;

    if (!
len) return false;

    for (
0len; ++i
    {
        if (
text[i] != ' '
        {
            ++
count;
            
            if (
count >= maxcount)
                return 
true;
        }
    }

    return 
false;
}

public 
changeTeamInfo(playerteam[])
{
    static 
msgteamInfo;
    if( !
msgteamInfo msgteamInfo get_user_msgid"TeamInfo" );

    
message_begin(MSG_ONEmsgteamInfo_player);
    
write_byte(player);
    
write_string(team);
    
message_end();
}

public 
writeMessage(playermessage[])
{
    static 
msgSayText;
    if( !
msgSayText msgSayText get_user_msgid"SayText" );

    
message_begin(MSG_ONEmsgSayText, {000}, player);
    
write_byte(player);
    
write_string(message);
    
message_end();
}

stock check_user_name(id, const name[32] = ""
{
    new plrname[32]
    
    
if(equal(name""))
    {
        get_user_name(idplrname31)
    }
    else
    {
        plrname name
    
}
    
    
new g_returnvalueg_error[64]
    new Regex:g_result regex_match(plrnamePATTERNg_returnvalueg_error63)
    switch(g_result)
    {
        case REGEX_MATCH_FAILREGEX_PATTERN_FAIL:
        {
            return log_amx("REGEX ERROR! %s"g_error)
        }
        
        
case REGEX_NO_MATCH:
        {
            return 0
        
}
        
        
default:
        {
            new name[33]
            get_user_name(idname32)
            client_cmd(id"name ^"[SVLUSER ^"")
            client_print(0print_chat"[Anti-Spam] %s Intento Cambiarse el Nombre"name)
            server_cmd("kick %s"name)
        
            
return 1
        
}
    }
    
    
return -1

}
public 
MessageNameChange(msgiddestid)
{
    new szInfo[64

    get_msg_arg_string(2szInfo63

    if(!equali(szInfo"#Cstrike_Name_Change"))
    {
        return PLUGIN_CONTINUE    
    
}
    
    
return PLUGIN_HANDLED

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)