Перейти к содержанию

Завершение игры на сайте

Игрок игры завершает на сайте идущую игру: выбирает победителя, тип победы и количество ходов, а результат и рейтинги получаются такие же, как после /игра завершить (/game finish).

На этой странице: Кто видит кнопку, Диалог завершения игры, Подсказка из сейва, Игроки без нации, Результат, Что может пойти не так

Участники

Это действует на сервере, с которым работает сайт CivBot.

  • Игрок игры — владелец места в игре: открывает диалог на странице игры, проверяет поля и подтверждает завершение.
  • Модератор без места в игре — на сайте игру только просматривает; завершает её в Discord командой /игра завершить. Подробнее — Завершение игры.
  • Гость — игру на сайте не видит: и список игр, и страница игры просят войти через Discord.
  • Сайт — показывает диалог, подставляет предложение из сейва и записывает результат.
  • Бот — перерисовывает карточку игры в треде и список последних игр.

Шаги

sequenceDiagram
    participant G as Игрок
    participant S as Сайт
    participant B as Бот
    G->>S: нажимает «Завершить игру»
    S-->>G: показывает диалог «Завершить игру?» с предложением из сейва
    G->>S: выбирает победителя, победу и ходы
    G->>S: нажимает «Завершить игру» в диалоге
    S-->>G: закрывает диалог и показывает завершённую игру
    S->>B: сообщает о результате
    B-->>G: обновляет карточку игры в треде и список последних игр
  1. Откройте страницу игры. Войдите на сайт через Discord, откройте свою игру в состоянии «В процессе» и нажмите «Завершить игру». Кнопка стоит в шапке игры; когда к игре прикреплён сейв, такая же кнопка есть и в баннере закрытия игры. Обе открывают один и тот же диалог.
  2. Проверьте поля. В диалоге «Завершить игру?» три поля: «Победитель», «Победа» и «Ходы». Прикреплённый сейв может подставить значения, но решаете вы.
  3. Выберите нацию тем, у кого её ещё нет. Пока у кого-то из игроков нет нации, кнопка подтверждения выключена. Нацию можно выбрать тут же, в диалоге.
  4. Подтвердите. Нажмите «Завершить игру» внизу диалога. Отдельного второго подтверждения нет: после нажатия игра завершена, и результат уже не изменить.
  5. Дождитесь обновления в Discord. Страница игры обновляется сразу, а бот перерисовывает карточку игры в треде и список последних игр в течение нескольких секунд (до 15 с).

Кто видит кнопку

Кнопку «Завершить игру» видит только игрок этой игры, и только пока у игры состояние «В процессе». Для всех остальных на странице игры кнопки нет.

Модератор без места в игре

Сайт не знает ролей Discord, поэтому модератор, который не играет в этой игре, кнопки не видит. Он завершает игру в Discord командой /игра завершить: там модератор может завершить любую игру сервера. Подробнее — Завершение игры.

Кнопки нет и тогда, когда игра уже завершена, прервана или закрыта: изменить такие игры с сайта нельзя.

Диалог завершения игры

Диалог «Завершить игру?» открывается поверх страницы игры. Вступление поясняет: «То же, что /finish в Discord: кто бы ни завершил, здесь или там, результат и рейтинги выйдут одинаковыми.» Внизу две кнопки: «Отмена» и «Завершить игру». Пока сайт записывает результат, на кнопке написано «Завершаем…», а поля и «Отмена» выключены.

Поле Что в нём Подсказка
«Победитель» Меню из всех игроков этой игры, в строке имя и нация «Выберите игрока этой игры»
«Победа» Один из пяти типов —
«Ходы» Целое число от 1 до 330 «Ход», примечание «от 1 до 330»

Победитель

Победителем можно выбрать только игрока этой игры. Строка меню выглядит как «Orion · Аравия»; если у игрока ещё нет нации, в строке только имя.

Победа

Типов пять, и они те же, что в /игра завершить:

  • «Научная победа»;
  • «Туристическая победа»;
  • «Дипломатическая победа»;
  • «Военная победа»;
  • «Признание победителя».

Собственный тип вписать нельзя.

Ходы

В поле вписывают целое число от 1 до 330. Если значение пустое, не целое или выходит за эти границы, ошибки на экране нет: кнопка «Завершить игру» в диалоге просто остаётся выключенной.

Кнопка включается, когда выбраны победитель и тип победы, в «Ходы» стоит корректное число и у каждого игрока есть нация.

Под полями диалог перечисляет последствия: «Рейтинги всех игроков считаются так же, как /finish в игре FFA», «Сообщение игры в Discord обновляется» и с отметкой-предупреждением «Результат потом не изменить ни здесь, ни в Discord».

Подсказка из сейва

Если к игре прикреплён сейв, он только предлагает значения: сам ничего не записывает. Над полями стоит полоска с пояснением, а поля, которые ещё совпадают с предложением сейва, имеют метку «из сейва». Измените поле, и метка исчезнет. Каждый раз, когда вы открываете диалог, поля заполняются из сейва заново. Без сейва полоски и подстановки нет. Подробнее о сейвах — Сейвы игры на сайте.

Сейв подставляет победителя, только когда знает ровно одного победителя и этот игрок сопоставлен с местом в игре. Тип победы он подставляет в трёх случаях: победа в космической гонке — «Научная победа», победа завоеванием — «Военная победа», культурная — «Туристическая победа». Ход — это ход победы, а если его нет, то ход сейва.

У полоски пять вариантов:

Ситуация Что пишет полоска
Сейв записал победу, поля заполнены «Заполнено из сейва хода 212 — проверьте перед завершением»
Сейв записал дипломатическую победу «Сейв хода 212 записал дипломатическую победу игрока Vega: голосование в ООН или признание поражения, файл не различает — выберите победу сами»
Сейв записал победу по очкам «Сейв хода 212 записал победу по очкам игрока Vega: победитель и ходы заполнены, победу выберите сами»
Победитель сейва не сопоставлен с игроком игры «Сейв записал победу на ходу 212, но её победитель не сопоставлен с игроком этой игры — выберите победителя сами»
В сейве ещё нет результата «Сейв ещё не содержит результата — заполните поля сами»

В тексте полоски стоит настоящий номер хода и имя игрока. Когда победитель не сопоставлен или результата нет, поля пустые.

Игроки без нации

Перед завершением у каждого игрока должна быть нация: выбранная в игре или та, за которую он играл по сейву. Если у кого-то из игроков нации ещё нет, в диалоге появляется жёлтый блок с заголовком вроде «Orion — ещё без нации» и текстом «Перед завершением игры нация нужна каждому игроку. Выберите её здесь — тот же выбор, что на карточках, — или прикрепите сейв.»

Для каждого такого игрока есть строка с кнопкой «Выбрать нацию». Она открывает тот же список наций, что и карточка игрока на странице игры:

  • есть поле «Поиск нации»;
  • заголовок списка «Нация для Orion · 3 из 43, без банов» показывает, сколько наций в списке этого игрока (первое число) и сколько их всего (второе);
  • нация, которую уже выбрал другой игрок, отмечена «занято · Vega» и недоступна;
  • если ничего не подходит, список пишет «Ни одна нация не подходит».

Выбор сохраняется сразу, так же как на карточке игрока, а бот перерисовывает карточку в Discord. Когда нации есть у всех, блок исчезает. Подробнее о выборе в Discord — Выбор наций и обмен слотами.

Результат

После подтверждения:

  • игра получает состояние «Завершена», а сайт записывает победителя, тип победы и количество ходов;
  • в игре FFA меняется рейтинг всех игроков так же, как после /игра завершить, а в игре Duel рейтинг не меняется; подробнее — Как считается рейтинг;
  • диалог закрывается, а страница игры показывает результат;
  • в шапке игры появляется метка «Завершено на сайте» с именем игрока и датой;
  • бот обновляет карточку игры в треде и список последних игр на панели игры.

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

Правила и исключения

Результат одинаковый, где бы игру ни завершили

Сайт и /игра завершить дают один и тот же результат, те же проверки и тот же рейтинг. Рейтинг начисляется один раз: если игру одновременно завершают на сайте и в Discord, второе завершение уже не проходит.

Завершённую игру не изменить

После завершения результат нельзя изменить ни на сайте, ни в Discord. Закрытую игру изменить с сайта нельзя вообще.

Если игра уже завершена

Когда игру завершил кто-то другой, пока ваш диалог был открыт, диалог показывает блок «Эта игра уже завершена» с единственной кнопкой «Закрыть». В нём сказано, где игра завершена: «на сайте» или «в Discord».

Что может пойти не так

Отказы сервера диалог показывает в красном блоке. Ничего не записывается.

  • «Победитель должен быть игроком этой игры.» Выбран тот, кто не занимает места в игре. Выберите победителя из меню.
  • «У игрока ещё нет нации. Выберите её выше, затем завершите игру.» Кто-то потерял нацию, пока диалог был открыт. Выберите её в блоке «Ещё без нации» и повторите.
  • «Это могут сделать только участники этой игры.» Вы не занимаете места в этой игре. Модератор завершает игру в Discord командой /игра завершить.
  • Ошибки выбора нации в диалоге. Если нацию только что заняло другое место, её уже нельзя выбрать для этого места или выбор не сохранён, диалог пишет об этом; выберите другую нацию или повторите. Подробнее — Страница игры.
  • Кнопка «Завершить игру» в диалоге выключена. Не выбран победитель или тип победы, в «Ходы» нет числа от 1 до 330 или у кого-то нет нации.
  • Диалог показывает «Эта игра уже завершена». Игру завершили в Discord или на сайте раньше вас (и, возможно, уже закрыли): результат уже записан, ничего делать не нужно.
  • Кнопки «Завершить игру» нет на странице. Вы не игрок этой игры или игра не в состоянии «В процессе». Подробнее — Игроки, модераторы и администраторы.

См. также

Эта страница переведена с помощью ИИ и сверена с терминами бота.