骰子相关
骰子相关
注意
由于腾讯的要求,本功能在 QQ官方 平台上暂不可用。
骰子功能可以用来进行普通掷骰、CoC 百分骰检定、奖励骰与惩罚骰检定,也支持多轮投掷、D&D 优势/劣势和 Fate 骰等常见写法。
第一次使用
不知道从哪里开始时,可以直接试试下面这些指令:
.r
.r2d6+3
.ra70
.rb2 70
.rp1 50.r:投掷一颗百面骰;.r2d6+3:投掷 2 颗六面骰,将点数相加后再加 3;.ra70:进行一次成功率为 70 的百分骰检定;.rb2 70:以成功率 70 进行检定,并使用 2 颗奖励骰;.rp1 50:以成功率 50 进行检定,并使用 1 颗惩罚骰。
.r、.ra、.rb 和 .rp 这些掷骰指令不区分英文字母大小写,开头的 . 也可以换成 / 或中文句号 。。例如 .r3d6、/R3D6 和 。r3d6 都可以使用。
目前指令后只能填写数字或骰子表达式,不支持附加掷骰原因、技能名等文字描述。
常用进阶写法
下面这些指令可以直接复制使用:
| 想做什么 | 指令 |
|---|---|
独立投掷 5 次 D20 | .r5#d20 |
| 进行一次带 +5 加值的 D&D 优势投掷 | .radv+5 |
投掷 4 颗 D6,只保留最高的 3 颗 | .r4d6kh3 |
投掷 4 颗 D6,出现 1 时重骰一次 | .r4d6ro=1 |
投掷一颗会在掷出 6 时继续追加的 D6 | .rd6! |
投掷 10 颗 D6,统计不低于 5 的骰子数量 | .r10d6>=5 |
取 2D6 的结果与 8 中较小的值 | .rmin(2d6,8) |
后面的章节会分别介绍这些写法。复杂表达式也可以组合使用,例如:
.r10d6ro=1>=5sa这条指令表示:投掷 10 颗六面骰;出现 1 时重骰一次;然后统计不低于 5 的骰子数量,并将投掷明细从小到大排列。
怎么看投掷结果
普通投掷结果通常由“使用的表达式、投掷明细、最终结果”组成。明细中可能出现下面这些标记:
| 标记 | 含义 |
|---|---|
discarded | 这几颗骰子已被丢弃,不计入结果 |
reroll | 展示一颗骰子重骰前后的点数 |
success | 符合成功条件的骰子数量 |
failure | 符合失败条件的骰子数量 |
使用 # 多轮投掷时,每一轮都会单独编号并显示结果。
普通掷骰 .r
需要投普通骰、计算带加值的结果,或者使用其他骰子表达式时使用 .r。
| 指令 | 效果 |
|---|---|
.r | 投掷 D100 |
.rd20 | 投掷 1 颗二十面骰 |
.r3d6 | 投掷 3 颗六面骰并相加 |
.r3d6+2 | 投掷 3 颗六面骰,结果加 2 |
.r(2d8+4)*2 | 使用括号组合算式 |
骰子表达式同样不区分大小写。D20 中,D 前的数字是骰子数量,D 后的数字是每颗骰子的面数。省略数量时默认为 1,单独写 D 时则表示 D100。
支持 +、-、*、/、X、%、^ 和中英文括号。其中 X 与 * 都表示乘法,两个数字之间的 % 表示取余,^ 表示非负整数次幂。表达式遵循通常的四则运算顺序,也可以加入空格;需要改变计算顺序时请使用括号。除数和取余的除数不能为 0。
百分骰与最小值、最大值
| 表达式 | 效果 |
|---|---|
D% | 投掷一颗百分骰,等同于 D100 |
2D% | 投掷两颗百分骰并相加,等同于 2D100 |
MIN(2D6,8) | 取 2D6 的结果与 8 中较小的值 |
MAX(D20+3,10) | 取 D20+3 的结果与 10 中较大的值 |
MIN 和 MAX 可以填写两个或更多参数,也可以互相嵌套,例如 MIN(3,MAX(D6,2))。
CoC 百分骰检定 .ra
需要根据技能值判断成功等级时使用 .ra:
.ra70这会投掷一次 D100,以 70 为成功率判断大成功、极难成功、困难成功、成功、失败或大失败。省略成功率时默认为 50,例如 .ra 等同于 .ra50。
成功率必须填写非负整数。检定采用当前群聊设置的房规;不知道选哪套时可以继续使用默认的 C2。
奖励骰与惩罚骰 .rb、.rp
CoC 检定需要奖励骰时使用 .rb,需要惩罚骰时使用 .rp:
| 指令 | 效果 |
|---|---|
.rb | 1 颗奖励骰,成功率 50 |
.rb2 | 2 颗奖励骰,成功率 50 |
.rb2 70 | 2 颗奖励骰,成功率 70 |
.rp1 70 | 1 颗惩罚骰,成功率 70 |
参数顺序固定为“奖惩骰个数、成功率”。只写一个数字时,它表示奖惩骰个数,而不是成功率。因此,想以成功率 70 使用 1 颗奖励骰,应写成 .rb1 70。
奖惩骰个数可以填写 0~100。也可以在普通骰表达式里直接写:
| 表达式 | 效果 |
|---|---|
D100B2 | 使用 2 颗奖励骰 |
D100P2 | 使用 2 颗惩罚骰 |
D100B2P1 | 奖励骰与惩罚骰抵消,等同于 D100B1 |
B 或 P 后省略数量时默认为 1,例如 D100B 等同于 D100B1。
奖励骰会从可选结果中取较小值,惩罚骰会取较大值,不会把多个完整百分骰相加;填写 0 颗时就是一次普通的 D100。B、P 只适用于百分骰。使用 .rD100B2 只会给出点数;需要同时判断成功等级时,请使用 .rb2 [成功率] 或 .rp2 [成功率]。
多轮投掷
使用 # 可以把同一个表达式独立投掷多轮:
| 表达式 | 效果 |
|---|---|
5#D20 | 独立投掷 5 轮 D20,分别显示每轮结果 |
5#2D6+3 | 独立计算 5 轮 2D6+3 |
5D20 | 在同一轮投掷 5 颗 D20,将结果相加 |
5#D20 和 5D20 并不相同:前者得到 5 个互相独立的结果,后者只得到 5 颗骰子点数相加后的一个结果。
多轮投掷的基础骰数量按全部轮次合计。例如 100#2D6 一共投掷 200 颗基础骰,正好达到当前上限。
优势、劣势与 Fate 骰
| 表达式 | 效果 |
|---|---|
ADV | D&D 优势骰,等同于 2D20KH1 |
ADV+5 | 优势骰的结果加 5 |
DIS | D&D 劣势骰,等同于 2D20KL1 |
DIS+5 | 劣势骰的结果加 5 |
4F、4DF | 投掷 4 颗 Fate/Fudge 骰 |
例如可以发送 .radv+5 或 .rdis+5。4F 与 4DF 是同一种 Fate 骰写法。
优势骰会投掷两颗 D20 并取较高的一颗,劣势骰则取较低的一颗。Fate 骰的每颗骰子只会得到 +、0 或 -,分别按 +1、0、-1 相加得到最终结果。
保留与丢弃骰子
这类写法适合属性生成、优势取值等需要从一组骰子中挑选结果的场景。
| 写法 | 含义 | 示例 |
|---|---|---|
K、KH | 保留最高的若干颗 | 4D6KH3:4 颗骰子中保留最高 3 颗 |
Q、KL | 保留最低的若干颗 | 4D6KL3:4 颗骰子中保留最低 3 颗 |
DH | 丢弃最高的若干颗 | 4D6DH1:丢弃最高的 1 颗 |
DL | 丢弃最低的若干颗 | 4D6DL1:丢弃最低的 1 颗 |
修饰符后的数量省略时默认为 1,例如 4D6KH 等同于 4D6KH1。
K0、Q0、KH0 和 KL0 无效;DH0 和 DL0 表示不丢弃任何骰子。
重骰
重骰条件可以使用 =、<、<=、> 或 >=。
| 表达式 | 效果 |
|---|---|
4D6RO=1 | 每颗掷出 1 的骰子最多重骰一次 |
4D6R=1 | 每颗掷出 1 的骰子持续重骰,直到结果不再是 1 |
D20RO<=2 | 掷出 1 或 2 时最多重骰一次 |
RO 表示“只重骰一次”,R 表示“重骰到条件不再成立”。会让循环必定持续下去的条件会被拒绝。
重骰会用新点数替换原来的点数。例如一颗骰子先后掷出 1→1→4,使用 R=1 后最终按 4 计算;使用 RO=1 时只重骰一次,第二次掷出的 1 就是最终结果。
爆炸骰
| 表达式 | 效果 |
|---|---|
D6! | 掷出最大点数 6 时追加一颗骰子,追加骰仍可继续爆炸 |
D6!! | 复合爆炸,将追加骰点数合并到原骰结果中 |
D6!P | 穿透爆炸,每颗追加骰的点数减 1 |
D6!>=5 | 将爆炸条件改为“不低于 5” |
省略条件时,爆炸条件默认为掷出该骰的最大点数。重骰与爆炸可以组合,例如 D6R=1!。
爆炸骰与重骰不同:重骰会替换原点数,爆炸骰会保留原点数并追加新的骰子。普通爆炸和复合爆炸的合计结果相同,但复合爆炸会把连续追加的点数合并显示;穿透爆炸则会让每颗追加骰的点数减 1。
成功数、失败数与排序
| 表达式 | 效果 |
|---|---|
10D6>=5 | 每颗不低于 5 的骰子计为 1 个成功 |
10D6>=5F=1 | 每颗不低于 5 的骰子计 1 个成功,每颗 1 点骰计 1 个失败,结果为成功数减失败数 |
4D6SA | 将明细按点数从低到高显示 |
4D6SD | 将明细按点数从高到低显示 |
F 失败条件必须和前面的成功条件一起使用。SA、SD 只改变明细的显示顺序,不会改变计算结果。
成功和失败条件也可以使用 =、<、<=、> 或 >=。这里的 F 跟在成功条件后表示“失败条件”;单独写成 4F 或 4DF 时才表示 Fate 骰。
写有成功条件时,最终结果是“成功数量”,不再是所有骰子的点数之和。例如 10D6>=5 掷出 4 颗不低于 5 的骰子,结果就是 4;再加入失败条件后,每个失败会从成功数量中减 1。
多个修饰符一起使用时,会依次完成重骰、爆炸、保留或丢弃,最后再统计成功数和失败数;排序仍然只影响显示。
同一类操作不要重复填写。例如一组骰子不能同时使用 KH 和 KL,也不能同时写两个重骰条件。不能组合的写法会直接给出提示。
A 骰与 C 骰
A 骰语法可以统计成功数;独立写法还可以设置追加线,在达到条件时继续投掷。C 骰用于 Double Cross 风格的爆炸骰。只想统计成功数量时,使用 A 或前面的 >= 写法都可以。
不带 D 的 A/C 写法如下,数量和追加线(C 骰为爆炸线)必须填写:
数量A追加线[K成功线][M面数]
数量C爆炸线[M面数]其中方括号里的部分可以省略;省略时 A 骰使用 10 面骰、成功线 8,C 骰使用 10 面骰。
| 表达式 | 效果 |
|---|---|
5A6K8M10 | 投掷 5 颗十面骰,不低于 8 计为成功,不低于 6 时追加骰子 |
5D10A8 | 投掷 5 颗十面骰,统计达到 8 的骰子 |
3C6M10 | 投掷 3 颗十面骰,爆炸线为 6 |
以 5A6K8M10 为例:5 是第一轮骰子数量,A6 表示不低于 6 时追加一颗骰子,K8 表示不低于 8 计为成功,M10 表示使用十面骰;最终结果是所有轮次的成功总数。若只想投掷一轮并统计成功,可写成 5D10A8 或 5D10>=8。
5D10A8 是普通 D 写法的成功统计,追加线默认高于骰面,因此不会继续追加。3C6M10 则会从 3 颗十面骰开始,不低于 6 的骰子进入下一轮,并按 Double Cross 的方式计算结果。
C 骰不是把所有轮次的点数直接相加:每触发一轮追加会按骰面增加一段分数,最后一轮取最高点;第一轮全部掷出 1 时结果为 0。
如果只是普通投骰,通常不需要使用这一节的语法。
检定房规
不同规则对大成功和大失败的判定可能不同。发送下面的指令可以查看当前房规:
骰子房规| 指令 | 效果 |
|---|---|
骰子房规 | 查看当前群聊使用的房规 |
骰子房规 列表 | 查看全部可选房规及其判定方式 |
骰子房规 C0 | 将当前群聊改为 C0 |
骰子房规 DG | 将当前群聊改为 Delta Green |
骰子房规 重置 | 恢复默认房规 C2 |
目前支持 C0~C5、Delta Green(DG)和 BRP,默认使用 C2。完整的大成功、大失败判定方式可以直接通过 骰子房规 列表 查看。
| 房规 | 判定特点 |
|---|---|
| C0(CoC 7e 规则书) | 仅 1 大成功;技能低于 50 时 96~100 大失败,否则仅 100 大失败 |
| C1 | 技能低于 50 时仅 1 大成功,否则 1~5 大成功;大失败与 C0 相同 |
| C2(默认) | 1 始终大成功,2~5 在检定成功时为大成功;100 始终大失败,96~99 在检定失败时为大失败 |
| C3 | 1~5 始终大成功,96~100 始终大失败 |
| C4 | 大成功为不超过 min(5, 技能值/10) 的结果(向下取整);低技能时的大失败范围也会随技能变化 |
| C5 | 大成功为不超过 min(2, 技能值/5) 的结果(向下取整);技能低于 50 时 96~100 大失败,否则 99~100 大失败 |
| Delta Green | 成功时,1 或对子(如 11、22)为大成功;失败时,100 或对子为大失败;不区分困难和极难成功 |
| BRP | 1 或不超过技能五分之一时为特殊成功;96~100 必定失败,大失败范围随技能变化 |
C0~C5 除表中大成功和大失败的区别外,都会按技能的二分之一、五分之一继续判断困难成功和极难成功。房规只用于 .ra、.rb、.rp 检定,普通 .r 表达式只返回骰子结果。
只有群主、群管理员和机器人超级用户可以修改群聊房规;其他用户仍可查看房规。私聊固定使用默认房规 C2。
房规指令也可以写成 .dice房规、/dice房规 或 。dice房规,其中 dice 也可以写成全大写 DICE。列表还可以写成 list、帮助 或 help,重置还可以写成 reset。
| 房规 | 可用名称 |
|---|---|
| C0 | C0、COC0、COC7、COC7E、标准、0 |
| C1~C5 | C1~C5、COC1~COC5、1~5 |
| C2 | 还可以使用 默认 |
| Delta Green | DG、Delta Green、delta_green、绿色三角洲、6 |
| BRP | BRP、7 |
指令速查
| 指令 | 用途 |
|---|---|
.dice | 查看骰子菜单,也可以使用 /dice |
.r[表达式] | 普通掷骰;不填写表达式时投掷 D100 |
.ra[成功率] | 百分骰检定;成功率默认为 50 |
.rb[个数] [成功率] | 奖励骰检定;个数默认为 1,成功率默认为 50 |
.rp[个数] [成功率] | 惩罚骰检定;个数默认为 1,成功率默认为 50 |
骰子房规 [房规] | 查看或修改群聊检定房规 |
使用限制
- 表达式最多 500 个字符;
- 一条表达式最多投掷 200 颗基础骰,多轮投掷按全部轮次合计;
- 支持 1~10000 面骰;
- 多轮投掷支持 1~100 轮。
超出限制或表达式写法有误时,机器人会返回对应提示。连续重骰或爆炸次数过多时也会自动停止,避免投掷一直持续下去。
