#if defined _cromchat_included
#endinput
#endif
#define _cromchat_included
#if !defined CC_DONT_OVERWRITE_183_PRINT
#define client_print_color CC_SendMatched
#define print_team_default CC_COLOR_TEAM
#define print_team_grey CC_COLOR_GREY
#define print_team_blue CC_COLOR_BLUE
#define print_team_red CC_COLOR_RED
#endif
#if !defined CC_DONT_OVERWRITE_COLORCHAT
#define ColorChat CC_SendMatched
#define NORMAL CC_COLOR_TEAM
#define TEAM_COLOR CC_COLOR_TEAM
#define GREEN CC_COLOR_TEAM
#define GREY CC_COLOR_GREY
#define BLUE CC_COLOR_BLUE
#define RED CC_COLOR_RED
#endif
#define CC_VERSION 2.0
#define CC_MAX_TEAM_SIZE 10
#define CC_MAX_PLAYERS 32
#define CC_MAX_PREFIX_SIZE 64
#define CC_MAX_MESSAGE_SIZE 188
#define CC_FILTERING_FLAGS "ch"
#define CromChat CC_SendMessage
#if !defined CC_COLORS_TYPE
#define CC_COLORS_TYPE CC_COLORS_CROMCHAT
#endif
enum
{
CC_COLOR_TEAM = 0,
CC_COLOR_GREY = -1,
CC_COLOR_WHITE = -1,
CC_COLOR_BLUE = -2,
CC_COLOR_RED = -3
}
enum
{
CC_COLORS_CROMCHAT,
CC_COLORS_SHORT,
CC_COLORS_NAMED,
CC_COLORS_NAMED_SHORT,
CC_COLORS_STANDARD,
CC_COLORS_CUSTOM
}
#define CC_SYM_MENU_YELLOW "\y"
#define CC_SYM_MENU_WHITE "\w"
#define CC_SYM_MENU_GREY "\d"
#define CC_SYM_MENU_RIGHT "\R"
#define CC_SYM_CHAT_DEF_NORMAL "^x01"
#define CC_SYM_CHAT_DEF_TEAM "^x03"
#define CC_SYM_CHAT_DEF_GREEN "^x04"
#define CC_SYM_TEAM_T "TERRORIST"
#define CC_SYM_TEAM_CT "CT"
#define CC_SYM_TEAM_SPEC "SPECTATOR"
new CC_PREFIX[CC_MAX_PREFIX_SIZE], bool:CC_FIRST_TIME = true, CC_MSG_SAYTEXT, CC_MSG_TEAMINFO
new const CC_MENU_COLORS[][] = { CC_SYM_MENU_YELLOW, CC_SYM_MENU_WHITE, CC_SYM_MENU_GREY, CC_SYM_MENU_RIGHT }
#if CC_COLORS_TYPE == CC_COLORS_CUSTOM
#if !defined CC_SYM_CHAT_NORMAL
#define CC_SYM_CHAT_NORMAL "&x01"
#endif
#if !defined CC_SYM_CHAT_TEAM
#define CC_SYM_CHAT_TEAM "&x03"
#endif
#if !defined CC_SYM_CHAT_GREEN
#define CC_SYM_CHAT_GREEN "&x04"
#endif
#if !defined CC_SYM_CHAT_WHITE
#define CC_SYM_CHAT_WHITE "&x05"
#endif
#if !defined CC_SYM_CHAT_BLUE
#define CC_SYM_CHAT_BLUE "&x06"
#endif
#if !defined CC_SYM_CHAT_RED
#define CC_SYM_CHAT_RED "&x07"
#endif
#if !defined CC_SYM_CHAT_NOPREF
#define CC_SYM_CHAT_NOPREF "&x00"
#endif
#else
#if CC_COLORS_TYPE == CC_COLORS_CROMCHAT
#define CC_SYM_CHAT_NORMAL "&x01"
#define CC_SYM_CHAT_TEAM "&x03"
#define CC_SYM_CHAT_GREEN "&x04"
#define CC_SYM_CHAT_WHITE "&x05"
#define CC_SYM_CHAT_BLUE "&x06"
#define CC_SYM_CHAT_RED "&x07"
#define CC_SYM_CHAT_NOPREF "&x00"
#endif
#if CC_COLORS_TYPE == CC_COLORS_SHORT
#define CC_SYM_CHAT_NORMAL "!n"
#define CC_SYM_CHAT_TEAM "!t"
#define CC_SYM_CHAT_GREEN "!g"
#define CC_SYM_CHAT_WHITE "!w"
#define CC_SYM_CHAT_BLUE "!b"
#define CC_SYM_CHAT_RED "!r"
#define CC_SYM_CHAT_NOPREF "!p"
#endif
#if CC_COLORS_TYPE == CC_COLORS_NAMED
#define CC_SYM_CHAT_NORMAL "{normal}"
#define CC_SYM_CHAT_TEAM "{team}"
#define CC_SYM_CHAT_GREEN "{green}"
#define CC_SYM_CHAT_WHITE "{white}"
#define CC_SYM_CHAT_BLUE "{blue}"
#define CC_SYM_CHAT_RED "{red}"
#define CC_SYM_CHAT_NOPREF "{nopref}"
#endif
#if CC_COLORS_TYPE == CC_COLORS_NAMED_SHORT
#define CC_SYM_CHAT_NORMAL "{n}"
#define CC_SYM_CHAT_TEAM "{t}"
#define CC_SYM_CHAT_GREEN "{g}"
#define CC_SYM_CHAT_WHITE "{w}"
#define CC_SYM_CHAT_BLUE "{b}"
#define CC_SYM_CHAT_RED "{r}"
#define CC_SYM_CHAT_NOPREF "{p}"
#endif
#if CC_COLORS_TYPE == CC_COLORS_STANDARD
#define CC_SYM_CHAT_NORMAL "^1"
#define CC_SYM_CHAT_TEAM "^3"
#define CC_SYM_CHAT_GREEN "^4"
#define CC_SYM_CHAT_WHITE "^5"
#define CC_SYM_CHAT_BLUE "^6"
#define CC_SYM_CHAT_RED "^7"
#define CC_SYM_CHAT_NOPREF "^0"
#endif
#endif
new const CC_REPLACE_COLORS[][] = { CC_SYM_CHAT_GREEN, CC_SYM_CHAT_DEF_GREEN, CC_SYM_CHAT_TEAM, CC_SYM_CHAT_DEF_TEAM, CC_SYM_CHAT_NORMAL, CC_SYM_CHAT_DEF_NORMAL }
new const CC_PLUS_COLORS[][] = { CC_SYM_CHAT_RED, CC_SYM_TEAM_T, CC_SYM_CHAT_BLUE, CC_SYM_TEAM_CT, CC_SYM_CHAT_WHITE, CC_SYM_TEAM_SPEC }
new const CC_COLORS_LIST[][] = { CC_SYM_CHAT_RED, CC_SYM_CHAT_BLUE, CC_SYM_CHAT_WHITE, CC_SYM_CHAT_GREEN, CC_SYM_CHAT_TEAM, CC_SYM_CHAT_NORMAL, CC_SYM_CHAT_NOPREF }
new const CC_NO_PREFIX[] = CC_SYM_CHAT_NOPREF
/**
* Sends a colored chat message.
*
* @param id Client index (use 0 to send to all players)
* @param szInput The message to send
* @param ... Variable number of formatting parameters
*
* @return Length of the printed message
*/
stock CC_SendMessage(const id, const szInput[], any:...)
{
static iPlayers[CC_MAX_PLAYERS], iPnum
if(id)
{
if(!is_user_connected(id))
return 0
}
else
{
get_players(iPlayers, iPnum, CC_FILTERING_FLAGS)
if(!iPnum)
return 0
}
static szMessage[CC_MAX_MESSAGE_SIZE], szTeam[CC_MAX_TEAM_SIZE], bool:bNoPrefix, i
vformat(szMessage[1], charsmax(szMessage), szInput, 3)
szMessage[0] = 0x01
szTeam[0] = EOS
bNoPrefix = bool:equal(szMessage[1], CC_NO_PREFIX, charsmax(CC_NO_PREFIX))
if(bNoPrefix)
replace(szMessage, charsmax(szMessage), CC_NO_PREFIX, "")
else if(CC_PREFIX[0])
format(szMessage, charsmax(szMessage), "%s%s %s%s", CC_SYM_CHAT_DEF_NORMAL, CC_PREFIX, CC_SYM_CHAT_DEF_NORMAL, szMessage)
for(i = 0; i < sizeof(CC_REPLACE_COLORS) - 1; i += 2)
replace_all(szMessage, charsmax(szMessage), CC_REPLACE_COLORS[i], CC_REPLACE_COLORS[i + 1])
for(i = 0; i < sizeof(CC_PLUS_COLORS) - 1; i += 2)
{
if(contain(szMessage, CC_PLUS_COLORS[i]) != -1)
{
copy(szTeam, charsmax(szTeam), CC_PLUS_COLORS[i + 1])
break
}
}
if(szTeam[0])
{
for(i = 0; i < 3; i++)
replace_all(szMessage, charsmax(szMessage), CC_COLORS_LIST[i], CC_SYM_CHAT_DEF_TEAM)
}
if(id)
CC_WriteMessage(id, szMessage, szTeam)
else
{
for(i = 0; i < iPnum; i++)
CC_WriteMessage(iPlayers[i], szMessage, szTeam)
}
return strlen(szMessage)
}