Запись статистики csstats в БД MySQL
- Выполните импорт файла csstats.sql в вашу БД.
- Укажите данные для подключения к БД в исходнике плагина в следующих полях:
#define MYSQL_HOST "localhost" // хост
#define MYSQL_USER "root" // пользователь
#define MYSQL_PASS "" // пароль
#define MYSQL_DB "amxx" // база данных
- Скомпилируйте плагин.
- Чтобы плагины статистики начали использовать данные с MySQL выполните инструкции ниже.
- В папке вашего компилятора откройте файл include/csx.inc и замените следущий код:
#pragma reqclass xstats
#if !defined AMXMODX_NOAUTOLOAD
#pragma defclasslib xstats csx
#endif
На:
#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.
Выполните следующие инструкции для ВСЕХ ваших плагинов статистики.
- Откройте исходник плагина.
- Добавьте следующий код в начало файла:
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_mysql_update "2" - как обновлять статистику игрока в БД
- -2 - при смерти и дисконнекте
- -1 - в конце раунда и дисконнекте
- 0 - при дисконнекте
- значение больше 0 - через указанное кол-во секунд и дисконнекте
- csstats_mysql_forwards "0" - включить собственные форварды для client_death, client_damage
- 0 - выключить
- 1 - включить, небоходимо, если csstats_sql используется в качестве замены модуля
- Ранги игроков обновляются в конце каждого раунда и при дисконнекте.
- Из-за особенности хранения данных в MySQL, плагин вернет наименьший ранг в случае если статистика 2х и более игроков совпадает.
- В get_stats используются прямые запросы, т.е. возможен лаг при вызове /top15.