Skip to main content

适用于 Nonebot2 的狼人杀插件

Project description

nonebot-plugin-werewolf

✨ 简单的狼人杀插件 ✨

license pypi python

uv isort black pyright ruff

NoneBot Registry Supported Adapters

📖 介绍

和朋友们来一场紧张刺激的狼人杀游戏

💿 安装

使用 nb-cli 安装 在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-werewolf
使用包管理器安装 在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
pip
pip install nonebot-plugin-werewolf
pdm
pdm add nonebot-plugin-werewolf
poetry
poetry add nonebot-plugin-werewolf
conda
conda install nonebot-plugin-werewolf

打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分追加写入

plugins = ["nonebot_plugin_werewolf"]

⚙️ 配置

在 nonebot2 项目的 .env 文件中添加如下配置

配置项 必填 默认值 说明
werewolf__enable_poke True 是否使用戳一戳简化操作流程
仅在 OneBot V11 适配器下生效
werewolf__role_preset - 覆写插件内置的职业预设
werewolf__werewolf_priority - 自定义狼人职业优先级
werewolf__priesthood_proirity - 自定义神职职业优先级
werewolf__joker_probability 0.0 小丑职业替换平民的概率, 范围[0,1]

werewolf__role_preset, werewolf__werewolf_priority, werewolf__priesthood_proirity 的配置格式请参考 游戏内容 部分

🎉 使用

[!note]

插件通过群聊+私聊进行游戏交互

使用前请确保机器人有权限发起相应对话。

举例

众所周知, QQ 官方机器人对主动消息有次数限制 (参考)

因此,本插件可能无法在 adapter-qq 下正常运行

而对于野生机器人,现有协议端通常不支持或不建议使用临时私聊消息。

在使用本插件前,应当确保机器人可以正常向玩家发送私聊消息。

指令表

指令 权限 需要@ 范围 说明
werewolf/狼人杀 群员 群聊 发起游戏 (进入准备阶段)
开始游戏 游戏发起者 群聊 [准备阶段] 游戏发起者开始游戏
结束游戏 游戏发起者 群聊 [准备阶段] 游戏发起者结束游戏
当前玩家 群员 群聊 [准备阶段] 列出参与游戏的玩家列表
加入游戏 群员 群聊 [准备阶段] 玩家加入游戏
退出游戏 群员 群聊 [准备阶段] 玩家退出游戏

其他交互参考游戏内提示

对于 OneBot V11 适配器, 启用配置项 werewolf__enable_poke 后, 可以使用戳一戳代替 准备阶段加入游戏 操作 和 游戏内的 /stop 命令

游戏内容

[!note]

插件的游戏规则参考了网络上的相关资料

如有疑问欢迎提出

插件中保存了一份 职业预设, 内容如下

总人数 狼人 神职 平民
6     2   3  
7     2   3  
8     3   3  
9     4   3  
10   4   3  
11   5   3  
12   5   3  

职业预设可以通过配置项 werewolf__role_preset 修改

示例

配置项 werewolf__role_preset

werewolf__role_preset='
[
    [6, 1, 3, 2],
    [7, 2, 3, 2]
]
'

上述配置中,[6, 1, 3, 2] 表示当总人数为 6 时,狼人、神职、平民的数量分别为 1、3、2


对于狼人神职的职业分配,默认有如下优先级:

  • 狼人: 狼人, 狼人, 狼王, 狼人
  • 神职: 女巫, 预言家, 猎人, 守卫, 白痴

职业分配优先级可以通过配置项 werewolf__werewolf_prioritywerewolf__priesthood_proirity 修改

示例

配置项 werewolf__werewolf_priority

werewolf__werewolf_priority=[1, 2, 1, 1]

上述配置中,[1, 2, 1, 1] 表示狼人的职业优先级为 狼人, 狼王, 狼人, 狼人

配置项 werewolf__priesthood_proirity

werewolf__priesthood_proirity=[11, 12, 13, 14, 15]

上述配置中,[11, 12, 13, 14, 15] 表示神职的职业优先级为 预言家, 女巫, 猎人, 守卫, 白痴

职业与数字的对应关系

上述配置示例中有大量意义不明的数字, 其对应的是 这里 的枚举类 Role 的值

以下列出目前的枚举值供参考

职业 枚举值
狼人 1
狼王 2
预言家 11
女巫 12
猎人 13
守卫 14
白痴 15
平民 0

📝 更新日志

更新日志
  • 2024.09.09 v1.1.0

    • 新增职业 小丑
    • 修复守卫无法保护自己的 bug
    • 添加部分特殊职业的说明
    • 添加游戏过程中的日志输出
  • 2024.09.04 v1.0.7

    • 优先使用群名片作为玩家名
    • 支持通过配置项修改职业分配优先级
  • 2024.09.03 v1.0.6

    • 修复预言家查验狼王返回好人的 bug
  • 2024.09.03 v1.0.5

    • 优化玩家交互体验
    • 添加游戏结束后死亡报告
  • 2024.08.31 v1.0.1

    • 支持通过配置项修改职业预设
  • 2024.08.31 v1.0.0

    • 插件开源

鸣谢

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_werewolf-1.1.0.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

nonebot_plugin_werewolf-1.1.0-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_werewolf-1.1.0.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_werewolf-1.1.0.tar.gz
Algorithm Hash digest
SHA256 375935d54072e373e9c5c02fdf24d5d5c8d7874fa3b8794a519b3c9ceeb2b9e4
MD5 6be19073c15047e483b320f6a66aef6e
BLAKE2b-256 66ee0476124ba5b8842c0e7e54833c77ee86e83e42283d86926a09f93a9ba144

See more details on using hashes here.

Provenance

File details

Details for the file nonebot_plugin_werewolf-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_werewolf-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d64e3a81a2295b27e8b45f8f23efd8894f7f8ed967edabdd08d229163dcddcf
MD5 31d974018d06b78d46e7175cbe016ad4
BLAKE2b-256 5ed66b9d3c9b3c2c76f554d5f9d187dc738868ee34a1de2342e5e5ebbfbbb6c5

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page