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. Короткий запуск для игрока

3. Почему это не чит

4. Как запускается автоматический таймер

5. Где разрешены автоматические таймеры

5.1. Локальная игра

5.2. Удалённый сервер с явным решением

5.3. Удалённый сервер без параметра

5.4. Ручные таймеры

6. Полный порядок принятия решения

7. Разделы меню таймеров

7.1. Основное

7.2. HUD-панель

7.3. Звуковое предупреждение

7.4. Отслеживаемые предметы

7.5. Интервалы возрождения

7.6. Экземпляры и локации

7.7. Настройки по предметам

7.8. Ручные таймеры и бинды

8. Каталог предметов и значения по умолчанию

9. Приоритет источников интервала

10. Особая логика Mega Health

11. Ручные команды

11.1. Запуск

11.2. Отмена

11.3. Сброс и информация

11.4. Примеры биндов

12. Наблюдение за миром и одинаковые предметы

13. Поведение наблюдателя

14. Основные консольные переменные

15. Настройка игрового сервера

16. Управление разрешающим списком через API

17. Защита ответа API

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

19. Типичные ситуации

Автотаймер не запускается, ручной работает

Подобранное выброшенное оружие не создало таймер

HUD не виден

Нет звука

Mega не начала отсчёт сразу

После смены наблюдаемого игрока всё очистилось

Сайт недоступен

20. Рекомендуемые профили

Обычная онлайн-игра

Ручной секундомер без автоматизации

Наблюдение за матчем с раздельными экземплярами

21. Итог


1. Назначение системы

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

Таймеры бывают двух типов:

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

Главный переключатель cl_it по умолчанию выключен. Пока пользователь сам не включит живые таймеры, система не запускает отсчёты и не обращается к службе авторизации.

Отдельная тема. Таймеры предметов в записях демо — это другая система с собственными настройками. Она описана в руководстве по обозревателю и проигрывателю демок.


2. Короткий запуск для игрока

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

2. Включите «Живые таймеры предметов».

3. При необходимости оставьте включённым «Автостарт по своему подбору».

4. Настройте HUD, звуки и список нужных предметов в дочерних разделах.

5. Подключитесь к серверу и посмотрите результат проверки командой it_info.

В упрощённом профиле меню для мультиплеера ссылка «Таймеры предметов» доступна непосредственно среди сетевых настроек.

Для быстрого ручного теста можно выполнить:

cl_it 1; it_start rl 30; it_info active

На HUD появится таймер ракетницы на 30 секунд. Ручной таймер работает на любом сервере и не зависит от разрешения автоматических таймеров.



3. Почему это не чит

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

Клиент не получает скрытое серверное состояние предметов.
Клиент не видит предметы сквозь стены и не строит скрытые метки.
Не выполняется предварительное чтение будущих событий демо.
Наблюдение за миром использует только обычный snapshot/PVS текущего POV: только те сущности, которые сервер уже прислал этому игроку или наблюдателю.
BSP-данные карты используются только как статический каталог постоянных точек появления и их стабильных номеров. Для сопоставления берётся реальная точка предмета после штатного падения на поверхность, а после появления предмета — его позиция из обычного snapshot. Наличие точки в BSP само по себе не запускает таймер и не сообщает, лежит ли предмет там сейчас.
Простое появление или исчезновение предмета в PVS не запускает автоматический отсчёт.
Автостарт требует подтверждённого подбора текущим POV рядом с постоянной BSP-точкой именно этого предмета.
Выброшенное игроком оружие и предметы, выпавшие после смерти, игнорируются, если они не совпадают с постоянной точкой появления карты.
Сервер или подписанная политика Q2PRO-X могут запретить автоматический запуск.

Ручной таймер является обычным локальным секундомером: пользователь сам решает, что и когда засечь. Поэтому серверная и сайтная политика ограничивает только автоматический запуск, но никогда не блокирует it_start, ручные бинды, HUD или звуки уже запущенных вручную таймеров.

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


4. Как запускается автоматический таймер

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

1. cl_it установлен в 1.

2. cl_it_auto_own установлен в 1.

3. Текущий предмет разрешён его параметром cl_it_<id>_show.

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

5. Клиент получил подтверждение собственного подбора.

6. Рядом найдена постоянная BSP-точка того же типа предмета.

Если постоянная точка не найдена, автоматический таймер не создаётся. Это намеренное безопасное поведение для оружия, которое игрок выбросил вручную, и для предметов, выпавших из погибшего игрока.

Координата сущности в BSP является исходной точкой редактора карты: некоторые предметы во время запуска уровня штатно падают из неё на пол. Q2PRO-X повторяет этот стандартный расчёт и сопоставляет подбор уже с фактической точкой на поверхности. Когда предмет был виден в snapshot, его последняя серверная позиция уточняет эту точку. Радиус доверия при этом не расширяется, поэтому исправление не разрешает автотаймеры для обычного выброшенного оружия.

У каждого автоматического таймера хранится источник AUTO. У ручного таймера источник MANUAL. Ручной таймер имеет приоритет: отказ авторизации удаляет только автоматические таймеры и не может стереть или перезаписать ручной.



5. Где разрешены автоматические таймеры

5.1. Локальная игра

На локальном сервере, включая loopback-подключение, автоматические таймеры разрешены сразу как при deathmatch 0, так и при deathmatch 1. Запрос к сайту не выполняется.

5.2. Удалённый сервер с явным решением

Клиент сначала читает sv_allow_timers из serverinfo удалённого сервера:

sv_allow_timers 1 окончательно разрешает автоматические таймеры;
sv_allow_timers 0 окончательно запрещает автоматические таймеры;
другое значение считается ошибочным и запрещает автозапуск;
отсутствие параметра переводит проверку к подписанной политике сайта.

Явный запрет сервера нельзя отменить списком сайта. Явное разрешение сервера также не отменяется глобальным режимом сайта.

5.3. Удалённый сервер без параметра

Если сервер не передал sv_allow_timers, клиент асинхронно обращается к:

https://q2pro-x.com/api/q2prox/v1/live-item-timers/authorization

https://quake2.pro/api/q2prox/v1/live-item-timers/authorization

Второй адрес является зеркалом и используется при недоступности первого. Подключение к игровому серверу при этом продолжается без ожидания HTTP-ответа. До получения валидного разрешения автоматический запуск остаётся выключенным.

5.4. Ручные таймеры

Ручные таймеры работают во всех случаях:

при sv_allow_timers 0;
при force:-1 на сайте;
во время ожидания ответа;
при недоступном API;
при сетевом таймауте;
при неверной подписи или просроченном ответе;
на сервере, которого нет в разрешающем списке.


6. Полный порядок принятия решения

ПриоритетУсловиеАвтоматический запуск
1cl_it 0Выключен пользователем
2cl_it_auto_own 0Не запрошен, сеть не используется
3Локальный серверРазрешён
4sv_allow_timers 1Разрешён окончательно
5sv_allow_timers 0Запрещён окончательно
6Некорректное значение sv_allow_timersЗапрещён
7Параметр отсутствуетПроверяется политика сайта
8Политика force:-1Запрещён
9Политика force:1Разрешён
10force:0, IP:порт есть в спискеРазрешён
11force:0, совпадения нетЗапрещён
12Нет валидного подписанного ответаЗапрещён безопасно

Проверка повторяется для каждого нового подключения и переподключения. Решение от предыдущего сервера не переносится на следующий.



7. Разделы меню таймеров

7.1. Основное

Живые таймеры предметов

ТипРазделПунктПеременная или переходЧто делает
РазделОсновноеОсновное
ПереключательОсновноеЖивые таймеры предметовcl_itГлавный выключатель живых таймеров возрождения предметов (ручные + по своему подбору). Применяется сразу. [Выкл. / Вкл.]
ПереключательОсновноеАвтостарт по своему подборуcl_it_auto_ownАвтостарт только для ваших подборов у постоянных BSP-точек карты. Выпавшие предметы и оружие с трупов игнорируются (без wallhack и скрытого состояния). Применяется сразу. [Нет / Да]
ПереключательОсновноеПоказывать HUD-панельcl_it_hudРисовать экранную панель обратного отсчёта. Применяется сразу. [Нет / Да]
ПереключательОсновноеСброс при смене POVcl_it_reset_on_pov_changeПри наблюдении сбрасывать все таймеры после переключения на POV другого игрока, перехода в свободного наблюдателя или возвращения в игру. Применяется сразу. [Нет / Да]
РазделРазделыРазделы
ПереходРазделыHUD-панель...q2prox_lit_hudПозиция, масштаб, прозрачность панели, окно предупреждения, политика неизвестных предметов.
ПереходРазделыЗвуковое предупреждение...q2prox_lit_soundНеобязательный локальный звук-предупреждение (только код; тишина, если файла нет).
ПереходРазделыОтслеживаемые предметы...q2prox_lit_itemsВыбор предметов, которые отслеживаются и показываются.
ПереходРазделыИнтервалы возрождения...q2prox_lit_intervalsРезервные интервалы возрождения по предметам + общие значения по умолчанию.
ПереходРазделыЭкземпляры и локации...q2prox_lit_worldТаймеры по экземплярам и BSP-локации: номера + наблюдение за миром (только в зоне видимости).
ПереходРазделыПо предметам: HUD/звук/цвет...q2prox_lit_advancedОкно показа HUD, звук и цвет по каждому предмету, по классам.
ПереходРазделыРучные таймеры и бинды...q2prox_lit_bindsНазначение клавиш для ручных таймеров (it_start / it_cancel / модификатор).
ПереходРазделыИнфо о таймерах в консольit_infoПечатает каталог и активные таймеры в консоль.

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

7.2. HUD-панель

Живые таймеры — HUD

ТипРазделПунктПеременная или переходЧто делает
РазделПанельПанель
ПереключательПанельПоказывать HUD-панельcl_it_hudРисовать экранную панель обратного отсчёта. Применяется сразу. [Нет / Да]
ПереключательПанельПоказывать под менюcl_it_hud_in_menuОставлять HUD таймеров видимым под открытым меню. Прозрачность меню учитывается; полностью непрозрачное меню его перекрывает. Применяется сразу. [Нет / Да]
ПолзунокПанельМасштаб панелиcl_it_hud_scaleМножитель размера HUD-панели. Применяется сразу.
ПолзунокПанельПрозрачность панелиcl_it_hud_alphaПрозрачность HUD-панели. Применяется сразу.
ПолзунокПанельМаксимум ячеекcl_it_hud_maxМаксимум одновременно показываемых ячеек таймеров (на каждую панель). Применяется сразу.
ПереключательПанельПодписи под иконкамиcl_it_hud_labelsПоказывать короткий английский код предмета (RL, RG, RA, Q...) под каждой иконкой. Применяется сразу. [Нет / Да]
РазделПозиция (общая панель)Позиция (общая панель)
ПолзунокПозиция (общая панель)Позиция X (-1 = авто)cl_it_hud_xГоризонтальная позиция в пикселях HUD; -1 = авто (справа сверху). Применяется сразу.
ПолзунокПозиция (общая панель)Позиция Y (-1 = авто)cl_it_hud_yВертикальная позиция в пикселях HUD; -1 = авто (верхний отступ). Применяется сразу.
РазделРазделение по классамРазделение по классам
ПереключательРазделение по классамРазделить по классамcl_it_hud_splitРазделить панель на четыре отдельных HUD по классам (Броня / Усиления / Оружие / Прочие). Выкл = одна общая панель (по умолчанию). Масштаб, прозрачность и максимум ячеек остаются общими. Применяется сразу. [Нет (общий) / Да (4 панели)]
ПолзунокРазделение по классамБроня: X (-1 = авто)cl_it_hud_armor_xHUD Брони: X (-1 = авто: складывается справа сверху под панелью выше). Применяется сразу.
ПолзунокРазделение по классамБроня: Y (-1 = авто)cl_it_hud_armor_yHUD Брони: Y (-1 = авто-стек). Применяется сразу.
ПолзунокРазделение по классамУсиления: X (-1 = авто)cl_it_hud_pow_xHUD Усилений: X (-1 = авто-стек). Применяется сразу.
ПолзунокРазделение по классамУсиления: Y (-1 = авто)cl_it_hud_pow_yHUD Усилений: Y (-1 = авто-стек). Применяется сразу.
ПолзунокРазделение по классамОружие: X (-1 = авто)cl_it_hud_wpn_xHUD Оружия: X (-1 = авто-стек). Применяется сразу.
ПолзунокРазделение по классамОружие: Y (-1 = авто)cl_it_hud_wpn_yHUD Оружия: Y (-1 = авто-стек). Применяется сразу.
ПолзунокРазделение по классамПрочие: X (-1 = авто)cl_it_hud_misc_xHUD Прочих: X (-1 = авто-стек). Применяется сразу.
ПолзунокРазделение по классамПрочие: Y (-1 = авто)cl_it_hud_misc_yHUD Прочих: Y (-1 = авто-стек). Применяется сразу.
РазделПоведениеПоведение
ПолзунокПоведениеОкно предупреждения, сcl_it_warn_sОкно предупреждения: за сколько секунд до возрождения ячейка краснеет (и играет звук). Применяется сразу.
ПереключательПоведениеПоказывать все таймерыcl_it_hud_show_allПоказывать все таймеры с начала, игнорируя окна показа по предмету. Выкл = ячейка появляется только в своём окне HUD. Применяется сразу. [Только в окне / Все]
ПереключательПоведениеМерцание рамкиcl_it_hud_blinkПлавно пульсировать рамкой плитки (как диммером) в окне предупреждения, быстрее ближе к возрождению (5 Гц при готовности), с bloom-свечением. Общее для всех плиток. Применяется сразу. [Нет / Да]
ПереключательПоведениеМерцание иконкиcl_it_hud_icon_pulseНезависимо: плавно пульсировать иконкой предмета (как диммером) с bloom-свечением в окне предупреждения. Общее для всех плиток. Применяется сразу. [Нет / Да]
ПереключательПоведениеБегущая рамкаcl_it_hud_border_runНезависимо: яркая «комета» бежит по часовой стрелке по рамке плитки в окне предупреждения, быстрее ближе к возрождению. Общее для всех плиток. Применяется сразу. [Нет / Да]
СписокПоведениеНеизвестный интервалcl_it_unknown_policyЧто делать с предметом без известного интервала возрождения. Динамический автотаймер Меги обрабатывается отдельно. Применяется сразу. [Скрывать / Показывать «?»]

cl_it_hud_in_menu 1 по умолчанию оставляет таймеры видимыми под открытым меню. Прозрачность меню продолжает действовать: полностью непрозрачное меню естественно перекроет HUD.

HUD можно оставить одной общей полосой либо разделить на четыре панели: броня, усиления, оружие и прочие предметы. Для каждой панели доступны отдельные координаты, а масштаб, прозрачность, окно предупреждения и лимит ячеек остаются общими.

Дополнительные эффекты предупреждения независимы друг от друга:

плавное мерцание рамки;
пульсация иконки;
бегущий яркий сегмент по рамке.

7.3. Звуковое предупреждение

Живые таймеры — Звук

ТипРазделПунктПеременная или переходЧто делает
РазделПредупреждениеПредупреждение
ПереключательПредупреждениеЗвук предупрежденияcl_it_soundИграть локальный звук-предупреждение при входе таймера в окно предупреждения. Необязательный файл (sound/q2prox/it/warn.wav); тишина, если его нет. Применяется сразу. [Нет / Да]
ПолзунокПредупреждениеГромкостьcl_it_sound_volГромкость звука-предупреждения. Применяется сразу.
РазделРежим и событияРежим и события
СписокРежим и событияРежим звукаcl_it_sound_modeРежим звука: выкл / общие звуки / богатый голос по предмету с откатом. Все звуковые файлы необязательны; отсутствующие молча пропускаются. Применяется сразу. [Выкл. / Общий / Богатый]
ПереключательРежим и событияОтсчёт числамиcl_it_sound_countdownПосекундные звуки чисел внутри звукового окна (необязательные файлы). Применяется сразу. [Нет / Да]
ПереключательРежим и событияЗвук появленияcl_it_sound_upЗвук появления предмета при возрождении (необязательный файл). Применяется сразу. [Нет / Да]

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

7.4. Отслеживаемые предметы

Этот раздел определяет, какие типы предметов вообще участвуют в системе. Отключённый тип не создаёт автоматический таймер и не показывается в HUD.

7.5. Интервалы возрождения

Живые таймеры — интервалы

ТипРазделПунктПеременная или переходЧто делает
РазделОбщееОбщее
ПолзунокОбщееИнтервал по умолчанию, сcl_it_default_sОбщий резервный интервал возрождения (сек), когда интервал предмета = 0 (кроме Меги). Применяется сразу.
ПолзунокОбщееФиксированный резерв Меги, сcl_it_mh_fb_sФиксированный резерв Меги. 0 = Штатный автотаймер: ждать не менее 5 с до достижения здоровьем 100, затем использовать задержку после распада ниже. Применяется сразу.
ПолзунокОбщееМега после распада, сcl_it_mh_post_decay_sАвтоматический штатный отсчёт Меги после того, как избыточное здоровье достигло 100. В baseq2 используется 20 секунд. Применяется сразу.
ПолзунокОбщееУдержание «ГОТОВ», сcl_it_ready_hold_sДержать ячейку «ГОТОВ» на экране столько секунд после конца отсчёта. Применяется сразу.
РазделБроняБроня
ПолзунокБроняЗелёная броня, сcl_it_ga_sРезервный интервал зелёной брони (сек). Применяется сразу.
ПолзунокБроняЖёлтая броня, сcl_it_ya_sРезервный интервал жёлтой брони (сек). Применяется сразу.
ПолзунокБроняКрасная броня, сcl_it_ra_sРезервный интервал красной брони (сек). Применяется сразу.
ПолзунокБроняСиловой экран, сcl_it_pws_sРезервный интервал силового экрана (сек). Применяется сразу.
ПолзунокБроняПауер-шилд, сcl_it_pwh_sРезервный интервал Пауер-шилда (сек). Применяется сразу.
РазделУсиленияУсиления
ПолзунокУсиленияКвад, сcl_it_quad_sРезервный интервал Квада (сек). Применяется сразу.
ПолзунокУсиленияПента, сcl_it_inv_sРезервный интервал Пенты (сек). Применяется сразу.
РазделОружиеОружие
ПолзунокОружиеРакетница, сcl_it_rl_sРезервный интервал ракетницы (сек). Применяется сразу.
ПолзунокОружиеРейлган, сcl_it_rail_sРезервный интервал рейлгана (сек). Применяется сразу.
ПолзунокОружиеBFG10K, сcl_it_bfg_sРезервный интервал BFG10K (сек). Применяется сразу.
ПолзунокОружиеГранатомёт, сcl_it_gl_sРезервный интервал гранатомёта (сек). Применяется сразу.
ПолзунокОружиеГипербластер, сcl_it_hb_sРезервный интервал гипербластера (сек). Применяется сразу.
ПолзунокОружиеЧейнган, сcl_it_cg_sРезервный интервал чейнгана (сек). Применяется сразу.
ПолзунокОружиеДробовик, сcl_it_sg_sРезервный интервал дробовика (сек). Применяется сразу.
ПолзунокОружиеСупердробовик, сcl_it_ssg_sРезервный интервал супердробовика (сек). Применяется сразу.
ПолзунокОружиеПулемёт, сcl_it_mg_sРезервный интервал пулемёта (сек). Применяется сразу.
ПолзунокОружиеРучные гранаты, сcl_it_hg_sРезервный интервал ручных гранат (сек). Применяется сразу.
РазделПрочиеПрочие
ПолзунокПрочиеМега: фиксированный, сcl_it_mh_sФиксированный интервал Меги для предмета; 0 = резерв выше, а когда оба равны 0. Динамический таймер по распаду здоровья. Применяется сразу.

В разделе задаются резервные интервалы по типам предметов, общий резерв и специальная логика Mega Health. Реальное правило конкретного мода или сервера может отличаться, поэтому значения можно менять отдельно для каждого локального профиля Q2PRO-X.

7.6. Экземпляры и локации

Живые таймеры — экземпляры

ТипРазделПунктПеременная или переходЧто делает
РазделКак это работает — без скрытых данныхКак это работает — без скрытых данных
РазделНаблюдение за миром (PVS)Наблюдение за миром (PVS)
ПереключательНаблюдение за миром (PVS)Наблюдение за миромcl_it_world_observeИспользует только предметы из обычного snapshot/PVS текущего POV и статические BSP-точки карты. Не показывает скрытые предметы и не запускает таймер от одного появления/исчезновения в PVS. Автостарт требует подтверждённого подбора текущим POV у постоянной точки карты. Применяется сразу. [Выкл. / Вкл.]
ПереключательНаблюдение за миром (PVS)Номера экземпляровcl_it_ordinalsПоказывать BSP-номер (1,2,...) на HUD, когда на карте больше одного такого предмета. Применяется сразу. [Нет / Да]
РазделОбучение и радиусыОбучение и радиусы
ПереключательОбучение и радиусыОбучение по экземплярамcl_it_learnОбучать интервал только за сессию по исчезновению/появлению одной BSP-точки. Динамическая Mega исключена без фиксированного интервала. Применяется сразу. [Нет / Да]
ПолзунокОбучение и радиусыРадиус сопоставления BSPcl_it_bsp_match_radiusРадиус сопоставления видимого предмета с его BSP-точкой. Применяется сразу.
ПолзунокОбучение и радиусыРадиус объединения точекcl_it_instance_cluster_radiusРадиус объединения близких BSP-точек одного предмета. Применяется сразу.
ПолзунокОбучение и радиусыРадиус своего подбораcl_it_own_touch_radiusНасколько близко должен быть исчезающий предмет, чтобы это был ВАШ подбор именно этого экземпляра (два одинаковых считаются раздельно). Применяется сразу.
ПолзунокОбучение и радиусыРадиус привязки ручногоcl_it_pickup_attach_radiusРучной it_start <id> <секунды>: насколько близко должна быть BSP-точка, чтобы привязать ручной таймер к ближайшему экземпляру. Применяется сразу.
РазделДиагностикаДиагностика
ПереключательДиагностикаОтладка наблюденияcl_it_world_debugПодробный вывод наблюдения за миром в консоль (разбор BSP, игнорируемые кандидаты). Применяется сразу. [Нет / Да]
ПереходДиагностикаИнфо о мире в консольit_infoПечатает каталог BSP-точек и наблюдаемые экземпляры в консоль.

Здесь включаются PVS-наблюдение, номера одинаковых экземпляров, обучение интервалов и радиусы сопоставления с BSP-точками. Режим не открывает скрытые данные: он лишь помогает различать, например, две разные ракетницы на карте.

7.7. Настройки по предметам

Для каждого типа отдельно задаются:

вывод на HUD;
момент появления ячейки перед возрождением;
звуковое предупреждение;
момент начала звука;
цвет акцента.

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

«По предметам — Тяжёлое оружие»: ракетница, рейлган, BFG10K и гранатомёт;
«По предметам — Скорострельное оружие»: гипербластер, чейнган и пулемёт;
«По предметам — Дробовики и гранаты»: дробовик, супердробовик и ручные гранаты.

В каждой группе для каждого предмета доступны все пять настроек из списка выше.

7.8. Ручные таймеры и бинды

Живые таймеры — бинды

ТипРазделПунктПеременная или переходЧто делает
РазделМодификаторМодификатор
КлавишаМодификаторМодификатор отмены (удерживать)+it_modУдерживайте эту клавишу, чтобы ручной it_start работал как it_cancel для того же предмета.
РазделРучной старт таймераРучной старт таймера
КлавишаРучной старт таймераСтарт: красная броняit_startСтарт / обновление таймера красной брони (удерживайте модификатор для отмены).
КлавишаРучной старт таймераСтарт: жёлтая броняit_startСтарт / обновление таймера жёлтой брони (удерживайте модификатор для отмены).
КлавишаРучной старт таймераСтарт: зелёная броняit_startСтарт / обновление таймера зелёной брони (удерживайте модификатор для отмены).
КлавишаРучной старт таймераСтарт: Мегаit_startСтарт / обновление таймера Меги (нужен резервный интервал; см. Интервалы).
КлавишаРучной старт таймераСтарт: Квадit_startСтарт / обновление таймера Квада (удерживайте модификатор для отмены).
КлавишаРучной старт таймераСтарт: Пентаit_startСтарт / обновление таймера Пенты (удерживайте модификатор для отмены).
КлавишаРучной старт таймераСтарт: Пауер-шилдit_startСтарт / обновление таймера Пауер-шилда (удерживайте модификатор для отмены).
КлавишаРучной старт таймераСтарт: ракетницаit_startСтарт / обновление таймера ракетницы (удерживайте модификатор для отмены).
КлавишаРучной старт таймераСтарт: Рейлганit_startСтарт / обновление таймера рейлгана (удерживайте модификатор для отмены).
КлавишаРучной старт таймераСтарт: BFG10Kit_startСтарт / обновление таймера BFG10K (удерживайте модификатор для отмены).
РазделПрочееПрочее
КлавишаПрочееОткрыть меню таймеровit_menuОткрыть это меню живых таймеров предметов.
ПереходПрочееСбросить таймерыit_resetСбросить все активные таймеры и выученные за сессию интервалы по экземплярам.

Раздел назначает клавиши на it_start, it_cancel и модификатор +it_mod. Ручные бинды не проходят серверную или сайтную авторизацию.



8. Каталог предметов и значения по умолчанию

IDПредметРезервный интервалОтслеживание по умолчанию
gaЗелёная броня20 сДа
yaЖёлтая броня20 сДа
raКрасная броня20 сДа
mhMega HealthДинамическийДа
quadКвад60 сДа
invНеуязвимость300 сДа
pwsСиловой экран60 сДа
pwhСиловой щит60 сДа
rlРакетница30 сДа
railРейлган30 сДа
bfgBFG10K30 сДа
silГлушитель60 сНет
rebАкваланг60 сНет
envЗащитный костюм60 сНет
adrАдреналин60 сНет
glГранатомёт30 сНет
hbГипербластер30 сНет
cgЧейнган30 сНет
bandПатронташ60 сНет
packРюкзак180 сНет
sgДробовик30 сНет
ssgСупердробовик30 сНет
mgПулемёт30 сНет
hgРучные гранаты30 сНет

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


9. Приоритет источников интервала

Для обычного предмета интервал выбирается в следующем порядке:

1. Число секунд, явно переданное в ручной команде.

2. Интервал конкретной BSP-точки, изученный в текущей сессии, если обучение включено.

3. Значение cl_it_<id>_s для типа предмета.

4. Общий резерв cl_it_default_s.

Любой интервал безопасно ограничивается диапазоном до 3600 секунд, чтобы ошибочная огромная переменная не вызвала переполнение времени.

Mega Health не наследует общий резерв. Для неё применяется отдельная логика, описанная далее.


10. Особая логика Mega Health

Стандартная Mega Health в baseq2 не имеет простого фиксированного интервала от момента подбора. После подбора игра ждёт минимум пять секунд, затем уменьшает избыточное здоровье к 100 и только после этого планирует возвращение предмета.

Поэтому штатный автоматический режим Q2PRO-X работает так:

1. Подтверждается собственный подбор Mega у постоянной BSP-точки.

2. Клиент ждёт не менее пяти секунд.

3. Когда здоровье текущего POV становится не больше 100, запускается отсчёт cl_it_mh_post_decay_s, по умолчанию 20 секунд.

cl_it_mh_fb_s 0 оставляет этот динамический режим. Ненулевое значение задаёт фиксированный резерв для серверов или модов с иными правилами. Также можно явно установить cl_it_mh_s или передать секунды в ручной it_start.



11. Ручные команды

11.1. Запуск

it_start <id> [секунды|номер|nearest]

Примеры:

it_start rl

it_start quad 60

it_start rail nearest

it_start ra 2

Без второго аргумента используется настроенный интервал предмета.
Явное число может быть интервалом в секундах.
При включённом наблюдении число в диапазоне существующих BSP-номеров означает конкретный экземпляр.
nearest привязывает таймер к ближайшей доверенной BSP-точке этого типа.

11.2. Отмена

it_cancel <id|all> [номер]

Примеры:

it_cancel rl

it_cancel rl 2

it_cancel all

Если удерживать назначенный модификатор +it_mod, команда it_start отменяет разрешённый ею таймер вместо запуска.

11.3. Сброс и информация

it_reset

it_info

it_info active

it_info world

it_menu

it_reset очищает активные таймеры и изученные интервалы текущей сессии.
it_info печатает каталог, настройки и состояние авторизации.
it_info active показывает активные таймеры, их источник manual/auto, BSP-привязку и оставшееся время.
it_info world показывает каталог BSP-точек и номера экземпляров.
it_menu открывает меню живых таймеров.

11.4. Примеры биндов

bind F5 "it_start rl 30"

bind F6 "it_start rail 30"

bind F7 "it_start quad 60"

bind F8 "it_cancel all"

bind ALT "+it_mod"


12. Наблюдение за миром и одинаковые предметы

cl_it_world_observe по умолчанию выключен. После включения система сопоставляет видимые сущности из текущего snapshot/PVS со статическими BSP-точками карты.

Это даёт три возможности:

показывать стабильные номера #1, #2 и далее для одинаковых предметов;
привязывать ручной или автоматический таймер к конкретному экземпляру;
при отдельном включении обучения уточнять интервал возвращения той же точки.

Наблюдение не запускает таймер только из-за исчезновения объекта. Исчезновение может означать выход предмета из PVS, закрытие дверью или поворот камеры, поэтому такое событие недостаточно надёжно.

Обученный интервал живёт только до конца сессии и не записывается в конфиг. Он принимается лишь в разумном диапазоне рядом с настроенным резервом. Для динамической Mega обучение выключено, пока не задан фиксированный интервал.


13. Поведение наблюдателя

При cl_it_reset_on_pov_change 1, что является значением по умолчанию, все таймеры очищаются при:

переключении с одного игрока на другого;
переходе из POV игрока в свободного наблюдателя;
возвращении из наблюдения в обычную игру.

Даже если пользователь отключил сброс таймеров, внутренние детекторы подбора и PVS всё равно перебазируются при смене POV. Это предотвращает ложный автостарт по событию, которое относилось к предыдущему наблюдаемому игроку.



14. Основные консольные переменные

ПеременнаяДопустимые значенияОписание
cl_it0=выкл (по умолчанию) / 1=вклГлавный выключатель живых таймеров возрождения предметов Q2PRO-X (ручные + по своему подбору, отсчёт на HUD-панели). Честная реализация: без wallhack, скрытого состояния сервера и предсканирования демок. Ручные таймеры it_start/bind работают на ЛЮБОМ сервере; авторизуется только АВТОзапуск по своему подбору (см. cl_it_auto_own). Локально для мода.
cl_it_auto_own0=выкл / 1=вкл (по умолчанию)Автостарт таймера при подборе ПОСТОЯННОГО предмета карты текущим локальным/наблюдаемым POV. STAT_PICKUP_STRING только с типом должен находиться в cl_it_own_touch_radius от BSP-точки того же типа; подтверждённые касания мира используют тот же каталог. Выпавшие предметы и оружие с трупов без близкой точки карты игнорируются. Автозапуск авторизуется на каждое подключение: локальный сервер всегда разрешает; serverinfo sv_allow_timers 1/0 окончателен; иначе решает подписанная политика q2pro-x.com/quake2.pro. Ручные it_start/bind это НИКОГДА не ограничивает.
cl_it_hud0=выкл / 1=вкл (по умолчанию)Рисовать экранную панель обратного отсчёта живых таймеров. Учитывает scr_draw2d, масштаб HUD и общую прозрачность. Видимость при открытом меню отдельно задаёт cl_it_hud_in_menu.
cl_it_hud_in_menu0=скрывать в меню / 1=показывать под меню (по умолчанию)Оставлять HUD-панели живых таймеров отрисованными под открытым меню. Слой таймеров компонуется перед меню, поэтому cl_menu_alpha естественно действует, а полностью непрозрачное меню перекрывает HUD.
cl_it_reset_on_pov_change0=сохранять таймеры / 1=сбрасывать (по умолчанию)Сбрасывать все живые таймеры предметов при смене spectator POV: другой chase-игрок, переход из chase в свободного наблюдателя, возврат наблюдателя в игру или обратный переход. Детекторы границ pickup/PVS при смене POV перебазируются всегда, даже когда опция выключена, чтобы старое сообщение подбора другого игрока не создало ложный таймер.
cl_it_hud_x-1=авто (по умолчанию) / 0..ширина HUDГоризонтальная позиция панели таймеров в пикселях HUD. -1 = авто (справа сверху, отступ 8 px), с ограничением по видимой области HUD.
cl_it_hud_y-1=авто (по умолчанию) / 0..высота HUDВертикальная позиция панели таймеров в пикселях HUD. -1 = авто (отступ сверху 8 px), с ограничением по видимой области HUD.
cl_it_hud_scale0.3..4.0 / по умолчанию 1.0Множитель размера панели живых таймеров.
cl_it_hud_alpha0..1 / по умолчанию 1.0Прозрачность панели живых таймеров.
cl_it_hud_max1..20 / по умолчанию 8Максимум одновременно рисуемых ячеек таймеров (сначала ближайшие).
cl_it_hud_labels0=выкл (по умолчанию) / 1=вклПоказывать короткий английский код предмета (RL, RG, RA, Q, MH, ...) под каждой иконкой HUD.
cl_it_hud_split0=общая (по умолчанию) / 1=разделить по классамРазделить HUD таймеров на четыре отдельные панели по классам: Броня, Усиления, Оружие, Прочие. Выкл = одна общая панель (по умолчанию). Масштаб, прозрачность, окно предупреждения и максимум ячеек общие для всех панелей; у каждой панели свои cvar позиции (авто или фиксированная).
cl_it_hud_show_all0=только в окне / 1=показывать все (по умолчанию)Показывать все отслеживаемые таймеры на HUD с момента старта, игнорируя окно показа каждого предмета. Выкл = ячейка появляется только когда остаток попадает в окно cl_it_<id>_hud_s этого предмета.
cl_it_hud_blink0=выкл (по умолчанию) / 1=вклПлавно пульсировать (как диммером) цветной рамкой плитки, когда её таймер входит в окно предупреждения, ускоряясь ближе к возрождению (1 Гц у края окна и до 5 Гц при готовности), с bloom-свечением, растущим по мере затухания рамки. Общее для всех плиток.
cl_it_hud_icon_pulse0=выкл (по умолчанию) / 1=вклНезависимо от мерцания рамки: плавно пульсировать иконкой предмета (как диммером, до 5 Гц ближе к возрождению) с bloom-свечением за ней, растущим по мере затухания иконки. Общее для всех плиток.
cl_it_hud_border_run0=выкл (по умолчанию) / 1=вклНезависимо от мерцания: яркая «комета» из блоков бежит по часовой стрелке по рамке плитки в окне предупреждения, быстрее ближе к возрождению. Общее для всех плиток.
cl_it_warn_s0..60 секунд / по умолчанию 3Окно предупреждения: за сколько секунд до возрождения ячейка краснеет и играет необязательный звук.
cl_it_ready_hold_s0..60 секунд / по умолчанию 5Держать ячейку «ГОТОВ» на экране столько секунд после достижения нуля отсчётом.
cl_it_unknown_policy0=скрывать (по умолчанию) / 1=показывать «?»Что делать с предметом без известного интервала: 0 скрывать, 1 показывать ячейку «?». Автоматический подбор Меги по умолчанию вместо ложной неизвестной ячейки ожидает переход распада здоровья.
cl_it_default_s0=нет / 1..300 секунд / по умолчанию 30Общий резервный интервал возрождения (сек), когда интервал предмета = 0. Мега-аптечка исключена, чтобы не создавать ложный фиксированный отсчёт.
cl_it_mh_fb_s0=штатный динамический таймер (по умолчанию) / 1..300 секунд фиксированоФиксированный резервный интервал мега-аптечки. 0 сохраняет штатный динамический автопуть: после доверенного подбора ждать не менее пяти секунд и достижения здоровьем POV значения 100, затем запустить cl_it_mh_post_decay_s. Положительное значение перекрывает это поведение для модов с фиксированным интервалом Меги.
cl_it_mh_post_decay_s1..300 секунд / по умолчанию 20Автоматический отсчёт возрождения Меги после распада избыточного здоровья до 100. Штатный baseq2 назначает скрытой Меге 20 секунд после этого перехода. Используется только динамическим автопутём; фиксированные значения предмета/резерва и ручной it_start остаются фиксированными таймерами.
cl_it_sound0=выкл (по умолчанию) / 1=вклИграть необязательный локальный звук-предупреждение при входе таймера в окно предупреждения. Только код: файл (sound/q2prox/it/warn.wav) необязателен, при его отсутствии воспроизведение молча пропускается.
cl_it_sound_vol0..1 / по умолчанию 1.0Громкость звука-предупреждения.
cl_it_sound_mode0=выкл / 1=общий (по умолчанию) / 2=богатыйРежим звука: 0 выкл, 1 общий (общие звуки «скоро»/«готов»/числа), 2 богатый (голос по предмету с откатом на общий). Все звуки — необязательные внешние WAV в sound/q2x/tm/; отсутствующие файлы молча пропускаются.
cl_it_sound_countdown0=выкл / 1=вкл (по умолчанию)Проигрывать посекундный звук числа (q2x/tm/num/<n>.wav) на каждую оставшуюся секунду внутри звукового окна предмета. Необязательные файлы; тишина, если их нет.
cl_it_sound_up0=выкл / 1=вкл (по умолчанию)Проигрывать звук «предмет появился» (q2x/tm/sys/up.wav) при достижении таймером возрождения. Необязательный файл; тишина, если его нет.
cl_it_world_observe0=выкл (по умолчанию) / 1=вклИспользует только предметы, уже полученные в обычном snapshot/PVS текущего POV, и статический каталог BSP-точек карты, чтобы считать одинаковые экземпляры отдельно. Режим не ищет предметы, не показывает их за стенами, не читает скрытое состояние сервера и не предсканирует будущее/демо. Простое появление или исчезновение предмета таймер не запускает: автостарт по-прежнему требует подтверждённого подбора текущим POV у постоянной точки карты и обычного разрешения автотаймеров. Обучение по экземплярам, если его включить отдельно, может уточнить интервал только после возврата той же подтверждённой точки. По желанию.
cl_it_ordinals0=выкл / 1=вкл (по умолчанию)Показывать BSP-номер (1, 2, ...) на HUD, когда на карте больше одного такого предмета, чтобы различать одинаковые предметы.
cl_it_learn0=выкл (по умолчанию) / 1=вкл (нужен cl_it_world_observe)Использовать интервалы возрождения, выученные при наблюдении за миром: когда одна и та же BSP-точка исчезает и снова появляется, это её реальное время респавна (только сессия, в пределах 5-300 с). Требует cl_it_world_observe. Никогда не учится по подбору только по типу предмета. Динамическая Mega исключена, пока фиксированный override не задаст эталон. По умолчанию выкл.
cl_it_bsp_match_radius8..512 / по умолчанию 64Радиус сопоставления (юниты мира) видимого предмета с его BSP-точкой. Видимый предмет должен быть в этом радиусе от BSP-точки того же типа, чтобы стать доверенным экземпляром; несопоставленные (дроп/с трупа) игнорируются.
cl_it_instance_cluster_radius8..512 / по умолчанию 64Радиус объединения (юниты мира) близких BSP-точек одного типа предмета при построении каталога. Каталог строится на карту; изменение действует после карты/перезагрузки.
cl_it_pickup_attach_radius16..2048 / по умолчанию 200Для ручного «it_start <id> <секунды>»: насколько близко должна быть BSP-точка, чтобы ручной таймер привязался к ближайшему экземпляру. Дальше — таймер уровня типа (без номера).
cl_it_own_touch_radius16..128 / по умолчанию 64Радиус доверия автоматическому своему подбору. STAT_PICKUP_STRING только с типом должен появиться настолько близко к BSP-точке карты того же типа, что отбрасывает обычные выпавшие предметы и оружие с трупов. При cl_it_world_observe тот же радиус определяет, взял ли исчезнувший видимый экземпляр текущий POV. Это также позволяет отдельно считать одинаковые предметы карты.

Для каждого ID из каталога автоматически создаются семейства:

ШаблонНазначение
cl_it_<id>_showУчаствует ли тип предмета в системе
cl_it_<id>_sРезервный интервал типа
cl_it_<id>_hudРазрешён ли вывод этого типа на HUD
cl_it_<id>_hud_sЗа сколько секунд показывать ячейку
cl_it_<id>_sndРазрешён ли звук для типа
cl_it_<id>_snd_sЗа сколько секунд начинать звук
cl_it_<id>_colorЦвет акцента ячейки

Две переменные, cl_it_debug и cl_it_world_debug, относятся к диагностике и действуют только в текущем сеансе: они не сохраняются в конфиг и при следующем запуске снова равны нулю.



15. Настройка игрового сервера

Для R1Q2 и Q2PRO рекомендуется задавать решение в serverinfo. Флаг s обязателен, иначе клиент не увидит параметр через стандартный запрос статуса.

Разрешить автоматические таймеры:

set sv_allow_timers "1" s

Запретить автоматические таймеры:

set sv_allow_timers "0" s

Если параметр отсутствует, официальный клиент Q2PRO-X обращается к политике сайта. Если сервер скрывает стандартный status, прочитать параметр также не получится, и будет использована политика сайта.

Эта переменная не отключает ручной секундомер пользователя.


16. Управление разрешающим списком через API

Сайт читает текстовый файл политики заново при каждом запросе, поэтому изменение списка не требует перезапуска Node-процесса.

Формат:

force:0

q2.playground.ru:27910;ПГ ДМ

203.0.113.10:27910;Пример IPv4

[2001:db8::10]:27910;Пример IPv6

Правила файла:

первая значимая строка должна быть force:-1, force:0 или force:1;
пустые строки и строки с # игнорируются;
каждая следующая строка имеет вид хост:порт;описание;
первая точка с запятой отделяет адрес, остальные могут входить в описание;
порт обязателен;
DNS-имя резолвится на стороне API, после чего клиент сравнивает точный числовой IP и порт фактического подключения;
совпадения по маске, только по имени или без порта не допускаются.

Режимы force:

force:0 разрешает только перечисленные IP:порт;
force:1 разрешает любой сервер, который дошёл до сайтной проверки;
force:-1 запрещает любой сервер, который дошёл до сайтной проверки.

force не переопределяет явное решение sv_allow_timers игрового сервера.

В принятой production-схеме конфигурация и приватный ключ хранятся вне публичного каталога сайта. Рекомендуемые переменные окружения:

Q2PROX_TIMER_AUTH_PRIVATE_KEY_FILE=C:/nodejs/Q2PRO-X-private/timer-auth-private-key-1.pem

Q2PROX_TIMER_AUTH_CONFIG=C:/nodejs/Q2PRO-X-private/timer-authorization-servers.txt

Приватный ключ нельзя помещать в репозиторий, публичную директорию, архив клиента или журнал.


17. Защита ответа API

Протокол использует несколько независимых уровней защиты:

HTTPS/TLS со строгой проверкой имени хоста и сертификата;
запрет небезопасных перенаправлений;
подпись ECDSA P-256/SHA-256;
новый криптографически случайный nonce для каждого запроса;
привязка подписи к хешу запроса, nonce, конкретному IP:порту и времени;
короткий срок действия ответа, не более 30 секунд;
встроенный в клиент открытый ключ без приватного секрета.

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

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



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

Начните с одной команды:

it_info

Она показывает:

состояние cl_it, автостарта, HUD и наблюдения;
каталог предметов и резервные интервалы;
источник решения авторизации;
адрес проверенного сервера;
описание совпавшей записи сайта;
поколение текущего подключения;
напоминание о доступности ручных таймеров.

Дополнительные команды:

it_info active; it_info world

Для подробного журнала можно временно включить cl_it_debug 1 и cl_it_world_debug 1. Обе переменные действуют только до конца сеанса и в конфиг не попадают; чтобы прекратить вывод раньше, верните их в 0.


19. Типичные ситуации

Автотаймер не запускается, ручной работает

Это нормальный признак отсутствия разрешения, неподтверждённой постоянной BSP-точки или отключённого типа предмета. Выполните it_info и проверьте источник решения, cl_it_auto_own и cl_it_<id>_show.

Подобранное выброшенное оружие не создало таймер

Так и задумано. Автоматический режим принимает только подбор у постоянной точки карты. Для выброшенного оружия используйте ручной it_start, если отсчёт нужен.

HUD не виден

Проверьте cl_it 1, cl_it_hud 1, лимит ячеек, координаты и индивидуальный cl_it_<id>_hud. При открытом меню нужен cl_it_hud_in_menu 1 и достаточно прозрачное меню.

Нет звука

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

Mega не начала отсчёт сразу

В динамическом режиме это правильно. После собственного подбора клиент ждёт перехода здоровья к 100 и только затем запускает 20-секундный этап.

После смены наблюдаемого игрока всё очистилось

Это значение по умолчанию cl_it_reset_on_pov_change 1, защищающее от смешения событий разных POV. При необходимости его можно отключить в меню.

Сайт недоступен

Игровое подключение не блокируется. Автоматический запуск остаётся запрещённым, ручные таймеры продолжают работать. Администратор может избежать зависимости от сайта явным sv_allow_timers 1 или 0 в serverinfo.


20. Рекомендуемые профили

Обычная онлайн-игра

cl_it 1

cl_it_auto_own 1

cl_it_hud 1

cl_it_reset_on_pov_change 1

cl_it_world_observe 0

Ручной секундомер без автоматизации

cl_it 1

cl_it_auto_own 0

cl_it_hud 1

Наблюдение за матчем с раздельными экземплярами

cl_it 1

cl_it_auto_own 1

cl_it_world_observe 1

cl_it_ordinals 1

cl_it_reset_on_pov_change 1


21. Итог

Живые таймеры Q2PRO-X совмещают удобный HUD и ручной секундомер с жёсткими границами автоматизации. Ручной режим остаётся доступным везде, автоматический режим работает только по собственному подтверждённому подбору и только после разрешения локального сервера, serverinfo или подписанной политики сайта.

Для пользователя главным диагностическим инструментом является it_info, а для администратора самым простым и однозначным управлением остаётся set sv_allow_timers "1|0" s.