dayz-ctl — это экспериментальный лаунчер (проводник серверов и лаунчер) DayZ на Steam Proton для Linux.
Этот документ доступен на языках: eng ??, rus ??, ua ??
На момент создания этого проекта Bohemia Interactive еще не смогла сделать работающий лаунчер для игры, который мог бы корректно устанавливать модификации и подключаться к игровым серверам. Именно поэтому родился этот проект.
Ключевые особенности:
Особая благодарность dayz-linux-cli-launcher за идею и dayzsalauncher за API.
Демо-версия лаунчера
Главное меню | Браузер серверов |
Фильтры серверов | Фильтровать по карте |
Применены выбранные фильтры | Браузер избранного |
Браузер истории | Нечеткий поиск |
Офлайн-режим | Моды для оффлайна |
Серверные моды | Информация о модах |
Меню конфигурации | Параметры запуска |
О меню | Новости DayZ |
Предусмотрено два режима работы лаунчера с использованием SteamCMD и без него для управления модами в ручном режиме.
Вы можете совместить оба подхода, например, подписаться на те модификации, которые вам обязательно понадобятся в будущем, перейдя по ссылке, и проверить наличие обновлений или принудительно обновить моды с помощью лаунчера. Также вы сможете не подписываться на "50 сомнительных модов" очередного сервера и легко удалить их одним действием из лаунчера, сохранив при этом все моды, на которые у вас есть подписка.
Для удобства установки есть небольшой скрипт, который все сделает за вас (по крайней мере, попробуйте это сделать)
Выполните это:
curl -sSfLA dayz-ctl bit.ly/3Vf2zz3 | bash
Для работы лаунчера вам необходимо убедиться, что у вас установлены все зависимости:
ping
( iputils-ping
) — узнать пинг до сервера (где включен ICMP)geoiplookup
( geoip-bin
) — узнать страну, в которой находится серверwhois
— запасной вариант для geoiplookup, менее точный и медленный, но не все записи находятся в стандартной базе данных geoipcurl
— утилита для связи с различными API через HTTP/Scut, tr, grep, pgrep, pkill, killal, timeout, sed, awk
( gawk
) — куда же без классических утилит в скриптахЗатем вы можете клонировать репозиторий:
git clone [email protected]:WoozyMasta/dayz-ctl.git
# or
git clone https://github.com/WoozyMasta/dayz-ctl.git
# and run
cd dayz-ctl
./dayz-ctl
Или скачайте сам файл скрипта:
curl -sSfL -o ~ /.local/bin/dayz-ctl
https://raw.githubusercontent.com/WoozyMasta/dayz-ctl/master/dayz-ctl
chmod +x ~ /.local/bin/dayz-ctl
# and run
dayz-ctl
Для правильного отображения элементов можно использовать эмодзи, возможно, вам потребуется их установить, например, вы можете использовать шрифт Noto от Google.
Ниже приведен список с названием пакета для разных дистрибутивов:
fonts-noto-color-emoji
— debian/ubuntugoogle-noto-emoji-color-fonts
— centosgoogle-noto-emoji-fonts
— Fedoranoto-fonts-emoji
— аркаfont-noto-emoji
- альпийскийnoto-coloremoji-fonts
- СьюзИли, если вам не нравятся смайлы или вы по какой-то причине не можете их использовать, вы можете применить патч, чтобы заменить их строками:
sed -e ' s/▫️/•/g ' -e ' s/?/✕/g ' -e ' s/⬛/ /g ' -e ' s//time/g ' -e ' s/❔/?/g '
-e ' s/?/ok/g ' -e ' s/?/no/g ' -e ' s/?/night/g ' -e ' s/☀️/day/g '
-e ' s//yes/g ' -e ' s/?/no/g ' -e ' s/✅/ok/g ' -e ' s//no/g '
-i " $( which dayz-ctl ) "
Лучше удалить все параметры запуска DayZ в Steam и управлять ими из лаунчера или наоборот. Так как ключи могут дублироваться и это может вызвать путаницу или в худшем случае отрезать часть ключей, так как строка аргументов имеет ограничение по длине, а на серверах с большим количеством модов очень длинный параметр запуска. также используется.
Те. параметры запуска оставьте пустыми или укажите только тот набор вспомогательных утилит и переменных, который вам нужен, например:
MANGOHUD=1 ENABLE_VKBASALT=1 gamemoderun %command%
Вы можете ввести несколько условий поиска, разделенных пробелами. например ^namalsk DE !PVE !RP
жетон | тип соответствия | описание |
---|---|---|
sbtrkt | нечеткое совпадение | Товары, соответствующие sbtrkt |
wild | точное совпадение (цитируется) | Предметы, включающие wild |
^music | префикс-точное совпадение | Предметы, которые начинаются с music |
.mp3$ | суффикс-точное совпадение | Элементы, заканчивающиеся на .mp3 |
!fire | обратное точное совпадение | Предметы, не относящиеся к fire |
!^music | точное совпадение обратного префикса | Предметы, которые не начинаются с music |
!.mp3$ | обратный суффикс-точное совпадение | Элементы, которые не заканчиваются на .mp3 |
Термин с одной чертой действует как оператор ИЛИ.
P V E | R P
Вы можете настроить работу лаунчера с помощью переменных среды, которые вы можете передать в среду как обычно или записать в файл конфигурации $HOME/.local/share/dayz-ctl/dayz-ctl.conf
(по умолчанию )
Список доступных переменных:
DAYZ_CTL_VERSION
— версия приложенияDAYZ_CTL_NAME
= dayz-ctl
— имя приложенияDAYZ_GAME_ID
= 221100
— Идентификатор игры в Steam.APPLICATIONS_DIR
= $HOME/.local/share/applications
— каталог для хранения ярлыков приложенийDAYZ_CTL_DIR
= $HOME/.local/share/dayz-ctl
— рабочий каталог лаунчераDAYZ_CTL_BIN_DIR
= $HOME/.local/share/dayz-ctl/bin
— каталог для хранения дополнительных исполняемых файловDAYZ_REQUEST_TIMEOUT
= 10
— стандартный таймаут HTTP-запросов в секундах.DAYZ_CONFIG_FILE
= $DAYZ_CTL_DIR/$DAYZ_CTL_NAME.conf
— файл конфигурации dayz-ctlDAYZ_SERVER_DB
= $DAYZ_CTL_DIR/servers.json
— файл базы данных сервераDAYZ_SERVER_DB_TTL
= 300
— TTL для базы данных сервера в секундахDAYZ_SERVER_REQUEST_TIMEOUT
= 30
— таймаут получения списка серверов в секундахDAYZ_NEWS_DB
= $DAYZ_CTL_DIR/news.json
— файл базы новостейDAYZ_NEWS_DB_TTL
= 3600
— TTL для базы новостей в секундахDAYZ_MODS_DB
= $DAYZ_CTL_DIR/mods.json
— файл базы данных модификацийDAYZ_PROFILE
= $DAYZ_CTL_DIR/profile.json
— файл профиля пользователяDAYZ_HISTORY_SIZE
= 10
- размер истории обозревателя сервераDAYZ_FZF_HISTORY
= $DAYZ_CTL_DIR/.$DAYZ_CTL_NAME-history
— файл истории для нечеткого поискаDAYZ_USERAGENT
= "$DAYZ_CTL_NAME $DAYZ_CTL_VERSION"
— Пользовательский агент, используемый для HTTP-запросов.DAYZ_API
= https://dayzsalauncher.com/api/v1
— адрес API для получения списка серверовDAYZ_STEAMCMD_ENABLED
= true
— переключатель для включения или отключения использования SteamCMDDAYZ_FILTER_MOD_LIMIT
= 10
— значение фильтра ограничения мод по умолчаниюDAYZ_FILTER_PLAYERS_LIMIT
= 50
— значение фильтра лимита игроков по умолчаниюDAYZ_FILTER_PLAYERS_SLOTS
= 60
— значение фильтра лимита слотов по умолчанию для игроков Варианты запуска Steam с включенным MangoHud, vkBasalt и игровым модом:
MANGOHUD=1 ENABLE_VKBASALT=1 gamemoderun %command%
Также, не прибегая к сторонним утилитам, можно вывести наложение с информацией о ресурсах и ограничить FPS стандартными средствами DXVK, например:
DXVK_HUD=fps DXVK_FRAME_RATE=60 gamemoderun %command%
Значение DXVK_HUD=fps
... DXVK_HUD=full
:
devinfo
— отображает имя графического процессора и версию драйвера.fps
— показывает текущую частоту кадров.frametimes
— показывает график времени кадра.submissions
— показывает количество командных буферов, отправленных за кадр.drawcalls
— показывает количество вызовов отрисовки и проходов рендеринга за кадр.pipelines
— показывает общее количество графических и вычислительных конвейеров.descriptors
— показывает количество пулов дескрипторов и наборов дескрипторов.memory
— показывает объем выделенной и используемой памяти устройства.gpuload
— показывает предполагаемую загрузку графического процессора. Может быть неточным.version
— показывает версию DXVK.api
— показывает уровень функций D3D, используемый приложением.cs
— показывает статистику рабочих потоков.compiler
— Показывает активность компилятора шейдераsamplers
— показывает текущее количество используемых пар сэмплеров [только D3D9]scale=x
— Масштабирует HUD в х раз (например, 1,5). Ограничение частоты кадров DXVK_FRAME_RATE=0