Squad map: различия между версиями

Материал из Википедия XLGAMES.PRO
Перейти к навигации Перейти к поиску
(Новая страница: «\= Настройка голосования карт/режимов в '''Squad''' (UseVoteLayer & LayerList\_Vote) = <!-- Руководство оформле...»)
 
Строка 1: Строка 1:
\= Настройка голосования карт/режимов в '''Squad''' (UseVoteLayer & LayerList\_Vote) =
+
= Squad — настройка голосования за карту и режим (LayerList_Vote) =
  
<!-- Руководство оформлено в вики‑разметке. Скопируйте‑вставьте всё содержимое на свою страницу MediaWiki. -->
+
Этот гайд показывает, какие файлы и параметры нужно изменить, чтобы:
  
\== Быстрый чек‑лист ==
+
* Включить голосование после каждого матча. 
 
+
* Сформировать пул карт/слоёв, из которых движок будет собирать список.
# В ''Server.cfg'' включён механизм: <code>MapRotationMode=LayerList\_Vote</code> **или** <code>UseVoteLayer=true</code>.
+
* Ограничить долю Invasion, Seed и т.п.
 
+
* Избежать повторов одинаковых карт.
# В каждом из конфигов ''LayerVoting\*.cfg'' оставлены только нужные слои (лишний *Invasion* удалён).
 
 
 
# В ''VoteConfig.cfg'' настроены: <code>LayerOptionsNumber</code>, <code>GameModeChoices</code>, <code>GameModeSkipRounds</code>, <code>UniqueMap</code> и др.
 
 
 
# После правок сервер перезапущен — параметры подхватываются только на старте карты.
 
 
 
\== 1. Включаем систему голосования ==
 
\=== 1.1 «Старый» флаг === <syntaxhighlight lang="ini">
 
UseVoteLayer=true        ; позволяет игрокам голосовать за слой в конце матча </syntaxhighlight>
 
 
 
\=== 1.2 Современный способ (рекомендуется с версии 7.2+) === <syntaxhighlight lang="ini">
 
MapRotationMode=LayerList\_Vote  ; сервер формирует список и запускает голосование автоматически </syntaxhighlight>
 
  
 +
== 0. Где «крутить рычаги» ==
 
{| class="wikitable"
 
{| class="wikitable"
 +
! Цель !! Файл !! Ключевые параметры
 +
|-
 +
| Включить само голосование || <code>Server.cfg</code> || '''UseVoteLayer''' = true<br/>'''MapRotationMode''' = LayerList_Vote – современный и предпочтительный метод
 +
|-
 +
| Задать список слоёв || <code>LayerVoting.cfg</code><br/><code>LayerVotingLowPlayers.cfg</code><br/><code>LayerVotingNight.cfg</code> || по одной строке = один слой (например <code>AlBasrah_RAAS_v1</code>)
 +
|-
 +
| Балансировать режимы в списке || <code>VoteConfig.cfg</code> || '''GameModeChoices''', '''GameModeSkipRounds''', '''UniqueMap'''
 +
|-
 +
| Жёстко исключить слои || <code>ExcludedLayers.cfg</code> || любая строка – слой, который никогда не попадёт в голосование
 +
|}
  
| ! Что хотим добиться !! Где настраивается !! Ключевые параметры |  |                                                                                                        |  |                                                                              |
+
== 1. Включаем систему голосования ==
| --------------------------------------------------------------- | - | ------------------------------------------------------------------------------------------------------- | - | ----------------------------------------------------------------------------- |
+
; «Старый» флаг
| Включить голосование                                            |  | <code>Server.cfg</code>                                                                                |  | <code>UseVoteLayer=true</code> / <code>MapRotationMode=LayerList\_Vote</code> |
+
<syntaxhighlight lang="ini">
| -                                                              |  |                                                                                                        |  |                                                                              |
+
UseVoteLayer=true      ; позволяет игрокам голосовать за слой
| Сформировать пул карт для выборки                              |  | <code>LayerVoting.cfg</code>, <code>LayerVotingLowPlayers.cfg</code>, <code>LayerVotingNight.cfg</code> |  | по одной строке — один слой                                                  |
+
</syntaxhighlight>
| -                                                              |  |                                                                                                        |  |                                                                              |
 
| Ограничить, сколько вариантов каждого режима попадёт в список  |  | <code>VoteConfig.cfg</code>                                                                            |  | <code>GameModeChoices</code>                                                  |
 
| -                                                              |  |                                                                                                        |  |                                                                              |
 
| Задержать повторное появление режима                            |  | <code>VoteConfig.cfg</code>                                                                            |  | <code>GameModeSkipRounds</code>                                              |
 
| -                                                              |  |                                                                                                        |  |                                                                              |
 
| Исключить повтор одной карты                                    |  | <code>VoteConfig.cfg</code>                                                                            |  | <code>UniqueMap=true</code>                                                  |
 
| }                                                              |  |                                                                                                        |  |                                                                              |
 
 
 
\== 2. Формируем пул слоёв ==
 
 
 
* Основной список — '''LayerVoting.cfg'''.
 
* Для малых онлайнов — '''LayerVotingLowPlayers.cfg''' (активируется, если в конце раунда игроков <code>LowPlayerCountThreshold</code>).
 
* Ночной список — '''LayerVotingNight.cfg''' (включается по времени из <code>VoteConfig.cfg → NightTime</code>).
 
 
 
Каждая строка = один слой. Пример: <syntaxhighlight lang="ini">
 
AlBasrah\_RAAS\_v1
 
AlBasrah\_AAS\_v1
 
AlBasrah\_Invasion\_v2  ; если не нужен Invasion — удалите строку </syntaxhighlight>
 
 
 
'''Жёсткий бан''' — любой слой, записанный в ''ExcludedLayers.cfg'', никогда не появится в голосовании.
 
 
 
\== 3. Балансируем режимы в списке голосования ==
 
 
 
\=== 3.1 Лимит количества вариантов режима — <code>GameModeChoices</code> === <syntaxhighlight lang="ini">
 
LayerOptionsNumber=6        ; всего кнопок на экране
 
 
 
; формат:  <режим> <макс.кол-во>
 
GameModeChoices=AAS 2, RAAS 2, Invasion 1, TerritoryControl 1, Seed 0, Skirmish 0 </syntaxhighlight>
 
 
 
* Если сумма лимитов = <code>LayerOptionsNumber</code>, распределение будет точным.
 
* Если превышает — движок берёт режимы по порядку до заполнения.
 
* Например, <code>Invasion 1</code> + AAS/RAAS по 2 гарантирует максимум один Invasion в списке.
 
 
 
\=== 3.2 «КД» режима — <code>GameModeSkipRounds</code> === <syntaxhighlight lang="ini">
 
GameModeSkipRounds=AAS 0, RAAS 0, Invasion 3, TerritoryControl 1, Seed 0 </syntaxhighlight> <code>Invasion 3</code> — режим не будет предлагаться, пока не пройдут три матча после последнего Invasion.
 
 
 
\== 4. Дополнительные мелочи ==
 
{| class="wikitable"
 
 
 
| ! Параметр !! Что делает                                  |  |                                                                          |
 
| --------------------------------------------------------- | - | ------------------------------------------------------------------------ |
 
| <code>MapSkipRounds</code> / <code>LayerSkipRounds</code> |  | Исключает только что сыгранную карту/слой до следующего голосования      |
 
| -                                                        |  |                                                                          |
 
| <code>UniqueMap=true</code>                              |  | Гарантирует уникальность карты (режимы могут отличаться)                |
 
| -                                                        |  |                                                                          |
 
| <code>LayerOptionsNumber</code>                          |  | Оптимально 4–6 вариантов: меньше — мало выбора, больше — игроки теряются |
 
| }                                                        |  |                                                                          |
 
 
 
\== 5. Мини‑пример фрагмента ''VoteConfig.cfg'' == <syntaxhighlight lang="ini">
 
; ===== Что показываем =====
 
LayerOptionsNumber=6
 
GameModeChoices=AAS 2, RAAS 2, Invasion 1, TerritoryControl 1
 
UniqueMap=true
 
  
; ===== Анти‑повторы =====
+
; Рекомендуемый способ (с версии Squad 7.2) — LayerList_Vote
MapSkipRounds=1
+
<syntaxhighlight lang="ini">
LayerSkipRounds=1
+
MapRotationMode=LayerList_Vote  ; сервер после каждого матча формирует список и запускает голосование
GameModeSkipRounds=AAS 0, RAAS 0, Invasion 3, TerritoryControl 1
+
</syntaxhighlight>
 +
<small>При этом <code>UseVoteLayer</code> можно оставить <code>false</code> — сам режим LayerList_Vote уже включает механику голосования.</small>
  
; ===== Голосование =====
+
[[File:server_cfg_vote.png|none|600px|Включаем LayerList_Vote]]
LayerVoteDuration=60        ; время, секунды
 
TeamVote\_Duration=45        ; время выбора стороны
 
DisplayVotes=true            ; показывать счётчик голосов </syntaxhighlight>
 
  
\== 6. Проверочный чек‑лист перед перезапуском сервера ==
+
== 2. Формируем пул слоёв ==
 +
* '''LayerVoting.cfg''' — основной список (полный онлайн). 
 +
* '''LayerVotingLowPlayers.cfg''' — когда онлайн ниже, чем <code>LowPlayerCountThreshold</code>. 
 +
* '''LayerVotingNight.cfg''' — активируется по времени (см. <code>VoteConfig.cfg → NightTime</code>).
  
# Проверяем наличие <code>MapRotationMode=LayerList\_Vote</code> или <code>UseVoteLayer=true</code> в ''Server.cfg''.
+
Каждая строка — ID слоя:
  
# Осматриваем ''LayerVoting\*.cfg'' лишние *Invasion*‑слои удалены.
+
<syntaxhighlight lang="text">
 +
AlBasrah_RAAS_v1
 +
AlBasrah_AAS_v1
 +
AlBasrah_Invasion_v2  ; не хотите Invasion просто не добавляйте здесь
 +
</syntaxhighlight>
  
# Убедились, что <code>GameModeChoices</code> + <code>GameModeSkipRounds</code> соответствуют желаемому распределению.
+
Любой слой, попавший в <code>ExcludedLayers.cfg</code>, никогда не окажется в списке.
  
# Перезапускаем сервер, чтобы конфиг вступил в силу.
+
== 3. Балансируем режимы ==
 +
=== 3.1 Лимит карточек режима — <code>GameModeChoices</code> ===
 +
<syntaxhighlight lang="ini">
 +
LayerOptionsNumber=6        ; вариантов на экране
  
---
+
; <режим> <максимум>
 +
GameModeChoices=AAS 2, RAAS 2, Invasion 1, TerritoryControl 1, Seed 0, Skirmish 0
 +
</syntaxhighlight>
 +
*Если сумма лимитов = <code>LayerOptionsNumber</code>, вы точно контролируете распределение.*
  
''Материал подготовлен {{CURRENTYEAR}}‑{{CURRENTMONTH}}‑{{CURRENTDAY2}}. Руководство актуально для версии Squad 7.2+.''
+
=== 3.2 «КД» режима — <code>GameModeSkipRounds</code> ===
 +
<syntaxhighlight l

Версия 04:19, 26 мая 2025

Squad — настройка голосования за карту и режим (LayerList_Vote)

Этот гайд показывает, какие файлы и параметры нужно изменить, чтобы:

  • Включить голосование после каждого матча.
  • Сформировать пул карт/слоёв, из которых движок будет собирать список.
  • Ограничить долю Invasion, Seed и т.п.
  • Избежать повторов одинаковых карт.

0. Где «крутить рычаги»

Цель Файл Ключевые параметры
Включить само голосование Server.cfg UseVoteLayer = true
MapRotationMode = LayerList_Vote – современный и предпочтительный метод
Задать список слоёв LayerVoting.cfg
LayerVotingLowPlayers.cfg
LayerVotingNight.cfg
по одной строке = один слой (например AlBasrah_RAAS_v1)
Балансировать режимы в списке VoteConfig.cfg GameModeChoices, GameModeSkipRounds, UniqueMap
Жёстко исключить слои ExcludedLayers.cfg любая строка – слой, который никогда не попадёт в голосование

1. Включаем систему голосования

«Старый» флаг
UseVoteLayer=true      ; позволяет игрокам голосовать за слой
Рекомендуемый способ (с версии Squad 7.2) — LayerList_Vote
MapRotationMode=LayerList_Vote   ; сервер после каждого матча формирует список и запускает голосование

При этом UseVoteLayer можно оставить false — сам режим LayerList_Vote уже включает механику голосования.

Включаем LayerList_Vote

2. Формируем пул слоёв

  • LayerVoting.cfg — основной список (полный онлайн).
  • LayerVotingLowPlayers.cfg — когда онлайн ниже, чем LowPlayerCountThreshold.
  • LayerVotingNight.cfg — активируется по времени (см. VoteConfig.cfg → NightTime).

Каждая строка — ID слоя:

AlBasrah_RAAS_v1
AlBasrah_AAS_v1
AlBasrah_Invasion_v2  ; не хотите Invasion — просто не добавляйте здесь

Любой слой, попавший в ExcludedLayers.cfg, никогда не окажется в списке.

3. Балансируем режимы

3.1 Лимит карточек режима — GameModeChoices

LayerOptionsNumber=6        ; вариантов на экране

; <режим> <максимум>
GameModeChoices=AAS 2, RAAS 2, Invasion 1, TerritoryControl 1, Seed 0, Skirmish 0
  • Если сумма лимитов = LayerOptionsNumber, вы точно контролируете распределение.*

3.2 «КД» режима — GameModeSkipRounds

<syntaxhighlight l