Вступ
Для створення персонажа необхідно створити його профіль, опис та спаун-секцію.
Створення профілю персонажа
Щоб створити профіль персонажа, необхідно до файлу gamedata\configs\gameplay\npc_profile.xml додати рядки:
<character id="идентификатор_профиля"> <class>идентификатор_класса</class> </character>
Ідентифікатор профілю конструюється як <префікс_рівня>_<ідентифікатор_сцени>_<угруповання_персонажу>_<описова_назва> , наприклад, zat_b7_stalker_raider_leader . Щоб уникнути плутанини, клас персонажа вказується такою самою, як ідентифікатор профілю. Клас персонажа використовується для зв'язку профілю та опису персонажа.
Створення опису персонажа
З одним профілем персонажа може бути асоційовано кілька описів персонажів. Це дозволяє, додавши в гру кілька персонажів з тим самим профілем, отримати в результаті персонажів з різним набором речей, різним зовнішнім виглядом (visual), і т.д. Для того, щоб створити опис персонажа, необхідно до файлу gamedata\configs\gameplay\character_desc_<ім'я_рівня>.xml додати наступну конструкцію:
<specific_character id="идентификатор_описания" team_default = "1"> <name>идентификатор_строки_имени</name> <icon>идентификатор_текстуры_иконки</icon> <map_icon x="1" y="0"></map_icon> <bio>идентификатор_строки_биографии</bio> <class>идентификатор_класса</class> <community>группировка_персонажа</community> <terrain_sect>stalker_terrain</terrain_sect> <rank>ранг</rank> <reputation>репутация</reputation> <money min="минимум_денег" max="максимум_денег" infinitive="<восполняемость>"/> <visual>внешний_вид</visual> <snd_config>папка_озвучки</snd_config> <supplies> [spawn] \n <предмет> \n <предмет> \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" <start_dialog>идентификатор_стартового_диалога</start_dialog> <actor_dialog>идентификатор_диалога_актёра</actor_dialog> <actor_dialog>идентификатор_диалога_актёра</actor_dialog> #include "gameplay\character_dialogs.xml" </specific_character>
Елемент конструкції | Опис |
---|---|
ідентифікатор_опису | Щоб уникнути плутанини, ідентифікатор опису:
a) аналогічний ідентифікаторам класу та профілю у разі, якщо з профілем асоціюється лише один опис; |
ідентифікатор_рядку_імені | Ідентифікатор рядка імені конструюється як <ідентифікатор_опису__name . Рядок імені
персонажа додається у файл gamedata\configs\text\<локалізація>\st_characters.xml конструкцією: <string id = "ідентифікатор_рядку_назви" > <text > текст_назви </text > </string > Також ім'я можна згенерувати, поставивши в опис персонажа замість ідентифікатора рядка імені конструкцію GENERATE_NAME_<ім'я_угруповання> . |
ідентифікатор_текстури_іконки | Ідентифікатор текстури іконки береться з файлу gamedata\configs\ui\textures_descr\ui_npc_unique.xml . Цю іконку видно під час діалогу з персонажем. |
ідентифікатор_рядки_біографії | На даний момент у грі не використовується, тому це поле можна залишити порожнім. |
ідентифікатор_класу | Ідентифікатор класу, який пов'язує опис персонажа із відповідним профілем персонажа. |
угруповання_персонажу | Ім'я угруповання, до якого належить цей персонаж. |
ранг | Число, що визначає відносну «крутість» персонажа:
0 - 300 - новачок ( novice ) |
репутація | На даний момент у грі не використовується, тому це поле можна залишити порожнім. |
мінімум_грошей
максимум_грошей заповнюваність |
Кількість грошей, що є у персонажа, буде обрано випадковим чином від зазначеного мінімуму до вказаного максимуму. Відновлюваність може набувати значення 0 або 1. В останньому випадку кількість грошей у персонажа буде поповнюватися після кожної угоди, але кожна окрема угода буде обмежена кількістю грошей персонажа. |
зовнішній вигляд | Шлях до файлу *.ogf від папки gamedata \ meshes , що містить зовнішній вигляд (visual) персонажа. Вказується без початкової «зворотної косої», без крапки і розширення файла. Від зовнішнього вигляду залежить броньованість персонажа. |
папка_озвучки | Шлях до папки універсального озвучення персонажа від папки gamedata\sounds . Має вигляд characters_voice\human_номер\угруповання\ . У цій конструкції номер може бути 01 або 02 (звичайні голоси), або 03 (приглушений голос через дихальну маску, протигаз або купол). |
предмет \n
предмет \n |
За допомогою конструкцій предмет задається список предметів, які мають бути у даного персонажа. Конструкції мають такий вигляд: ідентифікатор_предмета = кількість, навіс . При цьому = кількість і , навіс необов'язкові.
Параметр навісу має сенс тільки для зброї і може приймати такі значення: scope (оптичний приціл) Можна додати кілька конструкцій , навіс , але вони повинні стояти після конструкції = кількість . Наприкінці всієї описаної конструкції обов'язково повинні стояти символи \n (перенесення рядка). Приклад:
wpn_abakan = 1, scope, launcher
|
#include "gameplay\character_items.xml" | Цей і всі інші рядки #include повинні стояти на початку рядка (без відступів перед нею). Вона додає до списку предметів персонажа бінокль, ліхтар, детектор і, з ймовірністю, гітару. |
#include "gameplay\character_food.xml" | Цей рядок додає до списку предметів персонажа хліб, ковбасу та горілку. |
#include "gameplay\character_drugs.xml" | Цей рядок із певною часткою ймовірності додає до списку предметів персонажа бинти та аптечку. |
ідентифікатор_стартового_діалогу | Ідентифікатор діалогу, що є для персонажа стартовим. Якщо цей параметр (разом із тегами <start_dialog></start_dialog> ) не буде вказано – буде використано стандартний стартовий діалог. |
ідентифікатор_діалога_актора | Ідентифікатор діалогу актора. Можна вказати кілька діалогів актора (кожен – у тегах <actor_dialog></actor_dialog> ). |
#include "gameplay\character_dialogs.xml" | Цей рядок додає діалоги персонажу. |