Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
Таблица лидеров
Популярные публикации
Отображаются публикации с наибольшей репутацией на 06/28/20 в Сообщения
-
6 балловВ этой теме я расскажу один из способов создания областей спавна лута с помощью инструмента "Economy Editor" который предоставили нам разработчики. 1. Для начала нужно скачать исходники, которые разрабы дают для примера а так же карту в формате PNG для открытия её тулсом, о котором я писал выше - ТЫК . После скачивания нас интересует папка CETool 2. Открываем скачанный файл chernarusplus. В этом файле мы заранее можем создать кастомный usage или же тир. ( рекомендую создавать именно Usage, т.к с тиром происходит что-то не понятное иногда) я для примера создал Test123, так же чуть ниже нам нужно создать layers. Layers'ы это как раз те самые зоные которые мы и будем рисовать чуть позже. Скрин 2. На этом файл сохраняем и пока забываем о нем. 3. Запускаем Economy Editor нажимаешь сверху load выбираем наш скачанный и уже отредактированный chernarusplus . Тут мы видим уже существующие тиры и зоны различные, а так же спавн ИИ. Скрываем все лишнее что бы не мешало нам создавать нашу зоны, нажав на кнопку в левой части интерфейса "hide all" . Далее создаем новую зоны - тыкаем на карандашик так же в левой части экрана после создания нашей зоны называем её как в нашем файле chernarusplus , в моем случае это - usgFlg_Paint-Test123. После выбираем нашу зону кликнув на неё в списке в самом низу и переходим в paint mode в этом моде выделяем на карте те зоны, в которых хотите что бы спавнился ваш лут. После того как нарисовали свою область выходим из режима paint mode сняв галочку. Остается выбран нашу зону в списке далее в окне Layer Properties указать наш ранее созданный флаг или тир, в моем случае ставлю галочку перед Test123. После мы можем сохранить нашу зону. Для этого нажимаем сохраняем, ждем пока он создает и бинарит новую карту экономики. По завершению процесса этого мы увидем в в окне Status - Save done. 4. Теперь в этой же папке CETool появляется папка map в ней лежит наша карта, которую нужно переименовать в areaflags.map, после этот файл заменяем в папке нашего сервера server\mpmissions\dayzOffline.chernarusplus. 5. После замены карты нужно прописать наши зоны в cfglimitsdefinition.xml который лежит по пути server\mpmissions\dayzOffline.chernarusplus. !!! Важно, порядок зон заданный в файле chernarusplus из первого списка очень важен, т.е задаем так же как и расположены наши флаги там. 6. Последний пункт - задаем в Types нашу кастомную зону предмета, которые хотим что бы спавнились в нашей зоне. Так же хочу обратить ваше внимание что если вы выделили область на карте где нет каких либо точек спавна лута( зданий, или других объектов с точками) то и лута там соотвественно не будет.. Данный способ подойдет лишь для того, что бы вы могли более точно распределить лут в выбранной области.
-
4 баллаВ эксперементалке 1.08 если сбросить предмет находясь на машине (крыше, багажнике, капоте в кузове) предмет проваливается сквозь машину на землю или оказывается в ее текстурах Тикет https://feedback.bistudio.com/T152071 ответ богемии поразителен - сейчас нет простого решения А ниже что? Проще не бывает... Собственно код фикса (Автор Я) Code ``` modded class ItemBase extends InventoryItem { override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc) { super.EEItemLocationChanged(oldLoc,newLoc); if (newLoc.GetType() == InventoryLocationType.GROUND) { if (oldLoc.GetParent()) { PlayerBase player = PlayerBase.Cast(oldLoc.GetParent()); if (player) { FixPositionIfDropOnCar(player); } } } } void FixPositionIfDropOnCar(PlayerBase player) { vector m_RayStart; vector m_RayEnd; m_RayStart = player.GetPosition(); m_RayStart[1] = m_RayStart[1] + 0.5; m_RayEnd = m_RayStart; m_RayEnd[1] = m_RayEnd[1] - 1; RaycastRVParams m_RayCastInput = new RaycastRVParams(m_RayStart, m_RayEnd, this, 0.05); array<ref RaycastRVResult> m_RayCastResults = new array<ref RaycastRVResult>; m_RayCastInput.with = player; m_RayCastInput.flags = CollisionFlags.FIRSTCONTACT; if (DayZPhysics.RaycastRVProxy(m_RayCastInput, m_RayCastResults)) { if (m_RayCastResults.Count() > 0) { Car car; if (Class.CastTo(car, m_RayCastResults[0].obj) || Class.CastTo(car, m_RayCastResults[0].parent)) { this.SetPosition(m_RayCastResults[0].pos + (player.GetDirection() * 0.1)); } } } } } ``` Наверное имеет смысл чуть приподнять предмет над поверхностью, но необходимость этого зависит от типа предмета, потому не стал этого делать чуть откорректировал код
-
1 баллВ данной теме разберем момент настройки количества спавнящегося лута на сервере, объектов типа "автомобили и хеликраши", животых и зомби. Скажу сразу, гайд может быть не точным, поскольку официальной информации по серверной части разработчики игры не предоставляют, все основано лишь на личных наблюдениях и комментариях остальных людей. Гайд относится исключительно к версии сервера DayZ Standalone 0.61 в настроенном режиме работы сервера private hive (dboffline) с рабочим респавном лута (полная генерация папки storage со всеми ее компонентами). Пример такого сервера можно наблюдать в соседней моей теме: Упомяну также сразу и о том, что в версии 0.61 и 0.60, по сравнению с старыми версиями игры, в игру разработчиками введена так называемая "центральная экономика лута сервера". Это означает, что сервер сам постоянно анализирует количество каждого предмета, объекта, вещи на сервере, их качество, то, сколько они лежат уже, сколько с ними взаимодействовали и т.п. информацию, и уже на основании этих данных динамически подспавнивает все необходимое сам по мере необходимости. Это удобно, не правда ли? Но есть и минусы такого плана, что если каких-то вещей в палатках и бочках у людей набралось много, эти вещи просто могут перестать спавниться на сервере, поскольку они уже имеются в наличии у кого-то. Также, не исключено, что самописная система сохранений на серверах наших также вносит свой вклад в это, поскольку с каждым перезаходом на сервер база данных лута сервера перезаписывается, и для сервера может создаться эффект, что она дублируется, а значит база данных захламляется лутом и в спавне его становится меньше (эта информация не проверенная, только лишь догадка). Собственно, настройку этой системы мы и будем разбирать ниже Собственно, приступим: 1. Первым делом откроем нашу папку миссии сервера в MpMissions, зайдем в папку db и откроем файлик с именем types.xml блокнотиком (советую с Notepad ++ открыть). Увидим вот такое: 2. Разберем на примере одного из блоков (принцип един для всех блоков и одинаков). Выберем, например вот этот блок. Вот что мы здесь имеем: <type name="P1"> <!--- Там где указано 'P1' это класснейм вещи. Т.е. внутрисерверный код вещи, по которому сервер распознает, что это именно эта конкретная вещь. Список такого рода класснеймов можно найти в интернете самим вручную.--> <nominal>20</nominal> <!--- Число 20 - это наиболее вероятное количество данной вещички, которое будет иметься на сервере на сервере в целом, подспавниваться, в случае нехватки вещей на сервере, или наоборот не спавниться, если вещичек на сервере уже имеется столько или больше. Число 20 это не конкретное количество, а лишь наиболее вероятное значение, которое сервер выберет сам. Конктретное значение назначить невозможно.--> <lifetime>8500</lifetime> <!-- Число 8500 это время жизни вещички на сервере от момента ее спавна до момента ее удаления (и последующего ее переспавна, если сервер решит, что это необходимо). Число, как понимаю, указывается в секундах. В случае, если с вещью этой кто-то повзаимодействовал, счетчик секунд до ее удаления и переспавна сбрасывается, и отсчет этого времени начинается заного.---> <restock>500</restock> <!-- Незвестный мне параметр ---> <min>10</min><!--- Число 10 - это минимально допустимое количество данной вещички, которое будет иметься на сервере в целом. Работает по принципу с параметром nominal выше. Число 10 это не конкретное количество, а лишь наиболее вероятное значение, которое сервер выберет сам. Иными словами, минимальная граница диапазона. Конктретное значение назначить невозможно.--> <max>100</max><!--- Число 100 - это максимально допустимое количество данной вещички, которое будет иметься на сервере в целом. Работает по принципу с параметром nominal выше. Число 100 это не конкретное количество, а лишь наиболее вероятное значение, которое сервер выберет сам. Иными словами, максимальная граница диапазона. Конктретное значение назначить невозможно. Сервер сам при первом запуске сервера генерирует себе в базу количество в луте этой вещи на всем сервере в целом, и это число сохраняет.--> <quantmin>-1</quantmin> <!-- Незвестный мне параметр ---> <quantmax>-1</quantmax> <!-- Незвестный мне параметр ---> <cost>100</cost> <!-- Незвестный мне параметр ---> <flags>7</flags> <!-- Незвестный мне параметр ---> </type> Возможно, имеются и какие-то иные параметры записи в этот файл. В класснеймы в этом файле вводятся не только вещи, но и класснеймы хеликрашей, животных, зомби и прочего (даже транспорт есть). Грубо говоря, это таблица всего, что будет спавниться на сервере вообще. 3. Теперь откроем файлик events.xml так же. Здесь принцип тот же, но некоторые параметры уже отличаются. 4. Разберем на примере такого вот блока в этом файле. Показатели, которые есть в types.xml и имеются тут дублируются, пояснения по ним копировать не стану. (какие рабочие не знаю, указываем их и там и там) <event name="VehicleTransitBus"> <!--- Все тот же класснейм в привычном нам виде, но не объекта, как понимаю, а категории объектов. Откуда названия брать не изучал. --> <waves>3</waves> <!--- Неизвестный мне параметр--> <nominal>5</nominal> <!--- См. комментарии в types выше --> <min>3</min><!--- См. комментарии в types выше --> <max>5</max><!--- См. комментарии в types выше --> <lifetime>25000</lifetime><!--- См. комментарии в types выше --> <restock>0</restock><!--- См. комментарии в types выше --> <saferadius>1000</saferadius> <!--- Радиус спавна лута около объета, актуально для хеликрашей. --> <distanceradius>2000</distanceradius><!--- Радиус, в котором, как понимаю, объекты данного типа рядом не появятся --> <cleanupradius>0</cleanupradius><!--- Радиус в метрах, на расстоянии которого будет пропадать зомби и лут, отходящий от объекта самовольно. --> <deletedamaged>1</deletedamaged> <!--- Актуально для машинок, думаю, с названия понятно что это. --> <flags>262400</flags> <!--- Неизвестный мне параметр--> <children> <!--- Простая покатегория --> <child flags="0" lootmax="3" lootmin="0" max="5" min="5" type="TransitBus"/> <!--- Класснейм объекта, который относится к этому типу event сервера, в параметрах минимум-максимум лута у объекта или в объекте, и количество самих объектов на серре данного типа. --> </children> </event> 5. теперь разберем server.xml и globals.xml В первом файле настройка работы с базой данных сервера официальной, такие как время синхронизации данных между клиентом игры и сервером, время жизни трупов после смерти, и параметр queuetime, который не работает (это время ожидания поумолчанию перед спавном, отключено в силу технической возможности впринципе зайти на сервер вообще). Во втором файле соответственно мы имеем параметры количества спавна зомби, дистанция для динамического спавна зомби на игрока и другие какие-то настройки, смысл которых я так и не понял. ВАЖНО!!! После редактирования всех этих настроек не забываем, что если у вас имеется папка storage, и в папке storage сервера имеются одноименные bin-файлы базы данных сервера, то настройки ваши не применятся с запуском сервера, поскольку они в таком случае считываются у вас именно из storage-директории. Потому если вы хотите применить эти настройки необходимо будет либо удалить всю директорию storage, либо конкретно данные файлы! Но помните, если вы будете удалять файлы, делайте копии базы перед удалением, поскольку файлы в папке storage взаимосвязаны, и всегда имеется риск, удалив один файл, вызвать вайп или переспавн какого-то из элементов на сервере (это заметно при старте сервера в ее консоли пhи подгрузке файлов множественным serious damaged). Вроде бы и все. Не уверен, что часть из настроек этих вообще работает, а часть пояснений к ним корректно написана, но это лично мои наблюдения. Надеюсь, прояснил хоть немного о известной системе работы сервера. Если у кого есть более точная и правильная информация, просьба писать ее, будем корректировать гайд вместе.
-
Рассылка

thessend