Настройка выделенного сервера Source под Linux, часть 4
- Сервер статистики HLstatsX
- Установка
- Настройка mysql
- Настройка HLstatsX демона
- Настройка веб-сервера
- Трансляция логов
- Патч
- Первый запуск
- Регистрация серверов
- Начальная настройка
- Ошибки
- Тепловые карты
- Автоматический запуск
- Тюнинг
- Шрифты
- Превью карты
- Раздельный учёт статистики
- Отключение статистики
- Ограничение доступа
- Новое оружие
- Восстановление пароля
Было бы несправдливым не осветить мельком сервер статистики HLstatsX Community Edition (HLstatsX:CE). Проект сейчас развивается не очень активно, последняя стабильная версия — 1.6.19 от 2014 года. Можно установить её, а можно текущую версию, на момент написания, отличающуюся непринципиальными правками. Всё равно придётся допиливать.
Нам ещё понадобится sql сервер (mysql/mariadb), веб сервер (nginx), perl и php с некоторыми модулями. Так же на наших игровых серверах уже должны быть установлены MetaMod и SourceMod.
Установка
Скачиваем текущую версию:
HLstatsX состоит из трёх логических частей — транслирующего игровые события SourceMod плагина, получающего их демона, и отображающей веб-части.
Статистика будет собираться следующим образом:
- Игровые сервера со специальными SourceMod плагинами транслирует по udp расширенные логи игры на 192.0.2.0:27500 (сервер No 1) и 192.0.2.0:27501 (сервер No 2)
- Демон HLstatsX получает логи, слушая на указанных адресах и пишет информацию в общую sql базу.
- Веб-интерфейс HLstatsX на её основе рисует красивую (или не очень) статистику.
Переходим в каталог
/stat. Там мы видим подкаталоги
amxmodx — плагины для AMX Mod X
heatmaps — скрипты для построения тепловых карт
scripts — скрипты демона
sourcemod — плагины для SourceMod
sql — скрипт для создания sql базы данных
web — веб-интерфейс.
В подкаталогах amxmodx и sourcemod находятся плагины для AMX Mod X и SourceMod соответственно. Так как AMX Mod X мы не используем, то содержимое amxmodx нам не актуально, в отличие от sourcemod, в котором находится плагины статистики в исходниках (sourcemod/scripting) и в скомпилированном виде (sourcemod/plugins). Теоретически могут быть проблемы, когда версия SourceMod, установленная у нас сильно отличается от той, под которой скомпилирован плагин, поэтому мы скопируем исходники плагинов hlstatsx.sp и superlogs-tf2.sp в каталог scripting первого сервера и перекомпилируем их:
Во избежание ошибки при компиляции, поправим файл:
Компилируем и раскладываем по каталогам:
Если игровые сервера уже запущены, то в их консолях вводим (команды выделены угловыми скобками):
Хорошо. В принципе игроки уже могут вызвать HLstatsX плагин, введя в окне чата «hlx_menu». Правда пока без особого эффекта. Настройки этих плагинов (да и не только этих) осуществляются через их консольные переменные — ConVars, как правило путём прописывания в файлах конфигурации сервера, либо конкретной карты. Их перечень обычно есть в документации, но при желании можно посмотреть самим:
Обнаруживаем, что superlogs_headshots по умолчанию выключен. Если нужна регистрация хедшотов, то добавляем «superlogs_headshots 1» в любой файл конфигурации, а для уже запущенного сервера выполняем эту же команду в консоли.
Настройка mysql
Сервер mysql (mariadb) у нас уже установлен, настроен и запущен, поэтому сразу переходим к созданию базы данных для сервера статистики. Переходим в
/stat/sql (где должен лежать install.sql), вспоминаем пароль администратора для mysql, запускаем клиента:
Создаём базу данных и пользователя с паролем:
База данных создана, теперь удаляем
/.mysql_history, с нескромно зафиксированным паролем от hlx_user, запускаем скрипт, создающий необходимые таблицы. При запросе вводим пароль от нашей базы данных — ‘hlx_password’.
Всё, база данных создана
В процессе настройки, для серфинга по sql таблицам, анализа проблем и удаления результатов неудачных экспериментов может пригодиться Adminer — компактная, но мощная web-панель управления, состоящая всего лишь из одного php скрипта. Если у вас не установлен phpMyAdmin или что иное, то этот Adminer — отличный вариант.
Настройка HLstatsX демона
/stat/scripts находятся основные скрипты демона сервера статистики. Редактируем файл настроек
/stat/scripts/hlstats.conf, прописываем параметры соединения с sql сервером:
В секции UDP Socket Settings мы ничего не трогаем. Если бы у нас был один игровой сервер, то там прописали бы адрес и порт, указанный в logaddress_add в server.cfg. Но так как мы настраиваем два сервера, то параметр BindIP оставляем пустым, а номера портов будем указывать в командной строке при запуске демона.
/stat/scripts/run_hlstats исправляем каталог для логов:
Устанавливаем базу данных GeoIP. Она пригодится как для вывода на экран во время игры сообщений вида «Вошёл игрок такой-то из страны такой-то», так и для отображения статистики на сайте. Запускаем программу cal , проверяем, какой первый день недели в её выдаче. Локаль у нас везде en_US, поэтому cal показывает воскресенье. Переходим в каталог
/stat/scripts/GeoLiteCity и редактируем файл GeoLite_Import.sh:
Делаем скрипт GeoLite_Import.sh исполняемым и запускаем его. База GeoIP скачается и импортируется в sql базу. При успешном импорте выдаётся что-то вида:
Как вариант, можно GeoIP данные хранить в отдельном файле (для этого используется скрипт install_binary.sh — но тогда необходимо установить (если его нет) perl модуль Geo::IP::PurePerl — perl -MCPAN -e ‘install Geo::IP::PurePerl . Но мы будем хранить GeoIP данные внутри нашей sql базы. Не такая уж высокая нагрузка на неё ожидается.
Настройка веб-сервера
Сервер статистики у нас будет по адресу http://stat.example.org/. Как и в случае с настройкой Fast Download, создадим отдельный каталог /var/www/stat.example.org. Логи access_log и error.log тоже вынесем в отдельные файлы и предоставим возможность пользователю game читать их.
Сервер статистики будет обслуживать оба наших игровых сервера. Из-под root создаём каталоги, переносим каталог
/stat/web, устанавливаем владельца и права. Создаём логи. Можно заодно сделать символьные ссылки для удобства.
В настоящее время HLstatsX развивается мягко говоря не то чтоб активно, поэтому частых обновлений не прогнозируется, и нет особого смысла давать пользователю nginx полный доступ к его файлам для работы встроенной функции автообновления.
С целью уменьшения нагрузки сервер статистики создаёт небольшой кеш в папке hlstatsimg/progress — там хранятся графики загрузки игровых серверов и графики Player Trend (видны на страницах игроков), поэтому надо веб-серверу дать возможность записи в этот каталог:
Переходим в /var/www/stat.example.org/htdocs, редактируем config.php, предварительно сделав dos2unix config.php :
Другие параметры пока не трогаем.
Пока мы ещё root, создаём файл конфигурации /etc/nginx/conf.d/stat.example.org.conf нашего веб-сервера для этого поддомена.
Выше мы дали пользователю game доступ на чтение логов веб-сервера, но лишь до первой их ротации. Исправляем и это. На основе /etc/logrotate.d/nginx создаём файл srcds-nginx, прописываем путь к логам и исправляем маску прав доступа с 640 на 644 в строчке create 640 nginx adm :
Здесь мы в путях для ротации указали заодно каталоги с логами от серверов с записями и с Fast Download.
Проверяем корректность конфигурации и перезапускаем веб-сервер.
Далее продолжаем как пользователь game.
Трансляция логов
Трансляцию логов мы должны были включить ещё на этапе настройки, в файлах конфигурации наших серверов. На всякий случай проверяем наличие в них параметров «log on» и «logaddress_add «.
Перед запуском скриптов нам придётся их немного поправить. Дело в том, что с 2014 года стала использоваться новая версия записи идентификатора Steam. Предыдущая, вторая, имела вид STEAM_0:1:12345678, а нынешняя третья — [U:1:12345678]. Но текущая версия HLstatsX (1.6.19) новую версию идентификатора не понимает, что добавляет кривизну в статистику. Для недопущения этого мы внесём несколько изменений в скрипты, которые будут новую версию steamid3 конвертировать в старую, steamid2. Патч взят с forums.alliedmods.net. Сохраняем нижеследующее в файл и запускаем.
Ну либо ручками по статье с форума.
Первый запуск
Итак, у нас должно быть всё готово:
- nginx запущен (и, если исправляли файлы конфигурации, то перезапущен)
- mysql запущен (база данных и таблицы созданы)
- демон HLstatsX настроен (
/stat/scripts/hlstats.conf), но не запущен
Осталось настроить запуск демона. Возвращаемся в
/stat. В принципе, там можно удалить ненужные уже каталоги amxmodx, sourcemod, sql, web. Оставим только heatmaps и scripts. В каталоге
/stat/scripts файлы *.pl и run_* должны быть с атрибутом «исполняемый»:
Запускаем оба игровых сервера (если не запущены ранее).
/stat/scripts/run_hlstats — это демон, получающий статистику от игровых серверов и записывающий её в sql базу. Запуск его без параметров показывает допустимые параметры запуска — start, stop, restart и другие. Для нашей конфигурации параметры его запуска таковы: run_hlstats start — именно поэтому в настройках наших игровых серверов, в параметрах logaddress_add номера портов должны идти последовательно — 27500 для первого сервера и 27501 для второго. Стартуем.
На экране должно появиться что-то типа:
/log/hlstats образовались два файла с логами (для каждого демона свой). Смотрим первый лог:
Ругань про GeoIP — это нормально, позже мы укажем серверу статистики что информация хранится в базе данных, а не во внешнем файле.
Теперь необходимо обеспечить какую-нибудь движуху на наших игровых серверах — чтобы что-то писалось в логи. Проще всего самому присоединиться к серверу. Если при этом в логах всё равно раз в две минуты начинает появляться
то или игровой сервер не запущен (или запущен но не тот или не так) или что-то с настройками — в первую очередь ip:port (если вы в настройках сервера, в logaddress_add указали ip 127.0.0.1, то попробуйте исправить его на внешний), во вторую очередь — включены ли у нас логи вообще, если да, то куда они транслируются. Ну и нельзя исключать влияние злых сил — того же файервола. При корректных настройках, запуск netstat -lpn | grep perl должен вывести что-то вида:
Если же после подключения к серверу, в логе побежали строчки:
То это хорошо. HLstatsX получает логи от сервера, но так как мы ещё не настроили сам сервер статистики — в частности, не зарегистрировали там наш игровой сервер, то он его не признаёт.
В случае возникновения ошибок вида «Can’t setup UDP socket on port 27500: Address already in use» для определения виновника используем утилиту netstat -lpn
Итак, с самым интересным закончили, переходим теперь к настройке сервера статистики.
Регистрация серверов
Открываем в браузере наш сервер — http://stat.example.org/
На экране предупреждение о проверке обновления, кликаем по ссылке HLX:CE Database Updater, видим уведомление о том, что «Your database is already up to date (78)», удаляем папку updater:
Снова переходим на http://stat.example.org/, видим гуглокарту и в самом низу страницы кликаем по ссылке «[Admin]», вводим логин и пароль по умолчанию, admin: 123456. Первым делом переходим General Settings -> Admin Users. Меняем пароль администратора и, по желанию, его логин. [Apply]. Затем начинаем не торопясь настраивать.
Регистрируем наши сервера. Переходим в Game Settings -> Team Fortress 2 (tf) -> Add Server, вводим данные для первого сервера:
Server IP Address:
IP нашего сервера — 192.0.2.0
Server Port:
порт сервера — 27015 — параметр ‘-port’ из командной строки srcds_run
Server Name:
можно оставить пустым, сам определит
Rcon Password:
укажем тот же, что в rcon_password в настройках первого сервера
Public Address:
оставляем пустым — он совпадает с Server IP Address
Admin Mod:
у нас установлен только SourceMod, его и выбираем.
Далее [Add Server], [Apply]. Перезапускаем демона — переходим по предлагаемой ссылке, уточняем номер порта — для первого сервера 27500, для второго 27501, нажимаем ‘Execute’.
Если всё сделано правильно, то обновится лог первого демона
Всё, первый сервер признан родным, rcon пароль верный, соединение установлено.
Аналогично пропишем второй сервер.
Server IP Address:
192.0.2.0
Server Port:
27016 (!)
Server Name:
пусто
Rcon Password:
укажем тот же, что в rcon_password в настройках второго сервера
Public Address:
пусто
Admin Mod:
SourceMod
Далее [Add Server], проверяем детали.
Небольшой момент, который можем применить ко второму серверу. В период опытной эксплуатации, для проверки работы сервера статистики, его дальнейшей настройки и поиска возможных проблем, желательно чтобы велось накопление данных. Так как вряд ли стоит рассчитывать, что на наш свежий сервер как мухи слетятся 24 игрока, которые тут же начнут нам генерировать статистику, то придётся обойтись подручным материалом — ботами. Как населить карту молодыми, энергичными ботами рассказано в разделе «Боты», а пока при регистрации второго сервера, в окне перед окончательным «[Apply]» мы ищем параметр «IgnoreBots» и меняем его значение на «0». Тогда для второго игрового сервера боты будут учитываться как реальные игроки и по ним будет вестись статистика (ни о чём, но лишь бы была). Впоследствии, перед запуском в продуктив, мы всю статистику второго сервера обнулим и начнём жизнь с чистого листа. А пока будем считать, что на втором сервере у нас карта koth_sawmill, на которой бегают боты.
Если же нравственный стержень внутри не позволяет опускаться до такого, то можно всё на этой же странице регистрации сервера изменить другой параметр, «MinPlayers», установив его в «1». По умолчанию, рейтинг у игроков начинает считаться, когда на карте не менее четырёх человек. Сделано это для уменьшения накруток на пустых картах, ну а сейчас мы снижаем порог до одного — себя.
Потом, когда потребуется вернуть всё обратно, в это окно мы можем попасть через раздел Game Settings — Team Fortress 2 (tf) — Edit Servers — (выбираем нужный сервер) — CONFIGURE — >> Server Details, возвращаем как было. Затем [Apply] и не забыть перезапустить демона.
Теперь перезапустим демон HLstatsX для применения настроек по регистрации второго сервера. Можно через веб-интерфейс, не забыв указать другой порт — 27501, а можно ручками:
В браузере обновляем страницу http://stat.example.org/, видим на главной странице оба наши сервера. Радуемся.
Входим в игру, присоединяемся к нашему серверу. В окне чата («y») вводим «hlx_menu». Появляется меню. Можно осваивать 🙂
Начальная настройка
Придадим нашему серверу минимально товарный вид. В интерфейсе администратора переходим в раздел General Settings -> HLstatsX:CE Settings:
Site Name
Имя нашего сервера статистики — HLstatsX at example.org
Site URL
URL сервера статистики, который будет использоваться при генерации подписей для форумов — http://stat.example.org/
Contact URL
Контактный адрес, e-mail либо url — game@example.org
Use modrewrite to make forum signature image.
При установке в Disabled, игроку для ссылки на свою плашку придётся использовать код вида http://stat.example.org/sig.php?player_id=1&background=random. Но можно сделать этот url более красивым, установив данный параметр в Enabled и добавив строчку rewrite sig-(.*)-(.*).png$ /sig.php?player_id=$1&background=$2 break; в файл конфигурации nginx для нашего сервера (что мы и сделали ранее при настройке веб-части). Тогда будут работать url вида http://stat.example.org/sig-1-random.png.
Choose whether to use GeoCityLite data.
Указываем местоположение GeoIP данных. Так как ранее мы определились что будем хранить их внутри нашей sql базы, то выбираем вариант «GeoIP lookup via database». Требует рестарта демонов run_hlstats.
Map Download URL.
Указывает на путь, по которому можно скачать используемые карты. Если настроен Fast Download, то прописываем что-то вида http://fastdl.example.org/maps/%MAP%.bsp.bz2. При корректной установке параметра, зайдя на сервер статистики в раздел Maps -> , на открывшейся странице справа появится неприметная ссылка «Download this map. «, причём только для тех карт, которые наличествуют по этому url (сервер предварительно проверяет наличие карты). Но мы этот функционал использовать не будем. Потому что не сможем. При настройке Fast Download мы как раз-таки приложили усилия, чтобы никто не мог скачать карты «напрямую», без корректного referer.
Всё? Ну тогда [Apply], и, так как меняли местоположение GeoIP данных, то перезапускаем обоих демонов.
После окончательной настройки HLstatsX, когда все косяки настроек будут выявлены и исправлены, для уменьшения объёмов логов в
/stat/scripts/logs, в файле конфигурации hlstats.conf параметр «DebugLevel» устанавливаем в «0».
Ошибки
По окончании первоначальной настройки необходимо почитать лог ошибок веб-сервера —
/log/www-stat/error.log. Типовые ошибки:
Необходимо установить библиотеку php-gd и перезапустить php, обслуживающий веб-сервер.
Аналогично, не хватает freetype.
Забыли веб-серверу дать возможность записи в hlstatsimg/progress.
Проверяем наличие каталога /var/lib/php/session, он задаётся переменной «php_value[session.save_path]» в /etc/php-fpm.d/www.conf — при использовании php-fpm, конечно, и при отсутствии каталога создаём, из-под root:
Тепловые карты
Теперь настроим генерацию тепловых карт. Со страницы загрузки https://bitbucket.org/Maverick_of_UC/hlstatsx-community-edition/downloads из ветки dev / HLstatsX Community Edition / extras / HeatmapPack / скачиваем heatmap-src_3.zip
/stat/heatmaps/src появится каталог tf с кучей .jpg файлов — шаблонов для тепловых карт. Из 65 шаблонов, 32 соответствуют стандартным картам Team Fortress 2 (из почти сотни комплектных), а 33 — для пользовательских карт. Не идеал, но лучше чем ничего. В конце концов, ничто не мешает сделать недостающие самим.
/stat/heatmaps, редактируем файл config.inc.php. В переменных DB_ прописываем параметры соединения с базой данных, в HLXCE_WEB указываем корневой каталог нашего веб-сервера статистики — в котором находится каталог hlstatsimg. При желании, в OUTPUT_SIZE можно установить размер генерируемой карты в «large». Переменную DB_PREFIX не трогаем! Итак, как-то так:
Создаём каталог cache/tf — для хранения кеша
На всякий случай проверяем, что у каталога /var/www/stat.example.org/htdocs/hlstatsimg/games/tf владелец game (либо он может туда писать).
В файле heatmap.class.php меняем формат вывода даты на более привычный:
Как мы условились выше, на втором сервере для тестирования статистики у нас была установлена карта koth_sawmill с ботами. Наш скрипт сейчас для неё создал тепловую карту (смотрим пятую строчку):
А в каталоге /var/www/stat.example.org/htdocs/hlstatsimg/games/tf/heatmaps должны появиться два файла — koth_sawmill-kill.jpg и koth_sawmill-kill-thumb.jpg.
Первоначальная генерация тепловой карты, как правило, достаточно продолжительна, но скрипт кеширует информацию и при последующих запусках всё работает гораздо быстрее. Теперь на сервере статистики переходим в раздел Maps, в строке с картой koth_sawmill, в самом правом столбце таблицы появилась иконка, при клике на которую открывается тепловая карта с номинацией TOTAL KILLS:
Данные для генерации карты берутся за последние тридцать дней. Этот период задаётся строкой $timescope = (time() — 60*60*24*$mapinfo[$code][$map][‘days’]); в heatmap.class.php, а, в свою очередь, столбец «days» в sql таблице hlstats_Heatmap_Config, для всех карт имеет значение «30».
Если захочется поэкспериментировать со своими, самостоятельно сделанными шаблонами для тепловых карт, то следует иметь в виду, что недостаточно просто положить .jpg в каталог к остальным шаблонам. Необходимо ещё прописать параметры карты в таблице hlstats_Heatmap_Config нашей sql базы.
Автоматический запуск
Теперь настраиваем запуск скриптов HLstatsX. У нас их аж пять:
run_hlstats
запускает демонов, получающих логи с серверов;
hlstats-awards.pl
многоцелевой скрипт, обсчитывающий статистику, работающий с геолокацией и умеющий оптимизировать sql базу данных;
hlstats-resolve.pl
пытается по ip-адресам игроков определить доменные имена;
GeoLite_Import.sh
скачивает и обновляет geoip базу;
generate.php
создаёт тепловые карты.
Все эти скрипты должны запускаться из-под пользователя game, поэтому их будем запускать из пользовательского crontab файла (его использование мы разрешили на этапе заведения пользователя), в котором у нас уже может быть прописан вызов скрипта для обновления серверов и для очистки каталогов с Записями. Запускаем crontab -e , добавляем:
Первая строка — каждые пять минут запускаем демона run_hlstats на случай скоропостижной кончины ранее запущенного. Если тот жив-здоров, то ничего страшного не произойдёт. Это официально рекомендуемый способ запуска.
Вторая строка — раз в сутки запускаем скрипт hlstats-awards.pl, который со своими параметрами по умолчанию —inactive —awards —ribbons —prune подводит итоги и определяет героев дня.
Третья строка — раз в сутки запускаем скрипт hlstats-resolve.pl, который по ip определяет имена хостов с которых заходили игроки и позволяет в админке, в Tools -> Host Statistics посмотреть статистику по провайдерам. Запуск данного скрипта можно сделать более частым — он хотя и перелопачивает всю базу, но однажды определённые ip повторно не определяет.
Четвёртая строка — раз в месяц обновляем базу GeoIP.
Пятая строка — после обновления GeoIP, для ip-адресов в нашей базе с отсутствующей географической привязкой пытаемся заново определить местоположение.
Шестая строка — раз в месяц запускаем оптимизацию sql базы данных.
Седьмая — раз в час запускаем генерацию тепловых карт.
Настройка перенаправления логов cron в лог, доступный пользователю game описана в разделе «Логи»
Тюнинг
Шрифты
При формировании плашек игроков, как в примере ниже, используется шрифт DejaVu Sans, распространяющийся под свободной лицензией, но не способный похвастаться широким охватом символов Unicode, что приводит к невозвожности вывода на плашку, рядом с флагом, имени игрока в каком-нибудь экзотическим алфавите. Поэтому заменим его шрифтом Bitstream Cyberbit с подходящей для наших условий лицензией и с поддержкой гораздо большего количества символов.
Использование DejaVuSans.ttf прописано в коде .php скриптов, поэтому либо переименовываем Cyberbit.ttf в DejaVuSans.ttf, либо правим скрипты:
Корейские игроки могут быть довольны:
Превью карты
Если пользователь на сервере статистики заходит в Maps -> , то для многих стандартных карт справа будет показано небольшое превью. Если нам хочется такое же для любимой пользовательской карты или для новой стандартной, то делаем красивый (это обязательно!) скриншот из игры, кадрируем, изменяем размер до 218×164 пикселя и сохраняем как .jpg в каталог /var/www/stat.example.org/htdocs/hlstatsimg/games/tf/maps. То есть для карты cp_orange_x3 создаём файл с превью cp_orange_x3.jpg и получаем следующее:
Раздельный учёт статистики
При стандартных настройках, в рамках одного типа игры (Team Fortress 2), учёт статистики ведётся общий для обоих серверов, то есть статистика по картам и рейтинг игроков считаются вне зависимости от того, на каком из наших двух игровых серверов они играют. Если есть желание разделить статистику, то в интерфейсе администратора, Tools -> Duplicate Game settings копируем существующий тип игры «tf — Team Fortress 2» в новый. Предварительно необходимо предоставить веб-серверу право записи в каталог hlstatsimg/games: chmod o+w /var/www/stat.example.org/htdocs/hlstatsimg/games . Теперь при регистрации игровых серверов, в секции Game Settings вы сможете для каждого сервера выбирать разные типы игр.
Отключение статистики
Если нам надо исключить игру на какой-то конкретной карте из попадания в статистику — ну мало ли, решили поэкспериментировать с пользовательскими achievement картами и не хочется пачкать статистику результатами наших гм… достижений, то в
/cfg создаём файл .cfg (не забыв сделать потом символьную ссылку в
/tf2/tf/cfg/) и содержимым:
Этот файл конфигурации выполнится при переходе на данную карту и игровой сервер не будет транслировать логи демону (на запись в
/log/server2/ это не повлияет). А при следующей смене карт, перед переходом на новую карту будет выполнен файл конфигурации
/cfg/server2.cfg, который включит трансляцию логов. При этом консольная переменная «hlx_protect_address» не должна быть установлена, иначе плагин сервера статистики будет блокировать эту команду.
Ограничение доступа
Если вы решите ограничить доступ к серверу статистики с помощью HTTP Basic Authentication по логину-паролю, то стоит иметь в виду, что при этом игроки лишатся возможности во время игры посмотреть свою статистику в motd окне, введя в чате «/hlx». Либо надо будет исключить из области аутентификации скрипт ingame.php и файлы .png, .gif, .css
Новое оружие
Настройка сервера статистики под конкретную игру осуществляется в разделе Game Settings, Team Fortress 2 (tf), секции Actions и Weapons. Там можно прописать действия и новые виды оружия, которые появились за годы, прошедшые с момента последнего релиза HLstatsX.
Восстановление пароля
Если забыли логин или пароль администратора от сервера статистики HLstatsX, то их можно сбросить в исходные (admin:123456), тем же способом, каким мы изначально устанавливали. Если посмотреть в файле
/stat/sql/install.sql, то там есть строчка
Вот её-то и сохраняем в отдельном файле, например reset_pwd.sql который и загружаем в sql базу:
После чего заходим в админку сервера статистики с логином-паролем по умолчанию (admin:123456) и в General Settings -> Admin Users меняем на своё.
- Часть 1 — Установка клиента Steam и сервера Team Fortress 2, базовая настройка, обновления
- Часть 2 — Записи (Replay), SourceTV, Fast Download, боты
- Часть 3 — Установка MetaMod и SourceMod, скрипты запуска, логи, аккаунт Steam и QuickPlay