CoP. Персонажи (официальное руководство)
Материал из S.T.A.L.K.E.R. Inside Wiki
Введение
Для создания персонажа необходимо создать его профиль, описание и спаун-секцию.
Создание профиля персонажа
Чтобы создать профиль персонажа, необходимо в файл 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" | Эта строка добавляет диалоги персонажу. |