Уровни
Уровень участника зависит от общего количества накопленного опыта.
На этой странице можно настроить:
- роли за достижение определённого уровня;
- роли за накопленное время в голосовых каналах;
- канал для уведомлений о повышении;
- собственный текст поздравления.
Само начисление опыта настраивается отдельно — в разделе «Рейтинг».
Как открыть и включить
Откройте страницу «Уровни».
У раздела Уровни нет отдельного переключателя. Повышения продолжают работать, пока включено начисление опыта в системе рейтинга.
Для работы команд /ranking также должен быть включён общий модуль Рейтинг.
Подробнее о настройках и переключателях системы можно прочитать на странице «Рейтинг».
Как рассчитывается уровень
Все участники начинают с первого уровня.
Для перехода на второй уровень необходимо получить 100 опыта. Каждый следующий уровень требует больше опыта, чем предыдущий.
| Переход | Требуется опыта для перехода | Всего накопленного опыта |
|---|---|---|
| 1 → 2 | 100 | 100 |
| 2 → 3 | 165 | 265 |
| 3 → 4 | 240 | 505 |
| 4 → 5 | 325 | 830 |
| 5 → 6 | 420 | 1250 |
После первого перехода стоимость следующего уровня увеличивается на 65 опыта. Затем размер этого увеличения дополнительно возрастает на 10 опыта с каждым уровнем.
Формулу уровней изменить нельзя.
Команда <префикс>setrank level устанавливает участнику ровно столько опыта, сколько требуется для начала выбранного уровня.
Основные настройки
| Параметр | Где настраивается | Значение по умолчанию | Описание |
|---|---|---|---|
| Канал повышений | Панель Уровни или /ranking channel | Не задан | Канал, в который бот отправляет уведомления о новом уровне. Если канал не выбран, уведомление отправляется туда, где участник получил опыт. |
| Текст уведомления | Панель Уровни | Стандартный текст | Собственный шаблон поздравления длиной до 1000 символов. |
| Роли за уровень | Панель Уровни, /ranking lvlup и /ranking removelvlrole | Не настроены | Роли, выдаваемые участникам при достижении указанных уровней. |
| Роли за голосовой онлайн | Панель Уровни, /ranking vcrole и /ranking removevcrole | Не настроены | Роли, выдаваемые за накопленное время в голосовых каналах. |
В панели можно создать:
- до 100 наград за уровни от 1 до 1000;
- до 100 наград за голосовой онлайн от 1 до 100 000 часов.
Текст уведомления
В собственном тексте поздравления можно использовать следующие переменные:
| Переменная | Что будет подставлено |
|---|---|
{user} | Упоминание участника |
{username} | Отображаемое имя участника |
{level} | Новый уровень |
{server} | Название сервера |
Пример:
Поздравляем, {user}! Вы достигли {level}-го уровня на сервере {server}.
Максимальная длина шаблона — 1000 символов.
Команды
| Команда | Кто может использовать | Описание |
|---|---|---|
/ranking channel channel:<канал> | Участник с разрешением Discord Администратор | Выбирает канал для уведомлений о повышении. |
/ranking channel | Участник с разрешением Discord Администратор | Сбрасывает выбранный канал и пользовательский текст уведомления. |
/ranking lvlup level:<уровень> role:<роль> | Участник с разрешением Discord Администратор | Добавляет или заменяет роль за достижение уровня. |
/ranking removelvlrole level:<уровень> | Участник с разрешением Discord Администратор | Удаляет роль, назначенную за выбранный уровень. |
/ranking vcrole hours:<часы> role:<роль> | Участник с разрешением Discord Администратор | Добавляет или заменяет роль за накопленное время в голосовых каналах. |
/ranking removevcrole hours:<часы> | Участник с разрешением Discord Администратор | Удаляет роль, назначенную за выбранное количество часов. |
Если повторно выполнить /ranking lvlup с уже существующим уровнем, старая роль будет заменена новой.
То же правило применяется к наградам за голосовой онлайн с одинаковым количеством часов.
Карточка участника /ранг и команды ручного изменения опыта <префикс>setrank описаны в разделе «Рейтинг».
Как происходит повышение
Повышение уровня проверяется в момент начисления опыта за сообщение.
Когда участник достигает нового уровня, бот:
- обновляет его уровень;
- отправляет уведомление;
- проверяет доступные роли-награды;
- выдаёт самую высокую доступную роль за уровень;
- снимает младшие роли за уровни.
Если отдельный канал не выбран, поздравление отправляется в тот канал, где участник получил опыт.
Повышение не проверяется постоянно. Оно происходит только при очередном начислении опыта за сообщение.
Роли за уровни
Для каждого уровня можно назначить одну наградную роль.
Например:
| Уровень | Роль |
|---|---|
| 5 | Активный участник |
| 10 | Постоянный участник |
| 25 | Ветеран |
Если участник достиг 25-го уровня, бот оставит ему только роль, назначенную за 25-й уровень.
Младшие роли за 5-й и 10-й уровни будут сняты.
Таким образом, участник одновременно сохраняет только самую высокую достигнутую роль из списка наград за уровень.
Когда выдаётся роль
Роли пересчитываются при повышении уровня и при ручной правке опыта
(setrank exp, addexp, delexp, level, reset).
Если добавить награду за уровень, который участник уже прошёл, она не будет выдана сразу.
Например, если участник уже имеет 20-й уровень, а администратор добавил роль за 10-й уровень, участник получит подходящую роль только при следующем пересчёте.
Пересчёт работает в обе стороны: если опыт участника уменьшили, роль за уровень, которого он больше не достигает, снимается.
Роли за голосовой онлайн
Голосовые роли зависят от общего количества накопленных часов в голосовых каналах.
Например:
| Голосовой онлайн | Роль |
|---|---|
| 10 часов | Собеседник |
| 50 часов | Завсегдатай голосовых |
| 100 часов | Голосовой ветеран |
Как и в случае с уровнями, бот оставляет только самую высокую достигнутую голосовую роль.
Младшие голосовые роли снимаются.
Когда пересчитываются часы
Голосовые роли проверяются, когда участник:
- выходит из голосового канала;
- переключается между голосовыми каналами;
- включает микрофонный мут (отсчёт закрывается);
- получает ручное изменение времени через
<префикс>setrank addvoice; - получает точное значение времени через
<префикс>setrank setvoice.
Как и роли за уровни, голосовые роли снимаются, если время уменьшили командой
setrank setvoice.
При переключении между голосовыми каналами текущая сессия фиксируется, после чего начинается новая.
В отличие от ролей за уровень, новая награда за уже накопленное голосовое время может быть выдана при следующем завершении или переключении голосовой сессии.
Требования к ролям бота
Чтобы бот мог выдавать и снимать наградные роли:
- у него должно быть разрешение Управлять ролями;
- самая высокая роль бота должна находиться выше всех наградных ролей;
- наградная роль не должна управляться другой интеграцией.
Если у бота недостаточно прав или его роль находится слишком низко, награда не будет выдана.
Информация об ошибке отображается только в технических журналах бота.
Сохранение настроек в панели
При сохранении панели списки наград заменяются целиком.
Это означает, что сервер сохраняет именно тот набор ролей, который находится в форме на момент сохранения.
Если несколько записей используют один и тот же уровень или одинаковое количество часов, сохраняется только первая запись.
Перед сохранением проверьте, что:
- уровни не повторяются;
- значения часов не повторяются;
- выбранные роли ещё существуют;
- роль бота расположена выше наградных ролей.
Ограничения
Нельзя отключить только поздравления
Отдельной настройки для отключения сообщений о повышении нет.
Чтобы полностью прекратить уведомления, необходимо выключить начисление опыта в системе рейтинга.
Сброс канала удаляет текст
Вызов /ranking channel без выбранного канала удаляет всю настройку уведомлений.
При этом сбрасываются:
- выбранный канал;
- собственный текст поздравления.
После повторного выбора канала пользовательский текст потребуется настроить заново через панель.
Роли не выдаются задним числом
Роль за уровень выдаётся только во время следующего повышения.
Добавление новой награды не запускает автоматическую проверку всех участников сервера.
Голосовые роли пересчитываются раньше — при следующем завершении или переключении голосовой сессии.
Голосовая активность не даёт опыт
Время в голосовых каналах используется только для отдельных голосовых наград.
Оно не увеличивает опыт и не повышает обычный уровень участника.
Уровни растут только за счёт опыта, получаемого за сообщения.
Ошибки выдачи ролей не показываются участнику
Если бот не может выдать или снять роль, обычный пользователь не увидит сообщение об ошибке.
Проверить причину можно только в журналах бота.