SoC. Генерирование предметов в трупах — S.T.A.L.K.E.R. Inside Wiki

SoC. Генерирование предметов в трупах

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Введение

Разберу, как случайным образом в трупах генеретятся предметы. За спавн предметов отвечают 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% вероятностью.

P.S. В «Чистом Небе» и «Зове Припяти» минимальное значение для спавна это 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 атпечки.

ДОБАВЛЕНИЕ В ГЕНЕРАЦИЮ НОВОГО ПРЕДМЕТА

Для примера разберу добавление энергетического напитка «S.T.A.L.K.E.R.» (патч 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 шт.

P.S. Учёл пожелания HikeR'a, надеюсь статья оформлена правильно:)

Автор: Костя.н.ы.ч 13:24, 17 сентября 2009 (UTC)]]

Другие места
LANGUAGE