Оцените мой сайт
Всего ответов: 12


Онлайн всего: 1
Гостей: 1
Пользователей: 0

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

Введение:



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



[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]        -мастер



Как видите,с каждым уровнем сложности спавн предметов уменьшается.Главной как всегда является первая секция(новичок). Отличительная особенность написания,это две цифры.Первая цифра указывает минимальное количество заспавненных предметов,вторая максимальное. Если стоит одно значение,то спавнится всегда в определенном количестве. Пример:



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 шт. 

Категория: Работа со скриптами | Добавил: Alexthunder (06.03.2020)
Просмотров: 139 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar

  • Alexthunder|Репутация: 0
  • stop177mailru|Репутация: 0
  • kulakovskyzheka|Репутация: 0
  • tureskiye|Репутация: 0
  • kirillloskarev77|Репутация: 0
  • Тем на форуме: 30
    Новостей: 11
    Файлов: 17
    Статей: 16

    Работа со звуками [1]
    Респавн [1]
    Работа с текстурами [2]
    Работа со скриптами [9]
    По вопросам сотрудничества обращаться к Администрации

    uCoz By gsc-mod