物品栏:人物基址+物品栏偏移+58+c 代表1格地址
技能栏:人物基址+技能栏偏移+88+0 代表A键地址
人物基址:651C040
物品栏偏移:2019年7月6日19:35:24
[[[[[[基址]+67DC]+88]+0]+74]+0] A键技能
确定各个偏移之后,根据三级偏移找出所有的技能
26-02根据三级偏移找技能栏所有的技能.png
超级技能名字偏移:74
技能栏偏移:67DC
人物基址+各技能偏移+74+0 遍历各技能偏移 找出所有技能名字
技能数组:首地址 尾地址
首地址偏移:45e4 尾地址偏移:5DA0
判断是否在图内
[[人物基址]+C8] == 0 没在图内
易语言实现
.版本 2
.支持库 iext
.子程序 _按钮技能_被单击
.局部变量 开始偏移, 整数型
.局部变量 结束偏移, 整数型
.局部变量 偏移, 文本型
.局部变量 技能名字, 文本型
.局部变量 i, 整数型
人物基址 = “651C040”
.如果真 (读内存代码 (进程ID, 人物基址 + “+c8”) = 0)
公告 (“请进图后在开启”)
返回 ()
.如果真结束
开始偏移 = 十六到十 (“45e4”)
结束偏移 = 十六到十 (“5da0”)
超级列表框技能.全部删除 ()
.循环判断首 ()
偏移 = 十到十六 (开始偏移)
技能名字 = 取技能名称 (人物基址, 偏移)
.如果真 (倒找文本 (技能名字, “?”, , 假) = -1)
.如果真 (技能名字 ≠ “【未知】”)
i = 超级列表框技能.插入表项 (, , , , , )
超级列表框技能.置标题 (i, 0, 技能名字)
超级列表框技能.置标题 (i, 1, 偏移)
.如果真结束
.如果真结束
开始偏移 = 开始偏移 + 4
.循环判断尾 (开始偏移 < 结束偏移)
.子程序 取技能名称, 文本型
.参数 触发地址, 文本型
.参数 技能偏移, 文本型
.局部变量 宽名称, 字节集
.局部变量 名称, 文本型
宽名称 = 读内存字节集 (进程ID, 读内存代码 (进程ID, 触发地址 + “+” + 技能偏移 + “+” + #超级技能名字偏移), 100)
名称 = 转换Unicode转Ansi (宽名称)
.如果真 (名称 = “”)
名称 = “【未知】”
.如果真结束
返回 (名称)
26-03易语言实现打印技能名称和偏移.png
网友评论