cms_skin_manager.inc

#if defined _cms_skin_manager_included
	#endinput
#endif
#define _cms_skin_manager_included


/*Информация о скине (модели)*/
enum _:eSkinEnData
{
	skinName[MAX_NAME_LENGTH*2],
	skinModelT[MAX_NAME_LENGTH],
	skinModelCT[MAX_NAME_LENGTH],
	skinAccess[MAX_NAME_LENGTH],
	skinModelIndexT,
	skinModelIndexCT
}

/*Forwards Handle Types*/
enum _:hMFHandle
{	
	fwdSkinSelect = 1,	/*При выборе скина в меню*/
	fwdSetSkin,			/*При установке скина игроку*/
	fwdOpenMenu			/*Перед открытием меню*/
};



/**
*	Выполняется при выборе игроком скина в меню
*
* @param iClient		Индекс игрока
* @param szSkinName		Название скина
* @param bCustomSkin	true- если устновлен нестандартный скин 
*						false - при сбросе скина (установка стандартного скина)
*
* @noreturn
*/
forward OnCMSSkinMenuItemSelection(iClient, szSkinName[], bool:bCustomSkin);

/**
*	Выполняется при установке скина игроку
*
* @param iClient		Индекс игрока
* @param szSkinName		Название скина
* @param post			true- после установки скина
*						false - перед установкой скина
*
* @return				PLUGIN_HANDLED, если требуется заблокировать установку скина , выбранного игроком.
*						PLUGIN_CONTINUE, продолжит установку скина, выбранного игроком
*/
forward OnCMSSkinSetSkin(iClient, szSkinName[], bool:post);

/**
*	Выполняется перед открытием меню скинов
*
* @param iClient		Индекс игрока
* @param iMenuId		Индекс меню
*
* @return				PLUGIN_HANDLED, если требуется заблокировать открытие меню
*						PLUGIN_CONTINUE, продолжит открытие меню
*/
forward OnCMSSkinOpenMenu(iClient, iMenuId);

/**
*	Проверка, устновлен ли скин игроку
*
* @param iClient	Индекс игрока
*
* @return			true- если скин устновлен
*/
native bool:CMSSkinIsUserSkinSelected(iClient)

/**
*	Получение названия и модели скина, установленного игроку
*
* @param iClient		Индекс игрока
* @param szSkinName		Массив для записи названия скина
* @param iLenSkinName	Размер массива для записи названия скина
* @param szModelName	Массив для записи названия модели
* @param iLenModelName	Размер массива для записи названия модели
*
* @return				Индекс установленной модели m_modelIndexPlayer, 0 - если скин не выбран
*/
native CMSSkinGetUserSelectedSkin(iClient, szSkinName[], iLenSkinName, szModelName[] = "", iLenModelName = 0)

/**
*	Устновка скина игроку
*
* @param iClient		Индекс игрока
* @param szSkinName		Названия скина, параметр "skinName" в конфиге
* @param bRewrite		Перезаписать выбранный игроком скин
*						true - перезапишет выбранный игроком скин на заданный. В меню скин будет также изменен.
*						false - Будет установлен заданный скин, но в меню он изменен не будет и игрок сможет сам его сменить.
*
* @return				1 - если скин успешно установлен.
*/
native CMSSkinSetUserSkin(iClient, szSkinName[], bool:bRewrite = true);

/**
*	Проверка, имеет ли игрок доступ к скину
*
* @param iClient	Индекс игрока
* @param szSkinName		Названия скина
*
* @return			true- если игрок имеет доступ к скину
*/
native bool:CMSSkinGetUserSkinAccess(iClient, szSkinName[]);

/**
*	Показать игроку меню выбора скинов
*
* @param iClient	Индекс игрока
*
* @return			true- если меню успешно показано
* @note				Натив показывает меню принудительно, не вызывая форвард OnCMSSkinOpenMenu(iClient);
*/
native bool:CMSSkinOpenSkinMenu(iClient)