#if defined _gamecms_achievs_included
	#endinput
#endif
#define _gamecms_achievs_included

#if !defined MAX_AUTHID_LENGTH
	const MAX_AUTHID_LENGTH =	64;
#endif
#if !defined MAX_PLAYERS
	const MAX_PLAYERS = 32;
#endif
#if !defined MAX_NAME_LENGTH
	const MAX_NAME_LENGTH =	32;
#endif

#define DUPLICATE_ENTRY	1062
//#define MAX_QUERY_LARGE_LEN 3500
//#define MAX_QUERY_SMALL_LEN 512

#if AMXX_VERSION_NUM < 183
	#define client_disconnected client_disconnect
	#include <colorchat>
	stock MaxClients;
#else
	#define client_disconnect client_disconnected
#endif

#define PDATA_SAFE			2
#define m_iTeam				114

enum _:eAchievedStatus
{
	AchStatusNone,
	AchStatusInProgress,
	AchStatusCompleted
}

/**
*	Получение данных о достижении по его уникальному номеру
*	
*	@idKey		- уникальный номер достижения
*	@RusName[]	- название достижения на русском
*	@nameLen	- размер буфера для записи названия
*	@Avatar[]	- название (имя файла) картинки (аватара)
*	@avaLen 	- размер буфера для записи названия аватара
*	@return		Возвратит количество действий, необходимое для открытия достижения
*/
native CmsGetAchiveInfoByKey(idKey, RusName[], nameLen, Avatar[], avaLen);

/**
*	Активация достижения по его уникальному номеру при загрузке плагина
*	
*	@idKey		- уникальный номер достижения
*	@return		1 - при успешной активации для дальнейших действий с достижением, 0 - ошибка активации
*/
native CmsActivateAchive(idKey);

/**
*	Получение данных о достижении игрока по его уникальному номеру
*	
*	@iClient	- индекс игрока
*	@idKey		- уникальный номер достижения
*	@currValue	- текущее значение (количество действий)
*	@maxValue	- значение, необходимое для открытия достижения (количество действий)
*	@return		Возвратит статус достижения eAchievedStatus
*/
native CmsGetPlayerAchive(plId, idKey, &currValue = 0, &maxValue = 0);

/**
*	Запись текущего действия в общий счетчик действий достижения игрока по его уникальному номеру
*	
*	@iClient		- индекс игрока
*	@idKey			- уникальный номер достижения
*	@addValue		- значение для записи (количество действий). Если значение не указано, будет текущее значение + 1
*	@silentComplete	- true - при открытии достижения не будет оповещений в чат игрокам, false - оповестит всех игроков об открытии достижения
*	@return			Возвратит статус достижения eAchievedStatus
*/
native CmsCheckPlayerAchive(iClient, idKey, addValue = 0, bool:silentComplete = false);	//проверка ачивки
