Первое, что вам понадобится - это установленный СДК с настроенным аивраппером. Как настроить - подробно описано в шапке темы. Далее необходимо определиться, какие локации вы хотите иметь в своем паке. Рассмотрим такой случай - мы хотим иметь в своей игре три локации: кордон, генераторы и болота ЧН. 
 1. Подготовка к подключению этих локаций друг к другу. 
 Кордон в СДК у нас уже есть - мы скопировали туда всю геймдату ТЧ после установки СДК. Копируете генераторы и болота в папку level_editor\gamedata\levels. Если локация была до этого скомпилирована в СДК ТЧ (в нашем случае кордон и генераторы), делать больше ничего не надо, переходите к шагу 2. Если локация из ЧН или ЗП - придется поработать, ДАЖЕ если вы взяли локацию из пака локаций для ТЧ. Рассмортим работу с локацией из ЧН или ЗП на примере болот ЧН: 
 а) Удалите из папки с локацией level.spawn и level.ltx. После этого в папке с конвертером от бардака (предполагается, что он есть и настроен) создаете батник с таким текстом: 
 converter -level marsh -mode le 
 pause 
 Конвертер декомпилирует болота в формат СДК. 
 б) Откройте в Actor Editor объект terrain_marsh. Выберите справа Object Items и смотрите, какой шейдер присвоен, если тот, которого не хватает, то присвойте один из оригинальных шейдеров 
 Пример для воды: 
 Shader - effects \ water 
 Compile - def_shaders \ def_vertex 
 Game Mtl - material \ water 
 в) Открываете Level Editor. В нем открываете болота. Переходите в раздел objects (панель справа) и удаляете все, кроме объекта terrain (клик по объекту - del). Если у вас не очень сильный компьютер и LE зависает при открытии - удалите все объекты, кроме террейна в папке rawdata\objects\levels\marsh. 
 г) Ставите на карту light. Нажимаете вкладку light, потом сверху слева кнопку "чайник" и потом кликаете куда-нить на локу 
 д) Теперь нажмите glow, и аналогичным образом ставите на локу glow. В появившемся окне со свойствами glow выберете textures, где задайте текстуру glow_04. 
 е) Поставьте граф-поинты. Для этого перейдите в spawn element ai > graph point и поставьте по уровню некоторое количество граф-поинтов. Чем больше, тем лучше, однако слишком усердствовать не стоит. Ставить необходимо в местах скопления сталкеров и по предполагаемым путям их хождения. Сотни граф-поинтов вполне хватит. Один из графов, где вы хотите сделать появление ГГ при переходе с другой локации, можете назвать start_actor_01. 
 ж) Ставите низкое качество компиляции. Затем зайдите scene > options, после чего переименуйте name prefix и level path в название локации 
 з) Делаете лоды. Заходите objects > objects library, там, где написано Preview, есть окошко. Нажмите туда, после чего в доп окошке Object Library перейдите в levels > marsh. Там нажмите на объект marsh_lod0000, после этого нажмите make lod (low quality), потом yes. Вылезет еще окошко - Select Library Objects, теперь опять levels > marsh и там плюсиками выберите все лоды локации. После этого - ок. 
 и) Добавьте на локацию какой-нибудь объект - например, автомат. Если этого не сделать, аивраппер потом будет капризничать. 
 к) Компилируете на низшем качестве - Make Game и Build. 
 л) Последний шаг - скомпилируйте геометрию. Создайте в папке level_editor батник 
 @start bins\compiler\xrLC.exe -f marsh 
 и дождитесь окончания. 
 На этом все. Переходим к шагу 2. 
 2. Работа с аивраппером. 
 Перед началом работы с авираппером, необходимо показать ему, с какими локами ему работать. Вам нужно править три файла: game_graphs.ltx, game_levels.ltx и games_maps_single.ltx. Все они лежат в папке level_editor\gamedata\config. Разберем содержимое каждого файла 
 ----game_graphs.ltx----- 
 [location_0] 
 000 = "..." 
 001 = "l01_escape" 
 002 = "generators" 
 003 = "marsh" 
 <в секции location_0 необходимо составить список своих локаций. Остальное не трогаем> 
 [location_1] 
 000 = "..." 
 001 = "ограниченный доступ" 
 002 = "запрещенный доступ" 
 [location_2] 
 000 = "..." 
 001 = "не для игрока" 
 [location_3] 
 000 = "..." 
 ----game_levels.ltx----- 
 [levels] 
 level01 
 level02 
 level03 
 <Записываете свои локации по такому образцу> 
 [level01] 
 name = L01_Escape 
 caption = "L01_Escape" 
 offset = 3000.0, 1000.0, 0.0 
 id = 01 
 [level02] 
 name = generators 
 caption = "generators" 
 offset = 1000.0, 1000.0, 6000.0 
 id = 02 
 [level03] 
 name = marsh 
 caption = "marsh" 
 offset = 2000.0, 1000.0, 0.0 
 id = 03 
 ----game_maps_single.ltx----- 
 [level_maps_single] 
 L01_escape 
 generators 
 marsh 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 [level_music_tracks] 
 music\amb01 = 0, 12, 0.5, 10,20 
 music\amb03 = 0, 12, 0.5, 10,15 
 music\amb07 = 12,24, 1.0, 5, 25 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 [global_map] 
 texture = ui\ui_global_map --не трогаем! 
 bound_rect = 0.0,0.0, 1024, 2634.0 --не трогаем! 
 max_zoom = 6.0 --не трогаем! 
 [l01_escape] 
 texture = map\map_escape --путь к текстуре мини-карты для вашей локации 
 bound_rect = -317.164, -633.718, 404.880, 811.627 --координаты внутри локации в формате: минимальная X, минимальная Y, максимальная X, максимальная Y 
 global_rect = 355.0,2011.0, 576.0,2453.000000 --координаты локации на глобальной карте в формате: северо-западный угол - юго-восточный угол. 
 weathers = default --погодный пресет. Ставьте default, если не делали своего. 
 music_tracks = l01_escape_musics --амбиентные звуки на локации. 
 [generators] 
 texture = map\map_generators 
 bound_rect = -351.81, -639.389, 352.818, 65.245 
 global_rect = 300.0,500.0, 400.0,600.0 
 weathers = stancia 
 [marsh] 
 texture = map\map_marsh 
 global_rect = 22.0, 2113.0, 352.0, 2443.000000 
 bound_rect = -445.000000,-445.000000,755.000000,755.000000 
 weathers = boloto 
 С файлами разобрались. Теперь разберемся с аивраппером. Если ваша локация делалась с нуля в СДК, или вы работаете с локациями ЧН и ЗП, то для каждой из таких локаций нужно сначала просчитать АИ-сетку. В нашем случае это Болота. Создаем и запускаем такие батники в папке с аивраппером: 
 а) Сборка черновой сетки ИИ: 
 aiwrapper -draft -f marsh 
 После окончания работы аивраппера вы получите следующий файл: gamedata\levels\<имя_уровня>\level.ai. 
 б) Проверка связности сетки ИИ: 
 aiwrapper -verify marsh 
 в) Просчёт укрытий для сетки ИИ. 
 aiwrapper -f marsh 
 Вообще, этот шаг необязателен на ранних этапах тестирования карты. 
 г) Сборка ИИ-графа: 
 aiwrapper -g marsh 
 После окончания работы аивраппера вы получите следующий файл: gamedata\levels\<имя_уровня>\level.{graph|gct.raw} 
 Далее нужно соединить наши локации аивраппером в единое целое. Для этого создаем и запускаем такие батники в папке с аивраппером: 
 а) Склейка ИИ-графов карт в глобальный игровой граф: 
 > aiwrapper -m 
 На выходе: gamedata\game.graph и gamedata\levels\*\level.gct 
 б) Сборка all.spawn 
 > aiwrapper -s 
 На выходе: gamedata\spawns\all.spawn 
 Если все прошло удачно - поздравляю. Однако еще не все. 
 3. Пересборка all.spawn. Если вы не работаете с локами ЧН или ЗП - пропускайте этот шаг. 
 Аивраппер собрал нам all.spawn - это замечательно. Однако от локации ЧН или ЗП у нас в спавне только автомат, что мы воткнули в LE. Нет ламп и источников света, нет лестниц. Чтобы привести локацию в более-менее приличный вид, нужно пересобрать спавн. 
 а) Первым делом, распакуйте получившийся спавн. Для этого качаем отличную тулзу acdc и открываем файл acdc.pl. Там найдите подобную таблицу: 
 use constant levels_info => ( 
 { gvid0 => 600, }, 
 { gvid0 => 329, name => 'marsh' }, 
 { gvid0 => 252, name => 'generators' }, 
 { gvid0 => 0, name => 'l01_escape' }, 
 ); 
 Оставляете только те локации, что мы объединяем. Меняем параметр gvid0 на начальный геймвертекс вашей локации. Узнать эти вертексы просто - в папке с acdc должна быть тулза ggtool.pl. Берете получившийся при работе аивраппера game.graph (из папки level_editor\gamedata) и кидаете его в папку с ggtool.pl. После чего создаем и запускаем такой батник: 
 ggtool.pl game.graph >svyazi.txt 
 После окончания работы тулзы открываете появившийся файл svyazi.txt и там смотрите начальные вертексы. Верхнее ограничение по вертексам (gvid0 => 600) высчитывается примерно как вертекс от последней локи + 300-400 (возьмем с запасом). 
 После правки acdc.pl кидаете в папку с ним получившийся all.spawn (из папки level_editor\gamedata\spawns). После этого декомпилируете all.spawn. Открываете файл alife_marsh.ltx (наша ЧН-локация). Распакуйте оригинальный спавн той игры, откуда выдернули локацию (у нас ЧН), и открываете файл наше локации. Теперь основная задача - перенести из оригинального спавна в наш секции следующего типа: 
 section = climable_object (это лестницы) 
 section = lights_hanging_lamp (источники света) 
 Вообще, можете переносить хоть все - зависит от того, хотите ли вы получить чистую локацию или с оригинальным спавном. Единственный совет - не копируйте секции breakable_object и проверяйте визуал в секциях lights_hanging_lamp. Наличие breakable_object или ссылок на визуалы ламп, которых нет в ТЧ, приведет к вылетам Invalid vertex type for skinned object. Лечение пока не найдено. 
 Еще одно замечание - правьте game_vertex_id у переносимых секций. Значение гейм-вертекса должно соответствовать локации. В нашем примере, кордону соответствуют вертексы 0-252, генераторам - 252-329, болотам - больше 329 (смотрим acdc.pl). 
 На этом все. Если хотите, сделайте переходы между локациями. Компилируете all.spawn 
 4. Создание АИ-переходов. 
 Поскольку сборку мы создаем для дальнейшего моддинга, нам необходимы АИ-переходы. Эти переходы позволяют неписям переходить с локи на локу. Даже если вы не собираетесь отправлять ваших квестовых неписей на другю локацию, без аи-переходов невозможен полноценный оффлайн-алайф. Поэтому сделаем их. 
 Делать Аи-переходы можно двумя способами. Первый - вместо aiwrapper -m сделать aiwrapper -m2 links.fixed. В файле links.fixed здесь указываются соединяемые вертексы разных локаций. Однако, я больше привык использовать второй способ - работать с утилиткой Колмогора - edge_add, ее и опишу. 
 Кладете свой game.graph в папку с edge_add.exe. Создаем батник, где прописываем следующее: 
 edge_add.exe game.graph 37 300 
 del game.graph 
 rename game.graph.new game.graph 
 edge_add.exe game.graph 45 400 
 del game.graph 
 rename game.graph.new game.graph 
 edge_add.exe game.graph 320 420 
 del game.graph 
 rename game.graph.new game.graph 
 Числа - это соединяемые вертексы локаций. Здесь написаны наобум, когда будете делать сами - выбирайте вертексы поближе к краям лок, там, где непись бы логично мог пройти. 
 После запуска и окончания работы утилитки получаем готовый game.graph 
 5. Правка карт освещения. 
 Этот шаг выполняется только для локаций из ЧН или ЗП, и только в том случае, если вы брали локу из оригинальной игры. Если это ваш случай, начнем. А если брали из пака лок для ТЧ - делать шаг НЕ НАДО. 
 Открываете папку с локацией там, где вы ее брали. Находим такие файлы lmap*_1.dds и lmap*_2.dds. Наша задача - чтобы в r1 и r2 не было некрасивых жутко черных теней. 
 Работаем через программу paint.net (требует установленного .Net Framework v2.0), кто умеет, может делать через фотошоп. 
 В папке с уровнем будем редактировать лайтмапы: 
 lmap*_1.dds - снижаем контраст на 15 единиц и сохраняем в формате dxt5 без мипмапов, с ними все 
 lmap*_2.dds переделывать сложнее - задача сделать менее прозрачным. Пересохраняем как dds в формате R5G6B5, прозрачность исчезнет совсем. Открываем снова и меняем прозрачность с 255 до 30, затем снижаем контраст на 15 единиц и сохраняем в формате dxt5 без мипмапов. 
 6. Вставка локаций в игру. 
 Нам необходимы следующие файлы: 
 configs\game_graphs.ltx 
 configs\game_levels.ltx 
 configs\game_maps_single.ltx 
 levels\l01_escape\ 
 levels\generators\ 
 Копируйте эти файлы в геймдату игры из геймдаты СДК. Также нужны файлы game.graph и spawns\all.spawn, их берете оттуда, где с ними работали. 
 Мы пока не скопировали паку с болотами. У лок из ЧН или ЗП несколько другой порядок копирования в геймдату игры: 
 --Берете папку marsh из оригинала, где брали ее изначально. Если берете из оригинальной игры - проверьте, что сделали шаг 5. 
 --Копируете в геймдату игры в папку levels 
 --из папки level_editor\gamedata\levels\marsh копируете с заменой два файла - level.gct и level.ai - в папку marsh в геймдате игры. 
 Все, теперь все готово. Можете запускать игру. Могут быть вылеты по шейдерам или текстурам - это нормально. Просто вставьте в геймдату игры недостающие текстуры и добавьте недостающие шейдеры с помощью Shader Editor. 
 Маленький совет: если ваша локация уже есть в оригинальной игре (у нас кордон), для уменьшения веса сборки всю папку levels\l01_escape копировать необязательно. Достаточно лишь скопировать файл level.gct из папки кордона в СДК в папку levels\l01_escape. 
 При составлении данного тутора использовались туторы от KostyaV, D1m0n и HitmanNew, а также ридми к программам от Колмогора и Бардака.  
Автор - KD87 (АМК-форум)