1. Cloud Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    252
    Симпатии:
    61
    Пол:
    Мужской
    CSstatsX SQL
    Автор: serfreeman1337
    Источник: github.com

    Версия:
    0.6

    Описание:
    Плагин служит для записи статистики csstats в БД MySQL. Является бесплатной, легкой альтернативой плагина Скальпеля.
    В настоящий момент находится в стадии разработки и нуждается в тестировании.
    Без каких либо дополнительных действий будет просто записывать статистику в БД. Чтобы ваши плагины статистик начали использовать данные с БД потребуется их немного изменить и перекомпилировать, об этом читайте ниже.

    Требования:
    • AMXX 1.8.2 hg26 или выше.
    • AMXX 1.8.3 git3799 или выше для поддержки UTF8 ников.
    Установка:
    • Скомпилируйте плагин.
      • Для поддержки 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.
    • Для обновления с CsStats MySQL выполните импорт csstats_mysql_convert.sql.
      • ВНИМАНИЕ! Опыт, количество подключений и побед конвертированы не будут!

    Чтобы плагины статистики начали использовать данные с SQL выполните инструкции ниже.

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

    • Откройте исходник плагина.
    • Добавьте следующий код в начало файла:
    native get_statsnum_sql()
    native get_user_stats_sql(index, stats[8], bodyhits[8])
    native get_stats_sql(index, stats[8], bodyhits[8], name[], len, authid[] = "", authidlen = 0)

    • Замените все строчки get_statsnum на get_statsnum_sql.
    • Замените все строчки get_user_stats на get_user_stats_sql.
    • Замените все строчки get_stats на get_stats_sql.
    • Скомпилируйте плагин.
    Настройка:
    Квары:
    • 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 "-2" - как обновлять статистику игрока в БД
      • -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" - формула расчета скилла
    Дополнительная информация:
    • Из-за особенности хранения данных в БД, плагин вернет наименьший ранг в случае если статистика 2х и более игроков совпадает.
    Лаги при отображении топа игроков
    Готовые плагины с поддержкой потоковых запросов (версии с окончанием _n - вариант без замены модуля csx):

    -0.6[04.05.2016]
    • Улучшена работа с SQL запросами на сохранение статистики.
    • Квар csstats_sql_update по умолчанию задан в 0.
    Теперь при смене карты или выключении сервера отправляется всего 1-4 запроса на сохранение статистики, вместо 32ух.
    -0.5 [30.04.2016]
    • Новый вариант с заменой модуля CSX
    • Исправлена ошибка при ранжировании по онлайн времени
    • Добавлен SQL файл для конвертирования таблицы CsStats MySQL.
    -0.5 [22.02.2016]
    • Учет статистики переделан на использование игровых событий.
    • Исправлена повторная отправка запроса на создание записи.
    • Уменьшено количество массивов. Возможный фикс "memory access error".
    • Использован форвард client_disconnected для AMXX183.
    • Исправлен сброс статистики astats,vstats в в конце раунда.
    • Исправлен сброс статистики astats,vstats при отключении.
    • Исправлено отсутствие статистики для команды /me.
    • Добавлен учет статистики действий с бомбой.
    • Добавлена запись онлайн времени игрока на сервере.
    • В таблице добавлен индекс для steamid,name,ip.
    • Форвард grenade_throw.
    • Нативы custom_weapon_*.
    • log_error в хандлерах нативов.
    • Название оружия теперь берется из массива.
    • Статистика попаданий теперь храниться в отдельных колонках.
    • Добавлены квары для настройки подключения к MySQL.
    • Возвращено стандартное название оружий.
    • Добавлен расчет скилла.
    • Добавлены новые нативы get_user_skill и get_skill.
    • Добавлена поддержка SQLite.
    • Добавлена функция автоматического создания таблицы в БД.
    -0.4.1 [09.01.2016]
    • Оптимизирован запрос на отображение топа.
    - 0.4 [08.01.2016]
    • Добавлена поддержка потоковых запросов для get_stats.
    • Новый натив get_stats_sql_thread для осуществления потоковых запросов get_stats.
    • Добавлено игнорирование записи статистики для HLTV.
    • Полная поддержка UTF8. Требуется AMXX 1.8.3 git3799 или выше.
    • Добавлен квар csstats_rankbots для переключения записи статистики ботов.
    • Добавлен квар csstats_mysql_rankformula для переключения формулы расчета позиции игроков.
    • Исправлена работа get_stats на AMXX 1.8.2.
    • Исправлено обновление steamid и ip игрока.
    • Исправлена установка дата последнего посещения игрока.
    - 0.3 Beta [21.12.2015]
    • Плагин теперь считает статистику сам
    • Новый дамп таблицы
    - 0.2 Beta [05.12.2015]
    • Добавлено кеширование для get_stats_sql.
    • Добавлена поддержка смены ника игроком.
    • Добавлен квар csstats_mysql_update.
    - 0.1 Beta [11.11.2015]
    • Релиз

    Отдельное спасибо LeninChan^^ и 9art за тестирование и предложения.
     

    Вложения:

    Последнее редактирование модератором: 04.05.16
    Le$hiy, ceMeHbl4, Green и 14 другим нравится это.
  2. Эдуард S.T.A.L.K.E.R.

    Регистрация:
    01.03.15
    Сообщения:
    353
    Симпатии:
    61
    Пол:
    Мужской
    ребят, есть проблеммы с плагином. тупо не заносится в бд ничего в чем дело. и сохранение идет по стиму или по нику
     
  3. Cloud Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    252
    Симпатии:
    61
    Пол:
    Мужской
    Эдуард, установил на домашний тестовый сервер - статистика записывается. Сохранение по Steamid.
    В исходнике данные от Бд правильно ввел? Если Бд не локальная, то удаленный доступ включил?
     
  4. kenIx Пользователь

    Регистрация:
    08.12.15
    Сообщения:
    8
    Симпатии:
    1
    Пол:
    Мужской
    Так ну допустим поставил я этот, статистика в БД пишется, но в тоже время она и в csstats.dat пишется.
    Как отключить эту запись в csstats.dat? и как понять с БД или с dat файла сейчас отображается статистика в топ 15 ?
    юзаю стандартные stats.amxx и stats_cfg.amxx

    ПОМОГИТЕ ПОЖАЛУЙСТА.
     
  5. Cloud Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    252
    Симпатии:
    61
    Пол:
    Мужской
    kenIx, с выводом и отображением статистики я сам пока не допер, это скорее всего будет реализовано в дальнейшем.
    Не стоит ставить на живые сервера я думаю, чисто ради тестов, пока это бета версия.
     
  6. Cloud Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    252
    Симпатии:
    61
    Пол:
    Мужской
    Плагин обновлен.
    Теперь можно использовать с плагинами, выводящими статистику (statsx и им подобные), а также отказаться от модуля CSX.
    0.3 Beta
    • Плагин теперь считает статистику сам
    • Новый дамп таблицы
     
    ThePhoenix нравится это.
  7. Dmitry VIP user

    Регистрация:
    24.07.15
    Сообщения:
    228
    Симпатии:
    36
    Пол:
    Мужской
    ICQ:
    468603882
    Реально чтоли CSX теперь не нужен?
     
  8. LeninChan^^ Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.085
    Симпатии:
    367
    Пол:
    Мужской
    Telegram:
    LeninChan
    Dmitry, да, плагин самостоятельно все считает
     
  9. Dmitry VIP user

    Регистрация:
    24.07.15
    Сообщения:
    228
    Симпатии:
    36
    Пол:
    Мужской
    ICQ:
    468603882
    Ясно. А CSX можно просто тупо вырубить тогда? Или надо всё как в описании от разработчика?
    Вариант с заменой модуля CSX
    • В папке вашего компилятора откройте файл include/csx.inc и замените следующий код:
      #pragma reqclass xstats #if !defined AMXMODX_NOAUTOLOAD #pragma defclasslib xstats csx #endif
      1
      2
      3
      4
      #pragma reqclass xstats
      #if !defined AMXMODX_NOAUTOLOAD
      #pragma defclasslib xstats csx
      #endif

      На:
      #pragma reqlib xstats
      1
      #pragma reqlib xstats
    • Перекомпилируйте ВСЕ ваши плагины статистики (statsx, miscstats и пр.) ЭТИМ компилятором.
    • Задайте квар csstats_mysql_forwards в 1.
    • Пропишите csstatsx_sql.amxx ВЫШЕ всех остальных ваших плагинов статистики.
    • Сделайте полный рестарт сервера (через quit).
    • Проверьте что модуль csx не загрузился командой amxx modules.
    • В случае если модуль всё-же подгрузился, выключите сервер и переименуйте csx_amxx_i386.so в csx_amxx_i386.so.bak если сервер на Linux.
     
  10. Cloud Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    252
    Симпатии:
    61
    Пол:
    Мужской
    Dmitry, строго по пунктам.
    P.s: стену текста под спойлер засунь...
     
  11. kenIx Пользователь

    Регистрация:
    08.12.15
    Сообщения:
    8
    Симпатии:
    1
    Пол:
    Мужской
    Какие пункты статистики теперь считает плагин? всё также только опыт?
     
  12. LeninChan^^ Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.085
    Симпатии:
    367
    Пол:
    Мужской
    Telegram:
    LeninChan
    kenIx, фраги смерти и тп
     
  13. kenIx Пользователь

    Регистрация:
    08.12.15
    Сообщения:
    8
    Симпатии:
    1
    Пол:
    Мужской
    Ну а стату берёт теперь только из БД, или по старому - из csstats.dat ?
     
  14. Cloud Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    252
    Симпатии:
    61
    Пол:
    Мужской
    [​IMG]
    Он их и в предыдущей версии считал вообще-то.
    "Вариант с заменой модуля CSX" и "Вариант без замены модуля CSX" как бы намекает. 1 пост не осилил?)
     
  15. BaJIepbI4 Пользователь

    Регистрация:
    12.05.15
    Сообщения:
    1.069
    Симпатии:
    210
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    Версия 0.4
    Добавлена поддержка потоковых запросов для get_stats.
    Новый натив get_stats_sql_thread для осуществления потоковых запросов get_stats.
    Добавлено игнорирование записи статистики для HLTV.
    Полная поддержка UTF8. Требуется AMXX 1.8.3 git3799 или выше.
    Добавлен квар csstats_rankbots для переключения записи статистики ботов.
    Добавлен квар csstats_mysql_rankformula для переключения формулы расчета позиции игроков.
    Исправлена работа get_stats на AMXX 1.8.2.
    Исправлено обновление steamid и ip игрока.
    Исправлена установка дата последнего посещения игрока.
     
    ex3m777, ThePhoenix и LeninChan^^ нравится это.
  16. r1nk0 Пользователь

    Регистрация:
    09.03.15
    Сообщения:
    234
    Симпатии:
    22
    Пол:
    Мужской
    Неплохо бы запилить остановку ведения статистики как в стандартном виде csstats_pause 1 и ее запуск csstats_pause 0
     
  17. k@m1k4[D]z3 Пользователь

    Регистрация:
    24.07.15
    Сообщения:
    319
    Симпатии:
    35
    Пол:
    Мужской
    а где версия 0.4 немогу найти что-то? и кстати вопрос,это лучше чем от скальпеля ксстатс?
     
  18. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.575
    Симпатии:
    4.149
    Пол:
    Мужской
    kamik1986, скальпель говнокодер.
    делай выводы
     
    k@m1k4[D]z3 нравится это.
  19. k@m1k4[D]z3 Пользователь

    Регистрация:
    24.07.15
    Сообщения:
    319
    Симпатии:
    35
    Пол:
    Мужской
    согласен =)
     
  20. BaJIepbI4 Пользователь

    Регистрация:
    12.05.15
    Сообщения:
    1.069
    Симпатии:
    210
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    Версия 0.4.1
    Оптимизирован запрос на отображение топа.