Вступление В этой статье мы научимся редактировать NPC: изменять содержимое их инвентаря, реплики, поведение, имя, и другие параметры.
Параметры За параметры NPC отвечают файлы: \config\gameplay\character_desc_[название локации].xml
Каждый из них разбит на секции - по одной на NPC. Используются следующие параметры: ... - Имя (ссылка на строку в текстовом массиве).
ui_npc_... - Иконка для диалогов/торговли.
..._bio - Биография (в игре не используется).
... - Класс (лучше не трогать).Imp 12:46, 12 августа 2007 (EEST)Нужно для того что-бы автоматические респавнеры могли спавнить немного разных персонажей. То есть например в игре есть описание восьми (кажеться может и больше) разных новичков и что бы при автоматическом респавне не получалась куча братьев-близнецов, респавнер настраивается на класс персонажей и спавнит случайным образом разных персонажей одного класса.
... - Группировка.
... - Ранг.
... - Репутация.
- Количество денег (infinitive="1" - бесконечные деньги).
... - Набор звуков.
-1 - Тип приседания. Лучше не трогать.
actors\... - Внешность. Влияет как на внешний вид костюма, так и на его свойства. Укажите здесь экзоскелет - и персонаж действительно в нем окажется: как по внешности, так и по свойствам.
... - Предметы, находящиеся у него в инвентаре. Некоторые из них в игре не отображаются, поэтому не удивляйтесь присутствию здесь предметов вроде рации или фонарика.
В игре отображаються все предметы, просто при торговле есть ограничения на допустимые к торговле предметы, а при смерти персонажа, "запрещенные" предметы удаляються скриптом. Imp 12:46, 12 августа 2007 (EEST)
... - Приветственный диалог. Их может быть несколько, с различными условиями появления.
... - Диалоги с игроком.
Практика
Изменим, например, параметры NPC по имени Волк.
Откроем файл:
\config\gameplay\character_desc_escape.xml
И найдем в нем раздел, ему соответствующий:
Код
<!---------------------esc_wolf--------------------->
<specific_character id="esc_wolf" team_default = "1">
<name>esc_wolf_name</name>
<icon>ui_npc_u_stalker_neytral_balon_1</icon>
<bio>esc_wolf_bio</bio>
<class>esc_wolf</class>
<community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
<rank>434</rank>
<reputation>5</reputation>
<money min="600" max="2000" infinitive="0"/>
<snd_config>characters_voice\human_01\stalker\</snd_config>
<crouch_type>-1</crouch_type>
<visual>actors\neytral\stalker_neytral_balon_1</visual>
<supplies>
[spawn] \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
wpn_ak74u \n
ammo_5.45x39_fmj \n
device_torch \n
hand_radio \n
</supplies>
#include "gameplay\character_criticals_4.xml" //
<start_dialog>escape_lager_volk_talk</start_dialog>
<start_dialog>dm_hello_dialog</start_dialog>
<actor_dialog>dm_cool_info_dialog</actor_dialog>
<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
<actor_dialog>tm_wolf_dialog</actor_dialog>
<actor_dialog>tm_wolf_reward</actor_dialog>
</specific_character>
Изменим некоторые параметры. Выдадим ему FN2000 и Desert Eagle, примем в "Долг" и сделаем неограниченное количество денег:
Код
<!---------------------esc_wolf--------------------->
<specific_character id="esc_wolf" team_default = "1">
<name>esc_wolf_name</name>
<icon>ui_npc_u_stalker_neytral_balon_1</icon>
<bio>esc_wolf_bio</bio>
<class>esc_wolf</class>
<community>dolg</community> <terrain_sect>stalker_terrain</terrain_sect>
<rank>434</rank>
<reputation>5</reputation>
<money min="600" max="2000" infinitive="1"/>
<snd_config>characters_voice\human_01\stalker\</snd_config>
<crouch_type>-1</crouch_type>
<visual>actors\neytral\stalker_neytral_balon_1</visual>
<supplies>
[spawn] \n
wpn_deagle \n
ammo_11.43x23_fmj = 1 \n
wpn_fn2000 \n
ammo_5.56x45_ap \n
ammo_5.45x39_fmj \n
device_torch \n
hand_radio \n
</supplies>
#include "gameplay\character_criticals_4.xml" //
<start_dialog>escape_lager_volk_talk</start_dialog>
<start_dialog>dm_hello_dialog</start_dialog>
<actor_dialog>dm_cool_info_dialog</actor_dialog>
<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
<actor_dialog>tm_wolf_dialog</actor_dialog>
<actor_dialog>tm_wolf_reward</actor_dialog>
</specific_character>