ЗакрепленоTutorial

types.xml по полочкам: что на самом деле делают nominal, min, restock, lifetime и остальные значения

от TimV · · просмотров: 17 · ответов: 0

TimVАвтор темы

Участник с · сообщений: 1

#1

Почти две тысячи записей, устроенных одинаково, и ни одной строки о том, что означают цифры. Здесь по каждому значению: что оно делает, в чём измеряется и что произойдёт, если его изменить.

Все числа взяты из официального ванильного types.xml Bohemia для Черноруси и его 1970 записей — посчитаны, а не прикинуты.

Коротко

  • nominal — сколько экземпляров экономика хочет видеть в мире одновременно
  • min — когда количество падает до этого значения, идёт добор до nominal
  • restock — задержка в секундах перед пополнением
  • lifetime — секунды до исчезновения нетронутого предмета
  • quantmin / quantmax — наполнение при появлении, в процентах (-1 = по умолчанию)
  • cost — приоритет появления, по умолчанию 100, трогать практически никогда не нужно
  • flags — какие места учитываются в счёт nominal
  • category — грубая товарная группа
  • usage — в каких типах мест предмет появляется
  • value — в каких тир-зонах карты
  • tag — какого рода точка лута внутри здания

Чтобы просто сделать предмет более или менее частым, нужны ровно три: nominal, min и restock.

Где лежит файл

mpmissions/dayzOffline.chernarusplus/db/types.xml

Это складская ведомость Central Economy: сколько экземпляров предмета может существовать и как долго они лежат. Файл не решает, на какой полке окажется вещь — какие здания имеют какие точки лута, задаётся в mapgroupproto.xml, а какая зона к какому тиру относится, это уже карта.

Как выглядит запись

XML
<type name="AK101">
    <nominal>4</nominal>
    <lifetime>28800</lifetime>
    <restock>3600</restock>
    <min>2</min>
    <quantmin>30</quantmin>
    <quantmax>80</quantmax>
    <cost>100</cost>
    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    <category name="weapons"/>
    <usage name="Military"/>
    <value name="Tier3"/>
    <value name="Tier4"/>
</type>

Порядок — тот же, что у Bohemia: nominal, lifetime, restock, min, quantmin, quantmax, cost, flags, category, tag, usage, value. Придерживайтесь его, и сравнение двух версий файла останется читаемым.


Значения по одному

name

Класснейм предмета ровно в том виде, в каком его знает игра.

То есть AK101, а не «AK-101». Впишете несуществующее имя — предмет никогда не появится, запись не делает ничего.

nominal — целевое количество

Сколько экземпляров экономика хочет видеть в мире одновременно.

Это потолок, а не обещание. Будет ли количество достигнуто, зависит от того, хватает ли подходящих точек лута — см. usage и value.

nominal = 0 означает, что экономика никогда не создаёт этот предмет сама.

В ванильном файле

873 из 1970 записей стоят на nominal = 0: цветные варианты, появляющиеся только после покраски игроком, мясо, получаемое при разделке, и предметы, попадающие в мир исключительно через события.

min — порог пополнения

Когда количество в игре опускается до этого значения, экономика добирает до nominal.

Поэтому min всегда стоит ниже nominal. Разрыв между ними задаёт ритм: nominal 4 / min 2 позволяет запасу колебаться между двумя и четырьмя и пополняет партиями, nominal 4 / min 3 держит его плотнее и запускает пополнение чаще.

Почему у части ванильных записей min больше nominal

Так бывает 172 раза — и у всех 172 стоит nominal = 0. Это не ошибка, а просто ничего не значащая настройка: без целевого количества нет и пополнения, которое порог мог бы запустить.

restock — задержка перед пополнением

Секунды, которые проходят до появления новых экземпляров.

1800 — это 30 минут, 3600 — час. Ноль означает не «мгновенно», а «на следующем проходе экономики»: сервер работает циклами, а не посекундно.

restock — рычаг, который делает лут субъективно более редким, не уменьшая общего количества: зачищенная военная база какое-то время остаётся пустой.

lifetime — сколько предмет лежит

Секунды до того, как нетронутый предмет исчезнет.

Любое взаимодействие игрока сбрасывает таймер. Очень короткий lifetime косвенно снижает количество в игре, потому что предметы исчезают раньше, чем их кто-то найдёт.

Обычные значения и что означает 0
  • 14400 (4 часа) — 1079 записей
  • 28800 (8 часов) — 415 записей
  • 1800 (30 минут) — 220 записей
  • 3888000 (45 суток) — палатки, бочки, морские сундуки, вышки: срок персистентности построек

lifetime = 0 встречается 66 раз и исключительно у статичных объектов мира вроде контейнеров и обломков (Land_…, StaticObj_…). Для обычного лута ноль — ошибка конфигурации.

quantmin и quantmax — насколько заполненным появляется предмет

Уровень наполнения в процентах — для всего, у чего есть содержимое: патроны, вода, топливо, консервы.

При появлении сервер выбирает случайное значение между этими двумя. -1 означает «неприменимо», предмет появляется со своим значением по умолчанию.

Пример AK101 с quantmin 30 и quantmax 80: оружие появляется с магазином, заполненным на 30–80 процентов.

Откуда известно, что это проценты

Во всём ванильном файле нет ни одного значения выше 100. Значит, речь идёт именно о процентах, а не о штуках.

cost — приоритет появления

Вес, определяющий, какой предмет займёт свободную точку лута, если подходят несколько. По умолчанию 100.

Честный совет: не трогайте. На 1970 записей Bohemia отходит от 100 ровно один раз — Mag_SVD_10Rnd стоит на 1000. Для частоты используйте nominal, min и restock.

flags — что учитывается

Эти шесть переключателей решают, какие места учитываются в счёт nominal.

Именно здесь настройка лута чаще всего идёт не так.

  • count_in_map — то, что лежит открыто в мире (в ванили включено у 1902 из 1970)
  • count_in_cargo — то, что лежит в машинах и контейнерах (включено 47 раз)
  • count_in_hoarder — то, что лежит в палатках, бочках и закопанных ящиках (включено 31 раз)
  • count_in_player — то, что игроки носят на себе (включено 55 раз)
  • crafted — предмет создаётся игроками, а не экономикой (включено 313 раз)
  • deloot — предмет приходит из динамических событий, а не из зданий (включено 47 раз)

Если переключатель стоит на 0, предмет в этом месте для экономики невидим.

Почему сервер продолжает спавнить при забитых лагерях

Потому что в ванили count_in_hoarder почти везде равен 0: то, что лежит в палатке, попросту не считается. Если вы хотите, чтобы редкое оставалось редким, трогать нужно именно эти переключатели — с побочным эффектом: накопленные запасы начнут тормозить снабжение для всех.

crafted и nominal = 0 идут вместе: все 313 записей с crafted="1" имеют и nominal = 0.

Типичные предметы с deloot: AK74, FAMAS, M79 и GasMask — классическая находка у разбившегося вертолёта.

category — грубая товарная группа

Одна из восьми: weapons, clothes, tools, food, containers, explosives, books, lootdispatch.

Особый случай lootdispatch

174 ванильные записи, по сути автозапчасти вроде дверей. Тронете без причины — детали машин пропадут. У 348 записей категории нет вовсе: заражённым и статичным объектам она не нужна.

usage — в каких местах предмет появляется

Типы мест, где предмет может появиться. Можно указать несколько, они работают как «или».

Черноруссия знает семнадцать: Military, Police, Medic, Firefighter, Industrial, Farm, Coast, Town, Village, Hunting, Office, School, Prison, Lunapark, SeasonalEvent, ContaminatedArea и Historical.

Без usage предмет не появляется нигде в обычном цикле лута — и для крафтовых и событийных предметов это как раз правильно.

Другие карты — другие значения

У Ливонии и Сахала есть Special и Underground, но нет Historical. Какие значения знает ваша карта, написано не в types.xml, а в cfglimitsdefinition.xml в папке миссии. Чего там нет, то на этой карте недопустимо.

value — тир-зона карты

Насколько далеко вглубь материка предмет может встречаться.

Tier 1 — побережье, где стартуют новые персонажи; более высокие тиры лежат дальше от берега и ближе к военным объектам. Без value предмет не разрешён ни в одной зоне — тот же эффект, что и при отсутствующем usage.

Какие тиры есть на каждой карте
  • Черноруссия: Tier1–Tier4 плюс Unique
  • Сахал: Tier1–Tier4 плюс Unique
  • Ливония: только Tier1–Tier3 плюс Unique

Tier4 в файле для Ливонии там просто недопустим.

tag — место внутри здания

floor, shelves или ground сужают тип используемой точки лута.

Этим пользуются лишь 281 из 1970 ванильных записей; без указания разрешены все точки. То есть tag только сужает и никогда не расширяет.


Что обычно идёт не так

Вы поднимаете число, и ничего не меняется. nominal — всего лишь потолок. Если на карте не хватает точек лута с подходящими usage и value, цель никогда не будет достигнута. nominal 500 для чисто военного предмета не даст больше, чем вмещают военные объекты.

Вы меняете всё сразу. Если одновременно тронуть nominal, min, restock и lifetime, потом уже не понять, что именно сработало. По одному значению за подход, затем перезапуск и наблюдение.

Вы ждёте мгновенного эффекта. Экономика не убирает и не создаёт предметы рядом с игроками — LootSpawnAvoidance и CleanupAvoidance в globals.xml стоят на 100 — и работает циклами. После перезапуска пройдёт время, прежде чем изменения станут заметны.

Вы не проверяете свой файл. Достаточно одной пропущенной >, чтобы сервер запустился без экономики. Результат — не «немного больше лута», а его полное отсутствие.


Инструменты для этого

Оба бесплатны и без регистрации:

  • Редактор types — открывает ваш файл в браузере, показывает иконку и название каждого предмета, объясняет каждое значение прямо на месте и умеет массовое редактирование по группам фильтров.
  • XML-валидатор — находит синтаксические ошибки с номером строки раньше, чем их найдёт ваш сервер.

Вопросы по отдельным значениям пишите ответом в эту тему — тогда ответ останется доступным для всех.

· изменено

Написать ответ

Войдите, чтобы ответить.

Сервер настроен. А игроки его находят?

Добавь его в список DZPage бесплатно: PC, PlayStation и Xbox, с онлайн-счётчиком игроков, голосами, комментариями и собственной страницей сервера. Без премиум-мест, без оплаты, без ожидания.

3 926 посетителей за 30 дней · бесплатно, без премиум-мест · пока всего 13 серверов

Застряли с настройкой сервера?

Спросите в Discord DZPage — там отвечают владельцы серверов и разработчик. Новые инструменты анонсируются там первыми.

Войти в Discord763 участников
скидка 10 %

Арендуйте свой сервер DayZ

По нашей партнёрской ссылке вы получите скидку 10 % на все заказы в GPORTAL — серверы для PC, PlayStation и Xbox.

Получить скидку 10 %

Рекламный партнёр · Партнёрская ссылка: вы экономите 10 %, мы получаем комиссию.

Этот инструмент бесплатный — и останется таким

Без входа, без платного доступа, без ограничений. Если он сэкономил вам время, разовые 5 € оплачивают сервер и отключают вам рекламу.

Поддержать DZPage