ダイスローラー

: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: 制限事項

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

0面および1面のサイコロは許可されていません。0個のサイコロを振ることはできず、パフォーマンスの理由から、約6700万面を超えるサイコロも許可されていません。

:gear: 技術的な詳細とチートについて

ロールは、投稿のIDと作成タイムスタンプでシードされた乱数生成器(RNG)を使用して JavaScript で計算され、投稿本文の順に処理されます。投稿が作成される前にロール値が表示されることはありません。

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

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

投稿に追加のサイコロロールを追加する必要がある場合、それらの 最後に追加する必要があります。これにより、以前のすべてのロールの結果が保持されます。投稿の先頭に新しいサイコロロールを追加すると、すべてのロールの結果がランダム化されます。このため、投稿に 誤ったロール が含まれていると、その後のすべてのロールが機能しなくなります。

コンポーザーのプレビューでは、サイコロの指定が :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=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