尝试修复逻辑错误
This commit is contained in:
@@ -231,6 +231,50 @@ if game_type == 'werewolf':
|
||||
|
||||
- 状态:成功
|
||||
|
||||
[2025-11-07_10:59:09]
|
||||
- 已修改:
|
||||
1. games/werewolf.py - 支持在私聊中使用狼人杀技能(方案2实施)
|
||||
|
||||
- 更改:
|
||||
1. 新增 _find_player_game(user_id) 方法,根据玩家ID查找其参与的游戏
|
||||
2. 修改 _handle_skill() 方法,支持从私聊中使用技能指令
|
||||
3. 修改 _wolf_group_chat() 方法,支持从私聊中发送狼人群聊
|
||||
4. 修改 _private_chat() 方法,支持从私聊中发送玩家私聊
|
||||
5. 修改 _witch_pass() 方法,支持从私聊中跳过女巫行动
|
||||
6. 添加日志输出,显示在私聊中使用功能的情况
|
||||
7. 实现逻辑:先尝试用当前chat_id查找游戏(群聊场景),找不到则通过user_id查找玩家游戏(私聊场景)
|
||||
|
||||
- 原因:
|
||||
解决私聊中无法使用技能的问题。游戏在群里创建,但玩家需要在私聊中使用技能以保密。
|
||||
之前的设计只能在游戏所在群使用技能,现在支持在私聊中使用,查找玩家参与的游戏并操作。
|
||||
|
||||
- 阻碍因素:
|
||||
无
|
||||
|
||||
- 状态:成功
|
||||
|
||||
[2025-11-07_11:06:58]
|
||||
- 已修改:
|
||||
1. games/werewolf.py - 改为全局唯一游戏模式(不再按chat_id区分)
|
||||
|
||||
- 更改:
|
||||
1. 修改 _get_game_state() 方法,查询全局唯一游戏而非根据chat_id查询
|
||||
2. 新增 _get_game_chat_id() 方法,获取全局游戏所在的chat_id
|
||||
3. 简化 _find_player_game() 方法,使用全局游戏查询
|
||||
4. 修改 _open_game() 方法,检查全局是否已有游戏(而非仅检查当前群)
|
||||
5. 简化所有需要查找玩家游戏的方法(_handle_skill、_wolf_group_chat、_private_chat、_witch_pass)
|
||||
6. 保持数据库兼容性:chat_id列仍然存在并记录游戏创建的群,但查询时忽略
|
||||
7. 实现逻辑:所有查询都获取全局最新的一个狼人杀游戏,不再区分群组
|
||||
|
||||
- 原因:
|
||||
Bot全局只需要一个狼人杀游戏,不同群的玩家可以参与同一个游戏。
|
||||
简化逻辑,消除按chat_id区分的复杂性,同时保持数据库结构兼容。
|
||||
|
||||
- 阻碍因素:
|
||||
无
|
||||
|
||||
- 状态:成功
|
||||
|
||||
# 最终审查
|
||||
|
||||
待审查阶段完成...
|
||||
|
||||
Reference in New Issue
Block a user