1 @title Doom2DF 3 08.03.2023 3 3
4 Мануал по кастомной конфигурации для выделенного сервера Doom 2D Forever.
17 @h1 1. Настройка сервера
18 Выделенный сервер использует свой конфигурационный файл, который настраивается исключительно через текстовый редактор. Несмотря на это, недостаточно просто менять что-либо в основной игре и потом копировать это из её .cfg файла в файл сервера - в меню "Своя игра" отображаются не все настройки для сервера и некоторые переменные оттуда не изменишь. В данном пункте мы рассматриваем самые необходимые параметры, которые обязательно должны быть прописаны.
21 @h2 Основные параметры
23 Название сервера. В имени лучше использовать латиницу.
25 sv_passwd "<ваш пароль>"
26 Пароль, который необходимо будет ввести перед входом на сервер.
29 Номер порта, что будет использоваться сервером, по-умолчанию рекомендуется 25667. Перезаписывается параметром -port.
32 Показывать ли сервер в списке или нет, по-умолчанию показывается.
35 Максимальное число слотов для игроков. Рекомендуемое 14-16.
38 Через сколько секунд сервер начнёт следующий раунд. Для некооперативных серверов рекомендуется выставить -1 (это установит таймер на 15 секунд).
41 @h2 Администратирование
43 Включить rcon-доступ для управления сервера.
46 Пароль от rcon, указывать без пробелов и кавычек.
49 sv_autoban_threshold <число>
50 Через сколько попыток навредить серверу игрока должно забанить (0 = выключить), по-умолчанию 5.
51 sv_autoban_permanent 1/0
52 Установить перманентность бана (0 = банить на время), по-умолчанию 1.
54 Предупреждать клиента о триггерах пенальти, по-умолчанию 0.
55 sv_auth_timeout <число>
56 Количество миллисекунд, за которое клиент обязан закончить аутентификацию на сервере (0 = бесконечно), по-умолчанию 30.
57 sv_packet_timeout <число>
58 Количество миллисекунд, которое должен простоять клиент перед киком (0 = бесконечно), по-умолчанию 60.
60 @h2 Необязательные параметры
62 Должен ли сервер пробивать порты самостоятельно через miniupnpc.
63 sv_reliable_interval <число>
64 Задержка между пакетами с позицией объектов, посылается по reliable-каналу. Должен быть больше sv_update_interval.
65 sv_update_interval <число>
66 Задержка между пакетами с позицией объектов, посылается по unreliable-каналу.
67 sv_master_interval <число>
68 Через сколько секунд сервер должен напомнить о себе мастер-серверу.
71 @h2 Технические параметры
72 net_master_list <адрес>
73 На какой адрес мастер-сервера будут посылаться данные. Можно указывать несколько, например, mpms.doom2d.org:25665,deadsoftware.ru:25665
74 rdl_ignore_enabled 1/0
75 Включить или выключить проверку хэша.
76 rdl_ignore_names <имена ресурсников>
77 Имена ресурс-файлов (из папки wads без расширения), которые не должны проверяться сервером на соответствие.
78 rdl_hashdb_save_enabled 1/0
79 Сохранение хэшей в базе данных на диске.
81 @h1 2. Игровые параметры
82 Игровые параметры необязательны к указанию в маплисте и служат скорее для переопределения настроек конфигурационного файла, чтобы не менять лишний раз значения в нём. Для включения необходимо выставить 1, для выключения - 0, если не указано обратное!
84 g_gamemode dm/tdm/ctf/coop
85 Какой режим будет установлен на сервере.
89 Максимальное количество ботов, что можно вызвать.
91 Должны ли боты сражаться с монстрами.
93 Должны ли боты сражаться с игроками
98 Сколько очков необходимо для окончания раунда (0 = бесконечно).
100 Лимит времени, после которого раунд заканчивается (0 = бесконечно).
102 Число жизней игрока, включает режимы Survival, LMS, TLMS.
106 g_item_respawn_time <число>
107 Через какое время (в секундах) должны появляться предметы, по-умолчанию 60.
108 g_warmup_time <число>
109 Таймер предподготовки для режима Survival и его производных, в секундах.
113 g_spawn_invul <число>
114 Будет ли бессмертен игрок после респауна. Значение 0 выключает бессмертие после возрождения.
116 Оставлять ли оружие после подбора игроком.
121 Разрешить или запретить выбрасывание флага в режиме CTF.
123 Как выбрасывать флаг, 1 - с ускорением, 0 - под игроком.
125 Включить или выключить возможность выхода. Для правильной работы кооператива необходимо выставить 1.
127 Разрешить или запретить спаун монстров.
132 Сохранять ли статистику раунда, по-умолчанию 0. Сохраняется в виде csv-таблицы.
133 g_screenshot_stats 1/0
134 Сохранять ли скриншот таблицы в конце раунда, по-умолчанию 0.
137 @h2 Настройки "Огня по своим"
139 Включить или выключить огонь по своим.
140 g_friendly_hit_trace 1/0
141 Включить или выключить прохождение хитскана (пули) через своих союзников.
142 g_friendly_hit_projectile 1/0
143 Включить или выключить прохождение прожекттайлов (ракеты, снаряды БФГ или плазмы) через своих союзников.
144 g_friendly_absorb_damage 1/0
145 Включить или выключить поглощение части урона при прохождении пуль или снарядов через союзников.
146 Примечание: работает по следующему принципу: 1 - выключить (пули/снаряды будут сталкиваться с союзниками), 0 - включить (пули/снаряды будут проходить сквозь союзников).
149 Для контролирования определённых событий на сервере существует команда event, через которую можно относительно гибко настраивать поведение сервера в определённых ситуациях. Необходимость использования команды event напрямую связана с правильным запуском сервера и списками карт.@br
150 Сама команда поддерживает следующие типы событий:
153 Выполнять заданные команды при старте следующей карты.
155 Выполнять заданные команды в конце карты.
157 Выполнять заданые команды в конце раунда (когда появляется таблица очков).
159 Выполнять заданные команды в конце мегавада/компании (после прохождения последнего уровня).
161 Примечание: параметры могут работать не так, как ожидается, поэтому рекомендуется использовать примеры ниже для гарантированной работы алиасов.
164 После определения всех параметров, необходимо настроить уже непосредственно алиасы. Через них задаются списки карт, переключение нескольких параметров одновременно, реализация нескольких режимов на сервере с правильными для каждого настройками и так далее. Если вы планируете держать сервер на постоянной основе, то вам крайне необходимо задавать список карт, который будет крутиться на сервере. В данном пункте будут указаны рабочие примеры, которые можно будет использовать в своём конфигурационном файле для сервера.
166 Меняем игровой режим на DM с присущими ему настройками, уведомляем об этом игроков, а так же задаём карту напрямую:
169 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"
172 Устанавливаем режим кооператива (с возможностью прохождения пуль сквозь игроков):
175 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"
178 Устанавливаем режим кооператива (классический):
181 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"
184 Устанавливаем режим выживания:
187 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"
190 По такому же примеру можно устанавливать и пакетное переключение параметров во время игры, просто перечисляем в алиасе необходимые к изменению параметры.
192 Устанавливаем некий список карт, который будет использоваться на сервере (он обязательно должен быть зациклен!):
195 alias cmap01 "event onmapstart nextmap PrikolSoft.wad MAP01; event onmapend call cmap02"
196 alias cmap02 "event onmapstart nextmap SurMP.wad MAP01; event onmapend call cmap03"
197 alias cmap03 "event onmapstart nextmap PrikolSoft.wad MAP01; event onmapend call cmap01"
200 Устанавливаем некий список мегавадов (он обязательно должен быть зациклен!)
204 alias wad01 "nextmap megawads/doom2d.wad MAP01"
205 alias wad02 "nextmap megawads/doom2d2.wad MAP01"
206 alias wad03 "nextmap megawads/VETERAN.wad MAP01"
207 alias wad04 "nextmap megawads/Bloodworks.wad MAP01"
209 # Для правильного переключения, выставляем отдельные алиасы
210 alias coop01 "call wad01; event onwadend call coop02"
211 alias coop02 "call wad02; event onwadend call coop03"
212 alias coop03 "call wad03; event onwadend call coop04"
213 alias coop04 "call wad04; event onwadend call coop01"
216 Все алиасы вызываются через команды:
218 callvote call <алиас>
221 Для администратора через rcon.
224 На данный момент использование кастомной конфигурации для серверов пусть и предпочтительно, но так же требует некоторых дополнительных команд для правильного запуска сервера.
227 Между алиасами и конфигурацией сервера выставьте следующее:
231 event onmapend call cmap01
234 В противном случае сервер не будет использовать список карт. На месте cmap01 можно указать то, что использовали вы для названия алиасов с картами.
236 @h2 Стандартный сервер (с режимом DM или командными режимами на старте)
237 Допустим, вы собираетесь запускать дм-сервер. В самый конец конфигурации пропишите, например:
240 map PrikolSoft.wad MAP01
243 Затем запускаем при помощи команды:
246 $ Doom2DF_H -map PrikolSoft.wad:\\\MAP01 -gm DM -port 25667 -exec maplist_dm.txt --log-file dfserver_dm.log
249 Так сервер запускается и через некоторое время переключает карту после старта, применяя все необходимые параметры и запуская нами установленный в начале алиас вызова карты.
251 @h2 Кооперативный сервер
252 Для кооперативного сервера нельзя прописывать в конце никаких вызовов карт, иначе оно будет сломано и вам придётся вручную переключать карту на сервере. Вызов алиаса в начале необходимо устанавливать соответствующий.
254 Для запуска необходимо использовать следующую команду:
257 $ Doom2DF_H -map doom2d.wad:\\\MAP01 -gm COOP -port 25667 -exec coop_list.txt --log-file dfserver_coop.log
260 Карту можете подставить какую вы хотите с самого начала сервера. Это обеспечит правильное переключение мегавадов. Так же не стоит использовать при тестировании кооперативного сервера команду endmap - она переключит вас на любую карту из папки, но не на следующую карту вада!
268 Написан Дмитрием Ляшуком <lyashuk.voxx\@gmail.com>, разработчиками Doom 2D: Forever.