Q2PRO-X

Q2PRO-X 1.5 — Статистика игры и автоматическая статистика демок Q2PRO-X 1.5

Полная локальная HTML-версия принятого документа. Оригинал DOCX доступен в карточке документации.

Q2PRO-X document image

Q2PRO-X 1.5

Статистика игры и автоматическая статистика демок Q2PRO-X 1.5

Индексация записей, личные показатели, фильтры и приватность

Русская редакция • Q2PRO-X 1.5 • 25 августа 2026 года


Содержание

Пункты кликабельны: щелчок переходит к разделу.

Что делает статистика игры

Что можно узнать

1. Словарь, без которого цифры врут

2. Где всё находится

2.1. Страница настроек целиком

3. Первый запуск за две минуты

3.1. Кто считается «вами»

4. Сбор данных

4.1. Автоматический сбор

4.2. Период анализа

4.3. Минимальный размер записи

4.4. Три действия и чем они различаются

4.5. Как это работает в фоне

5. Окно статистики

5.1. Семь вкладок

5.2. Панель подробностей

5.3. Воспроизведение записи

5.4. Вид и размещение

6. Что именно клиент может узнать из записи

6.1. Форматы

6.2. Моды

6.3. Вкладка «Данные» — честный отчёт

7. Приватность и границы

8. Устранение неполадок

8.1. Статистика пустая

8.2. Числа выглядят устаревшими

8.3. Матчей меньше, чем демок

8.4. Соперники не показываются

8.5. Диагностика

9. Краткая памятка


Что делает статистика игры

Q2PRO-X умеет разбирать ваши собственные записи матчей и превращать их в понятную картину: сколько матчей сыграно, каких, на каких картах, с кем и с каким результатом. Всё считается локально, на вашем компьютере, из файлов демок, которые у вас уже есть. Ничего никуда не отправляется.

Ключевое отличие от обычного счётчика в моде: статистика не спрашивает сервер и не верит внутриигровой таблице «на слово». Она разбирает записи и показывает только то, что в них действительно есть, честно отделяя «неизвестно» от нуля.

Главная мысль. Автоматический сбор выключен по умолчанию. Пока вы его не включите или не нажмёте «Обновить», клиент ничего не сканирует и не разбирает в фоне.

Что можно узнать

сколько было матчей за выбранный период и чем они закончились;
личные фраги и смерти, любимое оружие и оружие, от которого чаще всего умирали;
любимые карты и режимы;
с кем вы играли чаще всего;
какие записи вообще не удалось разобрать и по какой причине.



1. Словарь, без которого цифры врут

Эти пять понятий Q2PRO-X использует строго и не смешивает. Именно поэтому его числа отличаются от «сколько у меня файлов демок».

ПонятиеЧто это значит
Наблюдаемый сеансОдин различимый в записи эпизод подключения к серверу. Он может содержать наблюдение, разминку, проверку настроек или настоящую игру. Это не счётчик запусков игры и не автоматически матч.
Активная играОтрезок, где по авторитетному состоянию мода вы были заспавненным игроком, а не наблюдателем. Ноль фрагов не отменяет активной игры.
Официальный матчОтрезок реального счёта, установленный фазой матча активного мода. Разминка и обратный отсчёт OpenTDM сюда не входят; обычной непрерывной игре OpenFFA отдельный «готов» не нужен, если сервер не объявляет разминку явно.
Значимый личный матчОфициальный матч, в котором у вас есть подтверждённый положительный личный вклад: фраг, засчитанное убийство или очки за задачу. Только этот класс матчей идёт в личную статистику интро.
Интервал наблюденияОтрезок, положительно опознанный как наблюдение/чейз по записанной правде мода. Одно лишь отсутствие фрагов никогда не доказывает наблюдение.

Из этого следуют два практических вывода:

1. Число матчей почти никогда не равно числу файлов демок — и это правильно.

2. Если мод не записал в демку то, что нужно для вывода, Q2PRO-X напишет «неизвестно», а не придумает ноль.



2. Где всё находится

ЧтоПуть по меню
Настройки статистики[[GEN:menu_path:q2prox_game_statistics]]
Состав личных фактов в интро[[GEN:menu_path:q2prox_game_statistics_intro]]
Обозреватель демок[[GEN:menu_path:q2prox_demobrowser]]
Проигрыватель демо и аналитика[[GEN:menu_path:q2prox_demoanalytics]]

Само окно статистики открывается кнопкой «Открыть статистику игры» на странице настроек, командой game_stats_open или назначенной клавишей переключения.

2.1. Страница настроек целиком

Статистика игры

ТипРазделПунктПеременная или переходЧто делает
РазделСбор данныхСбор данных
ПереключательСбор данныхАвтоматическая статистикаcl_game_stats_autoВключает или выключает параметр «автоматическая статистика». Применяется сразу. [Нет / Да]
ПолзунокСбор данныхПериод (дней)cl_game_stats_daysНастраивает значение «период (дней)». Применяется сразу.
ПолзунокСбор данныхМинимальный размер демки (КБ)cl_game_stats_min_size_kbНастраивает значение «минимальный размер демки (КБ)». Применяется сразу.
ПереключательСбор данныхСтатистика в интроcl_game_stats_introВключает или выключает параметр «статистика в интро». Применяется сразу. [Нет / Да]
ПереходСбор данныхСостав статистики интро...q2prox_game_statistics_introВыбор каждого типа личной статистики для интро. По умолчанию включены все пункты.
РазделДействияДействия
ПереходДействияОткрыть статистику игры...game_stats_openВыполняет действие «открыть статистику игры».
КлавишаДействияКлавиша переключенияgame_stats_toggleНазначает клавишу для действия «клавиша переключения».
ПереходДействияОбновить статистикуgame_stats_refreshВыполняет действие «обновить статистику».
ПереходДействияПересчитать текущий периодgame_stats_rebuildВыполняет действие «пересчитать текущий период».
ПереходДействияОчистить факты матчейgame_stats_cache_clearВыполняет действие «очистить факты матчей».
ПереходДействияСведения о библиотеке демокgame_stats_infoВыполняет действие «сведения о библиотеке демок».
РазделВид и раскладкаВид и раскладка
ПолзунокВид и раскладкаПрозрачностьcl_game_stats_alphaНастраивает значение «прозрачность». Применяется сразу.
ПолзунокВид и раскладкаМасштаб текстаcl_game_stats_scaleНастраивает значение «масштаб текста» (0.1..3.0, шаг 0.01). Применяется сразу.
ПереключательВид и раскладкаПолный экранcl_game_stats_fullscreenВключает или выключает параметр «полный экран». Применяется сразу. [Нет / Да]
ПереключательВид и раскладкаПоказывать подробности матчаcl_game_stats_show_detailsВключает или выключает панель подробностей справа от таблицы. Применяется сразу. [Нет / Да]
ПереключательВид и раскладкаЦвета чередующихся строкcl_game_stats_row_colorsВключает или выключает параметр «цвета чередующихся строк». Применяется сразу. [Нет / Да]
ПереключательВид и раскладкаРабочая область с полямиcl_game_stats_pillarbox_workspaceВключает или выключает параметр «рабочая область с полями». Применяется сразу. [Нет / Да]
ПереключательВид и раскладкаЗапоминать вкладкуcl_game_stats_remember_tabВключает или выключает параметр «запоминать вкладку». Применяется сразу. [Нет / Да]



3. Первый запуск за две минуты

1. Откройте [[GEN:menu_path:q2prox_game_statistics]].

2. Проверьте «Период (дни)». По умолчанию 7. Это целые локальные календарные дни: 0 — сегодняшний день с местной полуночи, 7 — последние семь календарных дней.

3. Нажмите «Обновить статистику». Клиент разберёт только новые и изменившиеся записи.

4. Нажмите «Открыть статистику игры».

5. На вкладке «Сводка» посмотрите итоги. Если результат выглядит пустым, откройте вкладку «Данные» — она объясняет, что именно осталось неизвестным и почему.

Если вы хотите, чтобы обновление происходило само при обычном холодном запуске, включите «Автоматическая статистика».

3.1. Кто считается «вами»

По умолчанию считается текущий ник из переменной name. Он учитывается всегда.

Если вы играли под несколькими никами, добавьте их в список своих имён. В окне статистики есть отдельный элемент выбора: он показывает ники, под которыми записаны ваши демки, с числом записей и датой последнего использования. Клик по строке добавляет или убирает ник.

ПеременнаяДопустимые значенияОписание
cl_game_stats_namesпусто = только текущий ник; иначе до 32 ников через запятую, и всегда плюс текущий никСписок ваших ДРУГИХ ников через запятую, считается тем же человеком. Текущий name учитывается ВСЕГДА — список дополняет вашу личность, а не заменяет её, поэтому вписанный старый ник не может отключить учёт матчей, которые вы играете сейчас. Пробелы по краям убираются, пустые элементы отбрасываются, повторы схлопываются, сравнение не учитывает регистр и «высокобитную» форму серверных имён. Список рядом с полем предлагает только те ники, под которыми действительно записаны ваши собственные демки. Изменение списка — это запрос по уже загруженным фактам: ни одна демка не перечитывается из-за смены ника.
Чужие имена сюда не попадают. Соперники, наблюдатели и участники MVD2 в списке предложений не появляются: это другие люди. Смена списка отвечает мгновенно и не разбирает записи заново.



4. Сбор данных

4.1. Автоматический сбор

ПеременнаяДопустимые значенияОписание
cl_game_stats_auto0=выкл. (по умолчанию) / 1=обновлять при холодном запускеАвтоматически обновляет библиотеку демок при подходящем «холодном» запуске в меню. По умолчанию выключено, и выключено означает действительно ноль фоновой работы: ни обхода каталогов, ни разбора демок, ни рабочего задания, ни карточек в интро. Прямой запуск карты, подключение, демка или URL подходящими не считаются, поэтому запуск сразу в игру анализ не запускает.

Автоматический сбор срабатывает только при обычном холодном запуске: без карты, сервера, демки или адреса в командной строке. Это то же условие, по которому запускается интро.

4.2. Период анализа

ПеременнаяДопустимые значенияОписание
cl_game_stats_days0 .. 3650 дней, по умолчанию 7Период статистики в целых ЛОКАЛЬНЫХ КАЛЕНДАРНЫХ днях. 0 — сегодня с локальной полуночи; 7 — с локальной полуночи семь календарных дней назад, включительно. Граница вычисляется по правилам часового пояса и перехода на летнее время, поэтому 23- и 25-часовые сутки считаются верно; это никогда не «сейчас минус N*86400» и никогда не дата из имени файла. Расширение окна разбирает только те демки, фактов по которым ещё нет. Сужение не разбирает ничего.

Важная деталь: расширение периода разбирает только те записи, фактов по которым ещё нет. Сужение периода не разбирает ничего вообще — оно просто перестаёт показывать лишнее.

4.3. Минимальный размер записи

ПеременнаяДопустимые значенияОписание
cl_game_stats_min_size_kb1 .. без максимума, в КиБ, по умолчанию 40Наименьший размер демки в кибибайтах, который Статистика игры вообще рассматривает. Демка в несколько килобайт — это заход и выход, а не матч, и её учёт искажает все проценты на вкладке «Сводка». Это фильтр по фактам, уже загруженным в память: изменение отвечает мгновенно и ничего не разбирает заново, а Браузер демок по-прежнему показывает все файлы. Отсеянные файлы посчитаны на вкладке «Данные», а не выброшены молча. Минимум — 1 КиБ; максимум не ограничен, потому что каким должен быть настоящий матч, решаешь ты.

Несколько килобайт демки — это подключение и отключение, а не матч. Изменение порога отвечает мгновенно и ничего не разбирает заново; обозреватель демок при этом продолжает показывать все файлы, а число отброшенных видно на вкладке «Данные».

4.4. Три действия и чем они различаются

ДействиеКомандаЧто делает
Обновить статистикуgame_stats_refreshРазбирает только новые и изменившиеся записи. Всё уже известное берётся готовым.
Пересобрать текущий периодgame_stats_rebuildПересчитывает все записи периода с нуля. Дольше; это то, что нужно делать после изменений в самом разборе.
Очистить факты матчейgame_stats_cache_clearУдаляет все сохранённые факты матчей. Метаданные файлов, демки, избранное и плейлисты остаются. Сначала спрашивает подтверждение.

4.5. Как это работает в фоне

Разбор идёт в одном последовательном фоновом рабочем потоке и не блокирует игру. Обход папок с записями выполняется ровно один раз за поколение данных; и обозреватель демок, и окно статистики, и слой личных фактов интро — это запросы к одному опубликованному снимку, а не независимые обходы диска.

Результат хранится в одном общем файле индекса q2pro-x/demo_index.dat, в базовом каталоге игры. Один файл на всю установку: он не размножается по папкам модов. Запись выполняется атомарно — через временный файл с последующей заменой, поэтому прерванное обновление не может оставить повреждённый индекс.

Пользовательские намерения обозревателя демок (избранное, плейлисты) хранятся отдельно и никогда не удаляются очисткой фактов.



5. Окно статистики

Окно открывается поверх игры, перемещается, изменяется в размерах и закрывается клавишей Esc. В его заголовке есть кнопка шестерёнки — она открывает страницу настроек статистики в меню.

5.1. Семь вкладок

ВкладкаЧто показывает
СводкаИтоги за выбранный период: матчи, победы и поражения, фраги, любимая карта и режим.
МатчиКаждый матч отдельной строкой, сгруппировано по режимам. Двойной клик — проиграть демку.
СоперникиС кем вы играли. Имена берутся из финальной таблицы счёта — это единственное место, где клиентская демка их знает.
КартыКарты: сколько матчей, победы и поражения, фраги и когда играли последний раз.
РежимыИтоги по режимам игры: дуэль, FFA, TDM и остальные.
ПоискПоиск по части слова: карта, ник соперника, мод, режим, имя файла демки. Регистр не важен.
ДанныеЧто было разобрано и что осталось неизвестным: файлы, факты, причины отсутствия результата.

5.2. Панель подробностей

Панель справа описывает выделенную строку, а не повторяет её. Содержимое зависит от вкладки. На вкладках «Сводка» и «Данные» панель скрыта: там нет выделенной строки, там итоги.

Разделитель между таблицей и панелью перетаскивается мышью.

5.3. Воспроизведение записи

Кнопка «Проиграть» проигрывает демку выделенного матча; двойной клик по строке делает то же самое. Если запись сделана под другим модом, игра сначала переключится на него.

Кнопка всегда на экране. Когда она недоступна, подсказка объясняет, что нужно сделать: выделить строку матча на вкладке «Матчи» или «Поиск».

5.4. Вид и размещение

НастройкаЧто делает
ПрозрачностьНепрозрачность фона окна, независимо от общей прозрачности HUD
Масштаб текстаМасштаб текста и оформления окна, независимо от общего масштаба HUD
Полный экранРазворачивает окно на весь HUD и убирает уголок изменения размера
Показывать подробностиПоказывает или прячет панель подробностей
Чередующиеся цвета строкЧитаемость длинных таблиц
Рабочая область в поляхИспользовать всю поверхность вывода, включая чёрные поля по бокам
Запоминать вкладкуОткрывать окно на той вкладке, что была активна в прошлый раз

Положение и размер окна сохраняются автоматически. Команда game_stats_layout_reset возвращает размещение к значениям по умолчанию.



6. Что именно клиент может узнать из записи

6.1. Форматы

Разбираются собственные клиентские записи .dm2 и многопользовательские .mvd2. Формат определяет, какие сведения вообще доступны:

Клиентская запись `.dm2` — это то, что видел ваш клиент. Ники соперников надёжно берутся из финальной таблицы счёта: это единственное место, где клиентская запись их знает.
Запись `.mvd2` содержит нескольких участников. Она полезна для общей картины матча, но её участники — это другие люди, и они никогда не предлагаются как ваши ники.

6.2. Моды

Границы матча определяются фазой матча активного мода, а не догадкой по счёту:

OpenTDM строит снимок участников по составу команд, независимо от счёта; разминка и обратный отсчёт исключаются из официального матча.
OpenFFA ранжирует всех заспавненных клиентов, тоже независимо от счёта; обычной непрерывной игре отдельный «готов» не нужен, если сервер явно не объявляет разминку.
Для остальных модов используются общие правила: то, что запись содержит однозначно, попадает в результат, остальное честно остаётся неизвестным.

Q2PRO-X не притворяется, что понимает мод, которого не понимает. Если фаза матча не распознана, отрезок не станет «официальным матчем».

6.3. Вкладка «Данные» — честный отчёт

Именно здесь видно, почему результат выглядит так, а не иначе:

сколько файлов найдено и сколько из них пригодно для статистики;
сколько метаданных и фактов взято готовыми, сколько разобрано заново, сколько записей повреждено;
сколько записей отброшено по периоду;
сколько найдено точных дубликатов и сколько подозрительных;
сколько времени заняли обход и разбор.

Если разбирать было нечего, время разбора показывается как «простой», а не как измеренный ноль: пустая фаза не должна выглядеть измерением.



7. Приватность и границы

Всё локально. Записи, индекс и факты не покидают ваш компьютер. Q2PRO-X не отправляет статистику разработчикам и не публикует её.
Только ваши записи. Своими считаются ники из name и из вашего списка имён. Соперники и участники MVD2 в список своих ников не предлагаются.
Очистка обратима по данным, но не по времени. «Очистить факты матчей» удаляет только факты. Сами демки, метаданные файлов, избранное и плейлисты остаются, и повторный разбор восстановит факты — но потратит на это время.
Личные факты интро — отдельное разрешение. Слой в интро показывает только «значимые личные матчи» и включается двумя независимыми переключателями. Подробности — в руководстве по интро при запуске.



8. Устранение неполадок

8.1. Статистика пустая

1. Откройте вкладку «Данные»: она прямо скажет, найдены ли файлы и что с ними произошло.

2. Проверьте период: возможно, ваши записи старше выбранного окна.

3. Проверьте минимальный размер записи: слишком короткие подключения отбрасываются намеренно.

4. Проверьте список своих ников: если вы играли под другим ником, добавьте его.

5. Нажмите «Обновить статистику» — при выключенном автоматическом сборе ничего не разбирается само.

8.2. Числа выглядят устаревшими

Нажмите «Обновить статистику». Если вы поменяли период в сторону расширения — разберутся только недостающие записи. Если результат всё равно кажется неверным, нажмите «Пересобрать текущий период».

8.3. Матчей меньше, чем демок

Это ожидаемо. Файл демки — не матч. Между ними стоят «наблюдаемый сеанс», «активная игра» и «официальный матч» из раздела 1. Наблюдение, разминка и короткие подключения матчами не считаются.

8.4. Соперники не показываются

Ники соперников клиентская запись знает только по финальной таблице счёта. Если матч не дошёл до неё — например, вы отключились раньше, — соперники по этой записи останутся неизвестными.

8.5. Диагностика

Команда game_stats_info печатает в консоль путь к индексу, версии схемы и декодеров, список корневых папок с записями, окно анализа, счётчики найденного/разобранного/повторно использованного, число обходов папок и состояние фонового рабочего потока.

Ту же информацию открывает кнопка «Информация о библиотеке демок» на странице настроек.



9. Краткая памятка

ЗадачаЧто сделать
Посмотреть итоги«Открыть статистику игры» → вкладка «Сводка»
Понять, почему пустоВкладка «Данные»
Учесть старый никЭлемент выбора ников в окне статистики
Собрать данные сейчас«Обновить статистику»
Пересчитать всё заново«Пересобрать текущий период»
Собирать автоматически«Автоматическая статистика» → «Да»
Проиграть матчДвойной клик по строке на вкладке «Матчи»
Забыть накопленное«Очистить факты матчей»