Try   HackMD

eeDice - DC 擲骰機器人

專案開發:Elantris
近期更新:2025-02-24
客服群組:https://discord.gg/Ctwz4BB
說明文件:https://hackmd.io/@eelayntris/eedice
捐款贊助:歐付寶贊助連結歐付寶贊助留言
邀請連結:eeDice#8838

幸運女神賜我神力! eeDice

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

tags: discord trpg dice


功能特色

遊玩 TRPG 時很常透過骰子掌控遊戲中的隨機性以增添樂趣,這隻機器人可以幫忙丟骰子並且計算這些算式。支援各種骰子語法,不管你是 GM、DM、KP 都能輕鬆使用,減少計算負擔讓玩家都能更沉浸在劇情當中。

指令說明

  • 斜線指令
    • 以下指令語法中後面有冒號的單字是「參數」
    • 記得開啟 Discord 使用者設定中的「文字&圖片」>「在打字時預覽表情符號、提及以及 markdown 語法」
    • 可以複製指令語法後貼到 DC 訊息輸入框,再選擇對應的機器人指令
  • 文字訊息
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    • 目前機器人沒有讀取訊息內容的權限,無法使用文字訊息觸發機器人指令

擲骰運算 /roll

計算一個四則運算的算式,並將其中的骰子語法替換成擲骰結果。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

指令語法:

  • /roll expression: times:
    • expression:算式
    • times:計算次數

使用範例:

丟一顆六面骰並且 +2:
/roll expression:d6 + 2

經典 DnD 創角擲骰決定六個屬性值,「重複六次」的「丟四顆六面骰後移除一顆最低點數並加總」:
/roll expression:4d6d1 times:6

假設某個角色的攻擊技能是個複雜的算式:
/roll expression: (2d6 + 2) * 2 + d4

假設某個角色有傷害抗性,傷害減半但還是要向上取整:
/roll expression:Math.ceil(3d6 / 2)

備註說明:

  • 骰子語法
    • 完整語法請參考 Dice Expressions,目前已實作完 General Dice Expressions 的部分
    • 基礎骰子語法 XdYXY 面骰,其中 X 省略時預設為 1
  • 支援 js 內建 Math 函數
    • 常用的無條件捨去 Math.floor()、無條件進位 Math.ceil()
  • 各種限制
    • 計算次數最多 10 次
    • 算式長度最多 50 個字元
    • 一個算式內最多 10 個骰子語法
    • 骰子最大面數為 d100、同一顆骰子最多擲 20 次(20d100
  • 這個指令還滿常出問題的,請多多回報給開發者 <(_ _)>

擲骰紀錄 /trace

查看一則指令結果的詳細資訊。當有人要求驗骰的時候可以給他看每個指令產生的擲骰紀錄、指令發生錯誤時可以查看錯誤訊息。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

指令語法:

  • /trace target:
    • target:指定訊息的連結或 ID

使用範例:

複製機器人回應的訊息連結:
/trace target:https://discord.com/channels/225584441026805760/225660570857111552/908572876058271784

電腦版按住 shift 後選擇複製 ID:
/trace target:225660570857111552-908572876058271784

開啟開發者模式後複製訊息 ID:
/trace target:908572876058271784

備註說明:

  • 指定訊息一直想不到更好的做法,總之先放了這幾種方式
  • 請選擇「機器人回應的訊息」,而非使用者輸入的指令訊息

隨機抽選 /pick

隨機抽選訊息內容中的其中一個選項。

指令語法:

  • /pick choices
    • choices 各個選項,以空白分隔

使用範例:

/pick choices:紅色 橘色 黃色 綠色 藍色 紫色
/pick choices:可以色色 不可以色色

備註說明:

  • 選項至少要有 2 個
  • 可以使用 Trace 指令查看總共有幾個選項、選了第幾個選項

隨機順序 /shuffle

將一連串項目以隨機順序列出。

指令語法:

  • /shuffle items:
    • items:各個項目,以空白分隔

使用範例:

/shuffle items:漢堡 薯條 可樂

備註說明:

  • 項目至少要有 2 個
  • 可以使用 Trace 指令查看各個項目洗牌前後的順序

今日運勢 /luck

一天一次,試試手氣。

指令語法

  • /luck pick pool: 抽選今日運勢
    • pool:運勢池
      • 7 段運勢:「大吉、吉、中吉、小吉、末吉、凶、大凶」機率相同
      • 12 段運勢:「大吉、吉、中吉、小吉、半吉、末吉、末小吉、凶、小凶、半凶、末凶、大凶」機率相同
      • 淺草籤運勢:「大吉、吉、半吉、小吉、末吉、末小吉、凶」
  • /luck guild 查看伺服器今日總體運勢
  • /luck guild date: 查看伺服器指定日期的總體運勢
    • date:日期格式為 YYYY-MM-DD
  • /luck reset 重置伺服器今日所有抽選運勢
  • /luck reset date: 重置伺服器指定日期所有抽選運勢
    • date:日期格式為 YYYY-MM-DD

使用範例:

抽選 7 段運勢
/luck pick pool:default

抽選 12 段運勢
/luck pick pool:twelve

抽選淺草籤運勢
/luck pick pool:asakusa

查看伺服器今日總體運勢
/luck guild

重置伺服器今日所有抽選運勢
/luck reset

備註說明:

  • 每人每天只能抽選一次
  • 只有伺服器管理員可以重置抽選紀錄,清除資料後成員可再次使用指令抽選

(BETA) 點數遊戲 /game

讓伺服器成員可以透過社群參與度換取遊戲點數,並在管理員建立的遊戲中下注遊玩。

指令語法

  • /game config key: min: max: 設定遊戲參數
    • key:參數名稱
      • 文字訊息獎勵:成員發送文字訊息時可獲得的隨機點數
      • 接聽語音獎勵:成員接聽語音頻道時每一分鐘可以獲得的隨機點數
    • min:最小值,1~10000,超過範圍代表刪除
    • max:最大值,1~10000,超過範圍代表刪除
  • /game coins member: amount: 調整成員的點數數量
    • member:指定成員
    • amount:調整數量,-100000 ~ 100000
  • /game rank 查看伺服器成員點數排行榜
  • /game create name: bet: 建立遊戲,必須在一般文字頻道裡
    • name:遊戲名稱
      • 硬幣猜正反
      • 骰子猜單雙
      • 拉霸機
      • 幸運輪盤
      • 猜拳
    • bet:下注點數數量

使用範例

設定文字訊息獎勵為 10 到 100
/game config key:MessageRewards min:10 max:100

設定接聽語音獎勵為 20 到 30
/game config key:VoiceRewards min: 20 max:30

發放 1000 點給成員A
/game coins member:@成員A amount:1000

查看伺服器成員點數排行榜
/game rank

建立「硬幣猜正反」遊戲,單次遊玩下注點數為 10 點
/game create name:coinFlipping bet:10

備註說明

  • 所有 /game 指令必須擁有伺服器管理員的權限才能使用
  • 使用 /game config 設定參數後才能讓成員透過參與社群來獲得遊戲點數
    • 發放的獎勵點數會是介於設定的最小值到最大值之間的隨機點數
    • 設定數值 1~10000,超過範圍代表移除這項設定
    • 文字訊息獎勵:在任何文字頻道內發送文字訊息即可獲得獎勵點數,需間隔十秒以上才能再次獲得點數
    • 接聽語音獎勵:接聽語音頻道時每分鐘可獲得一次獎勵點數,會在離開語音頻道或遊玩時結算
  • 使用 /game create eeDice 會建立一個討論串,玩家點選按鈕後 eeDice 會將結果記錄在討論串內,而按鈕下方出現「此交互失敗」為正常現象,可以重複點選按鈕繼續遊玩