Тактика

KF2 Controlled Difficulty: параметры и команды чата (CN)

Это перевод и пересказ китайского гайда по плагину Controlled Difficulty (CD) - инструменту, на котором работает большинство серверов «с множителем», где Killing Floor 2 сложнее, чем официальный Hell on Earth. Автор отмечает, что гайд больше не обновляется, а все значения и команды относятся к сборкам CD до версии 1064. Для более мягкого введения см. гайд для новичков по CD.

Что такое CD

«Множитель» - это любая сложность выше стандартной, и достичь её можно разными плагинами. CD просто самый популярный: он мощный и удобный. Он позволяет менять магазин, увеличивать общее число ZED, ускорять спавн и управлять составом каждой волны. Существуют две линии плагина: оригинал от blackout и более новый форк от Tiger с дополнительными удобствами.

Плагины бывают двух типов: игровые режимы (один на матч) и мутаторы (сколько угодно сразу). CD - игровой режим, поэтому с другим плагином-режимом он не сочетается.

Запуск CD

Одиночная игра: подпишитесь в мастерской, запустите KF2, откройте консоль клавишей ` или ~ и введите команду ниже. Вместо KF-Outpost можно указать любую карту из папки Maps.

open KF-Outpost?game=ControlledDifficulty.CD_Survival

Запуск матча CD из консоли

Консольная команда для одиночной игры с CD.

Выделенный сервер: скопируйте плагин в папку BrewedPC, добавьте строку перенаправления мастерской в PCServer-KFEngine (тот же базовый шаг, что и для любых плагинов и пользовательских карт), затем добавьте ?game=ControlledDifficulty.CD_Survival в параметры запуска KFServer. Параметры можно менять в конфиге или дописывать к адресу через ?, например:

open KF-Hillside-B4?game=ControlledDifficulty.CD_Survival?CohortSize=8?SpawnPoll=2.0?WaveSizeFakes=2

Настройка

Запустите сервер один раз, чтобы плагин создал настройки, затем откройте PCServer-KFGame и найдите раздел [ControlledDifficulty.CD_Survival]. Изменения требуют перезапуска, но авторизованные игроки могут менять большинство параметров на лету командами чата.

Раздел CD в конфиге

Параметры сложности находятся в этом блоке PCServer-KFGame.

Ключевое понятие - SpawnManager (менеджер спавна), аналог стандартного GameConductor. При каждом запуске он проверяет состояние карты и решает, спавнить ли ZED.

Параметры скорости спавна

  • CohortSize: максимум ZED, появляющихся за один запуск менеджера. При значении 0 спавнится вся доступная часть волны сразу; общий лимит на карте при этом сохраняется.
  • MaxMonsters: сколько ZED может быть живо одновременно. Для справки, стандартные значения Hell on Earth: 32 для полной команды, 18 для двоих и 12 в соло (обновление Halloween снизило значения для соло и дуэта на 25% и 43%).
  • SpawnMod: коэффициент задержки, замедляющий спавн после запуска менеджера. В стандартном Hell on Earth он колеблется примерно от 0,57 до 0,76 в зависимости от числа игроков и хода боя. Значение 0 снимает все ограничения.
  • SpawnPoll: интервал между запусками менеджера. В оригинале 1 секунда, минимум - 0,1.
  • ZTSpawnMode: unmodded сбрасывает таймер менеджера при каждом сбросе Zed Time; clockwork делает таймер независимым от этих сбросов.
  • ZTSpawnSlowdown: работает только в режиме clockwork. Значение 1 делает менеджер нечувствительным к Zed Time; большее значение во столько раз замедляет его восприятие времени во время Zed Time.

Типы ZED и порядок появления

  • AlbinoCrawlers, AlbinoAlphas, AlbinoGorefasts: true или false. Также определяют, появятся ли элитные версии в очереди.
  • Boss: принудительный босс. hans или volter - Hans, pat, patty или patriarch - Patriarch, random или unmodded - случайный выбор. King Fleshpound и King Bloat принудительно выбрать пока нельзя.
  • SpawnCycle: название очереди спавна (кроме волны босса). unmodded - стандартная, ini - своя.

Виртуальные игроки

  • FakesMode: add_with_humans добавляет виртуальных игроков к настоящим; ignore_humans заменяет число настоящих игроков заданным.
  • WaveSizeFakes: сколько ZED в волне (здоровье не меняется).
  • BossHPFakes, FleshpoundHPFakes, ScrakeHPFakes, TrashHPFakes: число игроков, по которому масштабируется здоровье босса, Fleshpound, Scrake и мелких и средних ZED.

В режиме ignore_humans эти пять значений фиксируют размер волны и здоровье независимо от числа игроков.

Прочее

  • TraderTime: время торговца в секундах; 0 или отрицательное значение оставляет стандарт сложности.
  • WeaponTimeout: сколько брошенное оружие лежит на земле. Отрицательное значение - стандарт игры (5 минут), max - практически навсегда.
  • ZedsTeleportCloser: могут ли ZED телепортироваться к игрокам, как в обычной игре. Застрявшие ZED всё равно могут телепортироваться.
  • bLogControlledDifficulty: писать подробности работы плагина в лог.
  • FleshpoundRageSpawns: true сохраняет стандартный шанс появления Fleshpound уже в ярости; false возвращает поведение старых версий.

Права и команды чата

DefaultAuthLevel = CDAUTH_READ означает, что настройки меняют только перечисленные игроки; CDAUTH_WRITE - любой. Авторизованные игроки указываются по 32-битному Steam ID:

AuthorizedUsers=(SteamID="STEAM_0:1:113644118",Comment="313")

Авторизованные игроки вводят команды в общий чат (не командный) в виде !cd<параметр> <значение>. Любой игрок может посмотреть настройки: !cdinfo (основные, в чате) или !cdinfo full (все, в консоли). Команда без значения показывает текущую настройку.

КомандаКороткоДействие
!cdmaxmonsters!cdmmМаксимум живых ZED
!cdcohortsize!cdcsРазмер пачки спавна
!cdspawnmod!cdsmКоэффициент задержки
!cdspawnpoll!cdspИнтервал спавна
!cdwavesizefakes!cdwsfРазмер волны в виртуальных игроках
!cdbosshpfakes, !cdfleshpoundhpfakes, !cdscrakehpfakes, !cdtrashhpfakesМасштаб здоровья по классам
!cdspawncycleСменить очередь спавна
!cdpausetrader / !cdunpausetrader!cdpt / !cduptПауза или возобновление времени торговца

Динамические параметры

Большинство числовых параметров (CohortSize, MaxMonsters, SpawnMod, SpawnPoll, WaveSizeFakes, ZTSpawnSlowdown и четыре HP fakes) могут меняться по волне и числу игроков. Поддерживаются два способа: матрица и линейная формула (автор метода - Machine).

Матричный способ в конфиге

Динамические параметры в виде матрицы.

Формула A_B*X_Y[P/W][,Zmax] равна Min(Lerp(A,B,PlayerAlpha) * Lerp(X,Y,WaveAlpha), Z). PlayerAlpha и WaveAlpha - это (текущее - 1), делённое на (максимум - 1); волна босса считается последней. Результат округляется до целого.

Пример: MaxMonsters=bilinear;16_32*1_1.5,44max даёт 16 ZED на первой волне с одним игроком и 32 с шестью, но не больше 44. Ещё пример: SpawnPoll=bilinear;1_0.75P*1.5_0.75W в соло-игре на четыре волны даёт 1,5; 1,25; 1,0 и 0,75 для волн 1-4 и 0,75 для босса.

Очереди спавна

При активной очереди CD обходит случайную очередь KF2 и спавнит ZED в предсказуемом порядке. Готовые очереди в сборке из гайда:

  • albino_heavy, basic_moderate, basic_heavy: очереди для соло (в basic_moderate меньше crawler и stalker, чем в basic_heavy)
  • dtf_v1: шесть лёгких волн, затем резкий скачок; с 8-й волны крупные ZED составляют около пятой части
  • nam_poundemonium: много Fleshpound и мини-Fleshpound
  • nam_pro_v1 - v5: сбалансированные, с каждой версией сложнее; мини-Fleshpound есть с v4
  • nam_semi_pro и nam_semi_pro_v2: для тех, кто только знакомится с CD
  • rd_sam, rd_odt, rd_kta: добавлены в v1063

Для своей очереди укажите SpawnCycle=ini и напишите по строке SpawnCycleDefs= на каждую волну. Запятые разделяют отряды, подчёркивания - ZED внутри отряда.

Своя очередь спавна в конфиге

Строки пользовательской очереди.

Коды: AL - Alpha Clot, BL - Bloat, CR - Crawler, CY - Cyst Clot, FP - Fleshpound, GF - Gorefast, HU - Husk, KFP - King Fleshpound, MFP - мини-Fleshpound, SC - Scrake, SI - Siren, SL - Slasher, ST - Stalker. Знак * даёт элитную версию, а ! после FP - Fleshpound, который появляется в ярости.

Форки (Tiger, Dark, Akathiiro313)

Форки добавляют оранжевый вывод чата, новые очереди (nam_pro_v5_plus, gso_v1, ASL_v1, mig_v1 и другие), автопаузу времени торговца и систему готовности (!cdready, !cdunready). Улучшена команда !cdwho, добавлены !cdmystats (заработанные деньги, лечение, нанесённый и полученный урон, точность, процент хэдшотов, убийства крупных ZED), !cdallhpfakes, !cdquarterpoundhpfakes, !cdwaveendsummaries и выбор способа подсчёта хэдшотов. Сборка Akathiiro313 добавляет переключатели элитных Gorefast, Alpha, Crawler и роботизированных Stalker и Husk. Если один игрок отключился, пока остальные готовы, отсчёт времени торговца сам не начнётся.

Благодарности в оригинале: Machine за линейную формулу и объяснение ZT slowdown, Kore за ответы про spawn volumes и альбиносов, Tiger за разъяснения по !cdwho.

Вопросы и ответы

Что такое Controlled Difficulty?
Плагин игрового режима из мастерской, который заменяет стандартную логику спавна: можно увеличить число ZED, их здоровье и скорость спавна, а также задать порядок появления в каждой волне.
Как запустить одиночную игру с CD?
Откройте консоль и введите open KF-Outpost?game=ControlledDifficulty.CD_Survival, подставив любое название карты вместо KF-Outpost.
Можно ли сочетать CD с другими плагинами режима?
Нет. CD относится к игровым режимам, а в матче работает только один режим. Мутаторы можно комбинировать, режимы нельзя.