RE:NODE

Руководства11 мин чтения

Серверы retakes и deathmatch в CS2

Как запустить сервер retakes или deathmatch в CS2: плагины retakes и allocator, спавны для каждой карты, cvars deathmatch, free-for-all, режим только в голову и ресурсы.

0 прочтений

Серверу retakes в Counter-Strike 2 нужен плагин - встроенного режима retakes в CS2 нет, - и большинство серверов используют cs2-retakes на CounterStrikeSharp, обычно в паре с weapon allocator, чтобы игроки получали разумную экипировку без закупки. Сервер deathmatch может быть стандартным: +game_alias deathmatch даёт deathmatch от Valve с возрождениями и бонусным оружием, а несколько cvars mp_ превращают его в free-for-all или в сервер для долгой разминки. Плагины нужны, когда хочется того, чего стандартный DM не умеет, - режим только в голову, ограничения оружия, собственные точки спавна. Оба режима - самый нагруженный в пересчёте на игрока вид сервера CS2, потому что кто-то постоянно возрождается, умирает или что-то бросает, так что берите для них ресурсов на ступень больше, чем для casual-сервера с тем же числом слотов.

Что представляет собой каждый режим и чего он стоит#

Retakes моделирует конец раунда. Каждый раунд начинается с уже заложенной на одной из точек бомбы, несколькими террористами, которые её защищают, и чуть большей командой спецназа, которая заходит отбивать точку. Раунды длятся меньше минуты, никто не закупается, и вы играете тридцать раундов самой важной ситуации соревновательного Counter-Strike за то время, за которое в матче проходит десять. Это самый популярный формат тренировки после deathmatch, и такие серверы хорошо заполняются, потому что очередь движется быстро.

Deathmatch - это разминка в виде сервера: мгновенное возрождение, все дерутся со всеми, очки за убийства. Режим от Valve по умолчанию командный и с бонусным оружием; сообщества запускают поверх него варианты free-for-all, только винтовки, только пистолеты и только в голову.

СерверОбычно слотовRAMCPUПочему
Retakes, 9-10 игроков101,5-2 ГБ1,5 ядраКороткие раунды, мало сущностей
Retakes с allocator и статистикой10-122 ГБ1,5-2 ядраЗапись в базу данных каждый раунд
Deathmatch, 12-16162 ГБ1,5-2 ядраПостоянные возрождения и проверки спавна
Deathmatch, 20-24242-3 ГБ2 ядраОсновная нагрузка - поток возрождений
Любой из них, сервер сообщества с кучей плагиновлюбое3-4 ГБ2-3 ядраПолностью зависит от плагинов

Серверы CS2 упираются в тактовую частоту CPU задолго до памяти, а оба этих режима держат основной поток занятым - особенно deathmatch, где выбор случайного спавна при каждом возрождении проверяет линии видимости. Базовая установка и токен описаны в статье установка сервера CS2, а почему больший объём памяти не лечит загруженный CPU, объясняет статья CPU или RAM для игровых серверов.

Общий для обоих режимов слой плагинов#

Всё, что выходит за рамки стандартного deathmatch, работает на Metamod:Source с CounterStrikeSharp поверх. SourceMod в CS2 не запускается, поэтому плагины retakes и deathmatch из CS:GO - retakes от splewis, старые DM-плагины - не вариант; всё переписано на C#.

code
game/csgo/addons/  metamod/                     the loader  counterstrikesharp/    plugins/      RetakesPlugin/           one folder per plugin      RetakesAllocator/    configs/      plugins/                 per-plugin config files      admins.json              CounterStrikeSharp admins

Каждый плагин распаковывается в собственную папку внутри plugins/, при первом запуске создаёт файл конфигурации и перезагружается командой css_plugins reload <name> или сменой карты. Полная установка, включая строку в gameinfo.gi, которую откатывает каждое обновление CS2, описана в статье Metamod и CounterStrikeSharp в CS2. Сделайте это сначала и убедитесь, что meta list и css_plugins list показывают ожидаемое, прежде чем добавлять режим поверх.

Настройка сервера retakes#

Плагин retakes

cs2-retakes отвечает за логику раунда: выбирает точку, расставляет игроков по позициям вокруг неё, отдаёт бомбу террористу и закладывает её в начале раунда, балансирует команды по очкам и ставит игроков сверх лимита в очередь как зрителей. Какое оружие получают игроки, он не решает - это работа allocator или, в зависимости от версии, простого встроенного запасного варианта.

Что ему нужно для работы:

  1. Спавны для каждой карты. Спавны retakes - это не обычные точки появления на карте, а позиции вокруг каждой точки закладки, которые хранятся для каждой карты в файлах конфигурации плагина. Плагин поставляется с файлами спавнов для популярных соревновательных карт. Для всего остального - новой карты Valve, карты из Workshop - админу нужно создать спавны в игре командами редактирования плагина: дойти до каждой позиции и добавить спавн CT или T для точки A или B, плюс спавны закладчика для террористов.
  2. Карта defuse. Для retakes нужны точки закладки. Загружайте карты обычным способом; о картах из Workshop рассказано в статье карты и коллекции Workshop в CS2.
  3. Собственные правила раундов. Плагин выставляет нужные ему cvars и ожидает, что раундами управляет только он. Не запускайте его вместе с плагином матчей и уберите из файла переопределений режима значения mp_, которые с ним конфликтуют, - особенно время раунда и freeze time.

Команды и ключи конфигурации меняются от релиза к релизу плагина, поэтому читайте README для установленной версии. Сама схема стабильна: файл конфигурации в configs/plugins/, режим редактирования спавнов и сообщения в консоли с именем файла спавнов каждой карты при её загрузке.

Добавление спавнов для новой карты

Расстановка спавнов - единственная работа в retakes, которую нельзя пропустить или автоматизировать, и именно небрежные спавны делают сервер любительским. Порядок, который работает:

  1. Загрузите карту на пустом сервере, где подключены только вы, и включите режим редактирования спавнов плагина.
  2. Для каждой точки добавьте спавны террористов там, где держал бы позицию настоящий защитник, - за укрытием, на точке, на типичных позициях после закладки, - и хотя бы один спавн закладчика на самой точке.
  3. Добавьте спавны спецназа у входов, откуда шёл бы настоящий retake, и распределите их хотя бы по двум входам, чтобы каждый раунд не превращался в стак через одну дверь.
  4. Стремитесь к тому, чтобы спавнов на каждой стороне было больше, чем игроков, - тогда одни и те же позиции не будут повторяться каждый раунд.
  5. Сохраните, смените карту и вернитесь, затем сыграйте несколько раундов с другом на каждой стороне, прежде чем открывать карту для публики.

Самая частая ошибка - спавны спецназа в прямой видимости спавна защитника. Раунд начинается с бесплатного убийства, и игроки уходят. Пройдите каждую пару спавнов и проверьте линии видимости, прежде чем считать карту готовой.

Размер команд и очередь

В retakes у отбивающей стороны небольшое численное преимущество, потому что у защитников уже заложена бомба и есть позиция. Классическая расстановка - четыре террориста против пяти спецназовцев при десяти слотах, с уменьшением при меньшем числе игроков. Плагин рассчитывает это по числу активных игроков и соотношению в своём конфиге.

Игроки сверх максимума ждут в очереди и по очереди заходят в игру. На загруженном сервере именно очередь делает игру честной - никто долго не сидит без дела, - а значение в -maxplayers должно быть на несколько больше активного максимума, чтобы у игроков в очереди был слот.

Weapon allocator

Allocator выдаёт каждому игроку экипировку в начале раунда в зависимости от типа раунда и его собственных предпочтений. Обычный выбор - cs2-retakes-allocator: он выбирает тип раунда - пистолетный, полузакуп или полная закупка, по процентам - и даёт игрокам выбрать любимое оружие для каждого типа раунда командой в чате или через меню. Предпочтения хранятся в базе данных, по умолчанию в локальном файле SQLite; для сети серверов поддерживаются MySQL-совместимые базы данных.

Настройки, на которые стоит посмотреть в его конфиге:

  • Проценты типов раундов. По умолчанию перевес в сторону раундов с полной закупкой. Увеличьте долю пистолетных раундов, если игрокам хочется разнообразия.
  • Правила для AWP. Сколько AWP на команду за раунд и должны ли игроки сами на это соглашаться. Одна эта настройка решает, ощущается ли сервер тренировкой или AWP-лотереей.
  • Гранаты. Какие гранаты получает каждая сторона. Retakes с полным набором гранат - это другая игра, чем retakes с одной флешкой на каждого; выбирайте осознанно.
  • База данных. Для одного сервера стандартного SQLite достаточно. Если серверов несколько, направьте их на одну базу данных; каждый игровой тариф на RE:NODE включает слот базы данных, хост, пользователь и пароль которого генерируются в панели, - сначала убедитесь, что allocator поддерживает этот движок.
активные игрокистарт раундаоружие выданопобедитель, балансОчередьждущие зрителиAllocatorэкипировка по типуБаза данныхпредпочтения игроковЖивой раундменьше минутыcs2-retakesточка, спавны, закладка
Раунд retakes от начала до конца

Настройка сервера deathmatch#

Стандартный deathmatch - это один аргумент запуска:

bash
$ ./game/bin/linuxsteamrt64/cs2 -dedicated -maxplayers 16 \    +game_alias deathmatch +sv_setsteamaccount <token> +map de_mirage

Это даёт deathmatch от Valve: карты по десять минут, командный счёт, мгновенное возрождение, бесплатное оружие из меню закупки и периодическое бонусное оружие, за которое дают больше очков. Правила идут в game/csgo/cfg/gamemode_deathmatch_server.cfg, который вы создаёте сами, потому что gamemode_deathmatch.cfg от Valve выполняется после server.cfg и при каждой загрузке карты возвращает cvars раундов. Порядок объясняет статья команды и cvars сервера CS2.

game/csgo/cfg/gamemode_deathmatch_server.cfg
mp_timelimit 15mp_teammates_are_enemies 1mp_randomspawn 1mp_randomspawn_los 1mp_respawn_immunitytime 2mp_dm_bonus_length_max 0mp_dm_bonus_length_min 0mp_dm_time_between_bonus_max 9999mp_dm_time_between_bonus_min 9999mp_death_drop_gun 0mp_buy_anywhere 1mp_buytime 9999
CvarЧто меняет
mp_teammates_are_enemies1 включает free-for-all: все могут наносить урон всем
mp_randomspawn1 - игроки появляются в случайных точках; 0 - на командных спавнах
mp_randomspawn_los1 - не появляться в поле зрения врага, если карта позволяет
mp_respawn_immunitytimeСекунды защиты после появления
mp_dm_bonus_length_*Длительность окна бонусного оружия
mp_dm_time_between_bonus_*Промежуток между бонусными окнами; большие значения фактически его отключают
mp_death_drop_gunВыбрасывают ли погибшие игроки оружие
mp_timelimitМинут на карту

Большинство DM-серверов сообщества отключают бонусное оружие - оно награждает за то, что вы подобрали ствол, который не выбирали, а это противоположность тренировке, - и включают free-for-all, потому что командный deathmatch с защитой после появления в основном сводится к стрельбе не по тем людям. Значения по умолчанию менялись между сборками, поэтому проверяйте любой важный для вас cvar, введя его имя в консоли.

Плагины deathmatch

Стандартный DM не умеет режим только в голову, нормальные ограничения оружия, фиксированную экипировку для каждого игрока и собственные точки спавна. Плагин deathmatch умеет. Широко используется CS2 Deathmatch для CounterStrikeSharp: он поддерживает несколько режимов, сменяющихся по таймеру (например, винтовки, затем пистолеты, затем только в голову), ограничения оружия для каждого режима, редактор спавнов и собственную логику возрождения. Установленный плагин берёт на себя правила deathmatch от Valve, а в его документации указано, какой game_alias он ожидает, - обычно deathmatch или custom. Плагин DM поверх конфликтующих cvars в файле переопределений даёт странные результаты, поэтому сократите gamemode_deathmatch_server.cfg до самого необходимого и настраивайте режимы в плагине.

Карты для каждого режима#

Для retakes нужны полноценные defuse-карты с хорошими спавнами, и большинство серверов retakes остаются на стандартном соревновательном пуле. Valve добавляет карты в активный пул и убирает их оттуда, а файлы спавнов retakes следуют за популярными картами, так что у недавно добавленной Valve карты спавнов может не быть, пока их кто-нибудь не напишет.

Deathmatch работает почти на чём угодно, но лучше всего играется на картах с множеством открытых линий и достаточным числом точек спавна: обычная ротация - Mirage, Dust II и Inferno. Маленькие aim-карты с правилами deathmatch дают хороший сервер для разминки. Избегайте больших карт с длинными ротациями; случайные спавны на большой карте означают, что половину времени вы просто идёте.

Для любого режима используйте голосование в конце карты или плагин карт с коротким фиксированным списком. Игроки на тренировочном сервере хотят карты, на которых играют в матчмейкинге, а не разнообразия.

Администрирование, нарушители и честная игра#

Тренировочные серверы притягивают две проблемы: тех, кто кемпит спавны в DM, и тех, кто отказывается играть раунд в retakes. Часть этого решают плагины - защита после появления, кик за AFK, баланс команд по очкам, - остальное решает админ-плагин. Варианты админ-плагинов перечислены в статье плагины для CS2; держите список админов коротким и давайте модераторам только кик и мут.

Две серверные настройки помогают без всяких плагинов:

game/csgo/cfg/server.cfg
mp_autokick 1          // kick for team damage and team killssv_kick_ban_duration 15 // minutes a kicked player is banned for

В retakes урон по своим реален, и раздражённый игрок может испортить раунды; mp_autokick справляется с худшими случаями. В DM формата free-for-all правила урона по своим не применяются, потому что все друг другу враги.

Доступ к панели отделён от админки в игре. На RE:NODE субпользователям можно дать доступ к консоли без файлов и биллинга - это правильный уровень для того, кто перезапускает сервер, когда плагин зависает. Как разделить доступ, описано в статье субпользователи и минимальные привилегии.

Решение проблем#

Раунды retakes играются как обычные соревновательные. Плагин не загрузился. Выполните css_plugins list; если его там нет, найдите ошибку в логе CounterStrikeSharp - обычно это несовпадение версий после обновления CS2.

На одной карте игроки появляются не там или внутри стен. Файл спавнов этой карты отсутствует или был написан для старой версии карты. Создайте спавны заново командами редактирования.

В retakes никто не получает оружие. Allocator не установлен или не смог подключиться к своей базе данных. Проверьте его строку в логе при старте.

Настройки deathmatch сбрасываются на каждой карте. Они лежат в server.cfg. Перенесите значения mp_ в gamemode_deathmatch_server.cfg.

В DM игроки появляются прямо друг перед другом. Слишком мало точек спавна для такого числа игроков, или случайные спавны выключены. Включите mp_randomspawn_los, уменьшите число слотов или используйте плагин с собственными спавнами.

Сервер подтормаживает, когда заполняется. Сравните график CPU с лимитом тарифа. Если он упирается в потолок, сервер троттлится; уменьшите число слотов или плагинов либо перейдите на тариф выше. На RE:NODE сервер на 100% CPU работает медленно, но не приостанавливается, а смена тарифа не пересобирает сервер. Общая диагностика описана в статье как читать график нагрузки сервера.

FAQ#

Есть ли в CS2 встроенный режим retakes?

Нет. Retakes на серверах сообщества CS2 - это всегда плагин, почти всегда cs2-retakes на CounterStrikeSharp, с отдельным weapon allocator. Встроенные режимы Valve - casual, competitive, wingman, deathmatch, arms race и demolition.

Как сделать сервер deathmatch формата free-for-all?

Запустите +game_alias deathmatch и пропишите mp_teammates_are_enemies 1 в gamemode_deathmatch_server.cfg. Включите mp_randomspawn 1, чтобы игроки не появлялись командными кучками.

Можно ли сделать deathmatch только в голову без плагина?

Надёжно - нет. В стандартном CS2 нет поддерживаемого cvar режима только в голову для публичных серверов. Чистый способ - плагин deathmatch с режимом только в голову, который к тому же может чередовать его с другими режимами по таймеру.

Сколько игроков должно быть на сервере retakes?

Классический размер - девять-десять активных игроков, четыре-пять защитников против пяти отбивающих. Больше - и на точке становится тесно; меньше тоже работает, и плагин уменьшает команды.

Работают ли плагины retakes на картах из Workshop?

Да, если для карты есть спавны. Плагин поставляется со спавнами для популярных соревновательных карт; для карты из Workshop админ создаёт их в игре командами редактирования плагина, на это уходит десять-двадцать минут на карту.


Комментарии

Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.

0/2000