Переход между уровнями (level changer)

Материал из xrWiki
Перейти к: навигация, поиск

Все живые существа перемещаются по глобальному графу, и, соответственно, для них не нужны особые точки перехода — всё просчитывается автоматически компилятором xrAI. Но actor управляется игроком, а не симуляцией, поэтому для него был придуман спавн-объект Level changer, предназначенный специально для перехода игрока с одного уровня на другой.

Каждому переходу требуется по одной точке графа. В их свойствах, в разделе Connection, в параметре Level name следует выбрать имя целевой локации (на неё существо или игрока будет перекидывать), а в параметре Point name указать имя целевой точки графа (на ней существо или игрок окажется после перехода). Имена уровней читаются LevelEditor'ом из файла configs\game_levels.ltx

level-changer-prefs-01.png

По идее игрок после перехода будет смотреть в ту сторону, куда указывает флажок graph point'а.

Затем в свойствах самого level changer'а в поле Level to change нужно выбрать имя целевого уровня и Point to change — точку графа на том уровне, куда должен попасть игрок.

level-changer-prefs-02.png

Параметр Silent mode отвечает за вывод диалогового окошка с подтверждением желания перейти на другой уровень (да/нет). Если отмечен, то окошко не выводится и игрока перебрасывает сразу.

При необходимости в свойствах перехода, в параметре Custom data, можно задать точку пути, в которую игрока будет перебрасывать при отказе перейти на другой уровень. Это нужно для того, чтобы при отказе перейти игрок не остался внутри уже сработавшего рестриктора перехода и не смог пройти сквозь него на задворки уровня.
Формат конфига таков:

[pt_move_if_reject]
path = esc_level_changer_to_val_reject_way    ; патрульный путь, в начало которого перебрасывает игрока

Изначально к level changer'у не подсоединён свой шейп, т.к. геометрия, в которой располагается точка перехода, может иметь различную форму, и, соответственно, под неё придется делать свой шейп. Подсоединяется он стандартным способом: в режиме Shape в нужное место добавляется и масштабируется шейп, затем в режиме Spawn выделяется объект Level changer, нажимается кнопка Attach, кликается по шейпу. Если всё прошло хорошо, то флажок level changer'а переместится в центр шейпа, а сам шейп подкрасится цветом.