ダイスローラー

: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 のクリティカルロールが赤色で表示されます。

同じ閾値に対して複数のロールを判定する場合、t 閾値 と組み合わせて i 個別 修飾子を追加できます。閾値をクリアした成功したダイスの数が最後に要約されます。

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

:information_source: 現在、修飾子適用前のロール値が表示されます。これはフィードバックに応じて将来変更される可能性があります。

:no_entry: 制限事項

大きな投稿本文による荒らしを防ぐため、管理者が調整できる テーマ設定 に、ロールあたりの最大ダイス数が設定されています。デフォルトは 80 個です。

0 面ダイスと 1 面ダイスは許可されていません。0 個のダイスを転がすことも許可されておらず、パフォーマンス上の理由から約 6700 万面を超えるダイスは許可されていません。

:gear: 技術的な詳細と不正行為

ロールは、投稿の ID と作成タイムスタンプをシードとして使用する JavaScript の RNG によって計算され、投稿本文を順に処理します。ロール値は投稿が作成されるまで表示されません。

いくつかの特別なフォーマットスタイルがロールに適用され、投稿内の通常のテキストと区別されます。ただし、これでは画像を投稿するのを防げません!

ロール値は自動的に投稿本文に保存され ません。これはアーカイブの必要性に対して問題となります。これに対する解決策にはプラグインの使用が必要です。

投稿に追加のダイスロールを編集する必要がある場合、すべての以前のロールの結果を維持するために、それらは 必ず下部に追加 する必要があります。投稿の上部に新しいダイスロールを追加すると、すべてのロールの結果がランダム化されます。このため、投稿に 誤ったロールが 1 つでも含まれている場合、その後のすべてのロールが機能しなくなります。コンポーザーのプレビューでは、ダイスの仕様が :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 crit 属性に無効な数値が含まれています(crits=4,5,6 の形式である必要があります)
dice.invalid.halt_after_error 以前のエラーによりロールが停止しました。結果を表示するにはエラーを修正してください。

:discourse2: 当方でホストされていますか? テーマコンポーネントは、Standard、Business、Enterprise プランで利用可能です。

「いいね!」 33

Discourse で AI ペルソナを使用して、より汎用性の高いダイスローラーを実装することに興味がある方がいれば、私が管理しているコミュニティでこれを実装したところ、非常にうまく機能しました。AI ペルソナを設定し、Random Picker ツールを使用できるようにし、「max context posts」設定を 1 に設定し、次の指示を与えました。

ペルソナをユーザー(この場合は @dice)に接続したので、「@dice 3d6」のように言うことで、任意の投稿で呼び出すことができ、ボットは結果で応答します。私のコミュニティのこのトピックで実際に動作しているのを見ることができます(テーブルトップゲームに興味がある場合は、コミュニティに参加してください。まだ非常に新しいです)。

もちろん、これは AI を使用するため、LLM API キーが必要です。GPT-4o-mini を使用しているため、特にここで検討しているボリュームでは、コストは非常に低いです。

「いいね!」 5

興味のある方のために、元のコンポーネントを新しいAPIに合わせて更新しました。単純なサイコロを振るためにLLM(大規模言語モデル)やボットを使いたくありませんでした。元のコンポーネントがとても気に入っていたので…。

とにかく、Claudeに助けを求めなければなりませんでした。もしAIの「BLABLABLA」を見つけても、ええ、その通りです、認めます。使いました。

まだ興味のある方は、フォークをホストしています(元のgitはアーカイブされました)。

フィードバックや批判(あるいは侮辱でも構いません)を楽しみにしています。

「いいね!」 4