Wiki / Core Features / Уровни и XP / Граф наград

Граф наград

Обновлено Maxime_48 · 1 час назад · Просмотры: 101

Языки: English Français Deutsch Español Português (Brasil) Italiano Nederlands Polski Türkçe Русский 日本語 한국어 中文

Граф наград - это визуальный редактор для создания продвинутых наград Leveling.

Вместо того чтобы просто назначать одну роль на одном уровне, вы можете строить цепочки наград с помощью триггеров, условий и действий.

Вкладка «Граф наград» страницы «Уровни»: палитра узлов слева и две цепочки наград на холсте - достигнутый уровень, назначающий роль, и серия, публикующая сообщение в канале


🧩 Что такое граф наград?

Граф наград - это набор связанных узлов.

Каждая цепочка обычно имеет такую структуру:

  1. Триггер - когда должна запускаться цепочка наград?
  2. Условие - кто может получить награду?
  3. Действие - что должен сделать YAWBDB?

Пример:

Когда участник достигает 10 уровня, если у него ещё нет роли Booster, назначить роль Active Member и отправить поздравительное сообщение.


⚡ Узлы-триггеры

Узлы-триггеры определяют, когда начинается цепочка.

Примеры:

  • Достигнут уровень
  • Достигнут порог XP
  • Достигнута серия
  • Первое сообщение
  • Достигнуты минуты в голосовом
  • Затухание XP
  • Престиж
  • Топ XP за день
  • Начало XP-события

Триггеры других функций (в палитре они показываются заблокированными, пока не включена соответствующая функция):

  • Победа в розыгрыше / Участие в розыгрыше (On giveaway win / On giveaway entry) - требуют функции Giveaways. Награждайте участников XP, ролями или титулами, когда они выигрывают розыгрыш или участвуют в нём.
  • Предложение создано / Предложение одобрено (On suggestion created / On suggestion approved) - требуют функции Suggestions. Начисляйте XP, когда участник отправляет предложение или получает одобрение.
  • Wordle решён - требует функции Games с включённым Wordle. Срабатывает, когда участник отгадывает ежедневный Wordle, с двумя необязательными условиями прямо на узле: отгадано не более чем за N попыток и серия Wordle ≥ N. Отлично подходит для роли-значка «отгадано за 3» или награды за серию.
  • День рождения (On birthday) - требует функции Birthdays. Срабатывает раз в год на участника, сразу после того, как публикуется поздравление с днём рождения. Сочетайте с Выдать XP или XP multiplier, чтобы дать бонус на день рождения, или выдайте разовую роль.
  • Форма отправлена - требует функции Конструктор форм. Срабатывает, когда участник отправляет любую форму. Начисляйте XP за заполнение заявки или автоматически выдавайте роль «кандидат». Добавьте узел Перезарядка, если у формы нет собственной задержки.
  • Победа в мини-игре - требует функции Games. Срабатывает, когда участник выигрывает «Виселицу», «Камень, ножницы, бумага» или «Викторину», и передаёт, какая это была игра, чтобы граф мог ветвиться по ней. Учтите, что у каждой мини-игры уже есть собственная настройка Опыт за победу - используйте этот триггер для всего, что богаче, чем XP.
  • Голос на top.gg - срабатывает, когда участник в следующий раз получает XP на этом сервере после голосования за бота на top.gg (сообщение, время в голосовом канале, реакция на его сообщение), а не в момент самого голосования - top.gg не сообщает, с какого сервера пришёл голос, поэтому граф ждёт, пока участник действительно появится здесь. Один раз на голос и на сервер; повторное голосование снова взводит его. Не зависит от отдельного множителя XP Бонус за голос на top.gg. Награждайте ролью, сообщением или бонусным XP.

Они позволяют превращать вовлечённость (участие в розыгрышах, отправку предложений) в XP. Добавьте узел Перезарядка, чтобы предотвратить фарм.


❓ Узлы-условия

Узлы-условия решают, должна ли цепочка продолжаться.

Примеры:

  • У участника есть роль
  • У участника нет роли
  • Диапазон уровней
  • Диапазон XP
  • Минимальная серия
  • Является бустером сервера
  • Возраст аккаунта
  • Возраст на сервере
  • День недели
  • Временное окно
  • Требование престижа

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


🎬 Узлы-действия

Узлы-действия определяют, что происходит, когда цепочка успешно проходит.

Примеры:

  • Назначить роль
  • Убрать роль
  • Заменить роль
  • Отправить личное сообщение
  • Отправить сообщение в канал
  • Выдать XP
  • Запустить престиж
  • Задать личный множитель
  • Присвоить титул
  • Закрепить сообщение

✏️ Переменные, которые можно использовать в сообщении

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

Переменная Во что превращается
{user} / {username} Упоминание участника
{level} Его уровень
{xp} Его общее XP
{streak} Его текущая ежедневная серия в днях
{prestige} Его ранг престижа (0, если он никогда не получал престиж)
{server} Название сервера
{event} / {event_name} Название XP-события, для двух триггеров XP-событий

После действия Запустить престиж {prestige} в последующих сообщениях показывает ранг, который участник только что достиг, а не тот, который он оставил.

Неправильно написанный заполнитель выводится как есть, так что если ваши участники видят в сообщении {presige}, прежде всего проверьте написание.


✨ Пусть ассистент построит граф

Если проще описать, что вы хотите, чем соединять узлы, Graph Assistant предлагает граф по одному предложению. Он никогда ничего не применяет сам - вы просматриваете предложение и решаете.


ℹ️ Кнопка (i) на каждой карточке

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

Что эта карточка читает. Значения, на которые она смотрит: уровень участника, его роли, как давно он на сервере и так далее. В графе команды некоторые из них отображаются зачёркнутыми: команда их не несёт, поэтому карточка, зависящая от одного из них, там никогда не сработает. Яснее всего это видно на триггере On XP threshold, потому что ему нужно знать XP участника до события, а у команды нет «до».

Что приведёт к тому, что она ничего не сделает. Это та часть, которую стоит прочитать. Несколько карточек молча пропускаются, если обязательное поле оставлено пустым - Назначить роль без выбранной роли, Отправить сообщение с пустым сообщением. Ничего не записывается в лог и ничего не помечается; граф просто выполняется без этой карточки. Панель называет точное поле, которое это вызовет.

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

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

Карточки не передают значения друг другу. Всё, что читает карточка, берётся из события, запустившего граф, и читается одинаково в каждой карточке этого графа - в первой и в последней. Поэтому карточка может использовать {user}, даже если она подключена прямо к триггеру, и поэтому нельзя заставить одну карточку что-то вычислить для использования следующей.

Кнопка (i) входит в полный редактор, поэтому появляется на десктопе. Мобильная сводка остаётся обзором только для чтения.


🧠 Логические узлы

Продвинутые графы могут использовать логические узлы для управления потоком.

Узел Что делает
Вентиль И Проходит, когда проходит каждая подключённая к нему карточка
Вентиль ИЛИ Проходит, когда проходит хотя бы одна подключённая к нему карточка
Вентиль НЕ Проходит, когда подключённая к нему карточка не проходит
Случайно Следует ровно по одному из своих исходящих путей, выбранному случайно
Задержка Ждёт, прежде чем продолжить путь
Перезарядка Блокирует свой путь на заданное число часов после срабатывания
Последовательность Следует по всем своим исходящим путям по порядку

⚠️ И, ИЛИ и НЕ читаются наоборот. Они оценивают карточки, подключённые к ним, а не те, что идут после. Это единственное место в редакторе, где стрелки не означают «затем» - они означают «является одной из проверяемых вещей». Подключайте ваши условия к вентилю, а вентиль подключайте к награде.

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

Эти узлы помогают строить более сложные системы наград, сохраняя всё наглядным.


📱 Работа на мобильных устройствах

Визуальный редактор лучше всего использовать на десктопе.

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

Для серьёзных правок графа наград используйте браузер на десктопе.


💡 Лучшие практики

🌱 Начинайте с малого

Сначала создайте одну простую награду и проверьте её.

Например:

  • Триггер: достигнут уровень 5
  • Действие: назначить роль Member+

Когда это заработает, добавьте условия и дополнительные действия.

🏷️ Используйте понятные названия узлов

Сохраняйте граф читаемым. Если вы строите много цепочек, используйте комментарии или метки там, где они доступны.

📈 Избегайте дублирования наград

Используйте условия вроде «нет роли», чтобы не назначать одну и ту же награду повторно.

⏱️ Осторожно используйте перезарядки

Перезарядки полезны для предотвращения спама, но длинные перезарядки могут затруднить тестирование.

📈 Сначала проверяйте награду на низком уровне

Прежде чем строить сложную цепочку наград на 50 уровне, проверьте ту же структуру на низком уровне.


💡 Примеры идей для наград

  • Назначить роль на 10 уровне
  • Убрать старую роль и назначить новую на 25 уровне
  • Отправить личное сообщение, когда участник достигает рубежа серии
  • Дать временный множитель XP активным участникам события
  • Объявить о начале события двойного XP
  • Дать особый титул после престижа
  • Назначить роль чемпиона дня лидеру по XP

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