# Roll Dice
扔骰子小工具。
0.2.0 版本支持 NoneBot2 2.0 正式版 API,不依赖任何特定 Adapter。
在 OneBot V11 下回复时支持 At。
## 使用
```python
# load your driver, set adapter, builtin plugin etc.
nonebot.load_plugin("nonebot_plugin_7s_roll")
nonebot.run()
```
其中 .env 文件除了 nonebot 的常规配置项外,还有可添加以下配置属性(示例中的是默认值):
```env
# 命令名(在 at 机器人时使用, `@bot /roll 1d10`)
I7S_ROLL_COMMAND="roll"
# 关键字(直接使用,无需 at, `roll 1d10`)
I7S_ROLL_TRIGGER="roll"
```
## 命令
`roll <expr>[[ ]<operator>[ ]<target>]`
其中:
- `<expr>` 计算表达式,格式为
- `<roll>[[ ][+|-][ ]<roll>]...`,其中 `roll` 不超过 20 项,其格式为:
- `<times>[d|D]<faces>[ ][<policy>]`,其中
- `<times>` 为投掷次数,不超过 20 次
- `<faces>` 为骰子面数,不超过 1000 面
- `<policy>` 为投掷方式,默认为 `sum`,可选方式有:
- `sum` 求和
- `min` 取最小值
- `max` 取最大值
- `avg` 取平均值
- `operator` 为比较运算,可以为
- `>`、`大于`
- `<`、`小于`
- `>=`、`大于等于`
- `<=`、`小于等于`
- `target` 为期望目标
## 举例
`roll 3d6`(在只有一个 `roll` 时,会显示的比较详细):
```text
3d6 投掷结果
第 1 颗:5
第 2 颗:5
第 3 颗:6
总和为 16
```
`roll 3d10+2d6+1 >20`:
```text
3d10+2d6+1 投掷结果(目标 > 20):
(5 + 1 + 9) + (4 + 5) + 1 = 25,通过
```
`roll 3d100max+4d10`
```text
3d100max+4d10 投掷结果
(max[35, 60, 29] = 60) + (1 + 1 + 5 + 8) = 75
```
## 截图
![screenshot-dice]
## LICENSE
MIT.
[screenshot-dice]: https://rikka.7sdre.am/files/8c6c5b15-0343-4d14-a203-422c7d6c634e.png
Raw data
{
"_id": null,
"home_page": "https://github.com/7sDream/nonebot_plugin_7s_roll",
"name": "nonebot-plugin-7s-roll",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "",
"keywords": "nonebot,dice,roll,trpg",
"author": "7sDream",
"author_email": "i@7sdre.am",
"download_url": "https://files.pythonhosted.org/packages/7f/03/c64e25370f642c260c4e5516ec9894ad4670caeb6f8aea34581ea710a7a8/nonebot_plugin_7s_roll-0.2.0.tar.gz",
"platform": null,
"description": "# Roll Dice\n\n\u6254\u9ab0\u5b50\u5c0f\u5de5\u5177\u3002\n\n0.2.0 \u7248\u672c\u652f\u6301 NoneBot2 2.0 \u6b63\u5f0f\u7248 API\uff0c\u4e0d\u4f9d\u8d56\u4efb\u4f55\u7279\u5b9a Adapter\u3002\n\n\u5728 OneBot V11 \u4e0b\u56de\u590d\u65f6\u652f\u6301 At\u3002\n\n## \u4f7f\u7528\n\n```python\n# load your driver, set adapter, builtin plugin etc.\nnonebot.load_plugin(\"nonebot_plugin_7s_roll\")\nnonebot.run()\n```\n\n\u5176\u4e2d .env \u6587\u4ef6\u9664\u4e86 nonebot \u7684\u5e38\u89c4\u914d\u7f6e\u9879\u5916\uff0c\u8fd8\u6709\u53ef\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\u5c5e\u6027\uff08\u793a\u4f8b\u4e2d\u7684\u662f\u9ed8\u8ba4\u503c\uff09\uff1a\n\n```env\n# \u547d\u4ee4\u540d\uff08\u5728 at \u673a\u5668\u4eba\u65f6\u4f7f\u7528\uff0c `@bot /roll 1d10`\uff09\nI7S_ROLL_COMMAND=\"roll\"\n# \u5173\u952e\u5b57\uff08\u76f4\u63a5\u4f7f\u7528\uff0c\u65e0\u9700 at, `roll 1d10`\uff09\nI7S_ROLL_TRIGGER=\"roll\"\n```\n\n## \u547d\u4ee4\n\n`roll <expr>[[ ]<operator>[ ]<target>]`\n\n\u5176\u4e2d\uff1a\n\n- `<expr>` \u8ba1\u7b97\u8868\u8fbe\u5f0f\uff0c\u683c\u5f0f\u4e3a\n - `<roll>[[ ][+|-][ ]<roll>]...`\uff0c\u5176\u4e2d `roll` \u4e0d\u8d85\u8fc7 20 \u9879\uff0c\u5176\u683c\u5f0f\u4e3a\uff1a\n - `<times>[d|D]<faces>[ ][<policy>]`\uff0c\u5176\u4e2d\n - `<times>` \u4e3a\u6295\u63b7\u6b21\u6570\uff0c\u4e0d\u8d85\u8fc7 20 \u6b21\n - `<faces>` \u4e3a\u9ab0\u5b50\u9762\u6570\uff0c\u4e0d\u8d85\u8fc7 1000 \u9762\n - `<policy>` \u4e3a\u6295\u63b7\u65b9\u5f0f\uff0c\u9ed8\u8ba4\u4e3a `sum`\uff0c\u53ef\u9009\u65b9\u5f0f\u6709\uff1a\n - `sum` \u6c42\u548c\n - `min` \u53d6\u6700\u5c0f\u503c\n - `max` \u53d6\u6700\u5927\u503c\n - `avg` \u53d6\u5e73\u5747\u503c\n- `operator` \u4e3a\u6bd4\u8f83\u8fd0\u7b97\uff0c\u53ef\u4ee5\u4e3a\n - `>`\u3001`\u5927\u4e8e`\n - `<`\u3001`\u5c0f\u4e8e`\n - `>=`\u3001`\u5927\u4e8e\u7b49\u4e8e`\n - `<=`\u3001`\u5c0f\u4e8e\u7b49\u4e8e`\n- `target` \u4e3a\u671f\u671b\u76ee\u6807\n\n## \u4e3e\u4f8b\n\n`roll 3d6`\uff08\u5728\u53ea\u6709\u4e00\u4e2a `roll` \u65f6\uff0c\u4f1a\u663e\u793a\u7684\u6bd4\u8f83\u8be6\u7ec6\uff09:\n\n```text\n3d6 \u6295\u63b7\u7ed3\u679c\n\n\u7b2c 1 \u9897\uff1a5\n\u7b2c 2 \u9897\uff1a5\n\u7b2c 3 \u9897\uff1a6\n\n\u603b\u548c\u4e3a 16\n```\n\n`roll 3d10+2d6+1 >20`:\n\n```text\n3d10+2d6+1 \u6295\u63b7\u7ed3\u679c(\u76ee\u6807 > 20)\uff1a\n(5 + 1 + 9) + (4 + 5) + 1 = 25\uff0c\u901a\u8fc7\n```\n\n`roll 3d100max+4d10`\n\n```text\n3d100max+4d10 \u6295\u63b7\u7ed3\u679c\n(max[35, 60, 29] = 60) + (1 + 1 + 5 + 8) = 75\n```\n\n## \u622a\u56fe\n\n![screenshot-dice]\n\n## LICENSE\n\nMIT.\n\n[screenshot-dice]: https://rikka.7sdre.am/files/8c6c5b15-0343-4d14-a203-422c7d6c634e.png\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A roll dice plugin for nonebot",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/7sDream/nonebot_plugin_7s_roll",
"Repository": "https://github.com/7sDream/nonebot_plugin_7s_roll"
},
"split_keywords": [
"nonebot",
"dice",
"roll",
"trpg"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5b4aed6940e10515b286080416324a8f36c8ae94ca262be1e6314783d0de6e8d",
"md5": "3118a0429f3b0007b1d1e81af8f264d0",
"sha256": "412368e031cf6cf6eab4c1304c2718a074160f794eca578b2ed606f4fbf7c719"
},
"downloads": -1,
"filename": "nonebot_plugin_7s_roll-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3118a0429f3b0007b1d1e81af8f264d0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 8527,
"upload_time": "2023-06-21T03:49:38",
"upload_time_iso_8601": "2023-06-21T03:49:38.647448Z",
"url": "https://files.pythonhosted.org/packages/5b/4a/ed6940e10515b286080416324a8f36c8ae94ca262be1e6314783d0de6e8d/nonebot_plugin_7s_roll-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7f03c64e25370f642c260c4e5516ec9894ad4670caeb6f8aea34581ea710a7a8",
"md5": "141bf6b8a02ed9e4ea376883fd3ba203",
"sha256": "056d61d7405eb8ec31fefe528c6957515d27cccd649cd8c83f386237275927b6"
},
"downloads": -1,
"filename": "nonebot_plugin_7s_roll-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "141bf6b8a02ed9e4ea376883fd3ba203",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 6175,
"upload_time": "2023-06-21T03:49:40",
"upload_time_iso_8601": "2023-06-21T03:49:40.312374Z",
"url": "https://files.pythonhosted.org/packages/7f/03/c64e25370f642c260c4e5516ec9894ad4670caeb6f8aea34581ea710a7a8/nonebot_plugin_7s_roll-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-21 03:49:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "7sDream",
"github_project": "nonebot_plugin_7s_roll",
"github_not_found": true,
"lcname": "nonebot-plugin-7s-roll"
}