Дата: Понедельник, 03.08.2015, 02:05/ Сообщение №: 1
Статья посвещена созданию нового НПС в S.T.A.L.K.E.R. Зов Припяти (1.6.02).
Создать НПС можно двумя способами. Через all.spawn и через скрипт.
В статье мы не будем учить как создавать новые модели или новые текстуры. Всего лишь создание НПС из того что имеется в оригинале. Так же статья опирается на то что читатель умеет распаковывать ресурсы игры и all.spawn.
Сначала разберём первый способ.
Для работы нам понадобиться:
1. Программа ActivePerl.
2. ACDC для ЗП.
3. Файлы из оригинальных распакованных ресурсов игры:
gamedata\spawns\all.spawn
gamedata\configs\gameplay\character_desc_zaton.xml
gamedata\configs\gameplay\npc_profile.xml
ActivePerl
ACDC для ЗП
Создадим секцию спавна для нашего НПС.
Распаковываем файл all.spawn в итоге у нас получается несколько текстовых файлов.
Откроем файл той локации на которой хотим заспавнить НПС. По нашей статье - это Затон, соответственно файл будет alife_zaton.ltx.
В самый конец пишем:
~~~~~~~~~~~~~~~
Код
[1866] ; Номер секции. Он всегда должен быть больше чем у последней секции. Например последняя секция в этом файле с номером [1865], поэтому у нас [1866].
; cse_abstract properties
section_name = stalker
name = dlt_nps_1 ; Это имя секции спавна. Можно написать любое, но нельзя чтобы такое же имя уже где-то было.
position = 256.240051269531,19.8124237060547,550.824279785156 ; Координаты спавна нашего НПС.
direction = -0.0120869996026158,2.81339907646179,-0.0158249996602535 ; Координаты поворота нашего НПС.
; cse_alife_trader_abstract properties
character_profile = dlt_nps_1 ; Название профиля (характера) нашего НПС. Можно написать любое, но нельзя чтобы такое же название уже где-то было. Сам профиль создадим позже.
; cse_alife_object properties
game_vertex_id = 292 ; Вертекс спавна нашего НПС.
distance = 0
level_vertex_id = 1405060 ; Вертекст уровня спавна нашего НПС.
object_flags = 0xfffffffb
custom_data = <<END ; Логика нашего НПС.
[logic]
cfg = scripts\dlt_nps_1_logic.ltx ; Ссылка на файл с логикой нашего НПС. Сам файл создадим позже.
[spawn] ; Снаряжение НПС. В ЗП не используется.
END
; cse_visual properties
visual_name = actors\novice\green_stalker_2 ; Ссылка на визуал НПС. В ЗП не используется.
~~~~~~~~~~~~~~~
Все мои комментарии после знака ; можно удалить, но и с ними всё будет работать.
Теперь все файлы можно снова упаковать в all.spawn.new и потом переименовать в all.spawn. Этот файл положить в gamedata\spawns.
Создадим профиль (характер) нашему НПС.
Открываем файл character_desc_zaton.xml и после строки пишем:
~~~~~~~~~~~~~~~
Код
<specific_character id="dlt_nps_1" team_default="1"> ; Название профиля (характера) которое мы указали в all.spawn.
<name>Хемуль</name> ; Это системное имя нашего НПС. Можно написать любое, но нельзя чтобы такое же имя уже где-то было.
<icon>ui_iconsNpc_soldier_beret</icon> ; Название текстуры иконки из gamedata\configs\ui\textures_descr\ui_iconstotal.xml
<map_icon x="1" y="0">
</map_icon>
<bio>Опытный сталкер. Детальная информация отсутствует.</bio>
<class>dlt_nps_01</class> ; Название класса нашего НПС. Должно отличаться от названия профиля (характера).
<community>stalker</community> ; Группировка нашего НПС.
<terrain_sect>stalker_terrain</terrain_sect>
<snd_config>characters_voice\human_01\stalker\</snd_config> ; Ссылка на звуки голоса нашего НПС.
<rank>50</rank> ; Ранг нашего НПС.
<reputation>0</reputation> ; Репутация нашего НПС.
<money min="1000" max="1000" infinitive="0" /> ; Количество денег нашего НПС. Если поставить infinitive="1", то деньги будут бесконечные.
<visual>actors\stalker_neutral\stalker_neutral_2_face_6</visual> ; Ссылка на визуал нашего НПС.
<actor_dialog>actor_break_dialog</actor_dialog> ; Названия доступных диалогов с нашим НПС.
</specific_character>
~~~~~~~~~~~~~~~
Мы сделали профиль нашего НПС. Но нужно ещё прописать профиль в npc_profile.xml.
Пропись профиля в npc_profile.xml.
Открываем файл npc_profile.xml и после строки пишем:
~~~~~~~~~~~~~~~
Код
<character id="dlt_nps_1"> ; Название профиля (характера) нашего НПС.
<class>dlt_nps_01</class> ; Название класса нашего НПС.
</character>
~~~~~~~~~~~~~~~
Готово. Но мы помним что в all.spawn прописывали ещё ссылку на файл с логикой нашего НПС. Давайте создадим его.
Создание файла с логикой нашего НПС.
В папке gamedata\configs\scripts создаём файл с dlt_nps_1_logic.ltx.
В него пишем:
~~~~~~~~~~~~~~~
Код
[logic]
active = remark1
danger = danger_ignore
commander = true ; Эта строчка делает нашего НПС главным в группе и при попытке диалога с ним он не будет нас посылать к главному.
[remark1]
no_move = true
meet = meet
[danger_ignore]
ignore_distance = 10
[meet]
use = true
use_wpn = true
~~~~~~~~~~~~~~~
C такой логикой наш НПС будет просто стоять. Собственно это всё что нужно для создания НПС.
Не забудьте положить файлы куда нужно и готово! НПС появиться при начале новой игры рядом с ГГ.