Вспомогательные системы отладки

XashXT

Вспомогательные системы отладки

XashXT имеет различные системы отладки, которые призваны облегчить жизнь левел-дизайнеру. Как правило, тот или иной механизм включается через консольную переменную или команду, однако иногда отладка включается для конкретной энтити при помощи специального спаунфлага (см. описание энтить: новых или модифицированных стандартных).

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

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

Консольные переменные

phys_debug Включает визуализацию коллизий для физического движка PhysX.
phys_qdebug На данный момент просто рисует центры у func_door_rotating.
p_speeds Выводит информацию о текущем состоянии физического движка PhysX и объектах на сцене.
r_speeds Принимает значения от 1 до 9. Выводит различную информацию о состоянии рендерера.
r_showtextures Принимает значения от 1 до 14. Показывает различные загруженные текстуры, группируя их по опредленному признаку.
sv_novis Выключает отсечение энтить по PVS на сервере, дабы отличить его от клиентского отсечения видимости.
r_novis Выключает отсечение энтить по PVS на клиенте. Обычно влияет только на мировые полигоны, поскольку энтити отсекаются на сервере.
r_lockpvs Блокирует обновление PVS, чтобы левел-дизайнер мог увидеть дальность прорисовки.
r_lightmap Рисует лайтмапы без диффузных текстур.
gl_wireframe Включает отрисовку разбиения полигонов на блоки.
r_drawentities По умолчанию значение равно 1. В режимах от 2 до 6 рисует кости, хитбоксы и т. д.
gl_renderer По умолчанию равен 1. Переключение в ноль позволяет задействовать рендерер игрового движка и сравнить полученную картинку.
showtriggers Показывает триггеры на карте. Работает только после рестарта уровня.

Консольные команды

edicts_info Выводит краткую информацию по эдиктам.
entity_info Выводит подробную информацию по энтитям.
entpatch Создаёт дамп скриптового файла с описанием энтить, который может быть отредактирован вручную. В дальнейшем движок будет грузить именно его, вместо встроенных энтить.
fire Позволяет активировать любую энтить прямо по взгляду игрока, либо активировать энтить, явно указав её имя как аргумент команды.
impulse 103 Выводит информацию о состоянии AI монстра.
impulse 104 Выводит информацию о состоянии глобальных энтить (состояние которых можно модифицировать при помощи env_global).
impulse 106 Выводит информацию о состоянии обычных энтить (имя, глобальное имя, модель, родитель).
impulse 107 Выводит имя текстуры по взгляду игрока.
impulse 203 Удаляет объект с карты (кроме мира и игроков, конечно).
showtriggers_toggle Альтернатива квару showtriggers. В отличие от него показывает триггеры, не требуя рестарта карты. Однако большинство современных компиляторов (ZHLT, VHLT) имеют в своём коде оптимизацию, благодаря которой все триггеры, покрытые текстурой AAATRIGGER, удаляются, оставаляя только физический хулл, но не оставляя видимый. Чтобы избежать такого поведения, вам следует компилить карту с параметром командной строки -nonullifytrigger для hlcsg. Либо использовать для триггеров текстуру с другим названием.