Подключение нескольких уровней

Материал из MODFAQ.RU — моддинг игр серии S.T.A.L.K.E.R., The Elder Scrolls и Fallout
Перейти к: навигация, поиск

Подключение нескольких уровней

Автор aka_sektor
Тип статьи руководство
Актуальность ЗП
Необходимый софт Текстовый редактор, X-Ray SDK 0.7
Связанные статьи
Декомпиляция уровня

Подключение одного уровня
Подключение нескольких уровней

Дабы не повторять руководство по подключению одного уровня, чтобы быстро объяснить как соединить 2 уровня, скопируем первый.

Второй уровень

1) Запустите Level Editor, и откройте первый уровень: File -> Open... -> tir.level

2) Откройте свойства сцены: Scene -> Options

Измените значение ключей Name prefix и Level path с tir на tirtwo

Сохраните изменения: File -> Save as... -> tirtwo.level

Таким образом, получен второй готовый уровень.

Лишнее наполнение

На скопированном уровне tirtwo также есть игрок, его нужно убрать, иначе при компиляции спавна произойдет 2 вариант вылета: XrAI:game_spawn_constructor.cpp

В Level Editor, выберите: Edit Mode -> Spawn Element

Найдите спавн-элемент игрока, и удалите, выделив его и нажав на клавиатуре Delete.

Прописка в конфиги

С помощью любого текстового редактора, откройте файл game_levels.ltx

И допишите к его содержимому второй уровень, чтобы получилось следующее:

[levels]
level01
level02

[level01]
name     = tir
caption  = "tir"
offset   = 10000.0,     1000.0,    10000.0
weathers = [default]
id       = 01

[level02]
name     = tirtwo
caption  = "tirtwo"
offset   = 10000.0,     1000.0,    10000.0
weathers = [default]
id       = 02

Новое наполнение

Чтобы соединить уровни между собой, потребуется добавить на обоих уровнях:

  • level changer
  • graph point (точка появления)
  • graph point (связь уровней)

Между делом, есть достаточно подробные видеоуроки об этом[1][2]:

Первый уровень

1) Откройте уровень tir в Level Editor, и выберите: Edit Mode -> Shape

Выберите: Append -> Box, и добавьте на уровень кнопкой Add, в то место, которое хотите сделать переходом.

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

Опять же, руководствуясь статьей: Интерфейс Level Editor


2) Выберите: Edit Mode -> Spawn Element

Найдите ai\level changer в Current Spawn/Spawns, и добавьте на уровень кнопкой Add.


3) Не снимая выделения со спавн-элемента level changer, выполните: Commands -> Attach Object...

И кликните по ранее поставленному шейпу box. Флажок станет одним целым с шейпом.


4) Выделите шейп спавн-элемент, и нажмите на клавиатуре Enter (чтобы перейти в Properties).

Для удобства, измените значение ключа Name с tir_level_changer на perehod_na_tirtwo

Значение ключа restrictor type измените на NOT A restrictor

Ключу Level to change задайте значение tirtwo

Ключу Level point to change задайте значение spawn_posle_tir

Ключу Silent mode поставьте галочку, чтобы избежать вылета при переходе.

И соответственно, значение ключа Game Type должно быть только Single.


5) Добавьте graph point, который будет точкой появления на уровне tir после перехода с уровня tirtwo.

Выберите: Edit Mode -> Spawn Element

Найдите ai\graph point в Current Spawn/Spawns, и добавьте на уровень кнопкой Add, желательно, рядом с шейпом спавн-элементом перехода.

Не снимая выделения, нажмите на клавиатуре Enter (чтобы перейти в Properties).

Измените значение ключа Name с tir_graph_point_0000 на spawn_posle_tirtwo


6) Добавьте graph point связи уровня tir с уровнем tirtwo.

Выберите: Edit Mode -> Spawn Element

Найдите ai\graph point в Current Spawn/Spawns, и добавьте на уровень кнопкой Add, в любое место, главное на AI-сетке.

Не снимая выделения, нажмите на клавиатуре Enter (чтобы перейти в Properties).

Измените значение ключа Name с tir_graph_point_0000 на svyaz_tir_s_tirtwo

Ключу Location, за номером 3, задайте значение не для игрока. После этого graph point должен сменить свой цвет, с фиолетового, на аква.

Ключу Level name задайте значение tirtwo

Ключу Point name задайте значение svyaz_tirtwo_s_tir


Второй уровень

Аналогично первому уровню, выполните 1, 2 и 3 пункты на уровне tirtwo

4) Аналогично первому уровню, кроме:

Значение ключа Name измените с tirtwo_level_changer на perehod_na_tir

Ключу Level to change задайте значение tir

Ключу Level point to change задайте значение spawn_posle_tirtwo


5) Аналогично первому уровню, кроме:

Значение ключа Name измените с tirtwo_graph_point на spawn_posle_tir


6) Аналогично первому уровню, кроме:

Значение ключа Name измените с tir_graph_point на svyaz_tirtwo_s_tir

Ключу Level name задайте значение tir

Ключу Point name задайте значение svyaz_tir_s_tirtwo

Готово! Переходы, точки появления и связи, добавлены на уровни.

Билд

По скольку первый уровень tir уже билдился, ему будет достаточно заново выполнить: Compile -> Make Game

А вот второй уровень tirtwo ещё не билдился, поэтому нужно выполнить: Compile -> Build

Компиляция

По скольку первый уровень tir уже компилировался, первые 4 этапа выполнить нужно только второму уровню tirtwo.

Команды те же, просто смените имя уровня в них.

Этап 5 — компиляция спавна

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

start bin\designer\release\xrAI.exe -no_separator_check -s tir,tirtwo -out all

Перенос файлов в игру

Уровни готовы, осталось их перенести в игру, с учетом наличия первого уровня.

1) Скопируйте из папки gamedata/configs в аналогичную в игре, файл game_levels.ltx

2) Скопируйте из папки gamedata/levels в аналогичную в игре, папки tir и tirtwo.

3) Скопируйте из папки gamedata/spawns в аналогичную в игре, файл all.spawn.

Готово!

Источники