Воскресенье, 22.09.2024, 18:29
Приветствую Вас Гость | RSS
F.R.O.N.T.
Главная | Статьи | Регистрация | Вход
Меню сайта
Все новые статьи находяться на форуме!!! Видеть их могут только рарегистрированые пользователи...
Категории каталога
Мои статьи [28] Сценарии [0]
Пишите сюда свои сцинарии
Модострой [152]
Статьи по созданию модов
КАК СНЯТЬ ФИЛЬМ??? [0]
Статьи о том как снять фильмы
Мини-чат
Наш опрос
Какой мод лучше всего?
1. АМК 1.4
2. Другие
3. ЖЕСТЬ
4. Зона поражения 1-2
5. Прибой стори
6. Арсенал мод
7. Old good STALKER
8. АВС
9. Симбион
10. Addon To STALKER
11. СРП
12. New Level changer
13. АИ пак
14. CprHicks mod
15. Черноречье
Всего ответов: 110
Главная » Статьи » Модострой

Спавним НПС в третий раз
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)
Просмотров: 935 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
счетчик посещенийсчетчик посещений
Друзья сайта
 
Фан сайт игры S.T.A.L.K.E.R.

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

Статистика

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

Copyright MyCorp © 2024