//ColorChat(id, GREEN,"[Cosik]^x01 A nic"); #define MAXSLOTS 32 enum Color{ GREEN = 1, // Yellow YELLOW, // Green Color TEAM_COLOR, // Red, grey, blue GREY, // grey RED, // Red BLUE, // Blue } new TeamName[][] = { "", "TERRORIST", "CT", "SPECTATOR" } public ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...) { static message[256]; switch(type) { case YELLOW:{ // Yellow message[0] = 0x01; } case GREEN:{// Green message[0] = 0x04; } default:{ // White, Red, Blue message[0] = 0x03; } } vformat(message[1], 251, msg, 4); // Make sure message is not longer than 192 character. Will crash the server. message[192] = '^0'; new team, ColorChange, index, MSG_Type; if(!id) { index = FindPlayer(); MSG_Type = MSG_ALL; } else { MSG_Type = MSG_ONE; index = id; } team = get_user_team(index); ColorChange = ColorSelection(index, MSG_Type, type); ShowColorMessage(index, MSG_Type, message); if(ColorChange){ Team_Info(index, MSG_Type, TeamName[team]); } } ShowColorMessage(id, type, message[]){ message_begin(type, 76, _, id); write_byte(id) write_string(message); message_end(); } Team_Info(id, type, team[]){ message_begin(type, 86, _, id); write_byte(id); write_string(team); message_end(); return 1; } ColorSelection(index, type, Color:Type){ switch(Type) { case RED: { return Team_Info(index, type, TeamName[1]); } case BLUE: { return Team_Info(index, type, TeamName[2]); } case GREY: { return Team_Info(index, type, TeamName[0]); } } return 0; } FindPlayer(){ new i = -1; while(i <= MAXSLOTS){ if(is_user_connected(++i)){ return i; } } return -1; }