1 OD附加游戏,发现 周围怪物列表基址处 有我们人物角色的名字,猜测 第一个对象可能是 我们的人物本身
    image.png

    2 对比一下 人物对象 和 怪物对象 基址处的数值,看看有什么不同。发现 对象基址+8 的值 ,两个怪物都是相同的,为0x2E。
    image.png

    3 我们到OD中,对 对象基址+8 这个地址 下个内存访问断点
    然后发现断在了这里,要跟31比,这不就是我们 玩家对象基址+8 这个地址的值 吗?
    说明 对象基址+8 应该是 对象分类的编号,2E代表普通怪物,31代表玩家。中间隔了2F,30,可能也代表着某些对象类型。比如精英怪,BOSS怪
    image.png

    4 我们再找一下人物名称的偏移是多少,人物名称:[人物对象+18]
    image.pngimage.png

    5 接下来解决上一节留下的问题,怪物死亡的状态,先改个名字
    image.png

    6 用CE从怪物对象基址 开始搜,死了搜1,没死搜0。找到死亡状态 偏移为 +3C0
    image.png
    image.png

    7 添加代码
    StrcutGame.cpp
    image.png
    image.png
    StrcutGame.h
    image.png
    8 测试,完美解决
    image.png