# @3d-dice/dice-parser-interface 中文文档

规范地址：https://npmcn.com/package/%403d-dice/dice-parser-interface/

版本：0\.2\.1
npm 元数据更新时间：2023-02-08T14:34:59.919Z
中文译文更新时间：2026-11-06T09:26:29.131Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%403d-dice/dice-parser-interface
原文对照：https://npmcn.com/package/%403d-dice/dice-parser-interface/?lang=original
项目主页：https://fantasticdice.games/
源码仓库：https://github.com/3d-dice/dice-parser-interface

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：14.6 kB，5 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：1 个
- 首次发布：2022-05-26T16:51:13.070Z
- 最新版本发布：2023-02-08T14:34:59.648Z
- 近 30 天下载量：3594（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 0 个）

## 中文简介

解析器接口, 使用 @ 3d- dice/ dice- roller- parser 来解析 roll20 格式字符串

## 安装

```sh
npm install @3d-dice/dice-parser-interface
```

也可以使用：`pnpm add @3d-dice/dice-parser-interface`、`yarn add @3d-dice/dice-parser-interface`、`bun add @3d-dice/dice-parser-interface`

## README

# Dice 解析器接口

这个模块仅仅提供了介于 [@ 3d- dice/ dice- roller- parser](https://github.com/3d-dice/dice-roller-parser) 财务报告和审定财务报表 [@ 3d- diice/ diice- box (简体中文)](https://github.com/3d-dice/dice-box)。自 `dice-roller-parser` 是另一个人模块的叉子, 我不想把这个接口包含在软件包中.

`FDP` (Fantastic Dice Parcer)已经更名为 `Dice Parser Interface` 为同义词. 这个 `@3d-dice/fdp` npm 模块已取消定价

## 它会做什么

此模块允许使用更高级的卷 `dice-box`。所有支持的卷被记录在 [卷20 剂量规格](https://roll20.zendesk.com/hc/en-us/articles/360037773133-Dice-Reference#DiceReference-Roll20DiceSpecification)

## 怎样用

使用 :

```
npm install @3d-dice/dice-parser-interface
```

然后创建一个新的内存 `dice-parser-interface`

```javascript
import DiceParser from '@3d-dice/dice-parser-interface'

const DP = new DiceParser()
```

DP类现在有方法解析原始标记,处理再卷并计算最终结果来自 `dice-box`

```html
<form id="dice-to-roll">
  <input id="input--notation" class="input" placeholder="2d20" autocomplete="off" />
</form>
```

```javascript
const form = document.getElementById("dice-to-roll")
const notationInput = document.getElementById("input--notation")

const submitForm = (e) => {
  e.preventDefault();
    const notation = DP.parseNotation(notationInput.value)
}

form.addEventListener("submit", submitForm)
```

## 方法

### `parseNotation`(单位:千美元)`string`,默认值 : `''`(中文(简体) )

接受骰子字符串输入,解析并返回解析输入的JSON表示.

示例 `DP.parseNotation('4d6')`

```json
[
  {
    "qty": 4,
    "sides": 6,
    "mods": [],
    "rolls": [
      {
        "sides": 6,
        "groupId": 0,
        "rollId": 0,
        "id": 0,
        "theme": "sunset",
        "result": 1
      },
      {
        "sides": 6,
        "groupId": 0,
        "rollId": 1,
        "id": 1,
        "theme": "sunset",
        "result": 3
      },
      {
        "sides": 6,
        "groupId": 0,
        "rollId": 2,
        "id": 2,
        "theme": "sunset",
        "result": 6
      },
      {
        "sides": 6,
        "groupId": 0,
        "rollId": 3,
        "id": 3,
        "theme": "sunset",
        "result": 6
      }
    ],
    "value": 16
  }
]
```

另见: [只要分析一下值](https://github.com/3d-dice/dice-roller-parser#just-parse-the-value)

### `handleRerolls`(单位:千美元)`array`,默认值 :`[]`(中文(简体) )

这种方法接受一阵骰子卷(由 `parseNotation`,更新方式为 `dice-box`),并返回需要重新滚动的新骰子对象。 可以产生回滚的卷卷的例子包括:起爆,穿透和复合卷(例如: `6d6!`) (中文(简体) ). 也支持回转和回回回回回回转注(如: `2d12r1`) (中文(简体) ).

#### 骰子对象 :

| 财产 | 类型 | 说明 |
| --- | --- | --- |
| 组 | 单位 | 返回目标所属组 |
| 滚动 | 单位或字符串 | 卷之九·诸方(下)\\诸方门目(下) 死活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活 这笔费用将按下列方式递增: `.1` 每次翻转 |
| 边 | 单位 | 倒转的倒数 |
| qty (英语) | 单位 | 掷骰子数. 倒数第一,但需要 `dice-box` |

示例

```json
[
  {
    "groupId": 0,
    "rollId": "2.1",
    "sides": 6,
    "qty": 1
  },
  {
    "groupId": 0,
    "rollId": "3.1",
    "sides": 6,
    "qty": 1
  }
]
```

### `parseFinalResults`(单位:千美元)`array`,默认值 : `[]`(中文(简体) )

所有卷和回滚完成后,可以将结果对象传递给 `parseFinalResults` 以获得骰子卷的最终结果。 这通常发生在内部 `dice-box`是因为 `onRollComplete` 调用方法.

示例

```javascript
const results = DP.parseFinalResults(results)
```

## 拼凑起来

### 示例 HTML

### 示例 Java 脚本

## 洞穴

这个模块不做的一件事是提供接口,为滚动标记字符串提供输入或显示最终结果. 预计开发者将创建自己的投入和产出,或使用来自 [@ 3d- diice/ diice- ui (英语)](https://github.com/3d-dice/dice-ui)

## 常见问题

### @3d-dice/dice-parser-interface 是什么？

解析器接口, 使用 @ 3d- dice/ dice- roller- parser 来解析 roll20 格式字符串

### 如何安装 @3d-dice/dice-parser-interface？

在项目目录运行 npm install @3d-dice/dice-parser-interface，或使用 pnpm add / yarn add / bun add。

### @3d-dice/dice-parser-interface 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/3d-dice\_\_dice-parser-interface 是否存在。

### @3d-dice/dice-parser-interface 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @3d-dice/dice-parser-interface 可以商用吗？

@3d-dice/dice-parser-interface 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @3d-dice/dice-parser-interface 的下载量有多少？

根据 npm 官方下载统计，@3d-dice/dice-parser-interface 在 2026/10/05 – 2026/11/03 这 30 天内被下载 3,594 次，日均约 120 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @3d-dice/dice-parser-interface 还在维护吗？

最新版本 0\.2\.1 发布于 2023/02/08（3 年前）；至今共发布 2 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/05/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

