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

<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] 
Если кому то не понятно можете посмотреть мой файл торговли: [Гости не могут видеть ссылки,регистрация не отнимет много времени :) ] 

Все, торговец создан. 
Спасибо за материал по созданию NPC - Pereiro 
За все остальное - участникам форума http://sdk.stalker-game.com/ 
И лично мне 


Поясню некоторые нюансы: 
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. Здесь объяснять ничего не нужно, и так все ясно уже давно 

 
Навигация
Навигация по сайту
Авторизация
Форма входа на сайт
Мини-чат
Удобное общение
 
200
Категории раздела
Категории материалов
Архив записей
Архив материалов сайта
Календарь
Календарик на сайте
«  Июль 2025  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Обмен баннерами
Наш баннер и баннеры друзей
Получить код
Статистика
Сатистика на сайте

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Дизайн сайта GLCreative © 2025