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

SoC. Генерирование предметов в трупах — различия между версиями

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

Перейти к: навигация, поиск
 
 
(не показаны 24 промежуточных версий 6 участников)
Строка 1: Строка 1:
 
===Введение===
 
===Введение===
Разберу,как случайным образом в трупах генеретятся предметы.За спавн предметов отвечают 4 файла в папке "config\misc":
+
Разберу, как случайным образом в трупах генеретятся предметы. За спавн предметов отвечают 4 файла в папке "config\misc":
[[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:14, 17 сентября 2009 (UTC)death_generic.ltx[[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:14, 17 сентября 2009 (UTC)
+
 
[[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:14, 17 сентября 2009 (UTC)death_items_by_communities.ltx[[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:14, 17 сентября 2009 (UTC)
+
-'''''death_generic.ltx'''''
[[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:14, 17 сентября 2009 (UTC)death_items_by_levels.ltx[[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:14, 17 сентября 2009 (UTC)
+
 
[[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:14, 17 сентября 2009 (UTC)death_items_count.ltx[[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:14, 17 сентября 2009 (UTC)
+
-'''''death_items_by_communities.ltx'''''
 +
 
 +
-'''''death_items_by_levels.ltx'''''
 +
 
 +
-'''''death_items_count.ltx'''''
 +
 
 
Разберем их структуру.
 
Разберем их структуру.
 +
 +
===DEATH_GENERIC.LTX===
 +
Является главным файлом с инклудами остальных. В нём описываются зависимости спавна патронов при наличии определенного оружия (то есть если у НПС есть ТОЗ-34, то заспавненые патроны должны
 +
быть для него, а не для СВД, например), секция:
 +
 +
<pre>[item_dependence]</pre>
 +
 +
Перечисляются уникальные, квестовые предметы, которые не должны удаляться, если они есть у НПС, секция:
 +
 +
<pre>[keep_items]</pre>
 +
 +
И предметы, относящиеся к патронам (их надо спавнить другим методом), секция:
 +
 +
<pre>[ammo_sections]</pre>
 +
 +
===DEATH_ITEMS_BY_COMMUNITIES.LTX===
 +
В ней указывается вероятность заспаунить или нет какой либо предмет в процентах,например:
 +
 +
<pre>af_medusa = 0.015
 +
af_cristall_flower = 0.01
 +
af_night_star = 0.005</pre>
 +
 +
Означает, что артефакт «медуза» заспавнится с вероятностью 1.5%, «кристальная колючка» — с 1% ,а «ночная звезда» — с вероятностью 0.5%. Если стоит 1, то предмет заспавнится со 100% вероятностью.
 +
 +
P.S. В «Чистом Небе» и «Зове Припяти» минимальное значение для спавна это 0.01 (1%). Игра больше не понимает значения ниже 1%.
 +
 +
Во всех остальных секциях пишется соответствие на именно эту секцию,например:
 +
<pre>[bandit]:stalker</pre>
 +
 +
Это значит, что у всех бандитов генерация предметов точно такая же, как и у сталкеров. Если необходимо задать другой шанс спавна, то просто пишется строка с новым значением, например, у наёмников отключен спавн хлеба, колбасы, водки, однако увеличен шанс сгенеретить энергетический напиток:
 +
 +
<pre>[killer]:stalker
 +
;Еда
 +
bread = 0
 +
kolbasa = 0
 +
vodka = 0
 +
energy_drink = 0.3</pre>
 +
 +
Стоит дополнительно оговориться, что учитываются только сотые доли, то есть писать меньше, чем 0.01 не имеет смысла, поскольку в этом случае цифра будет округляться до нуля. Иными словами, шанса меньше 1% в игре не может быть.
 +
 +
==DEATH_ITEMS_BY_LEVEL.LTX==
 +
Генерирование предметов для разных уровней(локаций).
 +
Опять таки главной секцией является:
 +
 +
<pre>[default]</pre>
 +
 +
А во всех других пишется соответствие на неё.
 +
В этом файле задается значение, спавнить или нет предмет на уровне:
 +
 +
<pre>af_medusa = 1
 +
af_cristall_flower = 0</pre>
 +
 +
То есть если стоит цифра 1,то спавним,если 0-не спавним.
 +
 +
===DEATH_ITEMS_COUNT.LTX===
 +
Количественное отношение заспавненных предметов для разных уровней сложности прохождения игры.
 +
 +
<pre>[item_count_0] -новичок
 +
[item_count_1] -опытный
 +
[item_count_2] -ветеран
 +
[item_count_3] -мастер</pre>
 +
 +
Как видите, с каждым уровнем сложности спавн предметов уменьшается. Главной как всегда является первая секция(новичок).
 +
Отличительная особенность написания — это 2 цифры.Первая цифра указывает минимальное количество заспавненных предметов, вторая максимальное.
 +
Если стоит одно значение, то спавнится всегда в определённом количестве.
 +
Пример:
 +
 +
<pre>bandage = 2
 +
medkit = 1, 2</pre>
 +
 +
Значит будет генеретится всегда 2 бинта, и 1 или 2 атпечки.
 +
 +
===ДОБАВЛЕНИЕ В ГЕНЕРАЦИЮ НОВОГО ПРЕДМЕТА===
 +
Для примера разберу добавление энергетического напитка «S.T.A.L.K.E.R.» (патч 5, напиток отсутствует). Создание собственного предмета я разбирать не буду, так как такая статья уже имеется, я просто напишу его конфиг:
 +
 +
<pre>[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</pre>
 +
 +
Само собой добавте описание...
 +
Сделаем упрощенное генерирование, то есть для всех: группировок, уровней сложности, локаций оно будет одинаковым...
 +
Для этого добавим наш энергетик во все главные секции:
 +
 +
-'''''death_items_by_communities.ltx'''''
 +
 +
<pre>[stalker]
 +
energy_drink_stalker =0.2
 +
af_medusa = 0.015</pre>
 +
 +
-'''''death_items_by_levels.ltx'''''
 +
 +
<pre>[default]
 +
energy_drink_stalker = 1
 +
af_medusa = 1</pre>
 +
 +
-'''''death_items_count.ltx'''''
 +
 +
<pre>[item_count_0]
 +
energy_drink_stalker = 1
 +
af_medusa = 1</pre>
 +
 +
Вписывать спавн нашего предмета можно в любое место в этих секциях между другими предметами, не обращая внимание на записи разрабов (;Еда,;Медикаменты и т.п.), так как сделаны они просто для удобства, игра это не учитывает.
 +
Всё, новый предмет добавлен в игру, появляться он будет с 20%-ой вероятностью в количестве 1 шт.
 +
 +
P.S. Учёл пожелания HikeR'a, надеюсь статья оформлена правильно:)
 +
 +
Автор: [[Участник:Костя.н.ы.ч|Костя.н.ы.ч]] 13:24, 17 сентября 2009 (UTC)]]
 +
 +
[[Категория:Конфигурационные_файлы]]

Текущая версия на 15:39, 8 августа 2015

Введение

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