积分炼金添加上限

This commit is contained in:
2025-11-11 20:45:28 +08:00
parent 29c1ddef53
commit f8d02fbf86
2 changed files with 14 additions and 2 deletions

View File

@@ -23,7 +23,7 @@ Yolo模式: Off
# 新建 `WPSAlchemyRecipeLookup`(名称待定)插件,依赖炼金与背包系统,在 `wake_up` 中注册 `炼金配方` 命令,并在 `callback` 中完成参数解析、配方查询、结果排序与 Markdown 渲染。 # 新建 `WPSAlchemyRecipeLookup`(名称待定)插件,依赖炼金与背包系统,在 `wake_up` 中注册 `炼金配方` 命令,并在 `callback` 中完成参数解析、配方查询、结果排序与 Markdown 渲染。
# 输出两个有序列表,分别展示目标物品参与的配方(作为材料)以及目标物品对应的产物/失败产物信息;同一物品若兼具多种角色则在两个列表中分别呈现。 # 输出两个有序列表,分别展示目标物品参与的配方(作为材料)以及目标物品对应的产物/失败产物信息;同一物品若兼具多种角色则在两个列表中分别呈现。
# 当前执行步骤:"2. 创建任务文件" # 当前执行步骤:"5. 更新任务文件"
# 任务进度 # 任务进度
[2025-11-10_23:51:23] [2025-11-10_23:51:23]
@@ -33,6 +33,13 @@ Yolo模式: Off
- 阻碍因素: 暂无 - 阻碍因素: 暂无
- 状态: 未确认 - 状态: 未确认
[2025-11-11_手动编辑]
- 已修改: Assets/config.json Plugins/WPSAlchemyGame.py
- 更改: 配置与代码新增积分炼金单次投入上限,帮助信息同步上限提示
- 原因: 限制积分炼金单次投入,防止积分快速翻倍
- 阻碍因素: 本地 PowerShell/Get-Date 命令因环境脚本报错,时间记录暂用手动标注
- 状态: 成功
# 最终审查 # 最终审查
待补充 待补充

View File

@@ -27,6 +27,7 @@ from .WPSFortuneSystem import WPSFortuneSystem
logger: ProjectConfig = Architecture.Get(ProjectConfig) logger: ProjectConfig = Architecture.Get(ProjectConfig)
FORTUNE_COEFF:float = logger.FindItem("alchemy_fortune_coeff", 0.03) FORTUNE_COEFF:float = logger.FindItem("alchemy_fortune_coeff", 0.03)
COOLDOWN_MINUTES:int = logger.FindItem("alchemy_cooldown_minutes", 2) COOLDOWN_MINUTES:int = logger.FindItem("alchemy_cooldown_minutes", 2)
MAX_POINTS_PER_BATCH:int = logger.FindItem("alchemy_max_points_per_batch", 100)
logger.SaveProperties() logger.SaveProperties()
@@ -68,6 +69,8 @@ class WPSAlchemyGame(WPSAPI):
# 从配置读取冷却时间(分钟) # 从配置读取冷却时间(分钟)
self._cooldown_minutes = 0 if get_internal_debug() else COOLDOWN_MINUTES self._cooldown_minutes = 0 if get_internal_debug() else COOLDOWN_MINUTES
self._cooldown_ms = int(self._cooldown_minutes * 60 * 1000) self._cooldown_ms = int(self._cooldown_minutes * 60 * 1000)
# 从配置读取单次积分炼金上限
self._max_points_per_batch = MAX_POINTS_PER_BATCH
logger.SaveProperties() logger.SaveProperties()
@override @override
@@ -305,6 +308,8 @@ class WPSAlchemyGame(WPSAPI):
config_api: WPSConfigAPI = Architecture.Get(WPSConfigAPI) config_api: WPSConfigAPI = Architecture.Get(WPSConfigAPI)
current_points = config_api.get_user_points(user_id) 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: if current_points < points:
return f"❌ 积分不足,需要 {points} 分,当前仅有 {current_points}" return f"❌ 积分不足,需要 {points} 分,当前仅有 {current_points}"
@@ -833,7 +838,7 @@ class WPSAlchemyGame(WPSAPI):
def _help_message(self) -> str: def _help_message(self) -> str:
return ( return (
"# ⚗️ 炼金指令帮助\n" "# ⚗️ 炼金指令帮助\n"
"- `炼金 <积分>`:投入积分尝试炼金\n" f"- `炼金 <积分>`:投入积分尝试炼金(单次最多 {self._max_points_per_batch} 分)\n"
"- `炼金 <材料1> <材料2> <材料3> [次数]`:使用三件材料进行炼金(可选次数,默认 1\n" "- `炼金 <材料1> <材料2> <材料3> [次数]`:使用三件材料进行炼金(可选次数,默认 1\n"
"- `炼金 状态`:查询当前炼金状态\n" "- `炼金 状态`:查询当前炼金状态\n"
"> 建议提前备足材料及积分,谨慎开启炼金流程。炼金需要等待一定时间后才会获得结果。" "> 建议提前备足材料及积分,谨慎开启炼金流程。炼金需要等待一定时间后才会获得结果。"