D:/AI空间/rxjh/旧版本更新_修复后.e旧版本更新_修复后.bak_加自动购买助手前_20261006_1640.e新增一个子程序 自动购买助手,只加子程序,没动界面、没挂进挂机主循环(按你的要求,连接点你自己接)。
.子程序 自动购买助手, 逻辑型
放在 窗口程序集_MainDialogWnd 里,紧跟 自动买助手任务 之后。
读助手时间() ──► 剩余 > 30 分钟? ──► 是 ──► 返回 真(不用买)
│
否
▼
自动买助手任务() ← 你原来那套:回城/寻路/八卦老人/商店
│
程序_延时(3000) ← 等服务端把新到期时间写回内存
│
再读一次 读助手时间()
│
购买后 > 购买前 ?── 是 ──► 购买成功,返回 真
│
否 ──► 重试(默认共 2 次);2 次都失败 → 返回 假
| 返回值 | 含义 |
|---|---|
| 真 | 要么不需要买(剩余还够),要么买成功了 |
| 假 | 读不到箱子数据,或买了但时间没续上(重试完仍失败) |
所以调用方只需:
.如果真 (自动购买助手 () = 假)
写日志 (自定义时间 () + “自动购买助手失败,需要人工看一下” + #换行符)
.如果真结束
| 变量 | 默认 | 说明 |
|---|---|---|
触发阈值 | 30 | 剩余不足 30 分钟才去买 |
最大尝试 | 2 | 一次调用最多买几次;自动买助手任务 本身比较耗时(回城+寻路),别设太大 |
全程用你现成的 写日志 + 自定义时间,前缀统一是 【自动购买助手】,方便你按关键字筛。会打印:
X 分钟 → Y 分钟购买后时间没有增加(仍为 Y 分钟),本次未成功尝试 N 次仍未成功,放弃| 检查项 | 结果 |
|---|---|
t2e 回转生成 .e | 0 错误 / 0 警告 |
| 代码级往返比对(剥掉注释与空白后逐子程序比) | 466 个子程序 + 全局行 全部一致,0 差异 |
| 二进制确认新子程序已写入 | 自动购买助手 命中 12 处 |
结构配平(.如果/.如果真/循环 闭合) | 通过 |
| 局部变量声明区完整性 | 全部 .局部变量 在注释之前(易语言硬约束) |
e2t→t2e 这条工具链会把写在代码行末尾的注释吃掉、以及把 ' 后面的多余空格压成一个。这次比对发现 42 处,例如:
行文本 [x] = ... + 分割符 ' ★勾选(1/0)放每行最前 ← 主本有
行文本 [x] = ... + 分割符 ← 回转后注释没了
这是纯显示层的损失,不影响编译和运行,而且不是这次新产生的——你之前那版 .e 里就已经没有这些注释了(我核对过你的原生存档:★勾选 在你自己的 .e 里也是 0 处)。
规避办法:重要说明请单独占一行写成注释(' 说明文字),不要跟在代码行屁股后面。整行注释能活下来,只会被压掉多余空格。
在主循环/定时事件里,判断剩余时间已经不够的时候调一次就行:
.如果真 (自动购买助手 () = 假)
写日志 (自定义时间 () + “自动购买助手失败” + #换行符)
.如果真结束
也可以不用返回值,直接 自动购买助手 () 一句了事——子程序内部自己会判断该不该买。
自动买助手任务 是同步执行的(内部用 程序_延时,不是启动线程),所以调用 自动购买助手 会卡住当前线程十几秒到几十秒。别放在界面线程里直接调,放到挂机线程 / 定时事件里。触发阈值 调到 45~60。