检测对象:游戏
D:\rxjh2025\client\YGOnline.exe(构建 2026-09-14);辅助源码D:\AI空间\rxjh\模块\江湖基址 31007\常量.e.txt。
检测方式:① 源码权威常量(辅助作者用 CE 特征码核对的 31007 版本定义);② 本机上一轮 CE 实测的活基址锚点(0x03BE3E68对象/玩家数组)。
重要前提:本沙箱无法启动游戏/CE,故"活游戏实测"仅含上一轮已测出的0x03BE3E68一处;其余活地址需你在本机用文末脚本跑一次钉死。本报告把所有条目分类标注检测状态,不臆造"已确认"。
0x03BE3E68(✅ 活实测),即源码 #怪物基址 的活值;数组元素 基址 + i×4 为对象指针,玩家槽从 8000 起。角色基址/背包/队员/技能/快捷/状态/游戏基址/仓库/地图ID…)源码给出的是 31007 版本值,本游戏(2026-09-14 构建)已过期 → 给出 +delta 候选值,均待本机指针扫描确认。+0x08 类型/+0x0C 对象ID/+0x14 全服ID/+0x18 名/+0x5F8 血/+0x360 怪名)属 C++ 结构布局,跨版本稳定,可直接用,以血值反查即可验证。#组队_队员名称 源码值 824(0x338) 与注释 0x20C 自相矛盾 → 必须活测 0x20C / 0x338 哪个出名字。平移量:delta = 活对象数组(0x03BE3E68) − 31007怪物基址(0x03173B70) = 0x00A702F8 (10,945,272)。
⚠ 注意:delta 是"整体平移"假设。游戏重编译后各全局变量偏移不一定同步平移,故下面"候选"值只作为指针扫描的起猜点,不是确认值。
状态图例:✅=活游戏实测确认 | 📁=源码 31007 权威(可能过期) | 🔄=31007值+delta 候选(待指针扫描) | ❓=未知
| 常量 | 31007值(hex) | 检测状态 | 活游戏候选(=+delta) | 说明 |
|---|---|---|---|---|
#怪物基址(对象/玩家数组) |
0x03173B70 | ✅ 活实测 | 0x03BE3E68 | CE 实测本游戏,玩家槽 8000+ |
#怪数组大小 |
0x03173B2C | 📁→🔄 | 0x03be3e24 | 数组元素总数,读整数 |
#遍历玩家基址 |
0x034E90B0 | 📁→🔄 | 0x03f593a8 | 另一份在线玩家列表(同对象布局),与对象数组不同址 |
#角色基址 |
0x03165088 | 📁→🔄 | 0x03bd5380 | 自己对象,直接读字段不取指针;血在 +0x80 |
#背包基址 |
0x031455E4 | 📁→🔄 | 0x03bb58dc | 指针→容器;首址+0x53C+(x-1)×4 物品指针 |
#装备栏基址 |
0x031455E8 | 📁→🔄 | 0x03bb58e0 | 同背包 |
#个人仓库基址 |
0x03148A88 | 📁→🔄 | 0x03bb8d80 | 60 格,同背包 |
#综合仓库基址 |
0x03148A84 | 📁→🔄 | 0x03bb8d7c | 60 格,同背包 |
#技能栏基址 |
0x031482DC | 📁→🔄 | 0x03bb85d4 | 28 格 |
#辅助栏基址 |
0x031482D8 | 📁→🔄 | 0x03bb85d0 | 28 格 |
#快捷栏基址 |
0x03145F88 | 📁→🔄 | 0x03bb6280 | 10 格;=#动作栏基址 |
#状态栏基址 |
0x03145F8C | 📁→🔄 | 0x03bb6284 | 30 格;= 快捷栏+4 |
#队员基址 |
0x03148650 | 📁→🔄 | 0x03bb8948 | 8 槽指针数组;(x-1)×4+基址 |
#游戏基址 |
0x03165090 | 📁→🔄 | 0x03bd5388 | 主结构;聊天/组队/结婚窗挂其下 |
#地图ID基址 |
0x00FA14EC | 📁→🔄 | 0x01a117e4 | 当前地图 ID(整数) |
#地图切换基址 |
0x00FA6CF8 | 📁(代码段) | — | 切图 call 入口,代码段通常不变 |
#选中NPC编号 |
0x03148A9C | 📁→🔄 | 0x03bb8d94 | 当前选中 NPC 编号 |
#鼠标指向基址 |
0x00FEA454 | 📁→🔄 | 0x01a5a74c | 鼠标指向对象 |
#游戏账号 |
0x03145780 | 📁→🔄 | 0x03bb5a78 | 账号字符串 |
聊天数组:游戏基址 + 4×#聊天_聊天窗口(283) = +1132 读指针→消息数组首址;首址+(x-1)×4 + #聊天_喊话位置(516) 读消息指针。
组队请求窗:游戏基址 + 4×#组队_窗口出现(6678) − 4 = +26708;+0x374(884) = 对方玩家序号。
对象指针 = 数组基址 + i×4 读出的值(玩家对象 / 怪物对象共用同一 C++ 结构,字段布局一致)。
HP(如 12345)。0x03BE3E68)里逐槽读 +0x5F8,找等于 HP 且 +0x08==49(玩家标识)的对象 → 命中即确认:0x03BE3E68 ✅+0x5F8 ✅+0x18(名)、+0x14(全服ID)、+0x2754(等级)、+0x1F5C(坐标)→ 一并确认。#角色基址 候选)读 +0x80,应也等于 HP → 反查确认 #角色基址 活值。| 偏移(hex) | 十进制 | 常量 | 含义 | 验 |
|---|---|---|---|---|
| 0x08 | +8 | #怪物类型 |
46怪/49玩家/51地面 | 整数 |
| 0x0C | +12 | #怪物ID |
对象 ID | 整数 |
| 0x14 | +20 | — | 全服ID(邀请/打怪封包首字段,2字节) | 短整 |
| 0x18 | +24 | #玩家名称 |
玩家 BIG5 名 | 文本 |
| 0x360 | +864 | #怪名称 |
怪/NPC BIG5 名 | 文本 |
| 0x3B0 | +944 | #怪编号 |
怪/NPC 编号 | 整数 |
| 0x5F8 | +1528 | #怪当前血 |
当前血(HP 锚点) | 整数 |
| 0x614 | +1556 | #怪最大血 |
最大血 | 整数 |
| 0x5FC | +1532 | #怪等级 |
怪等级 | 整数 |
| 0x35C | +860 | #怪距离 |
距离(浮点) | 浮点 |
| 0x1078 | +4216 | #怪当前X |
当前 X(浮点) | 浮点 |
| 0x1080 | +4224 | #怪当前Y |
当前 Y(浮点) | 浮点 |
| 0x1F5C | +8028 | #玩家当前X1 |
自己/玩家 X(浮点) | 浮点 |
| 0x1F60 | +8036 | — | 当前 Y | 浮点 |
| 0x1F64 | +8044 | — | 当前 Z | 浮点 |
| 0x1D24 | +7460 | #玩家目标X |
目标 X | 浮点 |
| 0x2754 | +10068 | #玩家等级 |
玩家等级 | 整数 |
| 0x265C | +9820 | #玩家职业 |
职业 | 整数 |
| 0x2660 | +9824 | #玩家性别 |
性别 | 整数 |
| 0x2664 | +9828 | #玩家正邪 |
正邪 | 整数 |
| 0x1FF0 | +8176 | #玩家门派 |
门派(文本) | 文本 |
| 0x2E00 | +11776 | #玩家称号 |
称号标志 | 整数 |
| 0x2784 | +10116 | #对话的NPCID |
对话 NPC 编号 | 整数 |
#角色基址 直接读,HP 锚关键)| 偏移(hex) | 十进制 | 常量 | 含义 |
|---|---|---|---|
| 0x34 | +52 | #人物等级 |
等级 |
| 0x80 | +128 | #当前血量 |
当前血(=HP 锚,反查角色基址) |
| 0x8C | +140 | #最大血量 |
最大血 |
| 0x84 | +132 | #当前内功 |
内功 |
| 0x90 | +144 | #最大内功 |
最大内功 |
| 0x88 | +136 | #当前愤怒 |
愤怒 |
| 0x94 | +148 | #最大愤怒 |
最大愤怒 |
| 0x98 | +152 | #人物经验 |
经验 |
| 0xAC | +172 | #人物历练 |
历练 |
| 0xC0 | +192 | #人物武勋 |
武勋 |
| 0xC8 | +200 | #人物攻击 |
攻击 |
| 0xCC | +204 | #人物防御 |
防御 |
| 0xD0 | +208 | #人物命中 |
命中 |
| 0xD4 | +212 | #人物回避 |
回避 |
| 0xE4 | +228 | #人物金钱 |
金钱 |
| 0xEC | +236 | #当前负重 |
负重 |
| 0xEE | +238 | #最大负重 |
最大负重 |
#队员基址 指向,8 槽)| 偏移(hex) | 十进制 | 常量 | 含义 | 状态 |
|---|---|---|---|---|
| 0x208 | +520 | — | 队员序号/ID(2字节,转队长/踢人封包用) | 📁 源码反推 |
| 0x20C | +524 | #组队_队员名称 |
队员名(注释写此) | ⚠ 与下条矛盾 |
| 0x338 | +824 | #组队_队员名称 |
队员名(常量值=824) | ⚠ 与上式矛盾 |
| 0x38C | +908 | #组队_队长名称 |
队长名 | 📁 |
| 0x3A0 | +928 | #组队_队伍等级 |
队伍等级 | 📁 |
死矛盾处理:活测时同时读 0x20C 与 0x338,哪个出 BIG5 队员名即真值。并建议顺带读 0x208/0x334 的 2 字节 ID 对照。
容器首址 + #背包位置(0x53C=1340) + (x-1)×4 读物品指针;偏移相对物品指针:
| 偏移(hex) | 十进制 | 常量 | 含义 |
|---|---|---|---|
| 0x54 | +84 | #背包编号 |
物品编号 |
| 0x64 | +100 | #背包名称 |
名字 |
| 0xD4C | +3404 | #背包数量 |
数量 |
| 0xD54 | +3412 | #物品类型 |
类型(1衣2护手3武器…) |
| 0xAC | +172 | #防具正邪 |
正邪 |
| 0xB0 | +176 | #防具职业 |
职业 |
| 0xB4 | +180 | #防具等级 |
等级 |
| 0xE34 | +3636 | #合成次数 |
合成次数 |
| 0xE38 | +3640 | #是否强化 |
是否强化 |
| 0xE44 | +3652 | #强化次数 |
强化次数 |
| 0xE4A | +3658 | #属性类型 |
属性类型 |
| 0xE4C | +3660 | #属性次数 |
属性次数 |
| 0xE5C | +3676 | #百宝药量 |
百宝药量 |
| 0x2FE | +766 | #技能已学 |
已学(技能栏) |
| 0xB4 | +180 | #技能等级 |
技能等级 |
游戏基址+1132 读指针→消息数组首址;首址+(x-1)×4+0x204 读消息指针;偏移相对消息指针:
| 偏移(hex) | 十进制 | 常量 | 含义 |
|---|---|---|---|
| 0x204 | +516 | #聊天_喊话位置 |
消息指针数组起点 |
| 0x22C | +556 | #聊天_喊话内容 |
消息内容(读 56~60 字节) |
| 0x36C | +876 | #聊天_喊话频道 |
频道号(8异口/9系统/13·10·20被杀) |
游戏基址+26708)| 偏移(hex) | 十进制 | 含义 |
|---|---|---|
| 0x374 | +884 | 对方玩家序号(接受/拒绝封包 0x34 用,2字节) |
| 常量 | 31007值(hex) | 用途 |
|---|---|---|
#发包call地址 |
0x006CD910 | 发包 call(特征码) |
#发包call_ecx |
0x01024FA4 | 发包 ECX |
#普攻call地址 |
0x00722220 | 普攻 call |
#快捷键call地址 |
0x009675C0 | 快捷栏 call |
#动作栏call地址 |
0x00968B40 | 动作栏 call |
#地图切换基址 |
0x00FA6CF8 | 切图 |
#隐藏怪物 |
0x006DE191 | 写 0/1 |
#隐藏人物 |
0x0070309F | 写 0/1 |
#隐藏建筑 |
0x007BB704 | 写 0/1 |
#关闭渲染 |
0x00786271 | 写 0/1 |
#无限视野 |
0x523A87 | 写 0/1 |
#穿墙地址1/2 |
0x007093BA / 0x007CA587 | 补丁 |
#组队_队员名称:0x20C vs 0x338 —— 活测双读定论。角色基址,再以 角色基址 附近全局反查 背包/队员/游戏基址 等。#遍历玩家基址 与对象数组是否同一份:候选 0x03f593a8 待确认,可能就是对象数组别名。#玩家正邪 注释 2A60 但值 9828=0x2664;#背包数量 注释 4a0 但值 3404=0xD4C),十进制为编译实际值,以十进制为准。已给脚本(工程目录同名文件):
- CE_全表验证.lua:把 PLAYER_HP 填成你游戏血条数字,CE 挂 YGOnline.exe 执行 → rxjh_fullcheck.txt,自动用 HP 锚反查对象数组/角色基址/队伍自身槽,并双读 0x20C/0x338。
- CE_未知重测.lua:算 delta 对全部过期数组测"原值/原值+delta",并指针扫描钉死 角色基址。
跑完把 txt 发我,我把命中的活基址一次性回填进本表与 常量.e.txt。