Вступ
Розберу, як випадково в трупах генеруються предмети. За спавн предметів відповідають 4 файли в папці "config\misc":
- death_generic.ltx
- death_items_by_communities.ltx
- death_items_by_levels.ltx
- death_items_count.ltx
Розберемо їхню структуру.
DEATH_GENERIC.LTX
Є основним файлом з інклудами інших. У ньому описуються залежності спавна патронів за наявності певної зброї (тобто якщо в НПС є ТОЗ-34, то запалені патрони повинні бути для неї, а не для СВД, наприклад), секція:
[item_dependence]
Перераховуються унікальні, квестові предмети, які не повинні видалятися, якщо вони мають НПС, секція:
[keep_items]
І предмети, що належать до патронів (їх треба сповнити іншим методом), секція:
[ammo_sections]
DEATH_ITEMS_BY_COMMUNITIES.LTX
У ній вказується можливість заспаунить чи ні якийсь предмет у відсотках, наприклад:
af_medusa = 0.015 af_cristall_flower = 0.01 af_night_star = 0.005
Означає, що артефакт «медуза» сповниться з ймовірністю 1.5%, «кристальна колючка» — з 1%, а «нічна зірка» — з ймовірністю 0.5%. Якщо стоїть 1, то предмет запалиться зі 100% ймовірністю.
PS У «Чистому Небі» та «Кличі Прип'яті» мінімальне значення для спавна це 0.01 (1%). Гра більше не розуміє значення нижче 1%.
У решті секцій пишеться відповідність саме цю секцію, например:
[bandit]: stalker
Це означає, що у всіх бандитів генерація предметів така сама, як і у сталкерів. Якщо необхідно задати інший шанс спавна, то просто пишеться рядок з новим значенням, наприклад, у найманців відключено спавн хліба, ковбаси, горілки, однак збільшено шанс згенерувати енергетичний напій:
[killer]:stalker ;Їжа bread = 0 kolbasa = 0 vodka = 0 energy_drink = 0.3
Варто додатково зазначити, що враховуються лише соті частки, тобто писати менше, ніж 0.01 не має сенсу, оскільки в цьому випадку цифра округлятиметься до нуля. Іншими словами, шансу менше 1% у грі не може бути.
DEATH_ITEMS_BY_LEVEL.LTX
Генерування предметів для різних рівнів (локацій). Знову ж таки головною секцією є:
[default]
А у всіх інших пишеться відповідність на неї. У цьому файлі задається значення, спавнити чи ні предмет на рівні:
af_medusa = 1 af_cristall_flower = 0
Тобто якщо стоїть цифра 1, то спавнім, якщо 0-не спавнім.
DEATH_ITEMS_COUNT.LTX
Кількісне відношення спалених предметів для різних рівнів складності проходження гри.
[item_count_0] -новачок [item_count_1] -досвідчений [item_count_2] -ветеран [item_count_3] -майстер
Як бачите, з кожним рівнем складності спавн предметів зменшується. Головною як завжди є перша секція (новачок). Відмінна риса написання - це 2 цифри. Перша цифра вказує мінімальну кількість заспанених предметів, друга максимальна. Якщо стоїть одне значення, то завжди сповниться в певній кількості. Приклад:
bandage = 2 medkit = 1, 2
Значить буде генерується завжди 2 бинта, і 1 або 2 атпечки.
ДОДАВАННЯ В ГЕНЕРАЦІЮ НОВОГО ПРЕДМЕТА
Для прикладу розберу додавання енергетичного напою STALKER (патч 5, напій відсутній). Створення свого предмета я розбирати не буду, оскільки така стаття вже є, я просто напишу його конфіг:
[energy_drink_stalker]: vodka $spawn = "food and drugs\energy_drink_stalker" inv_name = energy_drink_stalker_name inv_name_short = energy_drink_stalker_short_name visual = equipments\drink_stalker.ogf description = enc_equipment_energydrink_stalker cost = 75 inv_grid_width = 1 inv_grid_height = 1 inv_grid_x = 11 inv_grid_y = 0 inv_weight = 0.3 inv_name = drink_stalker eat_health = 0 eat_satiety = 0 eat_power = 1.0 eat_alcohol = 0 eat_radiation = 0 wounds_heal_perc = 0 eat_portions_num = 1 eat_max_power = 0.2 attach_angle_offset = 0.000000, 0.000000, 0.000000 attach_position_offset = 0.087266, -0.078540, 0.052360 attach_bone_name = bip01_r_hand auto_attach = false
Зробимо спрощене генерування, тобто для всіх: угруповань, рівнів складності, локацій воно буде однаковим... Для цього додамо наш енергетик у всі головні секції:
- death_items_by_communities.ltx
[stalker] energy_drink_stalker =0.2 af_medusa = 0.015
- death_items_by_levels.ltx
[default] energy_drink_stalker = 1 af_medusa = 1
- death_items_count.ltx
[item_count_0] energy_drink_stalker = 1 af_medusa = 1
Вписувати спавн нашого предмета можна в будь-яке місце в цих секціях між іншими предметами, не звертаючи увагу на записи розробників (їжа, Медикаменти і т.п.), так як зроблені вони просто для зручності, гра це не враховує. Все, новий предмет доданий у гру, з'являтися він буде з 20% ймовірністю в кількості 1 шт.