Code: Select all
/*=========================================[----->Invis<-----] [DeXTeR Production] [Privileges System] [CHAT] =========================================*/ #include <amxmodx>#include <amxmisc> #define VERSION "2.0"#define MAX_PREFIXES 10 // Owner Prefix#define FLAGOWNER ADMIN_RCON#define PREFIXOWNER "Savininkas" // Priziuretojas Prefix#define FLAGPRIZ ADMIN_U#define PREFIXPRIZ "Savininkas2" // S.Admin Prefix#define FLAGSADMIN ADMIN_IMMUNITY#define PREFIXSADMIN "S.ADMIN" // Admin Prefix#define FLAGADMIN ADMIN_BAN#define PREFIXADMIN "ADMIN" // VIP Prefix#define FLAGVIP ADMIN_LEVEL_H#define PREFIXVIP "VIP" new Owner, SAdmin, Admin,Vip; new SzMaxPlayers, SzSayText; new SzGTeam[3][] = { "Spectator", "Terrorist", "Counter-Terrorist"} public plugin_init(){ register_plugin("Privileges System", VERSION, "Invis [DeXTeR Production]]"); // Cvars Plugins Owner = register_cvar("Owner", "1"); SAdmin = register_cvar("Sadmin", "1"); Admin = register_cvar("Admin", "1"); Vip = register_cvar("Vip", "1"); Priz = register_cvar("Vip", "1"); register_cvar("admin_prefix_version", VERSION, FCVAR_SERVER|FCVAR_SPONLY); set_cvar_string("admin_prefix_version", VERSION); 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, 191); remove_quotes(SzMessages); get_user_name(id, SzName, 31); if(!is_valid_msg(SzMessages)) return PLUGIN_CONTINUE; if(get_pcvar_num(Owner) && SzGetFlag & FLAGOWNER)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^3%s", PREFIXOWNER, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^3%s", PREFIXOWNER, SzName, SzMessages)); if(get_pcvar_num(Priz) && SzGetFlag & FLAGPRIZ)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^3%s", PREFIXPRIZ, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^3%s", PREFIXPRIZ, 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(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(Owner) && !(SzGetFlag & FLAGOWNER))(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(Priz) && !(SzGetFlag & FLAGPRIZ))(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(Vip) && !(SzGetFlag & FLAGVIP))(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, 191); remove_quotes(SzMessages); get_user_name(id, SzName, 31); if(!is_valid_msg(SzMessages)) return PLUGIN_CONTINUE; if(get_pcvar_num(Owner) && SzGetFlag & FLAGOWNER)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^3%s", PREFIXOWNER, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^3%s", PREFIXOWNER, SzName, SzMessages)); if(get_pcvar_num(Priz) && SzGetFlag & FLAGPRIZ)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^3%s", PREFIXPRIZ, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^3%s", PREFIXPRIZ, 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(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(Owner) && !(SzGetFlag & FLAGOWNER))(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(Priz) && !(SzGetFlag & FLAGPRIZ))(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)); 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;} /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1046{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }*/