Разработчик
Проверенный
Участник
Пользователь
- Сообщения
- 207
- Реакции
- 420
- Помог
- 10 раз(а)
Запуск несколько инстансов разных серверов из одной папки
Движок Source, и аддоны MetaMod/SourceMod имеют функционал, позволяющий работать нескольким сборкам серверов со своими конфигами, плагинами и т.д. - из одной папки. Это позволяет сэкономить место на диске сервера (если его не так уж и много), и запустить, скажем, 10 серверов CS:GO с своими плагинами, конфигами, картами, заняв всего лишь 30ГБ места.В этой небольшой статье разберём, как именно это сделать.
Для реализации подобного запуска применяются параметры запуска сервера. Сам движок позволяет нам поменять список карт (mapcycle.txt), стандартный конфиг (server.cfg). Этого вполне достаточно для запуска нескольких голых серверов.
- mapcyclefile - имя файла с списком карт для ротации. По-умолчанию, mapcycle.txt
- servercfgfile - имя файла с основным конфигом сервера. По-умолчанию, server.cfg
- mm_pluginsfile - путь к файлу metaplugins.ini. По-умолчанию, addons/metamod/metaplugins.ini
- mm_basedir - путь к корневой папке MM:S, в которой MM должен искать VDF-файлы плагинов для загрузки. По-умолчанию, addons/metamod
У SourceMod тоже есть аналогичная переменная, которая тоже требует изменений. И не только она.
Допустим, файлы плагинов MetaMod для сервера #1 будет лежать в
addons/metamod_ash
, а для сервера #2 - в addons/metamod_allmaps
. В таком случае, в каждой папке должен лежать хотя бы подобного плана metaplugins.ini
:
Код:
;If your plugin came with a .vdf file, you do not need to use this file.
;
;List one plugin per line. Each line should contain the path to the plugin's binary.
;Any line starting with a ';' character is a comment line, and is ignored.
;
;You do not need to include the _i486.so or .dll part of the file name. Example:
; addons/sourcemod/bin/sourcemod_mm
;You may also put an alias in front of the file, for example:
; sm addons/sourcemod/bin/sourcemod_mm
;Will allow you to use "meta load sm" from the console.
;
;********* LIST PLUGINS BELOW ***********
И файл для SourceMod-плагина. Он должен выглядеть так:
Код:
"Metamod Plugin"
{
"alias" "sourcemod"
"file" "addons/sourcemod_ash/bin/sourcemod_mm"
}
cstrike
, csgo
, tf
и т.д.).Получаем следующее по итогу на примере двух серверов.
- В папке addons должно лежать 5 папок:
-
metamod
, в котором должны лежать бинарники MetaMod: Source. -
metamod_ash
, в которой должен лежатьmetaplugins.ini
иsourcemod.vdf
-
metamod_allmaps
, в которой должен лежатьmetaplugins.ini
иsourcemod.vdf
-
sourcemod_ash
, в которой должен лежать весь SourceMod с нужными плагинами, конфигами и т.д.. -
sourcemod_allmaps
, в которой должен лежать весь SourceMod с нужными плагинами, конфигами и т.д..
-
- В параметрах запуска для каждых серверов должно быть прописано что-то вроде следующего:
- Для сервера #1:
srcds_run -game tf -console +maxplayers 32 +map vsh_crevice_b5 +mm_basedir "addons/metamod_ash" +mm_pluginsfile "addons/metamod_ash/metaplugins.ini" +sm_basepath "addons/sourcemod_ash" +servercfgfile ashserver.cfg +mapcyclefile ashmaps.txt
- Для сервера #2:
srcds_run -game tf -console +maxplayers 32 +map cp_dustbowl +mm_basedir "addons/metamod_allmaps" +mm_pluginsfile "addons/metamod_allmaps/metaplugins.ini" +sm_basepath "addons/sourcemod_allmaps" +servercfgfile allmapsserver.cfg +mapcyclefile allmapscycle.txt
- Для сервера #1:
- В
addons/metamod_ash/sourcemod.vdf
должно быть прописано следующее:
Код:"Metamod Plugin" { "alias" "sourcemod" "file" "addons/sourcemod_ash/bin/sourcemod_mm" }
- В
addons/metamod_allmaps/sourcemod.vdf
должно быть прописано следующее:
Код:"Metamod Plugin" { "alias" "sourcemod" "file" "addons/sourcemod_allmaps/bin/sourcemod_mm" }
Вот, в принципе, и вся базовая настройка. Дальше сервер будет загружать разные папки плагинов, конфигов, мапцикла и прочего. По мере необходимости, можно отредактировать или добавить загрузку иных конфигов.
Ещё можно сэкономить место на симлинках на дубликаты файлов, но это уже тема отдельной статьи...
Последнее редактирование: