Первая часть:
Файлов которые отвечают за лут прямым и косвенным образом,судя по всему много, но настройки которые нам доступны сосредоточены в папке 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="....."/> их всего четыре. И как они нанесены на карту-опять таки СЕ редактор.
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="........." - высота возможного спавна,как я понял.
Ниже всё тоже самое, но для своего "контейнера" данном здании. То есть объект может иметь несколько контейнеров.
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% случаев, если условее истинно, то может выпасть предмет из списка с вероятностью которая задана для предмета или, если ни один предмет не прошёл-то опять таки ничего не выпадет. Выпадает только один предмет из списка, так и не выяснил,влияет ли очерёдность списка предметов или нет. То есть возможностей настройки тут - море, кто хорошо разбирается в теорией вероятности поймёт данный раздел влёгкую.
Можно создавать свои собственные "миксы" к примеру.
То есть "микс" появиться стопроцентно в объекте из него может выпасть.... с вероятностью 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>
А если хочется "АКМ" что - бы мог спавниться в полном обвесе?
А легко...
Видим что он может появляться с разными прикладами, цевьями, может с глушителем или без, с магазином или без... (хотите, можете и ПСО ему прописать).
Как видите тут нет ни ИЖ18,ни МП133 и они, гады спавняться всегда "пристин" Стоит добавить -
<type name="Izh18">
</type>
И "ИЖ18" будет спавниться с дамагом который вы установили.
Думаете это всё? Но нет...
Машины:
Это он так выглядит сейчас вроде... раньше было всё намного хуже. Машина стандартно спавнилась с одним колесом.
Можете изменить аттачментам шансы хоть до "1.00" что бы машина спавнилась сразу собранная.
Правда мы подло могЁм положить в машину бензин, масло можно и ремкомплект.
(в этом же файле, позже, появились и рождественские наборы... но было уже поздно - бегемоты должны быть повешены).
Дальше мы можем мелочь привесить к предметам, обычно это батарейка.
Но можно и "предмет в предмете"! Поле для извращений - огромно.
Как пример:
Глубже, ширее, ниже. Переходим в папку 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.
Как видите, есть даже грибы, которые спавняться динамически. (если вещевые или другие моды перезаписывают эти файлы, то следите за тем что - бы они сливались в экстазе, а не выпихивали друг друга).
По идее - ничего сложного, даже я разобрался... почти. Третья фигура Марлезонского балета...
Примеры:
Это "квадратик" или... гхм!. Что видим? Лут из категории "инструменты", спавниться постоянно в местах с тэгом, по всей карте... А какой он категории? А ни какой, вот и спавниться, хоть на лодках на берегу, хоть на вышке.
Добавляем категорию:
Всё, теперь только на объектах с классом "медик" - как и положено (бегемоты должны быть повешены!).
Объект радиовышка, кто лазил на неё, тот помнит что на ней спавнился полицейский лут. Почему?
А смотрим mapgroupproto.xml
Лут категории "инструмент", "контейнер", "оружие" классов... Да, "Полиция"... Удаляем нафиг полицию!
Теперь в лучшем случае дробовик там будет.
Информация взята с сайта dayz-code.ru
Файлов которые отвечают за лут прямым и косвенным образом,судя по всему много, но настройки которые нам доступны сосредоточены в папке 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="....."/> их всего четыре. И как они нанесены на карту-опять таки СЕ редактор.
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>
Важно помнить,что если размер "контейнера" маленький (к примеру мишка), то в нём ни как не заспавниться ПСО - 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
Последнее редактирование: