Главная » Статьи » Статьи » Моддинг

Подключение локаций к ЧН и ЗП с помощью программы от 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».Нашли?Отлично. Теперь присваиваем этой секции спавна позицию(новую позицию прописываем также в строке "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 и запихиваем в игру.

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

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

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

О способе подключения поведал: джЭдай (ака Panisher)

Если у вас что-то не получается или появились вопросы, есть тема на форуме. 


Далее нужно подогнать вертексы. Для этого запускаем батник ggtool, ждем некоторое время, после чего появляются имена локаций, а рядом с ними числа. Смотрим это число рядом с нашей локацией(в ЧН это скорее всего будет 1620, а в ЗП 934).Далее разворачиваем alife_ файл с нашей локацией, ищем там строку «game_vertex_id» и пишем там число которое появилось рядом с нашей локацией при запуске батника ggtool.Затем обращаем свой взор на строку «level_vertex_id».К исходному значению строки прибавляем число, которое мы записали в строку «game_vertex_id», полученное число записываем. Далее, в добавляемых потом секциях спавна нужно писать эти числа. Мы подогнали вертексы.

1. В game_graphs.ltx прописываем наш уровень: почти в самом конце дописываем:

183 = "pihan"

2. В game_levels.ltx следующие работы: вписываем

level183
и в конец:
[level183]
name   = pihan
caption = "pihan"
offset  = 12000.0,     1000.0,    10000.0
weathers = [default]
id  = 183

В ЗП можно добавлять уровни с числом от 183 и выше.

3. В game_levels_music.ltx : добавляем

[pihan_musics]
music\zaton_day                  = 5, 22,  0.2,   2, 4   ;;; первые 2 цифры в строчках это с какого по какой час играет эмбиент.
music\zaton_night                = 22, 5,  0.3,   1, 2

Если поняли указываются звуковые файлы из папки sounds

4. В game_maps_single.ltx :
ВНИМАНИЕ!!!
Находим строку [level_maps_single]
Несколько строк под ней - это уровни из оригинала ЗП. Нам они не нужны. Ставим перед строками знак ; - это мы их так сказать "закоментили", также вписываем наш уровень. Выглядеть это должно так:

[level_maps_single]
;  stohe_selo                        =
;  zaton                             =
   pihan                             =
;  jupiter                           =
;  jupiter_underground               =
;  pripyat                           =
;  labx8                             =
;  plecha_selo                       =
;  weapons_test                      =
;  peacemaker_selo                   = 

теперь пишем секцию ниже:

[pihan]
global_rect         = 307.0, 90.0, 717.0, 500.000000   ;; положение на глобальной карте (здесь не рассматривается)
music_tracks        = pihan_musics                     ;; название звуковой ambient-темы. см. выше.
weathers            = dynamic_default

Категория: Моддинг | Добавил: Hardtmuth (13.07.2012)
Просмотров: 3302 | Рейтинг: 3.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Меню сайта

Свежие прохождения






Категории раздела

Мини-чат

Поиск

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Сегодня посетили:













Форма входа


Войти Зарегистрироваться