#include <amxmodx>
#include <cstrike>
#define ADMIN_FLAG ADMIN_RCON
#define MODER_FLAG ADMIN_KICK
#define VIP_FLAG ADMIN_RESERVATION
#define ADMIN_TAG "[Administrator]"
#define MODER_TAG "[Moderator]"
#define VIP_TAG "[VIP]"
#define MAX_LANG_ARGS 5
enum
{
PRINT_COLOR_GREY,
PRINT_COLOR_RED,
PRINT_COLOR_BLUE,
PRINT_COLOR_PLAYERTEAM
}
static const g_aszTeamNames[][] =
{
"UNASSIGNED",
"TERRORIST",
"CT",
"SPECTATOR"
}
new g_maxplayers, admin_see, moder_see
public plugin_init()
{
register_plugin("Chat", "0.1", "Chaiker")
admin_see = register_cvar("chat_adminsee", "1")
moder_see = register_cvar("chat_modersee", "1")
g_maxplayers = get_maxplayers()
register_clcmd("say", "cmdsay")
register_clcmd("say_team", "cmdteamsay")
}
public cmdsay(id)
{
if(get_user_flags(id) & ADMIN_FLAG)
{
new Arg[128], name[32], Temp = '"', Finded = false
get_user_name(id, name, 31)
read_args(Arg, 127)
for(new i = 127; 0 < i <= 127; i--)
{
if(Finded)
continue
if(Arg[i] == Temp)
{
//server_print("%s - %c", Arg[i], Temp)
Arg[i] = 0
Finded = true
continue
}
//server_print("%d - %s", i, Arg[i])
}
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y%s !t%s : %s", ADMIN_TAG, name, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(!is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* !y%s !t%s : %s", ADMIN_TAG, name, Arg[1])
}
}
return PLUGIN_HANDLED
} else if(get_user_flags(id) & MODER_FLAG)
{
new Arg[128], name[32], Temp = '"', Finded = false
get_user_name(id, name, 31)
read_args(Arg, 127)
for(new i = 127; 0 < i <= 127; i--)
{
if(Finded)
continue
if(Arg[i] == Temp)
{
//server_print("%s - %c", Arg[i], Temp)
Arg[i] = 0
Finded = true
continue
}
//server_print("%d - %s", i, Arg[i])
}
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y%s !t%s : %s", MODER_TAG, name, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(!is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* !y%s !t%s : %s", MODER_TAG, name, Arg[1])
}
}
return PLUGIN_HANDLED
} else if(get_user_flags(id) & VIP_FLAG)
{
new Arg[128], name[32], Temp = '"', Finded = false
get_user_name(id, name, 31)
read_args(Arg, 127)
for(new i = 127; 0 < i <= 127; i--)
{
if(Finded)
continue
if(Arg[i] == Temp)
{
//server_print("%s - %c", Arg[i], Temp)
Arg[i] = 0
Finded = true
continue
}
//server_print("%d - %s", i, Arg[i])
}
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y%s !t%s : %s", VIP_TAG, name, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(!is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* !y%s !t%s : %s", VIP_TAG, name, Arg[1])
}
}
return PLUGIN_HANDLED
} else
{
new Arg[128], name[32], Temp = '"', Finded = false
get_user_name(id, name, 31)
read_args(Arg, 127)
for(new i = 127; 0 < i <= 127; i--)
{
if(Finded)
continue
if(Arg[i] == Temp)
{
//server_print("%s - %c", Arg[i], Temp)
Arg[i] = 0
Finded = true
continue
}
//server_print("%d - %s", i, Arg[i])
}
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!t%s !y: %s", name, Arg[1])
else if(is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!t%s !y: %s", name, Arg[1])
else if(is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!t%s !y: %s", name, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(!is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* !t%s !y: %s", name, Arg[1])
else if(!is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* !t%s !y: %s", name, Arg[1])
else if(!is_user_alive(i) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!t%s !y: %s", name, Arg[1])
}
}
}
return PLUGIN_HANDLED
}
public cmdteamsay(id)
{
if(get_user_flags(id) & ADMIN_FLAG)
{
new Arg[128], name[32], Temp = '"', Finded = false
get_user_name(id, name, 31)
read_args(Arg, 127)
for(new i = 127; 0 < i <= 127; i--)
{
if(Finded)
continue
if(Arg[i] == Temp)
{
//server_print("%s - %c", Arg[i], Temp)
Arg[i] = 0
Finded = true
continue
}
//server_print("%d - %s", i, Arg[i])
}
if(cs_get_user_team(id) == CS_TEAM_CT)
{
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Counter-Terrorist) !t%s !y%s : %s", name, ADMIN_TAG, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* (Counter-Terrorist) !t%s !y%s : %s", name, ADMIN_TAG, Arg[1])
}
}
}
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Terrorist) !t%s !y%s : %s", name, ADMIN_TAG, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* (Terrorist) !t%s !y%s : %s", name, ADMIN_TAG, Arg[1])
}
}
}
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
{
for(new i = 1; i <= g_maxplayers; i++)
if(is_user_connected(i))
if(cs_get_user_team(i) == CS_TEAM_SPECTATOR || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Spectator) !t%s !y%s : %s", name, ADMIN_TAG, Arg[1])
}
return PLUGIN_HANDLED
} else if(get_user_flags(id) & MODER_FLAG)
{
new Arg[128], name[32], Temp = '"', Finded = false
get_user_name(id, name, 31)
read_args(Arg, 127)
for(new i = 127; 0 < i <= 127; i--)
{
if(Finded)
continue
if(Arg[i] == Temp)
{
//server_print("%s - %c", Arg[i], Temp)
Arg[i] = 0
Finded = true
continue
}
//server_print("%d - %s", i, Arg[i])
}
if(cs_get_user_team(id) == CS_TEAM_CT)
{
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Counter-Terrorist) !t%s !y%s : %s", name, MODER_TAG, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* (Counter-Terrorist) !t%s !y%s : %s", name, MODER_TAG, Arg[1])
}
}
}
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Terrorist) !t%s !y%s : %s", name, MODER_TAG, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* (Terrorist) !t%s !y%s : %s", name, MODER_TAG, Arg[1])
}
}
}
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
{
for(new i = 1; i <= g_maxplayers; i++)
if(is_user_connected(i))
if(cs_get_user_team(i) == CS_TEAM_SPECTATOR || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Spectator) !t%s !y%s : %s", name, MODER_TAG, Arg[1])
}
return PLUGIN_HANDLED
} else if(get_user_flags(id) & VIP_FLAG)
{
new Arg[128], name[32], Temp = '"', Finded = false
get_user_name(id, name, 31)
read_args(Arg, 127)
for(new i = 127; 0 < i <= 127; i--)
{
if(Finded)
continue
if(Arg[i] == Temp)
{
//server_print("%s - %c", Arg[i], Temp)
Arg[i] = 0
Finded = true
continue
}
//server_print("%d - %s", i, Arg[i])
}
if(cs_get_user_team(id) == CS_TEAM_CT)
{
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Counter-Terrorist) !t%s !y%s : %s", name, VIP_TAG, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* (Counter-Terrorist) !t%s !y%s : %s", name, VIP_TAG, Arg[1])
}
}
}
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Terrorist) !t%s !y%s : %s", name, VIP_TAG, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* (Terrorist) !t%s !y%s : %s", name, VIP_TAG, Arg[1])
}
}
}
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
{
for(new i = 1; i <= g_maxplayers; i++)
if(is_user_connected(i))
if(cs_get_user_team(i) == CS_TEAM_SPECTATOR || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Spectator) !t%s !y%s : %s", name, VIP_TAG, Arg[1])
}
return PLUGIN_HANDLED
} else
{
new Arg[128], name[32], Temp = '"', Finded = false
get_user_name(id, name, 31)
read_args(Arg, 127)
for(new i = 127; 0 < i <= 127; i--)
{
if(Finded)
continue
if(Arg[i] == Temp)
{
//server_print("%s - %c", Arg[i], Temp)
Arg[i] = 0
Finded = true
continue
}
//server_print("%d - %s", i, Arg[i])
}
if(is_user_alive(id))
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T && cs_get_user_team(id) == CS_TEAM_T) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Terrorist) !t%s !y: %s", name, Arg[1])
else if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT && cs_get_user_team(id) == CS_TEAM_CT) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Counter-Terrorist) !t%s !y: %s", name, Arg[1])
else if((is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_SPECTATOR && cs_get_user_team(id) == CS_TEAM_SPECTATOR) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Spectator) !t%s !y: %s", name, Arg[1])
}
} else
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T && cs_get_user_team(id) == CS_TEAM_T) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* (Terrorist) !t%s !y: %s", name, Arg[1])
else if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT && cs_get_user_team(id) == CS_TEAM_CT) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y*DEAD* (Counter-Terrorist) !t%s !y: %s", name, Arg[1])
else if((!is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_SPECTATOR && cs_get_user_team(id) == CS_TEAM_SPECTATOR) || (get_pcvar_num(moder_see) && get_user_flags(i) & MODER_FLAG) || (get_pcvar_num(admin_see) && get_user_flags(i) & ADMIN_FLAG))
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM + id, "!y(Spectator) !t%s !y: %s", name, Arg[1])
}
}
}
return PLUGIN_HANDLED
}
stock PrintChatColor(pReceiver, iColor = PRINT_COLOR_PLAYERTEAM, const szMessage[], any:...)
{
new szBuffer[256]
new iArgs = numargs()
if(pReceiver)
{
for(new iArg = 3; iArg < iArgs; iArg++)
{
if(getarg(iArg) != LANG_PLAYER)
continue
setarg(iArg, _, pReceiver)
}
vformat(szBuffer, 255, szMessage, 4)
while (replace(szBuffer, 255, "!y", "^1")) {}
while (replace(szBuffer, 255, "!t", "^3")) {}
while (replace(szBuffer, 255, "!g", "^4")) {}
if (iColor >= PRINT_COLOR_PLAYERTEAM)
UTIL_SayText(MSG_ONE, _, pReceiver, (iColor > PRINT_COLOR_PLAYERTEAM) ? iColor - PRINT_COLOR_PLAYERTEAM : pReceiver, szBuffer)
else
{
new iTeam = _:cs_get_user_team(pReceiver)
if(iTeam % 3 == iColor)
UTIL_SayText(MSG_ONE, _, pReceiver, pReceiver, szBuffer)
else
{
UTIL_TeamInfo(MSG_ONE, _, pReceiver, pReceiver, g_aszTeamNames[iColor])
UTIL_SayText(MSG_ONE, _, pReceiver, pReceiver, szBuffer)
UTIL_TeamInfo(MSG_ONE, _, pReceiver, pReceiver, g_aszTeamNames[iTeam])
}
}
}
else
{
new aiChangeArgs[MAX_LANG_ARGS]
new iChangeArgs, iArg
for(iArg = 3; iArg < iArgs; iArg++)
{
if(getarg(iArg) != LANG_PLAYER)
continue
aiChangeArgs[iChangeArgs++] = iArg
if (iChangeArgs == MAX_LANG_ARGS)
break
}
new apPlayers[32]
new iPlayers
new pPlayer
get_players(apPlayers, iPlayers)
for(new i = 0; i < iPlayers; i++)
{
pPlayer = apPlayers[i]
for(iArg = 0; iArg < iChangeArgs; iArg++)
setarg(aiChangeArgs[iArg], _, pPlayer)
vformat(szBuffer, 255, szMessage, 4)
while (replace(szBuffer, 255, "!y", "^1")) {}
while (replace(szBuffer, 255, "!t", "^3")) {}
while (replace(szBuffer, 255, "!g", "^4")) {}
if(iColor >= PRINT_COLOR_PLAYERTEAM)
UTIL_SayText(MSG_ONE, _, pPlayer, (iColor > PRINT_COLOR_PLAYERTEAM) ? iColor - PRINT_COLOR_PLAYERTEAM : pPlayer, szBuffer)
else
{
new iTeam = _:cs_get_user_team(pPlayer);
if(iTeam % 3 == iColor)
UTIL_SayText(MSG_ONE, _, pPlayer, pPlayer, szBuffer)
else
{
UTIL_TeamInfo(MSG_ONE, _, pPlayer, pPlayer, g_aszTeamNames[iColor])
UTIL_SayText(MSG_ONE, _, pPlayer, pPlayer, szBuffer)
UTIL_TeamInfo(MSG_ONE, _, pPlayer, pPlayer, g_aszTeamNames[iTeam])
}
}
}
}
}
stock UTIL_SayText(iDest, const vecOrigin[3] = {0, 0, 0}, pEntity, pSender, const szMessage[], const szArg1[] = "", const szArg2[] = "")
{
static msgSayText
if(!msgSayText)
msgSayText = get_user_msgid("SayText")
message_begin(iDest, msgSayText, vecOrigin, pEntity)
write_byte(pSender)
write_string(szMessage)
if(szArg1[0])
{
write_string(szArg1)
if(szArg2[0])
write_string(szArg2)
}
message_end()
}
stock UTIL_TeamInfo(iDest, const vecOrigin[3] = { 0, 0, 0 }, pEntity, pPlayer, const szTeamName[])
{
static msgTeamInfo
if(!msgTeamInfo)
msgTeamInfo = get_user_msgid("TeamInfo")
message_begin(iDest, msgTeamInfo, vecOrigin, pEntity)
write_byte(pPlayer)
write_string(szTeamName)
message_end()
}