Иерархии


В XashXT имеется система родительских привязок (parent system), которая аналогично своему прототипу из Half-Life 2 позволяет прикреплять друг к другу неограниченное число объектов. Основной упор при этом делается на кинематические объекты, такие как двери, кнопки, поезда, лифты и прочие. Из уникальных возможностей присутствует переход иерархии сквозь уровни без потери функциональности и «разваливания» системы, что, например, имеет место в Half-Life 2, а также возможность форсированного прикрепления объекта средствами клиента (без учёта физики). Вторая особенность даёт мапперу возможность прикреплять непосредстенно к аттачментам NPC различные точечные объекты: спрайты, источники света, лазерные лучи, а в отдельно оговоренных случаях — модели.

Также система позволяет динамически отсоединять одни объекты из группы (с сохранением иерархии, разумеется), и присоединять их к другим, произвольным объектам. Прикрепление объектов достигается при помощи особого поля parent, где левел-дизайнеру следует указать targetname родителя. Точка с числом сразу после имени провоцируют игру на включение клиентской parent system, где число является номером аттачмента у родительской модели.

Клиентская parent system работает только для studio-моделей. Это означает что в качестве родителя могут выступать только такие модели, но не брашевые и не спрайтовые. В целях облегчения портирования карт из-под тулкита Spirit of Half-Life у поля parent есть псевдоним movewith, который выполняет те же самые действия.

Ограничения системы


  1. Ключевое слово *locus при условии, что trigger_changeparent был активирован при помощи trigger_once, trigger_multiple или trigger_inout, которые задел игрок (т. е. выступил в роли активатора)
  2. Ключевое слово *player