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

Завершение игры

После партии участник игры или модератор записывает результат командой /игра завершить (/game finish), и игра получает состояние «Завершена». Бот сохраняет победителя, тип победы и количество ходов, а в FFA ещё и меняет рейтинг игроков.

Участники

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

Шаги

sequenceDiagram
    participant G as Игрок
    participant B as Бот
    G->>B: выполняет /игра завершить в треде игры
    alt у кого-то нет нации
        B-->>G: отвечает «Все игроки должны выбрать нации перед завершением игры!»
    else победитель не играет в этой игре
        B-->>G: отвечает «Победитель должен быть игроком этой игры.»
    else нация есть у каждого игрока
        Note over B: игра получает состояние «Завершена»
        B-->>G: обновляет карточку игры и убирает с неё меню и кнопки
        B-->>G: в FFA показывает изменение рейтинга у каждого игрока
        B-->>G: отвечает «Done!»
    end
  1. Проверьте, что у каждого игрока есть нация. Нация засчитывается, если она выбрана. Значок рядом с порядковым номером игрока на карточке игры показывает, что нация есть. Если значка нет, выберите нацию: после старта с драфтом — в меню «Выбрать кто за какую нацию играет», после старта без драфта — в сообщениях «Назначение наций». Подробнее — Выбор наций и обмен слотами.
  2. Откройте тред игры. Здесь бот сам определяет, какую игру завершают. Над карточкой игры стоит подсказка с командами: нажмите /игра завершить рядом с «Завершить игру», и Discord подставит команду в поле сообщения. В другом канале укажите номер игры в параметре игра: его видно в названии треда, например «248 — FFA 6 Patch».
  3. Наберите команду. Заполните три обязательных параметра: победитель, тип_победы и ходы. Вне треда добавьте четвёртый — игра. Что указать в каждом, объясняет раздел Параметры команды.
  4. Отправьте команду. Бот сразу завершает игру и приватно отвечает по-английски «Done!».
  5. Проверьте карточку игры. Карточка в треде получает состояние «Завершена» и золотую полосу. Что ещё на ней меняется, описывает раздел Что меняется после завершения.

Параметры команды

Параметр Что указать Когда нужен
победитель Игрока этой игры, который победил Всегда
тип_победы Один тип победы из списка Всегда
ходы Количество ходов партии, целое число от 1 до 330 Всегда
игра Номер игры Только вне треда игры

В параметре победитель Discord предлагает всех участников сервера: выберите игрока с карточки игры.

В параметре тип_победы Discord показывает пять типов: «Туристическая 🎨», «Научная 🧪», «Дипломатическая 🕊️», «Военная 🗡️» и «Признание победителя 🤝». Выбрать можно только один тип из списка, свой текст вписать нельзя.

Пример для треда игры: Orion одержал научную победу на 212-м ходу.

/игра завершить победитель:@Orion тип_победы:Научная ходы:212

Вне треда тот же результат записывают с номером игры:

/игра завершить победитель:@Orion тип_победы:Научная ходы:212 игра:248

Что меняется после завершения

Бот обновляет карточку игры в треде:

  • в заголовке карточки стоит состояние «Завершена», а полоса становится золотой;
  • под заголовком появляются 🥇 с типом победы и 🏇 с количеством ходов;
  • рядом с победителем стоит 🏆;
  • в FFA рядом с каждым игроком видно изменение рейтинга, например «+15» или «-10», а ниже — звёзды его ранга после игры;
  • в Duel рейтинг не меняется, и рядом с игроками стоят звёзды их ранга;
  • пропадают подсказка с командами над карточкой, а также меню и кнопка «Отменить игру» под ней;
  • Steam-ссылка с карточки пропадает.

Если игру стартовали без драфта, бот удаляет из треда сообщения «Назначение наций». Список последних игр на панели игры тоже обновляется. Подробнее — Панель игры.

Это действует на сервере, с которым работает сайт CivBot. Заголовок карточки завершённой игры ведёт на её страницу на сайте, а под карточкой есть кнопка «Результаты на сайте». Если к игре ещё не прикреплён сейв, бот один раз отправляет в тред сообщение «Сохраните историю этой игры» с текстом «Бросьте сюда файл сейва (.Civ5Save): сайт покажет графики и историю игры.» и кнопкой «На сайте». Подробнее — Сейв в треде игры.

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

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

Завершить игру может участник игры или модератор

Команду выполняет любой игрок этой игры, не только победитель или создатель игры. Модератор завершает любую игру своего сервера, даже если сам в ней не играл. Если в параметре игра указать номер игры, в которой вы не играете, а вы не модератор, бот отвечает по-английски «You are not in this lobby.» Подробнее — Игроки, модераторы и администраторы.

Завершить можно только игру в состоянии «В процессе»

У сбора ещё нет номера, поэтому завершить его нельзя: сбор отменяют кнопкой 🗑️ на карточке сбора. Завершённую или прерванную игру завершить уже нельзя. Если указать номер такой игры в параметре игра, участнику игры или модератору бот отвечает по-английски «Can't do this command in current lobby state.» Подробнее — Создание игры и сбор игроков и Прерывание игры.

Перед завершением у каждого игрока должна быть нация

Нация игрока засчитывается, если она выбрана. На сервере, с которым работает сайт CivBot, она засчитывается и тогда, когда её прочитали из сейва, прикреплённого к игре: Сейв в треде игры или Сейвы игры на сайте. Пока хотя бы у одного игрока нет нации, бот игру не завершает. Он отвечает на языке вашего Discord: «Все игроки должны выбрать нации перед завершением игры!» Если Discord у вас не на русском и не на украинском, ответ английский: «All players must pick their nations before finishing!» Подробнее — Выбор наций и обмен слотами.

Победителем может быть только игрок этой игры

Discord предлагает в параметре победитель всех участников сервера, но победителем может быть только игрок этой игры. Выбирайте его среди игроков на карточке игры. Если указать человека, который не играет в этой игре, бот приватно отвечает на языке вашего Discord: «Победитель должен быть игроком этой игры.» Если Discord у вас не на русском и не на украинском, ответ английский: «The winner must be a player of this game.» Игра при этом не завершается.

Остальных игроков отдельно не отмечают

Команда /игра завершить записывает победителя, тип победы и количество ходов. Параметров, чтобы отметить, кто из остальных игроков выжил, а кто вышел из партии раньше, у неё нет.

Результат записывается сразу

В списке команд Discord рядом с /игра завершить стоит описание «Записать результаты и отправить на подтверждение». Отдельного подтверждения нет: игра получает состояние «Завершена» сразу после команды. Кнопки «Отменить игру» после этого нет, поэтому прервать завершённую игру нельзя.

Проверьте результат, прежде чем отправлять команду

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

Рейтинг меняют только игры FFA

После завершения игры FFA бот меняет рейтинг каждого её игрока и показывает изменение на карточке игры. Игра Duel записывает победителя, тип победы и количество ходов, но рейтинг не меняет. Подробнее — Как считается рейтинг и Ранги и звёзды.

Завершить можно и на сайте

Это действует на сервере, с которым работает сайт CivBot. Игрок игры, который вошёл на сайт, завершает игру кнопкой «Завершить игру» на странице игры. Результат и рейтинг такие же, как после /игра завершить, а карточка игры в треде обновляется. На сайте завершает только игрок этой игры: модератор, который не играет в ней, там только просматривает, а в Discord завершает командой. Подробнее — Завершение игры на сайте.

Рейтинг за игру меняется один раз

Если игру уже завершил кто-то другой, в Discord или на сайте, повторная команда в её треде ничего не меняет. Бот отвечает по-английски «Game was already finished by another player or not found. Please refresh to see results.» Рейтинг второй раз не меняется. Если карточка игры выглядит по-старому, обновите её командой /игра обновить (/game refresh).

На сервере, с которым работает сайт, закрытие игры на сайте может переписать изменения рейтинга, но только когда подтверждена замена игрока: тогда рейтинг считается по тем, кто действительно играл. Без подтверждённых замен рейтинг остаётся таким, как его записал бот. Подробнее — Страница игры.

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

  • Ответ бота пропал, прежде чем вы его прочитали. Ответы на /игра завершить видите только вы. Отказы «You are not in this lobby.», «Can't do this command in current lobby state.» и «Game ID not found.» пропадают через 20 с. Повторите команду, чтобы увидеть ответ снова.
  • Бот пишет «Все игроки должны выбрать нации перед завершением игры!» У кого-то из игроков не выбрана нация, и сейв её не показывает: рядом с его номером на карточке игры нет значка нации. Выберите нацию в треде игры или, на сервере, с которым работает сайт, прикрепите сейв, а затем повторите команду.
  • Бот пишет «Победитель должен быть игроком этой игры.» В параметре победитель указан человек, который не играет в этой игре. Выберите победителя среди игроков на карточке игры и повторите команду.
  • Бот пишет «You are not in this lobby.» Вы не играете в игре с указанным номером и не являетесь модератором. Проверьте номер в названии треда игры. Если номер правильный, попросите завершить игру кого-нибудь из её игроков или модератора.
  • Бот пишет «Can't do this command in current lobby state.» Игра с указанным номером не в состоянии «В процессе»: её уже завершили или прервали, или игры с таким номером нет. Проверьте номер в названии треда игры.
  • Бот пишет «Game ID not found.» Команда выполнена в канале, а не в треде, и без параметра игра. Выполните её в треде игры или укажите номер игры.
  • Бот пишет «Укажите game_id или вызовите команду из треда игры». Команда выполнена в треде, который не относится ни к одной игре. Выполните её в треде игры или укажите номер игры в параметре игра.
  • Бот пишет «Game was already finished by another player or not found. Please refresh to see results.» Игру уже завершили. Повторное завершение ничего не меняет, и рейтинг второй раз не меняется. Если карточка выглядит по-старому, выполните /игра обновить.
  • Discord не принимает количество ходов. Параметр ходы принимает только целое число от 1 до 330.
  • Под карточкой игры пропали меню и кнопки. Игра завершена: после этого нации не меняют, слотами не обмениваются, а прервать игру уже нельзя.

См. также

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