- cmsstats_ranks.inc
- Raw
- Functions
- Constants
#if defined _cmsranks_included
#endinput
#endif
#define _cmsranks_included
/*Структура вызываемых функций*/
enum eFwdHandles
{
FWD_NEW_LEVEL, /*При получении игроком нового уровня*/
FWD_BONUS_MENU /*При использовании игроком меню бонусов*/
}
/*Структура функций, вызываемых при использовании игроком меню бонусов*/
enum eBonusMenuAction
{
BONUS_MENU_OPEN, /*При открытии игроком меню бонусов*/
BONUS_MENU_ITEM_STATUS, /*При получении статуса пункта меню*/
BONUS_MENU_CHOOSE_ITEM, /*При выборе игроком пункта меню*/
BONUS_MENU_STATUS_OVERRIDE, /*Статус код, при котором игнорируются все дальнейшие проверки и выполняется код обработки меню*/
BONUS_MENU_ITEM_ADD /*При добавлении пункта меню*/
}
/*Структура стандартных бонусов*/
enum _:eStandartBonusItems
{
BONUS_MENU_ITEM_MONEY = 1,
BONUS_MENU_ITEM_AK47,
BONUS_MENU_ITEM_M4A1,
BONUS_MENU_ITEM_AWP,
BONUS_MENU_ITEM_HP
}
/*Структура параметров бонуса*/
enum _:eBonuses
{
BONUS_ITEM_ID,
BONUS_NAME[MAX_NAME_LENGTH*2],
BONUS_MIN_ROUND,
BONUS_MIN_PLAYERS,
BONUS_COST,
BONUS_RESTRICT_LEVEL, /*С какого уровня возможен доступ к пункту*/
//Нижестоящие проверки не производятся. Ячейки только хранят значение и передаются в массиве.
BONUS_RESTRICT_ROUND /*На сколько раундов блокировать после использования пункта*/
}
/* Получить уровень и звание игрока
* @param id Индекс игрока
* @param szLevel Массив для записи названия уровня
* @param len Размер массива
* @return № текущего уровня
*/
native cmsranks_get_user_level(id, szLevel[] = "", len = 0)
/* Возвратит общий опыт игрока.
* @param id Индекс игрока
* @return Количество реального опыта + добавленного опыта
* (колонка в БД - `cms_xp` + `cms_addxp`)
*/
native cmsranks_get_user_allxp(id)
/* Возвратит реальный опыт игрока(без дополнительного)
* @param id Индекс игрока
* @return Количество реального опыта (колонка в БД - `cms_xp`)
*/
native cmsranks_get_user_realxp(id)
/* Получить дополнительный опыт игрока
* @param id Индекс игрока
* @return Количество добавленного опыта (колонка в БД - `cms_addxp`)
*/
native cmsranks_get_user_addxp(id)
/* Получить количество бонусов /aNew
* @param id Индекс игрока
* @return Количество бонусов /aNew
*/
native cmsranks_get_user_anew(id)
/* Добавить количество бонусов /aNew
* @param id Индекс игрока
* @param value Количество бонусов (+ добавить, - отнять)
* @return 1- при удачном добавлении
* 0- при неудачном
*/
native cmsranks_add_user_anew(id, value)
/* Добавить дополнительный опыт игрока
* @param id Индекс игрока
* @param value Количество опыта (+ добавить, - отнять)
* @return 1- при удачном добавлении
* 0- при неудачном
*/
native cmsranks_set_user_addxp(id, value)
/* Получить максимальное количество уровней.
* @return Максимальное количество уровней
*/
native cmsranks_get_maxlevels()
/* Получить название уровня из его номера.
* @param level Номер уровня
* @param string Массив для записи названия уровня
* @param len Размер массива
* @return Верхняя граница текущего уровня (ХР)
*/
native cmsranks_get_levelname(level, string[]="", len=0)
/* Получить номер раунда.
* @return Номер раунда
*/
native cmsranks_get_gameround()
/* Заблокированы ли бонусы на данной карте
* @return false - если бонусы заблокированы на данной карте
* true- если доступны
*/
native bool:cmsranks_is_blocked_map()
/* Добавление пункта в меню бонусов
* @param iBonusId Уникальный номер бонуса (с учетом стандартных, номер должен быть больше 5)
* @param szBonusName Название бонуса
* @param iBonusCost Стоимость бонуса (сколько очков anew)
* @param iBonusRound С какого раунда доступен пункт
* @param iMinPlayers Минимальное количество игроков на сервере, при котором доступен пункт
* @param iMinLevel Минимальный уровень (звание) игрока, при котором доступен пункт
* @param iRestRound На сколько раундов блокировать после использования пункта
*
* @return Индекс ячейки Array, -1 при неудачном добавлении
*/
native cmsranks_add_bonusmenu_item(iBonusId, szBonusName[], iBonusCost, iBonusRound = 0, iMinPlayers = 0, iMinLevel = 0, iRestRound = 0)
/* Вызывается при получении нового уровня.
* @param id Индекс игрока
* @param Level Номер уровня
* @param LevelName Название уровня
* @noreturn
*/
forward OnCMSRanksNewLevel(id, Level, LevelName[])
/* Вызывается использовании игроком меню бонусов
* @param eBonusMenuAction:iAction Идентификатор вызванной функции (enum eBonusMenuAction)
* @param iClient Индекс игрока
* @param iMenu Индекс меню
* @param iItem Индекс пункта
* @param aBonusData[] Массив с параметрами бонуса (eBonuses)
*
* @return BONUS_MENU_OPEN должен вернуть 1, если меню открывать не нужно
* BONUS_MENU_ITEM_STATUS должен вернуть Menu and menu item status codes (amxconst.inc)
* BONUS_MENU_CHOOSE_ITEM должен вернуть 1, если выбор пунктов запрещен
* BONUS_MENU_ITEM_ADD должен вернуть 1, если пункт добавлять не нужно
*
* @note При открытии меню (iAction == BONUS_MENU_OPEN или iAction == BONUS_MENU_ITEM_ADD) параметр iItem равен 0, т.к. меню создано, но не имеет добавленных пунктов
*/
forward OnCMSRanksBonusMenuAction(eBonusMenuAction:iAction, iClient, iMenu, iItem, aBonusData[eBonuses])