SoC. Генерирование предметов в трупах — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(не показаны 17 промежуточные версии 6 участников) | |||
Строка 1: | Строка 1: | ||
===Введение=== | ===Введение=== | ||
− | Разберу,как случайным образом в трупах генеретятся предметы.За спавн предметов отвечают 4 файла в папке "config\misc": | + | Разберу, как случайным образом в трупах генеретятся предметы. За спавн предметов отвечают 4 файла в папке "config\misc": |
-'''''death_generic.ltx''''' | -'''''death_generic.ltx''''' | ||
Строка 13: | Строка 13: | ||
===DEATH_GENERIC.LTX=== | ===DEATH_GENERIC.LTX=== | ||
− | Является главным файлом с | + | Является главным файлом с инклудами остальных. В нём описываются зависимости спавна патронов при наличии определенного оружия (то есть если у НПС есть ТОЗ-34, то заспавненые патроны должны |
− | быть для него,а не для СВД,например),секция | + | быть для него, а не для СВД, например), секция: |
− | [item_dependence] | + | <pre>[item_dependence]</pre> |
− | + | Перечисляются уникальные, квестовые предметы, которые не должны удаляться, если они есть у НПС, секция: | |
− | [keep_items] | + | <pre>[keep_items]</pre> |
− | И | + | И предметы, относящиеся к патронам (их надо спавнить другим методом), секция: |
− | [ammo_sections] | + | <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)]]