/csstatsx-sql

Запись статистики csstats в БД MySQL

Primary LanguageSourcePawn

CSstatsX SQL

Запись статистики csstats в БД MySQL

Установка

  • Выполните импорт файла csstats.sql в вашу БД.
  • Укажите данные для подключения к БД в исходнике плагина в следующих полях:
#define MYSQL_HOST	"localhost"	// хост
#define MYSQL_USER	"root" // пользователь
#define MYSQL_PASS	"" // пароль
#define MYSQL_DB	"amxx" // база данных
  • Скомпилируйте плагин.
  • Чтобы плагины статистики начали использовать данные с MySQL выполните инструкции ниже.

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

  • В папке вашего компилятора откройте файл 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.

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

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

  • Откройте исходник плагина.
  • Добавьте следующий код в начало файла:
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.