Raised This Month: $ Target: $400
 0% 

[ADMIN], [MOD] and [VIP] tag


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 02-09-2011 , 19:22   Re: [ADMIN], [MOD] and [VIP] tag
Reply With Quote #11

PHP Code:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Admin Chat Colors"
#define VERSION "2.0"
#define AUTHOR "Arion"

#define ACCESS_LEVEL ADMIN_IMMUNITY
#define ADMIN_LISTEN ADMIN_LEVEL_C

new message[192]
new 
sayText
new teamInfo
new maxPlayers

new g_MessageColor
new g_NameColor
new g_AdminListen

new strName[191]
new 
strText[191]
new 
alive[11]

new const 
g_szTag[][] = {
    
""// DO NOT REMOVE
    
"[ADMIN]",
    
"[MOD]",
    
"[VIP]",
    
"[YOUR NEW TAG]"
}

new const 
g_iTagFlag[sizeof(g_szTag)] = {
    
ADMIN_ALL// DO NOT REMOVE
    
ADMIN_IMMUNITY,
    
ADMIN_BAN,
    
ADMIN_RESERVATION,
    
ADMIN_LEVEL_B
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
g_MessageColor register_cvar("amx_color""2"// Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red
    
g_NameColor register_cvar("amx_namecolor""6"// Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
    
g_AdminListen register_cvar("amx_listen""1"// Set whether admins see or not all messages(Alive, dead and team-only)


    
sayText get_user_msgid("SayText")
    
teamInfo get_user_msgid("TeamInfo")
    
maxPlayers get_maxplayers()


    
register_message(sayText"avoid_duplicated")

    
register_concmd("amx_color""set_color"ACCESS_LEVEL"<color>")
    
register_concmd("amx_namecolor""set_name_color"ACCESS_LEVEL"<color>")
    
register_concmd("amx_listen""set_listen"ACCESS_LEVEL"<1 | 0>")
    
register_clcmd("say""hook_say")
    
register_clcmd("say_team""hook_teamsay")
}


public 
avoid_duplicated(msgIdmsgDestreceiver)
{
    return 
PLUGIN_HANDLED
}

get_tag_index(id)
{
    new 
flags get_user_flags(id)
    
    for(new 
1sizeof(g_iTagFlag); i++)
    {
        if(
check_admin_flag(flagsg_iTagFlag[i]))
        {
            return 
i
        
}
    }
    
    return 
0
}

check_admin_flag(flagsflag)
{
    if(
flag == ADMIN_ADMIN)
    {
        return ((
flags & ~ADMIN_USER) > 0)
    }
    else if(
flag == ADMIN_ALL)
    {
        return 
1
    
}
    
    return (
flags flag)
}

public 
hook_say(id)
{
    
read_args(message191)
    
remove_quotes(message)

    
// Gungame commands and empty messages
    
if(message[0] == '@' || message[0] == '/' || message[0] == '!' || equal(message"")) // Ignores Admin Hud Messages, Admin Slash commands,
        
return PLUGIN_CONTINUE

    
new name[32]
    
get_user_name(idname31)

    new 
admin get_tag_index(id)

    new 
isAlive

    
if(is_user_alive(id))
    {
        
isAlive 1
        alive 
"^x01"
    
}
    else
    {
        
isAlive 0
        alive 
"^x01*DEAD* "
    
}

    static 
color[10]

    if(
admin)
    {
        
// Name
        
switch(get_pcvar_num(g_NameColor))
        {
            case 
1:
                
format(strName191"^x04%s %s%s"g_szTag[admin], alivename)
            case 
2:
                
format(strName191"^x04%s %s^x04%s "g_szTag[admin], alivename)
            case 
3:
            {
                
color "SPECTATOR"
                
format(strName191"^x04%s %s^x03%s "g_szTag[admin], alivename)
            }
            case 
4:
            {
                
color "CT"
                
format(strName191"^x04%s %s^x03%s"g_szTag[admin], alivename)
            }
            case 
5:
            {
                
color "TERRORIST"
                
format(strName191"^x04%s %s^x03%s"g_szTag[admin], alivename)
            }
            case 
6:
            {
                
get_user_team(idcolor9)
                
format(strName191"^x04%s %s^x03%s"g_szTag[admin], alivename)
            }
        }

        
// Message
        
switch(get_pcvar_num(g_MessageColor))
        {
            case 
1:    // Yellow
                
format(strText191"%s"message)
            case 
2:    // Green
                
format(strText191"^x04%s"message)
            case 
3:    // White
            
{
                
copy(color9"SPECTATOR")
                
format(strText191"^x03%s"message)
            }
            case 
4:    // Blue
            
{
                
copy(color9"CT")
                
format(strText191"^x03%s"message)
            }
            case 
5:    // Red
            
{
                
copy(color9"TERRORIST")
                
format(strText191"^x03%s"message)
            }
        }
    }
    else     
// Player is not admin. Team-color name : Yellow message
    
{
        
get_user_team(idcolor9)
        
format(strName191"%s^x03%s"alivename)
        
format(strText191"%s"message)
    }

    
format(message191"%s^x01 :  %s"strNamestrText)

    
sendMessage(colorisAlive)    // Sends the colored message

    
return PLUGIN_CONTINUE
}


public 
hook_teamsay(id)
{
    new 
playerTeam get_user_team(id)
    new 
playerTeamName[19]

    switch(
playerTeam// Team names which appear on team-only messages
    
{
        case 
1:
            
copy(playerTeamName11"Terrorists")

        case 
2:
            
copy(playerTeamName18"Counter-Terrorists")

        default:
            
copy(playerTeamName9"Spectator")
    }

    
read_args(message191)
    
remove_quotes(message)

    
// Gungame commands and empty messages
    
if(message[0] == '@' || message[0] == '/' || message[0] == '!' || equal(message"")) // Ignores Admin Hud Messages, Admin Slash commands,
        
return PLUGIN_CONTINUE

    
new name[32]
    
get_user_name(idname31)

    new 
admin get_tag_index(id)

    new 
isAlive

    
if(is_user_alive(id))
    {
        
isAlive 1
        alive 
"^x01"
    
}
    else
    {
        
isAlive 0
        alive 
"^x01*DEAD* "
    
}

    static 
color[10]

    if(
admin)
    {
        
// Name
        
switch(get_pcvar_num(g_NameColor))
        {
            case 
1:
                
format(strName191"%s(%s)^x04%s %s"aliveplayerTeamNameg_szTag[admin], name)
            case 
2:
                
format(strName191"%s(%s)^x04%s ^x04%s"aliveplayerTeamNameg_szTag[admin], name)
            case 
3:
            {
                
color "SPECTATOR"
                
format(strName191"%s(%s)^x04%s ^x03%s"aliveplayerTeamNameg_szTag[admin], name)
            }
            case 
4:
            {
                
color "CT"
                
format(strName191"%s(%s)^x04%s ^x03%s"aliveplayerTeamNameg_szTag[admin], name)
            }
            case 
5:
            {
                
color "TERRORIST"
                
format(strName191"%s(%s)^x04%s ^x03%s"aliveplayerTeamNameg_szTag[admin], name)
            }
            case 
6:
            {
                
get_user_team(idcolor9)
                
format(strName191"%s(%s)^x04%s ^x03%s"aliveplayerTeamNameg_szTag[admin], name)
            }
        }

        
// Message
        
switch(get_pcvar_num(g_MessageColor))
        {
            case 
1:    // Yellow
                
format(strText191"%s"message)
            case 
2:    // Green
                
format(strText191"^x04%s"message)
            case 
3:    // White
            
{
                
copy(color9"SPECTATOR")
                
format(strText191"^x03%s"message)
            }
            case 
4:    // Blue
            
{
                
copy(color9"CT")
                
format(strText191"^x03%s"message)
            }
            case 
5:    // Red
            
{
                
copy(color9"TERRORIST")
                
format(strText191"^x03%s"message)
            }
        }
    }
    else     
// Player is not admin. Team-color name : Yellow message
    
{
        
get_user_team(idcolor9)
        
format(strName191"%s(%s) ^x03%s"aliveplayerTeamNamename)
        
format(strText191"%s"message)
    }

    
format(message191"%s ^x01:  %s"strNamestrText)

    
sendTeamMessage(colorisAliveplayerTeam)    // Sends the colored message

    
return PLUGIN_CONTINUE
}


public 
set_color(idlevelcid)
{
    if(!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED

    
new arg[1], newColor
    read_argv
(1arg1)

    
newColor str_to_num(arg)

    if(
newColor >= && newColor <= 5)
    {
        
set_pcvar_num(g_MessageColornewColor)

        if(
get_pcvar_num(g_NameColor) != &&
            ((
newColor == &&  get_pcvar_num(g_NameColor) != 3)
            ||(
newColor == &&  get_pcvar_num(g_NameColor) != 4)
            ||(
newColor == &&  get_pcvar_num(g_NameColor) != 5)))
        {
            
set_pcvar_num(g_NameColor2)
        }
    }

    return 
PLUGIN_HANDLED
}


public 
set_name_color(idlevelcid)
{
    if(!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED

    
new arg[1], newColor
    read_argv
(1arg1)

    
newColor str_to_num(arg)

    if(
newColor >= && newColor <= 6)
    {
        
set_pcvar_num(g_NameColornewColor)

        if((
get_pcvar_num(g_MessageColor) != 1
            
&&((newColor == &&  get_pcvar_num(g_MessageColor) != 3)
            ||(
newColor == &&  get_pcvar_num(g_MessageColor) != 4)
            ||(
newColor == &&  get_pcvar_num(g_MessageColor) != 5)))
            || 
get_pcvar_num(g_NameColor) == 6)
        {
            
set_pcvar_num(g_MessageColor2)
        }
    }

    return 
PLUGIN_HANDLED
}


public 
set_listen(idlevelcid)
{
    if(!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED

    
new arg[1], newListen
    read_argv
(1arg1)

    
newListen str_to_num(arg)

    
set_pcvar_num(g_AdminListennewListen)

    return 
PLUGIN_HANDLED
}


public 
sendMessage(color[], alive)
{
    new 
teamName[10]

    for(new 
player 1player maxPlayersplayer++)
    {
        if(!
is_user_connected(player))
            continue

        if(
alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
        {
            
get_user_team(playerteamName9)    // Stores user's team name to change back after sending the message
            
changeTeamInfo(playercolor)        // Changes user's team according to color choosen
            
writeMessage(playermessage)        // Writes the message on player's chat
            
changeTeamInfo(playerteamName)    // Changes user's team back to original
        
}
    }
}


public 
sendTeamMessage(color[], aliveplayerTeam)
{
    new 
teamName[10]

    for(new 
player 1player maxPlayersplayer++)
    {
        if(!
is_user_connected(player))
            continue

        if(
get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
        {
            if(
alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
            {
                
get_user_team(playerteamName9)    // Stores user's team name to change back after sending the message
                
changeTeamInfo(playercolor)        // Changes user's team according to color choosen
                
writeMessage(playermessage)        // Writes the message on player's chat
                
changeTeamInfo(playerteamName)    // Changes user's team back to original
            
}
        }
    }
}


public 
changeTeamInfo(playerteam[])
{
    
message_begin(MSG_ONEteamInfo_player)    // Tells to to modify teamInfo(Which is responsable for which time player is)
    
write_byte(player)                // Write byte needed
    
write_string(team)                // Changes player's team
    
message_end()                    // Also Needed
}


public 
writeMessage(playermessage[])
{
    
message_begin(MSG_ONEsayText, {000}, player)    // Tells to modify sayText(Which is responsable for writing colored messages)
    
write_byte(player)                    // Write byte needed
    
write_string(message)                    // Effectively write the message, finally, afterall
    
message_end()                        // Needed as always

__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!
Exolent[jNr] is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:45.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode