Raised This Month: $ Target: $400
 0% 

HELP - ENOUGH put ADMIN TAG


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
marcoamlp
Member
Join Date: Jul 2011
Old 12-19-2011 , 08:36   HELP - ENOUGH put ADMIN TAG
Reply With Quote #1

Quote:
Originally Posted by Exolent[jNr] View Post
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

marcoamlp is offline
 


Thread Tools
Display Modes

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