Уровни и опыт

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

Уровни и опыт участники набирают сами, за живое общение в чате. Как это устроено, описано в карточке уровня. Эти команды нужны для правок поверх автоматики: наградить за конкурс, исправить случайную потерю прогресса или убрать накрученный опыт.

-уровни работает с уровнями, -опыт с очками опыта (XP). Устроены они одинаково: сначала действие, потом кому, потом сколько.

-уровни

Уровни участников: выдача, снятие, установка и сброс прогресса

Синонимы:-лвлы-levels-lvls
Администраторы и выше, установка уровня и сброс - только владелецИерархия применяется
Синтаксис команды
1-уровни<действие>[@юзер][значение]
<параметр> — обязательный[параметр] — необязательный

Без действия и без ответа на сообщение бот пришлёт памятку с тем, что умеет команда.

памятка со списком действий команды -уровни

ДействиеЧто делает
<кол-во>Поднимает участника на столько уровней.
<кол-во>Опускает на столько уровней.
<уровень>Ставит ровно указанный уровень, вверх или вниз от текущего.
Обнуляет прогресс: первый уровень и пустая полоса опыта.

Значение всегда идёт последним числом и должно быть больше нуля. Минус и ноль бот не примет и напомнит про действие снять. Само действие обязательно: -уровни @юзер 5 без слова дать команда не поймёт.

Панель с кнопками

Ответьте -уровни на сообщение участника и не пишите больше ничего, тогда бот пришлёт панель с готовыми действиями и значениями, синтаксис набирать не придётся.

панель управления уровнями с кнопками действий

В панели показано только то, что доступно вам по правам, и открыта она лишь тому, кто вызвал команду. Через пять минут панель закрывается, и бот попросит повторить команду.

Выдать и снять уровни

-уровни дать

Поднимает участника на указанное количество уровней

Синонимы:-уровни выдать-уровни add
Администраторы и вышеИерархия применяется
В ответ на сообщение
1-уровни дать<кол-во>
<параметр> — обязательный
По юзернейму или ид
1-уровни дать<@юзер><кол-во>
<параметр> — обязательный

Снятие устроено так же, только слово другое: -уровни снять @юзер 3.

ответ бота о выданных уровнях

Уровень меняется целиком, а полоса опыта внутри уровня обнуляется. Было 5 lvl и 800 XP, после дать 2 станет 7 lvl и 0 XP: набранное внутри уровня не переносится. При снятии всё то же, поэтому мелкие правки лучше делать через опыт, а не через уровни.

Если участник перешагнул ключевой уровень, ему прилетит награда за уровень, точно так же, как при обычном росте, и бот напишет об этом в ответе. В самом ответе видно «было ➔ стало», а при выдаче нескольким участникам приходит компактный список: у кого что изменилось и кого не тронули.

Задать уровень

-уровни установить

Ставит участнику конкретный уровень

Синонимы:-уровни уст-уровни сет-уровни set
Только владелецИерархия применяется
Задать уровень
1-уровни установить<@юзер><уровень>
<параметр> — обязательный

Указанный уровень ставится как есть, выше или ниже текущего, полоса опыта при этом обнуляется.

Действие закреплено за владельцем, потому что одной командой отправляет участника хоть на 50 уровень, хоть обратно. Лимиты выдачи при этом действуют и для владельца, разница между старым и новым уровнем пересчитывается в опыт и списывается из запаса.

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

Сбросить прогресс

-уровни очистить

Обнуляет уровень и опыт участника

Синонимы:-уровни сброс-уровни обнулить-уровни clear
Только владелецИерархия применяется
Сбросить прогресс
1-уровни очистить
По юзернейму или ид
1-уровни очистить<@юзер>
<параметр> — обязательный

Уровень становится первым, опыт нулевым. Значение здесь не нужно, зато бот сначала покажет текущие статы участника и попросит подтверждение кнопкой. Если сбрасываете нескольким сразу, в подтверждении будет список всех, кого это затронет.

подтверждение сброса прогресса участника

Опыт вместо уровней

-опыт

Начисление и снятие очков опыта участникам

Синонимы:-хп/xp
Администраторы и вышеИерархия применяется
Синтаксис команды
1-опыт<действие>[@юзер][значение]
<параметр> — обязательный[параметр] — необязательный

Действий здесь два, и . Всё остальное работает как в -уровни: ответ на сообщение или @юзер, до пяти участников за раз, кнопки вместо синтаксиса, если написать команду без всего.

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

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

Отмена изменений

Под ответом на каждое изменение есть кнопка «Отменить». Она возвращает участнику ровно тот уровень и опыт, что были до команды, забирает награды, которые выдала эта же команда, и возвращает потраченное из лимитов.

Нажать её можно один раз и только тому, кто менял прогресс. Если участник успел заработать опыт после вашей команды, отмена не сработает: бот скажет, что кнопка устарела, вместо того чтобы стереть набранное человеком. Живёт кнопка те же пять минут, дальше правку придётся откручивать руками.

Лимиты выдачи

Ручные правки ограничены, чтобы одна опечатка или один увлёкшийся администратор не переписали прогресс всего чата. Личных лимитов два, и оба считаются в опыте:

  • За раз можно выдать не больше десятой части того опыта, который нужен вам самим до следующего уровня. Чем выше ваш уровень, тем крупнее разрешённая выдача.
  • На неделю у вас есть запас в десять таких максимальных выдач.

Поверх личных лимитов у чата свой недельный запас на все ручные изменения, 50 000 XP, он обнуляется с началом новой недели.

Уровни пересчитываются в свою стоимость в опыте, поэтому дать 5 на высоком уровне съедает запас куда быстрее, чем на низком. Снятие тратит лимит наравне с выдачей.

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

Прогресс и лимиты под рукой

Прогресс участника
1-уровни инфо[@юзер]
[параметр] — необязательный

Уровень, накопленный опыт, сколько осталось до следующего уровня и ваши лимиты в одном сообщении. Без участника команда покажет ваш собственный прогресс. Она ничего не меняет, поэтому иерархия здесь не проверяется, посмотреть можно любого.

карточка прогресса участника с лимитами выдачи

Свои лимиты выдачи
1-уровни лимит

Только лимиты: сколько можно выдать за раз и сколько осталось от недельного запаса чата. У обеих подкоманд есть привычные замены, и , и работают они не только у -уровни, но и у -опыт.

Кому нельзя менять прогресс

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

Что должно быть включено

Команды работают только в группах и только пока в настройках включён модуль «Уровни». С выключенным модулем бот на них не отвечает.

Между правками есть пауза в пять секунд, причём -уровни и -опыт отсчитывают её отдельно: поправить уровень и сразу же опыт можно без ожидания.

Управлять уровнями и опытом могут администраторы и старшие администраторы, а установка уровня и сброс прогресса закреплены за владельцем. Раздать или отобрать эти права можно через роли и личные права.