new iPlayerPrefix[33]
new iPlayerPrefixText[33][2][64]
new iPlayerColorText[33][2][32]
new iPlayerRus[33]
new iPlayerRusInfo[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /rus", "LangRus")
register_clcmd("say /eng", "LangEng")
register_clcmd("say", "NewSay")
register_clcmd("say_team", "NewSayTeam")
register_dictionary("ChatManager.txt")
}
public plugin_cfg()
{
new g_LoadDir[81]
get_configsdir(g_LoadDir, charsmax( g_LoadDir ))
formatex(g_LoadPlayerPrefix, charsmax( g_LoadPlayerPrefix ), "%s/player_prefix.ini", g_LoadDir)
if(!file_exists( g_LoadPlayerPrefix ))
{
set_fail_state("No file player_prefix.ini")
}
}
public LangRus(id)
{
if(iPlayerPrefix[id])
{
if(!iPlayerRus[id])
{
iPlayerRus[id] = true
ChatColor(id, "%L", id, "CM_RUS")
return PLUGIN_HANDLED
}else{
ChatColor(id, "%L", id, "CM_RUS_ALREADY")
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public LangEng(id)
{
if(iPlayerPrefix[id])
{
if(iPlayerRus[id])
{
iPlayerRus[id] = false
ChatColor(id, "%L", id, "CM_ENG")
return PLUGIN_HANDLED
}else{
ChatColor(id, "%L", id, "CM_ENG_ALREADY")
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public client_authorized(id)
{
if(!is_user_bot(id) || !is_user_hltv(id))
{
iPlayerPrefix[id] = false
iPlayerRus[id] = false
set_task(1.0, "CheckPlayer", id)
}
}
public client_infochanged(id)
{
if(!is_user_connected(id))
{
return PLUGIN_CONTINUE
}
new szNewName[32], szOldName[32]
get_user_name(id, szOldName, charsmax( szOldName ))
get_user_info(id, "name", szNewName, charsmax( szNewName ))
if(!equal(szNewName, szOldName))
{
iPlayerPrefix[id] = false
set_task(0.1, "CheckPlayer", id)
}
return PLUGIN_CONTINUE
}
public CheckPlayer(id)
{
new szName[64], szSteam[32]
new szParse[128]
new szParseType[32], szParseData[64], szParsePrefix[64], szParseColorText[32]
new iLine, iNum, iType
get_user_name(id, szName, charsmax( szName ))
get_user_authid(id, szSteam, charsmax( szSteam ))
for(iLine = 0; read_file(g_LoadPlayerPrefix, iLine, szParse, charsmax( szParse ), iNum); iLine++)
{
if(iNum > 0 && szParse[0] != ';')
{
parse(szParse,
szParseType,
charsmax( szParseType ),
szParseData,
charsmax( szParseData ),
szParsePrefix,
charsmax( szParsePrefix ),
szParseColorText,
charsmax( szParseColorText )
)
iType = str_to_num( szParseType )
if(iType == 1)
{
if(equal(szName, szParseData))
{
iPlayerPrefix[id] = true
iPlayerPrefixText[id][1] = szParsePrefix
iPlayerColorText[id][1] = szParseColorText
break
}else
if(equal(szSteam, szParseData))
{
iPlayerPrefix[id] = true
iPlayerPrefixText[id][1] = szParsePrefix
iPlayerColorText[id][1] = szParseColorText
break
}
}else
if(iType == 2)
{
if(CheckFlag(id, szParseData))
{
iPlayerPrefix[id] = true
iPlayerPrefixText[id][1] = szParsePrefix
iPlayerColorText[id][1] = szParseColorText
break
}
}
}
}
}
public NewSay(id)
{
new szMessage[192]
read_args(szMessage, charsmax( szMessage ))
remove_quotes(szMessage)
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))
return PLUGIN_CONTINUE
if(!iPlayerPrefix[id])
return PLUGIN_CONTINUE
if(!iPlayerRusInfo[id])
{
if(!iPlayerRus[id])
{
iPlayerRusInfo[id] = true
ChatColor(id, "%L", id, "CM_RUS_INFO")
}
}
if(iPlayerRus[id])
{
while (replace(szMessage, charsmax( szMessage ), "q", "й")) {}
while (replace(szMessage, charsmax( szMessage ), "w", "ц")) {}
while (replace(szMessage, charsmax( szMessage ), "e", "у")) {}
while (replace(szMessage, charsmax( szMessage ), "r", "к")) {}
while (replace(szMessage, charsmax( szMessage ), "t", "е")) {}
while (replace(szMessage, charsmax( szMessage ), "y", "н")) {}
while (replace(szMessage, charsmax( szMessage ), "u", "г")) {}
while (replace(szMessage, charsmax( szMessage ), "i", "ш")) {}
while (replace(szMessage, charsmax( szMessage ), "o", "щ")) {}
while (replace(szMessage, charsmax( szMessage ), "p", "з")) {}
while (replace(szMessage, charsmax( szMessage ), "[", "х")) {}
while (replace(szMessage, charsmax( szMessage ), "]", "ъ")) {}
while (replace(szMessage, charsmax( szMessage ), "a", "ф")) {}
while (replace(szMessage, charsmax( szMessage ), "s", "ы")) {}
while (replace(szMessage, charsmax( szMessage ), "d", "в")) {}
while (replace(szMessage, charsmax( szMessage ), "f", "а")) {}
while (replace(szMessage, charsmax( szMessage ), "g", "п")) {}
while (replace(szMessage, charsmax( szMessage ), "h", "р")) {}
while (replace(szMessage, charsmax( szMessage ), "j", "о")) {}
while (replace(szMessage, charsmax( szMessage ), "k", "л")) {}
while (replace(szMessage, charsmax( szMessage ), "l", "д")) {}
while (replace(szMessage, charsmax( szMessage ), ";", "ж")) {}
while (replace(szMessage, charsmax( szMessage ), "'", "э")) {}
while (replace(szMessage, charsmax( szMessage ), "z", "я")) {}
while (replace(szMessage, charsmax( szMessage ), "x", "ч")) {}
while (replace(szMessage, charsmax( szMessage ), "c", "с")) {}
while (replace(szMessage, charsmax( szMessage ), "v", "м")) {}
while (replace(szMessage, charsmax( szMessage ), "b", "и")) {}
while (replace(szMessage, charsmax( szMessage ), "n", "т")) {}
while (replace(szMessage, charsmax( szMessage ), "m", "ь")) {}
while (replace(szMessage, charsmax( szMessage ), ",", "б")) {}
while (replace(szMessage, charsmax( szMessage ), ".", "ю")) {}
while (replace(szMessage, charsmax( szMessage ), "Q", "Й")) {}
while (replace(szMessage, charsmax( szMessage ), "W", "Ц")) {}
while (replace(szMessage, charsmax( szMessage ), "E", "У")) {}
while (replace(szMessage, charsmax( szMessage ), "R", "К")) {}
while (replace(szMessage, charsmax( szMessage ), "T", "Е")) {}
while (replace(szMessage, charsmax( szMessage ), "Y", "Н")) {}
while (replace(szMessage, charsmax( szMessage ), "U", "Г")) {}
while (replace(szMessage, charsmax( szMessage ), "I", "Ш")) {}
while (replace(szMessage, charsmax( szMessage ), "O", "Щ")) {}
while (replace(szMessage, charsmax( szMessage ), "P", "З")) {}
while (replace(szMessage, charsmax( szMessage ), "{", "Х")) {}
while (replace(szMessage, charsmax( szMessage ), "}", "Ъ")) {}
while (replace(szMessage, charsmax( szMessage ), "A", "Ф")) {}
while (replace(szMessage, charsmax( szMessage ), "S", "Ы")) {}
while (replace(szMessage, charsmax( szMessage ), "D", "В")) {}
while (replace(szMessage, charsmax( szMessage ), "F", "А")) {}
while (replace(szMessage, charsmax( szMessage ), "G", "П")) {}
while (replace(szMessage, charsmax( szMessage ), "H", "Р")) {}
while (replace(szMessage, charsmax( szMessage ), "J", "О")) {}
while (replace(szMessage, charsmax( szMessage ), "K", "Л")) {}
while (replace(szMessage, charsmax( szMessage ), "L", "Д")) {}
while (replace(szMessage, charsmax( szMessage ), ":", "Ж")) {}
while (replace(szMessage, charsmax( szMessage ), "Z", "Я")) {}
while (replace(szMessage, charsmax( szMessage ), "X", "Ч")) {}
while (replace(szMessage, charsmax( szMessage ), "C", "С")) {}
while (replace(szMessage, charsmax( szMessage ), "V", "М")) {}
while (replace(szMessage, charsmax( szMessage ), "B", "И")) {}
while (replace(szMessage, charsmax( szMessage ), "N", "Т")) {}
while (replace(szMessage, charsmax( szMessage ), "M", "Ь")) {}
while (replace(szMessage, charsmax( szMessage ), "<", "Б")) {}
while (replace(szMessage, charsmax( szMessage ), ">", "Ю")) {}
}
new szNewMessage[512]
new szLen
new szName[32]
get_user_name(id, szName, charsmax( szName ))
if(is_user_alive(id))
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y[!g%s!y]", iPlayerPrefixText[id][1])
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage)
new iPlayers[32]
new iPlayer, iNum
get_players(iPlayers, iNum)
for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]
if(!is_user_alive(iPlayer) || !is_user_connected(iPlayer))
continue
ChatColor(iPlayer, szNewMessage)
}
}else{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y*DEAD*[!g%s!y]", iPlayerPrefixText[id][1])
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage)
new iPlayers[32]
new iPlayer, iNum
get_players(iPlayers, iNum)
for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]
if(is_user_alive(iPlayer) || !is_user_connected(iPlayer))
continue
ChatColor(iPlayer, szNewMessage)
}
}
return PLUGIN_HANDLED_MAIN
}
public NewSayTeam(id)
{
new szMessage[192]
read_args(szMessage, charsmax( szMessage ))
remove_quotes(szMessage)
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))
return PLUGIN_CONTINUE
if(!iPlayerPrefix[id])
return PLUGIN_CONTINUE
if(!iPlayerRusInfo[id])
{
if(!iPlayerRus[id])
{
iPlayerRusInfo[id] = true
ChatColor(id, "%L", id, "CM_RUS_INFO")
}
}
if(iPlayerRus[id])
{
while (replace(szMessage, charsmax( szMessage ), "q", "й")) {}
while (replace(szMessage, charsmax( szMessage ), "w", "ц")) {}
while (replace(szMessage, charsmax( szMessage ), "e", "у")) {}
while (replace(szMessage, charsmax( szMessage ), "r", "к")) {}
while (replace(szMessage, charsmax( szMessage ), "t", "е")) {}
while (replace(szMessage, charsmax( szMessage ), "y", "н")) {}
while (replace(szMessage, charsmax( szMessage ), "u", "г")) {}
while (replace(szMessage, charsmax( szMessage ), "i", "ш")) {}
while (replace(szMessage, charsmax( szMessage ), "o", "щ")) {}
while (replace(szMessage, charsmax( szMessage ), "p", "з")) {}
while (replace(szMessage, charsmax( szMessage ), "[", "х")) {}
while (replace(szMessage, charsmax( szMessage ), "]", "ъ")) {}
while (replace(szMessage, charsmax( szMessage ), "a", "ф")) {}
while (replace(szMessage, charsmax( szMessage ), "s", "ы")) {}
while (replace(szMessage, charsmax( szMessage ), "d", "в")) {}
while (replace(szMessage, charsmax( szMessage ), "f", "а")) {}
while (replace(szMessage, charsmax( szMessage ), "g", "п")) {}
while (replace(szMessage, charsmax( szMessage ), "h", "р")) {}
while (replace(szMessage, charsmax( szMessage ), "j", "о")) {}
while (replace(szMessage, charsmax( szMessage ), "k", "л")) {}
while (replace(szMessage, charsmax( szMessage ), "l", "д")) {}
while (replace(szMessage, charsmax( szMessage ), ";", "ж")) {}
while (replace(szMessage, charsmax( szMessage ), "'", "э")) {}
while (replace(szMessage, charsmax( szMessage ), "z", "я")) {}
while (replace(szMessage, charsmax( szMessage ), "x", "ч")) {}
while (replace(szMessage, charsmax( szMessage ), "c", "с")) {}
while (replace(szMessage, charsmax( szMessage ), "v", "м")) {}
while (replace(szMessage, charsmax( szMessage ), "b", "и")) {}
while (replace(szMessage, charsmax( szMessage ), "n", "т")) {}
while (replace(szMessage, charsmax( szMessage ), "m", "ь")) {}
while (replace(szMessage, charsmax( szMessage ), ",", "б")) {}
while (replace(szMessage, charsmax( szMessage ), ".", "ю")) {}
while (replace(szMessage, charsmax( szMessage ), "Q", "Й")) {}
while (replace(szMessage, charsmax( szMessage ), "W", "Ц")) {}
while (replace(szMessage, charsmax( szMessage ), "E", "У")) {}
while (replace(szMessage, charsmax( szMessage ), "R", "К")) {}
while (replace(szMessage, charsmax( szMessage ), "T", "Е")) {}
while (replace(szMessage, charsmax( szMessage ), "Y", "Н")) {}
while (replace(szMessage, charsmax( szMessage ), "U", "Г")) {}
while (replace(szMessage, charsmax( szMessage ), "I", "Ш")) {}
while (replace(szMessage, charsmax( szMessage ), "O", "Щ")) {}
while (replace(szMessage, charsmax( szMessage ), "P", "З")) {}
while (replace(szMessage, charsmax( szMessage ), "{", "Х")) {}
while (replace(szMessage, charsmax( szMessage ), "}", "Ъ")) {}
while (replace(szMessage, charsmax( szMessage ), "A", "Ф")) {}
while (replace(szMessage, charsmax( szMessage ), "S", "Ы")) {}
while (replace(szMessage, charsmax( szMessage ), "D", "В")) {}
while (replace(szMessage, charsmax( szMessage ), "F", "А")) {}
while (replace(szMessage, charsmax( szMessage ), "G", "П")) {}
while (replace(szMessage, charsmax( szMessage ), "H", "Р")) {}
while (replace(szMessage, charsmax( szMessage ), "J", "О")) {}
while (replace(szMessage, charsmax( szMessage ), "K", "Л")) {}
while (replace(szMessage, charsmax( szMessage ), "L", "Д")) {}
while (replace(szMessage, charsmax( szMessage ), ":", "Ж")) {}
while (replace(szMessage, charsmax( szMessage ), "Z", "Я")) {}
while (replace(szMessage, charsmax( szMessage ), "X", "Ч")) {}
while (replace(szMessage, charsmax( szMessage ), "C", "С")) {}
while (replace(szMessage, charsmax( szMessage ), "V", "М")) {}
while (replace(szMessage, charsmax( szMessage ), "B", "И")) {}
while (replace(szMessage, charsmax( szMessage ), "N", "Т")) {}
while (replace(szMessage, charsmax( szMessage ), "M", "Ь")) {}
while (replace(szMessage, charsmax( szMessage ), "<", "Б")) {}
while (replace(szMessage, charsmax( szMessage ), ">", "Ю")) {}
}
new szNewMessage[512]
new szLen
new szName[32]
get_user_name(id, szName, charsmax( szName ))
if(is_user_alive(id))
{
if(get_user_team(id) == 1)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(Terrorist)[!g%s!y]", iPlayerPrefixText[id][1])
}else
if(get_user_team(id) == 2)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(Counter-Terrorist)[!g%s!y]", iPlayerPrefixText[id][1])
}else
if(get_user_team(id) == 3)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(Spectator)[!g%s!y]", iPlayerPrefixText[id][1])
}
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage)
new iPlayers[32]
new iPlayer, iNum
get_players(iPlayers, iNum)
for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]
if(!is_user_alive(iPlayer) || !is_user_connected(iPlayer) || get_user_team(iPlayer) != get_user_team(id))
continue
ChatColor(iPlayer, szNewMessage)
}
}else{
if(get_user_team(id) == 1)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y*DEAD*(Terrorist)[!g%s!y]", iPlayerPrefixText[id][1])
}else
if(get_user_team(id) == 2)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y*DEAD*(Counter-Terrorist)[!g%s!y]", iPlayerPrefixText[id][1])
}else
if(get_user_team(id) == 3)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(Spectator)[!g%s!y]", iPlayerPrefixText[id][1])
}
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage)
new iPlayers[32]
new iPlayer, iNum
get_players(iPlayers, iNum)
for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]
if(is_user_alive(iPlayer) || !is_user_connected(iPlayer) || get_user_team(iPlayer) != get_user_team(id))
continue
ChatColor(iPlayer, szNewMessage)
}
}
return PLUGIN_HANDLED_MAIN
}
stock CheckFlag(id, szFlag[64])
{
new szFlags
new StringFlags[32]
szFlags = get_user_flags(id)
get_flags(szFlags, StringFlags, charsmax( StringFlags ))
if(containi(StringFlags, szFlag) != -1)
return true
return false
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}]