Наверх

[ Музыкальный плеер · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Статистика Форума
Последние обновленные темы Самые популярные темы Самые активные Новые участники
  • HARDWARMOD - v3.2 RC «Трудная война» (1)
  • Old Story (0)
  • Время перемен v2.0 (0)
  • Lost Alpha [Тень Чернобыля] (0)
  • ВСС "Винторез" (2)
  • Кайфоломщик (437)
  • Слова (123)
  • Анекдоты (90)
  • Угадай, где это место? (64)
  • S.T.A.L.K.E.R. (61)
  • naToGeHbI4
  • KamiKaDzE
  • QWENTYS
  • ХОВАН
  • SHooTER
  • Tachenko
  • Striker
  • Двухствольный
  • stalker-mechenuy
  • Монах
  • pavel-barsuk-2
  • 和夫
  • KMasya2004
  • zarrus79
  • VVLLADD
  • NightsOfFire
  • ppriedkov
  • ryhovigor
  • tashail1
  • minaeva2017
    • Страница 1 из 1
    • 1
    Подключение локаций из ТЧ,ЧН, в ЗП
    UndeadLiveДата: Понедельник, 14.03.2011, 16:40 | Сообщение # 1
    Новичoк
    Группа: Одиночки
    Сообщений: 17
    Награды: 0
    Репутация: 10
    Статус: Вне Зоны
    Мануал by [AMK] team
    Уровень сложности:Очень сложно!

    Инструменты:
    Собственно, сама программа для редактирования файла 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
    Убедительная просьба к начинающим модмейкерам. Пожалуйста, если вы только начали заниматься модами, то я вам настоятельно не советую заниматься подключением локаций.Наберитесь опыта, подучитесь элементарному.Я вас учить этому не подписывался.


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

    Powered by naToGeHbI4 / Сайт оптимизирован под браузер Opera. Хостинг от uCoz