.版本 2
.子程序 吸怪
.局部变量 人物地址, 整数型
.局部变量 循环计次, 整数型
.局部变量 对象地址, 整数型
.局部变量 对象类型, 整数型
.局部变量 地图地址, 整数型
.局部变量 对象数量, 整数型
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 z, 整数型
VMP保护标记开始 ()
写内存字节集 (进程ID, 十六到十 (#吸怪检测A), 还原字节集2 (“C3”)) ' 木马点、
写内存字节集 (进程ID, 十六到十 (#吸怪检测B), 还原字节集2 (“C3”)) ' 木马点、
进程ID = 取进程ID (“dnf.exe”)
.如果真 (读内存代码 (进程ID, #人物基址) ≤ 0)
返回 ()
.如果真结束
.如果真 (读内存代码 (进程ID, #人物基址 + “+B8”) = 0)
返回 ()
.如果真结束
人物地址 = 读内存整数型 (进程ID, 十六到十 (#人物基址))
地图地址 = 读内存整数型 (进程ID, 人物地址 + 184)
对象数量 = (读内存整数型 (进程ID, 地图地址 + 200) - 读内存整数型 (进程ID, 地图地址 + 196)) ÷ 4 ' C8 C4
.计次循环首 (对象数量, )
对象地址 = 读内存整数型 (进程ID, 读内存整数型 (进程ID, 地图地址 + 196) + 循环计次)
循环计次 = 循环计次 + 4
.如果真 (对象地址 ≠ 人物地址)
对象类型 = 读内存整数型 (进程ID, 对象地址 + 144)
.如果真 (对象类型 = 529)
x = 读内存小数型 (进程ID, 人物地址 + 436)
y = 读内存小数型 (进程ID, 人物地址 + 440)
z = 读内存小数型 (进程ID, 人物地址 + 444)
写内存小数型 (进程ID, 读内存整数型 (进程ID, 对象地址 + 168) + 16, x)
写内存小数型 (进程ID, 读内存整数型 (进程ID, 对象地址 + 168) + 20, y)
写内存小数型 (进程ID, 读内存整数型 (进程ID, 对象地址 + 168) + 24, z)
.如果真结束
.如果真结束
内存优化 (进程ID)
.计次循环尾 ()
VMP保护标记结尾 ()