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

Тред игры

Тред игры — публичная ветка в канале истории игр, которую бот создаёт для игры при старте. В треде лежит карточка игры: на ней видны игроки, их нации, Steam-ссылка на лобби, если её добавили, а после завершения игры — результат.

Роль треда игры

После старта игра идёт в треде. Там бот выполняет шесть задач:

  • Собирает игроков. Первым сообщением бот упоминает игроков игры, которые есть на сервере, и так они попадают в тред. На сервере, с которым работает сайт CivBot, после упоминаний в этом сообщении есть ещё подсказка «💡 Бросьте сюда файл сейва (.Civ5Save) после игры, чтобы графики игры остались на сайте.»
  • Показывает карточку игры. На карточке видны состояние игры, порядковые номера игроков, их нации и баны.
  • Даёт выбрать нации. Нации выбирают в меню под карточкой игры или в сообщениях «Назначение наций». Подробнее — Выбор наций и обмен слотами.
  • Публикует ссылку на лобби. Если Steam-ссылку на лобби Civilization V добавили, она стоит на карточке, пока игра идёт.
  • Принимает сейв. На сервере, с которым работает сайт CivBot, бот принимает в треде файлы сейва Civilization V и отвечает карточкой. Подробнее — Сейв в треде игры.
  • Сохраняет итог. После завершения или прерывания игры тред остаётся в канале истории игр, а карточка показывает, чем закончилась игра.

Из чего состоит

Часть Что означает
Название Номер игры, режим, количество игроков и тип игры
Первое сообщение Упоминание игроков игры, которые есть на сервере; на сервере сайта ещё и подсказка про сейв
Блок команд Подсказка с командами «Завершить игру» и «Обновить игру» над карточкой
Карточка игры Заголовок с состоянием, игроки с нациями, звёздами ранга и банами, добавленная Steam-ссылка
Меню и кнопка под карточкой «Выбрать кто за какую нацию играет», «Запросы на обмен между игроками», «Отменить игру»; на сервере сайта ещё и ссылка «На сайте»
«Назначение наций» Сообщения с кнопками наций, только после старта без драфта

Название треда

Название треда состоит из номера игры, режима, количества игроков и типа игры. Например, «248 — FFA 6 Patch» — это игра №248 в режиме FFA на шестерых игроков, тип Patch. В Duel количества игроков в названии нет. Нумерация игр отдельная на каждом сервере.

Карточка игры

Над карточкой стоит блок с двумя командами: «Завершить игру» — /игра завершить (/game finish), «Обновить игру» — /игра обновить (/game refresh). Команду в блоке можно нажать, и Discord подставит её в поле сообщения.

Заголовок карточки повторяет название треда, а после значка 🚦 стоит состояние игры «В процессе». Пока игра идёт, полоса карточки зелёная. Карточку игры бот пишет на языке сервера. Подробнее — Язык бота. На сервере, с которым работает сайт CivBot, заголовок карточки ведёт на страницу игры на сайте, а не на тред. Подробнее — Страница игры.

Для каждого игрока карточка показывает шесть вещей:

  • порядковый номер «1.», «2.» и далее, который бот случайным образом раздаёт игрокам при старте;
  • эмодзи нации, которую игрок выбрал или которую сайт прочитал из прикреплённого сейва; нация из сейва имеет приоритет над выбором, а пока нации нет, эмодзи тоже нет;
  • звёзды ранга игрока;
  • упоминание игрока;
  • три нации на выбор, если игру стартовали с драфтом;
  • баны игрока под спойлером: чтобы их увидеть, нажмите на скрытую строку.

Подробнее о звёздах — Ранги и звёзды.

Меню и кнопка под карточкой

Пока игра идёт, под карточкой есть до трёх элементов:

  • «Выбрать кто за какую нацию играет» — меню выбора наций; есть только после старта с драфтом.
  • «Запросы на обмен между игроками» — меню обмена слотами; есть только в FFA.
  • «Отменить игру» — кнопка, которая открывает окно подтверждения; как только окно отправлено, игра получает состояние «Прервана».

На сервере, с которым работает сайт CivBot, под карточкой идущей игры есть ещё четвёртый элемент: кнопка-ссылка «На сайте», которая ведёт на страницу игры на сайте.

После старта без драфта меню выбора наций нет. Вместо него бот публикует в треде сообщения «Назначение наций» с кнопками незабаненных наций. Подробнее — Выбор наций и обмен слотами и Прерывание игры.

Steam-ссылка

Steam-ссылка ведёт в лобби Civilization V в Steam. Она начинается с steam://joinlobby/, а за ней идут три числа через косую черту. Добавить ссылку можно тремя способами:

  • В сборе — кнопкой «Steam ссылка» под карточкой сбора. После старта ссылка переходит на карточку игры. Подробнее — Создание игры и сбор игроков.
  • В треде игры — отдельным сообщением, в котором только ссылка, пока игра в состоянии «В процессе». Бот удаляет это сообщение и показывает ссылку на карточке игры.
  • На сайте — на сервере, с которым работает сайт CivBot, игрок игры на странице игры нажимает «Присоединиться к игре». Сайт смотрит, в каком лобби Steam сейчас видит игроков игры, и если оно отличается от сохранённого, записывает его как Steam-ссылку игры; бот перерисовывает карточку. Это работает только для игроков игры, пока игра идёт и с её старта прошло не больше 48 часов. Подробнее — Страница игры.

На карточке ссылка стоит под игроками отдельным блоком с подписью «ссылка добавлена:». Когда игру завершают или прерывают, ссылка с карточки пропадает.

Обновление карточки

Команда /игра обновить обновляет карточку игры по последним данным.

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

/игра обновить игра:248

После обновления бот приватно отвечает «Обновлено». В личных сообщениях боту команда не работает.

Перерисовка после изменений на сайте

Это действует на сервере, с которым работает сайт CivBot. Когда игру меняют на сайте — выбирают нацию, прикрепляют сейв, сопоставляют игроков, меняют Steam-ссылку или завершают игру, — бот сам перерисовывает карточку игры в треде. После завершения игры на сайте он обновляет и список последних игр на панели. Так что /игра обновить для этого не нужна.

Файлы сейва в треде

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

С чем связано

  • Старт игры — бот создаёт тред и публикует в нём карточку игры при старте; подробнее — Старт игры.
  • Выбор наций — нации выбирают в меню под карточкой или в сообщениях «Назначение наций»; подробнее — Выбор наций и обмен слотами.
  • Завершение игры — результат записывают командой /игра завершить или игрок игры на странице игры на сайте, и карточка показывает итог; подробнее — Завершение игры и Завершение игры на сайте.
  • Сейв — файл сейва можно бросить в тред; подробнее — Сейв в треде игры.
  • Сайт — карточка игры ведёт на страницу игры на сайте; подробнее — Страница игры.
  • Прерывание игры — кнопка «Отменить игру» под карточкой открывает окно подтверждения, после которого игра получает состояние «Прервана»; подробнее — Прерывание игры.
  • Ранги — звёзды рядом с игроком на карточке показывают его ранг; подробнее — Ранги и звёзды.
  • Канал истории игр — в нём бот создаёт треды, а задаёт его администратор сервера; подробнее — Подключение CivBot к серверу.

Состояния игры в треде

В треде игра бывает в одном из трёх состояний. Состояние написано в заголовке карточки игры после значка 🚦, а подсказывает его ещё и цвет полосы.

Состояние Что видно на карточке Кто ставит
«В процессе» Зелёная полоса, блок команд, игроки с нациями на выбор и банами, добавленная Steam-ссылка, меню и кнопка под карточкой, на сервере сайта ещё и ссылка «На сайте» Участник игры или модератор кнопкой «Старт с драфтом наций» или «Старт без драфта наций»
«Завершена» Золотая полоса, тип победы рядом с 🥇, количество ходов рядом с 🏇, 🏆 рядом с победителем, в FFA — изменение рейтинга каждого игрока; на сервере сайта кнопка «Результаты на сайте» Участник игры или модератор командой /игра завершить; игрок игры кнопкой «Завершить игру» на странице игры на сайте
«Прервана» Красная полоса, игроки и их нации без победителя и результата; на сервере сайта кнопка «На сайте» Участник игры или модератор кнопкой «Отменить игру» с подтверждением

В FFA изменение рейтинга стоит в строке игрока после эмодзи нации, например «+12» или «-8», а за ним — значок роста или падения. После завершения или прерывания бот убирает с карточки блок команд, меню, кнопку «Отменить игру» и Steam-ссылку. Сообщения «Назначение наций» он удаляет. На сервере, с которым работает сайт CivBot, на завершённой карточке остаётся ссылка «Результаты на сайте», а на прерванной — «На сайте». Модератор, который не играет в этой игре, завершает её только в Discord: на сайте он только смотрит. Сам тред остаётся в канале истории игр.

stateDiagram-v2
    state "В процессе" as ongoing
    state "Завершена" as finished
    state "Прервана" as cancelled
    [*] --> ongoing: участник или модератор нажимает «Старт…»
    ongoing --> finished: участник или модератор выполняет /игра завершить
    ongoing --> finished: игрок игры завершает игру на сайте
    ongoing --> cancelled: участник или модератор нажимает «Отменить игру» и подтверждает
    finished --> [*]
    cancelled --> [*]

Диаграмма не показывает архивации треда. Тред архивируется независимо от состояния игры, и состояние от этого не меняется.

Правила

Тред игры видит каждый, кто видит канал истории игр

Тред публичный: открыть и прочитать его может каждый, кто видит канал истории игр. Игроков игры, которые есть на сервере, бот добавляет в тред упоминанием в первом сообщении.

Управляют игрой в треде только участники игры и модераторы

Меню «Выбрать кто за какую нацию играет», кнопкой «Отменить игру» и кнопками наций в сообщениях «Назначение наций» пользуются только участники игры и модераторы. Остальным бот отвечает «У вас нет доступа к этому действию.» Просить об обмене слотами в меню «Запросы на обмен между игроками» могут только участники игры. Подробнее — Игроки, модераторы и администраторы.

Тред архивируется после 24 часов без новых сообщений

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

Steam-ссылка в треде принимается только отдельным сообщением

Сообщение должно состоять из одной ссылки steam://joinlobby/…, без другого текста. Сообщение, в котором кроме ссылки есть ещё какой-то текст, бот оставляет в треде, и карточка не меняется.

На карточке только одна Steam-ссылка

Новая ссылка, отправленная в треде, добавленная в сборе или найденная через «Присоединиться к игре» на сайте, заменяет предыдущую. На карточке видна последняя из них.

Обновить карточку может любой на сервере

Команда /игра обновить обновляет карточку по последним данным. Выполнить её может и тот, кто не играет в этой игре.

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

  • Тред игры пропал из списка каналов. Тред архивировался, потому что 24 часа в нём никто не писал. Найдите его среди архивных тредов канала истории игр и напишите в нём сообщение. Если игра идёт, тред вернётся и сам после любого обновления карточки, например после /игра обновить.
  • Сообщение со ссылкой осталось в треде, а на карточке ссылки нет. В сообщении есть другой текст, или ссылка выглядит иначе. Отправьте отдельным сообщением только ссылку, от steam://joinlobby/ до последнего числа.
  • Бот просит указать номер игры. На /игра обновить вне треда игры без номера бот отвечает «Укажите game_id или вызовите команду из треда игры». Добавьте параметр игра с номером игры или выполните команду в треде игры.
  • Бот пишет, что игра не найдена. На /игра обновить с параметром игра бот отвечает «Гру #248 не знайдено…»: игры с таким номером на этом сервере нет. Сверьте номер с названием треда игры, потому что нумерация отдельная на каждом сервере.
  • Бот пишет, что у вас нет доступа. Бот отвечает «У вас нет доступа к этому действию.», когда меню или кнопку в треде игры нажимает тот, кто не играет в этой игре и не является модератором. Попросите кого-нибудь из игроков этой игры.
  • Бот пишет по-английски, что игра уже завершена. Такой ответ на /игра завершить бот даёт, когда игру уже завершили: «Game was already finished by another player or not found. Please refresh to see results.» Выполните /игра обновить в треде игры, и карточка покажет её состояние. Подробнее — Завершение игры.

См. также

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