#include <amxmodx>
#include <colorchat>
new iMessage[191], iAlive[20], Maxplayers
public plugin_init() {
register_clcmd("say", "cmdWriteAll")
register_clcmd("say_team", "cmdWriteTeam")
register_message(get_user_msgid("SayText"), "cmdClearPreviousChat")
Maxplayers = get_maxplayers()
}
public cmdClearPreviousChat(msgId, msgDest, receiver) return PLUGIN_HANDLED
public cmdWriteAll(id) {
read_args(iMessage, charsmax(iMessage))
remove_quotes (iMessage)
if(iMessage[0] == '@' || iMessage[0] == '/' || iMessage[0] == '!' || equal(iMessage, "")) return;
new szName[32], sColor[20], checkAlive
get_user_name(id, szName, charsmax(szName))
get_user_team(id, sColor, charsmax(sColor))
if(is_user_alive(id)) {
checkAlive = 1
iAlive[0] = EOS
}
else {
checkAlive = 0
iAlive = "^1*DEAD* "
}
format(iMessage, charsmax(iMessage), "%s^3%s: %s%s", iAlive, szName, get_user_flags(id) & ADMIN_KICK ? "^4":"^1", iMessage)
sendMessage(sColor, checkAlive)
}
public cmdWriteTeam(id) {
new playerTeam = get_user_team(id), playerTeamName[20]
switch(playerTeam) {
case 1: copy(playerTeamName, charsmax(playerTeamName), "Terrorist")
case 2: copy(playerTeamName, charsmax(playerTeamName), "Counter-Terrorist")
default: copy(playerTeamName, charsmax(playerTeamName), "Spectator")
}
read_args(iMessage, charsmax(iMessage))
remove_quotes (iMessage)
if(iMessage[0] == '@' || iMessage[0] == '/' || iMessage[0] == '!' || equal(iMessage, "")) return;
new szName[32], sColor[20], checkAlive
get_user_name(id, szName, charsmax(szName))
get_user_team(id, sColor, charsmax(sColor))
if(is_user_alive(id)) {
checkAlive = 1
iAlive[0] = EOS
}
else {
checkAlive = 0
iAlive = "^1*DEAD* "
}
format(iMessage, charsmax(iMessage), "%s(%s) ^3%s: %s%s", iAlive, playerTeamName ,szName, get_user_flags(id) & ADMIN_KICK ? "^4":"^1", iMessage)
sendTeamMessage(sColor, checkAlive, playerTeam)
}
public sendMessage(sColor[], checkAlive) {
for(new id = 1; id < Maxplayers; id++) {
if (!is_user_connected(id)) continue;
if(checkAlive && is_user_alive(id) || !checkAlive && !is_user_alive(id) || get_user_flags(id) & ADMIN_KICK) {
changeTeamInfo(id, sColor)
writeMessage(id)
changeTeamInfo(id, sColor)
}
}
}
public sendTeamMessage(sColor[], checkAlive, playerTeam) {
for(new id = 1; id < Maxplayers; id++) {
if (!is_user_connected(id)) continue;
if(get_user_team(id) == playerTeam || get_user_flags(id) & ADMIN_KICK) {
if(checkAlive && is_user_alive(id) || !checkAlive && !is_user_alive(id) || get_user_flags(id) & ADMIN_KICK) {
changeTeamInfo(id, sColor)
writeMessage(id)
changeTeamInfo(id, sColor)
}
}
}
}
public changeTeamInfo(id, uTeam[]) {
message_begin (MSG_ONE, get_user_msgid("TeamInfo"), _, id)
write_byte(id)
write_string(uTeam)
message_end()
}
public writeMessage(id) ColorChat(id, GREEN, iMessage)