- Регистрация
- 8 Июн 2017
- Сообщения
- 1.595
- Симпатии
- 571
- Пол
- Мужской
Автор: serfreeman1337
Версия: 0.74
Источник: CSstatsX SQL
GitHub - serfreeman1337/csstatsx-sql: Запись статистики csstats в БД MySQL
Описание
Запись игровой статистики Counter-Strike в БД MySQL или SQLite. Плагин может выступать в качестве полной замены модуля CSX. После установки он начнет самостоятельность считать статистику игроков и записывать её в базу данных, но чтобы все ваши плагины статистик начали использовать его данные придется немного их изменить, об этом ниже. Может работать с локальной базой данных SQLite. Из новых функций есть подсчет времени нахождения игрока на сервере и расчет скилла по формуле ELO, запись статистики по используемому оружию и истори игр игроков (на подобии HLstatsX:CE). С версии 0.7.2 была добавлена статистика по помощи в убийствах (ассисты).
Требования
Выполните следующие инструкции для ВСЕХ ваших плагинов статистики.
Квары
Информация
Дополнения
CSXSQL: Onlinetime Awards - альтернатива TOPx By GameTime для CSstatsX SQL. Плагин для выдачи флагов доступа ТОП игрокам по сыгранному времени. Настраивается в исходнике:
Версия: 0.74
Источник: CSstatsX SQL
GitHub - serfreeman1337/csstatsx-sql: Запись статистики csstats в БД MySQL
Описание
Запись игровой статистики Counter-Strike в БД MySQL или SQLite. Плагин может выступать в качестве полной замены модуля CSX. После установки он начнет самостоятельность считать статистику игроков и записывать её в базу данных, но чтобы все ваши плагины статистик начали использовать его данные придется немного их изменить, об этом ниже. Может работать с локальной базой данных SQLite. Из новых функций есть подсчет времени нахождения игрока на сервере и расчет скилла по формуле ELO, запись статистики по используемому оружию и истори игр игроков (на подобии HLstatsX:CE). С версии 0.7.2 была добавлена статистика по помощи в убийствах (ассисты).
Требования
- AMXX 1.8.2 или выше.
- Скомпилируйте плагин.
- Для поддержки 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 файле).
- ВНИМАНИЕ! Опыт, количество подключений и побед конвертированы не будут!
- Выключите сервер.
- Файл dummy_csx_amxx из архива переименуйте в csx_amxx.
- Замените этим файлом ваш модуль в папке addons/amxmodx/modules.
- Задайте квар csstats_sql_forwards в 1.
- Пропишите csstatsx_sql.amxx ВЫШЕ всех остальных ваших плагинов статистики.
Выполните следующие инструкции для ВСЕХ ваших плагинов статистики.
- Откройте исходник плагина.
- Добавьте следующий код в начало файла:
C++:
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)
native get_stats_sql_thread(id,position,top,callback[]);
- Замените все строчки get_statsnum на get_statsnum_sql.
- Замените все строчки get_user_stats на get_user_stats_sql.
- Замените все строчки get_stats на get_stats_sql.
- Скомпилируйте плагин.
Прописывать в
/addons/amxmodx/configs/plugins/plugin-csstatsx_sql.cfg
C++:
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_rank "1" // как вести учет игроков: -1 - не учитывать, 0 - по нику, 1 - по steamid, 2 - по ip
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" // формула расчета скилла 0 - The ELO Method (http://fastcup.net/rating.html)
csstats_sql_weapons "0" // запись статистики по используемому оружию 0 - запись выключена 1 - включить запись.
// В БД будет создана новая таблица csstats_weapons. ВНИМАНИЕ: квар csstats_sql_create_db должен быть установлен в 1
csstats_sql_maps "0" // запись истории игр игрока 0 - запись выключена 1 - запись включена.
// ВНИМАНИЕ: нужно выполнить импорт файла csstats_maps.sql в БД. Смотрите инструкцию по установке.[/INDENT]
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.
- Из-за особенности хранения данных в БД, плагин вернет наименьший ранг в случае если статистика 2х и более игроков совпадает.
CSXSQL: Onlinetime Awards - альтернатива TOPx By GameTime для CSstatsX SQL. Плагин для выдачи флагов доступа ТОП игрокам по сыгранному времени. Настраивается в исходнике:
C++:
#define TOP 3 // Скольким игрокам из топа выдавать флаги?
#define IGNORE_FLAGS (ADMIN_MENU|ADMIN_LEVEL_H) // Не выдавать плюшки игрокам с этими флагами
#define GIVE_FLAGS ADMIN_LEVEL_H // Выдаваемые флаги
FAQ
Вопрос: Почему долго открывается окно /top15 ?
Вопрос: Выходит ошибка #2002 Can't connect to local MySQL server through socket '/tmp/mysql.sock'. Что делать?
Вопрос: Почему долго открывается окно /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 командами:
C++:sudo find / | grep mysqld.sock sudo find / | grep mysql.sock
- делаем симлинк:
C++:ln -s /run/mysqld/mysqld.sock /tmp/mysql.sock
- Ищем свой mysql.sock командами:
- Проверить правильность данных для доступа к MySQL. Прописать квары плагина в файле addons/amxmodx/configs/amxx.cfg.
- Для отображения топ игроков используются прямые запросы, которые могут вызвать лаги запросе таблицы с игроками. С версии 0.4 я добавил возможность осуществлять потоковые запросы, но чтобы ваши плагины начали использовать эту возможность потребуются знания в скриптинге под AMXX. Можете отослать мне исходники ваших плагинов для добавления этой поддержки. Ну или воспользоваться одним из плагинов ниже. Готовые плагины с поддержкой потоковых запросов
Вложения
-
22,2 KB Просмотры: 661
-
76,1 KB Просмотры: 679
Последнее редактирование модератором: