热血江湖 YGOnline.exe —— 窗口槽位表(易语言自定义数据类型版) 时间:2026-09-28 15:30 目标:D:\rxjh2025\client\YGOnline.exe(32位,无ASLR,模块基址恒 0x400000) 数据来源:全槽 RTTI 活体遍历(75 个非空槽,取 72 个接口窗口入表) ================================================================================ 一、用法(三步,一次性) -------------------------------------------------------------------------------- ① 粘「二、① 数据类型」 → 工程里多出一个数据类型:窗口槽位表 ② 粘「二、② 变量声明」 → 得到一个变量 窗口 ③ 进游戏(角色登录完)后调用一次: 窗口槽位表_初始化 () 之后就能这么写: 窗口是否弹出 (窗口.交易) 交易窗 窗口是否弹出 (窗口.组队) 组队窗 窗口是否弹出 (窗口.助手) 助手 窗口是否弹出 (窗口.邮件) 邮件 窗口是否弹出 (窗口.背包) 背包 ★ 唯一的坑:不初始化就直接用,成员全是 0,判断永远返回「假」。 二、代码(按 ①②③ 顺序粘) ================================================================================ ① 数据类型(成员名 = 窗口中文名,值 = 槽偏移) -------------------------------------------------------------------------------- .版本 2 .数据类型 窗口槽位表 .成员 主界面, 整数型 .成员 聊天框, 整数型 .成员 状态栏, 整数型 .成员 背包, 整数型 .成员 中央消息, 整数型 .成员 武功栏, 整数型 .成员 选项, 整数型 .成员 小地图, 整数型 .成员 帮助, 整数型 .成员 退出, 整数型 .成员 任务, 整数型 .成员 信使, 整数型 .成员 染色, 整数型 .成员 脱色, 整数型 .成员 幸运箱, 整数型 .成员 通知, 整数型 .成员 网吧福利, 整数型 .成员 邮寄包裹, 整数型 .成员 计时器, 整数型 .成员 寻路, 整数型 .成员 门派召集, 整数型 .成员 血战, 整数型 .成员 转服, 整数型 .成员 别号, 整数型 .成员 助手, 整数型 .成员 变身宠物, 整数型 .成员 美发, 整数型 .成员 四柱, 整数型 .成员 福袋, 整数型 .成员 制作, 整数型 .成员 制药, 整数型 .成员 改名, 整数型 .成员 组队搜索, 整数型 .成员 商城道具, 整数型 .成员 商城选择, 整数型 .成员 属性石, 整数型 .成员 礼券, 整数型 .成员 英雄武器, 整数型 .成员 传送到队伍, 整数型 .成员 祈愿, 整数型 .成员 宠物背包, 整数型 .成员 宠物信息, 整数型 .成员 四柱系统, 整数型 .成员 门派战, 整数型 .成员 换装, 整数型 .成员 回城, 整数型 .成员 交易, 整数型 .成员 属性石强化, 整数型 .成员 宏, 整数型 .成员 邮件, 整数型 .成员 武功学习, 整数型 .成员 组队, 整数型 .成员 个人商店, 整数型 .成员 商城窗口, 整数型 .成员 攻城战, 整数型 .成员 网页, 整数型 .成员 网页商城, 整数型 .成员 护符, 整数型 .成员 门派, 整数型 .成员 副本队伍, 整数型 .成员 社区, 整数型 .成员 角色信息, 整数型 .成员 制造, 整数型 .成员 选项UI, 整数型 .成员 魂宠进化, 整数型 .成员 魂宠强化, 整数型 .成员 魂宠仓库, 整数型 .成员 魂宠封印, 整数型 .成员 表情, 整数型 .成员 弹珠进化, 整数型 .成员 门派改名, 整数型 .成员 副本脚本, 整数型 -------------------------------------------------------------------------------- ② 变量声明(推荐 全局变量,任何程序集都能用) -------------------------------------------------------------------------------- .版本 2 .全局变量 窗口, 窗口槽位表 -------------------------------------------------------------------------------- 备选写法(二选一,别都用,会提示变量名重复): · 只想在本程序集用 —— 把这行的 .全局变量 改成 .程序集变量; · 这行粘不进「全局变量」表 —— 在 IDE 的全局变量表里手动加一行:名称 窗口,类型 窗口槽位表。 -------------------------------------------------------------------------------- ③ 初始化子程序(进游戏后调用一次) -------------------------------------------------------------------------------- .版本 2 .子程序 窗口槽位表_初始化 窗口.主界面 = 940 窗口.聊天框 = 944 窗口.状态栏 = 948 窗口.背包 = 952 窗口.中央消息 = 960 窗口.武功栏 = 964 窗口.选项 = 972 窗口.小地图 = 976 窗口.帮助 = 980 窗口.退出 = 984 窗口.任务 = 988 窗口.信使 = 1008 窗口.染色 = 1016 窗口.脱色 = 1020 窗口.幸运箱 = 1024 窗口.通知 = 1028 窗口.网吧福利 = 1036 窗口.邮寄包裹 = 1040 窗口.计时器 = 1044 窗口.寻路 = 1048 窗口.门派召集 = 1052 窗口.血战 = 1056 窗口.转服 = 1064 窗口.别号 = 1068 窗口.助手 = 1072 窗口.变身宠物 = 1076 窗口.美发 = 1084 窗口.四柱 = 1096 窗口.福袋 = 1100 窗口.制作 = 1112 窗口.制药 = 1120 窗口.改名 = 1128 窗口.组队搜索 = 1136 窗口.商城道具 = 1144 窗口.商城选择 = 1148 窗口.属性石 = 1164 窗口.礼券 = 1172 窗口.英雄武器 = 1180 窗口.传送到队伍 = 1196 窗口.祈愿 = 1200 窗口.宠物背包 = 1208 窗口.宠物信息 = 1212 窗口.四柱系统 = 1220 窗口.门派战 = 1224 窗口.换装 = 1228 窗口.回城 = 1232 窗口.交易 = 1236 窗口.属性石强化 = 1240 窗口.宏 = 1244 窗口.邮件 = 1248 窗口.武功学习 = 1252 窗口.组队 = 1256 窗口.个人商店 = 1260 窗口.商城窗口 = 1268 窗口.攻城战 = 1272 窗口.网页 = 1276 窗口.网页商城 = 1280 窗口.护符 = 1284 窗口.门派 = 1288 窗口.副本队伍 = 1300 窗口.社区 = 1304 窗口.角色信息 = 1308 窗口.制造 = 1312 窗口.选项UI = 1316 窗口.魂宠进化 = 1332 窗口.魂宠强化 = 1336 窗口.魂宠仓库 = 1340 窗口.魂宠封印 = 1344 窗口.表情 = 1348 窗口.弹珠进化 = 1352 窗口.门派改名 = 1356 窗口.副本脚本 = 1360 返回 () -------------------------------------------------------------------------------- ④ 配合示例(判断 → 取按钮 → 点击) -------------------------------------------------------------------------------- 依赖常量:#IFManager基址 = 25740828、#控件ID偏移 = 12 按钮偏移 908 = 交易窗左按钮(0x38C),916 = 右按钮(0x394) .版本 2 .子程序 自动处理交易 .局部变量 接口管理, 整数型 .局部变量 交易窗, 整数型 .局部变量 按钮, 整数型 .如果真 (窗口是否弹出 (窗口.交易) = 假) 返回 () .如果真结束 接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址) 交易窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + 窗口.交易) 按钮 = 内存_读整数型 (全局_进程句柄, 交易窗 + 908) .如果真 (按钮 > 65536) 按钮点击call (内存_读整数型 (全局_进程句柄, 按钮 + 12)) .如果真结束 返回 () -------------------------------------------------------------------------------- 三、怎么调用(直接照抄) ================================================================================ 「窗口是否弹出」一个字都不用改,它收的就是槽偏移: 挂机信息.加入文本 (自定义时间 () + “交易 ” + 选择文本 (窗口是否弹出 (窗口.交易), “开”, “关”) + #换行符) 挂机信息.加入文本 (自定义时间 () + “组队 ” + 选择文本 (窗口是否弹出 (窗口.组队), “开”, “关”) + #换行符) 一次问一批(想知道现在屏幕上都有啥,直接用遍历版更快,见《遍历槽偏移_写日志_0928.txt》): 接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址) .如果真 (窗口是否弹出 (窗口.交易)) ' 处理交易 .如果真结束 .如果真 (窗口是否弹出 (窗口.组队)) ' 处理组队 .如果真结束 平时只记这几个成员就够用: 常驻 HUD 窗口.主界面 窗口.聊天框 窗口.状态栏 窗口.背包 窗口.武功栏 窗口.选项 交互类 窗口.交易 窗口.组队 窗口.邮件 窗口.回城 窗口.个人商店 窗口.邮寄包裹 系统类 窗口.助手 窗口.通知 窗口.任务 窗口.角色信息 窗口.门派 窗口.商城窗口 四、成员对照表(72 个成员) ================================================================================ 成员名 槽偏移 十六进制 接口类名 面板 备注 -------------------------------------------------------------------------------------------------------- 主界面 940 0x3AC InterMAIN 14 本次实测显示中 聊天框 944 0x3B0 InterChat 0 无内容面板,判不出弹出 状态栏 948 0x3B4 InterStatus 3 背包 952 0x3B8 InterInventory 2 中央消息 960 0x3C0 InterCenterMessage 0 无内容面板,判不出弹出 武功栏 964 0x3C4 InterMugongHanbigwang 0 无内容面板,判不出弹出 选项 972 0x3CC InterOption 3 本次实测显示中 小地图 976 0x3D0 InterMiniMap 0 无内容面板,判不出弹出;本次未创建,槽位固定 帮助 980 0x3D4 InterHelp 0 无内容面板,判不出弹出 退出 984 0x3D8 InterExit 2 任务 988 0x3DC InterQuestEx 6 信使 1008 0x3F0 InterMessenger 2 染色 1016 0x3F8 CInterDye 2 脱色 1020 0x3FC CPinoDeburp 0 无内容面板,判不出弹出 幸运箱 1024 0x400 InterLuckyBox 1 通知 1028 0x404 InterNotice 0 无内容面板,判不出弹出 网吧福利 1036 0x40C InterPcRoomBenefit 2 邮寄包裹 1040 0x410 InterSendPackage 9 计时器 1044 0x414 InterTimer 5 寻路 1048 0x418 InterPath 0 无内容面板,判不出弹出 门派召集 1052 0x41C InterCallToGuild 2 血战 1056 0x420 CBloodBattle 0 无内容面板,判不出弹出 转服 1064 0x428 InterServerMove 2 别号 1068 0x42C InterByulho 1 助手 1072 0x430 InterAutoPlay 2 变身宠物 1076 0x434 InterChangeLooksPet 3 美发 1084 0x43C InterHairdressing 2 四柱 1096 0x448 CInterSaju 4 福袋 1100 0x44C InterLuckyBag 1 制作 1112 0x458 InterManufacture 1 制药 1120 0x460 InterMedicineMaking 2 改名 1128 0x468 InterNameChange 2 组队搜索 1136 0x470 InterPartySearch 4 商城道具 1144 0x478 InterPremiumCashItem 5 商城选择 1148 0x47C InterPremiumSelect 1 属性石 1164 0x48C InterAttChangeSoulStone 0 无内容面板,判不出弹出 礼券 1172 0x494 InterGifticon 1 英雄武器 1180 0x49C InterExcangeHeroWeapon 5 传送到队伍 1196 0x4AC InterWarpToParty 1 祈愿 1200 0x4B0 InterGibo 3 宠物背包 1208 0x4B8 CPetInven 1 宠物信息 1212 0x4BC CPetInfo 6 四柱系统 1220 0x4C4 CSajeSystem 3 门派战 1224 0x4C8 InterMunpaWar 10 换装 1228 0x4CC InterCoatChange 2 回城 1232 0x4D0 InterEscape 1 交易 1236 0x4D4 InterExchange 3 本次实测显示中 属性石强化 1240 0x4D8 InterAttributeJesukbu 2 宏 1244 0x4DC InterMacro 1 邮件 1248 0x4E0 InterMail 13 武功学习 1252 0x4E4 InterMugongLearn 1 组队 1256 0x4E8 InterParty 3 个人商店 1260 0x4EC InterPCStore 5 商城窗口 1268 0x4F4 InterPremiumWin 3 攻城战 1272 0x4F8 InterWar 4 网页 1276 0x4FC InterWeb 8 网页商城 1280 0x500 InterWebShop 1 护符 1284 0x504 CInterCharm 1 门派 1288 0x508 InterMunpa 3 副本队伍 1300 0x514 InterRaid 0 无内容面板,判不出弹出 社区 1304 0x518 InterUI_Community 7 角色信息 1308 0x51C InterUI_CharacterInfo 6 制造 1312 0x520 InterUI_Manufacture 2 选项UI 1316 0x524 InterUI_Option 2 魂宠进化 1332 0x534 InterSoulPetEvolve 2 魂宠强化 1336 0x538 InterSoulPetReinforce 2 魂宠仓库 1340 0x53C InterSoulPetWareHouse 1 魂宠封印 1344 0x540 InterSoulPetSeal 2 表情 1348 0x544 InterEmoticon 1 弹珠进化 1352 0x548 InterMarbleEvolve 1 门派改名 1356 0x54C InterGuildNameChange 2 副本脚本 1360 0x550 ScriptDungeon 1 五、说明与排除项 ================================================================================ · 「面板」列 = 该窗口对象下有几个「类型码 24 = InterWindow」的内容面板。 面板为 0 的窗口,扫描法判不出弹出(共 11 个): 聊天框 944、中央消息 960、武功栏 964、小地图 976、帮助 980、脱色 1020、通知 1028、寻路 1048、血战 1056、属性石 1164、副本队伍 1300 其中两个要单独处理: · 聊天框 944 —— 常驻显示,本来就不需要判; · 通知 1028 —— 真实弹窗在孙辈(+0x404 → 通知对象 → +0x338 弹窗 → +0x330 面板), 判弹窗用两级版(见《窗口弹出判定_通用方法_0928.txt》)。 · 本次实测「显示中」= 1 的只有 3 个:主界面 940 / 选项 972 / 交易 1236。 · 小地图 976(0x3D0 InterMiniMap):本次对象为 0(该接口未创建),槽位本身固定,仍入表。 · 已排除 4 个「不是接口窗口」的槽(放的是散落的控件对象,不要当窗口用): 0x3E0 992 InterWindow 0x3E4 996 InterSTATIC 0x3E8 1000 InterWindow 0x3EC 1004 InterSTATIC · 成员只放「槽偏移」一个值。按钮偏移、面板偏移不要混进这张表(只有交易/组队等少数窗口有按钮, 且面板偏移有 78 种、必须扫描得到)。要复合结构就再单独定义一个数据类型。 附:数据来源与再生成 D:\ce_mcp\_t32.py 全槽 RTTI 遍历(类名一手实测,本表数据来源) D:\ce_mcp\_t39.py 本表生成脚本(加/减窗口、改成员名都在这里改) D:\AI空间\rxjh\槽偏移全表_0928.txt 完整明细(含每个槽的面板偏移清单)