Сповіщення
Очистити все

SoC. Редагування торговців


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Загальне

Урок присвячений редагуванню асортименту торговців у грі. Ця, загалом, нескладна процедура у багатьох викликає питання, тому я і вирішив роз'яснити, що та як.

Файли

Асортимент товарів у торговців зберігається у файлах виду trade_[...].ltx, де... - системне ім'я продавця. Це файли:

  • trade_barman.ltx - Бармен
  • trade_dolg.ltx - полковник Петренко на базі угруповання "Борг"
  • trade_ecolog.ltx - Сахаров
  • trade_freedom.ltx - Скнара на базі угруповання "Свобода"
  • trade_trader.ltx - Сидорович
  • trade_generic.ltx - звичайний сталкер

Усі вони зберігаються у папці:

...\STALKER\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 y_off } supplies_after_brain , { bar_darklab_document_done } 
supplies_after_darkvalley , supplies_start 
  

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

У дужках {...} задаються умови, а після дужок використовується розділ. Якщо перед назвою розділу не поставити умови, він буде використовуватися спочатку, за замовчуванням.

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

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

Детальний опис та приклад дивіться далі.

 


Після цього йде розділ [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

А щоб воно не пропадало після виконання важливих завдань, запишіть її і в асортименти для виконаних умов.


   
Цитата