Территория Свободы | Главная | Уникальные НПЦ. - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Pereiro  
Уникальные НПЦ.
PereiroДата: Понедельник, 12.11.2007, 17:25 | Сообщение # 1
Beholder
Группа: Администраторы
Сообщений: 483
Репутация: 18
Статус: Offline
Вообще весь материал можно найти в ВИКИ или ещё где, но то там недописано, то тут недосказано...
Посему для ленивых :) пример создания НПЦ и его спавна в игру.

Итак, для создания своего НПЦ (я буду говорить о уникальных) нам потребуется:
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>

Добавлено (12.11.2007, 17:12)
---------------------------------------------
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.

Добавлено (12.11.2007, 17:13)
---------------------------------------------
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”. Такой способ мне нравится ещё и тем, что для добавления персонажей не надо начинать игру заново.

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

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


Делай, что должно, и будь что будет
 
РегулДата: Понедельник, 12.11.2007, 21:29 | Сообщение # 2
7.62х39
Группа: Ветераны
Сообщений: 139
Репутация: 5
Статус: Offline
Вопрос, это под пиратку или под лицензию тоже пройдет???

Долг, долги не забывает!!!

Сообщение отредактировал Регул - Понедельник, 12.11.2007, 21:29
 
PereiroДата: Понедельник, 12.11.2007, 21:33 | Сообщение # 3
Beholder
Группа: Администраторы
Сообщений: 483
Репутация: 18
Статус: Offline
Регул, это способ скриптового спавна персонажа. Не имеет значения, какая версия - пиратка или лицензия. Возможно, что какой-то из способов пункта 3 не сработает на ранних патчах, впрочем сомневаюсь. У меня лицензия и 1.0004 ogo

Делай, что должно, и будь что будет
 
РегулДата: Вторник, 13.11.2007, 09:35 | Сообщение # 4
7.62х39
Группа: Ветераны
Сообщений: 139
Репутация: 5
Статус: Offline
Принято, буднем работать над созданием

Долг, долги не забывает!!!
 
PereiroДата: Понедельник, 19.11.2007, 13:32 | Сообщение # 5
Beholder
Группа: Администраторы
Сообщений: 483
Репутация: 18
Статус: Offline
Джет, а скачать мод не судьба? скачивать отсюда. Там и диалоги, и квесты и предметы новые... Короче, читай О МОДЕ, файлов там немного, не заблудишься. Если не разберешься, то напишу тебе спавн одного НПЦ. Версия игры должна быть 1.0004. Если найдешь глюки - пиши в соответсвующую тему (не сюда :) )

Делай, что должно, и будь что будет
 
JetДата: Понедельник, 19.11.2007, 13:59 | Сообщение # 6
9х18
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
Да все дело в том что у меня наидревнейшая версия сталкера :(

Скоро появится 1.003, радость божья на то.

Потому и прошу написать...


WE WILL SEE
 
JetДата: Понедельник, 19.11.2007, 14:07 | Сообщение # 7
9х18
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
И пока не забыл на будущее, где можно (или как) определить координаты опр места, допустим, на кардоне маленькая ферма, где еще по найденым ПДА можно узнать что туда "пошел братан и не вернулся")))

WE WILL SEE
 
JetДата: Понедельник, 19.11.2007, 15:13 | Сообщение # 8
9х18
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
Пишу с ноута...
Ребята вы не подумайте что я какойто лентяй или халявщик, неет, просто я пытаюсь найти лучшие пути через людей, это как в сталкере (банальный пример) "Кто то дошел на север первей, надо идти по их стопам". Я стараюсь научиться всему, но если у меня чтото не получается я всегда пытаюсь спросить у кого то кто лучше разбирается чем я, для меня есно все лучше научитсья самому, так все запоминается. Тоесть я не пишу вам просто то так, я пишу потому что не понимаю чтото.

А по поводу координат я говорил не про то где браток и как его найти, я это все знаю:) Я ГОВОРИЛ ПРО ТО - как можно определять координаты, чтобы ставить туда своего НПС, чтобы он там появлялся. Вот про что я:)

Версию не могу обновить потому что инет дерьмо, + знакомых нет у кого норм версия. Т.Е. Достать не могу. И еще раз прошу если кто то найдет в себе сил и составит нпс для меня выбросте в виде мода как по папочкам, я попробую полазить поразбираться где начудил. Заодно в шаблон превращю, дальше уже постепенно сам разберусь. Главное чтобы было от чего толкнуться.


WE WILL SEE
 
PereiroДата: Понедельник, 19.11.2007, 22:44 | Сообщение # 9
Beholder
Группа: Администраторы
Сообщений: 483
Репутация: 18
Статус: Offline
Джет, понятно. Про координаты я понял, что ты имеешь в виду - где добыть X,Y,Z и GV_id, LV_ID. Сделаю темку с подобными мелочами.
Мод на спавн одного НПЦ ладно, напишу. Только в шаблон его не превращай - способ надо менять по обстоятельствам :)


Делай, что должно, и будь что будет
 
JetДата: Вторник, 20.11.2007, 13:15 | Сообщение # 10
9х18
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
постараюсь....

WE WILL SEE
 
maxdieselДата: Вторник, 01.01.2008, 19:24 | Сообщение # 11
Группа: Удаленные





Quote (Pereiro)
Мод на спавн одного НПЦ ладно, напишу

Очень интересно было бы тоже посмотреть и поучится у Вас
спасибо
 
РегулДата: Вторник, 01.01.2008, 22:27 | Сообщение # 12
7.62х39
Группа: Ветераны
Сообщений: 139
Репутация: 5
Статус: Offline
Pereiro,
Будь добр отпиши конкретно как создаватьть перцовкоторые искалибы себе приключения на жо.... ну вообщем приключения
Хочу Должан по зоне раскидать.
И вопрос в догонку эти перцы твоего разлива будут дружить с АМК модами 1.3.1 и фиксами и с аддонами к нему


Долг, долги не забывает!!!
 
PereiroДата: Вторник, 01.01.2008, 22:41 | Сообщение # 13
Beholder
Группа: Администраторы
Сообщений: 483
Репутация: 18
Статус: Offline
Регул, смотри пример в теме "Примеры". Там есть пример на спавн одного НПЦ. Вот тебе образец. Если тебе хочется конкретно расставить некоторое количество НПЦ по Зоне - указывай, какие патчи, моды и аддоны стоят. И где расставить хочешь. Могу написать тебе такой мод - только не враз - сначала придется игру сначала проходить для получения координат :)

Делай, что должно, и будь что будет
 
PereiroДата: Вторник, 01.01.2008, 22:50 | Сообщение # 14
Beholder
Группа: Администраторы
Сообщений: 483
Репутация: 18
Статус: Offline
А лучше сразу координаты. Как их получать - читай в Подсобке.

Делай, что должно, и будь что будет
 
BerSerK™Дата: Среда, 04.06.2008, 12:42 | Сообщение # 15
5.56х45
Группа: Постоянные
Сообщений: 58
Репутация: 5
Статус: Offline
Сори, что пишу в старую тему, но просто очень нужна информация. Кто-нибудь может подробно, с примерами объяснить создание логики для уникальных неписей? Pereiro, , обращаюсь конкретно к тебе, извини за фамильярность. Шарил по SDK - там есть статейки по логике, но не очень подробно объяснено, я сам не догоню, чё и как.

Даже если я смеюсь - это не значит, что мне весело. Поэтому не думайте, что я не умею обижаться.
 
  • Страница 1 из 1
  • 1
Поиск:


Designed by S.Pereiro © 2024