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

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

Нет прав для скачивания
Плагин для записи статистики в БД.

Общая информация:
Плагин CMSStats_MySQL для АМХ предназначен для сбора игровой статистики и записи ее в базу данных.
Является основным плагином (ядро, API, называйте как хотите :)) для линейки плагинов, находящихся в разработке, например, замена плагинов ARUltimate и StatsX_RBS.

Плагин заточен для использования встроенной статистики движка GameCMS.
Детальная статистика по картам и оружию.

Для работы плагина наличие движка GameCMS не обязательно! Однако, основной упор при разработке делался на его наличие и из-за его отсутствия возможны ограничения в некоторых плагинах.

ВНИМАНИЕ! Корректность работы на АМХmod 1.8.2 не подтверждена, но поддержка предусмотрена!
Однако, вспомогательные плагины могут не иметь совместимости с АМХ 1.8.2!
Особенности CMSStats MySQL:
Код:
- более 30-ти параметров статистики, почти все, что интересно знать об игроке
- запись статистики по оружию + попадания по частям тела (для вывода на сайт);
- статистика по картам
- статистика по сессиям (каждую карту) для отслеживания изменений скилла
- расчет скила по ELO Method
[L- до 60][LS 60][L+ 75][M- 85][MS 100][M+ 115][H- 130][HS 140][H+ 150][P- 165][PS 180][P+ 195][G 210]
- автоматическая поддержка режима CSDM FFA
- сброс всей статы без рестарта сервера cmsstats_reset "all";
- сброс статистики Конкретного игрока: cmsstats_reset "Steamid игрока";
- замена функций модуля CSX, если модуль не включен
- фильтры удаления неактивных игроков, записи и обновления информации
- фильтр игроков для записи в БД (запрещенные ники, отсутствие steamid)
- нативы и форварды для использования в сторонних плагинах
- записывает в БД реальное игровое время, если установлен плагин GameCMS Time Awards
- возможность записи своих пунктов статистики с любыми целочисленными данными
и много другое. Подробнее в разделе Обновления
Обновление ТОПа выполняется в начале карты!
Скриншоты web-части (для сайта на GameCMS)

153154155


C++:
cmsstats_key         ""            //16-ти значный ключ продукта

// Включение / выключение учета статистики, 1- вкл(по-умолчанию), 0- выкл.
// Это не квар, это консольная команда! Т.е. получить значение ключа не получится, только включить или выключить через консоль или конфиг.
cmsstats_enable "1"

// Логирование работы плагина: от 0 до 3
cmsstats_debug "0"

// Впишите теги в никах игроков, которых Вы не хотите записывать в статистику
cmsstats_tags "[NO-UCP]"
cmsstats_tags "[No-Myac]"

// Настройка БД

cmsstats_host "127.0.0.1"
cmsstats_user "root"
cmsstats_pass ""
cmsstats_db "csstats"

// Удаление игроков из базы данных, для ее очистки
// <дни> <время в игре> <фраги>
// <дни> - удалит игроков которые не заходили на сервер столько то дней
// <время в игре> - удалит игроков которые провели в игре меньше этих секунд
// <фраги> - удалит игроков которые набрали меньше этих фрагов
cmsstats_delete_time "70 300 5"

// Запись новых игроков в базу (записывает при выходе игрока с сервера)
// <время в игре> <фраги>
// <время в игре> - добавит игрока в базу, только если он провел в игре больше этих секунд
// <фраги> - добавит игрока в базу, только если он набрал больше этих фрагов
cmsstats_insert_time "0 0"

// Обновление данных игрока (добавляет набранные фраги смерти и т.д. при выходе игрока с сервера)
// <время в игре> <фраги>
// <время в игре> - обновит данные если игрок провел в игре больше этих секунд
// <фраги> - обновит данные если игрок набрал за игру больше этих фрагов
cmsstats_update_time "0 0"

//Расчет скила по ELO Method
csstats_skill "0 60 75 85 100 115 130 140 150 165 180 195 210"
csstats_skillname "L- LS L+ M- MS M+ H- HS H+ P- PS P+ G"

// Сортировка игроков в топе
// (frags - deaths) - формула: фраги - смерти
// Если включен плагин cmsranks или значение установлено "cmsranks" - по формуле расчета опыта:
// (фраги - хедшоты) * множитель за убийство + добавленный опыт + хедшоты * множитель за хедшот + (взрыв + дефуз + спасение заложников) * множитель
cmsstats_sort "(frags - deaths)"

// Для обнуления ВСЕЙ статистики введите в консоль сервера команду: cmsstats_reset "all"
// Для обнуления статистики одного игрока введите в консоль сервера команду: cmsstats_reset "steamid игрока"
// Для смены SteamId игрока введите в консоль сервера команду: cmsstats_user_update "SteamID старый" "SteamID новый"

//считать урон стандартно, с учетом брони или только здоровье.
//cmsstats_damagetype "0"    // 1- с учетом брони (стандарт), 0- без учета брони
cmsstats_damagetype "0"

//режим игры, если плагин не сможет определить самостоятельно
//0 - обычный режим игры, 1 - режим игры CSDM, 2 - режим игры CSDM Free For All
cmsstats_csdm_status "0"
C++:
#if defined _cmsstats_included
  #endinput
#endif
#define _cmsstats_included

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

#define OFFSET_CSTEAMS        114
#define STATS_ARR_SIZE        26    //размер массива полной статистики
#define STATS_ARR_SIZE_EXT    11    //размер массива дополнительной статистики
#define MAIN_STATS            8    //размер массива основной статистики


/**Массив полной статистики STATS_ARR_SIZE*/
#define FRAGS        0    // Фраги
#define DEATHS        1    // Смерти
#define HEADSHOTS    2    // В голову
#define TEAMKILLS    3    // Убийства своих
#define SHOTS        4    // Выстрелов
#define HITS        5    // Попаданий
#define DAMAGE        6    // Урон
#define SUICIDE        7    // Самоубийства
#define DEFUSING    8    // Начал разминировать бомб
#define DEFUSED        9    // Разминировал бомб
#define PLANTED        10    // Поставил бомб
#define EXPLODE        11    // Взорвал бомб
#define PLACE        12    // Место в статистике
#define LASTTIME    13    // Когда был последний раз (в UNIX времени)
#define GAMETIME    14    // Время в игре (в секундах)
#define CONNECTS    15    // Сыграл игр
#define ROUNDS        16    // Сыграл раундов
#define WINT        17    // Выиграл за Т
#define WINCT        18    // Выиграл за СТ
#define SKILL        19    // Скилл игрока (если запущен плагин statsx_rbs)
#define CMS_ADDXP    20    // Добавленный опыт (если запущен плагин cms_ranks)
#define CMS_ANEW    21    // Очки бонусов /anew (если запущен плагин cms_ranks)
#define RESHOSTAGE    22    // Спас заложников
#define KILLASSIST    23    // Помощь в убийстве
#define CMS_XP        24    // Сохраненный опыт ARU
#define CMS_LEVEL    25    // Уровень игрока

/**    Массив дополнительной статистики STATS_ARR_SIZE_EXT
*
*    CMS_Settings[33] = 27,    // Сохраненные настройки из ARU
*    Nick[33],
*    AuthId[26],
*    IP[18],
*    bool:EXIST,                // 30 | Существует ли игрок в БД
*    bool:TOWRITE,            // Сохранять данные в БД при выходе
*    plStatus,                // -1 - новый игрок, 1- существующий
*    Float:SkillVal,            // Значение скилла
*    Float:SkillKoeff,        // Коэффициент подсчета скилла
*    kill_streak[2],            // Череда убийств
*    death_streak[2]            // 37 | Череда смертей
*/

/**    Создание пункта (идентификатора) дополнительной статистики
*    @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[] = "");


/** Возвратит количество записей в статистике.
*/
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
*/
//native cmsstats_get_stats(place, stats[8], bodyhits[8], name[], len, authid[] = "", authidlen = 0);

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

/**    То же, что и cmsstats_get_stats, только по id игрока, находящегося на сервере
*    и без получения steamid и ника
*    @param index         Client index
*/
native cmsstats_get_user_stats2(index, stats[STATS_ARR_SIZE+STATS_ARR_SIZE_EXT], len, bodyhits[8]);

/**    То же, что и cmsstats_get_user_stats, но вернет основной массив данных
*    @param index        Client index
*    @session            За сессию (true) / за все время (false)
*/
native cmsstats_get_user_stats3(index, stats[STATS_ARR_SIZE], bool:session=false);

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

/**    Статистика по каждой жертве за раунд
*    Является аналогом натива модуля 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, вернет количество используемого оружия
*   
*    Если victim = 0, вернет статистику по всем жертвам
*/
native cmsstats_get_user_vstats(attacker, victim, stats[8], bodyhits[8], wpnname[]="", len=0);

/**    Статистика по каждому нападавшему за раунд
*    Является аналогом натива модуля 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, вернет количество используемого оружия
*   
*    Если victim = 0, вернет статистику по всем жертвам
*/
native cmsstats_get_user_astats(victim, attacker, stats[8], bodyhits[8], wpnname[]="", len=0);

/** Возвратит место игрока в статистике
*/
native cmsstats_get_user_place(id)

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

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

/** Вернет значение пункта статистики(ident)
*/
native cmsstats_get_user_value(id, ident)

/** Вернет true, если игрок с нормальным стим айди и получил данные из БД
*/
native cmsstats_is_user_write(id)

/** Проверка режима CSDM
*    @return        0- режим CSDM выключен
*                1- режим CSDM включен
*                2- режим CSDM включен и включен режим FFA.
*/
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
*/
native Float:cmsstats_get_user_skill(index, skillname[] = "", namelen = 0, &skill_level = 0);

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


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


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

/** Вызывается когда игрок зашел на сервер и получил все данные
*    @exists передаст true, если игрок уже был в базе, false - если новый игрок
*    @iPlace - место игрока в топе
*/
forward OnCmsStatsPutinserver(id, bool:exists, iPlace)

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

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

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

Покупка:
Плагин предоставляется без исходного кода, с привязкой к серверу.
Плагин работает без активации 5 минут.
Смена IP плагина не предусмотрена.
Возможен возврат средств в течение 3-х дней со дня покупки, если плагин не работает по техническим особенностям сервера.
Для активации плагина необходимо Купить ключ и указать его в конфиге.
Ссылка на покупку также указывается в консоли сервера после окончания тестового времени.
Не закрывайте страницу оплаты до полного ее окончания!!! Если потребуется, нажмите ссылку "Назад в магазин". Окончанием оплаты считается сообщение с номером сервера и кодом продукта.

149


Если по какой-то причине Вам не показало страницу окончания оплаты, зайдите в личный кабинет на сайте oplata.info и подтвердите получение заказа. В противном случае, ваш код будет недействительным!
Автор
zhorzh78
Скачивания
98
Просмотры
1K
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя zhorzh78

Последние обновления

  1. Обновление без изменения версии.

    Фикс ошибки [AMXX] Run time error 25: parameter error
  2. Обновление до версии 1.15

    1.15 - полностью убрана поддержка ARUltimate и других плагинов RBS - убрано...
  3. Обновление до версии 1.14

    // Включение / выключение учета статистики, 1- вкл(по-умолчанию), 0- выкл. // Это не квар, это...
Сверху