Вторник, 13.01.2026, 21:58
Приветствую Вас Гость | RSS
F.R.O.N.T.
Главная | Статьи | Регистрация | Вход
Меню сайта
Все новые статьи находяться на форуме!!! Видеть их могут только рарегистрированые пользователи...
Категории каталога
Мои статьи [28] Сценарии [0]
Пишите сюда свои сцинарии
Модострой [152]
Статьи по созданию модов
КАК СНЯТЬ ФИЛЬМ??? [0]
Статьи о том как снять фильмы
Мини-чат
Наш опрос
Какой из 2 сталкеров выбираете вы?
1. ТЧ
2. Оба кул!
3. ЧН
4. Подожду ЗП
5. Не играл вообще
6. Оба бэд!
7. Не играл в ТЧ
8. Не играл в ЧН
Всего ответов: 74
Главная » Статьи » Модострой

Спавним НПС в третий раз
1. Готовим описание НПЦ- В папке gamedata\config\gameplay Создать xml файл, содержащий описание. Назовем его к примеру
Character_unique_by_pereiro.xml (вообще называть как угодно).
В нем пишем:
<xml>
<specific_character id="ingvi_stalker" team_default = "1">
<name>Ингви-Сталкер</name>
<icon>ui_npc_u_stalker_neytral_nauchniy</icon>
<map_icon x="1" y="0"></map_icon>
<bio>Ингви – учится делать персонажей.</bio>

<class>ing_stal_1</class>
<community>stalker</community> <terrain_sect>stalker__terrain</terrain_sect>

<rank>476</rank>
<reputation>9</reputation>

<snd_config>characters_voice\human_02\stalker\</snd_config>
<crouch_type>0</crouch_type>

<visual>actors\neytral\stalker_neytral_nauchniy</visual>
<supplies>
[spawn] \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
wpn_ak74u \n
ammo_5.45x39_fmj = 1 \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_drugs.xml" \n
#include "gameplay\character_food.xml"
</supplies>

#include "gameplay\character_criticals_5.xml"
#include "gameplay\character_dialogs.xml"
<start_dialog>hello_dialog</start_dialog>
</specific_character>
</xml>

Тут вроде всё ясно. Для примера можно глянуть описания персонажей из файлов
character_desc_*****, где ***** - имя уровня или группировки.
Да, важно: класс НПЦ (а соответственно его иммунитеты, сопротивления и шансы на попадание) будет зависеть от значения <rank></rank>.
Секция диалогов может содержать и другие (не только старт_дайлог, но и актор_дайлог – если вдруг квест прикрутить надо будет).
Секция #include может содержать не все инклюды, а только часть. Или вообще ничего.

не забываем заглянуть в файл gamedata\config\gameplay\npc_profile.xml (или создать свой - только не забыть его записать в system.ltx в секцию [profiles] - кому как удобней).
там перед первым описанием вставляем
<character id="ingvi_stalker">
<class>ing_stal_1</class>
<specific_character>ingvi_stalker</specific_character>
</character>

2. Откуда спавним.
В папке gamedata\config\creatures есть замечательный файл (в ресурсах естессно) spawn_sections.ltx
Будем править его.
Дабы не путаться потом, в самое его начало пишем:

[ingvi_stalker_spawn]:stalker
$spawn = "respawn\ ingvi_stalker _spawn"
character_profile = ingvi_stalker
spec_rank = veteran
community = stalker

В общем последние 2 строчки можно и не писать, т.к. ранг и группировка определяются в описании перса в главе 1.

3. Как спавним. Собственно как спавнить – дело вкуса и обстоятельств.

3.1. Если мы хотим использовать перса в каком-то квесте, то логичнее спавнить его вызовом из диалога, дабы не болтался он по карте и приключений на жопу не искал.
То есть:

Создаем в gamedata\scripts файл ну скажем ingvi_spawn.script
И в нем пишем:
function ingvi_sp()
alife():create("ingvi_stalker_spawn",vector():set(44.87,0.92,241.6),218598,359)
end

после чего добавляем вызов функции <action> ingvi_spawn. ingvi_sp</action> в нужную фразу нужного диалога (заспавним Ингви в вагончике Долга на Свалке).

3.2. Можно расставить всех НПЦ сразу в начале игры:

- поместить в bind_stalker.script ф-я net_spawn(data) примерно такую конструкцию:

if xr_logic.pstor_retrieve(db.actor, "first_run", 0)==0 then
alife():create("ingvi_stalker_spawn ",vector():set(44.87,0.92,241.6),218598,359)
xr_logic.pstor_store(db.actor, "first_run", 1)
end

3.3. Или расставлять НПЦ на нужных уровнях по мере захода на них:
поместить в bind_stalker.script в конце ф-ии actor_update(delta).

if not has_alife_info("is_ingvi") and (level.name() == "l02_garbage")
then
self.object:give_info_portion("is_ingvi")
alife():create("ingvi_satlker_spawn",vector():set(44.87,0.92,241.6),2185 98,359)
end

В этом случае не забываем объявить инфопоршен “is_ingvi”. Такой способ мне нравится ещё и тем, что для добавления персонажей не надо начинать игру заново.

4. Итоги.Итак, в результате вышеперечисленных манипуляций с файлами мы создаём персонажа по имени Ингви-Стралкер, класс ing_stal_1 на Свалке в вагончике Долга.
Если надо добавить в игру уже существующих НПЦ , то читайте сразу главу 3.

Да, чуть не забыл… В файл gamedata\config\system.ltx в секцию [profiles] дописать в конец после запятой Character_unique_by_pereiro.


З.Ы. (от jb007x)... как ни странно , я до сих пор спрашиваю, как восстановить Фримена... предлагаю всем заинтересованным или желающий помочь перейти в соответствующий топ, ознакомиться с историей вопроса и продолжить уже там...



Категория: Модострой | Добавил: front (20.09.2008)
Просмотров: 965 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
счетчик посещенийсчетчик посещений
Друзья сайта
 
Фан сайт игры S.T.A.L.K.E.R.

Бар_У_границы_Зоны_бар_настоящего_сталкера!

Статистика

На портале: 1
Новичков: 1
Участников: 0

Copyright MyCorp © 2026