Jump to content
DAYZ-CODE.RU - Создай свой игровой сервер

Спавн лута на карте (тиры и его настройка).


Go to solution Solved by MANUAL,

Recommended Posts

  • Solution

Настроить лут на сервере постарались сразу после релиза ибо многое "не там и не тут"....

Первая часть:

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

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

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

Please Log in or Register to see this: Code


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

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

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

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

Зоны спавна:

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

Please Log in or Register to see this: Spoiler

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="........." - высота возможного спавна,как я понял.

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

Please Log in or Register to see this: Code

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

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

Please Log in or Register to see this: Code

То есть "микс" появиться стопроцентно в объекте из него может выпасть.... с вероятностью 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>

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

Второй этап:

Please Log in or Register to see this: Code

Вот вам и первый "ходячий" контейнер. Увеличив к примеру в 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>

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

А легко...

Please Log in or Register to see this: Code

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

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

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

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

Машины:

Please Log in or Register to see this: Code

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

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

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

Please Log in or Register to see this: Code

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

Как пример:

Please Log in or Register to see this: Code

Глубже, ширее, ниже. Переходим в папку 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.

Please Log in or Register to see this: Code

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

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

Пара примеров:

Please Log in or Register to see this: Code

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

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

Please Log in or Register to see this: Code

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

Please Log in or Register to see this: Code

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

Please Log in or Register to see this: Code

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

Ну, как то так, если помог разобраться не забудь поставить лойс!

  • Like 5
  • Thanks 1
Link to comment
  • 1 month later...
  • 1 month later...

А как очисть химзу на аэродроме! ? Ливония . Чтобы оставить там только лут который записан в typs континащион ариа?

Есть решение?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...