Buckshot Roulette
这是一个适用于 AstrBot 的 “恶魔轮盘” 游戏插件,支持在群聊中进行 2 人对战,通过随机子弹和多种道具进行博弈、决出胜负。
目录
安装与使用
将插件放入 AstrBot 插件目录。
- 通常是
AstrBot/data/plugins/下的某个文件夹。 - 确保该文件夹名与插件
@register中的名称相匹配,例如本插件文件夹可命名为astrbot_plugin_buckshot_roulette/。 - 在文件夹中包含
main.py即可。
- 通常是
启动或重启 AstrBot。
- AstrBot 会自动扫描并加载本插件。
- 如果你在管理面板上看到了本插件,说明已成功加载。
(可选)配置
- 在 AstrBot 管理面板中可视化配置插件的管理员列表、等待时间等参数(如果你创建了
_conf_schema.json文件)。 - 未配置时将使用插件默认值(例如
maxWaitTime=180秒、无管理员等)。
- 在 AstrBot 管理面板中可视化配置插件的管理员列表、等待时间等参数(如果你创建了
功能概述
- 2 人对战
可以由一位玩家在群聊内创建游戏,等待另一位玩家加入后正式开始。 - 随机弹夹
每回合会随机生成 3~8 发子弹,并且子弹可随机是“实弹”或“空包弹”,进行洗牌。 - 道具系统
插件内置多种道具,可用于查看子弹、卸除子弹、恢复生命、翻转实弹/空包弹、强制对方使用道具等等,使得游戏富有变数和乐趣。 - 回合切换
每次玩家开枪后,如果没有出现“空包弹打到自己”这种情况,则切换回合;若对方被道具手铐束缚,也可多次连续行动。 - 游戏结束
当一方生命值降至 0 或低于 0 时,判定该方败北,另一方获胜;或由管理员 / 玩家主动结束游戏。
游戏流程
创建游戏
- 由任意一位玩家在群里输入:
插件将初始化一局新游戏,并提示等待另一名玩家加入。若在设定时间(默认 180 秒)内无人加入,则自动取消。/恶魔轮盘 创建游戏
- 由任意一位玩家在群里输入:
加入游戏
- 另一位玩家输入:
成功加入后,游戏状态变为/恶魔轮盘 加入游戏full(满员)。
- 另一位玩家输入:
开始游戏
- 由创建游戏的玩家(玩家1)输入:
/恶魔轮盘 开始游戏 - 插件会随机决定先/后手,并给先手方少一件道具,后手方多一件道具。
- 同时随机生成弹夹(3~8 发子弹,随机实弹/空包弹洗牌)。
- 由创建游戏的玩家(玩家1)输入:
对战进行
- 先手玩家开始回合。玩家可以:
- 输入 “自己” 或 “对方” 进行开枪;
- 输入一个道具名来使用道具;
- 输入指令查看或结束游戏。
- 如果子弹打到自己并且是“实弹”,会对自己造成伤害(可能导致死亡)。
- 如果子弹打到对方且是“实弹”,则对方受伤(可能死亡)。
- 如果子弹是“空包弹”并且开枪对象是自己,则保持本回合不变(即还是当前玩家继续行动)。否则,回合切换给另一位玩家。
- 若弹夹被打空,则进入下一轮:再次随机生成弹夹,并给双方发放随机道具。
- 先手玩家开始回合。玩家可以:
死亡或结束
- 任何一方生命值降至 0,则立即宣布另一方获胜,并结束游戏。
- 或者任意一方 / 管理员使用指令
/恶魔轮盘 结束游戏可提前结束。
可用道具
以下为插件内置的道具清单与对应效果:
手锯
下一发造成双倍伤害,不可叠加。- 使用后自动标记,直到下一次开枪后失效。
放大镜
查看当前膛内的最后一发子弹。- 仅可查看,不会移除。
啤酒
卸下当前膛内的一发子弹。- 若卸下后弹夹变空,会直接进入下一轮。
香烟
恢复1点生命值(最多6点)。- 如果当前血量已经是 6,则不生效。
手铐
跳过对方下一回合。- 一次回合中只能使用一次。若对方本回合该行动,则该行动直接被跳过。
肾上腺素
立刻选择对方的一个道具并执行其效果(不可选择肾上腺素本身)。- 对方将失去该道具。
过期药物
50% 几率恢复 2 点血,50% 减少 1 点血。- 若因此掉血导致自己死亡,则对方获胜。
逆转器
将当前膛内最后一发子弹实弹 ⇔ 空包弹。- 若当前膛内为空,无法使用。
一次性电话
随机告知当前枪内其中一发子弹是实弹还是空包弹。- 不会移除该子弹,仅做信息提示。
插件指令
| 指令 | 说明 |
|---|---|
/恶魔轮盘 创建游戏 |
在本群创建一局新游戏(等待玩家2加入)。 |
/恶魔轮盘 加入游戏 |
加入该群正在等待状态的游戏。 |
/恶魔轮盘 开始游戏 |
由玩家1执行,正式开始游戏,分配子弹与道具。 |
/恶魔轮盘 对战信息 |
查看当前对战双方的血量、道具等详细信息。 |
/恶魔轮盘 结束游戏 |
主动结束本群游戏。只能由玩家1/2或管理员执行。 |
聊天指令
- 自己 / 对方:对自己或对方开枪。
- 道具名(如“手锯”、“肾上腺素”等): 使用该道具,如有额外操作,会提示输入更多信息。
配置说明
如果插件目录下存在 _conf_schema.json 文件,AstrBot 会自动读取并可视化配置项,比如:
{
"admin": {
"description": "游戏管理员,可强制结束游戏",
"type": "list",
"default": []
},
"maxWaitTime": {
"description": "创建游戏后等待玩家2的最大时间(秒)",
"type": "int",
"default": 180
}
}
- admin:可指定一组用户ID作为管理员,他们可随时用
/恶魔轮盘 结束游戏终止当前游戏。 - maxWaitTime:游戏创建后等待另一名玩家加入的最大时长,超时则自动取消。
若未提供 _conf_schema.json,则默认 admin 为空列表,maxWaitTime 为 180 秒。你可在 main.py 中自行修改默认值。
注意事项
一个群聊只允许同时存在一局游戏
- 当一局游戏尚未结束,无法重复创建。
- 不同群互不影响,可以同时进行游戏。
玩家回合判断
- 只有当前回合的玩家才能执行 “自己”/“对方” 开枪或使用道具。
- 若有人尝试在非自己回合操作,插件将忽略。
道具上限
- 每名玩家默认最大持有 8 件道具。发放道具时如果超过此限制,会自动裁剪掉超出的部分。
如有其他疑问或需求,请在 issue 反馈。
祝游戏愉快!