Добавление локаций в ЧНЗП с помощью программы от AMK Team 
 Подготовка. 
  Устанавливаем active perl.  
 Заходим в папку с программой ggEditor_01.Создаем там папки Cs или Cop(Смотря на какую игру делаете) и папку Soc.В папке Soc создаем папку gamedata и кидаем в нее файл game.graph(Важно чтобы game.graph лежал там, иначе программа не прочитает.) из мода, или от ТЧ.В папке gamedata создаем папку levels и кидаем туда папку с уровнем, который мы хотим портировать. Далее возвращаемся в папку Soc и туда кидаем папку с ACDC для ТЧ, туда же кладём all.spawn.Запускаем соответствующий батник для распаковки all.spawn`а. 
 Далее в папку ggEditor_01\Cs или Cop, кидаем папку с соответствующим ACDC, опять-же кладем туда all.spawn, распаковываем. 
 В итоге у нас должно получиться 2 распакованных all.spawn`а, game.graph от ТЧ и папка с переносимым уровнем. 
 С приготовлениями всё. [править] Основная работа. 
 Запускаем программу ggEditor.Видим там два окошка. В левом открываем game.graph от ТЧ, а в правом — от ЗП или ЧН(В ЗП и ЧН граф вшит в all.spawn, ищите его там.)(Нужно выбрать тип файлов для ЧН — graph.bin, а для ЗП — все файлы и открыть в папке с ACDC файл section4.bin). В окошках мы видим список уровней. В левом окошке находим нужный нам уровень и нажимаем на соответствующую стрелку для переноса уровня в нужный нам граф. Нажимаем в правом окошке «сохранить».После того, как граф сохранился, можно закрыть программу, она нам больше не понадобится. Потом этого шагаем в папку с ACDC для ЧН\ЗП и удаляем старые файлы section4.bin или graph.bin.Затем переименовываем файлы graph.bin.new или section4.bin.new в graph.bin и соответственно section4.bin. 
 Далее идем в папку с ACDC от ТЧ, находим там файл alife_наша_локация и копируем его. Затем шуруем в папку с ACDC от ЧН\ЗП, вставляем скопированный нами файл. Открываем этот файл, сносим все, оставляем только одну секцию спавна(Лучше всего если это будет какой-нибудь объект), присваиваем секции номер не меньше 20000, сворачиваем на время этот файл. Далее нужно подогнать вертексы. Для этого запускаем батник ggtool, ждем некоторое время, после чего появляются имена локаций, а рядом с ними числа. Смотрим это число рядом с нашей локацией(в ЧН это скорее всего будет 1620, а в ЗП 934).Далее разворачиваем alife_ файл с нашей локацией, ищем там строку «game_vertex_id» и пишем там число которое появилось рядом с нашей локацией при запуске батника ggtool.Затем обращаем свой взор на строку «level_vertex_id».К исходному значению строки прибавляем число, которое мы записали в строку «game_vertex_id», полученное число записываем. Далее, в добавляемых потом секциях спавна нужно писать эти числа. Мы подогнали вертексы. 
 Затем открываем файл all.ltx.Вписываем туда свой alife_ файл локации, way_ файлы не трогаем. Меняем на соответствующее число локации строку level_count. 
 После этого открываем файл alife_zaton(для ЗП) или alife_marsh(для ЧН)и ищем там гг по строке «section_name=actor%C2%BB%2E%D0%9D%D0%B0%D1%88%D0%BB%D0%B8%3F%D0%9E%D1%82%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%2E Теперь присваиваем этой секции спавна позицию(новую позицию прописываем также в строке "upd:position = ") и вертексы как у единственного предмета в файле alife_новая_локация. При следующей распаковке, если вы все сделали правильно, наш актор окажется в файле alife_новая_лока. 
 Мы почти закончили с пробной сборкой новой локации(пока без перехода). 
 Осталось только прописать наш новый уровень в файл ACDC Cop\acdccop.pl(для ЗП)либо в файле ACDC Cs\stkutils\level.pm. 
 В этих файлах ищем такие строки(для ЗП): 
 use constant levels_info => ( 
 { gvid0 => 934, }, 
 { gvid0 => 883, name=%26gt%3B 'jupiter_underground' }, 
 { gvid0 => 857, name=%26gt%3B 'labx8' }, 
 { gvid0 => 666, name=%26gt%3B 'pripyat' }, 
 { gvid0 => 317, name=%26gt%3B 'jupiter' }, 
 { gvid0 => 0, name=%26gt%3B 'zaton' }, 
 И если у вас число когда мы запускали батник ggtool тоже 934 то прописываем так: 
 use constant levels_info => ( 
 { gvid0 => 934, name=%26gt%3B 'ваша_локация' }, 
 { gvid0 => 883, name=%26gt%3B 'jupiter_underground' }, 
 { gvid0 => 857, name=%26gt%3B 'labx8' }, 
 { gvid0 => 666, name=%26gt%3B 'pripyat' }, 
 { gvid0 => 317, name=%26gt%3B 'jupiter' }, 
 { gvid0 => 0, name=%26gt%3B 'zaton' }, 
 А в файле level.pm от ACDC ЧН вы увидите такой текст: 
 use constant levels_info => ( 
 { gvid0 => 1620, }, 
 { gvid0 => 1573, name=%26gt%3B 'l12_hospital' }, 
 { gvid0 => 1565, name=%26gt%3B 'l11_stancia2' }, 
 { gvid0 => 1524, name=%26gt%3B 'l10_limansk' }, 
 { gvid0 => 1511, name=%26gt%3B 'l09_agroprom_undeground' }, 
 { gvid0 => 1313, name=%26gt%3B 'l08_military' }, 
 { gvid0 => 1212, name=%26gt%3B 'l07_yantar' }, 
 { gvid0 => 1057, name=%26gt%3B 'l06_agroprom' }, 
 { gvid0 => 961, name=%26gt%3B 'l05_red_forest' }, 
 { gvid0 => 743, name=%26gt%3B 'l04_darkvalley' }, 
 { gvid0 => 472, name=%26gt%3B 'l03_escape' }, 
 { gvid0 => 245, name=%26gt%3B 'l02_garbage' }, 
 { gvid0 => 0, name=%26gt%3B 'l01_marsh' }, 
 Прописать там свой уровень нужно точно так-же как в файле от ACDC ЗП: 
 use constant levels_info => ( 
 { gvid0 => 1620, name=%26gt%3B 'ваша_локация' }, 
 { gvid0 => 1573, name=%26gt%3B 'l12_hospital' }, 
 { gvid0 => 1565, name=%26gt%3B 'l11_stancia2' }, 
 { gvid0 => 1524, name=%26gt%3B 'l10_limansk' }, 
 { gvid0 => 1511, name=%26gt%3B 'l09_agroprom_undeground' }, 
 { gvid0 => 1313, name=%26gt%3B 'l08_military' }, 
 { gvid0 => 1212, name=%26gt%3B 'l07_yantar' }, 
 { gvid0 => 1057, name=%26gt%3B 'l06_agroprom' }, 
 { gvid0 => 961, name=%26gt%3B 'l05_red_forest' }, 
 { gvid0 => 743, name=%26gt%3B 'l04_darkvalley' }, 
 { gvid0 => 472, name=%26gt%3B 'l03_escape' }, 
 { gvid0 => 245, name=%26gt%3B 'l02_garbage' }, 
 { gvid0 => 0, name=%26gt%3B 'l01_marsh' }, 
 Всё.Собираем all.spawn. [править] Сборка геймдаты. 
 Осталось собрать gamedat`у для игры и смотреть что получилось. Итак, приступим: 
 В папке с игрой создаем папку gamedata, а в ней папки configs, levels, spawns.В папку spawns ложим получившийся при сборке all.spawn.new(или new.spawn), не забывая переименовать его в all.spawn.В папку levels ложим уровень из ggEditor_01\Soc\gamedata\levels\ваша_локация. Затем заходим в папку с уровнем, удаляем файл level.ai и переименовываем файл level.ai10 в level.ai. 
 Теперь осталось только прописать уровень в конфигах. Из распакованной геймдаты игры берем файлы configs\game_graphs.ltx, game_levels.ltx, game_maps_single.ltx. 
 game_graphs.ltx для ЧН должен выглядеть так: [location_0] 
 000 = "..." 
 001 = "эскейп" 
 002 = "свалка" 
 003 = "агропром" 
 004 = "агропром-подземка" 
 005 = "темная долина" 
 006 = "лаборатория X-18" 
 007 = "даркскейп" 
 008 = "Бар" 
 009 = "Росток" 
 010 = "Янтарь" 
 011 = "лаборатория X-16" 
 012 = "Милитари" 
 013 = "Мертвый город" 
 014 = "Радар" 
 015 = "Радар бункер" 
 016 = "Припять" 
 017 = "станция АЭС" 
 018 = "ваша_локация" 
 [location_1] 
 000 = "..." 
 001 = "ограниченный доступ" 
 002 = "запрещенный доступ" 
 [location_2] 
 000 = "..." 
 001 = "не для игрока" 
 [location_3] 
 000 = "..." 
 001 = "ваша_локация" 
 game_graphs для ЗП должен выглядеть так: [location_0] 
 000 = "..." 
 001 = "ваша_локация" 
 002 = "sim_smart_2" 
 003 = "sim_smart_3" 
 004 = "sim_smart_4" 
 005 = "sim_smart_5" 
 006 = "sim_smart_6" 
 007 = "sim_smart_7" 
 008 = "sim_smart_8" 
 009 = "sim_smart_base" 
 [location_1] 
 000 = "..." 
 001 = "ограниченный доступ" 
 002 = "запрещенный доступ" 
 [location_2] 
 000 = "..." 
 001 = "не для игрока" 
 [location_3] 
 000 = "..." 
 ... . ....................... 
 112 = "pri_a22_smart_terrain" 
 113 = "pri_a25_smart_terrain" 
 114 = "pri_a28_arch" 
 115 = "pri_a28_base" 
 116 = "pri_b28_evac" 
 117 = "pri_a28_heli" 
 118 = "pri_a28_school" 
 119 = "pri_a28_shop" 
 120 = "pri_b301" 
 121 = "pri_b302" 
 122 = "pri_b303" 
 123 = "pri_b304_monsters_smart_terrain" 
 124 = "pri_b305_dogs" 
 125 = "pri_b306" 
 126 = "pri_b307" 
 127 = "pri_b35_mercs" 
 128 = "pri_b35_military" 
 129 = "pri_b36_smart_terrain" 
 130 = "pri_sim_1" 
 131 = "pri_sim_2" 
 132 = "pri_sim_3" 
 133 = "pri_sim_4" 
 134 = "pri_sim_5" 
 135 = "pri_sim_6" 
 136 = "pri_sim_7" 
 137 = "pri_sim_8" 
 138 = "pri_sim_9" 
 139 = "pri_sim_10" 
 140 = "pri_sim_11" 
 141 = "pri_sim_12" 
 142 = "ваша_локация" 
 [graph_points_draw_color_palette] default = 0x6000ffff 000_000_000_000 = 0x60ff00ff 
 Далее лезем в game_levels.ltx. Там в самом начале, где список уровней, вписываем «level183»(число не менее 183.) Листаем файл до самого конца и в конце пишем следующее: [level183] name=%D0%B2%D0%B0%D1%88%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D1%8F caption = "ваша_локация" offset = 700.0, 1000.0, −840.0 weathers = [default] id = 183 
 Затем открываем файл game_maps_single.ltx и прописываем свой уровень в секции «[level_maps_single]», а затем создаем примерно такую секцию для нашего уровня: [ваша_локация] 
 global_rect = 307.0, 90.0, 717.0, 500.000000 
 weathers = dynamic_default 
 Всё.Запускайте игру и пробуйте, что получилось. 
 [править] Соединение с остальными уровнями. 
 Предлагаю вам не терять зря времени просто бегая по подключенной локации, а замерить координаты для создания перехода. Координаты будем снимать на 2-х локациях:на подключенной и на той на которую вы хотите сделать переход соответственно. На каждой локации нам нужно снять по две координаты(координата самого перехода и координата места в которое будет бросать при переходе с второй локации, вторую координату делаем на пару метров дальше, потому как если сделать близко, то сразу же будет кидать обратно, на локацию с которой переходим.).Как снять координаты, я думаю все знают, поэтому объяснять здесь не буду. 
 Мы отмерили все необходимые нам координаты. 
 Затем распаковываем сделанный нами ранее all.spawn.Теперь в нужных нам локациях, в alife_ файлах добавляем следующую секцию спавна: [1] 
 cse_abstract properties 
 section_name=level_changer name=escgar_level_changer%C2%A0%E2%80%94 уникальное имя position = 28.060224533081,16.556184768677,685.80151367188 — координаты перехода direction = 0,0,0 cse_abstract__unk1_h16 = 0x1 
 cse_alife_object properties 
 game_vertex_id = 1142 — геймвертексы distance = 0 level_vertex_id = 308110 — геймвертексы object_flags = 0xffffff3e 
 cse_shape properties 
 shapes = shape0 shape0:type = box shape0:axis_x = 1.25219917297363,0,0 shape0:axis_y = 0,3.09340000152588,0 shape0:axis_z = 0,0,1.25219917297363 shape0:offset = 0,0,0 
 cse_alife_space_restrictor properties 
 restrictor_type = 3 
 cse_alife_level_changer properties 
 dest_game_vertex_id = 1187 — вертексы локи на которую ведет переход dest_level_vertex_id = 212769 — вертексы локи на которую ведет переход dest_position = 39.396331787109,0.48722490668297,-299.7674505469 — позиция куда кидает dest_direction = 0,0,0 — поворот гг dest_level_name=l02_garbage%C2%A0%E2%80%94 на какую локу кидает dest_graph_point = start_actor_01 silent_mode = 1 
 se_level_changer properties 
 Изменяем только те места, которые я прокомментировал, комментарии соответственно, удаляем. Всё готово. Собираем all.spawn и запихиваем в игру. 
 Автор- Сталкер Батя Статью вернул- Mesnik 
 P.S. И в нос нужно дать тем кто портит статьи
СПАСИБО!  1