- #include <amxmodx> 
- #include <amxmisc> 
-   
- #define PLUGIN 		"Admin Chat Colors" 
- #define VERSION 	"2.0" 
- #define AUTHOR 		"Arion" 
-   
- #define ACCESS_LEVEL	ADMIN_CHAT 
- #define ADMIN_LISTEN	ADMIN_BAN 
-   
- new message[192] 
- new sayText 
- new teamInfo 
- new maxPlayers 
-   
- new strName[191] 
- new strText[191] 
- new alive[11] 
-   
- public plugin_init() 
- { 
- 	register_plugin (PLUGIN, VERSION, AUTHOR)  
-   
- 	sayText = get_user_msgid ("SayText") 
- 	teamInfo = get_user_msgid ("TeamInfo") 
- 	maxPlayers = get_maxplayers() 
-   
- 	register_message (sayText, "avoid_duplicated") 
-   
- 	register_clcmd ("say", "hook_say") 
- 	register_clcmd ("say_team", "hook_teamsay") 
- } 
-   
- public avoid_duplicated (msgId, msgDest, receiver) 
- { 
- 	return PLUGIN_HANDLED 
- } 
-   
- public hook_say(id) 
- { 
- 	read_args (message, 191) 
- 	remove_quotes (message) 
-   
- 	if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,  
- 		// Gungame commands and empty messages 
- 	return PLUGIN_CONTINUE 
-   
-   
- 	new name[32] 
- 	get_user_name (id, name, 31) 
-   
- 	new bool:admin = false 
-   
- 	if (get_user_flags(id) & ACCESS_LEVEL) 
- 		admin = true 
-   
-   
- 	new bool:steam = false 
-   
- 	if (is_user_steam(id)) 
- 		steam = true 
-   
- 	new isAlive 
-   
- 	if (is_user_alive (id)) 
- 	{ 
- 		isAlive = 1 
- 		alive = "^x01" 
- 	} 
- 	else 
- 	{ 
- 		isAlive = 0 
- 		alive = "^x01*DEAD* " 
- 	} 
-   
- 	static color[10] 
-   
-   
-   
- 	if(admin) 
- 	{ 
- 		get_user_team (id, color, 9) 
-   
- 		format (strName, 191, "%s^x04[ADMIN]^x03%s", alive, name) 
-   
- 		format (strText, 191, "^x04%s", message) 
- 	} 
-   
-   
- 	else if(steam) 
- 	{ 
- 		get_user_team (id, color, 9) 
-   
- 		format (strName, 191, "%s^x04[STEAM]^x03%s", alive, name) 
-   
- 		format (strText, 191, "%s", message) 
- 	} 
- 	else if(!steam) 
- 	{ 
- 		get_user_team (id, color, 9) 
-   
- 		format (strName, 191, "%s^x04[NS]^x03%s", alive, name) 
-   
- 		format (strText, 191, "%s", message) 
- 	} 
-   
- 	format (message, 191, "%s^x01 :  %s", strName, strText) 
-   
- 	sendMessage (color, isAlive)	// Sends the colored message 
-   
- 	return PLUGIN_CONTINUE 
- } 
-   
-   
- public hook_teamsay(id) 
- { 
- 	new playerTeam = get_user_team(id) 
- 	new playerTeamName[19] 
-   
- 	switch (playerTeam) // Team names which appear on team-only messages 
- 	{ 
- 		case 1: 
- 			copy (playerTeamName, 11, "Terrorists") 
-   
- 		case 2: 
- 			copy (playerTeamName, 18, "Counter-Terrorists") 
-   
- 		default: 
- 		copy (playerTeamName, 9, "Spectator") 
- 	} 
-   
- 	read_args (message, 191) 
- 	remove_quotes (message) 
-   
- 	if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,  
- 		// Gungame commands and empty messages 
- 	return PLUGIN_CONTINUE 
-   
-   
- 	new name[32] 
- 	get_user_name (id, name, 31) 
-   
- 	//new bool:admin = false 
-   
- 	//if (get_user_flags(id) & ACCESS_LEVEL) 
- 	//	admin = true 
-   
-   
- 	new bool:steam = false 
-   
- 	if(is_user_steam(id)) 
- 		steam = true 
-   
- 	new isAlive 
-   
- 	if (is_user_alive (id)) 
- 	{ 
- 		isAlive = 1 
- 		alive = "^x01" 
- 	} 
- 	else 
- 	{ 
- 		isAlive = 0 
- 		alive = "^x01*DEAD* " 
- 	} 
-   
- 	static color[10] 
-   
-   
-   
- 	/*if (admin) 
- 	{ 
- 		get_user_team (id, color, 9) 
-   
- 		format (strName, 191, "%s(%s) ^x04[ADMIN]^x03%s", alive, playerTeamName, name) 
-   
- 		format (strText, 191, "^x04%s", message) 
- 	}*/ 
-   
- 	if(steam)  
- 	{ 
- 		get_user_team (id, color, 9) 
-   
- 		format (strName, 191, "%s(%s) ^x04[STEAM]^x03%s", alive, playerTeamName, name) 
-   
- 		format (strText, 191, "%s", message) 
- 	} 
- 	else if(!steam) 
- 	{ 
- 		get_user_team (id, color, 9) 
-   
- 		format (strName, 191, "%s(%s) ^x04[NS]^x03%s", alive, playerTeamName, name) 
-   
- 		format (strText, 191, "%s", message) 
- 	} 
-   
- 	format (message, 191, "%s ^x01:  %s", strName, strText) 
-   
- 	sendTeamMessage (color, isAlive, playerTeam)	// Sends the colored message 
-   
- 	return PLUGIN_CONTINUE	 
- } 
-   
- public sendMessage (color[], alive) 
- { 
- 	new teamName[10] 
-   
- 	for (new player = 1; player < maxPlayers; player++) 
- 	{ 
- 		if (!is_user_connected(player)) 
- 			continue 
-   
- 		if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN) 
- 		{ 
- 			get_user_team (player, teamName, 9)	// Stores user's team name to change back after sending the message 
-   
- 			changeTeamInfo (player, color)		// Changes user's team according to color choosen 
-   
- 			writeMessage (player, message)		// Writes the message on player's chat 
-   
- 			changeTeamInfo (player, teamName)	// Changes user's team back to original 
- 		} 
- 	} 
- } 
-   
-   
- public sendTeamMessage (color[], alive, playerTeam) 
- { 
- 	new teamName[10] 
-   
- 	for (new player = 1; player < maxPlayers; player++) 
- 	{ 
- 		if (!is_user_connected(player)) 
- 			continue 
-   
- 		if (get_user_team(player) == playerTeam || get_user_flags(player) & ADMIN_LISTEN) 
- 		{ 
- 			if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN) 
- 			{ 
- 				get_user_team (player, teamName, 9)	// Stores user's team name to change back after sending the message 
-   
- 				changeTeamInfo (player, color)		// Changes user's team according to color choosen 
-   
- 				writeMessage (player, message)		// Writes the message on player's chat 
-   
- 				changeTeamInfo (player, teamName)	// Changes user's team back to original 
- 			} 
- 		} 
- 	} 
- } 
-   
-   
- public changeTeamInfo (player, team[]) 
- { 
- 	message_begin (MSG_ONE, teamInfo, _, player)	// Tells to to modify teamInfo (Which is responsable for which time player is) 
- 	write_byte (player)				// Write byte needed 
- 	write_string (team)				// Changes player's team 
- 	message_end()					// Also Needed 
- } 
-   
-   
- public writeMessage (player, message[]) 
- { 
- 	message_begin (MSG_ONE, sayText, {0, 0, 0}, player)	// Tells to modify sayText (Which is responsable for writing colored messages) 
- 	write_byte (player)					// Write byte needed 
- 	write_string (message)					// Effectively write the message, finally, afterall 
- 	message_end ()						// Needed as always 
- } 
-   
- stock bool:is_user_steam(id) 
- { 
- 	static dp_pointer; 
-   
- 	if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider"))) 
- 	{ 
- 		server_cmd("dp_clientinfo %d", id); 
- 		server_exec(); 
- 		return (get_pcvar_num(dp_pointer) == 2) ? true : false; 
- 	} 
-   
- 	return false; 
- }