• Рекомендуем зарегистрироваться для просмотра контента и скачивания файлов!
  • Группа VK! Мы в Telegram! Наш Discord-сервер! Онлайн статистика игроков KF Скачать карты для KF
  • Сервер Killing Floor 1 Сервер Arma2 Epoch Сервер No More Room In Hell

Спавн лута тиры и настройка

denfil777

Патриарх
Команда форума
Первая часть:

Файлов которые отвечают за лут прямым и косвенным образом,судя по всему много, но настройки которые нам доступны сосредоточены в папке mpmissions\dayzOffline.chernarusplus и mpmissions\dayzOffline.chernarusplus\db

cfglimitsdefinition.xml - файл в котором обозначены категории лута, тэги спавна, классы объектов для спавна и зоны спавна. (если я правильно понял,в информатике это называется "заданием классов" или как то так). Далле с чем я экспериментировал.

<category name="........"/> Спавнящийся лут имеет (а может и не иметь) определенную категорию и судя по всему только одну. Сюда можно вписать свою категорию и давать её предметам. (в файле тайпс).
Тэги... в ванили

<tag name="floor"/>
<tag name="shelves"/>

<tag name="ground"/>

Лут может иметь или не иметь, для более точного "определения" что и где должно спавнится. Можно вводить свои и потом в mapgroupproto.xml вставлять в нужном мест. Если нет - сапвнятся все тэги,в противном случае-только указанные.

Классы объектов для спавна:

<usage name="........"/> Стационарные объекты имеют в своём обозначении один или несколько таких классов имён. Легко можно прописать свой и дать его категории стационарных объектов или объекту. (правда уникальных объектов на карте-раз,два и обчёлся).

Прописав свой к примеру "MyBox"... и потом в mapgroupproto.xml у военных контейнеров убрав все классы и оставив только этот,в нём будут спавниться только те предметы которым вы в "тайпс" пропишите данную категорию. Так - же есть на карте СЕ, минус в том что нанесены они небрежно, результат - спавн к примеру мед предметов в машинах и киосках больницы Черногорска. Любой объект попавший в ореол получит спавн только обозначенного ореола.

Зоны спавна:

<value name="....."/> их всего четыре. И как они нанесены на карту-опять таки СЕ редактор.

dayz-chernarusplus-tiers-map.png.1131a8f947ed2ed3d349ecb999c1ddcc.png
mapgrouppos.xml - Файл в котором определяться координаты "карты" лута для каждого объекта (мдя,чего я счас сморозил то).

<group name="Land_Misc_FeedShack" pos="80.255409 113.792282 4422.158691" rpy="-0.000000 0.000000 -70.013718" a="160.013718" />

Land_Misc_FeedShack - название объекта, его ID.

pos="80.255409 113.792282 4422.158691" rpy="-0.000000 0.000000 -70.013718" - координаты центра "карты" лута для этого обьекта, совпадают с координатами объекта.

Формат записи X-Y-Z завал,наклон,поворот. a="........" Вектор поворота карты лута объекта относительно направления С - Ю.

Как он определяться - непонятно,но экспериментально выяснил, что частенько заспавнив здание и прописав в него лут, можно брать это значение с аналогичного объекта, но всегда проверить,нормально ли спавниться лут,если нет-проще переспавнить объект и снова попробовать,чем "искать угол" - (устарело), в принципе (угол поворота - 90) х (-1) как то там ещё можно возиться переводить с +360, ноля просто пишу полученное значение и всё работает.

Да-да,именно тут прописывается что в вашем установленном объекте появляется лут! (имеется ввиду в оффлайн редакторе поставив "француз"-тут вы пропишите в него лут,как прописать в он-лайн сам объект - другая история под названием "возврат водяных колонок").

mapgroupproto.xml - Файл в котором прописана "карта" лута для объекта. Вначале идёт описание для "дефолта", то есть деревьев и растений, а также камней! (тут я не понял, но... это нам и не нужно, яблоки падают и хорошо).

<group name="Land_Tisy_Barracks"> - название обьекта,ID
<usage name="Military" /> - класс имени объекта, может быть не один (а если вы ввели свои - писать именно сюда.
<container name="lootFloor" lootmax="8"> - имя "контейнера" и максимальное количество лута которое может там появиться (количество лута может быть и не обозначено, но если есть - никогда не будет больше чем количество точек спавна что ниже).
<category name="tools" /> - класс лута который будет спавниться, может быть не один.
<category name="clothes" />
<point pos="-2.429444 -3.799637 3.698242" range="1.199951" height="2.000000" /> - точка спавна лута, расстояние по X-Y-Z от центральной точки "карты лута" (где она,можно выяснить только экспериментально для каждого объекта). range="........" радиус спавна от заданной точки, то есть в этом "круге" будет спавниться лут. height="........." - высота возможного спавна,как я понял.

Ниже всё тоже самое, но для своего "контейнера" данном здании. То есть объект может иметь несколько контейнеров.

Код:
</container>

<container name="lootshelves" lootmax="8">

    <category name="tools" />

    <category name="containers" />

    <category name="clothes" />

    <tag name="shelves" />

    <point pos="0.968751 -3.434326 7.507324" range="0.581250" height="0.532341" /> ..................................................

</container>

<container name="lootweapons" lootmax="8">

    <category name="weapons" />

    <category name="explosives" />

    <point pos="3.985354 -3.434326 6.267576" range="0.478125" height="0.533684" /> ...................................................

</container>

</group>

cfgrandompresets.xml - Файл в котором мы найдём так называемые "грузы" - группы предметов спавнящихся в предметах,зомби и тому подобное (судя по всему сделано для удобства).

<cargo chance="0.35" name="foodVillage"> - шанс появления этого набора (в данном случае 35%) и его название.
<item name="SodaCan_Cola" chance="0.11" /> - название (ID) предмета и его шанс выпадения (11%).
<item name="SpaghettiCan" chance="0.11" />
<item name="BakedBeansCan" chance="0.11" />
</cargo>

То есть "груз" foodVillage может выпасть в 35% случаев, если условее истинно, то может выпасть предмет из списка с вероятностью которая задана для предмета или, если ни один предмет не прошёл-то опять таки ничего не выпадет. Выпадает только один предмет из списка, так и не выяснил,влияет ли очерёдность списка предметов или нет. То есть возможностей настройки тут - море, кто хорошо разбирается в теорией вероятности поймёт данный раздел влёгкую.

Можно создавать свои собственные "миксы" к примеру.

Код:
</cargo>

<cargo chance="1.0" name="mixOptics">

    <item name="PUScopeOptic" chance="0.33" />

    <item name="PSO1Optic" chance="0.33" />

    <item name="HuntingOptic" chance="0.3" />

</cargo>
То есть "микс" появиться стопроцентно в объекте из него может выпасть.... с вероятностью 33%... перечисленные вещи.
Важно помнить,что если размер "контейнера" маленький (к примеру мишка), то в нём ни как не заспавниться ПСО - 1. Размер имеет значение.
cfgspawnabletypes.xml - Список тех вещей, "контейнеры" в которых спавняться наборы из прошлого файла.

И самое важное!
Именно тут указано степень износа заспавненых вещей,для остальных-пристин! Не то что в них (но контейнером может стать и обычная вещь).

<damage min="0.2" max="0.7" /> - тут и задан разброс износа для "контейнеров"! Для всего списка! От 0,3 до 0,7 (в оригинале), я уже тут изменил немного.

То есть всегда минималь урон 30% и максимально 70%. Хотите спавн иногда пристин вещей?-damage min="0.0"

<type name="ammobox"> - название (ID) вещи-контейнера.
<cargo preset="optics" /> -название набора который может появиться внутри с шансом (как было описано выше).
<cargo preset="ammoArmy" />
</type>

То есть можно прописать несколько наборов и если из каждого заспавниться вещь,то ограничение только "размер" контейнера и вещей.
Но в этом файле есть ещё много "вкусного".

Вторая часть:

<type name="ZmbM_PatrolNormal_Autumn">
<cargo preset="foodArmy" />
<cargo preset="ammoArmy" />
</type>
Вот вам и первый "ходячий" контейнер. Увеличив к примеру в cfgrandompresets.xml шанс выпадения данных наборов - получите "доставщиков пиццы на дом".

Но не в каждом зомби такой набор и опять таки, вы можете их менять, добавлять, убирать.
А дальше - оружие (так,дышите глубже).

<type name="CZ61"> - ID оружия.
<attachments chance="0.10"> - шанс что на нём будет аттачмент 10%
<item name="AK_Suppressor" chance="1.00" /> - шанс появления самого аттачмента 100%
(не факт что так и надо, просто так проще высчитывать процент появления аттачментов на оружии).
</attachments>
<attachments chance="0.30"> -то же самое и для другого аттачмента,обратите внимание, что мы не смешиваем в одну кучу "глушители и магазины.
<item name="Mag_CZ61_20Rnd" chance="1.00" />
</attachments>
</type>

А если хочется "АКМ" что - бы мог спавниться в полном обвесе?

А легко...

Код:
<type name="AKM">

    <attachments chance="1.00">

        <item name="AK_WoodBttstck" chance="0.80" />

        <item name="AK_PlasticBttstck" chance="0.30" />

        <item name="AK_FoldingBttstck" chance="0.40" />

    </attachments>

    <attachments chance="1.00">

        <item name="AK_WoodHndgrd" chance="0.80" />

        <item name="AK_PlasticHndgrd" chance="0.30" />

        <item name="AK_RailHndgrd" chance="0.10" />

    </attachments>

    <attachments chance="0.30">

        <item name="Mag_AKM_30Rnd" chance="1.00" />

    </attachments>

    <attachments chance="0.30">

        <item name="AK_Suppressor" chance="0.50" />

    </attachments>

Видим что он может появляться с разными прикладами, цевьями, может с глушителем или без, с магазином или без... (хотите, можете и ПСО ему прописать).

Как видите тут нет ни ИЖ18,ни МП133 и они, гады спавняться всегда "пристин" Стоит добавить -
<type name="Izh18">
</type>

И "ИЖ18" будет спавниться с дамагом который вы установили.

Думаете это всё? Но нет...

Машины:

Код:
<type name="OffroadHatchback">

    <attachments chance="1.00">

        <item name="HatchbackWheel" chance="0.60" />

    </attachments>

    <attachments chance="1.00">

        <item name="HatchbackWheel" chance="0.60" />

    </attachments>

    <attachments chance="1.00">

        <item name="HatchbackWheel" chance="0.40" />

    </attachments>

    <attachments chance="1.00">

        <item name="HatchbackWheel" chance="0.40" />

    </attachments>

    <attachments chance="1.00">

        <item name="HatchbackWheel" chance="0.20" />

    </attachments>

    <attachments chance="1.00">

        <item name="CarRadiator" chance="0.20" />

    </attachments>

    <attachments chance="1.00">

        <item name="CarBattery" chance="0.30" />

    </attachments>

    <attachments chance="1.00">

        <item name="HeadlightH7" chance="0.40" />

    </attachments>

    <attachments chance="1.00">

        <item name="HeadlightH7" chance="0.40" />

    </attachments>

    <attachments chance="1.00">

        <item name="HatchbackDoors_Driver" chance="0.30" />

    </attachments>

    <attachments chance="1.00">

        <item name="HatchbackDoors_CoDriver" chance="0.30" />

    </attachments>

    <attachments chance="1.00">

        <item name="HatchbackHood" chance="0.20" />

    </attachments>

    <attachments chance="1.00">

        <item name="HatchbackTrunk" chance="0.20" />

    </attachments>

</type>

Это он так выглядит сейчас вроде... раньше было всё намного хуже. Машина стандартно спавнилась с одним колесом.

Можете изменить аттачментам шансы хоть до "1.00" что бы машина спавнилась сразу собранная.

Правда мы подло могЁм положить в машину бензин, масло можно и ремкомплект.

Код:
        <attachments chance="1.00">

            <item name="SparkPlug" chance="0.6" />

        </attachments>

        <attachments chance="1.00">

            <item name="EngineOil" chance="0.5" />

        </attachments>

        <attachments chance="1.00">

            <item name="EngineOil" chance="0.5" />

        </attachments>

        <attachments chance="1.00">

            <item name="EngineOil" chance="0.5" />

        </attachments>

(в этом же файле, позже, появились и рождественские наборы... но было уже поздно - бегемоты должны быть повешены).
Дальше мы можем мелочь привесить к предметам, обычно это батарейка.
Но можно и "предмет в предмете"! Поле для извращений - огромно.

Как пример:

Код:
<type name="Headtorch_Black">

    <attachments>

        <item name="Battery9V" />

    </attachments>

</type>

<type name="NVGoggles">

    <attachments>

        <item name="Battery9V" />

    </attachments>

</type>

<type name="NVGHeadstrap">

    <attachments>

        <item name="NVGoggles" />

    </attachments>

    <attachments>

        <item name="Battery9V" />

    </attachments>

</type>

Глубже, ширее, ниже. Переходим в папку db

events.xml - файл в котором описаны "случайные" события,такие как зомби,полицейская волга, хеликраш, админ... то - есть петух, ну и прочие коровы и звери.

Например:

<event name="AnimalCow"> -название ивента. Можно прописывать свои НО! Название ивента может начинается только строго определенно.

- animal - события с животными.
- static - для спавна статичных ивентов типа Ми - 8 или дома.
- item - для лута.
- Infected - зомби.
- trajectory - спавн грибов,ягод и прочих камней.

<nominal>10</nominal> - Количество ивентов на карту единомоментно. То есть сразу.
<min>6</min> - минимальное количество дочерних объектов указанных в <children> в ивенте.
<max>15</max> - максимальное количество дочерних объектов указанных в <children> в ивенте.
Причем от 6 до 15 ВСЕХ вписанных <children>. А вот сколько конкретно каждого,это уже в них настраивается.
<lifetime>180</lifetime> - "время жизни" события Именно события. То есть заспавненая ивентом машина - пока стоит на точке спавна-это событие, как только вы отъехали - это уже лут и время её жизни будет считываться с (не к ночи будет помянут сей файл) тайпса.

<restock>0</restock> - время в секундах, по истечении которого спавнер начнет смотреть,а не нужно ли спавнить ивент, если количество событие меньше чем в номинале.
Думаете если два хеликраша они исчезнут и заспавнятся одновременно? Ага, ждите больше. Тут зависит от много, даже от взаимодействия с ними игрока.

<saferadius>200</saferadius> - это расстояние от позиции игрока, на котором может возникнуть это событие.(поставьте для интереса 50 для зомби.<distanceradius>0</distanceradius> - минимальное расстояние от другого события (очень актуально для машин, решать вам).
<cleanupradius>0</cleanupradius> - это расстояние от позиции игрока, на котором событие исчезнет после того, как время жизни закончится. (добавлено - для хеликрашей имхо лучше ставить очень большое, с хороший километр).

<secondary>InfectedArmy</secondary> - это имя другого события, которое вы хотите вызвать одновременно с этим событием, например, чтобы вызвать зомби вокруг здания или предмета. Настраивается в дочернем событии.(можно создать свой, но смешать зомбей с волками - не получится, генетика не та).
<flags deletable="0" init_random="0" remove_damaged="1" sec_spawner="0"/> - флаги настройки.
deletable 1/0 - ивент удалятеся согласно параметрам самого события или по истечению времени в тайпс (не точно) имхо
init_random 1/0 - ???
remove_damaged 1/0 - будет ли событие удаляться если достигла состояния "уничтожено" или останется лежать до истечения срока события.(актуально для машин... но ТОЛЬКО НА ТОЧКЕ СПАВНА!).

sec_spawner="0" - сорри не знаю, а чего не знаю-не меняю.
<position>fixed</position>
<position>player</position> - позиция будет выбираться из зафиксированных в файле cfgeventspawns.xml или событие срабатывает "на игрока".
<limit>.......</limit> - может быть следующие.

- custom - относится к внешнему файлу, например, для территорий животных.
- child - событие будет обращатся к атрибутам min и max каждого дочернего элемента.
- parent - lотносятся к минимальным и максимальным атрибутам самого события.
- mixed - будет учитыватся и дочерние и собственное min-max события.

<active>1/0</active> - включение и выключение события.(Вот она кнопка!)
<children>
<child lootmax="0" lootmin="0" max="3" min="0" type="Animal_BosTaurusF_Brown"/>
lootmax="0" lootmin="0" .... если предмет имеет сетку лута или контейнер - количество лута при спавне.
max="3" min="0" - минимальное и максимальное количество дочерних объектов (к примеру-коров данного типа в стаде).

types.xml - великий и ужасный. Содержит в себе данные о всём спавнещемся луте и контейнерах (хеликраши, машины, зомби - по сути - контейнеры).

Всякий лут должен быть в этом файле иначе-нет его спавна на карте. Также и синтаксическая ошибка в этом файле приводит к исчезновению всего лута с карты.

Если из него убрать что-то,(но этот предмет останется лежать на земле до истечения срока)....и игрок его поднимет-краш. Так что файл требует трезвого ума и терпения.

<type name="Canteen"> - название ID предмета
<nominal>30</nominal> -номинальное количество спавна на карте к которому стремиться "спавнер".
<lifetime>7200</lifetime> - время "лежания" предмета после спавна (а также судя,по всему - время после падения на землю с игрока) в сек. (на параметр влияет ускорение времени на сервере и параметр из скриптс - "количество тактов в секунду").
<restock>0</restock> - на сколько отложиться респаун предмета после того как он должен "отспавнится" по новой.
<min>20</min>- минимальное количество предмета на карте после которого начинается работа спавнера.
<quantmin>-1</quantmin> - если предмет "бутылка-магазин"-степень его наполнения минимальная - Для остальных значение -1
<quantmax>-1</quantmax> - если предмет "бутылка-магазин"-степень его наполнения минимальная - Для остальных значение -1
<cost>100</cost> - приоритет спавна грубо говоря. чем меньше-тем ниже будет вещь в очереди.
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> - флаги спавнера, они указывают в каких типах объектов считать nominal и min значения:

count_in_cargo - считает все предметы в контейнерах, ящики, рюкзаки, включая автомобили.
count_in_hoarder - будет считаться в таких вещах как закопанные предметы, бочки, сундуки и всевозможные палатки.
count_in_map - объекты, размещенные на карте (здания).
count_in_player - внутри инвентаря игроков, исключая руки.
crafted - указывает на то, что данный предмет может быть закрафчен игроками.
deloot - указывает что это объекты для спавна на динамических ивентах (событиях) - в большинстве случаев для ванили это только лишь сбитые вертолеты.

<category name="food"/> -категория лута ,может быть не одна.
<tag name="shelves"/> - тэги для настройки точек спавна.
<usage name="Military"/> - класс объекта в котором может заспавниться.
<value name="Tier2"/> - зоны в каких будет спавниться лут.
<value name="Tier3"/>
<value name="Tier4"/>
</type>

Если по простому, то "фляжка" будет спавниться в количестве 30 штук постоянно в зонах 2-3-4 на военных объектах где возможно появление еды с использованием тэга.

shelves, то есть если в объекте совпадает в начале описания в mapgroupproto.xml, класс, категория, тэг -то предмет заспаниться в точке спавна, которые в этом же файле, для объекта на карте из файла mapgrouppos.xml.

Код:
<type name="ACOGOptic">

    <nominal>20</nominal>

    <lifetime>7200</lifetime>

    <restock>1800</restock>

    <min>15</min>

    <quantmin>-1</quantmin>

    <quantmax>-1</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" />

</type>

<type name="AgaricusMushroom">

    <lifetime>900</lifetime>

    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0" />

</type>

Как видите, есть даже грибы, которые спавняться динамически. (если вещевые или другие моды перезаписывают эти файлы, то следите за тем что - бы они сливались в экстазе, а не выпихивали друг друга).

По идее - ничего сложного, даже я разобрался... почти. Третья фигура Марлезонского балета...

Примеры:

Код:
<type name="StartKitIV">

    <nominal>50</nominal>

    <lifetime>7200</lifetime>

    <restock>0</restock>

    <min>40</min>

    <quantmin>-1</quantmin>

    <quantmax>-1</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="tools" />

    <tag name="shelves" />

    <value name="Tier1" />

    <value name="Tier2" />

    <value name="Tier3" />

    <value name="Tier4" />

</type>
Это "квадратик" или... гхм!. Что видим? Лут из категории "инструменты", спавниться постоянно в местах с тэгом, по всей карте... А какой он категории? А ни какой, вот и спавниться, хоть на лодках на берегу, хоть на вышке.

Добавляем категорию:

Код:
<type name="StartKitIV">

    <nominal>50</nominal>

    <lifetime>7200</lifetime>

    <restock>0</restock>

    <min>20</min>

    <quantmin>-1</quantmin>

    <quantmax>-1</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="tools" />

    <tag name="shelves" />

    <usage name="Medic" />

    <value name="Tier1" />

    <value name="Tier2" />

    <value name="Tier3" />

    <value name="Tier4" />

</type>

Всё, теперь только на объектах с классом "медик" - как и положено (бегемоты должны быть повешены!).
Объект радиовышка, кто лазил на неё, тот помнит что на ней спавнился полицейский лут. Почему?
А смотрим mapgroupproto.xml

Код:
<group name="Land_Tower_TC1">

    <usage name="Village" />

    <usage name="Industrial" />

    <usage name="Police" />

    <container name="lootFloor">

        <category name="tools" />

        <category name="containers" />

        <category name="clothes" />

        <category name="weapons" />

        <category name="books" />

        <category name="explosives" />

        <point pos="-0.454809 14.404877 0.712779" range="0.314223" height="0.785558" />

        <point pos="-0.582537 14.404785 0.034267" range="0.375000" height="0.913483" />

        <point pos="0.773581 14.405716 0.067886" range="0.375000" height="0.915054" />

        <point pos="-0.448550 14.404892 1.860424" range="0.432076" height="1.080190" />

        <point pos="0.641068 14.405640 1.884647" range="0.512500" height="1.279480" />

        <point pos="-1.132879 -1.965958 1.837671" range="0.581250" height="1.453125" />

        <point pos="0.925214 -1.964554 -0.245559" range="0.821875" height="1.996796" />

        <point pos="-0.880515 -1.965805 -0.105441" range="0.821875" height="2.000610" />

        <point pos="0.998695 -1.964493 1.724339" range="0.890625" height="1.996490" />

    </container>

Лут категории "инструмент", "контейнер", "оружие" классов... Да, "Полиция"... Удаляем нафиг полицию!

Код:
<group name="Land_Tower_TC1">

    <usage name="Village" />

    <usage name="Industrial" />

    <container name="lootFloor">

        <category name="tools" />

        <category name="containers" />

        <category name="clothes" />

        <category name="weapons" />

        <category name="explosives" />

        <point pos="-0.454809 14.404877 0.712779" range="0.314223" height="0.785558" />

        <point pos="-0.582537 14.404785 0.034267" range="0.375000" height="0.913483" />

        <point pos="0.773581 14.405716 0.067886" range="0.375000" height="0.915054" />

        <point pos="-0.448550 14.404892 1.860424" range="0.432076" height="1.080190" />

        <point pos="0.641068 14.405640 1.884647" range="0.512500" height="1.279480" />

        <point pos="-1.132879 -1.965958 1.837671" range="0.581250" height="1.453125" />

        <point pos="0.925214 -1.964554 -0.245559" range="0.821875" height="1.996796" />

        <point pos="-0.880515 -1.965805 -0.105441" range="0.821875" height="2.000610" />

        <point pos="0.998695 -1.964493 1.724339" range="0.890625" height="1.996490" />

    </container>

</group>
Теперь в лучшем случае дробовик там будет.

Информация взята с сайта dayz-code.ru
 
Последнее редактирование:
Назад
Сверху Снизу