Профиль NPC: различия между версиями
Новая страница: «__NOTOC__ {| class="wikitable" style="float:right; margin-left:0.8em; clear:right; text-align: center; font-size:12px; width: 300px;" |- | colspan=2 style="font-s…» |
мНет описания правки |
||
| Строка 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''''' | ||
== Подробнее о статусах == | == Подробнее о статусах == | ||
| Строка 59: | Строка 60: | ||
'''Указывать значение, нужно только одно.'''<br> | '''Указывать значение, нужно только одно.'''<br> | ||
Если указать оба, произойдет | Если указать оба, произойдет 1 вариант вылета: [[specific_character.cpp]]<br> | ||
А если ни одного: [[ | А если ни одного, то вылет: [[xrServer_Objects_ALife_Monsters.cpp]] | ||
|- | |- | ||
| ТЧ, ЧН, ЗП || необязательны || <source lang=xml><name>$</name></source> || Имя персонажа || | | ТЧ, ЧН, ЗП || необязательны || <source lang=xml><name>$</name></source> || Имя персонажа || | ||
| Строка 82: | Строка 83: | ||
| ТЧ, ЧН, ЗП || используются || <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]] | ||
|- | |- | ||
| ТЧ, ЧН, ЗП || используются || <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]] | ||
|- | |- | ||
| ТЧ, ЧН, ЗП || необязательны || <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''''' | ||
| Строка 92: | Строка 93: | ||
| ТЧ, ЧН, ЗП || используются || <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> файла по пути | ||
Если теги не указывать, произойдет | Если теги не указывать, произойдет 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''''' | ||
| Строка 216: | Строка 217: | ||
| ТЧ || не используются || <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''''' | ||
|} | |} | ||
=== Как это работает === | === Как это работает === | ||
| Строка 222: | Строка 224: | ||
# По классу, считывается список всех вторичных секций для его профиля (например: <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> и т.д.) | ||
# Одна из вторичных секций профиля выбирается случайно | # Одна из вторичных секций профиля выбирается случайно | ||
== Уникальный профиль == | == Уникальный профиль == | ||
| Строка 235: | Строка 238: | ||
</character> | </character> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Как это работает === | === Как это работает === | ||
# При спавне персонажа, считывается первичная секция его профиля (в данном случае: <code>first_profile_npc_name</code>) | # При спавне персонажа, считывается первичная секция его профиля (в данном случае: <code>first_profile_npc_name</code>) | ||
# По первичной секции профиля, считывается класс его профиля (в данном случае: <code>npc_class_name</code>) | # По первичной секции профиля, считывается класс его профиля (в данном случае: <code>npc_class_name</code>) | ||
# По классу, считывается только та секция профиля, которая указана тегами (в данном случае: <code>main_profile_npc</code>)<br>Если указанная секция не будет найдена, произойдет 2 вариант вылета: [[ | # По классу, считывается только та секция профиля, которая указана тегами (в данном случае: <code>main_profile_npc</code>)<br>Если указанная секция не будет найдена, произойдет 2 вариант вылета: [[xml_str_id_loader.h]] | ||
== Источники == | == Источники == | ||
Версия от 19:28, 27 февраля 2019
|
Профиль 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"> |
Значения алгоритма чтения секции:
Указывать значение, нужно только одно. |
| ТЧ, ЧН, ЗП | необязательны | <name>$</name> |
Имя персонажа |
<name>GENERATE_NAME_stalker</name>или <name>npc_name</name> |
Случайно сгенерированное (в данном случае: из секции stalker_names_stalker файла gamedata\config\system.ltx)
или уникальное имя Если теги не указывать, просто не будет отображаться имя. |
| ТЧ, ЧН, ЗП | необязательны | <icon>$</icon> |
Иконка персонажа в интерфейсе | <icon>ui_npc_icon_name</icon> |
Имя texture id из *.xml-файла подключенного в параметре files, секции [texture_desc], файла gamedata\config\system.ltx
Если теги не указывать, будет установлена указанная в движке по умолчанию иконка |
| ТЧ, ЧН, ЗП | используются | <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] файла по пути
Если теги не указывать, произойдет 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
Если параметр удалить, будет установлено значение
Будет выбрано случайным образом от указанного минимума до указанного максимума. Если не указывать, будет установлено значение
|
| ТЧ, ЧН, ЗП | необязательны | <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
Значение параметра |
| ТЧ, ЧН, ЗП | используются | <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
или
Где:
Если теги не указывать, 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
|
Как это работает
- При спавне персонажа, считывается первичная секция его профиля (в данном случае:
first_profile_npc_name) - По первичной секции профиля, считывается класс его профиля (в данном случае:
npc_class_name) - По классу, считывается список всех вторичных секций для его профиля (например:
main_profile_npc_name,main_profile_npc_2_name,main_profile_npc_3_nameи т.д.) - Одна из вторичных секций профиля выбирается случайно
Уникальный профиль
Для некоторых персонажей требуется четкое соответствие вторичной секции профиля. Например, для уникальных квестовых или сюжетных персонажей.
Задается тегами <specific_character>$</specific_character>.
Пример:
<character id="first_profile_npc_name">
<class>npc_class_name</class>
<specific_character>main_profile_npc</specific_character>
</character>
Как это работает
- При спавне персонажа, считывается первичная секция его профиля (в данном случае:
first_profile_npc_name) - По первичной секции профиля, считывается класс его профиля (в данном случае:
npc_class_name) - По классу, считывается только та секция профиля, которая указана тегами (в данном случае:
main_profile_npc)
Если указанная секция не будет найдена, произойдет 2 вариант вылета: xml_str_id_loader.h
Источники
- ↑ Документация к X-Ray SDK 0.7 от GSC Game World
- ↑ Пост пользователя "Malandrinus" на AMK форуме