Как устроен CivBot¶
CivBot — бот в Discord, который ведёт игру Civilization V от кнопки на панели игры до треда игры и результата. Здесь показано, где появляются карточки и треды, кто их видит, что показывает и позволяет сайт CivBot и где искать игру, когда её карточка пропала из канала сбора игр.
Роль CivBot¶
Игра проходит через пять мест в Discord и на сайте:
- Панель игры — игрок нажимает на ней «FFA» или «Duel» и приватно выбирает тип игры.
- Карточка сбора — появляется в канале сбора игр; на ней игроки записываются, банят нации и нажимают «Готов».
- Тред игры — во время старта карточка сбора исчезает, а в канале истории игр появляется публичный тред игры. В треде выбирают нации и записывают результат командой
/игра завершить(/game finish). На сервере, с которым работает сайт, в тред можно бросить и файл сейва; подробнее — Сейв в треде игры. - Таблица лидеров — завершённая игра FFA меняет рейтинг игроков, и таблица лидеров показывает его после ближайшего почасового обновления.
- Сайт CivBot — после входа через Discord там видны игры сервера, с которым работает сайт, страница каждой игры и профиль каждого игрока. Игрок игры может на сайте ещё и завершить игру, выбрать нацию и добавить сейв.
flowchart TD
M(["Модератор"]) -- "ставит командой /moderator panel" --> P["Панель игры"]
G(["Игрок"]) -- "нажимает «FFA» или «Duel»" --> P
P -- "открывает сбор" --> C["Карточка сбора"]
C -- "участник или модератор нажимает «Старт…»" --> T["Тред игры"]
T -- "участник или модератор выполняет /игра завершить" --> R["Результат"]
R -- "в FFA меняет" --> RT["Рейтинг"]
RT -- "каждый час попадает в" --> L["Таблица лидеров"]
T -- "игра появляется на" --> S["Сайт CivBot"]
R -- "показывается на" --> S
S -- "игрок игры завершает игру" --> R
Диаграмма показывает только главный путь игры: канала оповещений, журнала событий и приватных ответов бота на ней нет.
Из чего состоит¶
| Место | Что там видно | Кто настраивает |
|---|---|---|
| Панель игры | Кнопки «FFA», «Duel», «Статистика игрока», «Информация» и список последних игр | Модератор командой /moderator panel |
| Канал сбора игр | Карточки сборов с кнопками | Администратор сервера командой /guild config |
| Канал истории игр | Публичный тред каждой стартовавшей игры | Администратор сервера командой /guild config |
| Тред игры | Карточка игры, выбор наций и результат; на сервере, с которым работает сайт, — ещё и сейвы, которые бросили в тред | Бот, во время старта игры |
| Канал таблицы лидеров | Таблица лидеров текущего сезона | Модератор командой /leaderboard show |
| Канал оповещений | Оповещения о сборах, которым не хватает игроков | Модератор командой /guild notifications configure |
| Журнал событий | Записи о событиях сборов и игр | Модератор командой /guild log_channel |
| Приватные ответы | Меню и ответы, которые видите только вы | — |
| Сайт CivBot | «Обзор», «Игры», «Инспектор сейвов», страница игры и профиль игрока после входа через Discord | — |
Панель игры¶
Панель игры — сообщение, с которого начинается каждая игра. Модератор ставит её командой /moderator panel, и панель появляется в том канале, где он выполнил команду. На сервере панель одна: новая команда убирает предыдущую.
Кнопки панели доступны всем. «FFA» и «Duel» создают игру, а «Статистика игрока» приватно показывает статистику выбранного игрока. «Информация» приватно показывает карточку со строками «Канал истории игр: #…» и «Канал сбора игр: #…».
Над кнопками — список до 15 последних игр сервера, которые уже стартовали. В строке видны значок состояния, номер, режим, тип и игроки, а отметка «>>» ведёт в тред игры. Список обновляется каждые 5 минут, а также после старта, завершения или прерывания игры. Подробнее — Панель игры.
Канал сбора игр и канал истории игр¶
Когда игрок создаёт игру, карточка сбора появляется в канале сбора игр. Если панель стоит в другом канале, бот приватно отправляет ссылку на карточку, и эта ссылка исчезает через 60 с.
Во время старта карточка сбора исчезает. Игра получает номер, а в канале истории игр появляется её публичный тред с названием вроде «248 — FFA 6 Patch». В первом сообщении треда бот упоминает всех игроков, и Discord добавляет их в тред. Тред остаётся в канале истории игр и после завершения или прерывания игры. Подробнее — Тред игры.
Таблица лидеров, оповещения и журнал событий¶
Таблицу лидеров модератор ставит командой /leaderboard show: она появляется в том канале, где он выполнил команду, а предыдущая исчезает. Каждый час бот обновляет таблицу. В ней до 15 участников сервера с самым высоким рейтингом среди тех, кто в текущем сезоне сыграл хотя бы одну завершённую игру FFA. Подробнее — Таблица лидеров.
Канал оповещений модератор задаёт командой /guild notifications configure. Туда приходят оповещения, которые участник сбора или модератор отправляет кнопкой «Оповестить о сборе» на карточке сбора. Заголовок оповещения, например «+3 FFA6 Сбор», ведёт на карточку сбора. Подробнее — Оповещение о сборе.
Журнал событий модератор включает командой /guild log_channel, указав канал. Бот записывает туда создание игры, вход и выход игроков, исключение игроков, отмену сбора и прерывание игры, обмен слотами и оповещения о сборе. Старт и завершение игры в журнал не попадают. Кто читает журнал, зависит от прав этого канала в Discord. Подробнее — Журнал событий.
Сайт CivBot¶
Сайт показывает игры, ведёт страницу каждой игры и профиль каждого игрока и разбирает сейвы Civilization V. Без входа открыта главная страница: на ней видна витрина экранов сайта, и можно посмотреть сейв в сокращённом виде. Список игр, страница игры и профиль игрока без входа ведут на вход через Discord. Войти можно кнопкой «Войти через Discord»: сайт запрашивает у Discord только базовые данные аккаунта, без почты и списка серверов. После входа открываются три раздела:
- «Обзор» — блоки «Мои последние игры», «Текущие игры» и «Последние результаты», а также «Ваша неделя», «Этот месяц» и «Таблица лидеров» сезона;
- «Игры» — список игр сервера с выбором игроков и переключателем «Мои игры»; подробнее — Игры на сайте;
- «Инспектор сейвов» — полный разбор файла .Civ5Save с графиками ход за ходом.
Поле «Искать игроков или номер игры…» в шапке работает на каждой странице: его открывает клавиша «/». Номер игры ведёт на страницу игры, имя игрока — на профиль.
Страницу игры и профиль игрока видит каждый, кто вошёл. Менять игру на сайте могут только её игроки, то есть те, у кого в ней есть место: завершить игру, выбрать нацию для места, прикрепить сейв, сопоставить игроков сейва и найти лобби в Steam. Модератор без места в игре на сайте только смотрит, а управляет игрой в Discord. Подробнее — Страница игры, Завершение игры на сайте, Сейвы игры на сайте.
«Обзор» показывает только игры сервера, с которым работает сайт, и только те, которые уже стартовали. Подробнее — Сайт CivBot.
Связь сайта с Discord¶
Это действует на сервере, с которым работает сайт. Под карточкой игры в треде есть кнопка «На сайте» (на карточке завершённой игры — «Результаты на сайте»), которая ведёт на страницу игры. Игру, завершённую на сайте, бот перерисовывает в треде. В меню приложений участника сервера есть пункт «Профиль на сайте»: бот приватно отправляет ссылку на профиль игрока. Подробнее — Профиль игрока.
С чем связано¶
- Игра — проходит путь от карточки сбора до треда игры и результата; подробнее — Игра.
- Роли — панель игры, каналы, таблицу лидеров и журнал настраивают модераторы и администраторы; подробнее — Игроки, модераторы и администраторы.
- Подключение бота — каналы сбора и истории игр задают, когда бота подключают к серверу; подробнее — Подключение CivBot к серверу.
- Рейтинг — завершённая игра FFA меняет рейтинг, а таблица лидеров его показывает; подробнее — Как считается рейтинг.
Правила¶
Публичные сообщения видят все, приватные ответы — только адресат¶
Панель игры, карточку сбора, тред игры, таблицу лидеров и оповещения видит каждый, у кого есть доступ к их каналу. Статистика из команды /stats show тоже публичная: она появляется в канале.
Приватный ответ видит только тот, кому бот его отправил. Приватно приходят:
- сообщение «Выберите тип игры» после кнопок «FFA» или «Duel»;
- меню, которые открывают кнопки «Баны» и «Выгнать»;
- ответы на кнопки «Статистика игрока» и «Информация» панели игры;
- отказы вроде «У вас нет доступа к этому действию.» и ответы на
/игра завершить.
Часть приватных ответов исчезает сама: например, ссылка на новую карточку сбора — через 60 с. Подробнее — Лимиты и таймеры.
Публичные сообщения бот пишет на языке сервера¶
Карточки, панель игры, журнал событий и оповещения бот пишет на основном языке сервера в Discord. То, что человек открывает сам, приходит на языке его клиента Discord: сообщение «Выберите тип игры», меню кнопок «Баны» и «Выгнать» и ответы на кнопки «Статистика игрока» и «Информация». Отказы на кнопках карточки сбора и треда игры, например «У вас нет доступа к этому действию.» или «Эта игра завершилась или была удалена. Создайте новую игру.», приходят на языке сервера. Бот пишет на украинском, русском и английском, а когда язык сервера или клиента Discord другой — на английском.
Некоторые надписи одинаковы на всех серверах: у таблицы лидеров заголовок «Топ игроков» всегда на русском, названия столбцов «Rating», «Wins» и «Games» — на английском, а /игра завершить отвечает на английском «Done!». В русском клиенте Discord переведены только названия /игра завершить и /игра обновить (/game refresh), остальные команды имеют только английские названия. У сайта есть собственное меню языка с пунктами «English», «Українська» и «Русский». Подробнее — Язык бота.
Что может пойти не так¶
- Карточка сбора пропала из канала сбора игр. Если игра стартовала, ищите её тред в канале истории игр: название треда начинается с номера игры. Если сбор отменили или 3 часа никто не нажимал его кнопки, создайте новую игру на панели игры.
- Вы не знаете, где канал сбора игр и канал истории игр. Нажмите «Информация» на панели игры: в приватной карточке названы оба канала.
- Тред игры пропал из списка каналов. Тред, в котором сутки никто не писал, архивируется, а игра от этого не меняется. Найдите его среди архивных тредов канала истории игр: название треда начинается с номера игры.
- Таблица лидеров не изменилась после игры. Таблица обновляется раз в час. Рейтинг меняют только завершённые игры FFA, а игра Duel и прерванная игра его не меняют.
- Игры нет на сайте. Сайт показывает только игры сервера, с которым он работает, и только те, которые уже стартовали. Блок «Мои последние игры» показывает до 3 ваших самых новых игр. «Текущие игры» учитывают до 20 игр, которые стартовали за последние 48 часов и ещё идут: в блоке видны 5 из них, а остальные подписаны строкой вроде «Ещё 3 игры в процессе». «Последние результаты» показывают до 10 последних игр, которые завершились или были прерваны. «Обзор» не обновляется сам: перезагрузите страницу, чтобы увидеть новую игру.
См. также¶
- Игра
- Игроки, модераторы и администраторы
- Создание игры и сбор игроков
- Тред игры
- Панель игры
- Журнал событий
- Оповещение о сборе
- Таблица лидеров
- Сайт CivBot
- Игры на сайте
- Страница игры
- Сейв в треде игры
- Профиль игрока
- Лимиты и таймеры
- Язык бота
Эта страница переведена с помощью ИИ и сверена с терминами бота.