И так, возможно многим эта тема покажется странной и неактуальной в наши дни так как по всему интернету полно таких уроков, но я решил сделать его и на 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 ;----- Прописывается возможность произнесения фраз группировкой.
Конфиги
Открываем файл game_relation.ltx. Что нам надо тут сделать?
Важно! Цифру после запятой ставить обязательно, т.е. если у вас была 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
Можно вобще не трогать этот файл, всё продукты будут спавниться по дефолту без вылетов.
Начинаем с этого файла. Давайте создадим пять профилей группировки: новичок, бывалый, опытный, ветеран, мастер. В самом низу списка создаём пять секции:
Код
;**************************************************************** ; 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 },