Переход между уровнями (level changer) — различия между версиями
RedPython (обсуждение | вклад) м |
RedPython (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
[[Файл:level-changer-prefs-01.png|center]] | [[Файл:level-changer-prefs-01.png|center]] | ||
+ | |||
+ | По идее игрок после перехода будет смотреть в ту сторону, куда указывает флажок graph point'а. | ||
Затем в свойствах самого level changer'а в поле '''Level to change''' нужно выбрать имя целевого уровня и '''Point to change''' — точку графа на том уровне, куда должен попасть игрок. | Затем в свойствах самого level changer'а в поле '''Level to change''' нужно выбрать имя целевого уровня и '''Point to change''' — точку графа на том уровне, куда должен попасть игрок. | ||
Строка 11: | Строка 13: | ||
Параметр '''Silent mode''' отвечает за вывод диалогового окошка с подтверждением желания перейти на другой уровень (да/нет). Если отмечен, то окошко не выводится и игрока перебрасывает сразу. | Параметр '''Silent mode''' отвечает за вывод диалогового окошка с подтверждением желания перейти на другой уровень (да/нет). Если отмечен, то окошко не выводится и игрока перебрасывает сразу. | ||
− | При необходимости в свойствах перехода, в параметре '''Custom data''', можно задать [[way point|точку пути]], в которую игрока будет перебрасывать при отказе перейти на другой уровень. | + | При необходимости в свойствах перехода, в параметре '''Custom data''', можно задать [[way point|точку пути]], в которую игрока будет перебрасывать при отказе перейти на другой уровень. Это нужно для того, чтобы при отказе перейти игрок не остался внутри уже сработавшего рестриктора перехода и не смог пройти сквозь него на задворки уровня.<br /> |
Формат конфига таков: | Формат конфига таков: | ||
<syntaxhighlight lang="ini">[pt_move_if_reject] | <syntaxhighlight lang="ini">[pt_move_if_reject] | ||
Строка 17: | Строка 19: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Изначально к level changer'у не подсоединён свой [[shape|шейп]], т.к. геометрия, в которой располагается точка перехода, может иметь различную форму, и, соответственно, под неё придется делать свой шейп, | + | Изначально к level changer'у не подсоединён свой [[shape|шейп]], т.к. геометрия, в которой располагается точка перехода, может иметь различную форму, и, соответственно, под неё придется делать свой шейп. Подсоединяется он стандартным способом: в режиме Shape в нужное место добавляется и масштабируется шейп, затем в режиме Spawn выделяется объект Level changer, нажимается кнопка Attach, кликается по шейпу. Если всё прошло хорошо, то флажок level changer'а переместится в центр шейпа, а сам шейп подкрасится цветом. |
[[Категория:A-Life]] | [[Категория:A-Life]] |
Текущая версия на 11:24, 20 ноября 2017
Все живые существа перемещаются по глобальному графу, и, соответственно, для них не нужны особые точки перехода — всё просчитывается автоматически компилятором xrAI. Но actor управляется игроком, а не симуляцией, поэтому для него был придуман спавн-объект Level changer, предназначенный специально для перехода игрока с одного уровня на другой.
Каждому переходу требуется по одной точке графа. В их свойствах, в разделе Connection, в параметре Level name следует выбрать имя целевой локации (на неё существо или игрока будет перекидывать), а в параметре Point name указать имя целевой точки графа (на ней существо или игрок окажется после перехода). Имена уровней читаются LevelEditor'ом из файла configs\game_levels.ltx
По идее игрок после перехода будет смотреть в ту сторону, куда указывает флажок graph point'а.
Затем в свойствах самого level changer'а в поле Level to change нужно выбрать имя целевого уровня и Point to change — точку графа на том уровне, куда должен попасть игрок.
Параметр 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'а переместится в центр шейпа, а сам шейп подкрасится цветом.