Иконка ресурса

Плагин АМХХ CMSStats MySQL 2.1.4

Нет прав для скачивания
C++:
#if defined _cmsstats_included
  #endinput
#endif
#define _cmsstats_included

#define is_valid_player(%1)    (1 <= %1 <= MAX_PLAYERS)
#define OFFSET_CSTEAMS        114

/**Массив основной статистики*/
enum _:MAIN_STATS
{
    FRAGS,            /*Фраги*/
    DEATHS,            /* Смерти*/
    HEADSHOTS,        /* В голову*/
    TEAMKILLS,        /* Убийства своих*/
    SHOTS,            /* Выстрелов*/
    HITS,            /* Попаданий*/
    DAMAGE,            /* Урон*/
    PLACE            /* Место в статистике*/
}

/**Массив полной статистики*/
enum _:STATS_ARR_SIZE
{
    SUICIDE = MAIN_STATS,        /* Самоубийства*/
    DEFUSING,        /* Начал разминировать бомб*/
    DEFUSED,        /* Разминировал бомб*/
    PLANTED,        /* Поставил бомб*/
    EXPLODE,        /* Взорвал бомб*/
    LASTTIME,        /* Когда был последний раз (в UNIX времени)*/
    GAMETIME,        /* Время в игре (в секундах)*/
    CONNECTS,        /* Сыграл игр*/
    ROUNDS,            /* Сыграл раундов*/
    WINT,            /* Выиграл за Т*/
    WINCT,            /* Выиграл за СТ*/
    RESHOSTAGE,        /* Спас заложников*/
    KILLASSIST,        /* Помощь в убийстве*/
    KILLSTREAK[2],    /*Череда убийств*/
    DEATHSTREAK[2],    /*Череда смертей*/
    Float:SKILL        /* Скилл игрока*/
    , ID
}


/** Массив дополнительной статистики STATS_ARR_SIZE_EXT*/

#define STATS_ARR_SIZE_EXT PLDATA
enum _:PLDATA
{
    Nick[MAX_NAME_LENGTH] = STATS_ARR_SIZE,
    AuthId[MAX_AUTHID_LENGTH],
    IP[MAX_IP_WITH_PORT_LENGTH],
    plStatus                    /*-1 - новый игрок, 1- существующий, 0- не учитываемый игрок*/
}
       
enum _:CSDM_STATUS
{
    CSDM_STATUS_DISABLED,        /*0- если модуль CSDM выключен или режим CSDM не активен.*/
    CSDM_STATUS_ENABLED,        /*1- если модуль CSDM включен*/
    CSDM_STATUS_ENABLED_FFA        /*2- если модуль CSDM включен и включен режим FFA.*/
}
/** Создание пункта (идентификатора) дополнительной статистики
* @param szColumnName        Название нового столбца в БД статистики
* @return                   Индекс в массиве дополнительной статистики, -1 в случае неудачи
*
* @note                    Создается стобец в базе данных статистики типа INT(11)
*/
native cmsstats_create_extra_data(szColumnName[]);


/** Получение значения пункта дополнительной статистики
*
* @param iClient           Индекс игрока
* @param iDataIndex          Индекс идентификатора дополнительной статистики, полученный при его создании
* @param szColumnName        Название идентификатора дополнительной статистики
*
* @return                   Значение пункта дополнительной статистики
*/
native cmsstats_get_extra_data(iClient, iDataIndex = -1, szColumnName[] = "");


/** Получение данных о дополнительной статистики
*
* @param iSize               Размер массива зарегистрированной дополнительной статистики
*
* @return                   Дескриптор Array:массива дополнительной статистики, Invalid_Array в случае неудачи
*/
native Array:cmsstats_get_extra_data_handle(&iSize);


/** Добавление значения к пункту дополнительной статистики
*
* @param iClient           Индекс игрока
* @param iDataIndex          Индекс идентификатора дополнительной статистики, полученный при его создании
* @param iValue            Целочисленное значение для добавления (убавления, при отрицательном значении)
* @param szColumnName        Название идентификатора дополнительной статистики
*
* @return                   Новое значение пункта дополнительной статистики с учетом добавленного значения
*/
native cmsstats_add_extra_data(iClient, iDataIndex = -1, iValue, szColumnName[] = "");


/** Получить количество записей в статистике
* @return    количество записей в статистике
*/
native cmsstats_get_statsnum();


/**
* Аналог функции get_stats из модуля CSX
* Получает статистику игрока по месту в топе

* @note The permanent storage is updated on client disconnect.
* @note For a list of possible body hitplaces see the HIT_* constants in
*       amxconst.inc
* @note The fields in the statistics are:
*          0 - Kills
*          1 - Deaths
*          2 - Headshots
*          3 - Teamkills
*          4 - Shots
*          5 - Hits
*          6 - Damage
*          7 - Rank
*
* @param index         Rank index
* @param stats         Buffer to copy statistics to
* @param bodyhits      Buffer to copy body hits to
* @param name          Buffer to copy client name to
* @param len           Maximum name buffer size
* @param authid        Buffer to copy client auth id to
* @param authidlen     Maximum authid buffer size
*
* @return              Next rank index (> 0 and > index), or 0 if no more
*                      statistics exist
*/
#pragma deprecated
native cmsstats_get_stats(place, stats[8], bodyhits[8], name[], len, authid[] = "", authidlen = 0);

/** Получает массив статистики игрока по id.
*
* @note    Является аналогом натива модуля CSX
*     get_user_stats(index,stats[8],bodyhits[8]);
*
* @return    Место игрока в статистике
*         -2, если игрока нет на сервере
*         0    - если у игрока STEAM_ID_LAN или что то в этом роде
*         или игрок не успел загрузить данные из БД
*/
native cmsstats_get_user_stats(id, stats[8],bodyhits[8]);

/** То же, что и cmsstats_get_stats, только по id игрока, находящегося на сервере
* и без получения steamid и ника
* @param index         Client index
* @return    Место игрока в статистике
*         -2, если игрока нет на сервере
*         0    - если у игрока STEAM_ID_LAN или что то в этом роде
*         или игрок не успел загрузить данные из БД
*/
native cmsstats_get_user_stats2(index, stats[STATS_ARR_SIZE], len, bodyhits[8]);

/** То же, что и cmsstats_get_user_stats, но вернет основной массив данных
* @param index        Client index
* @param session    За сессию (true) / за все время (false)
* @return    Место игрока в статистике
*         -2, если игрока нет на сервере
*         0    - если у игрока STEAM_ID_LAN или что то в этом роде
*         или игрок не успел загрузить данные из БД
*/
native cmsstats_get_user_stats3(index, stats[STATS_ARR_SIZE], bool:session=false);

/** Статистика используемого оружия за сессию (от коннекта до выхода игрока)
* @note Является аналогом натива модуля CSX
*     get_user_wstats(index, wpnindex, stats[8], bodyhits[8]);
* @param index        Client index
* @param wpnindex    Weapon index
* @return       Если wpnindex > 0, вернет 1, если оружие использовалось, 0- если нет.
*             Если wpnindex = 0, вернет количество используемого оружия
*/
native cmsstats_get_user_wstats(index, wpnindex, stats[8], bodyhits[8]);

/** Статистика по каждой жертве за раунд
* @note Является аналогом натива модуля CSX
*     get_user_vstats(attacker, victim, stats[8], bodyhits[8], wpnname[]="", len=0);
* @param attacker    Client index (attacker)
* @param victim        Client index (victim)
* @return           Если wpnindex > 0, вернет 1, если оружие использовалось, 0- если нет.
*                 Если wpnindex = 0, вернет количество используемого оружия
*
* @note    Если victim = 0, вернет статистику по всем жертвам
*/
native cmsstats_get_user_vstats(attacker, victim, stats[8], bodyhits[8], wpnname[]="", len=0);

/** Статистика по каждому нападавшему за раунд
* @note    Является аналогом натива модуля CSX
*     get_user_astats(victim, attacker, stats[8], bodyhits[8], wpnname[]="", len=0);
* @param attacker    Client index (attacker)
* @param victim        Client index (victim)
* @return           Если wpnindex > 0, вернет 1, если оружие использовалось, 0- если нет.
*                 Если wpnindex = 0, вернет количество используемого оружия
*
* @note Если victim = 0, вернет статистику по всем жертвам
*/
native cmsstats_get_user_astats(victim, attacker, stats[8], bodyhits[8], wpnname[]="", len=0);

/** Получить место игрока в статистике
* @return    место игрока в статистике
*/
native cmsstats_get_user_place(id)

/** Добавить/отнять значение в статистике игрока
* @param ident    элемент массива полной статистики
* @param value    добавляемое значение
* @param save    сохранять сделанные изменения в БД минуя фильтры записи
* @return    1 при удачной установке
*/
native cmsstats_add_user_value(id, ident, any:value, bool:save = false)

/** Установка нужного значения в элементе массива полной статистики игрока
* @return    1 при удачной установке
*/
native cmsstats_set_user_value(id, ident, any:value, bool:save = false)

/** Получение значения пункта статистики(ident)
* @return    Вернет значение пункта статистики (ident)
*/
native cmsstats_get_user_value(id, ident)

/** Разрешен ли учет и запись статистики для данного игрока
* @param id        Индекс игрока
* @return        Вернет true, если запись в БД будет произведена.
*/
native bool:cmsstats_is_user_write(id)

/** Установка разрешения на учет и запись статистики для данного игрока
* @param id            Индекс игрока
* @param iAllow        Разрешение. 1- разрешить, 0- запретить.
* @return            Вернет предыдущее значение параметра
*                    -2, если игрока нет на сервере
*/
native cmsstats_set_user_write(id, iAllow)

/** Проверка режима CSDM
* @return    enum CSDM_STATUS
*/
native cmsstats_get_csdm_status()

/** Статистика лучших игроков за раунд
* @param iBestScore
* Значения:
*     [0]    - best player index
*     [1] - kills
*     [2] - headshots
* @param iMostDamage
* Значения:
*     [0]    - best player index
*     [1] - damage
*     [2] - hits
* @return    вернет 1, если есть лучшие игроки за раунд, 0- если нет.
*/
native cmsstats_get_rbest_users(iBestScore[3], iMostDamage[3])

/** Возвратит скилл игрока (ELO)
* @param index         Client index
* @param skillname     Buffer to copy skillname to
* @param namelen       Maximum name buffer size
* @param skill_level   Skill level
*
* @return    Скилл игрока
*/
native Float:cmsstats_get_user_skill(index, skillname[] = "", namelen = 0, &skill_level = 0);

/** Сброс статистики игроков
*
* @param szType        Метод сброса статистики:
*                    "all" - для сброса всей статистики
*                    "main" - для сброса основной статистики enum _:MAIN_STATS и enum _:STATS_ARR_SIZE
*                    "extra" - для сброса дополнительной статистики, зарегистрированной сторонними плагинами
* @param szAuth        Authid (STEAM) игрока или "all" для сброса статистики всех игроков
* @return                1- при удачном сбросе, иначе- 0
*
* @note                При удачном сбросе вызывает форвард OnCmsStatsResetStats
*/
native cmsstats_reset_user_stats(szType[], const szAuth[]);

/** Возвратит состояние учета статистики
* @return true, если статистика учитывается, false- если нет.
*/
native bool:cmsstats_stats_enable();


/**
* Получение настроек пользователя из базы данных
*
* @param iClient        Индекс игрока
* @param sszSettingName    Идентификатор настройки (название)
* @param szValue            Массив для записи значения настройки
* @param value_length    Размер массива для записи значения настройки
*
* @return                - размер записанного массива, если передается массив для записи значения
*                         - цифровое значение настройки, если массив не передан
*                         - -1, если идентификатор настройки не найден
*/
native cmsstats_get_user_setting(iClient, szSettingName[], szValue[] = "", value_length = 0);

/**
* Сохранение настроек пользователя в базу данных
*
* @param iClient        Индекс игрока
* @param sszSettingName    Идентификатор настройки (название)
* @param szValue            Массив со значением настройки
* @param delete            Удалить настройку
*
* @param return            true - при успешном изменении (удалении)
                        false- при неудаче
*/
native bool:cmsstats_set_user_setting(iClient, szSettingName[], szValue[], bool:delete = false);


/** Вызывается, когда плагин подключился к базе
*/
forward OnCmsStatsInitializedPost(Handle:Tuple)

/** Вызывается когда игрок зашел на сервер и получил все данные
* @param exists        Не используется
* @param iPlace        Место игрока в топе
*/
forward OnCmsStatsPutinserver(id, bool:exists, iPlace)

/** Вызывается при выходе игрока с сервера или обнулении статистики
* @param id        индекс игрока
*/
forward OnCmsStatsDisconnect(id)

/** Вызывается при событиях (убийство, установка/ разминирование и т.п.)
* @param ActType    тип события:
* @param firstPl    киллер (бомбер)
* @param secondPl    жертва (дефузер)
* @param wpnId        индекс оружия киллера
* @param hitPlace    место попадания в жертву
* @param kds        череда смертей/ убийств
*                 kds[0] - череда убийств киллера
*                 kds[1] - череда смертей жертвы
*/
forward OnCmsStatsAction(ActType, firstPl, secondPl, wpnId, hitPlace, kds[])
   
/** Вызывается при сбросе статистики игрока
* @param id    индекс игрока
*/
forward OnCmsStatsResetStats(id)

/** Вызывается, когда плагин по каким-то причинам был остановлен
*/
forward OnCmsStatsStop()

/** Вызывается при смене состояния статистики
* @param bStatsEnable    Состояние учета статистики: true- статистика учитывается, false- не учитывается
*/
forward OnCmsStatsSwitchStatus(bool:bStatsEnable)

/** Вызывается при смене позиции игрока в Топе
* @param id            Индекс игрока
* @param iOldValue    Предыдущая позиция в топе
* @param iNewValue    Новая позиция в топе
*/
forward OnCmsStatsUpdateTopPosition(id, iOldValue, iNewValue)

/** Возвратит реальное игровое время, если установлен плагин GameCMS Time Awards
* @note    Учитывает время, в течение которого клиент играл за одну из команд
* @param index         Client index
*/
//native get_user_time_real(index);
Назад
Сверху