Профиль NPC: различия между версиями

Материал из Моддинг трилогии S.T.A.L.K.E.R. - MODFAQ.RU | +TES/Fallout
Перейти к навигации Перейти к поиску
мНет описания правки
м Переписано по аналогии с "Параметры оружия"
 
(не показаны 2 промежуточные версии этого же участника)
Строка 31: Строка 31:


По '''классу''' указанному в первичной секции (в данном случае: <code>npc_class_name</code> ) читаются вторичные секции из [[*.xml]]-файлов (в данном случае: ''character_desc_*.xml'') подключенных в параметре <code>specific_characters_files</code>, секции <code>[profiles]</code>, файла ''gamedata\config\'''system.ltx'''''
По '''классу''' указанному в первичной секции (в данном случае: <code>npc_class_name</code> ) читаются вторичные секции из [[*.xml]]-файлов (в данном случае: ''character_desc_*.xml'') подключенных в параметре <code>specific_characters_files</code>, секции <code>[profiles]</code>, файла ''gamedata\config\'''system.ltx'''''


== Подробнее о статусах ==
== Подробнее о статусах ==
Строка 41: Строка 40:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Платформа !! Статус !! Теги !! Описание тегов !! Пример значения !! Варианты значений и их описание
! Теги !! Статус !! Платформа !! Описание тегов !! Пример значения !! Варианты значений и их описание
|-
|-
| ТЧ, ЧН, ЗП || используются ||
| <source lang=xml><specific_character id="$" team_default = "1"></source>
<source lang=xml><specific_character id="$" team_default = "1"></source>
или
или
<source lang=xml><specific_character id="$" no_random = "1"></source>
<source lang=xml><specific_character id="$" no_random = "1"></source>
|| используются || ТЧ, ЧН, ЗП
|| Начало вторичной секции профиля ||
|| Начало вторичной секции профиля ||
<source lang=xml><specific_character id="main_profile_npc_name" team_default = "1"></source>
<source lang=xml><specific_character id="main_profile_npc_name" team_default = "1"></source>
Строка 63: Строка 62:
А если ни одного, то вылет: [[xrServer_Objects_ALife_Monsters.cpp]]
А если ни одного, то вылет: [[xrServer_Objects_ALife_Monsters.cpp]]
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><name>$</name></source> || Имя персонажа ||
| <source lang=xml><name>$</name></source> || необязательны || ТЧ, ЧН, ЗП || Имя персонажа ||
<source lang=xml><name>GENERATE_NAME_stalker</name></source>
<source lang=xml><name>GENERATE_NAME_stalker</name></source>


Строка 77: Строка 76:
Если теги не указывать, просто не будет отображаться имя.
Если теги не указывать, просто не будет отображаться имя.
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><icon>$</icon></source> || Иконка персонажа в интерфейсе || <source lang=xml><icon>ui_npc_icon_name</icon></source> || Имя <code>texture id</code> из [[*.xml]]-файла подключенного в параметре <code>files</code>, секции <code>[texture_desc]</code>, файла ''gamedata\config\'''system.ltx'''''
| <source lang=xml><icon>$</icon></source> || необязательны || ТЧ, ЧН, ЗП || Иконка персонажа в интерфейсе || <source lang=xml><icon>ui_npc_icon_name</icon></source> || Имя <code>texture id</code> из [[*.xml]]-файла подключенного в параметре <code>files</code>, секции <code>[texture_desc]</code>, файла ''gamedata\config\'''system.ltx'''''


Если теги не указывать, будет установлена указанная в движке по умолчанию иконка <code>ui_npc_u_barman</code>.
Если теги не указывать, будет установлена указанная в движке по умолчанию иконка <code>ui_npc_u_barman</code>.
|-
|-
| ТЧ, ЧН, ЗП || используются || <source lang=xml><class>$</class></source> || Имя класса || <source lang=xml><class>npc_class_name</class></source> || Должен соответствовать указанному в первичной секции профиля.
| <source lang=xml><class>$</class></source> || используются || ТЧ, ЧН, ЗП || Имя класса || <source lang=xml><class>npc_class_name</class></source> || Должен соответствовать указанному в первичной секции профиля.


Если теги не указывать, произойдет вылет: [[xrServer_Objects_ALife_Monsters.cpp]]
Если теги не указывать, произойдет вылет: [[xrServer_Objects_ALife_Monsters.cpp]]
|-
|-
| ТЧ, ЧН, ЗП || используются || <source lang=xml><community>$</community></source> || Группировка. По ней определяются отношения || <source lang=xml><community>stalker</community></source> || Соответствующие указанному в параметре <code>communities</code>, секции <code>[game_relations]</code> файла по пути ''gamedata\config\creatures\'''game_relations.ltx'''''
| <source lang=xml><community>$</community></source> || используются || ТЧ, ЧН, ЗП || Группировка. По ней определяются отношения || <source lang=xml><community>stalker</community></source> || Соответствующие указанному в параметре <code>communities</code>, секции <code>[game_relations]</code> файла по пути ''gamedata\config\creatures\'''game_relations.ltx'''''


Если теги не указывать, произойдет 2 вариант вылета: [[specific_character.cpp]]
Если теги не указывать, произойдет 2 вариант вылета: [[specific_character.cpp]]
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><terrain_sect>$</terrain_sect></source> || Неизвестно || <source lang=xml><terrain_sect>stalker_terrain</terrain_sect></source> || Значения по умолчанию указаны в одноименной секции в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''
| <source lang=xml><terrain_sect>$</terrain_sect></source> || необязательны || ТЧ, ЧН, ЗП || Неизвестно || <source lang=xml><terrain_sect>stalker_terrain</terrain_sect></source> || Значения по умолчанию указаны в одноименной секции в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''
|-
|-
| ТЧ, ЧН, ЗП || используются || <source lang=xml><rank>$</rank></source> || Ранг персонажа || <source lang=xml><rank>149</rank></source> || в цифрах; соответствующие указанному в параметре <code>rating</code>, секции <code>[game_relations]</code> файла по пути
| <source lang=xml><rank>$</rank></source> || используются || ТЧ, ЧН, ЗП || Ранг персонажа || <source lang=xml><rank>149</rank></source> || в цифрах; соответствующие указанному в параметре <code>rating</code>, секции <code>[game_relations]</code> файла по пути ''gamedata\config\creatures\'''game_relations.ltx'''''


Если теги не указывать, произойдет 3 вариант вылета: [[specific_character.cpp]]
Если теги не указывать, произойдет 3 вариант вылета: [[specific_character.cpp]]
|-
|-
| ТЧ || используются || <source lang=xml><reputation>$</reputation></source> || Репутация персонажа || <source lang=xml><reputation>12</reputation></source> || Соответствующие указанному в параметре <code>reputation_names</code>, секции <code>[game_relations]</code> файла по пути ''gamedata\config\creatures\'''game_relations.ltx'''''  
| <source lang=xml><reputation>$</reputation></source> || используются || ТЧ || Репутация персонажа || <source lang=xml><reputation>12</reputation></source> || Соответствующие указанному в параметре <code>reputation_names</code>, секции <code>[game_relations]</code> файла по пути ''gamedata\config\creatures\'''game_relations.ltx'''''  
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><money min="$" max="$" infinitive="$"/></source> || Количество денег || <source lang=xml><money min="200" max="600" infinitive="0"/></source> || Если тег не указывать, будет использовано значение из параметра <code>money</code> по умолчанию указано в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''  
| <source lang=xml><money min="$" max="$" infinitive="$"/></source> || необязательны || ТЧ, ЧН, ЗП || Количество денег || <source lang=xml><money min="200" max="600" infinitive="0"/></source> || Если тег не указывать, будет использовано значение из параметра <code>money</code> по умолчанию указано в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''  


Если параметр удалить, будет установлено значение <code>0</code>. Однако, в игре это не окажет эффекта, т.к. значение уже записано в '''all.spawn''', его можно только изменить тегом.
Если параметр удалить, будет установлено значение <code>0</code>. Однако, в игре это не окажет эффекта, т.к. значение уже записано в '''all.spawn''', его можно только изменить тегом.
Строка 111: Строка 110:
<code>infinitive="1"</code> – восполняется после каждой сделки, но каждая отдельная сделка будет ограничена количеством денег NPC.
<code>infinitive="1"</code> – восполняется после каждой сделки, но каждая отдельная сделка будет ограничена количеством денег NPC.
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><snd_config>$</snd_config></source> || Озвучка  || <source lang=xml><snd_config>characters_voice\human_01\newbie\</snd_config></source> || Путь до озвучки относительно директории ''gamedata\sounds''
| <source lang=xml><snd_config>$</snd_config></source> || необязательны || ТЧ, ЧН, ЗП || Озвучка  || <source lang=xml><snd_config>characters_voice\human_01\newbie\</snd_config></source> || Путь до озвучки относительно директории ''gamedata\sounds''


Если теги не указывать, NPC просто будет молчать.
Если теги не указывать, NPC просто будет молчать.
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><crouch_type>$</crouch_type></source> || Неизвестно || <source lang=xml><crouch_type>-1</crouch_type></source> || Значение параметра <code>crouch_type</code> по умолчанию указано в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''  
| <source lang=xml><crouch_type>$</crouch_type></source> || необязательны || ТЧ, ЧН, ЗП || Неизвестно || <source lang=xml><crouch_type>-1</crouch_type></source> || Значение параметра <code>crouch_type</code> по умолчанию указано в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''  
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><panic_threshold>$</panic_threshold></source> || Функция оценки вероятности победы. Если падает ниже указанного порога, то NPC впадает в панику || <source lang=xml><panic_threshold>0.1</panic_threshold></source> || от <code>0</code> до <code>1</code>
| <source lang=xml><panic_threshold>$</panic_threshold></source> || необязательны || ТЧ, ЧН, ЗП || Функция оценки вероятности победы. Если падает ниже указанного порога, то NPC впадает в панику || <source lang=xml><panic_threshold>0.1</panic_threshold></source> || от <code>0</code> до <code>1</code>


<code>0</code> — вообще не паникует
<code>0</code> — вообще не паникует
Строка 125: Строка 124:
Значение параметра <code>panic_threshold</code> по умолчанию указано в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''  
Значение параметра <code>panic_threshold</code> по умолчанию указано в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''  
|-
|-
| ТЧ, ЧН, ЗП || используются || <source lang=xml><visual>$</visual></source> || Модель персонажа || <source lang=xml><visual><code>actors\novice\green_stalker_2</code></visual></source> || Путь к [[*.ogf]]-файлу относительно директории ''gamedata\meshes''
| <source lang=xml><visual>$</visual></source> || используются || ТЧ, ЧН, ЗП || Модель персонажа || <source lang=xml><visual><code>actors\novice\green_stalker_2</code></visual></source> || Путь к [[*.ogf]]-файлу относительно директории ''gamedata\meshes''


От прописанной в модели '''User Data''' ([[*.ltx]]-файл по пути: ''gamedata\config\models\capture'') зависит бронированность NPC.
От прописанной в модели '''User Data''' ([[*.ltx]]-файл по пути: ''gamedata\config\models\capture'') зависит бронированность NPC.
Строка 131: Строка 130:
Если теги удалить, это не окажет эффекта, т.к. значение уже записано в '''all.spawn''', его можно только изменить тегом.
Если теги удалить, это не окажет эффекта, т.к. значение уже записано в '''all.spawn''', его можно только изменить тегом.
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><supplies>$</supplies></source> || Секция спавна инвентаря ||
| <source lang=xml><supplies>$</supplies></source> || необязательны || ТЧ, ЧН, ЗП || Секция спавна инвентаря ||
<syntaxhighlight lang=ini>
<syntaxhighlight lang=ini>
<supplies>
<supplies>
Строка 184: Строка 183:
Если теги не указывать, NPC будет пустой.
Если теги не указывать, NPC будет пустой.
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><critical_wound_weights>
| <source lang=xml><critical_wound_weights>
$
$
</critical_wound_weights></source> || Неизвестно || <source lang=xml><critical_wound_weights>55,30,15</critical_wound_weights></source>
</critical_wound_weights></source> || необязательны || ТЧ, ЧН, ЗП || Неизвестно || <source lang=xml><critical_wound_weights>55,30,15</critical_wound_weights></source>


или вместо этого подключить [[*.xml]]-файл с тегами из директории ''gamedata\config''
или вместо этого подключить [[*.xml]]-файл с тегами из директории ''gamedata\config''
Строка 194: Строка 193:
|| Значение параметра <code>critical_wound_weights</code> по умолчанию указано в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''  
|| Значение параметра <code>critical_wound_weights</code> по умолчанию указано в файле по пути: ''gamedata\config\creatures\'''m_stalker.ltx'''''  
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><start_dialog>$</start_dialog></source> || Диалог приветствия || <source lang=xml><start_dialog>hello_dialog</start_dialog></source>
| <source lang=xml><start_dialog>$</start_dialog></source> || необязательны || ТЧ, ЧН, ЗП || Диалог приветствия || <source lang=xml><start_dialog>hello_dialog</start_dialog></source>


Также можно подключить [[*.xml]]-файл с тегами из директории ''gamedata\config''
Также можно подключить [[*.xml]]-файл с тегами из директории ''gamedata\config''
Строка 202: Строка 201:
|| Имя <code>dialog id</code> из [[*.xml]]-файла подключенного в параметре <code>files</code>, секции <code>[profiles]</code>, файла ''gamedata\config\'''system.ltx'''''
|| Имя <code>dialog id</code> из [[*.xml]]-файла подключенного в параметре <code>files</code>, секции <code>[profiles]</code>, файла ''gamedata\config\'''system.ltx'''''
|-
|-
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><actor_dialog>$</actor_dialog></source> || Обычный диалог || <source lang=xml><actor_dialog>dm_cool_info_dialog</actor_dialog></source> || Имя <code>dialog id</code> из [[*.xml]]-файла подключенного в параметре <code>files</code>, секции <code>[profiles]</code>, файла ''gamedata\config\'''system.ltx'''''
| <source lang=xml><actor_dialog>$</actor_dialog></source> || необязательны || ТЧ, ЧН, ЗП || Обычный диалог || <source lang=xml><actor_dialog>dm_cool_info_dialog</actor_dialog></source> || Имя <code>dialog id</code> из [[*.xml]]-файла подключенного в параметре <code>files</code>, секции <code>[profiles]</code>, файла ''gamedata\config\'''system.ltx'''''


Также можно подключить [[*.xml]]-файл с тегами из директории ''gamedata\config''
Также можно подключить [[*.xml]]-файл с тегами из директории ''gamedata\config''
Строка 209: Строка 208:
Если теги удалить, это не окажет эффекта, т.к. значение уже записано в '''all.spawn''', его можно только изменить тегом.
Если теги удалить, это не окажет эффекта, т.к. значение уже записано в '''all.spawn''', его можно только изменить тегом.
|-
|-
| ТЧ, ЧН, ЗП || используются || <source lang=xml></specific_character></source> || Конец вторичной секции профиля || Отсутствует || Отсутствует
| <source lang=xml></specific_character></source> || используются || ТЧ, ЧН, ЗП || Конец вторичной секции профиля || Отсутствует || Отсутствует
|-
|-
!colspan="6" align="center"|Устаревшие теги
!colspan="6" align="center"|Устаревшие теги
|-
|-
| ТЧ || не используются || <source lang=xml><map_icon x="$" y="$"></map_icon></source> || Неизвестно || <source lang=xml><map_icon x="1" y="0"></map_icon></source> || Неизвестно
| <source lang=xml><map_icon x="$" y="$"></map_icon></source> || не используются || ТЧ || Неизвестно || <source lang=xml><map_icon x="1" y="0"></map_icon></source> || Неизвестно
|-
|-
| ТЧ || не используются || <source lang=xml><bio>$</bio></source> || Биография персонажа || <source lang=xml><bio>npc_bio_name</bio></source> || Имя <code>string id</code> из [[*.xml]]-файла подключенного в параметре <code>files</code>, секции <code>[string_table]</code>, файла ''gamedata\config\'''localization.ltx'''''
| <source lang=xml><bio>$</bio></source> || не используются || ТЧ || Биография персонажа || <source lang=xml><bio>npc_bio_name</bio></source> || Имя <code>string id</code> из [[*.xml]]-файла подключенного в параметре <code>files</code>, секции <code>[string_table]</code>, файла ''gamedata\config\'''localization.ltx'''''
|}
|}


=== Как это работает ===
=== Как это работает ===
Строка 224: Строка 222:
# По классу, считывается список всех вторичных секций для его профиля (например: <code>main_profile_npc_name</code>, <code>main_profile_npc_2_name</code>, <code>main_profile_npc_3_name</code> и т.д.)
# По классу, считывается список всех вторичных секций для его профиля (например: <code>main_profile_npc_name</code>, <code>main_profile_npc_2_name</code>, <code>main_profile_npc_3_name</code> и т.д.)
# Одна из вторичных секций профиля выбирается случайно
# Одна из вторичных секций профиля выбирается случайно


== Уникальный профиль ==
== Уникальный профиль ==
Строка 238: Строка 235:
</character>
</character>
</syntaxhighlight>
</syntaxhighlight>


=== Как это работает ===
=== Как это работает ===
Строка 244: Строка 240:
# По первичной секции профиля, считывается класс его профиля (в данном случае: <code>npc_class_name</code>)
# По первичной секции профиля, считывается класс его профиля (в данном случае: <code>npc_class_name</code>)
# По классу, считывается только та секция профиля, которая указана тегами (в данном случае: <code>main_profile_npc</code>)<br>Если указанная секция не будет найдена, произойдет 2 вариант вылета: [[xml_str_id_loader.h]]
# По классу, считывается только та секция профиля, которая указана тегами (в данном случае: <code>main_profile_npc</code>)<br>Если указанная секция не будет найдена, произойдет 2 вариант вылета: [[xml_str_id_loader.h]]


== Источники ==
== Источники ==
{{References}}
{{reflist|3}}


[[Категория:Игровые архивы]][[Категория:Конфиги]]
[[Категория:Игровые архивы]][[Категория:Конфиги]]

Текущая версия от 21:47, 26 августа 2024

Профиль NPC

Автор aka_sektor
Дополнил Charsi
Тип статьи справка
Актуальность ТЧ, ЧН, ЗП

Профиль NPC (Non-Player Character/Неигровой персонаж)[1][2] – это полное описание персонажа, включающее имя, группировку, ранг, репутацию, обмундирование, внешний вид, озвучку и диалоги. Используется для типизированной простановки персонажей, что экономит и время и позволяет достичь определенной неповторимости от игры к игре.


Сначала создается первичная секция профиля в *.xml-файле (в данном случае: npc_profile.xml) подключенном в параметре files, секции [profiles], файла gamedata\config\system.ltx

Пример:

	<character id="first_profile_npc_name">
		<class>npc_class_name</class>
	</character>

По классу указанному в первичной секции (в данном случае: npc_class_name ) читаются вторичные секции из *.xml-файлов (в данном случае: character_desc_*.xml) подключенных в параметре specific_characters_files, секции [profiles], файла gamedata\config\system.ltx

Подробнее о статусах

  • используются — обязательные теги профиля NPC.
  • необязательны — теги профиля NPC, но как можно понять из названия - не являющиеся обязательными. Например, если вас устраивает значение установленное по умолчанию.
  • не используются — теги от предыдущих версий движков игры, были отключены или переименованы в новых версиях. Рекомендуется удалить из профиля NPC.

Вместо символа $ – значение.

Теги Статус Платформа Описание тегов Пример значения Варианты значений и их описание
<specific_character id="$" team_default = "1">

или

<specific_character id="$" no_random = "1">
используются ТЧ, ЧН, ЗП Начало вторичной секции профиля
<specific_character id="main_profile_npc_name" team_default = "1">

или

<specific_character id="main_profile_npc_name" no_random = "1">

id="$" – имя секции.

Значения алгоритма чтения секции:
team_default = "1" – случайно выбирает одну вторичную секцию в классе из других с таким же значением.

no_random = "1" – исключает секцию из алгоритма. Для уникальных профилей, например.

Указывать значение, нужно только одно.
Если указать оба, произойдет 1 вариант вылета: specific_character.cpp
А если ни одного, то вылет: xrServer_Objects_ALife_Monsters.cpp

<name>$</name>
необязательны ТЧ, ЧН, ЗП Имя персонажа
<name>GENERATE_NAME_stalker</name>

или

<name>npc_name</name>
Случайно сгенерированное (в данном случае: из секции stalker_names_stalker файла gamedata\config\system.ltx)

или

уникальное имя string id из *.xml-файла подключенного в параметре files, секции [string_table], файла gamedata\config\localization.ltx

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

<icon>$</icon>
необязательны ТЧ, ЧН, ЗП Иконка персонажа в интерфейсе
<icon>ui_npc_icon_name</icon>
Имя texture id из *.xml-файла подключенного в параметре files, секции [texture_desc], файла gamedata\config\system.ltx

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

<class>$</class>
используются ТЧ, ЧН, ЗП Имя класса
<class>npc_class_name</class>
Должен соответствовать указанному в первичной секции профиля.

Если теги не указывать, произойдет вылет: xrServer_Objects_ALife_Monsters.cpp

<community>$</community>
используются ТЧ, ЧН, ЗП Группировка. По ней определяются отношения
<community>stalker</community>
Соответствующие указанному в параметре communities, секции [game_relations] файла по пути gamedata\config\creatures\game_relations.ltx

Если теги не указывать, произойдет 2 вариант вылета: specific_character.cpp

<terrain_sect>$</terrain_sect>
необязательны ТЧ, ЧН, ЗП Неизвестно
<terrain_sect>stalker_terrain</terrain_sect>
Значения по умолчанию указаны в одноименной секции в файле по пути: gamedata\config\creatures\m_stalker.ltx
<rank>$</rank>
используются ТЧ, ЧН, ЗП Ранг персонажа
<rank>149</rank>
в цифрах; соответствующие указанному в параметре rating, секции [game_relations] файла по пути gamedata\config\creatures\game_relations.ltx

Если теги не указывать, произойдет 3 вариант вылета: specific_character.cpp

<reputation>$</reputation>
используются ТЧ Репутация персонажа
<reputation>12</reputation>
Соответствующие указанному в параметре reputation_names, секции [game_relations] файла по пути gamedata\config\creatures\game_relations.ltx
<money min="$" max="$" infinitive="$"/>
необязательны ТЧ, ЧН, ЗП Количество денег
<money min="200" max="600" infinitive="0"/>
Если тег не указывать, будет использовано значение из параметра money по умолчанию указано в файле по пути: gamedata\config\creatures\m_stalker.ltx

Если параметр удалить, будет установлено значение 0. Однако, в игре это не окажет эффекта, т.к. значение уже записано в all.spawn, его можно только изменить тегом.

min – минимум

max – максимум

Будет выбрано случайным образом от указанного минимума до указанного максимума. Если не указывать, будет установлено значение 0.

infinitive="0" – не восполняется.

infinitive="1" – восполняется после каждой сделки, но каждая отдельная сделка будет ограничена количеством денег NPC.

<snd_config>$</snd_config>
необязательны ТЧ, ЧН, ЗП Озвучка
<snd_config>characters_voice\human_01\newbie\</snd_config>
Путь до озвучки относительно директории gamedata\sounds

Если теги не указывать, NPC просто будет молчать.

<crouch_type>$</crouch_type>
необязательны ТЧ, ЧН, ЗП Неизвестно
<crouch_type>-1</crouch_type>
Значение параметра crouch_type по умолчанию указано в файле по пути: gamedata\config\creatures\m_stalker.ltx
<panic_threshold>$</panic_threshold>
необязательны ТЧ, ЧН, ЗП Функция оценки вероятности победы. Если падает ниже указанного порога, то NPC впадает в панику
<panic_threshold>0.1</panic_threshold>
от 0 до 1

0 — вообще не паникует

1 — всегда паникует

Значение параметра panic_threshold по умолчанию указано в файле по пути: gamedata\config\creatures\m_stalker.ltx

<visual>$</visual>
используются ТЧ, ЧН, ЗП Модель персонажа
<visual><code>actors\novice\green_stalker_2</code></visual>
Путь к *.ogf-файлу относительно директории gamedata\meshes

От прописанной в модели User Data (*.ltx-файл по пути: gamedata\config\models\capture) зависит бронированность NPC.

Если теги удалить, это не окажет эффекта, т.к. значение уже записано в all.spawn, его можно только изменить тегом.

<supplies>$</supplies>
необязательны ТЧ, ЧН, ЗП Секция спавна инвентаря
<supplies>
[spawn] \n
device_torch \n
wpn_pm, cond=0.5 \n
ammo_9x18_fmj = 1 \n
wpn_ak74 = 1, silencer \n
ammo_5.45x39_fmj = 3 \n
vodka = 1, prob=0.5 \n
device_torch = 1, prob=1 \n
</supplies>

Также можно подключить *.xml-файлы со спавн-секциями из директории gamedata\config

<supplies>
[spawn] \n
device_torch \n
wpn_pm, cond=0.5 \n
ammo_9x18_fmj = 1 \n
wpn_ak74 = 1, silencer \n
ammo_5.45x39_fmj = 3 \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml" \n
#include "gameplay\character_drugs.xml"
</supplies>
section = #, prob=$, cond=$ \n

или

wpn_section = #, addon addon addon\n

Где:

\n — переход на следующую строку

section — имя секции предмета

# — количество предметов (если не задано, будет равно 1)

cond=$ — состояние предмета после спавна (только для ТЧ). От 0 до 1.

prob=$ — вероятность спавна предмета. От 0 до 1.

wpn_section — имя секции оружия

addon — имя секции аддона (работает только с оружием). Могут быть указаны все доступные (см. параметры scope_status, silencer_status и grenade_launcher_status в конфиге оружия), через запятую

Если теги не указывать, NPC будет пустой.

<critical_wound_weights>
$
</critical_wound_weights>
необязательны ТЧ, ЧН, ЗП Неизвестно
<critical_wound_weights>55,30,15</critical_wound_weights>

или вместо этого подключить *.xml-файл с тегами из директории gamedata\config

#include "gameplay\character_criticals_*.xml"
Значение параметра critical_wound_weights по умолчанию указано в файле по пути: gamedata\config\creatures\m_stalker.ltx
<start_dialog>$</start_dialog>
необязательны ТЧ, ЧН, ЗП Диалог приветствия
<start_dialog>hello_dialog</start_dialog>

Также можно подключить *.xml-файл с тегами из директории gamedata\config

#include "gameplay\character_dialogs.xml"

Если теги удалить, это не окажет эффекта, т.к. значение уже записано в all.spawn, его можно только изменить тегом.

Имя dialog id из *.xml-файла подключенного в параметре files, секции [profiles], файла gamedata\config\system.ltx
<actor_dialog>$</actor_dialog>
необязательны ТЧ, ЧН, ЗП Обычный диалог
<actor_dialog>dm_cool_info_dialog</actor_dialog>
Имя dialog id из *.xml-файла подключенного в параметре files, секции [profiles], файла gamedata\config\system.ltx

Также можно подключить *.xml-файл с тегами из директории gamedata\config

#include "gameplay\character_dialogs.xml"

Если теги удалить, это не окажет эффекта, т.к. значение уже записано в all.spawn, его можно только изменить тегом.

</specific_character>
используются ТЧ, ЧН, ЗП Конец вторичной секции профиля Отсутствует Отсутствует
Устаревшие теги
<map_icon x="$" y="$"></map_icon>
не используются ТЧ Неизвестно
<map_icon x="1" y="0"></map_icon>
Неизвестно
<bio>$</bio>
не используются ТЧ Биография персонажа
<bio>npc_bio_name</bio>
Имя string id из *.xml-файла подключенного в параметре files, секции [string_table], файла gamedata\config\localization.ltx

Как это работает

  1. При спавне персонажа, считывается первичная секция его профиля (в данном случае: first_profile_npc_name)
  2. По первичной секции профиля, считывается класс его профиля (в данном случае: npc_class_name)
  3. По классу, считывается список всех вторичных секций для его профиля (например: main_profile_npc_name, main_profile_npc_2_name, main_profile_npc_3_name и т.д.)
  4. Одна из вторичных секций профиля выбирается случайно

Уникальный профиль

Для некоторых персонажей требуется четкое соответствие вторичной секции профиля. Например, для уникальных квестовых или сюжетных персонажей.

Задается тегами <specific_character>$</specific_character>.

Пример:

<character id="first_profile_npc_name">	
<class>npc_class_name</class>
<specific_character>main_profile_npc</specific_character>
</character>

Как это работает

  1. При спавне персонажа, считывается первичная секция его профиля (в данном случае: first_profile_npc_name)
  2. По первичной секции профиля, считывается класс его профиля (в данном случае: npc_class_name)
  3. По классу, считывается только та секция профиля, которая указана тегами (в данном случае: main_profile_npc)
    Если указанная секция не будет найдена, произойдет 2 вариант вылета: xml_str_id_loader.h

Источники