自动处理交易+组队(合并版·语义常量)
热血江湖 YGOnline.exe · 2026-09-28 · 交易接受908 / 组队接受952
整段粘贴:第一行必须是 .版本 2,缺这行易语言不认后面的 .子程序 / .参数。
行首零缩进:别自己先缩,易语言会按 如果/循环 自动缩进。
复制全部:按本页从上到下的顺序拼接,可直接一次粘进工程。
备选块:标题含「备选 / 可选」的块不参与一键复制,按需单独取用 —— 别和主方案一起粘,会重复定义同名子程序。
.版本 2
.常量 IFManager基址, "25740828"
.常量 控件ID偏移, "12"
.常量 控件类型偏移, "8"
.常量 面板类型码, "24"
.常量 窗口可见标志, "64"
.常量 按钮类型码, "34"
.常量 窗口子槽起点, "768"
.常量 窗口子槽终点, "1532"
.常量 窗口子槽个数, "192"
.常量 交易窗口槽, "1236"
.常量 组队窗口槽, "1256"
.常量 通知窗口槽, "1028"
.常量 交易接受, "908"
.常量 交易拒绝, "916"
.常量 组队接受, "952"
.常量 组队拒绝, "960"
.版本 2
.全局变量 全局_交易已处理, 逻辑型
.全局变量 全局_组队已处理, 逻辑型
.版本 2
.子程序 自动处理交易_带闸门
.局部变量 接口管理, 整数型
.局部变量 交易窗, 整数型
.局部变量 按钮, 整数型
.如果真 (窗口是否弹出 (#交易窗口槽) = 假)
全局_交易已处理 = 假
返回 ()
.如果真结束
.如果真 (全局_交易已处理 = 真)
返回 ()
.如果真结束
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
交易窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + #交易窗口槽)
按钮 = 内存_读整数型 (全局_进程句柄, 交易窗 + #交易接受)
.如果真 (按钮 ≤ 65536)
返回 ()
.如果真结束
按钮点击call (内存_读整数型 (全局_进程句柄, 按钮 + #控件ID偏移))
全局_交易已处理 = 真
返回 ()
.版本 2
.子程序 自动处理组队_带闸门
.局部变量 接口管理, 整数型
.局部变量 组队窗, 整数型
.局部变量 按钮, 整数型
.如果真 (窗口是否弹出 (#组队窗口槽) = 假)
全局_组队已处理 = 假
返回 ()
.如果真结束
.如果真 (全局_组队已处理 = 真)
返回 ()
.如果真结束
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
组队窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + #组队窗口槽)
按钮 = 内存_读整数型 (全局_进程句柄, 组队窗 + #组队接受)
.如果真 (按钮 ≤ 65536)
返回 ()
.如果真结束
按钮点击call (内存_读整数型 (全局_进程句柄, 按钮 + #控件ID偏移))
全局_组队已处理 = 真
返回 ()
.版本 2
.子程序 取组队接受按钮ID, 整数型, , 自动判定左/右哪个是"接受",返回它的控件ID;都读不到返回 0
.参数 窗口对象, 整数型
.局部变量 左, 整数型
.局部变量 右, 整数型
左 = 内存_读整数型 (全局_进程句柄, 窗口对象 + #组队接受)
右 = 内存_读整数型 (全局_进程句柄, 窗口对象 + #组队拒绝)
.如果真 (左 ≤ 65536 或 右 ≤ 65536)
返回 (0)
.如果真结束
.如果 (按钮文字是接受 (左))
返回 (内存_读整数型 (全局_进程句柄, 左 + 12))
.否则如果 (按钮文字是拒绝 (左))
返回 (内存_读整数型 (全局_进程句柄, 右 + 12))
.否则如果 (按钮文字是接受 (右))
返回 (内存_读整数型 (全局_进程句柄, 右 + 12))
.否则
返回 (内存_读整数型 (全局_进程句柄, 左 + 12))
.如果结束
.子程序 按钮文字是接受, 逻辑型
.参数 按钮对象, 整数型
.局部变量 前4字节, 字节集
.局部变量 i, 整数型
.计次循环首 (192, i)
前4字节 = 取字节集左边 (内存_读字节集 (全局_进程句柄, 内存_读整数型 (全局_进程句柄, 按钮对象 + (i - 1) × 4), 4), 4)
.如果真 (前4字节 = 机器码到字节集 (“B1B5A8FC”) 或 前4字节 = 机器码到字节集 (“BD54BB7B”) 或 前4字节 = 机器码到字节集 (“BD54A977”) 或 前4字节 = 机器码到字节集 (“A650B74E”))
返回 (真)
.如果真结束
.计次循环尾 ()
返回 (假)
.子程序 按钮文字是拒绝, 逻辑型
.参数 按钮对象, 整数型
.局部变量 前4字节, 字节集
.局部变量 i, 整数型
.计次循环首 (192, i)
前4字节 = 取字节集左边 (内存_读字节集 (全局_进程句柄, 内存_读整数型 (全局_进程句柄, 按钮对象 + (i - 1) × 4), 4), 4)
.如果真 (前4字节 = 机器码到字节集 (“A9DAB5B4”) 或 前4字节 = 机器码到字节集 (“A8FAAEF8”) 或 前4字节 = 机器码到字节集 (“A9BFB2A4”) 或 前4字节 = 机器码到字节集 (“C3F6B3AC”))
返回 (真)
.如果真结束
.计次循环尾 ()
返回 (假)
.版本 2
.子程序 自动处理弹窗
自动处理交易_带闸门 ()
自动处理组队_带闸门 ()
返回 ()
.版本 2
.子程序 打印组队窗按钮表
.局部变量 接口管理, 整数型
.局部变量 组队窗, 整数型
.局部变量 i, 整数型
.局部变量 子对象, 整数型
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
组队窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + #组队窗口槽)
挂机信息.加入文本 (“=== 组队窗 槽1256 按钮表 窗口=” + 到文本 (组队窗) + “ ===” + #换行符)
.如果真 (组队窗 > 65536)
.计次循环首 (#窗口子槽个数, i)
子对象 = 内存_读整数型 (全局_进程句柄, 组队窗 + #窗口子槽起点 + (i - 1) × 4)
.如果真 (子对象 > 65536)
.如果真 (内存_读整数型 (全局_进程句柄, 子对象 + #控件类型偏移) = #按钮类型码)
挂机信息.加入文本 (“ +0x” + 取十六进制文本 (内存_读整数型 (全局_进程句柄, 组队窗 + #窗口子槽起点 + (i - 1) × 4)) + “ 槽” + 到文本 (#窗口子槽起点 + (i - 1) × 4) + “ ID=” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + #控件ID偏移)) + “ 坐标” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + 40)) + “,” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + 44)) + “ 可用=” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + 64)) + “ 生效=” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + 72)) + #换行符)
.如果真结束
.如果真结束
.如果真结束
.计次循环尾 ()
.如果真结束
.版本 2
.子程序 挂机主循环
.局部变量 继续跑, 逻辑型
窗口槽位表_初始化 ()
继续跑 = 真
.判断循环首 (继续跑)
自动处理弹窗 ()
挂机逻辑 ()
延时 (500)
.判断循环尾 ()
返回 ()