本次重构针对 poe2-crafter 在实际游戏中出现的装备读取失败、操作结果未验证和词缀误判问题。目标流程:使用混沌石,读取装备属性,满足指定词缀、阶层或数值条件后停止。
本文整理此前开发与测试记录,版本范围截至 v0.1.6。
运行环境与目标
- 系统:Windows。
- 客户端:流放之路2国际服,繁体中文。
- 数据来源:鼠标悬停装备后,通过 Ctrl+C 复制装备文本。
- 操作方式:校准游戏窗口、通货位置和装备位置后执行模拟输入。
- 停止条件:目标词缀达到指定阶层范围及可选数值下限。
原有问题
旧版虽然能启动且不报错,但实际流程缺少结果验证:
- 模拟点击成功后直接继续,未确认游戏是否接受操作。
- 装备解析可能混入需求、符文效果等非目标属性。
- 数值提取失败时仍可能判定满足条件。
- 阶层判断依赖粗略推断,难以处理复合词缀。
- 游戏窗口、坐标与显示缩放变化的检查不完整。
重构后的流程为:
读取装备 → 解析并显示匹配结果 → 使用一次通货 → 重新读取并验证变化 → 判断停止或继续
每次使用通货后都重新判断,避免连续操作覆盖已达标结果。
主要修复
通货无法复制
实测中,装备可以通过 Ctrl+C 复制,混沌石无法以相同方式复制。旧流程要求读取通货名称,导致误报“不是混沌石”。
v0.1.1 改为使用校准后的混沌石坐标,操作后读取装备,检查词缀变化。
连续使用与状态释放
确认按住 Shift 选中通货时仍能复制装备文本后,v0.1.2 增加连续使用模式:选取一次通货,每次左键使用后复制装备并判断。
达标、手动停止或发生异常时释放 Shift。保留每轮重新选取通货的模式,作为回退选项。
阶层区间
v0.1.3 增加区间表达,避免将多个可接受阶层错误配置为必须同时满足的独立条件。
- 阶层填
3:只接受 T3。 - 阶层填
1-3:接受 T1、T2、T3。 - 数值留空:只判断阶层。
- 阶层填
1-3、数值填100:阶层在区间内,且实际数值 ≥ 100。
速度与读取一致性
v0.1.4 增加 0.5–5 的速度倍率,以及可配置的额外等待时间。加速后仍需读取新的装备文本,拒绝使用上一次残留的剪贴板内容。实际可用速度取决于游戏响应。
戒指固定词缀解析
戒指样本中的 { 固定詞綴 — 丟置 } 未被旧解析器识别,触发了异常停止。v0.1.5 补充该格式的处理,并将真实样本加入测试。
样本中的施法速度为 T3、18%。若条件设为 T1,结果应判定不满足;若接受 T1–T3,应使用 1-3。解析结果与条件设置需要分别检查。
多条件停止模式
v0.1.6 增加两种模式:
- 全部满足(AND):所有条件均达到要求后停止。
- 任意满足(OR):任意一条条件达到其自身要求后停止。
例如,配置三个不同词缀并选择 OR,其中任意一个达到对应阶层和数值要求即可停止。
测试与发布结果
此前记录中,各版本的离线测试数量依次为:v0.1.1 为 16 项,v0.1.2 为 21 项,v0.1.3 为 26 项,v0.1.4 为 33 项,v0.1.5 为 37 项,v0.1.6 为 43 项。
v0.1.6 的 43 项测试、Windows 打包及 EXE 自检通过。源码已推送至原仓库 main 分支,对应提交 61b2809,并发布 EXE 与源码附件。
离线测试用于验证解析和程序流程,不等于所有游戏环境均已验证。输入是否生效、坐标是否正确、等待时间是否足够,仍需实机检查。
首次验证步骤
- 按 F6 绑定游戏窗口。
- 鼠标移至混沌石按 F7,移至装备按 F8,完成校准。
- 按 F5 执行只读测试,确认词缀解析和条件匹配结果。
- 将最大次数设为 1,回到游戏按 F9 开始,验证一次完整操作。
- F10 停止;连续模式停止后若光标仍带通货,手动右键取消。
项目与版本
- 源码:FasAway/poe2-crafter。
- 本文对应版本:v0.1.6。
—— Away
此处评论已关闭