fixbug:解决抢答和获取任务的问题

This commit is contained in:
Liu
2025-02-21 19:41:36 +08:00
parent 68c5f4f0a8
commit 5236aead6c

View File

@@ -220,7 +220,7 @@ def submit_answer(group_id, player_id, task_id, answer):
return (
f"😔 哎呀,小伙伴\n"
f"🌼 群 {group_id} 的任务 task_{active_task_id} 不见了\n"
f"🎀 可能已经被抢答啦!"
f"🎀 可能已经被抢答或过期啦!"
)
if task_data['status'] == 'completed':
@@ -245,8 +245,9 @@ def submit_answer(group_id, player_id, task_id, answer):
description = result["description"]
is_correct = points > 0
# 记录历史并更新积分
# 处理答案提交逻辑
if is_correct:
# 答对 situation
cursor.execute(
"UPDATE t_encyclopedia_players SET points = points + %s WHERE group_id = %s AND player_id = %s",
(points, group_id, player_id)
@@ -255,22 +256,24 @@ def submit_answer(group_id, player_id, task_id, answer):
"UPDATE t_encyclopedia_active_tasks SET status = 'completed' WHERE group_id = %s AND active_task_id = %s",
(group_id, active_task_id)
)
message = (
f"🎉 {player_name} 太棒啦!\n"
f"🌟 任务:{question}\n"
f"🎈 答对了,真厉害!\n"
f"🌈 奖励:{points}\n"
f"🎀 提示{description}"
if player_id == holder_id
else
f"🎉 {player_name} 抢答成功!\n"
f"🌟 任务:{question}\n"
f"🎈 原主:{holder_name}\n"
f"🌈 获得 {points} 分,太棒了!\n"
f"🎀 提示{description}"
)
if player_id == holder_id:
message = (
f"🎉 {player_name} 太棒啦!\n"
f"🌟 任务:{question}\n"
f"🎈 答对了,真厉害!\n"
f"🌈 奖励{points}\n"
f"🎀 提示:{description}"
)
else:
message = (
f"🎉 {player_name} 抢答成功!\n"
f"🌟 任务:{question}\n"
f"🎈 原主{holder_name}\n"
f"🌈 获得 {points} 分,太棒了!\n"
f"🎀 提示:{description}"
)
else:
# 错误扣1分确保积分不低于0
# 答错 situation任务保持 pending 状态,允许其他玩家继续抢答
cursor.execute(
"UPDATE t_encyclopedia_players SET points = GREATEST(points - 1, 0) WHERE group_id = %s AND player_id = %s",
(group_id, player_id)
@@ -282,9 +285,11 @@ def submit_answer(group_id, player_id, task_id, answer):
f"🎈 你答:{answer}\n"
f"🌟 正确答案:{correct_answer_db}\n"
f"🌈 扣 1 分,别灰心!\n"
f"🎀 提示:{description}"
f"🎀 提示:{description}\n"
f"🌟 任务 task_{active_task_id} 仍可抢答哦!"
)
# 记录提交历史
cursor.execute(
"INSERT INTO t_encyclopedia_task_history (group_id, active_task_id, player_id, answer, is_correct, points_earned) VALUES (%s, %s, %s, %s, %s, %s)",
(group_id, active_task_id, player_id, answer, is_correct, points)
@@ -458,18 +463,9 @@ def setup_schedule():
# 主程序
if __name__ == "__main__":
# # 初始化群聊
# print(add_group("group1", "admin1"))
# print(add_group("group2", "admin1"))
#
# # 初始化玩家
# print(game_process_message("group1", "player1001", "/start", "玩家1"))
# print(game_process_message("group1", "player1002", "/start", "玩家2"))
# print(game_process_message("group2", "player2001", "/start", "玩家A"))
# print(game_process_message("group2", "player2002", "/start", "玩家B"))
#
# # 设置调度
# setup_schedule()
# 测试 /gettask
print(game_process_message("47530198896@chatroom", "player1001", "/gettask"))
# 测试抢答功能
print(game_process_message("47530198896@chatroom", "player1001", "/start", "玩家1"))
print(game_process_message("47530198896@chatroom", "player1002", "/start", "玩家2"))
print(game_process_message("47530198896@chatroom", "player1001", "/gettask"))
# 玩家2 抢答玩家1的任务
print(game_process_message("47530198896@chatroom", "player1002", "/answer 1 珠穆朗玛峰"))