美文网首页游戏逆向笔记
26.DNF超级技能名字和偏移及易语言实现

26.DNF超级技能名字和偏移及易语言实现

作者: 游戏逆向 | 来源:发表于2019-07-06 23:34 被阅读0次

物品栏:人物基址+物品栏偏移+58+c 代表1格地址
技能栏:人物基址+技能栏偏移+88+0 代表A键地址

人物基址:651C040
物品栏偏移:2019年7月6日19:35:24
[[[[[[基址]+67DC]+88]+0]+74]+0] A键技能

26-01技能栏搜索偏移.png

确定各个偏移之后,根据三级偏移找出所有的技能


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

相关文章

网友评论

    本文标题:26.DNF超级技能名字和偏移及易语言实现

    本文链接:https://www.haomeiwen.com/subject/ayjmhctx.html