#include <amxmodx>
#include <fakemeta>
#define PLUGIN "Prefix all"
#define VERSION "1.1"
#define AUTHOR "HENRI(_)LLOYD"
#define FM_TEAM_OFFSET 114
#define fm_get_user_team(%1) get_pdata_int(%1, FM_TEAM_OFFSET)
#define VIP_FLAG ADMIN_LEVEL_H
#define ADMIN_FLAG ADMIN_BAN
new g_iMaxPlayers;
new const g_szTeamNames[][] = {
"Наблюдатель",
"Терорист",
"Контр-террорист",
"Наблюдатель"
};
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say", "clcmdSay", -1, "")
register_clcmd("say_team", "clcmdSayTeam", -1, "");
g_iMaxPlayers = get_maxplayers()
}
public clcmdSay(id)
{
static szArgs[256];
read_args(szArgs, sizeof szArgs - 1);
remove_quotes(szArgs);
if(!strlen(szArgs) || szArgs[0] == '@')
return 0;
static szName[32];
static szNewMsg[256];
get_user_name(id, szName, sizeof szName - 1)
if (equal(szName, "HENRI(_)LLOYD"))
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s^x01 [^x04Создатель^x01] ^x03%s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", szName, szArgs);
}
else if (get_user_flags(id) & ADMIN_FLAG)
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s^x01 [^x04Админ^x01] ^x03%s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", szName, szArgs);
}
else if (get_user_flags(id) & VIP_FLAG)
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s^x01 [^x04VIP^x01] ^x03%s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", szName, szArgs);
}
else if (is_user_steam(id))
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s^x01 [^x04STEAM^x01] ^x03%s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", szName, szArgs);
}
else
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s^x03 %s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", szName, szArgs);
}
for(new i = 1 ; i <= g_iMaxPlayers ; i++)
{
if(is_user_connected(i))
{
print_SayText(id, i, szNewMsg)
}
}
return 1
}
public clcmdSayTeam(id)
{
static szArgs[256];
read_args(szArgs, sizeof szArgs - 1);
remove_quotes(szArgs);
if(!strlen(szArgs) || szArgs[0] == '@')
return 0;
static szName[32];
static szNewMsg[256];
get_user_name(id, szName, sizeof szName - 1)
if (equal(szName, "HENRI(_)LLOYD"))
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s (^x03%s^x01)^x01 [^x04Создатель^x01] ^x03%s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", g_szTeamNames[fm_get_user_team(id)], szName, szArgs);
}
else if (get_user_flags(id) & ADMIN_FLAG)
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s (^x03%s^x01)^x01 [^x04Админ^x01] ^x03%s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", g_szTeamNames[fm_get_user_team(id)], szName, szArgs);
}
else if (get_user_flags(id) & VIP_FLAG)
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s (^x03%s^x01)^x01 [^x04VIP^x01] ^x03%s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", g_szTeamNames[fm_get_user_team(id)], szName, szArgs);
}
else if (is_user_steam(id))
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s (^x03%s^x01)^x01 [^x04STEAM^x01] ^x03%s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", g_szTeamNames[fm_get_user_team(id)], szName, szArgs);
}
else
{
formatex(szNewMsg, sizeof szNewMsg - 1, "^x01%s (^x03%s^x01)^x03 %s^x01 : %s", is_user_alive(id) ? "" : "*МЕРТВЫЙ*", g_szTeamNames[fm_get_user_team(id)], szName, szArgs);
}
for(new i = 1 ; i <= g_iMaxPlayers ; i++)
{
if(is_user_connected(i) && (is_user_alive(id) == is_user_alive(i)) && (fm_get_user_team(id) == fm_get_user_team(i)))
{
print_SayText(id, i, szNewMsg);
}
}
return 1
}
stock client_printg(id, const message[], {Float, Sql, Resul,_}:...) {
static msg[192]
msg[0] = 0x04;
vformat(msg[1], 190, message, 3)
if( id > 0 && id <= g_iMaxPlayers)
{
message_begin(MSG_ONE, get_user_msgid("SayText"),_, id)
write_byte(id)
write_string(msg)
message_end()
}
else if(id == 0)
{
for( new i = 1; i <= g_iMaxPlayers; i++ )
{
if(!is_user_connected(i))
continue;
message_begin(MSG_ONE, get_user_msgid("SayText"),_, i)
write_byte(i)
write_string(msg)
message_end()
}
}
}
stock print_SayText(sender, receiver, const szMessage[])
{
static MSG_type, id
if(receiver > 0)
{
MSG_type = MSG_ONE_UNRELIABLE
id = receiver
}
else
{
MSG_type = MSG_BROADCAST
id = sender
}
message_begin(MSG_type, get_user_msgid("SayText"), _, id)
write_byte(sender)
write_string(szMessage)
message_end()
return 1
}
stock bool:is_user_steam(id)
{
static dp_pointer
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id)
server_exec()
return (get_pcvar_num(dp_pointer) == 2) ? true : false
}
return false
}