Code: Select all
#include <amxmodx>
#include <war3_race>
new SzGTeam[3][] = {
"Spectator",
"Terrorist",
"Counter-Terrorist"
}
#define TOTALRACES 10
new const RacesNames[TOTALRACES][] =
{
"[No Race]",
"[Undead]",
"[Human]",
"[Orc]",
"[Night Elf]",
"[Blood Mage]",
"[Shadow Hunter]",
"[Warden]",
"[Crypt Lord]",
"[Chameleon]"
}
new SzSayText,SzMaxPlayers
public plugin_init()
{
register_plugin("Admin Prefix And Chat Color", "1.1", "val");
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);
read_args(SzMessages, 191);
remove_quotes(SzMessages);
get_user_name(id, SzName, 31);
if(!is_valid_msg(SzMessages))
return PLUGIN_CONTINUE;
switch(SzAlive) { //switch za ako e jiv
case 0: {
format(SzMessages, 191, "^1*DEAD* ^4%s ^3%s : ^1%s", RacesNames[get_race(id)],SzName, SzMessages)
}
case 1: {
format(SzMessages, 191, "^4%s ^3%s : ^1%s", RacesNames[get_race(id)],SzName, SzMessages)
}
}
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 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;
switch(SzAlive) { //switch za ako e jiv
case 0: {
format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4%s ^3%s : ^1%s", SzGTeam[SzGetTeam], RacesNames[get_race(id)],SzName, SzMessages)
}
case 1: {
format(SzMessages, 191, "^1(%s) ^4%s ^3%s : ^1%s", SzGTeam[SzGetTeam],RacesNames[get_race(id)], SzName, SzMessages)
}
}
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;
}
SERVER MANAGER - ADMIN_LEVEL_C
ADMIN - ADMIN_BAN
TEST ADMIN - ADMIN_CHAT
SMS ADMIN - ADMIN_KICK
VIP - ADMIN_LEVEL_D
Също така ако може да са след расата
Примерно : [Undead][ADMIN] Cs-bg: Test plugin
* [Undead] - зелен
* [ADMIN] - според отбора
* AdminNick (Cs-bg) - зелен
* AdminChat - жълт