@title Doom2DF 3 08.03.2023 3 3 @h1 ИМЯ Мануал по кастомной конфигурации для выделенного сервера Doom 2D Forever. @h1 СОДЕРЖАНИЕ 1. Настройка сервера 2. Игровые параметры 3. События 4. Алиасы @h1 1. Настройка сервера Выделенный сервер использует свой конфигурационный файл, который настраивается исключительно через текстовый редактор. Несмотря на это, недостаточно просто менять что-либо в основной игре и потом копировать это из её .cfg файла в файл сервера - в меню "Своя игра" отображаются не все настройки для сервера и некоторые переменные оттуда не изменишь. В данном пункте мы рассматриваем самые необходимые параметры, которые обязательно должны быть прописаны. @h2 Основные параметры sv_name "<ваше имя>" Название сервера. В имени лучше использовать латиницу. sv_passwd "<ваш пароль>" Пароль, который необходимо будет ввести перед входом на сервер. sv_port PORTNUMBER Номер порта, что будет использоваться сервером, по-умолчанию рекомендуется 25667. Перезаписывается параметром -port. sv_public 1/0 Показывать ли сервер в списке или нет, по-умолчанию показывается. sv_maxplrs <число> Максимальное число слотов для игроков. Рекомендуемое 14-16. sv_intertime <число> Через сколько секунд сервер начнёт следующий раунд. Для некооперативных серверов рекомендуется выставить -1 (это установит таймер на 15 секунд). @h2 Администратирование sv_rcon 1/0 Включить rcon-доступ для управления сервера. sv_rcon_password Пароль от rcon, указывать без пробелов и кавычек. @h2 Параметры бана sv_autoban_threshold <число> Через сколько попыток навредить серверу игрока должно забанить (0 = выключить), по-умолчанию 5. sv_autoban_permanent 1/0 Установить перманентность бана (0 = банить на время), по-умолчанию 1. sv_autoban_warn 1/0 Предупреждать клиента о триггерах пенальти, по-умолчанию 0. sv_auth_timeout <число> Количество миллисекунд, за которое клиент обязан закончить аутентификацию на сервере (0 = бесконечно), по-умолчанию 30. sv_packet_timeout <число> Количество миллисекунд, которое должен простоять клиент перед киком (0 = бесконечно), по-умолчанию 60. @h2 Необязательные параметры sv_forwardports 1/0 Должен ли сервер пробивать порты самостоятельно через miniupnpc. sv_reliable_interval <число> Задержка между пакетами с позицией объектов, посылается по reliable-каналу. Должен быть больше sv_update_interval. sv_update_interval <число> Задержка между пакетами с позицией объектов, посылается по unreliable-каналу. sv_master_interval <число> Через сколько секунд сервер должен напомнить о себе мастер-серверу. @h2 Технические параметры net_master_list <адрес> На какой адрес мастер-сервера будут посылаться данные. Можно указывать несколько, например, mpms.doom2d.org:25665,deadsoftware.ru:25665 rdl_ignore_enabled 1/0 Включить или выключить проверку хэша. rdl_ignore_names <имена ресурсников> Имена ресурс-файлов (из папки wads без расширения), которые не должны проверяться сервером на соответствие. rdl_hashdb_save_enabled 1/0 Сохранение хэшей в базе данных на диске. @h1 2. Игровые параметры Игровые параметры необязательны к указанию в маплисте и служат скорее для переопределения настроек конфигурационного файла, чтобы не менять лишний раз значения в нём. Для включения необходимо выставить 1, для выключения - 0, если не указано обратное! g_gamemode dm/tdm/ctf/coop Какой режим будет установлен на сервере. @h2 Боты g_max_bots <число> Максимальное количество ботов, что можно вызвать. g_bot_vsmonsters 1/0 Должны ли боты сражаться с монстрами. g_bot_vsplayers 1/0 Должны ли боты сражаться с игроками @h2 Настройки лимитов g_scorelimit <число> Сколько очков необходимо для окончания раунда (0 = бесконечно). g_timelimit <число> Лимит времени, после которого раунд заканчивается (0 = бесконечно). g_maxlives <число> Число жизней игрока, включает режимы Survival, LMS, TLMS. @h2 Время g_item_respawn_time <число> Через какое время (в секундах) должны появляться предметы, по-умолчанию 60. g_warmup_time <число> Таймер предподготовки для режима Survival и его производных, в секундах. @h2 Спаун g_spawn_invul <число> Будет ли бессмертен игрок после респауна. Значение 0 выключает бессмертие после возрождения. g_weaponstay 1/0 Оставлять ли оружие после подбора игроком. @h2 Разрешения g_allow_dropflag 1/0 Разрешить или запретить выбрасывание флага в режиме CTF. g_throw_flag 1/0 Как выбрасывать флаг, 1 - с ускорением, 0 - под игроком. g_allow_exit 1/0 Включить или выключить возможность выхода. Для правильной работы кооператива необходимо выставить 1. g_allow_monsters 1/0 Разрешить или запретить спаун монстров. @h2 Статистика g_save_stats 1/0 Сохранять ли статистику раунда, по-умолчанию 0. Сохраняется в виде csv-таблицы. g_screenshot_stats 1/0 Сохранять ли скриншот таблицы в конце раунда, по-умолчанию 0. @h2 Настройки "Огня по своим" g_friendlyfire 1/0 Включить или выключить огонь по своим. g_friendly_hit_trace 1/0 Включить или выключить прохождение хитскана (пули) через своих сокомандников. g_friendly_hit_projectile 1/0 Включить или выключить прохождение прожекттайлов (ракеты, снаряды БФГ или плазмы) через своих сокомандников. g_friendly_absorb_damage 1/0 Включить или выключить поглощение части урона при прохождении пуль или снарядов через сокомандников. Примечание: для кооператива меняются значения цифр (1 - выключить, 0 - включить). @h1 3. События Для контролирования определённых событий на сервере существует команда event, через которую можно относительно гибко настраивать поведение сервера в определённых ситуациях. Необходимость использования команды event напрямую связана с правильным запуском сервера и списками карт.@br Сама команда поддерживает следующие типы событий: onmapstart Выполнять заданные команды при старте следующей карты. onmapend Выполнять заданные команды в конце карты. oninter Выполнять заданые команды в конце раунда (когда появляется таблица очков). onwadend Выполнять заданные команды в конце мегавада/компании (после прохождения последнего уровня). Примечание: параметры могут работать не так, как ожидается, поэтому рекомендуется использовать примеры ниже для гарантированной работы алиасов. @h1 4. Алиасы После определения всех параметров, необходимо настроить уже непосредственно алиасы. Через них задаются списки карт, переключение нескольких параметров одновременно, реализация нескольких режимов на сервере с правильными для каждого настройками и так далее. Если вы планируете держать сервер на постоянной основе, то вам крайне необходимо задавать список карт, который будет крутиться на сервере. В данном пункте будут указаны рабочие примеры, которые можно будет использовать в своём конфигурационном файле для сервера. Меняем игровой режим на DM с присущими ему настройками, уведомляем об этом игроков, а так же задаём карту напрямую: @pre alias dm "g_gamemode dm;g_warmup_time 16;g_maxlives 0;g_dm_keys 1;g_timelimit 900;g_scorelimit 0;sv_intertime -1;centerprint 100 GAMEMODE: DM;nextmap PrikolSoft.wad MAP01;event onmapend call cmap02;bot_removeall" @endpre Устанавливаем режим кооператива (с возможностью прохождения пуль сквозь игроков): @pre alias coop "g_gamemode coop;g_maxlives 0;g_dm_keys 0;g_timelimit 0;g_scorelimit 0;sv_intertime 30;g_friendly_hit_trace 0;centerprint 100 GAMEMODE: Cooperative;call coop01;bot_removeall" @endpre Устанавливаем режим кооператива (классический): @pre alias coop "g_gamemode coop;g_maxlives 0;g_dm_keys 0;g_timelimit 0;g_scorelimit 0;sv_intertime 30;g_friendly_hit_trace 1;centerprint 100 GAMEMODE: Cooperative;call coop01;bot_removeall" @endpre Устанавливаем режим выживания: @pre alias survival "g_gamemode coop;g_warmup_time 60;g_maxlives 1;g_dm_keys 1;g_timelimit 0;g_scorelimit 0;g_friendly_hit_trace 0;g_weaponstay 1;g_friendlyfire 0;sv_intertime 30;centerprint 100 GAMEMODE: Survival;call coop01;bot_removeall" @endpre По такому же примеру можно устанавливать и пакетное переключение параметров во время игры, просто перечисляем в алиасе необходимые к изменению параметры. Устанавливаем некий список карт, который будет использоваться на сервере (он обязательно должен быть зациклен!): @pre alias cmap01 "event onmapstart nextmap PrikolSoft.wad MAP01; event onmapend call cmap02" alias cmap02 "event onmapstart nextmap SurMP.wad MAP01; event onmapend call cmap03" alias cmap03 "event onmapstart nextmap PrikolSoft.wad MAP01; event onmapend call cmap01" @endpre Устанавливаем некий список мегавадов (он обязательно должен быть зациклен!) @pre # Задаём мегавады alias wad01 "nextmap megawads/doom2d.wad MAP01" alias wad02 "nextmap megawads/doom2d2.wad MAP01" alias wad03 "nextmap megawads/VETERAN.wad MAP01" alias wad04 "nextmap megawads/Bloodworks.wad MAP01" # Для правильного переключения, выставляем отдельные алиасы alias coop01 "call wad01; event onwadend call coop02" alias coop02 "call wad02; event onwadend call coop03" alias coop03 "call wad03; event onwadend call coop04" alias coop04 "call wad04; event onwadend call coop01" @endpre Все алиасы вызываются через команды: callvote call <алиас> Для игроков rcon call <алиас> Для администратора через rcon. @h1 РЕКОМЕНДАЦИИ На данный момент использование кастомной конфигурации для серверов пусть и предпочтительно, но так же требует некоторых дополнительных команд для правильного запуска сервера. @h2 Общий момент Между алиасами и конфигурацией сервера выставьте следующее: @pre event oninter "" event onmapend call cmap01 @endpre В противном случае сервер не будет использовать список карт. На месте cmap01 можно указать то, что использовали вы для названия алиасов с картами. @h2 Стандартный сервер (с режимом DM или командными режимами на старте) Допустим, вы собираетесь запускать дм-сервер. В самый конец конфигурации пропишите, например: @pre map PrikolSoft.wad MAP01 @endpre Затем запускаем при помощи команды: @pre $ Doom2DF_H -map PrikolSoft.wad:\\\MAP01 -gm DM -port 25667 -exec maplist_dm.txt --log-file dfserver_dm.log @endpre Так сервер запускается и через некоторое время переключает карту после старта, применяя все необходимые параметры и запуская нами установленный в начале алиас вызова карты. @h2 Кооперативный сервер Для кооперативного сервера нельзя прописывать в конце никаких вызовов карт, иначе оно будет сломано и вам придётся вручную переключать карту на сервере. Вызов алиаса в начале необходимо устанавливать соответствующий. Для запуска необходимо использовать следующую команду: @pre $ Doom2DF_H -map doom2d.wad:\\\MAP01 -gm COOP -port 25667 -exec coop_list.txt --log-file dfserver_coop.log @endpre Карту можете подставить какую вы хотите с самого начала сервера. Это обеспечит правильное переключение мегавадов. Так же не стоит использовать при тестировании кооперативного сервера команду endmap - она переключит вас на любую карту из папки, но не на следующую карту вада! @h1 СМОТРИТЕ ТАК ЖЕ *d2df*(2) @h1 АВТОР Написан Дмитрием Ляшуком , разработчиками Doom 2D: Forever.