//-----------
// AdminChat
//
// Разработка игровых режимов / Development of game modes
// http://ZombieLite.Ru/
//--
// By Alexander.3
// http://Alexander3.Ru/
// ICQ: 357330340
// Skype: ZombieLite

#include <amxmodx>
#include <amxmisc>

#define NAME			"[ZL] AdminChat"
#define VERSION			"Public [2.0]"
#define AUTHOR			"Alexander.3"

const Float:msg_life =		120.0	// Время жизни чата
const msg_effect =		0	// Эффекты. 0 - Без эффектов, 1 - Мерцание, 2 - Переливание

// Настройка цвета чата ( RGB )
const msg_red =			0	// Красный
const msg_green =		255	// Зеленый
const msg_blue =		0	// Синий

const Float:msg_x =		0.05	// Координаты по горизонтали
const Float:msg_y =		0.65	// Координаты по вертикали

new g_sync

public plugin_init() {
	register_plugin(NAME, VERSION, AUTHOR)

	register_message(get_user_msgid("SayText"), "Hook_Message")	// Ловим сообщения от игроков в чат
	g_sync = CreateHudSyncObj()					// Синхронизируем сообщения, что бы не накладывались друг на друга
}

public Hook_Message(msgId, msgDest, receiver) {
	if (!is_user_admin(receiver))		// Если игрок не админ, то выходим из функции.
		return PLUGIN_CONTINUE
		
	static 	name[6][32], 			// Массив для имен админов
		msg[6][192], 			// Массив для сообщения от админов
		j				// Переменная будет отвечать за последовательность сообщений
	
	read_args(msg[j], 191)			// Ловим аргументы, в данном случае это сообщения в чат.
	get_user_name(receiver, name[j], 31)	// Получаем ник амдина и сохраняем в массив под переменной j
	format(name[j], 32, "%s:", name[j])	// Форматируем строчку, добавляя символ ":" после имени админа.
	
	for (new i; i < (j ? j : 1); i++) {	// Чат предусмотрен на 5 сообщений, значит цикл будет зависим от переменной j
		if (j > 4)  {			// Если отправлено 5 сообщенпий, то будем очищать первые записывая поверх новые.
			name[i] = name[i + 1] 
			msg[i] = msg[i + 1]
		}
		
		replace(msg[j], 191, "^"", "")	// Удаляем назойливую кавычку в начале текста
		
		// Чат
		set_hudmessage(msg_red, msg_green, msg_blue, msg_x, msg_y, msg_effect, 1.0, msg_life, 0.1, 0.01, -1)
		ShowSyncHudMsg(0, g_sync, "%s %s^n%s %s^n%s %s^n%s %s^n%s %s", name[0], msg[0], name[1], msg[1], name[2],  msg[2], name[3], msg[3], name[4], msg[4])
	}
	
	if (j < 5) j++ // Переменная j будет увеличиваться до 5, а после достижения лимита, будет просто обновляться функция в цикле подменяя сообщения.
	
	return PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
