Бросатель кубиков

||||
-|-|
:discourse2: | Краткое описание | Dice Roller добавляет в ваши сообщения Discourse мощный инструмент броска кубиков, который идеально подходит для форумных игр!
:hammer_and_wrench: | Ссылка на репозиторий | https://github.com/discourse/discourse-dice
:open_book: |Новичок в темах Discourse? | Начальное руководство по использованию тем Discourse

Установить этот компонент темы

:information_source: Администраторы: после установки рассмотрите возможность отключения настройки discourse narrative bot disable public replies, так как данный компонент темы полностью заменяет поведение бота по броску кубиков.

:game_die: Основы использования

Компонент темы интерпретирует броски, оформленные как [wrap=dice].

[wrap=dice]d20[/wrap]
[wrap=dice]d100[/wrap]
[wrap=dice]2d6[/wrap]

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

[wrap=dice]2d6+3t12[/wrap]

image

:woman_scientist: Расширенные возможности: критические удары, раздельные броски

Вы можете указать конкретные естественные значения бросков, которые будут считаться «критическими ударами», с помощью параметра crit=. Критические удары проверяются до применения аддитивного модификатора.

[wrap=dice crit=1,100]1d100[/wrap]
[wrap=dice crit=1,20]d20+3[/wrap]

image

Если на вашем форуме важны определенные значения критического удара, администратор может добавить дополнительный CSS для их выделения. В этом примере критические удары со значением 1 окрашиваются в красный цвет.

Если вы разрешаете проверку нескольких бросков на соответствие одному порогу, вы можете добавить модификатор i Individual (Индивидуально) вместе с t Thresholds (Пороги). В конце будет подсчитано количество кубиков, успешно прошедших порог.

[wrap=dice]5d100t60i[/wrap]
[wrap=dice]3d20-5t0i[/wrap]

:information_source: В настоящее время показываются результаты бросков до применения модификаторов. В будущем это может измениться в зависимости от обратной связи.

:no_entry: Ограничения

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

Кубики с 0 и 1 гранями не допускаются. Бросок 0 кубиков запрещен, а кубики с более чем ~67 миллионами граней не допускаются по соображениям производительности.

:gear: Технические детали и мошенничество

Броски рассчитываются в JavaScript с использованием генератора псевдослучайных чисел (RNG), который инициализируется идентификатором сообщения и временем его создания, проходя по тексту сообщения в порядке очереди. Значения бросков не видны до создания сообщения.

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

Значения бросков не сохраняются в теле сообщения автоматически. Это создает проблему для архивирования. Для решения этой проблемы потребуется использование плагина.

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

Предварительный просмотр в редакторе подскажет, является ли ваша спецификация кубиков :game_die: корректной или :warning: ошибочной.

Хотя эти меры могут помочь предотвратить случайное мошенничество, упорный мошенник может попытаться предсказать, когда ему следует отправить сообщение. Если вы рассматриваете это для чего-то ценного, поручите доверенному пользователю, который не может получить награду, авторизовать сообщение, или используйте независимый источник, такой как https://random.org , который предлагает платные услуги для проверяемых розыгрышей и лотерей.

Помните: получайте удовольствие!

Настройки

Имя Описание
max dice Максимальное количество кубиков
Перевод Значение по умолчанию
dice.result.success_count.one (%{count} Успех)
dice.result.success_count.other (%{count} Успехов)
dice.excessive.quantity.one Избыточное количество кубиков (макс. %{count})
dice.excessive.quantity.other Избыточное количество кубиков (макс. %{count})
dice.excessive.faces Количество граней кубика не может превышать 67 000 000
dice.missing.faces Неверная спецификация кубика: отсутствует количество граней
dice.invalid.generic Неверная спецификация кубика. Формат: 2d20+3
dice.invalid.quantity Количество кубиков не может быть 0
dice.invalid.faces Количество граней кубика не может быть 0 или 1
dice.invalid.modifier Модификатор не может быть 0
dice.invalid.threshold Порог не может быть 0
dice.invalid.crits Неверные числа в атрибуте crits. (Должно быть crits=4,5,6)
dice.invalid.halt_after_error Бросок остановлен из-за предыдущей ошибки. Исправьте ошибки, чтобы увидеть результаты.

:discourse2: Хостинг у нас? Компоненты тем доступны для использования на наших тарифных планах Standard, Business и Enterprise.

33 лайка

Если кто-то заинтересован в реализации более универсального генератора кубиков в Discourse с использованием AI-персоны, я уже сделал это на одном из управляемых мной сообществ, и это работает превосходно. Я настроил AI-персону, разрешил ей использовать инструмент «Случайный выборщик», установил настройку «макс. контекстных постов» на 1 и дал ей следующие инструкции:

Я связал персону с пользователем (в данном случае @dice), чтобы её можно было вызвать в любом посте, написав что-то вроде @dice 3d6, и бот ответит результатом. Вы можете увидеть это в действии в этой теме моего сообщества (если вас интересует настольные игры, не стесняйтесь присоединиться к сообществу — оно ещё очень новое).

Конечно, это использует ИИ, поэтому требуется API-ключ LLM. Я использую GPT-4o-mini, поэтому стоимость очень низкая, особенно для того объёма, с которым я работаю здесь.

5 лайков

Для тех, кому это может быть интересно, я обновил оригинальный компонент для нового API. Я не хотел использовать LLM или бота для простого броска кубика — мне так понравился оригинальный компонент…

В любом случае, мне пришлось попросить Клода помочь, так что если кто-то заметит «ИИ-БЛАБЛАБЛА», да, вы правы, я признаюсь: я использовал его.

Для тех, кто всё ещё заинтересован, я размещён форк (оригинальный репозиторий был заархивирован).

С нетерпением жду отзывов и критики (или даже оскорблений — мне всё равно).

4 лайка