..::STALKER.BY::.. http://stalker.by/forum/ |
|
Редактирование торговцев http://stalker.by/forum/viewtopic.php?f=534&t=39 |
Страница 1 из 2 |
Автор: | Дядя Вася [ 14 авг 2009, 19:27 ] |
Заголовок сообщения: | Редактирование торговцев |
Общее Урок посвящен редактированию ассортимента торговцев в игре. Эта, в общем-то несложная процедура у многих вызывает вопросы, поэтому я и решил разъяснить, что да как. Файлы Ассортимент товаров у торговцев хранится в файлах вида trade_[...].ltx, где ... - системное имя торговца. Это файлы: trade_barman.ltx - Бармен trade_dolg.ltx - сержант Петренко на базе группировки "Долг" trade_ecolog.ltx - Сахаров trade_freedom.ltx - Скряга на базе группировки "Свобода" trade_trader.ltx - Сидорович trade_generic.ltx - обычный сталкер Все они хранятся в папке: ...\S.T.A.L.K.E.R\gamedata\config\misc\...Структура файла Разберем структуру файла trade_barman.ltx: [trader] buy_condition = barman_generic_buy sell_condition = {+yan_labx16_switcher_primary_off} barman_after_brain_sell, {+bar_darklab_document_done} barman_after_darkvalley_sell, barman_start_sell buy_supplies = { yan_labx16_switcher_primary_off} supplies_after_brain, { bar_darklab_document_done} supplies_after_darkvalley, supplies_startЗдесь содержатся условия, от которых зависит диапазон продаваемых/покупаемых торговцем предметов. То есть, например, после выполнения квеста на "Янтаре" соответствующее условие считается выполненным, и ассортимент сменяется на новый, из другого раздела. -------------------------------------------------------------------------------- После этого идет раздел [barman_generic_buy], содержащий предметы, которые бармен покупает. Структура записи в этом разделе: wpn_walther = 0.3, 0.1wpn_walther - имя предмета, в данном случае - пистолет "Вальтер" 0.3 - максимальная цена, по которой торговец купит предмет 0.1 - минимальная цена, по которой торговец купит предмет Цена зависит от репутации игрока. -------------------------------------------------------------------------------- Далее идет раздел [supplies_start] - ассортимент, предоставляемый барменом в начале игры. Он поделен на категории: [supplies_start] ;'''Аммуниция''' ammo_9x18_fmj = 15, 0.6 ... ;'''Оружие''' wpn_pb = 3, 0.6 ... ;'''Броники''' stalker_outfit = 3, 0.7 ... ;'''Медикаменты''' bandage = 5, 0.6 ... ;'''Еда''' bread = 10, 0.5 ...На самом деле можете добавлять новый предмет, куда захотите, все эти "категории" существуют исключительно в целях удобства. Игра их не учитывает. Теперь о структуре одной записи: wpn_walther = 3, 0.6wpn_walther - имя предмета, в данном случае - пистолет "Вальтер" 3 - количество предметов этого типа у торговца 0.6 - вероятность появления каждого из них То есть если значения равны 4, 0.5, то это означает, что у торговца в ассортименте появятся два предмета этого типа. -------------------------------------------------------------------------------- Далее идет раздел [barman_start_sell]. Рассмотрим структуру записи в нем: wpn_walther = 2, 4wpn_walther - имя предмета, в данном случае - пистолет "Вальтер" Цена высчитываетя по формулае (2+4)/2 * базовую цену предмета*(МР). Модифиакор Реакции(МР) - Цена зависит от репутации игрока. (по умолчанию = 1) Расширяем ассортимент Чтобы добавить в начальный ассортимент, например, винтовку FN2000, проделаем следующее: 1. Добавим её в раздел [supplies_start]: ;Оружие ... wpn_fn2000 = 2, 0.52. Добавим её в раздел [barman_start_sell]: ;Оружие ... wpn_fn2000 1, 3Ну а чтобы оно не пропадало после выполнения важных заданий, запишите её и в ассортименты для выполненных условий |
Автор: | barmidrol [ 30 сен 2009, 15:53 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
Цитата: А можно узнать?Спомощью какой программы? Можно Блокнотом, можно Notepad++, да хоть Вордом. |
Автор: | SNORK [ 06 авг 2010, 19:39 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
клёва |
Автор: | {Химик} [ 08 авг 2010, 15:05 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
Это то, что я искал! Спасибо! |
Автор: | Светка [ 29 авг 2010, 19:46 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
о спасибо))))) за ценную информацию))) |
Автор: | danila [ 26 янв 2011, 18:02 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
на зп работает? |
Автор: | TNT [ 30 янв 2011, 18:21 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
Как сделать чтобы все было открыто? |
Автор: | RazoR [ 31 янв 2011, 21:48 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
Сейчас мы научимся создавать нового торговца - Петровича: 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] Если кому то не понятно можете посмотреть мой файл торговли: [Гости не могут видеть ссылки,регистрация не отнимет много времени ] Все, торговец создан. Спасибо за материал по созданию 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. Здесь объяснять ничего не нужно, и так все ясно уже давно |
Автор: | Valera_Naroch [ 01 фев 2011, 00:01 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
RazoR писал(а): Сейчас мы научимся создавать нового торговца - Петровича: 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] Если кому то не понятно можете посмотреть мой файл торговли: [Гости не могут видеть ссылки,регистрация не отнимет много времени ] Все, торговец создан. Спасибо за материал по созданию 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. Здесь объяснять ничего не нужно, и так все ясно уже давно Может в отдельную тему оформишь? |
Автор: | RazoR [ 02 фев 2011, 15:34 ] |
Заголовок сообщения: | Re: Редактирование торговцев |
ok. |
Страница 1 из 2 | Часовой пояс: UTC + 2 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |