Хорошие Уроки Модостроения Урок посвящен редактированию ассортимента торговцев в игре. Эта, в общем-то несложная процедура у многих вызывает вопросы, поэтому я и решил разъяснить, что да как.
Файлы
Ассортимент товаров у торговцев хранится в файлах вида 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.1
wpn_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.6
wpn_walther - имя предмета, в данном случае - пистолет "Вальтер"
3 - количество предметов этого типа у торговца
0.6 - вероятность появления каждого из них
То есть если значения равны 4, 0.5, то это означает, что у торговца в ассортименте появятся два предмета этого типа.
Далее идет раздел [barman_start_sell]. Рассмотрим структуру записи в нем:
wpn_walther = 2, 4
wpn_walther - имя предмета, в данном случае - пистолет "Вальтер"
Цена высчитываетя по формулае (2+4)/2 * базовую цену предмета*(МР).
Модифиакор Реакции(МР) - Цена зависит от репутации игрока. (по умолчанию = 1)
Расширяем ассортимент
Чтобы добавить в начальный ассортимент, например, винтовку FN2000, проделаем следующее:
1. Добавим её в раздел [supplies_start]:
;Оружие
...
wpn_fn2000 = 2, 0.5
2. Добавим её в раздел [barman_start_sell]:
;Оружие
...
wpn_fn2000 1, 3
Ну а чтобы оно не пропадало после выполнения важных заданий, запишите её и в ассортименты для выполненных условий.
Сегодня мы на примере научимся созданию новых артефактов. Создадим, например, артефакт под названием "Ромашка".
Статья написана по материалам Hunter Mod.
Создание конфига
Заходим в папку gamedata\config\misc и открываем файл artefacts.ltx.
И находим, например, артефакт "Медуза":
[af_medusa]:af_base
GroupControlSection = spawn_group
$spawn = "artifacts\moscito medusa"
$prefetch = 64
cform = skeleton
class = ARTEFACT
visual = physics\anomaly\artefact_blackdrip.ogf
description = enc_zone_artifact_af-medusa
inv_name = af-medusa
inv_name_short =
inv_weight = 0.5
inv_grid_x = 9
inv_grid_y = 4
cost = 1000
jump_height = .5
particles = anomaly2\artefact\artefact_gravi
lights_enabled = false
;скорости увеличения (уменьшения)
health_restore_speed = 0.0
radiation_restore_speed = 0.0005
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_medusa_absorbation
artefact_activation_seq = af_activation_bold
[af_medusa_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 0.98
В этой секции задаются параметры артефакта, начиная от внешнего вида и заканчивая коэффициентами различных эффектов вроде вывода радиации. Сделаем копию секции, принадлежающей "Медузе", и заменим её название с af_medusa на af_romashka.
Должно выйти примерно вот так:
[af_romashka]:af_base
GroupControlSection = spawn_group
$spawn = "artifacts\moscito romashka"
$prefetch = 64
cform = skeleton
class = ARTEFACT
visual = physics\anomaly\artefact_blackdrip.ogf
description = enc_zone_artifact_af-romashka
inv_name = af-romashka
inv_name_short =
inv_weight = 0.5
inv_grid_x = 9
inv_grid_y = 4
cost = 1000
jump_height = .5
particles = anomaly2\artefact\artefact_gravi
lights_enabled = false
;скорости увеличения (уменьшения)
health_restore_speed = 0.0
radiation_restore_speed = 0.0005
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_romashka_absorbation
artefact_activation_seq = af_activation_bold
[af_romashka_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 0.98
Назначение некоторых параметров, влияющих на одевшего артефакт:
health_restore_speed - прирост к скорости восстановления здоровья
radiation_restore_speed - прирост скорость вывода радиации
satiety_restore_speed - прирост к голоду
power_restore_speed - прирост к выносливости
bleeding_restore_speed - прирост к скорости остановки кровотечений
Создание описания и имени артефакта
Заходим в gamedata\config\text\rus и открываем файл string_table_enc_zone.xml. Добавим туда строку с названием артефакта.
<string id="af-romashka">
<text>"Ромашка"</text>
</string>
Теперь у артефакта есть имя, но одного его недостаточно. Нужно сделать описание.
Поэтому добавим и его.
<string id="enc_zone_artifact_af-romaska">
<text>Очень странный артефакт. Впервые появился в Зоне где-то в 2011 году, но толку от него - ноль. Ученые
не обнаружили никакого влияния артефакта на организм носителя.</text>
</string>
Все, поздравляю, вы только что создали свой первый артефакт!
Кому Надо еще пишите в личку. Могу дать много полезной ифы по модостроению