自动脚本跑不动/队友名特殊时用。核心思路:先拿到一个队友的对象指针 → 对它做"指针扫描" → 找 8 槽连续的全局变量。
一至尊霸王花一)。YGOnline.exe。0x03BE3E68(已二进制确认 + CE 实测),对象指针 = 读整数(0x03BE3E68 + k×4),k=8000..10000,玩家类型 ptr+8 == 0x31,名字在 ptr+0x18。03BE3E68,类型"4 字节",加到地址列表。k=8000..10000,对每个 读整数(03BE3E68+k*4) 读出指针 P,看 P+8==0x31 且 P+0x18 的名字是你队友 → 记下这个 P(例如 1A2B3C4D)。CE_队员基址_指针扫描.lua 的阶段A,它会把命中对象的 ptr 打印到 rxjh_team_scan.txt。P(队友对象指针),例如 1A2B3C4D。YGOnline.exe 模块(或全内存);最大偏移 0;最大层级 1(我们要的是"一级指针",即全局变量直接存这个对象指针)。G(G 就是某个 队员基址 + (槽-1)×4)。队员基址 满足:从它起连续 8 个 4 字节都是有效对象指针或 0,且该队友的 P 在某一槽。读整数(G - (槽-1)×4),然后手动把这条地址+0/+4/+8/.../+1C 共 8 个都加进列表,逐个看是否指向有效对象(类型 P+8 为 0x31/0x2E)。8 个里有效对象数越多越好(满队 8 个,少队几个)。P+0x20C 和 P+0x338 处文本:哪个出可读名字,哪个就是真 #组队_队员名称。P+0x208(2字节队员ID)、P+0x38C(队长名)、P+0x3A0(队伍等级) 核对。#队员基址 = <第3步得到的 队员基址 十进制>
#组队_队员名称 = <第4步真偏移 十进制> (824=0x338 或 524=0x20C)
#组队_队长名称 = 908 (0x38C,待验证)
#组队_队伍等级 = 928 (0x3A0,待验证)
然后把遍历/发包里所有 #队员基址 用到处确认用的是这个新值即可(你源码 遍历.static.e.txt 直接用 #队员基址,无需改代码,只改常量)。
遍历队员_取所有队友,看日志打出的队友名单是否齐全正确。rxjh_team_scan.txt(或手动第3步的 队员基址值 + 名字偏移)发我,我帮你固化进总表和常量文件。