Code: Select all
#include <amxmodx> - модул (главния модул, на който се базират всички плъгини)
#include <amxmisc> - модул (проверява дали даден потребител е админ)
#define VERSION "3.0" - Версията на плъгина.
// Admin Prefix One
#define FLAGADMINONE ADMIN_LEVEL_A - Това е нашия левел, който трябва да е админа, за да носи този ранг в случая флаг "m".
#define PREFIXADMINONE "Admin Prefix One" - Името на ранг-а.
// Admin Prefix Two
#define FLAGADMINTWO ADMIN_LEVEL_B - Това е нашия левел, който трябва да е админа, за да носи този ранг в случая флаг "n".
#define PREFIXADMINTWO "Admin Prefix Two" - Името на ранг-а.
// VIP Prefix
#define FLAGADMINVIP ADMIN_LEVEL_C - Това е нашия левел, който трябва да е админа, за да носи този ранг в случая флаг "о".
#define PREFIXADMINVIP "VIP Prefix" - Името на ранг-а.
// SMS Prefix
#define FLAGADMINSMS ADMIN_LEVEL_D - Това е нашия левел, който трябва да е админа, за да носи този ранг в случая флаг "p".
#define PREFIXADMINSMS "SMS Prefix" - Името на ранг-а.
//AdminPrefixThree
#define FLAGADMINTHREE ADMIN_LEVEL_E - Това е нашият нов 5-ти ранг и той е с флаг "q".
#define PREFIXADMINTHREE "Admin Prefix Three" - Името на новия ни ранг.
new AdminPrefixOne, AdminPrefixTwo, SmsPrefix, VipPrefix, AdminPrefixThree; - Това са cvar's и сме добавили нашия.
new SzMaxPlayers, SzSayText;
new SzGTeam[3][] = {
"Spectator",
"Terrorist",
"Counter-Terrorist"
}
public plugin_init()
{
register_plugin("Admin Prefix And Chat Color", VERSION, "kostov,Dark_Style");
// Cvars Plugins
AdminPrefixOne = register_cvar("show_admin_prefix_one", "1");
AdminPrefixTwo = register_cvar("show_admin_prefix_two", "1");
SmsPrefix = register_cvar("show_sms_admin_prefix", "1");
VipPrefix = register_cvar("show_vip_admin_prefix", "1");
AdminPrefixThree = register_cvar("show_admin_prefix_three", "1") - Toва е нашия нов cvar
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(AdminPrefixOne) && SzGetFlag & FLAGADMINONE)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINONE, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINONE, SzName, SzMessages));
else if(get_pcvar_num(AdminPrefixTwo) && SzGetFlag & FLAGADMINTWO)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINTWO, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINTWO, SzName, SzMessages));
else if(get_pcvar_num(SmsPrefix) && SzGetFlag & FLAGADMINSMS)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINSMS, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINSMS, SzName, SzMessages));
else if(get_pcvar_num(VipPrefix) && SzGetFlag & FLAGADMINVIP)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINVIP, SzName, SzMessages));
else if(get_pcvar_num(AdminPrefixThree) && SzGetFlag & FLAGADMINTHREE)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINTHREE, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINTHREE, SzName, SzMessages)); Toва добавяме ние като условие ако сме живи.
else if(get_pcvar_num(AdminPrefixOne) && !(SzGetFlag & FLAGADMINONE))(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(AdminPrefixTwo) && !(SzGetFlag & FLAGADMINTWO))(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(SmsPrefix) && !(SzGetFlag & FLAGADMINSMS))(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(VipPrefix) && !(SzGetFlag & FLAGADMINVIP))(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(AdminPrefixThree) && !(SzGetFlag & FLAGADMINTHREE))(SzAlive ? format(SzMessages, 191, "^3%s : ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages)); Toва добавяме ние като условие ако сме мъртви.
for(new i = 1; i <= SzMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;
if(SzAlive && is_user_alive(i) || !SzAlive && !is_user_alive(i))
{
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(AdminPrefixOne) && SzGetFlag & FLAGADMINONE)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINONE, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINONE, SzName, SzMessages));
else if(get_pcvar_num(AdminPrefixTwo) && SzGetFlag & FLAGADMINTWO)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINTWO, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINTWO, SzName, SzMessages));
else if(get_pcvar_num(SmsPrefix) && SzGetFlag & FLAGADMINSMS)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINSMS, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINSMS, SzName, SzMessages));
else if(get_pcvar_num(VipPrefix) && SzGetFlag & FLAGADMINVIP)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINVIP, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINVIP, SzName, SzMessages));
else if(get_pcvar_num(AdminPrefixThree) && SzGetFlag & FLAGADMINTHREE)(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^4%s", PREFIXADMINTHREE, SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", PREFIXADMINTHREE, SzName, SzMessages)); - Toва добавяме ние като условие ако сме живи.
else if(get_pcvar_num(AdminPrefixOne) && !(SzGetFlag & FLAGADMINONE))(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(AdminPrefixTwo) && !(SzGetFlag & FLAGADMINTWO))(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(SmsPrefix) && !(SzGetFlag & FLAGADMINSMS))(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(VipPrefix) && !(SzGetFlag & FLAGADMINVIP))(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(AdminPrefixThree) && !(SzGetFlag & FLAGADMINTHREE))(SzAlive ? format(SzMessages, 191, "^3%s : ^1%s", SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^3%s : ^1%s", SzName, SzMessages)); - Toва добавяме ние като условие като сме мъртви.
for(new i = 1; i <= SzMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;
if(get_user_team(i) != SzGetTeam)
continue;
if(SzAlive && is_user_alive(i) || !SzAlive && !is_user_alive(i))
{
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;
}