Меню

Пда

Чатик

Поиск

Главная » Статьи » Моды и моддинг » Моддинг

Создание нового торговца.

Создание нового торговца.
Сейчас мы научимся создавать нового торговца - Петровича:
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. Здесь объяснять ничего не нужно, и так все ясно уже давно
Категория: Моддинг | Добавил: Gluck (22.07.2012)
Просмотров: 598 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наши партнеры


Книги сталкер
Найти другие книги

Новые Темы

Популярные Темы

Новые Файлы

Популярные Файлы

В вылазке: 2
Новичков: 2
Сталкеров: 0


Кто был сегодня на сайте:


Вакансии
Яндекс.Метрика Рейтинг@Mail.ru
Яндекс.Метрика