表达式修饰符

在骰子表达式后面可以跟各种修饰符,以改变骰子的行为或输出内容。组合各种修饰符,就可以实现不同规则所需的骰子。

上界/下界

当一次投骰的点数高于上界或低于下界时,则将这次的点数视为上界/下界的值。

使用 max min 修饰符,例如:

// 普通掷 4 个 d6 骰
4d6: [5, 4, 3, 2] = 14

// 如果点数大于 3,则视为 3
4d6max3: [3v, 3v, 3, 2] = 11

// 如果点数小于 3,则视为 3
4d6min3: [5, 4, 3, 3^] = 15

重投累加

当一次投骰的点数为最大值时,可以再投一次,把所有的结果累加起来。例如玩飞行棋时,只要你投出了 6,就可以一直投,直到你没有投出 6 为止。

使用 ! 修饰符,例如:

// 2 个 d6 骰,由于第二次投出了 6,可以接着投,直到结果不是 6
2d6!: [4, 6!, 6!, 2] = 18

你也可以指定触发重投的条件:

2d6!=5   // 当骰子点数正好为 5 时重投
2d6!>4   // 当骰子点数大于 4 时重投
4d10!<=3 // 当骰子点数小于等于 3 时重投
2d6!<>4  // 当骰子点数不等于 4 时重投

你可以使用 !! 修饰符,把多次重投的结果合并在一起展示:

// 普通重投
2d6!: [4, 6!, 6!, 2] = 18

// 使用 !! 把多次重投的结果(6 + 6 + 2)合并展示
2d6!!: [4, 14!!] = 18

在有些特殊规则中,重投得到的值需要 -1 之后再求和。可以使用 !p 修饰符:

// 普通重投
2d6!: [6!, 6!, 6!, 4, 1] = 23

// 重投的结果都减去了 1
2d6!p: [6!p, 5!p, 5!p, 3, 1] = 20

重投

当一次投骰的点数为最小值时(通常是 1),重投,直到投出非最小值的点数为止。

和上文的 重投累加 类似。区别在于,它不会累加之前所有重投的结果,而是只取最后一次的结果。

可以使用 r 修饰符:

// 投 d6, 由于投出了 1,重投一次出 3,因此最终结果是 3 (r 标记表示触发了重投)
d6r: [3r] = 3

如果只需要重投一次,无论重投的结果是否还是最小值,可以使用 ro 修饰符:

// 投 d6, 投出了 1,重投一次还是出 1,那么结果就是 1,不再继续重投
d6ro: [1ro] = 1

同样可以指定触发重投的条件:

2d6r=5   // 当骰子点数正好为 5 时重投
2d6ro>4  // 当骰子点数大于 4 时重投一次
4d10r<=3 // 当骰子点数小于等于 3 时重投

优势/劣势

优势/劣势骰主要是 DND 中的概念,也类似 COC 中的奖励/惩罚骰。原本的含义是骰多个骰子,取其中最大或最小的 n 个。

可以使用 kh (取最大,Keep Highest)、k (等价于 kh) 或 kl (取最小,Keep Lowest) 修饰符:

// 4 个 d10,取最大的 2 个
4d10kh2: [4d, 10, 5d, 6] = 16

// 同上
4d10k2: [4d, 10, 5d, 6] = 16

// 4 个 d10,取最小的 1 个
4d10kl1: [5d, 4d, 3, 5d] = 3

相对地,你也可以选择丢弃其中最大或最小的 n 个。

可以使用 dl (丢弃最小,Drop Lowest)、d (等价于 dl) 或 dh (丢弃最大,Drop Highest) 修饰符:

4d10dl2    // 4 个 d10, 丢弃最小的 2 个
4d10d2     // 同上
4d10dh1    // 4 个 d10, 丢弃最大的 1 个

你可以同时丢弃最大值和最小值:

// 4 个 d10, 丢弃最大的 1 个 和最小的 2 个
4d10dh1dl2: [6d, 7d, 9, 10d] = 9

骰池

骰池是指,骰一组骰子,计算它们中满足某个条件的骰子个数,而不是把这些骰子的点数相加。

可以直接使用与数值比较的语法:

2d6=6: [4, 6*] = 1                   // 2 个 d6, 计算结果为 6 的骰子个数
4d3>1: [1, 3*, 2*, 1] = 2            // 4 个 d3, 计算结果大于 1 的骰子个数
4d3<2: [1*, 3, 2, 1*] = 2            // 4 个 d3, 计算结果小于 2 的骰子个数
5d8>=5: [2, 4, 6*, 3, 8*] = 2        // 5 个 d8, 计算结果大于等于 5 的骰子个数
6d10<=4: [7, 2*, 10, 3*, 3*, 4*] = 4 // 6 个 d10, 计算结果小于等于 4 的骰子个数

在有些规则中,我们还需要记录满足失败条件的骰子个数,并把它们从结果中减去。可以使用 f 修饰符:

// 4 个 d6, 结果大于 4 的骰子数 2 个,结果小于 3 的骰子数 1 个,因此最终结果为 2-1 = 1 个
4d6>4f<3: [2_, 5*, 4, 5*] = 1

标记

可以从投骰的结果中特殊标记出符合某些条件的结果。仅影响展示,不影响结果。

可以使用 cs (标记成功) 或 cf (标记失败) 修饰符:

// 5 个 d20, 特殊标记大于等于 16 的骰子
5d20cs>=16: [3, 20**, 18**, 15, 6] = 62

// 5 个 d20, 特殊标记小于等于 6 的骰子
5d20cf<=6: [3__, 20, 18, 15, 6__] = 62

排序

可以对投骰的结果进行排序。仅影响展示,不影响结果。

可以使用 sa (升序)、s (同 sa) 或 sd (降序) 修饰符:

4d6: [4, 3, 5, 1]   // 不排序
4d6s: [1, 3, 4, 5]  // 默认升序排序
4d6sa: [1, 3, 4, 5] // 升序排序
4d6sd: [5, 4, 3, 1] // 降序排序
Last Updated: