PHP Code:
/*=========================================
[----->Invis<-----]
[DeXTeR Production]
[Privileges System]
[CHAT]
=========================================*/
#include <amxmodx>
#include <amxmisc>
#define MAX_PREFIXES 10
// Core Member Prefix - l
#define FLAGHADMIN ADMIN_RCON
#define PREFIXHADMIN "Head Administrator"
// Super Admin Prefix-a
#define FLAGSADMIN ADMIN_IMMUNITY
#define PREFIXSADMIN "Super Admin"
// Admin Prefix-d
#define FLAGADMIN ADMIN_BAN
#define PREFIXADMIN "Admin"
// Ultra VIP Prefix-e
#define FLAGUVIP ADMIN_SLAY
#define PREFIXUVIP "Ultra VIP"
// VIP Prefix-i
#define FLAGVIP ADMIN_CHAT
#define PREFIXVIP "VIP"
//Free VIP Prefix-b
#define FLAGFVIP ADMIN_RESERVATION
#define PREFIXFVIP "Free VIP"
new HAdmin, SAdmin, Admin,UVip, Vip, FVip;
new SzMaxPlayers, SzSayText;
new SzGTeam[3][] = {
"Spectator",
"Terrorist",
"Counter-Terrorist"
}
public plugin_init()
{
register_plugin("Privileges System", "2.0", "Invis [DeXTeR Production]]");
// Cvars Plugins
HAdmin = register_cvar("Head Administrator", "1");
SAdmin = register_cvar("SAdmin", "1");
Admin = register_cvar("Admin", "1");
UVip = register_cvar("UVip" , "1");
Vip = register_cvar("Vip", "1");
FVip = register_cvar("FVip" , "1");
register_clcmd("say", "hook_say");
register_clcmd("say_team", "hook_say_team");
SzSayText = get_user_msgid ("SayText");
SzMaxPlayers = get_maxplayers();
register_message(SzSayText, "MsgDuplicate");
}
public MsgDuplicate(id)
{
return PLUGIN_HANDLED;
}
public hook_say(id)
{
new SzMessages[192], SzName[32];
new SzAlive = is_user_alive(id);
new SzGetFlag = get_user_flags(id);
read_args(SzMessages, charsmax(SzMessages));
remove_quotes(SzMessages);
get_user_name(id, SzName, charsmax(SzName));
if(!is_valid_msg(SzMessages))
return PLUGIN_CONTINUE;
if(get_pcvar_num(HAdmin) && SzGetFlag & FLAGHADMIN)
(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXHADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXHADMIN, SzName, SzMessages));
else if(get_pcvar_num(SAdmin) && SzGetFlag & FLAGSADMIN)
(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXSADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXSADMIN, SzName, SzMessages));
else if(get_pcvar_num(Admin) && SzGetFlag & FLAGADMIN)
(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMIN, SzName, SzMessages));
else if(get_pcvar_num(UVip) && SzGetFlag & FLAGUVIP)
(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXUVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXUVIP, SzName, SzMessages));
else if(get_pcvar_num(Vip) && SzGetFlag & FLAGVIP)
(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXVIP, SzName, SzMessages));
else if(get_pcvar_num(FVip) && SzGetFlag & FLAGFVIP)
(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXFVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXFVIP, SzName, SzMessages));
else if(get_pcvar_num(HAdmin) && !(SzGetFlag & FLAGHADMIN))
(SzAlive ? format(SzMessages, 191, "^3%s : ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
else if(get_pcvar_num(SAdmin) && !(SzGetFlag & FLAGSADMIN))
(SzAlive ? format(SzMessages, 191, "^3%s : ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
else if(get_pcvar_num(Admin) && !(SzGetFlag & FLAGADMIN))
(SzAlive ? format(SzMessages, 191, "^3%s : ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
else if(get_pcvar_num(UVip) && !(SzGetFlag & FLAGUVIP))
(SzAlive ? format(SzMessages, 191, "^3%s : ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
else if(get_pcvar_num(Vip) && !(SzGetFlag & FLAGVIP))
(SzAlive ? format(SzMessages, 191, "^3%s : ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
else if(get_pcvar_num(FVip) && !(SzGetFlag & FLAGFVIP))
(SzAlive ? format(SzMessages, 191, "^3%s : ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages));
for(new i = 1; i <= SzMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;
message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i);
write_byte(id);
write_string(SzMessages);
message_end();
}
return PLUGIN_CONTINUE;
}
public hook_say_team(id)
{
new SzMessages[192], SzName[32];
new SzAlive = is_user_alive(id);
new SzGetFlag = get_user_flags(id);
new SzGetTeam = get_user_team(id);
read_args(SzMessages, charsmax(SzMessages));
remove_quotes(SzMessages);
get_user_name(id, SzName, charsmax(SzName));
if(!is_valid_msg(SzMessages))
return PLUGIN_CONTINUE;
if(get_pcvar_num(HAdmin) && SzGetFlag & FLAGHADMIN)
(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXHADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXHADMIN, SzName, SzMessages));
else if(get_pcvar_num(SAdmin) && SzGetFlag & FLAGSADMIN)
(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXSADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXSADMIN, SzName, SzMessages));
else if(get_pcvar_num(Admin) && SzGetFlag & FLAGADMIN)
(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXADMIN, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXADMIN, SzName, SzMessages));
else if(get_pcvar_num(UVip) && SzGetFlag & FLAGUVIP)
(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXUVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXUVIP, SzName, SzMessages));
else if(get_pcvar_num(Vip) && SzGetFlag & FLAGVIP)
(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXVIP, SzName, SzMessages));
else if(get_pcvar_num(FVip) && SzGetFlag & FLAGFVIP)
(SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXFVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^4%s", SzGTeam[SzGetTeam], PREFIXFVIP, SzName, SzMessages));
else if(get_pcvar_num(HAdmin) && !(SzGetFlag & FLAGHADMIN))
(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));
else if(get_pcvar_num(SAdmin) && !(SzGetFlag & FLAGSADMIN))
(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));
else if(get_pcvar_num(Admin) && !(SzGetFlag & FLAGADMIN))
(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));
else if(get_pcvar_num(UVip) && !(SzGetFlag & FLAGUVIP))
(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));
else if(get_pcvar_num(Vip) && !(SzGetFlag & FLAGVIP))
(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));
else if(get_pcvar_num(FVip) && !(SzGetFlag & FLAGFVIP))
(SzAlive ? format(SzMessages, 191, "^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^3%s : ^1%s", SzGTeam[SzGetTeam], SzName, SzMessages));
for(new i = 1; i <= SzMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;
if(get_user_team(i) != SzGetTeam)
continue;
message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i);
write_byte(id);
write_string(SzMessages);
message_end();
}
return PLUGIN_CONTINUE;
}
bool:is_valid_msg(const SzMessages[]){
if( SzMessages[0] == '@'
|| !strlen(SzMessages)){ return false; }
return true;
}