Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
− | Под '''профилем персонажа''' ('''''character profile''''') подразумевается описание в виде шаблона некоторых характеристик персонажа.
| + | Устанавливаются и настраиваются в файлах '''X:\gamedata\config\gameplay\character_desc_название группы.xml''' |
| | | |
− | Под '''конкретным персонажем''' ('''''specific character''''') подразумевается чёткое и исчерпывающее описание сталкера, торговца или актёра. Профиль персонажа задается в [[Level Editor]] во вкладке "npc_profile" для свойств объекта.
| + | '''Профиль персонажа''' – это, собственно, полное описание персонажа, включающее имя, группировку, ранг, обмундирование, описание и внешний вид. Используется для типизированной простановки персонажей, что экономит и время и позволяет достичь определенной рандомности от игры к игре. |
| | | |
− | Профиль нужен для того, чтобы рандомизировать тех персонажей, которые появляются в игре, но тем самым не нарушить сценарий игры (т.е. персонажи хоть и появляются случайно, но соответствуют заданным характеристикам).
| |
| | | |
− | [[Формат XML | XML-файлы]] шаблонов профилей задаются в секции <code>[profiles]</code> файла '''system.ltx''':
| + | == Создание профиля == |
− | <syntaxhighlight lang="ini">[profiles] | + | В '''gamedata\config\gameplay\npc_profile.xml''' создается уникальный идентификатор типа персонажа: |
− | ;список xml файлов, содержащих профили сталкеров и торговцев
| + | <syntaxhighlight lang="xml"> |
− | files = npc_profile,...
| + | <character id="stalker_novice"> |
− | ;список xml файлов, содержащих описания конкретных сталкеров и торговцев
| + | <class>Stalker_novice</class> |
− | specific_characters_files = character_desc_general </syntaxhighlight>
| + | </character> |
| + | </syntaxhighlight> |
| + | '''Класс персонажа''' – это уникальный идентификатор класса, по которому будет браться конкретный профиль для данного персонажа (ссылаться на определенный файл с профилями). |
| | | |
− | | + | В '''character_desc_название класса/xml''' описываются конкретные профили. Они умышленно разбиваются на файлы по группировкам или уровням, чтобы облегчить навигацию и восприятие. Обычно на каждый класс создается несколько профилей. Некоторые из них детерминированы(имеют ФИО, уникальную биографию и тд), некоторые – базовые. Базовые отмечены флажком <code>team_default = "1"</code>. Логика работы такая: при создании персонажа считывается его тип, по типу получается класс. Затем составляется список всех доступных профилей для данного класса и из них рандомно выбирается один. Уникальные детерминированные профили (без <code>team_default = "1"</code>), будучи выбраны однажды – больше не выбираются. Профиль, единственный в своём классе, должен иметь <code>team_default = "1"</code> |
− | == Формат файла шаблонов профилей ==
| |
− | Настраиваются в '''gamedata\config\gameplay\npc_profile.xml'''
| |
− | <syntaxhighlight lang="xml"><character id="soldier">
| |
− | <team>none</team> <!-- id группировки, к которой принадлежит. (Берётся из списка группировок) -->
| |
− | <rank></rank> <!-- Ранг персонажа, возможно от 0 до 100. Персонаж выберется, если его ранг +/- 10 от заданного -->
| |
− | <reputation></reputation> <!-- Карма персонажа. От 0 злой, до 100 добрый, если его репутация +/- 10 от заданного -->
| |
− | <specific_character></specific_character> <!-- Идентификатор профиля описаний (если задано, то не нужно всё остальное) -->
| |
− | </character></syntaxhighlight>
| |
− | | |
− | | |
− | == Формат файла описаний конкретных персонажей ==
| |
− | Настраиваются в '''X:\gamedata\config\gameplay\character_desc_название группы.xml'''
| |
− | | |
− | Флажок <code>no_random="1"</code> задаётся, если нужно, чтобы персонаж не был доступен для случайного выбора по профилю.
| |
− | | |
− | <code>team_default="1"</code> должен быть задан '''ОБЯЗАТЕЛЬНО''' хотя бы один на команду — он будет использован, если вдруг (чего не должно случиться практически) израсходуются все профили. Профили без данного флажка, будучи единожды выбраны, больше не используются. | |
− | | |
− | Параметры, отмеченные '''(Н)''', необязательны для использования.
| |
− | | |
− | <syntaxhighlight lang="xml"><specific_character id="ivan_ivanych" no_random="1" team_default="1"> <!-- Уникальный id персональной информации -->
| |
− | | |
− | <name>Неизвестный бандит</name> <!-- Высвечиваемое имя, должно прогоняться через стрингтейбл. -->
| |
− | | |
− | <icon x="14" y="4"></icon> <!-- Иконка, которая отображается при общении. Берётся с текстуры ui_icons_npc. Отсчитывается с верхнего левого угла, но не по пикселям, а по позициям, равным одной иконке. -->
| |
− | | |
− | <map_icon x="3" y="2"></map_icon> <!-- Иконка, отображаемая на карте. Берётся с текстуры ui_icons_map. Отсчитывается с верхнего левого угла, но не по пикселям, а по позициям, равным одной иконке. -->
| |
− | | |
− | <bio>Опытный бандит. Детальная информация отсутствует.</bio> <!-- (Н) Биография персонажа, должна прогоняться через стрингтейбл. В релизе не используется. -->
| |
− | | |
− | | |
− | <class>bandit_master</class> <!-- Список классов для profiles, к которым может принадлежать персонаж. То, что связывает этот профиль с идентификатором персонажа. -->
| |
− | | |
− | <community>bandit</community> <!-- Имя группировки данного персонажа. По ней определяется отношение к актору и другим персонажам. -->
| |
− | | |
− | <terrain_sect>stalker_terrain</terrain_sect> <!-- По каким местам разрешено ходить персонажу (см. m_stalker.ltx). Рудимент, оставшийся с билдовых времён. -->
| |
− | | |
− | <snd_config>characters_voice\human_02\military\</snd_config> <!-- Звуковой конфиг данного персонажа. Путь к папке со звуками относительно \gamedata\sounds\ -->
| |
− | | |
− | <crouch_type>0</crouch_type> <!-- (Н) Тип приседания. 0 - слегка присев, 1 - низкий присяд; -1 - случайный выбор. -->
| |
− | | |
− | <panic_threshold>0.1</panic_threshold> <!-- (Н) Порог паники. Значение может изменяться от 0 до 1. Если функция оценки вероятности победы падает ниже указанного порога, то сталкер впадает в панику. Если вы установите 0 — в панику он впадать вообще не будет, если в 1 — то будет бегать от крысы. -->
| |
− | | |
− | <hit_probability_factor>1.0</hit_probability_factor> <!-- (Н) Меткость персонажа. Может меняться от 0 до 1. При 0 будет мазать в упор. -->
| |
− | | |
− | | |
− | <rank>10</rank> <!-- Ранг персонажа в глобальной таблице. -->
| |
− | | |
− | <reputation>0</reputation> <!-- Репутация. Может быть отрицательной. -->
| |
− | | |
− | | |
− | <visual>actors\bandit\stalker_bandit_8</visual> <!-- Имя ogf-модели (без расширения) -->
| |
− | | |
− | <!-- Список оборудования, которое будет проспавнено сталкеру.
| |
− | Если не нужно спавнить, то в Level Editor в Custom Data
| |
− | следует добавить строку [dont_spawn_character_supplies] -->
| |
− | <supplies>
| |
− | | |
− | <!-- Формат таков:
| |
− | [spawn]
| |
− | <section> [ = <count>[, <parameters> ] ]
| |
− | | |
− | здесь:
| |
− | <section> = название секции в LTX
| |
− | <count> = количество предметов, integer > 0 =1, если не задано
| |
− | | |
− | <parameters> = [<addons>] [<condition>] [<probability>]
| |
− | | |
− | <addons> = <addon> [<addons>]
| |
− | <addon> = {scope | silencer | launcher} – соответственно прицел, глушак, подствольник
| |
− | <condition> = {cond=float_value} – состояние вещи, изменяется от 0 (сломанный), до 1 (новый)
| |
− | <probability> = {prob=float_value} – вероятность спауна предметов. Тоже от 0 до 1.
| |
− |
| |
− | Важно: если задаем дополнительные параметры, нужно обязательно задавать количество предметов.
| |
− | -->
| |
− | | |
− | <!-- Пример: -->
| |
− | [spawn]
| |
− | device_torch
| |
− | wpn_ak74 = 1, silencer
| |
− | wpn_ak74 = 4, launcher cond=0.8
| |
− | wpn_ak74 = 1, scope prob=0.3
| |
− | wpn_ak74 = 1, scope launcher silencer cond=0.5
| |
− | wpn_fort = 8, cond=0.75 prob=0.5
| |
− | | |
− | </supplies>
| |
− | | |
− | | |
− | <mechanic_mode>1</mechanic_mode> <!-- (Н) (добавлено в ЧН) Игнорировать врагов. Подразумевается, что персонаж находится в защищённом месте и бессмертен либо скрывается при нападении на базу. -->
| |
− | | |
− | | |
− | <start_dialog>hello_dialog</start_dialog> <!-- Стартовый диалог этого персонажа. Более подробно в описании диалогов. -->
| |
− | | |
− | <actor_dialog></actor_dialog> <!-- Диалоги актера (может быть много), которые будут доступны только при встрече с данным персонажем. В принципе не сильно обязательно, но было бы очень удобно. -->
| |
− | | |
− | </specific_character> </syntaxhighlight> | |
− | | |
− | Для некоторых персонажей требуется чёткое соответствие "тип персонажа – персонаж". Например, для уникальных квестовых или сюжетных персонажей. В таком случае делаем так, чтобы соответствующему классу персонажа соответствовал только один профиль. В качестве примера класс и профиль Волка:
| |
− | <syntaxhighlight lang="xml"> <character id="stalker_esc_wolf">
| |
− | <class>stalker_esc_wolf</class> <!-- уникальный класс для Волка -->
| |
− | <specific_character>stalker_esc_wolf</specific_character>
| |
− | </character></syntaxhighlight>
| |
− | | |
− | <syntaxhighlight lang="xml"> <specific_character id="stalker_esc_wolf" team_default = "1"> <!-- обязательно team_default="1" -->
| |
− | <name>Сталкер "Волк"</name>
| |
− | <icon x="16" y="4"></icon>
| |
− | <map_icon x="0" y="0"></map_icon>
| |
− | <bio>Главарь лагеря новичков.</bio>
| |
− | | |
− | <class>stalker_esc_wolf</class> <!-- уникальный класс для Волка -->
| |
− | <community>stranger</community>
| |
− |
| |
− | <rank>30</rank>
| |
− | <reputation>0</reputation>
| |
− | | |
− | <visual>actors\neytral\stalker_neytral_balon_1</visual>
| |
− | <supplies>
| |
− | [spawn] \n
| |
− | wpn_pb \n
| |
− | ammo_9x18_pbp \n
| |
− | af_medusa \n
| |
− | wpn_ak74 \n
| |
− | ammo_5.45x39_fmj \n
| |
− | device_torch \n
| |
− | </supplies>
| |
− | | |
− | <start_dialog>escape_lager_volk_hello</start_dialog>
| |
− | <actor_dialog>escape_lager_volk_job</actor_dialog>
| |
− | <actor_dialog>escape_lager_volk_info</actor_dialog>
| |
− | <actor_dialog>escape_lager_volk_dynamite_done</actor_dialog>
| |
− | </specific_character></syntaxhighlight>
| |
− | Обратите внимание: хоть класс Волка и отличается от класса сталкера-новичка, оба они относятся к одной и той же группировке.
| |
− | | |
− | | |
− | '''Скопировано из доков GSC за 2005г.'''
| |
− | | |
− | {{#related:Формат XML}}
| |
− | {{#related:Диалоги}}
| |
| | | |
| [[Категория:Справка]] | | [[Категория:Справка]] |