serfreeman1337

CSstatsX SQL

Запись игровой статистики Counter-Strike в БД MySQL или SQLite.

Описание

Плагин может выступать в качестве полной замены модуля CSX. После установки он начнет самостоятельность считать статистику игроков и записывать её в базу данных, но чтобы все ваши плагины статистик начали использовать его данные придется немного их изменить, об этом ниже. Может работать с локальной базой данных SQLite. Из новых функций есть подсчет времени нахождения игрока на сервере и расчет скилла по формуле ELO, запись статистики по используемому оружию и истори игр игроков (на подобии HLstatsX:CE). С версии 0.7.2 была добавлена статистика по помощи в убийствах (ассисты).

Версия: 0.7.4 от 06.07.2016 [ GIT ]

Требования

  • AMXX 1.8.2 hg26 или выше.
  • AMXX 1.8.3 git3799 для поддержки UTF8 ников.
  • direct_hands.exe

Дополнения

Установка

  • Скомпилируйте плагин.
    • Для поддержки utf8 ников требуется AMXX 1.8.3, компилить так-же нужно будет с компилятором от 1.8.3 версии.
  • Раскомментируйте нужный модуль SQL в файле addons/amxmodx/configs/modules.ini.
  • Укажите данные для подключения в кварах csstats_sql_host, csstats_sql_user, csstats_sql_pass, csstats_sql_db, csstats_sql_type.
  • Чтобы плагины статистики начали использовать данные с SQL выполните инструкции ниже.
  • Для обновления с версии 0.4 выполните импорт csstats_04_to_05.sql.
  • Для обновления с версии 0.5 dev выполните импорт csstats_05dev_to_05.sql.
  • Для обновления с версии 0.6 на версию 0.7 выполните импорт csstats_06_to_07.sql.
  • Для обновления с версии 0.7 на версию 0.7.2 выполните импорт csstats_07_to_072.sql.
    • Выполните импорт csstats_07_to_072_maps.sql, если включена запись статистики за карту.
    • Перекомпилите все плагины с новым csstatsx_sql.inc.
  • Для записи статистики за карту необходимо выполнить импорт файла csstats_maps.sql в БД.
    • csstats_maps_sqlite.sql для sqlite.
  • Для обновления с CsStats MySQL выполните импорт csstats_mysql_convert.sql (обратите внимание на название таблицы в sql файле).
    • ВНИМАНИЕ! Опыт, количество подключений и побед конвертированы не будут!

Вариант с заменой модуля CSX

  • Выключите сервер.
  • Файл dummy_csx_amxx из архива переименуйте в csx_amxx.
  • Замените этим файлом ваш модуль в папке addons/amxmodx/modules.
  • Задайте квар csstats_sql_forwards в 1.
  • Пропишите csstatsx_sql.amxx ВЫШЕ всех остальных ваших плагинов статистики.

Вариант без замены модуля CSX

Выполните следующие инструкции для ВСЕХ ваших плагинов статистики.

  • Откройте исходник плагина.
  • Добавьте следующий код в начало файла:
  • Замените все строчки get_statsnum на get_statsnum_sql.
  • Замените все строчки get_user_stats на get_user_stats_sql.
  • Замените все строчки get_stats на get_stats_sql.
  • Скомпилируйте плагин.

Квары

Квары можно прописывать в amxx.cfg или server.cfg.

  • csstats_sql_host "localhost" - хост БД MySQL
  • csstats_sql_user "root" - пользователь БД MySQL
  • csstats_sql_pass "" - пароль БД MySQL
  • csstats_sql_db "amxx" - название БД.
  • csstats_sql_table "csstats" - название таблицы.
  • csstats_sql_type "mysql" - тип используемой базы данных.
    • mysql - база данных MySQL.
    • sqlite - локальная база данных SQLite.
  • csstats_sql_create_db "1" - автоматическое создание таблицы в БД.
    • 0 - не отправлять запрос.
    • 1 - отправлять запрос при загрузке карты.
  • csstats_sql_update "-1" - как обновлять статистику игрока в БД
    • -2 - при смерти и дисконнекте
    • -1 - в конце раунда и дисконнекте
    • 0 - при дисконнекте
    • значение больше 0 - через указанное кол-во секунд и дисконнекте
  • csstats_sql_forwards "0" - включить собственные форварды для client_death, client_damage
    • 0 - выключить
    • 1 - включить, небоходимо, если csstats_sql используется в качестве замены модуля
  • csstats_sql_rankformula "0" - формула расчета позиции игрока
    • 0 - убийства - смерти - тк
    • 1 - убийства
    • 2 - убийства + хедшоты
    • 3 - скилл
    • 4 - время онлайн.
  • csstats_sql_skillformula "0" - формула расчета скилла
  • csstats_sql_weapons "0" - запись статистики по используемому оружию
    • 0 - запись выключена
    • 1 - включить запись.
      • В БД будет создана новая таблица csstats_weapons.
        ВНИМАНИЕ: квар csstats_sql_create_db должен быть установлен в 1
  • csstats_sql_maps "0" - запись истории игр игрока
    • 0 - запись выключена
    • 1 - запись включена.
      • ВНИМАНИЕ: нужно выполнить импорт файла csstats_maps.sql в БД.
        Смотрите инструкцию по установке.
  • csstats_sql_autoclear "0" - автоматическое удаление неактивных игроков в БД, которые не заходили на сервер указанное количество дней.
  • csstats_sql_autoclear_day "0" - автоматический полный сброс статистики в указанный день месяца
  • csstats_sql_cachetime "-1" - функция кеширование для get_stats
    • -1 - кеш включен
    • 0 - кеш выключен
    • не работает при csstats_sql_update -2 и 0
  • csstats_sql_assisthp "50" - минимальный урон для учета ассиста. 0 - выключить учет ассистов.

Команды

  • csstats_sql_reset - полный сброс статистики. Выполнять нужно в консоли сервера или через RCON.

Лаги при отображении топа игроков

Для отображения топ игроков используются прямые запросы, которые могут вызвать лаги запросе таблицы с игроками. С версии 0.4 я добавил возможность осуществлять потоковые запросы, но чтобы ваши плагины начали использовать эту возможность потребуются знания в скриптинге под AMXX. Можете отослать мне исходники ваших плагинов для добавления этой поддержки. Ну или воспользоваться одним из плагинов ниже.

Готовые плагины с поддержкой потоковых запросов:

Спасибо Lev с форума aghl.ru за модуль dummy_csx.

CSXSQL: Onlinetime Awards

Альтернатива TOPx By GameTime для CSstatsX SQL. Плагин для выдачи флагов доступа ТОП игрокам по сыгранному времени. Настраивается в исходнике:

FAQ

  • Почему долго открывается окно /top15 ?
  • Ваша БД долго отвечает на запросы плагина. MySQL БД или перегружена или слишком много запросов от плагинов (не только от csstats sql). В последнее случае проверьте квар csstats_sql_update и если он имеет значение -2, то попробуйте установить режим работы в -1 или 0. Я тестировал плагин у себя с удаленной MySQL БД на сервере hldm.org, пинг до который был 100-120 мс, время открытия топа при 31 ботах и csstats_sql_update -2 было примерно 5-8 секунд. Проверьте какие еще плагины могут часто работать с базой данных. В версии 0.7 был улучшен кеш запросов, что должно уменьшить время открытие топа, смотрите квар csstats_sql_cachetime. С локальной БД SQLite таких проблем наблюдаться не должно.

 

  • Выходит ошибка #2002 Can't connect to local MySQL server through socket '/tmp/mysql.sock'. Что делать?
  • Указать в качестве хоста (csstats_sql_host) 127.0.0.1 вместо localhost. Если Вы владелец VDS, то можете попробовать сделать симлинк файла сокета:
    • Ищем свой mysql.sock командами:
    • делаем симлинк:

  • Выходит ошибка #1045 Access denied for user 'root'@'localhost' (using password: NO). Что делать?
  • Проверить правильность данных для доступа к MySQL. Прописать квары плагина в файле addons/amxmodx/configs/amxx.cfg.

Скачать

Icon of CSstatsX SQL csstatsx-sql.zip (63.4 KiB)

Добавить комментарий