|
|
什么是「坐标 CALL 遍历顺图」?
简单说:
让角色自动沿着地图坐标点走路 = 顺图
靠 CALL 指令控制角色移动 = 坐标 CALL
按顺序跑一遍所有坐标点 = 遍历顺图
用途:搬砖、自动刷图、任务自动跑路、副本全图跑。
必备基础(新手必看)
顺图 = 一组 坐标点 (X,Y) 组成的路线
角色按顺序从 起点 → 点 1 → 点 2 → 点 3 → 终点
坐标 CALL = 游戏底层 “移动到指定坐标” 的函数
必须CALL 正确 + 坐标正确,角色才会乖乖走路
dnf
坐标call遍历顺图,
人物指针 = 读内存整数型 (进程ID, 十六到十 (#人物基址))
首地址 = 读内存代码 (进程ID, #人物基址 + “+b8+b0”) - 4
尾地址 = 读内存代码 (进程ID, #人物基址 + “+b8+b4”)
数量 = (尾地址 - 首地址) ÷ 4
.计次循环首 (数量, I)
指针 = 读内存整数型 (进程ID, 首地址 + I × 4)
类型 = 读内存整数型 (进程ID, 指针 + 144)
.如果真 (类型 = 33)
代码 = 读内存整数型 (进程ID, 指针 + 596)
X = 读内存小数型 (进程ID, 指针 + 396)
Y = 读内存小数型 (进程ID, 指针 + 400)
名称 = 转换繁体到简体 (转换Unicode转Ansi (读内存字节集 (进程ID, 读内存整数型 (进程ID, 指针 + 600), 50)))
.如果真 (方向 = 1)
.如果真 (寻找文本 (名称, “上侧门”, , 假) > 1 或 寻找文本 (名称, “上侧领主门”, , 假) > 1 或 寻找文本 (名称, “上方门”, , 假) > 1 或 寻找文本 (名称, “上方领主门”, , 假) > 1 或 寻找文本 (名称, “上侧的门”, , 假) > 1 或 寻找文本 (名称, “上侧的领主门”, , 假) > 1)
顺图坐标 (人物指针, X, Y + 60, 0)
延时 (100)
顺图坐标 (人物指针, X, Y + 15, 0)
.如果真结束
.如果真结束
.如果真 (方向 = 2)
.如果真 (寻找文本 (名称, “下侧门”, , 假) > 1 或 寻找文本 (名称, “下侧领主门”, , 假) > 1 或 寻找文本 (名称, “下方门”, , 假) > 1 或 寻找文本 (名称, “下方领主门”, , 假) > 1 或 寻找文本 (名称, “下侧的门”, , 假) > 1 或 寻找文本 (名称, “下侧的领主门”, , 假) > 1)
顺图坐标 (人物指针, X, Y - 60, 0)
延时 (100)
顺图坐标 (人物指针, X, Y - 15, 0)
.如果真结束
.如果真结束
.如果真 (方向 = 3)
.如果真 (寻找文本 (名称, “左侧门”, , 假) > 1 或 寻找文本 (名称, “左侧领主门”, , 假) > 1 或 寻找文本 (名称, “左方门”, , 假) > 1 或 寻找文本 (名称, “左方领主门”, , 假) > 1 或 寻找文本 (名称, “左侧的门”, , 假) > 1 或 寻找文本 (名称, “左侧的领主门”, , 假) > 1 或 寻找文本 (名称, “左侧领主门”, , 假) > 1)
顺图坐标 (人物指针, X + 160, Y - 30, 0)
延时 (100)
顺图坐标 (人物指针, X + 80, Y - 30, 0)
.如果真结束
.如果真结束
.如果真 (方向 = 4)
.如果真 (寻找文本 (名称, “右侧门”, , 假) > 1 或 寻找文本 (名称, “右侧领主门”, , 假) > 1 或 寻找文本 (名称, “右方门”, , 假) > 1 或 寻找文本 (名称, “右方领主门”, , 假) > 1 或 寻找文本 (名称, “右侧的门”, , 假) > 1 或 寻找文本 (名称, “右侧的领主门”, , 假) > 1 或 寻找文本 (名称, “右侧领主门”, , 假) > 1)
顺图坐标 (人物指针, X - 160, Y + 30, 0)
延时 (100)
顺图坐标 (人物指针, X - 80, Y + 30, 0)
.如果真结束
.如果真结束
.如果真结束
.计次循环尾 ()
.版本 2
.子程序 遍历顺图, , 公开
.参数 方向, 整数型, , 1上,2下,3左,4右
.局部变量 人物指针, 整数型
.局部变量 首地址, 整数型
.局部变量 尾地址, 整数型
.局部变量 数量, 整数型
.局部变量 I, 整数型
.局部变量 类型, 整数型
.局部变量 指针, 整数型
.局部变量 名称, 文本型
.局部变量 代码, 整数型
.局部变量 X, 整数型
.局部变量 Y, 整数型
.版本 2
.子程序 顺图坐标, , 公开, 坐标call
.参数 触发地址, 整数型, , +8
.参数 Z, 整数型, , +c
.参数 Y, 整数型, , +10
.参数 X, 整数型, , +14
置汇编代码 ({ })
Pushad ()
Mov_ESI (触发地址)
Mov_EAX_Ptr_ESI ()
Mov_EDI_EAX ()
Mov_EAX_Ptr_EAX_Add (十六到十 (“AC”))
Mov_ECX_ESI ()
Call_EAX ()
Mov_EAX (X)
Mov_ECX (Y)
Mov_EDX (Z)
Push_EAX ()
Push_ECX ()
Push_EDX ()
Mov_EAX_Ptr_EDI_Add (十六到十 (“98”))
Mov_ECX_ESI ()
Call_EAX ()
Popad ()
ret ()
开始Virus (进程ID)
汇编远程执行 (取汇编代码 ())
结束Virus ()
.版本 2
.子程序 坐标过图, , , 0左1右2上3下
.参数 方向ID, 整数型
.局部变量 人物指针, 整数型
.局部变量 地图指针, 整数型
.局部变量 坐标指针, 整数型
.局部变量 坐标结构, 整数型
.局部变量 x, 整数型
.局部变量 y, 整数型
.版本 2
人物指针 = 读内存整数型 (进程ID, 十六到十 (#人物基址))
地图指针 = 读内存整数型 (进程ID, 人物指针 + 184)
.如果真 (地图指针 = 0)
返回 ()
.如果真结束
坐标指针 = 读内存整数型 (进程ID, 十六到十 (#商店基址) - 8)
坐标指针 = 读内存整数型 (进程ID, 坐标指针 + 十六到十 (“20A050”))
坐标指针 = 读内存整数型 (进程ID, 坐标指针 + 76) ' 4c
坐标结构 = 坐标指针 + 十六到十 (“3A8”) + 方向ID × 8
x = 读内存整数型 (进程ID, 坐标结构 + 0)
y = 读内存整数型 (进程ID, 坐标结构 + 4)
.如果真 (方向ID = 0)
顺图坐标 (人物指针, x + 160, y - 30, 0)
延时 (200)
顺图坐标 (人物指针, x + 80, y - 30, 0)
.如果真结束
.如果真 (方向ID = 1)
顺图坐标 (人物指针, x - 160, y + 30, 0)
延时 (200)
顺图坐标 (人物指针, x - 80, y + 30, 0)
.如果真结束
.如果真 (方向ID = 2)
顺图坐标 (人物指针, x, y + 60, 0)
延时 (200)
顺图坐标 (人物指针, x, y + 15, 0)
.如果真结束
.如果真 (方向ID = 3)
顺图坐标 (人物指针, x, y - 60, 0)
延时 (200)
顺图坐标 (人物指针, x, y - 15, 0)
本文转自:https://tieba.baidu.com/p/10758617542?fr=frs
|
|