Need help?
Create a topic in the appropriate section
Don't write everything in the chat!Take a look at the marketplace
There you can buy
everything related to game serversDon't want a ban?
Please read our rules
Don't disturb the order!Sell or buy?
Use services of the guarantor
We will make your deal safe



-
Similar Content
-
By BorizzK
В эксперементалке 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)); } } } } } ``` Наверное имеет смысл чуть приподнять предмет над поверхностью, но необходимость этого зависит от типа предмета, потому не стал этого делать
чуть откорректировал код
-
By 123new
Многие новички часто спрашивают 'А как установить моды? Я пытаюсь, но у меня не выходит! Как это делать правильно?'. Я был крайне сильно удивлен тем, что многие люди, в том числе и мои знакомые, до сих пор не научились это делать и прибегают к помощи за деньги, хотя казалось бы, что это основа для серверостроения любого администратора.
Что же господа, давайте проясни этот вопрос окончательно, пишу еще один гайдик от моего имени в коллекцию сайта 😃
Отмечу сразу, что для бывалых, кто уже держит свои сервера, данную тему можно не читать, нового вы ничего не узнаете!
Типы модификаций? Их разница и специфика:
Есть всего 2 типа модификаций у данной игры:
клиент-серверные (на разговорном их клиентскими называют, т.к. игроку их также нужно ставить), т.е. модификации, которые необходимо ставить и на клиенте игры у игрока и на сервере игры для нормальной работы серверные, т.е. модификации, которые достаточно установить лишь на стороне сервера для их нормальной работы (игроку не требуются). При этом, если их установить и на клиентскую сторону (сторону игрока), то работать они также будут нормально. Сразу отмечу, что модификаций, не обязательных к установке игроку (клиенту) не бывает. Т.е. либо только обязательные для всех, либо только серверные!
Также, бывают модификации разделенные на 2 части, среди которых 1 клиент-серверная (клиентская проще говоря), 2 серверная. Такие как правило в свободном доступе не встречаются и обычно либо продаются, либо ставятся индивидуально на чьих-то серверах. Выявить такие можно с описания по ним обычно.
Для стандартной установки любого мода (клиент-сtрверного) необходимо:
1. Иметь настроенный сервер 'поумолчанию', готовый к работе.
2. Подписаться на нужную нам модификацию в Мастерской Steam (требуется наличие игры на аккаунте и ПК)
3. Запустить DayZ в Steam, дождаться появления лаунчера игры, и закрыть его
4. Включить отображение скрытых файлов и папок в Windows
5. Открыть папку с вашей игрой. Далее зайти в папку !Workshop и найти одноименную папку с вашей модификацией
6. Скопировать папку в папку с вашим сервером игры (именно саму папку модификации, не ее содержимое, папка с модификацией в папке сервера должна быть отдельно)
7. Открыть папку с модификацией, найти файлик формата .bikey и скопировать в папку keys внутри сервера игры
8. Открыть параметры запуска сервера
9. Убедиться, что в параметрах запуска сервера имеется предопределенная строка:
"-profiles=Instance" где вместо Instance может быть указана любая папка в папке сервера.
Для пояснения - эта строка добавляет указание на расположение системной поддиректории сервера $profile
10. Убедиться, что в параметрах запуска сервера имеется предопределенная строка.
"-mod=@MyMod1;@MyMod2;" Где @MyMod1 и @MyMod2 - имена папок с модами, которые могут быть переименованы в любое ваше название. (символ @ не обязателен). Несколько модов отделяются через точку с запятой (точка с запятой в конце строки не обязательна, работает и так и так), порядок указания модов - в зависимости от требований кода для других модификаций (см. п. 11)
11. Открыть страницу модификации, посмотреть, не требует ли она какие-либо модификации для своей работы дополнительно, и если требует, то повторить п. 1-10 для них всех.
12. Открыть конфигурационный файл сервера (тот где название сервера указывали) и установить параметры запуска сервера в параметре:
verifySignatures = 2; где режим 2 - проверка соответствия между сервером и клиентом игры на соответствие .pbo файлов (аддонов) модификации и самой игры с файлами .bisign (цифровой подписью аддонов) и с файлов .bikey модификации на сервере (ключем модификации).
Если стоит 2 - для входа на сервер будет требоваться четкое соответствие файлов модификации клиента игры и сервера, т.е. файлы модификаций и их количество должно быть таким же.
Если выставите 0, проверки не будет, и люди без модификации смогут заходить к вам, но и смогут удалять с папки игры траву. здания, и играть без них.
Рекоммендую оставлять параметр 2.
13. Запустить сервер
14. Запустить DayZ в Steam, дождаться появления лаунчера игры, включить те же самые модификации в нем, запустить игру и войти на свой сервер!
ВАЖНО! Это лишь базовая установка любой модификации на сервера, которая требуется любой модификации! Она не добавляет предметы или другие новшества в спавн или в торговца, она лишь добавляет указание серверу и игре на наличие в игре тех или иных предметов и возможностей, которые, например, могут быть отспавнены сручную (скриптом например или модом-админкой).
Для некоторых модификаций этого будет достаточно, для многих других потребуется сделать какие-то дополнительные действия, о которых обычно авторы модификаций пишут на страницах своих модификаций в Steam, или в обсуждениях там же. Часть информации об дополнительной 'сложной' установке модификаций раскрывается пользователями нашего форума в разделе ниже, за что им отдельная благодарность!
https://s-platoon.ru/forum/236-mody-iz-masterskoy-steam/
Серверные модификации:
Установка серверной модификации от клиент-серверной не отличается ничем, как правило, кроме того, что на стороне клиента (игрока) она не требуется. Т.е. игроку не нужно предпринимать никаких действий для входа на сервер с такой установленной модификацией! А вот на стороне сервера модификация ставится.
Инструкция по установке аналогична указанной выше, с пометками, что описаны тут, но еще и с одной лишь разницей - в п. 10 инструкции будет параметр такой:
"-servermod=@MyMod1;@MyMod2;" В остальном все полностью совпадает.
И еще, в большинстве случаев серверные модификации это какие-либо скриптовые модификации, т.е. наверняка они имеют какую-либо конфигурацию, которая настраивается дополнительно после запуска сервера в директории, обозначенной параметром запуска сервера -profiles=. Как правило, информация об этом поставляется автором модификации.
Темы, связанные с данной тематикой, которые могут быть вам интересны:
-
By BorizzK
Довольно тупое охлаждение жратвы и кастрюли если они оказались на земле
Прикрутить охлаждение содержимого кастрюли как 2 байта сами знаете что
Сделать охлаждение после снятия с костра и тп вобщем то же не проблема
Просто код и ничего лишнего
Комментарии к коду добавлю позже
Логгирование в коде закомментировано - раскомментируйте, что бы наблюдать за процессом
Для жратвы убавление температуры раз в 10 сек на 1 градус
Для кастрюли на 2 градуса
Охлаждается до дневной температуры воздуха далее охлаждение прекращается
У бгемотов есть 2 температуры воздуха - дневная и ночная
Идиотизм? Однозначно
Я пытался в погоде сделать ее плавное изменение в зависимости от Overcast, Rain и тп, но забил - потом как-нибудь
Есть вопросы, задавайте, отвечу если будет время.
Вобщем как-то так:
//08.05.2020 modded class ItemBase extends InventoryItem { ref Timer m_TemperatureDecrease; private float m_InitTemperature; private float m_DecreaseTempTime = 10; private float m_TempDecreaseCoef = -1; void ItemBase() { m_InitTemperature = 12; //g_Game.GetMission().GetWorldData().GetDayTemperature(); // Не работает ((( какого художника - я хз if ( IsInherited(Pot) /* GetInventory().GetCargo() */ ) { m_TempDecreaseCoef = -2; } } override void AfterStoreLoad() { super.AfterStoreLoad(); if (!IsInherited(FireplaceBase)) TryToStartTempDecrease(); } private void TryToStartTempDecrease() { if (GetTemperature() > GetInitTemperature()) { if (!GetHierarchyParent()) { if (!m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: Init: TryToStartTempDecrease: this: " + this + ": GetHierarchyParent(): " + GetHierarchyParent() + ": GetTemperature(): " + GetTemperature()); StartTemperatureDecrease(); } } } } override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc) { super.EEItemLocationChanged(oldLoc,newLoc); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": newLoc.GetType(): " + newLoc.GetType() + ": newLoc.GetParent(): " + newLoc.GetParent() + ": GetTemperature(): " + GetTemperature()); if (GetTemperature() > GetInitTemperature()) { if (!newLoc.GetParent() || newLoc.GetType() == InventoryLocationType.GROUND) { if (!m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": Begin decrease temperature: GetTemperature(): " + GetTemperature()); StartTemperatureDecrease(); } } } else { if (m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": End decrease temperature: GetTemperature(): " + GetTemperature()); StopTemperatureDecrease(); } } } private void StartTemperatureDecrease() { m_TemperatureDecrease = new Timer( CALL_CATEGORY_SYSTEM ); m_TemperatureDecrease.Run(m_DecreaseTempTime, this, "DecreaseTemperature", NULL, true); } private void StopTemperatureDecrease() { m_TemperatureDecrease.Stop(); m_TemperatureDecrease = NULL; } void DecreaseTemperature() { if (GetTemperature() > GetInitTemperature()) { AddTemperature(GetTempDecreaseCoef()); if ( IsInherited(Pot) /* GetInventory().GetCargo() */) { DecreaseCargoTemperature(); } Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: this: " + this + ": Decrease: GetTemperature(): " + GetTemperature()); } else { SetTemperature(GetInitTemperature()); StopTemperatureDecrease(); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: this: " + this + ": Stop decrease: GetTemperature(): " + GetTemperature()); } } void DecreaseCargoTemperature() { ItemBase item; int item_count = GetInventory().GetCargo().GetItemCount(); for (int i = 0; i < item_count; i++) { item = ItemBase.Cast(GetInventory().GetCargo().GetItem(i)); if (item) { if (item.GetTemperature() > item.GetInitTemperature()) { item.AddTemperature(item.GetTempDecreaseCoef()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: this: " + this + ": Decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } else { item.SetTemperature(item.GetInitTemperature()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: this: " + this + ": Stop decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } } } } float GetInitTemperature() { return m_InitTemperature; } float GetTempDecreaseCoef() { return m_TempDecreaseCoef; } } Немного переделал код
Теперь охлаждается все если оно имеет Т выше 12, а если это кастрюля с содержимым, то и ее содержимое
Получить Т воздуха в конструкторе не выходит потому указал руками
-
By 123new
Здравствуйте, дорогие друзья и посетители сайта. В данной теме я распишу как создать свой "чистый" сервер на основе первых официальных серверных файлов игры, доступных каждому в steam для тех, кто приобрел эту замечательную игру. Для тех, кто не приобретал ее, не расстраивайтесь, добавлю зеркала на файлы.
И так, приступим.
Системные требования игры:
https://s-platoon.ru/topic/7014-polnaya-dokumentaciya-servernyh-faylov-dayz-standalone-dayz-server-files-documentation/?do=findComment&comment=61219
Нам понадобятся:
1. Notepad++ https://notepad-plus-plus.org/download
2. Официальные серверные файлы игры со steam. Скачать их можно:
В Steam из раздела 'инструменты' , выбрав DayZ Server и нажав 'установить' Вручную через утилиту SteamCMD:
3. Официальный клиент игры из steam: https://store.steampowered.com/app/221100/DayZ/
4. "Настроенная конфигурация серверной части игры" и батник для старта сервера:
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
И так, приступим.
Копируем папку со скачанными серверными файлами игры (папку DayZServer ) в отдельную папку. В пути и имени папки не должно быть пробелов и русских символов. Саму новую папку можно назвать как хотите, я же назову ее MyServer. Распаковываем архив с "Настроенной конфигурацией серверной части игры" в папку с серверными файлами (папка MyServer). Получим что-то типа такого: Далее мы работаем уже только внутри папки MyServer Открываем в Notepad++ файл server.cfg в папке Instance_1. Настраиваем его, комментарии к настройке на русском в файле имеются.
При особой необходимости вы можете свериться с serverDZ.cfg в корневой папке сервера, это оригинальный файл конфигурации, предоставленный разработчиками. Также, можете прочитать информацию из официальной документации с переводом в теме вот этой(смотрите во 2 сообщении указанной темы). Плюсом есть пояснения в конце гайда! Открываем в Notepad++ файлы BEServer.cfg и BEServer_x64.cfg в папке Instance_1\Battleye в папке сервера. Настраиваем параметры, содержимое обоих файлов должно быть идентичным.
Параметры:
RConPassword - Устанавливает пароль для подключения RCon инструментов (инструмент удаленного администрирования, таких как BEC/Dart).
RestrictRCon - Включает\отключает RCon-функции (кик\бан\ограничение подключения) (0 для отключения органичений)
MaxPing - устанавливает ограничение на сервере по пингу
В примере, уже имеющемся у вас, 12345678 - rcon-пароль сервера, 500 - максимальный пинг, разрешенный battleye для игры на сервере, RestrictRCon 0 - разрешить подключение с RCon-клиентов с правами кика и бана (0 - разрешено все, 1 - запрещен кик и бан, только отправка в чат). Запускаем !!!Start_server.bat и наш сервер запустится. Запускаем клиент игры со steam, находим наш сервер вручную по ip и порту, либо имени сервера.
Если сервер запущен на том же компьютере, где и игра, и на стандартном порту 2302, то поумолчанию поиск выполняется по 127.0.0.1:2302
Если сервер запущен на другом компьютере, то вместо 127.0.0.1 будет ip адрес компьютера, где запущен сервер, или его доменное имя. Например, myserver.com:2302 или 178.123.22.12:2302
ВАЖНО: если сервер запущен на другом компьютере, отличном от компьютера где запущена игра, то для доступа на сервер игроков необходимо иметь "внешний" выделенный ip-адрес и открытый порт сервера!
Сменить порт сервера можно в !!!Start_server.bat (Notepad++ для редактирования), параметр запуска сервера -port= Более подробно по параметрам запуска читайте ниже. Для выключения сервера рекоммендуется пользоваться !!!Server_kill.bat файлом, созданным в соответствии с рекоммендациями разработчиков игры и официальной документацией.
Разъяснения по параметрам запуска сервера игры (для !!!Start_server.bat ):
Разъяснения по конфигурационному файлу сервера игры (для serverDZ.cfg ):
Crack SmartSteamEmu v. 1.4.3 данной версии клиента игры и сервера:
Скачать с Zippyshare.com: https://www64.zippyshare.com/v/mHmPweqg/file.html
Скачать с Mega.nz: https://mega.nz/#!rnZBXK4b!KRrJm6obcJjUlzMpEPNQ3R8sy2z0pP-0Myb_ao4TVhg
Скачать с yandex.disk: https://yadi.sk/d/4xSF1dSt6XN41g
Инструкция по установке есть в архиве, дублирую:
Дополнительно:
Для работы с Battleye, кика и бана игроков используйте ip-адрес и порт сервера, и любой rcon-клиент с паролем из BEServer_x64.cfg
Для работы BEC файл BEServer.cfg должен быть идентичным по содержанию BEServer_x64.cfg иначе программа не будет работать!
База данных (storage) теперь хранится по пути: mpmissions\dayzOffline.chernarusplus\storage_{номер instance с cfg сервера}
В базе данных также хранится файл с сохранениями игроков на сервере с именем players.db
Если вы не находите свой сервер в списке серверов игры во вкладке Community, проверьте на доступность и открытость извне игровой порт, а также порты steam и steamquery (см. cfg файл сервера). Сервера с crack не отобразятся там.
Вот и все, приятной игры на сервере!
-
By DrTauren
Что нам понадобится:
1) Архив
2) Notepad
Инструкция:
1) Качаем архив и копируем из него папку custom в вашу папку с миссией
2) Открываем init.sqf и ищем такие строки:
if (!isDedicated) then { 0 fadeSound 0; waitUntil {!isNil "dayz_loadScreenMsg"}; dayz_loadScreenMsg = (localize "STR_AUTHENTICATING"); _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; }; 3) Перед закрывающей скобкой }; прописываем это:
_nil = [] execVM "custom\JAEM\EvacChopper_init.sqf"; 4) Выбираем одно из двух, выполняем действия указанные ниже:
Если у вас нет своего variables.sqf в папке с миссией:
Если у вас есть свой variables.sqf в папке с миссией:
5) Копируем файлы remoteexec.txt, waypointcondition.txt, waypointstatement.txt в вашу папку с фильтрами BattlEye (\instance_11_Chernarus\BattlEye)
Настройка параметров:
Открываем файл EvacChopper_init.sqf (custom\JAEM\EvacChopper_init.sqf), находим нужную строку, редактируем по своему усмотрению:
evac_chopperPrice = 3; Цена вашего спасения евреями. По умолчанию 3 Брифкейса
evac_needRadio = 0; Обязательно ли радио для того, что бы вызвать хапуг? (0-не нужно, 1-таки извольте)
evac_zoneMarker = 0; Дымовая граната на месте эвакуации (0-не надо, 1-таки не увидим мы без дыма)
evac_minDistance = 500; Дословно: минимальное расстояние, что бы вызвать евреев. Меньше 500 не ставить!
-
-
Our picks