diff --git a/.tasks/2025-11-10_3_alchemy-recipes.md b/.tasks/2025-11-10_3_alchemy-recipes.md index f0ebf6b..0eb6565 100644 --- a/.tasks/2025-11-10_3_alchemy-recipes.md +++ b/.tasks/2025-11-10_3_alchemy-recipes.md @@ -23,7 +23,7 @@ Yolo模式: Off # 新建 `WPSAlchemyRecipeLookup`(名称待定)插件,依赖炼金与背包系统,在 `wake_up` 中注册 `炼金配方` 命令,并在 `callback` 中完成参数解析、配方查询、结果排序与 Markdown 渲染。 # 输出两个有序列表,分别展示目标物品参与的配方(作为材料)以及目标物品对应的产物/失败产物信息;同一物品若兼具多种角色则在两个列表中分别呈现。 -# 当前执行步骤:"2. 创建任务文件" +# 当前执行步骤:"5. 更新任务文件" # 任务进度 [2025-11-10_23:51:23] @@ -33,6 +33,13 @@ Yolo模式: Off - 阻碍因素: 暂无 - 状态: 未确认 +[2025-11-11_手动编辑] +- 已修改: Assets/config.json Plugins/WPSAlchemyGame.py +- 更改: 配置与代码新增积分炼金单次投入上限,帮助信息同步上限提示 +- 原因: 限制积分炼金单次投入,防止积分快速翻倍 +- 阻碍因素: 本地 PowerShell/Get-Date 命令因环境脚本报错,时间记录暂用手动标注 +- 状态: 成功 + # 最终审查 待补充 diff --git a/Plugins/WPSAlchemyGame.py b/Plugins/WPSAlchemyGame.py index 2c919f4..8d548ee 100644 --- a/Plugins/WPSAlchemyGame.py +++ b/Plugins/WPSAlchemyGame.py @@ -27,6 +27,7 @@ from .WPSFortuneSystem import WPSFortuneSystem logger: ProjectConfig = Architecture.Get(ProjectConfig) FORTUNE_COEFF:float = logger.FindItem("alchemy_fortune_coeff", 0.03) COOLDOWN_MINUTES:int = logger.FindItem("alchemy_cooldown_minutes", 2) +MAX_POINTS_PER_BATCH:int = logger.FindItem("alchemy_max_points_per_batch", 100) logger.SaveProperties() @@ -68,6 +69,8 @@ class WPSAlchemyGame(WPSAPI): # 从配置读取冷却时间(分钟) self._cooldown_minutes = 0 if get_internal_debug() else COOLDOWN_MINUTES self._cooldown_ms = int(self._cooldown_minutes * 60 * 1000) + # 从配置读取单次积分炼金上限 + self._max_points_per_batch = MAX_POINTS_PER_BATCH logger.SaveProperties() @override @@ -305,6 +308,8 @@ class WPSAlchemyGame(WPSAPI): config_api: WPSConfigAPI = Architecture.Get(WPSConfigAPI) current_points = config_api.get_user_points(user_id) + if points > self._max_points_per_batch: + return f"❌ 单次炼金积分不能超过 {self._max_points_per_batch} 分" if current_points < points: return f"❌ 积分不足,需要 {points} 分,当前仅有 {current_points} 分" @@ -833,7 +838,7 @@ class WPSAlchemyGame(WPSAPI): def _help_message(self) -> str: return ( "# ⚗️ 炼金指令帮助\n" - "- `炼金 <积分>`:投入积分尝试炼金\n" + f"- `炼金 <积分>`:投入积分尝试炼金(单次最多 {self._max_points_per_batch} 分)\n" "- `炼金 <材料1> <材料2> <材料3> [次数]`:使用三件材料进行炼金(可选次数,默认 1)\n" "- `炼金 状态`:查询当前炼金状态\n" "> 建议提前备足材料及积分,谨慎开启炼金流程。炼金需要等待一定时间后才会获得结果。"