Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
-
Объявления
-
⚙️ Новые онлайн-инструменты для DayZ 07/26/26
-
-
Похожие публикации
-
Автор: Kramtsov
[KR] QTS - это ПО, задача которого максимально ускорить и упростить процесс отладки модов и поднятия тестовой среды.
В своей мододельской практике я часто сталкиваюсь с рядом проблем, которые хотелось бы автоматизировать или оптимизировать. А именно:
1. Перепаковка PBO перед запуском тестов. Особенно если я не помню, в каких именно проходили изменения;
2. Необходимость иметь батники на все случаи жизни: Debug, сервер, экспа, и все это под разные карты и миссии;
3. Куча открытых папок с логами. Да и сама необходимость постоянно лезть в папки и открывать их;
4. Создание батников и необходимость их постоянно редактировать, чтобы подключить те или иные моды, которые сейчас требуются;
5. Необходимость держать актуальными данные о модах как для сервера, так и для клиента;
6. Необходимость постоянно лезть в тестовую папку с билдами и убирать из нее лишнее;
7. Банально лениво искать кастомную миссию и мод карты, на которой надо что-то протестить;
8. Создание Simlink'ов для модов или до диска P, чтобы работал filepatching;
9. Пропись себя в админку в новом профиле. Каждый раз забываю;
10. Необходимость лезть в папки и редактировать ServerDZ.cfg. Нужный еще найти надо из немалого списка;
11. Необходимость постоянно сворачивать окна и искать на рабочем столе нужный батник для запуска или остановки процессов.
Думаю тут еще набежит несколько пунктов того, что мне делать порядком надоело, но основные я перечислил.
Так вот.
[KR] QTS закрывает их все.
Изначально я хотел себе сделать простенькую программу для быстрого свапа батников, но в итоге получилось то, что получилось.
В прочем, как всегда. Рассчитываем на "быстро и просто", а в итоге изобретаем подводную лодку с вертикальным взлетом.
Скачать
[GitHub]
Это чистой воды вайбкод, прошедший этапы оптимизации, проверки безопасности и т.д.
Распространяется бесплатно, по GPL-3.0.
Для кого это
* В-первую очередь для тех, кто как и я, задолбался со всем этим возиться и не имеет нормального решения под рукой
* Во-вторую - для мододелов-новичков. Все таки матерые волки моддинга редко пересаживаются на новый, непривычный инструментарий и не всегда готовы менять свой пайплайн * разработки. Но им я тоже рекомендую попробовать.
* В-третьих - для серверовнеров, которые вообще не понимают, как запускать тестовый сервер на локальной машине
* В-четвертых - для тех, кто просто хочет поднять тестовый сервер на домашней машине без лишнего геморроя
Менеджмент модов
* ПО считывает пути и подтягивает списки модов, скачанных со Steam. Их дальнейше подключение происходит через Simlink на эти папки, т.е. источник PBO для клиента и сервера всегда будет один и тот же. И значит не будет проблемы с рахождением файлов
* Подключение локальных модов: хоть пачкой, хоть по одному
* Возможность указывать зависимости для локальных модов (чтобы в пересетах запуска подтягивалось сразу всё необходимое)
* Возможность указать сорсы на диске P для локального мода
* Возможность настроить флаги для модов (для бОльшего удобства сортировки и визуального поиска нужных модов)
* На странице подключения модов для сервера можно указывать ссылку на коллекцию. В данном случае будет предложено докачать то, чего не хватает
Создание пресетов
* Происходит буквально в несколько кликов.
* Указываем название, выбираем миссию, если она отсутствует - будет предложено ее скачать с официального источника.
* Скачка, естественно, автоматическая.
* Если нет мода на карту - об этом так же будет уведомление и предложение подписаться на мод в Steam. Кнопка с линком уже заботливо подготовлена
Запаковка модов
* Запаковка происходит через **Mikero PboProject** и, соответственно, требует установленных утилит, которые для запаковки необходимы. В том числе **DayZ Tools**.
* Настройки для PboProject выведены в приложение. Можно выставить привычные параметры.
* По стандарту, два типа запаковки: быстрая и полная. (FullBuild).
* Перед запуском клиента и сервера, если в подключенных локальных модах указаны сорсы, будет проведен ребилд всех pbo, в српсах которых были изменения с момента последней запаковки
* Это можно отключить
Логи
* Открываются в отдельных окнах, обновляются в реальном времени, есть поиск внутри одного или всех файлов. Можно закрепить поверх всех окон
* Есть информирование о загрузке памяти у слоев (3_Game, 4_World и тд)
* Логи запаковки PBO. Также разнесенные в два окна. С информированием о Warning'ах и Error'ах.
В логах, очевидно, еще есть над чем поработать, но уже довольно неплохо
## Запуск сервера
* После всех настроек - в один клик
* При нажатии на "Закрыть" приложение уходит в трей, а вместо него появляется небольшой фрейм, который висит поверх всех окон и позволяет управлять запуском/выключением
Пресеты для запуска сервера по умолчанию создаются со словом TEST в названии и 10 слотами. Т.е. по крайней мере в случае с нашими модами он будет взаимодействовать корректно
Настройка и использование
При первом запуске нужно будет выполнить несколько шагов.
Как минимум - указать свой префикс (можно любой, это не принципиально) и ссылку на Steam.
v. 0.2.3
* Добавлена проверка на запущенную копию процесса приложения. Если она есть, вместо второй копии будет раскрыта первая.
* Теперь приложение может подхватывать уже запущенный процесс клиента и сервера (на случай, если ПО было случайно закрыто).
* Добавлена возможность запускать сервер без отображения его окна
* Доработан поиск внутри логов
* Теперь можно выбрать тип файла, который будет выводится в окно логов (script, crash, RPT)
* Добавлены варианты выбора остановки процесса сервера (Грубый/Мягкий)
* Минорные правки и багфиксы
-
Автор: RedLink
Всем Привет.
Представляю вам систему логирования действий игроков и т.д. по принципу InfiSTAR.
Для установки вам понадобятся кастомный compiles.sqf (тем кто не знает как это сделать, -> поиск по форуму).
1. Открываем в серверной части файл dayz_server\init\server_functions.sqf и в самом низу вставляем:
"SK_log" addPublicVariableEventHandler {(_this select 1) call fnc_Log;}; 2. Теперь открываем в папке с миссией файл compiles.sqf и ищем что-то в этом плане:
if (!isDedicated) then { блаблабла }; и после него вставляем
fnc_log = { private ["_fileName","_message","_dll","_dll2","_display"]; _fileName = toLower (_this select 0); _message = _this select 1; _display = if (count _this > 2) then {_this select 2} else {false}; if (!isDedicated) then { SK_Log = [_fileName,if (typeName _message == "ARRAY") then {_message} else {toArray _message},_display]; publicVariableServer "SK_Log"; } else { _message = if (typeName _message == "ARRAY") then {toString _message} else {_message}; if (_display) then {diag_log format ["[%1] %2",toUpper (_fileName),_message];}; _dll2 = format["!InfiSTAR_Logs~%1~%2",_fileName,_message]; "LogDLL" callExtension _dll2; }; }; где "!InfiSTAR_Logs" - ваша папка, куда вы хотите складировать логи.
3. Открываем файл publicVariable.txt в фильтрах Battleye и в первой строке "5 !=блаблабла" в конце добавляем "!=SK_Log" (пример ниже)
5 !"donn_heli_monitor" !"fnc_log" !=fnc_log !"redHunter" !=redHunter !"cad_pvar_s" !"PVDZE_veh_Update" !="PVDZE_veh_Update" !="PVDZE_adminevents" !="PVDZ_plr_Death" !"PVDZ_plr_Death" !="PVDZE_atp" !"PVDZE_atp" !"PVDZ_plr_LoginRecord" !="PVDZ_plr_LoginRecord" !"PVDZE_log_lockUnlock" !=PVDZE_log_lockUnlock !"redHunter" !=redHunter !"redDiagLog" !=redDiagLog !="PVDZE_atp" !=(remExField|remExFP) !=(PVCDZ_obj_GutBody|drn_AskServerDynamicWeatherEventArgs|BIS_effects_gepv|achievement|dayzFlies) !=PVDZ_(drg_(RaDrag|RaLW|RLact)|getTickTime|hlt_Bleed|obj_(Delete|Publish|RoadFlare|Destroy|Fire)|veh_Save|veh_SF) !=PVDZ_(plr_(Death|Login[12]|LoginRecord|Save|SwitchMove)|Server(_Simulation|StoreVar)|sec_atp) !=PVDZ_(playerMedicalSync|object_replace|groupInvite) !=PVDZ_(send(|Unconscious)) !=PVDZ_Server_(buildLock|LogIt|UpdateGroup) !=PVDZ_Server_process(Code|SetAccessCode) !=PVDZ_objgather_(Delete|Knockdown) !=PVDZE_(obj_(Delete|Publish|Swap|Trade)|fullobj_Publish|maintainArea|veh_(Lock|Publish2|Upgrade)|handleSafeGear|plr_(DeathB|FriendRQ|TradeMenu)) !=PVAH_AdminReq !=PVAH_WriteLogReq !=PVAHR_0_[a-zA-Z0-9]{20,40} !"PVAHR_" !="PVAH_AdminReq" !="PVAH_WriteLogReq" !=PVAHR_0_[a-zA-Z0-9]{20,40} !="PVDZE_(query|store|spawn)Vehicle" !="PVDZE_PingSend" !="PVDZE_veh_Init" !"SK_Log" !=SK_Log
4. А теперь самое главное.
Пример вывода лога в отдельный файл. Возьмем для примера файл смерти игрока от тех или иных причин.
Открываем в серверной части файл server_playerDied.sqf и ищем там строку
diag_log format["%1 (%2) %3 @%4 %5",_playerName,_playerID,_message,mapGridPosition _pos,_pos]; после нее вставляем
["DEATHS",format ["%1 (%2) %3 @%4 %5",_playerName,_playerID,_message,mapGridPosition _pos,_pos],true] call fnc_log; Таким образом в указанной в папке в п. 2 создатся файл deaths_блаблабла.txt, в котором будет отображен лог о смерти игрока по тем или иным причинам.
Формат записи лога выглядит следующим образом:
_message = format ["Что хочу то и пишу и хочу видеть значение %1",_значение%1]; ["ИМЯ_ФАЙЛА_ЛОГА",_message,true] call fnc_log; или напрямую
["Имя_файла_лога",format ["тут будет то что в значении %1",_значение%1],true] call fnc_log;
Представляю варианты 4-х DLL, которые работают для этой системы (качаете любую из них и переименовываете в LogDLL.dll). Эту DLL необходимо закинуть в папку с игрой (например в C:\Games\Arma 2 Operation Arrowhead).
LogDLL.dll создает в папке с логами отдельную папку по названию лога.
LogDLL_-_dd-MM-yyyy и иные ее интерпретации - создает в папке с логами отдельную папку с датой, в которой хранятся все логи за эту дату.
Если есть вопросы, задавайте.
Оригинал данного скрипта и ссылки на разработчика ниже.
Копирайта
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
-
Автор: RedLink
Всем привет.
Возник один вопрос, который пока не могу догнать как решить.
Суть следующая. В последней версии Инфистара есть код, который выводит логи в отдельную папку
Путем нехитрых манипуляций добавляем ему вывод лог в отдельную папку с датой (ибо надоел тот кошмар, что там за 5 дней скапливается)
А вот теперь сам вопрос.
Если переменная dayz_ForcefullmoonNights = true;
то создается папка с датой, которая указана в server_monitor.sqf - т.е. 2012,8,2 - что в принципе логично.
А вот если dayz_ForcefullmoonNights = false; - то создается папка с датой, которая указана в mission.sqf (в моем случае это 2008,10,1. Хотя по логике должна присваиваться реальная дата, которая берется из того-же server_monitor при проверке на dayz_ForcefullmoonNights, т.к. в логе сервера мы видим, что TIME SYNC текущая дата сервера.
Почему так происходит и как это можно поправить?
-
-
Наш выбор
