S.T.A.L.K.E.R. Dead City Mod
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
S.T.A.L.K.E.R. Dead City Mod


 
ГлавнаяГлавная  Последние изображенияПоследние изображения  ФорумФорум  РегистрацияРегистрация  ВходВход  

 

 Создание нового торговца (ТЧ)

Перейти вниз 
АвторСообщение
DCM TEAM
Администратор
Администратор
DCM TEAM


Сообщения : 106
Дата регистрации : 2011-07-14
Возраст : 14
Откуда : }{имки

Создание нового торговца (ТЧ) Empty
СообщениеТема: Создание нового торговца (ТЧ)   Создание нового торговца (ТЧ) Icon_minitimeПт Июл 15, 2011 12:23 pm

Сейчас мы научимся создавать нового торговца - Петровича:
1.Для начала создадим нового NPC, к которому и привяжем функцию торговли.
Cоздадим описание нашего NPC, для этого в папке gamedata\config\gameplay создадим xml файл, содержащий описание нашего торговца. Назовем его к примеру
Character_unique_by_qwerty111.xml (вообще называть можно как угодно).
В нем пишем:
<?xml version='1.0' encoding="windows-1251"?>

<xml>
<specific_character id="petrovich_trader" team_default = "1">
<name>Петрович</name>
<icon>ui_npc_u_stalker_sv_balon_1</icon>
<map_icon x="1" y="4"></map_icon>
<bio>petrovich_trader</bio>

<class>petrovich_trader</class>
<community>stalker</community>
<money min="100000" max="110000" infinitive="1"></money>
<terrain_sect>stalker_terrain</terrain_sect>

<rank>730</rank>
<reputation>96</reputation>
<visual>actors\svoboda\stalker_sv_balon_1</visual>
<snd_config>characters_voice\human_02\freedom\</snd_config>
<crouch_type>-1</crouch_type>

<supplies>
[spawn] \n
wpn_sig220 \n
ammo_11.43x23_hydro = 1 \n
wpn_sig550 \n
ammo_5.56x45_ap = 1 \n
</supplies>

<start_dialog>hello_dialog</start_dialog>
</specific_character>

</xml>

За тем прописываем его в npc_profile.xml(gamedata\config\gameplay), т.е под строчкой Новые Профиля пишем:
<character id="petrovich_trader">
<class>petrovich_trader</class>
<specific_character>petrovich_trader</specific_character>
</character>
После этого регистрируем описание нашего торговца в файле gamedata\config\system.ltx
В секцию [profiles] дописываем в конец после запятой Character_unique_by_qwerty111.
3.Чтобы персонаж появился, нужно его заспавнить, для этого:
В папке gamedata\config\creatures есть замечательный файл spawn_sections.ltx
Будем править его.
Дабы не путаться потом, в самое его начало пишем:

[petrovich_trader_spawn]:stalker_trader
character_profile = petrovich_trader
spec_rank = veteran
community = stalker
use_single_item_rule = off
can_select_items = off
custom_data = scripts\petrovich_trader.ltx
Далее создаем скрипт с названием, например my_spawns.script в папке gamedata\scripts\
Прописываем в него функцию:

function petrovich_trader_spwn1()
local obj
local a = vector() -- Задаем тип переменной
local dir = db.actor:direction()

a.x = -246.51 -- координата X
a.y = -19.52 -- высота Y
a.z = -144.60 -- координата Z

obj = alife():create("petrovich_trader_spawn",a,13193,8,65535)
alife():create_ammo("ammo_9x18_fmj",
obj.position,
obj.m_level_vertex_id,
obj.m _game_vertex_id,
obj.id,
20) -- число патронов, которые будут спавнится при убиистве Петровича
end

Открываем блокнотом escape_dialog.script(gamedata\scripts\) и там в диалоге с Сидоровичем, например, после квеста с флешкой Шустрого,
функция: "function give_wounded_flash(first_speaker,second_speaker)"
(Можно впринципе в любой диалог)
вставляем:

my_spawns.petrovich_trader_spwn1()

вот так будет выглядеть разговор с Сидером:

function give_wounded_flash(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "esc_wounded_flash", "out")
dialogs.relocate_money(second_speaker, 1500, "in" )
my_spawns.petrovich_trader_spwn1() -- Вызов Петровича
end
Т.е наш персонаж появится только после выполнения задания с флешкой Шустрого, и когда Сидорович выдаст вам деньги за это задание, а торговец появляется по нашим координатам рядом с лагерем новичков.
4.Теперь в папке \gamedata\config\scripts создаем файл petrovich_trader.ltx
Этот файл является проводником к файлу торговли и логикой персонажа.
И в нем пишем:
[logic]
trade = misc\trade_petrovich.ltx
active = remark

[remark]
anim = wait

5.Теперь создаем в папке \gamedata\config\misc файл trade_petrovich.ltx
Это и есть файл торговли.
И в начале пишем:
[trader]
buy_condition = petrovich_generic_buy
sell_condition = petrovich_start_sell
buy_supplies = supplies_start

и потом как у других торговцев,т.е у бармена например [barman_generic_buy], а у нас будет [petrovich_generic_buy]

Все, торговец создан.

Поясню некоторые нюансы:
1.
<specific_character id="petrovich_trader" team_default = "1">
<name>Петрович</name>
<icon>ui_npc_u_stalker_sv_balon_1</icon>
<map_icon x="1" y="4"></map_icon>
<bio>petrovich_trader</bio>

<class>petrovich_trader</class>
<community>stalker</community> -- группировка, которая будет указана при разговоре с ним
<money min="100000" max="110000" infinitive="1"></money> -- деньги, на которые он покупает оружие и все, что принесет на продажу сам игрок
<terrain_sect>stalker_terrain</terrain_sect>

<rank>730</rank>
<reputation>96</reputation>
<visual>actors\svoboda\stalker_sv_balon_1</visual> --модель героя, можно поменять, указав путь другой модели
<snd_config>characters_voice\human_02\freedom\</snd_config> -- озвучка, тоже можно заменить на другую
<crouch_type>-1</crouch_type> --оставлять также, не трогать

<supplies>
[spawn] \n
wpn_sig220 \n
ammo_11.43x23_hydro = 1 \n
wpn_sig550 \n
ammo_5.56x45_ap = 1 \n
</supplies>

<start_dialog>hello_dialog</start_dialog>
</specific_character>

2.
<character id="petrovich_trader"> --id указывайте тот, который указан в созданном файле описания торговца (предыдущий пункт), т.е. можно назвать как угодно торговца, но id сохранять в каждом файле
<class>petrovich_trader</class>
<specific_character>petrovich_trader</specific_character>
</character>

Quote
В секцию [profiles] дописываем в конец после запятой Character_unique_by_qwerty111

Т.е. дописываем название файла описания торговца (см. в 1 пункте)

3.
[petrovich_trader_spawn]:stalker_trader
character_profile = petrovich_trader -- это наш id, который будет использоваться в файлах как ссылка на нашего персонажа, типа, связки
spec_rank = veteran
community = stalker
use_single_item_rule = off
can_select_items = off
custom_data = scripts\petrovich_trader.ltx

Quote (qwerty111)
Далее создаем скрипт с названием, например my_spawns.script в папке gamedata\scripts\

Называйте как угодно, главное потом в файле escape_dialog.script(gamedata\scripts\) укажите в функции function give_wounded_flash(first_speaker,second_speaker) ссылку на ваш скрипт. Например, в указанном здесь my_spawns.petrovich_trader_spwn1() , где my_spawns. - наш созданный скрипт, а petrovich_trader_spwn1() - выполнение функции в этом скрипте.

4.
[logic]
trade = misc\trade_petrovich.ltx --указываем на созданный файл торговца (где и будет находится ассортимент оружия)
active = remark

[remark]
anim = wait

5. Здесь объяснять ничего не нужно, и так все ясно уже давно

Спасибо за материал по созданию NPC - Pereiro
Сам автор этого урока не известен

Правил ошибки и недочёты Dimati9 (Seven'UP)
Вернуться к началу Перейти вниз
https://dcm-team.forum2x2.ru
 
Создание нового торговца (ТЧ)
Вернуться к началу 
Страница 1 из 1
 Похожие темы
-
» Создание нового торговца
» Создаем нового непися
» Создание и спавн НПС через скрипт
» Создание диалогов
» Создание Видеофайлов для игры S.T.A.L.K.E.R.

Права доступа к этому форуму:Вы не можете отвечать на сообщения
S.T.A.L.K.E.R. Dead City Mod :: Делаем моды своими руками! :: Уроки ТЧ-
Перейти: