И так, возможно многим эта тема покажется странной и неактуальной в наши дни так как по всему интернету полно таких уроков, но я решил сделать его и на AP pro, так как не раз сталкивался с этим вопросом. И так! ===========================================================================
Давайте создавать новую группировку! Создадим к примеру группировку Чистое небо (уж очень нравится мне эта группировка)
Что нам понадобится?
Папка configs
1. Папка creatures а)файл game_relations.ltx ;----- Отношение группировки к другим фракциям и к ГГ. б)файл spawn_sections_general.ltx ;----- Регистрация character_profile дефолтных персов группировки.
3. Папка misc а)файл death_items_by_communities.ltx ;----- Предметы которые могут появится у трупа непися группировки. б)файл script_sound.ltx ;----- Звуковые схемы, просьба о помощи, различные фразы, реакций на действия. в)файл script_sound_music_and_stories.ltx ;----- Звуковые схемы, анекдоты, историй, применяется в посиделках у костра или на базах. г)файл simulation.ltx ;----- Спавен сквадов группировки при старте игры. д)файл squad_behaviours.ltx ;----- Возможность спавнить сквады группировки через смарты. е)файл squad_descr.ltx ;----- Симуляция сквадов для распавна (пока не обезателен). ё) файл dialog_manager.ltx ;----- Название говорит само за себя.
4. Папка text\rus\ui_st_pda.xml ;----- Название группировки на русском языке. ================================================================================================================== Папка scripts а)фаил _g.script ;----- Регистрация новой группировки. б)фаил death_manager.script ;----- Регистрация новой группировки. г)фаил sound_theme.script ;----- Прописывается возможность произнесения фраз группировкой. =========================================================================
Важно! Цифру после запятой ставить обязательно, т.е. если у вас была 10, то после названия клана вы должны дописать следующею цифру, 11 .
Теперь ищем такую строку:
Цитата
;коэффициенты "сочувствия" группировок ;после воздействия на одного из членов группировки ;goodwill его распространится на остальных членов группировки ;с определенным коэффициентом ;(порядок должен совпадать с communities_relations) [communities_sympathy] actor = 0.0 bandit = 0.0 dolg = 0.0 ecolog = 0.0 freedom = 0.0 killer = 0.0 army = 0.0 monolith = 0.0 monster = 0.0 stalker = 0.0 ;0.01 zombied = 0.0
И дописываем наш клан:
Цитата
;коэффициенты "сочувствия" группировок ;после воздействия на одного из членов группировки ;goodwill его распространится на остальных членов группировки ;с определенным коэффициентом ;(порядок должен совпадать с communities_relations) [communities_sympathy] actor = 0.0 bandit = 0.0 dolg = 0.0 ecolog = 0.0 freedom = 0.0 killer = 0.0 army = 0.0 monolith = 0.0 monster = 0.0 stalker = 0.0 ;0.01 zombied = 0.0 nebo = 0.0
Всё сохраняем и закрываем!
А теперь давайте сделаем нашу группировку говорящей. Это делается всего двумя файлами: Список: configs/misc/script_sound.ltx configs/misc/script_sound_music_and_stories.ltx
И везде где есть список группировок, как тут пишем свою. Аналогично и со следующим файлом.
Далее можно добавить разные продукты для группировки, заходим в файл gamedata\configs\misc\death_items_by_communities.ltx и добавляем в самом низу секцию нашей группировки.
Цитата
[nebo]:stalker
Теперь весь список продуктов, а так же вероятность их спавна в инвентаре НПС новой группировки будет, как у сталкеров. Если вы захотите добавить свои продукты или изменить вероятность спавна старых, то под секцией своей группировки дописываем нужный продукт с другой вероятностью. Например: У сталкеров возьмём секцию респа какого-нибудь арта: [stalker] af_cristall_flower = 0 И перетащим её в нашу группировку с другой вероятностью спавна [nebo]:stalker af_cristall_flower = 0.1
Можно вобще не трогать этот файл, всё продукты будут спавниться по дефолту без вылетов.
Теперь "научим" НПС новой группировки общаться с ГГ. Открываешь файл dialog_manager
"Научим" НПС просить аптечку. Я буду делать на секции сталкеров. Ищем секцию Wounded dialogs и дописываем через запятую свой клан:
Цитата
;Wounded dialogs [dm_help_0] category = hello npc_community = stalker, trader, monolith, nebo level = all wounded = true
[dm_help_1] category = hello npc_community = stalker, trader, monolith, nebo level = all wounded = true
Ну а теперь "научим" НПС здороваться. Ищем следующие:
Цитата
[dm_hello_0] category = hello npc_community = stalker, trader, monolith, nebo level = all
[dm_hello_1] category = hello npc_community = stalker, trader, monolith, nebo level = all
[dm_hello_2] category = hello npc_community = stalker, monolith, nebo level = all
Вот и всё! Теперь наши НПС могут говорить без вылетов.
Сделаем наш клан понятным игроку. Идём в файл ui_st_pda.xml
Начинаем с этого файла. Давайте создадим пять профилей группировки: новичок, бывалый, опытный, ветеран, мастер. В самом низу списка создаём пять секции:
Цитата
;**************************************************************** ; nebo ;****************************************************************
[sim_default_nebo_0]:stalker $spawn = "respawn\sim_default_nebo_0" character_profile = sim_default_nebo_0 spec_rank = novice community = nebo
[sim_default_nebo_1]:stalker $spawn = "respawn\sim_default_nebo_1" character_profile = sim_default_nebo_1 spec_rank = regular community = nebo
[sim_default_nebo_2]:stalker $spawn = "respawn\sim_default_nebo_2" character_profile = sim_default_nebo_2 spec_rank = experienced community = nebo
[sim_default_nebo_3]:stalker $spawn = "respawn\sim_default_nebo_3" character_profile = sim_default_nebo_3 spec_rank = veteran community = nebo
[sim_default_nebo_4]:stalker $spawn = "respawn\sim_default_nebo_4" character_profile = sim_default_nebo_4 spec_rank = master community = nebo
Сохраняем, закрываем.
Создаём секцию своих НПС в самом низу. Я буду показывать на одной секции, т.к. все займут много места.
Цитата
<specific_character id="sim_default_nebo_0_default_0" team_default = "1"> ;- ID <name>GENERATE_NAME_stalker</name> ;-ИМЯ (в данном случае генерирутся из файлов сталкерских имён и кличек) <icon>ui_inGame2_neutral_1</icon> ;- иконка <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio>
<class>sim_default_nebo_0</class> - класс <community>nebo</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\stalker\</snd_config> ;- голос
В данном файле пишем следующие(чтобы не запутаться, пишите свой клан после секции зомбей(zombied)).
Цитата
[nebo]:default_behaviour
Тут создаём сквады нашего клана. В Simulation SQUADS пишем:
Цитата
[nebo_sim_squad_novice]:online_offline_group ;--id отряда с указанием скриптового класса. faction = nebo - клан npc_random = sim_default_nebo_0, sim_default_nebo_1 ;- НПС заданные для спавна npc_in_squad = 2, 3 - количество НПС в скваде (в данном случае 2 или 3)
Теперь лезем в папку scripts и ищем файл death_manager.ltx
Открываем и ищем такую строку:
Цитата
function init_drop_settings() local community_list = { "stalker", "dolg", "freedom", "bandit", "army", "zombied", "ecolog", "killer", "monolith" }
И дописываем свой клан:
Цитата
function init_drop_settings() local community_list = { "stalker", "dolg", "freedom", "bandit", "army", "zombied", "ecolog", "killer", "monolith", "nebo" }
Важно! Делать именно так! После последнего клана ставим запятую, открываем кавычки, пишем название своего клана, закрываем кавычки.
Для чего надо регистрировать клан в этом скрипте?
Если вы не зарегистрируете его там, то при убийстве НПС нового клана у вас вылетит игра, другими словами этот файл является менеджером убийств всех ИИ существ в игре, от сталкеров до мутантов разных фракций.
В данном файле ищем строку squad_community_by_behaviour = { После секции Монолита пишем свою группировку:
Цитата
["nebo"] = "nebo",
Не забываем про запятые!
В данном файле ищем строку local avail_communities = parse_names(utils.cfg_get_string(snd_ini, section, "avail_communities", nil, false, "", "stalker, ecolog, bandit, dolg, freedom, army, zombied, monolith, killer")) И вписываем свой клан:
Тут ищем таблицу поведения относительно смартов. И после monster_special пишем следующие:
Цитата
nebo = { squad = nil, smart = { base = { prec = function(squad, target) return in_time_interval(18,8) and not xr_conditions.surge_started() and not travel_manager.check_squad_for_enemies(squad) and (target:name() == "zat_stalker_base_smart" or target:name() == "jup_a6" or target:name() == "pri_a16") end }, surge = { prec = function() return xr_conditions.surge_started() end }, territory= { prec = function() return in_time_interval(8,18) and not xr_conditions.surge_started() end }, resource = { prec = function(squad, target) return in_time_interval(8,18) and not xr_conditions.surge_started() end } -- and squad:has_detector() }, actor = nil },
swat_crut, у тебя в файле dialog_manager дублируется секция dm_help_0. Проверяй. Читай все внимательно. И еще раз внимательно прочти раздел тутора "Общение".
Сообщение отредактировал Аристократ - Воскресенье, 16.06.2019, 20:28
Можешь сам сделать спавн бойцов там, где хочешь. Вот к примеру. В уроке ты создал сквад nebo_sim_squad_novice
Хочешь их заспавнить. Делаешь так.
Заходишь по адресу gamedata/configs/misc/simulation.ltx
Ищешь там следующие
Цитата
[start_position_zaton]
Под этой секцией указаны все сквады и смарты, где они спавнятся со стартом игры. По аналогии делаешь так же как и там:
имя_сквада = имя смарта
Вот так:
nebo_sim_squad_novice = zat_stalker_base_smart - у тебя появится сквад твоей группировки на Скадовске и войдет в общую симуляцию жизни на Затоне. Будут ходит по артефактам и стреляться с врагами.
Так же еще можно сделать так, чтобы отряды подспавнивалсь.Заходишь по адресу gamedata/configs/scripts/zaton/smart/zat_stalker_base_smart.ltx
И в строке spawn_squads после секции stalker_sim_squad_novice пишешь через запятую свой сквад. Будет выглядеть так: spawn_squads = stalker_sim_squad_novice, nebo_sim_squad_novice
Вот как-то так, если говорить проще.
Добавлено (16.06.2019, 21:21) --------------------------------------------- Ну а насчет отдельных смартов под базы и прочее ищи в Интернете. Там полно уроков. И если ты только начал изучать модострой, то советую начать с чего-нибудь более простого.
Сообщение отредактировал Аристократ - Воскресенье, 16.06.2019, 21:17
swat_crut, читай внимательно тутор, делай все последовательно. Я устал объяснять каждый шаг, прости уж. В уроке все есть. Все тестировалось в свое время. Так что извини, но если это тебе дается с трудом, то начни с чего-то простого.