Перейти к содержанию
Авторизация  

Рекомендуемые сообщения

 

Создавая NPC в Anomaly, я заметил, что доступные инструкции устарели, поэтому я решил подготовить обновлённое, подробное руководство — на актуальной версии Anomaly 1.5.3, с реальными примерами из рабочего мода, разбором шагов (спавн-секция, профиль, логика, диалог). Цель — дать понятный, современный путь: от первого появления NPC в мире до корректной привязки диалога и спавна на локации.

Инструкция по созданию и спавну НПС в S.T.A.L.K.E.R. Anomaly 1.5.3

Шаг 1: Создание визуального профиля (Character Profile)

Первым делом нужно описать, как выглядит наш персонаж, что у него в инвентаре и какой у него статус.

1. Создаем XML-файл (или используй существующий) по пути: gamedata\configs\creatures\profiles\npc_profile_my_character.xml.

2. Добавляем в него описание: 

<character id="my_npc_id">
    <class>my_npc_class</class>
    <specific_character>my_npc_unique_name</specific_character>
</character>

Шаг 2: Описание характеристик (Specific Character)

Здесь нужно задать имя, иконку, группировку и диалоги.

1. Далее создаем файл: gamedata\configs\creatures\character_desc_my_mod.xml.

2.Структура аналогичная character_desc_my: 

<specific_character id="my_npc_unique_name" team_default="1">
    <name>Назови своего героя</name>
    <icon>ui_inGame2_neutral_1</icon> <map_icon_complex_id>comm_stalker_icon</map_icon_complex_id>
    <rank>500</rank>
    <reputation>0</reputation>
    <money min="200" max="600" infinitive="0"/>

    <visual>actors\stalker_neutral\stalker_neutral_1</visual> <supplies>
        [spawn] \n
        wpn_pm \n
        ammo_9x18_fmj \n
    </supplies>

    <start_dialog>hello_dialog</start_dialog> <actor_dialogs>my_new_dialog</actor_dialogs> </specific_character>

Шаг 3: Создание диалога

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

1. Создаем файл: gamedata\configs\gameplay\dialogs\my_dialogs.xml.

2. Пример простого диалога: 

<game_dialogs>
    <dialog id="my_new_dialog">
        <phrase_list>
            <phrase id="0">
                <text>Привет! Есть работа?</text>
                <next>1</next>
            </phrase>
            <phrase id="1">
                <text>Пока нет, заходи позже.</text>
            </phrase>
        </phrase_list>
    </dialog>
</game_dialogs>

Шаг 4: Регистрация файлов в system.ltx

Это критический этап, если не прописать файлы здесь, игра их не увидит.

1. Открываем configs\system.ltx.

2. В секции [dialogs] добавляем свой файл через запятую: files = ..., dialogs\my_dialog, gameplay\dialogs\my_dialogs

3. В секции [profiles] добавляем профили: files = ..., profiles\npc_profile_my, profiles\npc_profile_my_character specific_characters_files = ..., character_desc_my, character_desc_my_mod

Шаг 5: Спавн НПС через скрипт (Самый простой способ для новичка)

В Anomaly проще всего заспавнить уникального НПС скриптом в определенной точке.

1.Необходимо узнать координаты (позицию) в игре.

2. Далее создаем скрипт gamedata\scripts\spawn_my_npc.script: 

function spawn_hero()
    local pos = vector():set(x, y, z) -- Вставь свои X, Y, Z
    local lvid = 12345 -- level_vertex_id
    local gvid = 678 -- game_vertex_id
    alife_create("my_npc_unique_name", pos, lvid, gvid)
end

3. Вызови эту функцию один раз (например, через диалог или при старте игры).

Важные советы:

Имена секций: id в character_desc должен совпадать с тем, что вызвано в скрипте спавна.

Пути: В system.ltx пути пишутся относительно папки configs.

Изменено пользователем Белогвардеец
  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Приветствую @Белогвардеец Я только начинаю вникать в это всё... Если будет возможность, уточни некоторые детали пожалуйста.

В system.ltx в секциях я прописываю именно всё со слеш "\" как указано в инструкции? 

Например:  [dialogs] files = ..., dialogs\my_dialog, gameplay\dialogs\my_dialogs 

Вроде бы всё сделал так, однако при заходе в игру вызывает ошибки [error]Description   : gameplay\dialogs\my_dialogs.xml

Сначала пробовал в сборке c модами указав приоритет, чтобы заменял system.ltx из другого мода. Потом пробовал без слеш прописывать по аналогии как в system и с dialogs ошибка прошла, потом всплывали с отсальными файлам, тоже убирал слешки и по аналогии. Папки перекидывал, т.к. порой ошибка указывала gameplay/gameplay.  И вот вроде бы заходило, но конечно NPC не было там где я указал. Потом решил на ванильке проверить вернув всё как по инструкции, но те же самые ошибки.

Если не сложно можешь посмотреть пожалуйста зипку во вложении, возможно я что-то не так сделал...
Не совсем понял последний пункт 3. Вызови эту функцию один раз (например, через диалог или при старте игры).

Координаты узнал с помощью мода Groks_Actor_Position_Registerer. В script указал.
Вот координаты из cache_dbg.ltx:
[l02_garbage]
        l02_garbage_1                    = misc, -109.52926635742, 0.77278417348862, 24.613246917725, 94119, 725

В игре это Депо на Свалке, где место для техника есть, по другую сторону от Мясника.

Я бы хотел научиться создавать NPC, причем различных, Торговцев, техников, как раз на Депо хочу сделать техника дефолтного. Квестовых персонажей хочу научиться делать, хоть бы даже труп какой с КПК в рюкзаке, как например в квесте "Последний рассвет". А твой гайд хоть немного, но может меня к этому приблизить. Правда если даже научусь, дальше хрен его знает как функции техника например прописывать, но это я полазаю в дефолтных файлах самой Anomaly вскрыв db, может чего и пойму...

NEW NPC.7z

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Может я стародел, но, если не ошибаюсь, необходимо нпс прописывать и в файле spawn_section_... название локации или свое название по адресу gamedata/configs/creatures. Можно оттуда же вызывать и логику нпс при желании.

Тёма Бастард берете этот самый system.ltx из мода который у вас идёт последним и в него добавить необходимую строку. 

Очень совету посмотреть уроки с этого сайта

Спойлер

 

Изменено пользователем Hoperise
  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Hoperise о, благодарю, гляну что там.
Да я так и делал, брал system.ltx из последнего мода, где тоже есть изменения. На чистой Аномали я вытаскивал system.ltx из db

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу