Гость
Статистика Форума
Последнии темы Популярные темы Лучшии пользователи Новые пользователи
» [19.10.2018] Hybrid Final (1.4.22) (0)
» [19.10.2018] Hybrid 1.5 Open alpha (Гибрид) (0)
» [18.10.2018] Системные требования Call of Chernobyl (0)
» [18.10.2018] [CoC] Ответы на вопросы (1)
» [18.10.2018] [CoC] F.A.Q (0)
» [18.10.2018] CoC Вылеты и их решение (21)
» [18.10.2018] Choice of Destiny (0)
» [17.10.2018] Тайники мода "Смерти Вопреки - Послушник&q... (0)
» [17.10.2018] Прохождение + Гид «Смерти Вопреки» Часть 1 (0)
» [16.10.2018] Поставить визуальный редактор на сайт (0)
» Тайники и подсказки (82)
» FAQ прохождения по локациям DOPPELGANGER 7.63 Time Gap (50)
» Русскоязычное руководство по моду Frackin' Universe... (38)
» Фоны для сталкерского сайта (32)
» Capital-Rp Wikia Code (22)
» ГИД Прохождение остальных квестов ОП - 2 (21)
» CoC Вылеты и их решение (21)
» Личные сообщения (18)
» Редактирование мода «Народная солянка Объединенный пак ... (18)
» Проблемы в модуле "Пользователи" (17)
» Xemordio (2867)
» Duzeppa26 (5)
» Ghosteron (4)
» Даниил_Хороший (1)
» Glomar (1)
» Бармен (1)
» Yuri_Geruk (0)
» Razilator (0)
» oleg101 (0)
» nitro-oc (0)
» [19.10.2018] goooooooooogle380
» [09.10.2018] AleksStal
» [05.10.2018] Surin_Oleg
» [04.10.2018] artyomsamokhin
» [28.09.2018] Ната
» [27.09.2018] ExtremeBass
» [26.09.2018] jivago
» [21.09.2018] kures80
» [16.09.2018] marinak1984
» [15.09.2018] johnnym

  • Страница 1 из 1
  • 1
Форум » Игры // games » S.T.A.L.K.E.R. » Модостроение сталкер » Создание и редактирование НПС
Создание и редактирование НПС
Xemordio Offline Дата: Воскресенье, 09.09.2018, 08:49 | Сообщение # 1
Администратор
Генерал [?]
Сообщений: 2867
В этой статье мы разберем как создать уникального/именного/квестового (называйте как хотите) НПС.
Все профили НПС прописываются в файлах character_desc_локация.
Для раскладывания по полочкам, возьмем профиль Волка:
Код
<specific_character id="esc_wolf" team_default = "1">
        <name>esc_wolf_name</name>
        <icon>ui_npc_u_stalker_neytral_balon_1</icon>
        <bio>esc_wolf_bio</bio>

        <class>esc_wolf</class>
        <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
        
        <rank>434</rank>
        <reputation>5</reputation>
        <money min="600" max="2000" infinitive="0"/>
        
        <snd_config>characters_voice\human_01\stalker\</snd_config>
        <crouch_type>-1</crouch_type>

        <visual>actors\neytral\stalker_neytral_balon_1</visual>
        <supplies>
                [spawn] \n
                wpn_pm \n
                ammo_9x18_fmj = 1 \n
                wpn_ak74u \n
                ammo_5.45x39_fmj \n
                device_torch \n
                hand_radio \n
        </supplies>
        
#include "gameplay\character_criticals_4.xml"

                <start_dialog>escape_lager_volk_talk</start_dialog>
                <start_dialog>dm_hello_dialog</start_dialog>
                <actor_dialog>dm_cool_info_dialog</actor_dialog>
                <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
                <actor_dialog>tm_wolf_dialog</actor_dialog>
                <actor_dialog>tm_wolf_reward</actor_dialog>
                <actor_dialog>escape_lager_volk_story</actor_dialog>
                <actor_dialog>escape_lager_volk_story2</actor_dialog>
        </specific_character>

И разложим все по полочкам.

Код
<specific_character id="esc_wolf" team_default = "1">
</specific_character>

Внутри этой конструкции располагается все остальное. id - идентификатор Волка, team_default не изменяйте.

Код
<name>esc_wolf_name</name>

Имя НПС, которое будет отображаться в игре. Здесь содержится ссылка на текст, но можно писать имя прямо здесь (если вы хотите, чтобы это был обычный непись с рандомным именем, то прописываете здесь: "GENERATE_NAME_нужная-группировка" (без кавычек).

Код
<icon>ui_npc_u_stalker_neytral_balon_1</icon>

Здесь указывается иконка НПС, которая будет отображаться в диалоге.

Код
<bio>esc_wolf_bio</bio>

На сколько я знаю, разрабы планировали кажому неписю сделать биографию, но так и не реализовали. Так что можете скопировать с любого профиля.

Код
<class>esc_wolf</class>

Класс НПС. Используется для респавна НПС. Для того, чтобы у нас не создавалось куча наших "уникальных" НПС, то мы создадим свой класс.

Код
<community>stalker</community>

Группировка (stalker - одиночки, bandit - бандит, dolg - Долг и т.д.)

Код
<rank>434</rank>

Ранг НПС (новичок, опытный и т.д.)

Код
<reputation>5</reputation>

Репутация.

Код
<money min="600" max="2000" infinitive="0"/>

Количество денег, которое может быть у НПС. Соотвественно минимальное значение и максимальное. Если поставить infinitive="1", то у НПС будут бесконечные деньги (как у торговца).

Код
<snd_config>characters_voice\human_01\stalker\</snd_config>

Ссылка на папку с голосом и фразами НПС.

Код
<crouch_type>-1</crouch_type>

На сколько знаю, этот параметр отвечает за тип приседания. Ни разу не использовал, поэтому ничего советовать не буду.

Код
<visual>actors\neytral\stalker_neytral_balon_1</visual>

Ссылка на визуальную модель НПС. Но если указать к примеру визуал экзоскелета, то и защитными характеристиками НПС будет обладать, как у экзоскелета.
Код
<supplies>
        [spawn] \n
        wpn_pm \n
        ammo_9x18_fmj = 1 \n
        wpn_ak74u \n
        ammo_5.45x39_fmj \n
        device_torch \n
        hand_radio \n
</supplies>

Здесь указывается список предметов, которые будут появлятся у НПС.

Ну а далее идут диалоги.
Код
<start_dialog>escape_lager_volk_talk</start_dialog>

Используется, если нужно, чтобы диалог начинал НПС, а
Код
<actor_dialog>dm_cool_info_dialog</actor_dialog>

если нужно, чтобы диалог начинал ГГ.

Итак, приступим к практике.

Откроем файл character_desc_escape и создадим профиль нашему НПС. Назовем его Викинг, id у него будет escape_viking, оденем в экзоскелет, группировка - одиночка, оружие - Винторез, класс - esc_viking, а так же пропишем диалоговую иконку НПС в экзоскелете:
Код
<specific_character id="escape_viking" team_default = "1">
        <name>Викинг</name>
        <icon>ui_npc_u_stalker_mo_exo</icon>
        <bio>esc_wolf_bio</bio>
        
        <class>esc_viking</class>
        <community>stalker</community>
        <terrain_sect>stalker_terrain</terrain_sect>
        
        <rank>434</rank>
        <reputation>5</reputation>
        <money min="600" max="25000" infinitive="0"/>
        <panic_treshold>0</panic_treshold>
        
        <snd_config>characters_voice\human_01\stalker\</snd_config>
        <crouch_type>-1</crouch_type>
        
        <visual>actors\monolit\stalker_mo_exo</visual>
        <supplies>
                [spawn] \n
                wpn_vintorez \n
                ammo_9x39_pab9 = 10 \n
        </supplies>
        
</specific_character>

Теперь нужно прописать нашего НПС в файле config/gameplay/npc_profile.xml:
Код
<character id="escape_viking">
        <class>esc_viking</class>
        <specific_character>escape_viking</specific_character>
</character>

Класс ОБЯЗАТЕЛЬНО должен совпадать с тем, который прописан в character_desc_escape, а specific_character должен совпадать с id нашего НПС в character_desc_escape.

Далее происываем нашего НПС в файле config/creatures/spawn_sections.ltx:
Код
[escape_viking]:stalker
$spawn                    = "respawn\agr2_respawn_factory"
character_profile               = escape_viking
spec_rank                    = regular
community                    = stalker

В квадратных скобках прописываете любое свое название, spawn ставите от любого НПС, с character_profile все понятно, spec_rank оставляйте regular, community тоже все ясно.

НПС мы уже по сути создали, но мы не прописали ему логику. Без логики его будет подхватывать алайф и наш НПС пойдет бродить по Зоне куда глаза глядят.
Создадим логику при которой НПС будет стоять на месте, но при этом будет атаковать врагов, а после перестрелки возвращаться на свое место.
Создадим в папке config/scripts (ВНИМАНИЕ! НЕ gamedata/scripts, а именно config/scripts!!!) новый ltx файл, назовем его logic_viking и добавим туда такую логику:
Код
[logic]
active = remark1
danger = danger_ignore

[danger_ignore]
ignore_distance = 5

[remark1]
no_move = true

Теперь снова откроем spawn_sections.ltx и добавим в секцию нашего нового НПС путь к логике:
Код
[escape_viking]:stalker
$spawn                    = "respawn\agr2_respawn_factory"
character_profile               = escape_viking
spec_rank                    = regular
community                    = stalker
custom_data = scripts\logic_viking.ltx

Все. Создание НПС мы закончили, но теперь нам нужно его заспавнить. Для проверки нашей работы гораздо быстрее и удобней будет сделать спавн через скрипт. Как? Смотрите в этой статье.
Дата регистрации: 22.07.2017
Форум » Игры // games » S.T.A.L.K.E.R. » Модостроение сталкер » Создание и редактирование НПС
  • Страница 1 из 1
  • 1
Поиск:

16:53