Skip to content

骰子

你可以使用以下两种方法来描述一个骰子。

方法一:使用 ADVDice

当你需要完全控制掷骰逻辑,或者想要实现一些特殊的随机效果(例如加权骰子、从服务器获取随机数等),可以传入一个 ADVDice 对象。

ADVDice 类的参数如下:

参数名类型描述
namestring骰子的名称,会显示在检定提示中,例如“力量检定骰”。
roll() => number一个返回随机整数的函数,代表一次投掷的结果。

例如,定义一个始终掷出最大值的“幸运骰子”:

typescript
const luckyDice = {
    name: '幸运骰',
    roll: () => 20, // 始终返回20
};

方法二:使用 DiceExpression(推荐)

这是最简便的方式:直接用一个形如 mdn 的字符串来表示掷出 mn 面骰子的点数总和。

  • 基本格式{数量}d{面数},例如 2d6 表示投掷两个六面骰子并求和。
  • 数量可以省略,省略时默认为 1。例如 d6 等价于 1d6
  • 支持恒定修正:你还可以在表达式末尾附加 +- 加一个固定值,例如 2d6+31d20-1,这种恒定修正会直接附加到骰子总和上。

示例:

  • d6:一个六面骰子(1~6)。
  • 2d4:两个四面骰子,点数加和(2~8)。
  • 3d6+2:三个六面骰子点数加和后再加2(5~20)。
  • d20-1:一个二十面骰子减1(0~19)。