Распаковываем All.spawn и в alife_локация.ltx добавить:
Код
[866] - уникальный ID ; cse_abstract properties section_name = inventory_box - имя секции (не трогать) name = level_prefix_inventory_box_0000 имя (можно не изменять) position = -447.109985351563,-6.13000011444092,183.639999389648 (координаты тайника - x, y, z) direction = -0.062830001115799,-2.99324011802673,-0.169295996427536 (куда направлен)
Распаковываем all.spawn и в файл alife_локация.ltx в конец добавляем:
Код
[уникальный ID] ; cse_abstract properties section_name = level_changer name = имя перехода position = x,y,z перехода direction = 0,0,0 cse_abstract__unk1_h16 = 0x1
; cse_alife_object properties game_vertex_id = game vertex перехода distance = 0 level_vertex_id = level vertex перехода object_flags = 0xffffff3e
; cse_alife_level_changer properties dest_game_vertex_id = Game vertex места куда переместимся dest_level_vertex_id = Level vertex локации куда переместимся dest_position = x,y,z места куда переместимся dest_direction = 0,0,0 dest_level_name = локация на которую переместимся silent_mode = 1
; se_level_changer properties
1.Создать объект. Визуал не важен 2.Заспавнить его. 3.Создать рестриктор в All.spawn. Вот из мода:
Код
[5370] ; cse_abstract properties section_name = space_restrictor name = jup_freedom_radio_mod_00181 --имя рестриктора position = -45.4620018005371,3.47900009155273,218.572998046875 direction = 0,0,0
[sr_universal] scheme_type = sound_zone --буквально, зона звука. Предназначение, как я понимаю, рестриктора. sound_zone_theme = radio_music\radio_music_5,radio_music\radio_music_10 --перечень фалов, играемых в зоне. Из той самой папки. sound_zone_stop_info = zat_bandit_radio_stop --инфопоршень при наличии которого музыка не проигрывается.
Если хотите, чтобы он еще и включался выключался, то надо прописать диалог с выдачей инфопоршня или назначить его выдачу на клавишу.
Сперва создадим троих NPC для нашего сквада;
В файле gamedata\configs\gameplay\character_desc_zaton.xml описываем наших персонажей.
Внимание! Мы не будем прописывать наш сквад в стартовую позицию Затона т.к. спавнить будем функцией "create_squad" которую поместим в логику спейс-рестриктора. Это будет альтернативой всеми нами любимого скрипта alife():create("...")
Создаем Space_Restricor в All.spawn
Добавим в файл gamedata\spawns\alife_zaton.ltx следующую секцию
Код
[20000] ; cse_abstract properties section_name = space_restrictor name = zat_a1_spawner position = 244.724090576172,18.1142883300781,530.155517578125 direction = 0,0,0
Секцию можно воткнуть и в начало файла. Место расположения рестриктора чуть вперед от начальной точки спавна ГГ в начале игры, между наклоненным сухим деревом и камнем, чтобы сработала логика, надо пройти между ними.
Создаем логику рестриктора в файле gamedata\configs\scripts\zaton\zat_a1_spawner.ltx
В логику рестриктора добавил еще функцию "spawn_object" для спавна предметов (кому-то на голову свалится дизель-генератор через 15 секунд после спавна сквада) Так-же обратите внимание на то, что в логике рестриктора можно указать или смарт-террейн для спавна (zat_a1_brigada_squad:zat_a1) или точку пути (disel_generator:zat_a1_walker_4_walk).
Пока все. Собираем - запускаем - наблюдаем.
Логику чувакам пока не подключал - делается так-же как и для одиночного эксклюзива. Но пока стоит обратить внимание на то, что и без логики, если у командира сквада нормальные диалоги с инфопоршнями и прочим для выдачи квестов, то и дефолтная пойдет для простых сцен.
IP-адрес: Страна: Российская Федерация Город: Москва Дата регистрации: 25.10.2014
Добавим секцию спавна в файл spawns\alife_локация.ltx
Код
[5672] ; Уникальный ID секции section_name = stalker name = gamer ; Имя секции position = 243.661834716797,16.4937133789063,506.856964111328 ; Позиция по X,Y,Z direction = 0,0,0 version = 0x7c script_version = 8 money = 5000 character_profile = sim_default_stalker_4 ; ссылка на профиль для спавна (профиля берутся из character_desc_*.xml) cse_alife_trader_abstract__unk1_u8 = 6 game_vertex_id = 52429 ; Game Vertex distance = 1.15511835011223 direct_control = 416481280 level_vertex_id = 4290707477 ; Level Vertex object_flags = 0x203bffff custom_data = <<END [smart_terrains] none = true ; Будет ли использовать гулаги: true - нет, false - да (по умолчанию) [spawn] ; вещи в инвентаре bread kolbasa wpn_pb ammo_9x18_fmj hand_radio medkit vodka wpn_vintorez wpn_pkm [logic] cfg = scripts\zaton\stalker_gamer.ltx ; ссылка на логику, относительно папки configs [task_manager] reward = stalker [spawner] cond = true ; Условия спавна (Например: = {+my_info} true, false - NPC будет спавниться только при наличии инфопоршня "my_info") END
visual_name = actors\stalker_neutral\stalker_neutral_1 ; Визуал, не имеет значения, так как читает из профиля g_team = 0 g_squad = 0 g_group = 0 health = 1 dynamic_out_restrictions = dynamic_in_restrictions =
строка 194 xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_after_surge") elseif(level.name()=="jupiter") then xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_after_surge") elseif not has_alife_info("pri_b305_fifth_cam_end") then xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_after_surge") elseif(level.name()=="escape") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_after_surge")
строка 249 if(level.name()=="zaton") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_2") elseif(level.name()=="jupiter") then xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_phase_2") elseif not has_alife_info("pri_b305_fifth_cam_end") then xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_surge_phase_2") elseif(level.name()=="escape") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_2")
строка 273 if(level.name()=="zaton") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_1") elseif(level.name()=="jupiter") then xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_phase_1") elseif not has_alife_info("pri_b305_fifth_cam_end") then xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_surge_phase_1") elseif(level.name()=="escape") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_1")
В самом начале игры поворачиваем направо и идем параллельно склону, чуть левее сухой ёлочки, когда войдем в рестриктор - начнут спавниться предметы с интервалом 15 сек.
IP-адрес: Страна: Российская Федерация Город: Москва Дата регистрации: 25.10.2014
[54] ; уникальный ID секции section_name = zone_burning_fuzz_strong ;секция name = zone_burning_fuzz_strong ;уникальное имя position = 417.8486638,41.63044398,-106.0006849 --координаты спана direction = 0,0,0 ;угол поворота game_vertex_id = 73 ;гейм вертекс distance = 18.1999988555908 level_vertex_id = 1650842 ;левел вертекс object_flags = 0xffffff3e shapes = shape0 ;шейпы (можно задавать несколько). shape0:type = sphere ; тип шейпа (сферая. также есть box - коробка) shape0:offset = 0,0,0 shape0:radius = 0.100000001490116 ;радиус шейпа restrictor_type = 3 max_power = 0 ;максимальная сила(?) offline_interactive_radius = 30 artefact_spawn_count = 32 ;максимальное число спавна артов visual_name = dynamics\anomaly\topolinypuh_big ;визуал(партикл) idle_animation = idle ;(скорее всего партикл) attack_animation = idle ;(скорее всего партикл)
Данные о том,какие арты будут спавнится аномалией, записаны в configs\zones\zone_ХХХ.ltx Для аномалий используются несколько партиклов: 1 - когда аномалия в состоянии спокойствия. 2 - когда аномалия реагирует на живность(NPC,ГГ,монстры) 3 - перед рождением арта проигрывается партикл.
Распаковываем all.spawn переходим в all_локация вставляем туда это:
Код
[ХХХХ] ; уникальный ID секции ; cse_abstract properties section_name = physic_destroyable_object name = mar_physic_destroyable_object_0016 ;имя должно быть уникальным position = 114.354415893555,2.27533888816834,-151.578521728516 direction = -0.00769999995827675,-0.000303999986499548,-0.0395170003175735 ; cse_alife_object properties game_vertex_id = 0 distance = 0 level_vertex_id = 171487 object_flags = 0xffffff3a custom_data = <<END [logic] active = nil [drop_box] items = medkit,1,bandage,2,ammo_12x70_buck,3,ammo_vog-25,5,wpn_fort,1 END ; cse_visual properties visual_name = dynamics\box\box_metall_01 ; cse_ph_skeleton properties ; cse_alife_object_physic properties physic_type = 0x3 mass = 10 upd:num_items = 0
В строке items меняем то что хотим заспавнить в ящике.
Применяются в основном в двух случаях: 1.Вместо точек путей в логике эксклюзивов. 2.Для кампов - посиделки у костра.
Начнем с посиделок.Добавим в all.spawn в зону нужного нам смарт-террейна несколько смарт-каверов и камп-зону
alife_zaton.ltx
Код
[20001] ; cse_abstract properties section_name = camp_zone name = zat_a1_camp position = 241.788421630859,14.009066619873,467.594360351563 direction = 0,0,0
Все - лагерь для посиделок готов, собираем все с предыдущими наработками. Важный момент - шейп камп-зоны должен покрывать смарт-каверы, иначе получатся слишком скучные посиделки - не будут травить анекдоты и прочее. За направление взгляда отвечает дирекшн смарт-кавера.
IP-адрес: Страна: Российская Федерация Город: Москва Дата регистрации: 25.10.2014
В All.spawn спавним как физический объект (physic_object) В конце секции добавляем: fixed_bones = wpn_body (Если не поможет: fixed_bones = wpn_body, priklad)
Дата: Понедельник, 08.05.2017, 08:50 | Сообщение # 12
Тестер модов
[ Ветеран ]
Приветствую! У меня такой вопрос. Скачал я ActivePerl, установил. Потом распаковщик 20 ASDS Cop. Забросил его в папку spawn обычного ЗП. Кликнул decompile, всё распаковалось без проблем. В папке появились 5 новых файлов: way_jupiter_underground, way_jupiter, way_pripyat, way_labx8, way_zaton. Вобщем всё сработало. Но есть здесь на сайте чудный мод: Б.Р.О.Д.Я.Г.А. 1.2.1 Хотел я распаковать all.spawn в нём. Сделал всё так же, кликнул decompile, вроде пошла распаковка, но в конце командной строки выдаёт:
unknown af_dummy_dummy2 at acdccop.pl line 2782.
...\gamedata\spawns>pause
Для продолжения нажмите любую клавишу...
Кликаю клавишу, окно закрывается и результатов ноль, никакой распаковки не происходит. Камрад, подскажи плиз, в чём причина?
IP-адрес: Страна: Город: Дата регистрации: 24.09.2015
Дата: Понедельник, 08.05.2017, 15:42 | Сообщение # 13
[ О-Сознание ]
Цитатаdiogen379 ()
Камрад, подскажи плиз, в чём причина?
если этот мод на основе SGM, то там этот файл нужно с бубном распаковывать, автор SGM запаковал его хитро и этот способ не пойдет . .подробностей не могу добавить так как сам не ковырял его .. как-то раз распаковывал по нужде оригинал из игры и проблем не было ...
IP-адрес: Страна: Город: Арзамас Дата регистрации: 20.04.2011