Mini Kraken 骰子引擎能识别的一切——同一套记法可在网站roller、角色卡和 Discord 机器人上通用。点击任意示例即可真正掷出。
输入本指南中的任意记法,就在这里掷出——骰子以 3D 呈现并带音效。
用经典的 NdX 记法掷骰:N 是骰子数量,X 是面数。两部分都可省略,且有智能默认值。
NdX掷 N 枚 X 面的骰子并求和。数量默认为 1,因此 d20 掷的是单枚二十面骰。
d → d20省略面数时,引擎默认使用 d20。输入 d+5 等同于 1d20+5,而 3d 则掷 3d20。
d%d% 掷一枚百面骰,等同于 d100。非常适合基于百分比的系统。
dF · dF.1dF 掷一枚 Fudge 骰,结果为 -1、0 或 +1(dF.2,默认值)。dF.1 使用空白面更常见的变体。单独的快捷写法 f 掷 4dF,即标准的 Fate 检定。
(expr)dX数量可以是括号内的简单数值表达式;面数值直接写在 d 之后。(2+1)d6 掷的是 3d6。
Nd(expr)Put a constant expression in parentheses after d to calculate the number of sides. d(2+4) rolls a d6, and (2+1)d(2*3) rolls 3d6.
记法字符串是完整的数学表达式。将骰子与数字、运算符和括号组合;适用标准的运算符优先级。
+ - * / % ^ **支持加、减、乘、除、取模(%)和乘方(^ 或 **),并可用括号进行分组。
1.5 · +-小数可用在表达式的任何位置。重复的符号会被自动简化:d20+-2 变为 d20-2。
每个函数一张卡片——引擎在记法中接受的所有辅助函数。它们都可接受完整表达式(包括骰子)作为参数。
floor(x)始终向下取整到最近的整数:floor(3.9) 为 3。这是减半伤害的经典做法。
ceil(x)始终向上取整:ceil(3.1) 为 4。在系统向玩家有利方向取整时很有用。
round(x)四舍五入到最近的整数:round(2.4) 为 2,round(2.5) 为 3。
abs(x)去除符号:abs(-3) 为 3。适用于不能为负的差值与差额。
sign(x)根据值为负、零或正,分别返回 -1、0 或 1。
sqrt(x)返回该值的平方根:sqrt(16) 为 4。
pow(x, y)将第一个值取第二个值次幂:pow(2, 3) 为 8。等同于 2^3。
min(x, y)返回两值中较小者:min(2d10, 7) 将结果上限设为 7。
max(x, y)返回两值中较大者:max(2d10, 7) 保证至少为 7。
exp(x)返回欧拉数 e 的该值次幂:exp(1) 约为 2.718。
log(x)返回该值的自然对数(以 e 为底):log(10) 约为 2.303。
sin(x)以弧度计算该值的正弦。桌面游戏中很少用到,但可用于奇异公式。
cos(x)以弧度计算该值的余弦。桌面游戏中很少用到,但可用于奇异公式。
tan(x)以弧度计算该值的正切。桌面游戏中很少用到,但可用于奇异公式。
掷一组骰子并只保留最好的——或舍弃最差的。优势、劣势以及像 4d6 舍最低这样的经典属性掷骰都是这样构建的。
kN · khN · klNk 或 kh 保留最高的骰子,kl 保留最低的;其余的不计入总和。2d20kh1 是优势,2d20kl1 是劣势。
dN · dlN · dhNd 或 dl 舍弃最低的骰子,dh 舍弃最高的。4d6d1 是经典的属性值掷骰。
k → k1 · km → kl1省略数字时默认为 1:2d20k 意为 2d20k1。km 是 kl1 的别名(保留最低的骰子)。
当骰子达到其触发值(默认为最大值)时会爆骰:你额外掷一枚骰子并保留两者。爆骰可连锁。
!每枚掷出最大值的骰子都会触发一次额外掷骰,并作为独立骰子显示。
!!!! 将每次连锁爆骰累加进单枚骰子的总和,而非另列额外骰子。
!p · !!p!p 从每枚爆骰的骰子中减 1(Hackmaster 风格)。可与累加爆骰组合为 !!p。
!cp添加比较点以改变骰子爆骰的时机:d6!>=5 在 5 或 6 时爆骰,d10!=3 仅在 3 时爆骰。
ei · eiNei 是爆骰的友好别名:3d6ei 等同于 3d6!,而 3d6ei5 等同于 3d6!>=5。
重掷你不想保留的骰子。默认情况下触发条件为最小值(多数骰子上的自然 1)。
r · r(cp)r 重掷骰子直到结果不再符合触发条件。添加比较点以自定义:d20r<3 重掷 1 和 2。
ro · ro(cp)ro 对符合条件的骰子重掷一次并保留新结果,即使它再次符合也是如此。
强制骰池中的每枚骰子落在不同的值上。
u · u(cp)u 重掷重复的结果,直到所有骰子各不相同。带比较点时,仅重掷符合条件的重复项。
uouo 对每个重复项重掷一次,无论接下来掷出什么都保留。
不对骰子求和,而是统计有多少达到目标——这是像黑暗世界或暗影狂奔这类系统使用的骰池风格。
cp在骰子后紧接放一个比较点,总和就变成符合条件的骰子数量:6d10>=8 统计显示 8 或更高的骰子。
f(cp)添加 f 加上比较点即可同时统计失败;每次失败会从成功总数中减一。
将骰子标记为暴击成功或失败。这纯粹是视觉效果——它会在输出中标记骰子,但绝不改变总和。
cs(cp)cs 标记符合比较点的骰子:d20cs=20 会高亮自然 20。
cf(cp)cf 标记大失败:d20cf=1 会高亮自然 1。
掷骰后将每枚骰子单独限制在下限或上限之内。
minNmin 将任何低于该值的骰子提升至该值:4d6min2 把每个 1 变成 2。
maxNmax 将骰子上限封顶于该值:d%max50 永远不会显示超过 50。
重新排列输出中的骰子,以便更快地读取结果。
s · sa · sds 或 sa 将掷出的骰子按升序排序,sd 按降序排序。仅改变显示顺序。
用花括号包裹表达式,将其视为单个组——并在整个子掷骰之间应用保留/舍弃逻辑。
{A, B}在花括号内用逗号分隔列出一个或多个表达式。组的总和为其各表达式之和。
{...}mod若只有单个表达式,修饰符应用于每枚骰子:{4d6}k3 保留最好的 3 枚骰子。若有多个表达式,则应用于每个子总和:{2d6, 1d8, 1d4}d1 舍弃最低的表达式。
一次性将整条记法重复多次。
N#在记法前加上一个计数和 #。6#4d6k3 一次性掷出整套六项属性值。最多 100 次重复。
若干修饰符(爆骰、重掷、唯一、成功、暴击)接受一个比较点:一个运算符后跟一个数字,用以定义修饰符的触发时机。
=等于<小于>大于<=小于或等于>=大于或等于!=不等于<>不等于(备用写法)
注释与标签
为任意掷骰附加标签——非常适合为攻击和伤害类型命名。注释绝不影响计算。
行注释
// · #// 为整个表达式加标签;# 直接写在骰子记法之后即可。
块注释
/* */ · [ ]在记法中任意位置用 /* */ 或 [ ] 包裹文本。