Текущая версия статы: 1.5.finalВот наконец доработал свою стату, решил выложить на общий суд. Сама статистика разрабатывалась для себя пару лет назад, но была брошена недоделаной, сейчас немного доработал и вышло то, что вышло.
А именно: Мониторинг сервера
Банлист (не только список банов, но и проверка пользователя по базе при заходе на сервер - ip, nick, SteamID)
Статистика игроков (общее, по каждому оружию, по каждой карте)
Статистика карт
Статистика подключений к серверу в виде графика за неделю, месяц, 3 месяца
Топ игроков
Топ карт
Поиск игроков
Отображение админов сервера
Отображение кваров сервера
Мультиязычность (сразу есть рус, укр, англ)
Поддержка модулей (thx to нуб2)
Саморемонт" высоконагруженых таблиц статистики - таблетка от "падений" бд.
Комманды управления плагином (остановка статистики, перезапуск, перезагрузка кваров статистики, принудительное обновление в базе)
Данные собираются с точностью до 99%!
Конечно, до психа далеко, но простая и без наворотов, проста в установке и использовании.
Система состоит из:
amxx плагина к серверу
чуть-чуть переделаный admincmd.amxx и его исходник (зачем это - чуть ниже)
cfg файла
web части
Зачем переделан admincmd.amxx?
А затем, что бы работали баны. Весь функционал файла сохранен, ничего не вырезано, и, собстенно, в оригинале изменено ровно 3 строчки, которые общую картину файла не меняют. Можете сами сравнить оригинал и исходник, который прилагается, - ничего левого и скрытого не добавлено. Особо недоверчивые могут даже сами скомпилировать прилагаемый исходник
Требования к web части:
apache 2+ (ModRewrite),
php 5.2+ (short_open_tag on),
mysql 5+
Иначе не гарантируется корректная работа скрипта.
1. Скопировать все файлы сервера в необходимые папки.
2. Настроить ServerStatSystem.cfg - комментарии к настройкам прилагаются
3. Подключить плагин к серверу (думаю, как это делается обьяснять не нужно:))
4. Скопировать web часть системы туда, где хотите ее видеть. Если это удаленный сервер (например, хостинг) - удаленный mysql должен поддерживать удаленные соединения с вашего ip или пользователя бд.
5. Если ваш http сервер не под виндой (*nix, например) - необходимо выставить права 0777 на папки inc/, inc/smarty/cache/ и inc/smarty/templates_c
6. Пройти по вашему http адресу (если домашний комп - localhost) и установка скрипта сама запустится.
7. Заполнить все необходимые поля и нажать соответствующую кнопочку.
8. Доступ в "админку", где вы можете отключить те, или иные плагины, по адресу: {путь_к_скрипту}/configs/. Логин и пароль те, которые ввели при установке. При желании, их изменить можно в файле конфигурации (inc/config.php).
Если ошибок нету - система нормально установлена и работает.
Если есть ошибки - по ним, думаю, все будет понятно.
Команды в плагине:
amx_stat_status - выводит текущий статус подключения пагина к mysql. в дальнейшем количество данных увеличим.
amx_stat_flush - принудительно обновляет все данные в базе
amx_stat_reconnect - переподключает плагин к базе, если подключения нету
amx_stat_disconnect - отключает плагин от базы и останавливает работу плагина
amx_stat_reconfig - перезагружает конфиг плагина
Комманды работают как из консоли админа, так и из консоли сервера.
Частые "подводные" камни и некоторые замечания
Cразу после установки вылазит ошибка "500 Internal server error". Все просто - к apache не подключен mod_rewrite. Достаточно раскоментировать строку с его подключением в httpd.conf (LoadModule rewrite_module modules/mod_rewrite.so / .dll) и перезагрузить апач.
Скачет пинг игроков после подключения плагина статистики. Скорее всего, подглючивает mysql и необходимо подкрутить его настройки. Причин этому может быть несколько - он просто криво настроян, на нем работает довольно крупный портал, который не дает свободно работать с базой плагину или на нем работает небольшой, но очень кривой сайт Так же можно "подкрутить" нагрузку плагина отключением модулей в ServerStatSystem.cfg.
Начиная с релиза v1.5.rc3 осторожно нужно обращться с переменной stat_with_bots. крайне желательно после смены параметра перезагружать сервер, а не просто обновлять конфиг коммандой amx_stat_reconfig, т.к. в базу будут добавляться очень некорректные данные до перезагрузки сервера или до смены карты.
Для ботов не считаются коннекты, выстрелы и попадания.
Не добавляются баны. Проверьте подключен ли прилагаемый admincmd.amxx. Если на сервере используется amxbans - статистику неоходимо подключить ДО него в plugins.ini, тогда баны будут добавляться и в статистику и в amxbans. В версии 2.0 планируется догнать amxbans по функционалу, что позволит полностью от него отказаться.
Не работает rewrite при настройке статистики под nginx. С решением этой проблемы помог пользователь TTRTTR. Для решения проблемы необходимо описать такой редирект в конфиге nginx:
rewrite index(.*) /index.php last;
rewrite .+/([\d]+)\.html /index.php last;
Список изменений:
v1.5.final
Исправлен баг с "[SSS] Error with query `INSERT INTO `corrmap` SET `name`='', ..."
Исправлен баг с падением нагруженых таблиц при высоких нагруках на стату - добавлен "авторемонт"
Еще немного оптимизирована работа с mysql
Более читабельный вывод mysql ошибки в консоль
Расширеное отображение данных в amx_stat_status
sv_password не заносится в отображаемый список кваров
Переделан принцип вывода страниц в статистике игроков
Мелкие правки в шаблоне
v1.5.rc3
Добавлена улучшеная поддержка ботов - можно отключить/включить для них посчет статистики
Убрано добавление hltv клиентов в статистику
Добавлена возможность определения админов не только по нику (по ip и по steam_id), no-steam auth_id игнорируются
Убран иногда вылазивший баг с кешем графиков статистики коннектов
Мелкие правки в шаблоне
v1.5.rc2
Добавлен вывод ошибок на все запросы в базу данных (если таковые присутствуют)
v1.5
Переписано половину кода плагина, что должно:
уменьшить нагрузку на mysql и на сервер в целом;
позволить более точно собирать данные;
Копирайт в плагине убран в чат и показывается 1 раз за подлючение игрока (включая смену карты)
Добавлен вывод ошибки подключения к mysql
Добавлены комманды в плагин
Добавлена система модулей. теперь можно отключить ненужный модуль как в веб части, так и кваром в плагине (отключением плагинов также можно урегулировать нагрузку на мускуль/сервер)
Добавлена админка для управления модулями веб части. в дальнейшем ее функционал будет расширяться.
В связи с модулями, переделан принцип шаблонизации (коснется только тех, кто делает шаблоны).
Добавлена "вкусняшка" в статистику - "любимая жертва" и "злейший враг".
Добавлен топ карт.
Убран баг с отсутствием картинок в дефолтном шаблоне.
Частота обновления кеша картинки коннектов уменьшена до часа.
Мелкие правки в шаблоне, языковых файлах.
v1.1
Убран баг с количеством отображения онлайн.
Убран баг с перелистыванием страниц игроков в стандартном шаблоне.
Добавлены параметры stat_save_cvars и stat_save_admins в конфиг, которые запрещают сохранять данные в базу.
Поправлено кеширование страниц.
Теперь css корректно подгружается НЕ из корня, главное - правильно подгружать (пример в дефолтном шаблоне).
Убран лишний вывод с главной (если выводить нечего из админов или кваров).
По просьбам играющих сделал вывод сообщения в плагине 1 раз при заходе на сервер.
Мелкие незапоминающие правки в шаблоне и скрипте.
v1.0
Первый релиз.
Дополнительные языкиДополнительный язык добавить очень просто - возьмите один из существующих в папке \inc\languages\, переведите его и положите измененный с соответствующим именем (например, ru.ini). Было бы неплохо выкладывать их в теме и я их буду добавлять в релиз.
Изображения к картамСобрана неплохая коллекция изображений к картам. Но, естественно, не всех существующих карт. Что бы добавить изображение - достаточно положить ее в папку \images\maps\ с названием карты в нижнем регистре (!) и расширением только jpg (например, de_dust.jpg)! Желательно размер изображения 160х120 или его производные (легко делается из 1024x768 или 1280х1024). Выкладываем свои паки изображений здесь - будем добавлять в релизы.
Изображение к графику коннектовЕсли вас чем-то не устраивает текущее изображение (а оно не устраивает и меня
) - его можно легко поменять. Замените файл \images\special\graphfon.jpg на свой, но изображение обязательно должно быть jpg с размерами 600x300, иначе не гарантируется корректная работа графика. После изменения не забываем удалить кеш из папки \inc\smarty\cache\. Так же выкладываем свои варианты в топике - понравившийся поставлю в релиз ;)
Шаблоны скриптаЕсли чесно, мне было влом делать еще шаблоны. Кто знает что такое smarty (а использован именно он в качестве шаблонизатора) - не составит большого труда поделать свои шаблоны. Кто не знает - может разобраться, ничего сложного нету и манов в нете куча (офф сайт с документацией: https://www.smarty.net/documentation ). Естественно, выкладываем свои шаблоны в теме - буду добавлять в релизы.
Если вам необходимо поменять установочные парметры (например, подключение к базе или шаблон) после установки - они лежат в файле \inc\config.phpБагиЕсли нашли какие-то баги - пишем здесь и будем их решать.
ЗЫ: кто не знает что такое апач (apache), мускуль (mysql) или amxx - проходим мимо и не заморачиваемся. Или разбираемся сами как устанавливать web часть. Мусорить в теме запросами "что такое access denide for user root ... " не нужно!
ЗЫЫ: принимается аргументированная критика, предложения и замечания
Понравился мод? Пожалуйста нажми на кнопку "Спасибо" и на "5 звездочек" под публикацией, будьте людьми!