交付文件:D:\AI空间\rxjh\旧版本更新_修复后_v10.e(2,821,283 字节,md5 8f21eec34f1678f31a205e26230c8101)<br>文本主本:D:\AI空间\rxjh\旧版本更新.代码\代码\窗口程序集_MainDialogWnd.form.e.txt<br>改动前备份:...form.e.txt.bak_回补购买修复前_20261007_204822
20:24:54 到达挂机点 → 返回挂机坐标成功!开启挂机!
20:24:55 》》》》检测到背包已满
20:24:55 本地回补启动 → 飞图 → 寻路到潘守杰 → 仓库存卖
20:25:25 【警告】存卖石头执行完毕,背包仍然 0 空格
20:25:42 药店回补 → 金医员 → 购买万年雪蔘1(299/300)、购买强铁箭9999(0/9999)
20:26:00 返回挂机坐标 → 20:26:36 又「检测到背包已满」→ 又回补 ……
每隔约 60 秒跑一趟仓库 + 药店,永远出不来。 角色根本没有在打怪。
全局_背包数 被写死成 36,而后 60 格从未被处理UserConfig.ini 里 辅助背包=0 → 旧 DLL 里 全局_背包数 = 36存卖石头() 只循环前 36 格 → 第 37~96 格里的东西永远不卖、不存遍历背包空格数量() 也只数前 36 格 → 前 36 格一旦装满保留物品,空格恒报 0 → 助手判定"背包已满"购买强铁箭9999 每次都发出去、永远买不进来(背包物品数量恒 0)功能检测时钟 每分钟又触发一次回补 —— 死循环一句话:不是买不到,是包满了清不掉;包清不掉,是因为只打扫了 36 格。
20:47:45 :背包空格数量:0(36 格口径)与 20:47:50 :背包集魂珠数量:9(36 格口径)<br>—— 而同一个角色用 v9 的诊断跑出来是 背包集魂珠数量:16(本次扫描格数:96)。<br>同一份背包,36 格口径只数到 9,96 格口径数到 16:后 60 格确实被整段漏掉。
| # | 位置 | 改动 | 为什么 |
|---|---|---|---|
| 1 | 遍历背包_取物品数量 | 命中即 跳出循环()、只取一格 → 改为同名全格累加;名称先归一化(剔半角/全角空格、全角括号转半角) | 旧写法对"一格一颗"的集魂珠严重低估(16 颗只返回 1),购买列表物品() 永远判"还差 99"→ 每轮回补狂买 → 塞满包 |
| 2 | 购买列表物品 | 列表为空 → 明确告警(含文件路径);每次进入打印条数与当前空格 | 旧代码列表空就循环 0 次静默返回,表现为"回补跑完了什么都没买" |
| 3 | 购买列表物品 | 物品编号.ini 查不到时 告警并跳过,不再 发包买(0,数量) | 旧代码发 0 号编号包、服务器无视,日志却写"购买××",像发出去了其实没买 |
| 4 | 药店买卖 | 每一步失败都写日志(NPC 名为空 / 编号表查不到 / 选中 NPC 失败 / 对话失败 / 开商店失败),返回值改为能区分成败 | 旧写法层层 .如果真 嵌套、任何一步失败全静默返回,日志里一行都没有 |
| 5 | 挂机寻路新(跨图返回挂机点失败的空 .否则) | 补:写日志 + 回补线程开启=假 + 执行寻路线程=假 + 恢复 更新数据时钟/功能检测时钟 + 小助手开() | 旧代码这个 .否则 是空的:跨图失败后两个时钟永久停摆、助手全功能死掉(用户实测 19:14:44 之后 1 小时无日志)。此处不另起线程,避免与本子程序末尾的自杀冲突 |
| 6 | 回补线程(药店坐标无效的早退出口) | 补恢复两个时钟 | 同类 bug:两个时钟在本线程第 2 步已被置 0,旧代码直接 返回() 导致永远回不来 |
| 7 | 存卖石头 空格告警 | 追加「本次只扫了 N 格」并提示核对仓库是否已存满 | 下次一眼就能看出是不是又只扫了 36 格 |
v9 已含、本次继续保留的修复:检测真实背包格数()(自动识别 36/96 格,_功能检测时钟 每周期调用)、是否是集魂珠 名称归一化、两个诊断按钮的 (本次扫描格数:N) 与 下晶槽N【名字】编号X(名单命中/未命中)。
t2e 编译:0 错误 0 警告e2t 回转:0 错误 0 警告数组 标志位噪声(旧代码里未带 数组 的标量局部变量,t2e 会补上,用户已编译在用的 v7 反编译同样如此),另 2 处同理;内容差异 0旧版本更新_修复后_v10.e,把生成的 test.dll 覆盖到所有客户端(D:\rxjh2025\client、E:\niuniu\rxjh2025\client、以及日志里的 C:\rxjh2025\client)。⚠️ 日志显示至少有一台机器还在跑旧 DLL(背包集魂珠数量 没有"本次扫描格数"后缀)——那台必须换。
(本次只扫了 36 格…) → 说明还没换 DLL背包仍然 0 空格 → 是真满包,查仓库是否已存满、勾选框是否打开购买列表 里的 强铁箭 建议删掉:该角色包里是 追打箭 9999 + 武功箭 9999(箭占独立格、每格上限 9999),包满时永远买不进 强铁箭,只会每分钟空发一次包。购买列表物品 目前不限制"一包买多少",包满时仍会连发大数量包。可加"空格=0 时本轮只买可堆叠项/直接跳过"的策略——改动有行为风险,需要你确认要不要做。