Для начала понадобится СДК
Стоит понимать, что СДК воспринимает на открытие локаций в Level editor только формат *.level, поэтому лучше поискать исходники локаций от разработчиков и поместить их себе в папку maps или rawdata\levels, но если исходников не оказалось, то придется заниматься декомпилом\распаковкой локации из gamedata\levels через конвертер
Предположим, что у нашей локации нет исходников, значит нам остается по пути "gamedata\levels\имя_локации" взять локацию для примера добавим МП карту в сингл testers_mp_darkvalley
укажем локацию в батнике конвертера и распакуем и откроем в Level Editor
Если локация из другой части трилогии, либо отсутствует АИ Сетка, то её нужно создать\пересоздать
Если на локации нет граф поинтов их нужно расставить, хотя бы 5 штук(по ним ходят нпс в алайфе), далее зайдем в обжект лист и выделим все наши поинты, и открываем
Нужно заполнить локейшен 1, чтобы добавить новую локацию нужно сделать это в:
C:\SDK_default\gamedata\config\game_graphs.ltx
[location_0]
018 = "Долина"
а пока предлагаю выбрать даркскейп или мердтвый город, так как по сути свободны
Также в одном из графов можно указать локацию, на которую смогут переходить НПС и граф поинт той локации, на которую перейдут, например, Кордон, имя графа start_actor_01
Нужно прописать локацию всем, кто собирает через XrAi, для тех кто через SkyLoader не критично, программа сканит папку левелс, но опцию включить можно, чтобы брала все уровни из этого файла.
Также это влияет на отоборажение возможных локаций в левел ченджерах и графах.
C:\SDK_default\gamedata\config\game_levels.ltx
В начале файла
[levels]
level21
и в конец файла
[level21]
name = testers_mp_darkvalley
caption = "testers_mp_darkvalley"
offset = 3000.0, 1000.0, 0.0
id = 21
Если не сделать карту в ПДА, то будет вылет pLtx->section_exist(Level().name())
C:\SDK_default\gamedata\config\game_maps_single.ltx
[level_maps_single]
testers_mp_darkvalley
[testers_mp_darkvalley]
texture = map\map_mp_darkvalley
bound_rect = 83.905, -430.243,479.941, -34.153
global_rect = 675.0, 1629.0, 907.0, 1861.031616
weathers = pripyat
music_tracks = l04_darkvalley_musics
нужно открыть любой файл из gamedata\config\text\rus\
и добавить string
<string id="testers_mp_darkvalley">
<text>Долина</text>
</string>
По пути \gamedata\textures\intro\ Создается изображение в формате .dds, с именем intro_имя_локации.dds, то есть в нашем случае intro_testers_mp_darkvalley.dds
Для локации нужно прописать террейн в textures.ltx, иначе он будет вылетать по отсутствию шейдера "deffer_impl_flat.vs", или будет мутный\мыльный террейн, если даже если шейдер есть.
C:\SDK_default\gamedata\textures\textures.ltx
[association]
terrain\terrain_marsh = detail\detail_grnd_grass, 144.000000, usage[diffuse]
[specification]
terrain\terrain_marsh = bump_mode[none], material[1.00]
terrain\terrain_marsh_mask = bump_mode[none], material[1.00]
[types]
terrain\terrain_marsh = 4
terrain\terrain_marsh_mask = 0
Если используете СДК от Яра, то террейн может стать расятнутым, для этого 144.000000 нужно менять на большее число, 200 к примеру. Но чтобы всё было хорошо в компиляторе ставим ключ -nosmg
касаемо шейдера заглушки \gamedata\shaders\r2\deffer_impl_flat.vs
Текст файла:
// actually - bump-mapped, but only with detail-bump
#define USE_TDETAIL
#include "deffer_base_bump.vs"
Если на локации не будет источников освещения, то у вас может не проходить валидейт, поэтому добавляем хотя бы по одному лайт и глоу на локацию.
Также хочу отметить, что никакие мп элементы с локации не удалял и она отлично работает
Дальше осталось только собрать локацию