>
Зона - это святое место. Здесь ты сам себе хозяин, ты свободен как птица. Можно не воспринимать Зону всерьез, многие так и поступают: просто прогулка, охота, работа в конце концов. Такое иногда здесь увидишь, что если начнешь копаться в сути всей этой ерунды - загнешься... или голову сломаешь. Жизнь вообще смешная штука, а жизнь в Зоне - штука раза в два смешнее и веселее обычной. Ну ладно, задержал я тебя, сталкер, иди своей дорогой. Прощай.

Меню сайта

Мини-чат

Форма входа

Поиск

Наш опрос
из какой группировки ты?
Всего ответов: 516

Статистика
Яндекс.Метрика
Посетивишие сайт за сегодня:

Партнёры
GTA-Rus.com

Подключение локаций из ЧН,ТЧ в ЗП - Форум фанатов игры S.T.A.L.K.E.R.
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум фанатов игры S.T.A.L.K.E.R. » Техническая поддержка » Статьи (уроки) по моддингу » Подключение локаций из ЧН,ТЧ в ЗП
Подключение локаций из ЧН,ТЧ в ЗП
4o_kavoДата: Вторник, 27.09.2011, 13:34 | Сообщение # 1
Основатель сайта
Группа: Администраторы
Сообщений: 749
Награды: 10
Репутация: 48
Статус:

Инструменты:
Чем будем ковырять:
Собственно, сама программа для редактирования файла game.graph.
ACDC Для ЗП
ACDC для ЧН
ACDC для ТЧ
Распакованные ТЧ или мод из которого взят уровень.(Если вы берете уровень из мода, то вам не подойдет простой ACDC от ТЧ.)
Active perl(Необходим для работы ACDC, входит в два первых архива с ACDC).
***********************************************
Подготовка.

Устанавливаем 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».Нашли?Отлично. Теперь присваиваем этой секции спавна позицию(новую позицию прописываем также в строке "upd:position = ") и вертексы как у единственного предмета в файле alife_новая_локация. При следующей распаковке, если вы все сделали правильно, наш актор окажется в файле alife_новая_лока.

Мы почти закончили с пробной сборкой новой локации(пока без перехода).

Осталось только прописать наш новый уровень в файл ACDC Cop\acdccop.pl(для ЗП)либо в файле ACDC Cs\stkutils\level.pm.

В этих файлах ищем такие строки(для ЗП):
use constant levels_info => (
{ gvid0 => 934, },
{ gvid0 => 883, name => 'jupiter_underground' },
{ gvid0 => 857, name => 'labx8' },
{ gvid0 => 666, name => 'pripyat' },
{ gvid0 => 317, name => 'jupiter' },
{ gvid0 => 0, name => 'zaton' },

И если у вас число когда мы запускали батник ggtool тоже 934 то прописываем так:
use constant levels_info => (
{ gvid0 => 934, name => 'ваша_локация' },
{ gvid0 => 883, name => 'jupiter_underground' },
{ gvid0 => 857, name => 'labx8' },
{ gvid0 => 666, name => 'pripyat' },
{ gvid0 => 317, name => 'jupiter' },
{ gvid0 => 0, name => 'zaton' },

А в файле level.pm от ACDC ЧН вы увидите такой текст:
use constant levels_info => (
{ gvid0 => 1620, },
{ gvid0 => 1573, name => 'l12_hospital' },
{ gvid0 => 1565, name => 'l11_stancia2' },
{ gvid0 => 1524, name => 'l10_limansk' },
{ gvid0 => 1511, name => 'l09_agroprom_undeground' },
{ gvid0 => 1313, name => 'l08_military' },
{ gvid0 => 1212, name => 'l07_yantar' },
{ gvid0 => 1057, name => 'l06_agroprom' },
{ gvid0 => 961, name => 'l05_red_forest' },
{ gvid0 => 743, name => 'l04_darkvalley' },
{ gvid0 => 472, name => 'l03_escape' },
{ gvid0 => 245, name => 'l02_garbage' },
{ gvid0 => 0, name => 'l01_marsh' },

Прописать там свой уровень нужно точно так-же как в файле от ACDC ЗП:
use constant levels_info => (
{ gvid0 => 1620, name => 'ваша_локация' },
{ gvid0 => 1573, name => 'l12_hospital' },
{ gvid0 => 1565, name => 'l11_stancia2' },
{ gvid0 => 1524, name => 'l10_limansk' },
{ gvid0 => 1511, name => 'l09_agroprom_undeground' },
{ gvid0 => 1313, name => 'l08_military' },
{ gvid0 => 1212, name => 'l07_yantar' },
{ gvid0 => 1057, name => 'l06_agroprom' },
{ gvid0 => 961, name => 'l05_red_forest' },
{ gvid0 => 743, name => 'l04_darkvalley' },
{ gvid0 => 472, name => 'l03_escape' },
{ gvid0 => 245, name => 'l02_garbage' },
{ gvid0 => 0, name => '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 = ваша_локация
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 - уникальное имя
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 - на какую локу кидает
dest_graph_point = start_actor_01
silent_mode = 1
; se_level_changer properties

Изменяем только те места, которые я прокомментировал, комментарии соответственно, удаляем. Всё готово.Собираем all.spawn и запихиваем в игру.

P.S
Убедительная просьба к начинающим модмейкерам.Пожалуйста, если вы только начали заниматься модами, то я вам настоятельно не советую заниматься подключением локаций.Наберитесь опыта, подучитесь элементарному.Я вас учить этому не подписывался.

Да и еще.Если будете переносить секции спавна, то для массовой замены гейм вертексов и левел вертексов можно использовать блокнот: открываем наш файл в блокноте=> правка=> заменить, и пишем что на что заменять.

Автор статьи: БАТЯ-STALKER


 
Форум фанатов игры S.T.A.L.K.E.R. » Техническая поддержка » Статьи (уроки) по моддингу » Подключение локаций из ЧН,ТЧ в ЗП
  • Страница 1 из 1
  • 1
Поиск:

Хостинг от uCoz Наш сайт полностью посвящён культовой игре Сталкер. Вся информация по всем частям сталкера: Тень Чернобыля, Чистое Небо, Зов Припяти, Сталкер 2