Общее

Урок посвящен редактированию ассортимента торговцев в игре. Эта, в общем-то несложная процедура у многих вызывает вопросы, поэтому я и решил разъяснить, что да как.
Файлы

Ассортимент товаров у торговцев хранится в файлах вида 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

Здесь содержатся условия, от которых зависит диапазон продаваемых/покупаемых торговцем предметов. То есть, например, после выполнения квеста на "Янтаре" соответствующее условие считается выполненным, и ассортимент сменяется на новый, из другого раздела.

--91.124.26.131 21:31, 23 июля 2010 (UTC)

В скобках {...} задаются условия, а после скобок используемый раздел. Если перед названием раздела не поставить условия, то он будет использоваться изначально, по умолчанию.

Краткое описание предназначения всех разделов:

    * buy_condition - описаны цены, по которым торговец будет покупать вещи у героя
    * sell_condition - описание цен, по которым торговец продает вещи из своего ассортимента
    * buy_supplies - доступный ассортимент торговца, то есть то, что будет у него в продаже

Детальное описание и пример смотрите далее.

--91.124.26.131 21:31, 23 июля 2010 (UTC)

После этого идет раздел [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

Ну а чтобы оно не пропадало после выполнения важных заданий, запишите её и в ассортименты для выполненных условий.
Авторы

Статья создана:
    * BAC9-FLCL
Редактор:
    * Deja Vu