**roll** - 面向跑团的文本骰子指令

## 用法

`roll 表达式`

支持常见骰子写法：

- `roll 3d6`
- `roll d20+5`
- `roll 2d8+1d4+3`
- `roll d%`
- `roll 4dF`

## 说明

- `NdM` 表示掷 N 个 M 面骰，例如 `3d6`
- `d20` 等价于 `1d20`
- `d%` 表示百分骰，范围 1 到 100
- `dF` 表示 Fate/Fudge 骰，单骰结果为 -1、0、+1
- 支持用 `+`、`-` 连接多个项，也支持常数修正

## 返回格式

会返回总结果，以及每一项的明细。

例如：

- `roll 3d6`
  可能返回：
  - `3d6 = 11`
  - `+3d6=[2, 4, 5]`

- `roll d20+5`
  可能返回：
  - `d20+5 = 19`
  - `+1d20=[14] +5=5`

## 限制

为防止刷屏和滥用，当前实现会限制：

- 单项最多 100 个骰子
- 单个骰子最多 1000 面
- 一次表达式最多 20 项
- 一次表达式最多实际掷 200 个骰子
- 结果过长时会直接拒绝

## 权限

需要 `trpg.roll` 权限。

默认启动时会给系统全局授予允许，因此通常所有人都能用；如有需要可再用权限系统单独关闭。