纯找图,无插件.适用性广.只要能找图就能用.
废话不多说,直接上干货.
核心代码:MoveToS Int(x1 + x2 * i + Int(Rnd * 3)), Int(y1 + y2 * i + Int(Rnd * 3))
//先多次微小移动(x1 + x2 * i ) + 随机0~3的仿人工偏移 到目标 X, Y 附近
MoveRS Int((x - sbzx) / 3), Int((y - sbzy) / 3)
//再通过找图 ( 目标坐标-鼠标坐标)/3 移动到确切坐标
源码事例:
(仅为示范,具体情况自行修改.)
Function py(X, Y, 是否点击)
//鼠标偏移带轨迹(x目标,y目标)可选点击
Dim PYCS, FCDS, X1, Y1, X2, Y2, SBZX, SBZY
//定义变量
Rem kspy
//标记 开始偏移
Randomize
//初始化随机数
GetCursorPos x1, y1
//获取当前鼠标位置 x1,y1
pycs = 0
//偏移次数=0
fcds = abs(X - X1) \ 4 + abs(Y - Y1) \ 4 + Int(Rnd * 8)
//分成段数=根据移动距离的长短分段+(随机次数)
TracePrint "分成段数"&fcds
x2 = (x - x1) / fcds
//x2=x方向每段移动多少距离
TracePrint x2
y2 = (y - y1) / fcds
//y2=y方向每段移动多少距离
TracePrint y2
For i = 0 To (FCDS - FCDS \ 8)
//循环移动(分成段数-8次)到目标 X,Y 附近
Delay Int(Rnd * 18 + 8)
//随机延时 最大26毫秒,最小8毫秒
TracePrint "随机延时" & Int(Rnd * 18 + 8)
//调试 随机延时
MoveToS Int(x1 + x2 * i + Int(Rnd * 3)), Int(y1 + y2 * i + Int(Rnd * 3))
//分段移动到目标 X,Y 附近
TracePrint fcds & "轨迹位置" & Int(x1 + x2 * i + Int(Rnd * 3)) & "," & Int(y1 + y2 * i + Int(Rnd * 3))
//调试 分段移动到目标 X,Y 附近
Next
//结束循环
Do
//循环(移动到目标X,Y)
Delay Int(Rnd * 18 + 8)
//随机延时 最大26毫秒,最小8毫秒
FindPic 0, 0, 888, 888, "Attachment:\鼠标图标.bmp", 0.9, sbzx, sbzy
//寻找游戏鼠标位置,鼠标值x,鼠标值y
If sbzx > 0 Then
// 如果找到鼠标
If abs(x - sbzx) < 6 and abs(y - sbzy) < 6 Then
//如果鼠标x,y和目标x,y之间小于8个坐标
TracePrint "点击偏移" & abs(x - sbzx) & "," & abs(y - sbzy)
//调试鼠标x,y和目标x,y之间的距离
Delay Int(Rnd * 18 + 8)
//随机延时 最大26毫秒,最小8毫秒
Select Case 是否点击
//条件选择 是否点击
Case 0
//输入0就是只移动不点击,直接退出函数
Exit Function
Case 1
//输入1就是左键单击
LeftDownS 1
Delay Int(Rnd * 888 + 188)
LeftUp 1
Delay Int(Rnd * 88 + 18)
Exit Function
Case 2
//输入2就是右键单击
RightDownS 1
Delay Int(Rnd * 888 + 188)
RightUpS 1
Delay Int(Rnd * 88 + 18)
Exit Function
Case 3
//输入3就是左键双击
LeftDownS 1
Delay Int(Rnd * 88 + 18)
LeftUpS 1
Delay Int(Rnd * 88 + 18)
LeftDownS 1
Delay Int(Rnd * 88 + 18)
LeftUpS 1
Delay Int(Rnd * 88 + 18)
Exit Function
Case 4
//输入4就是右键双击
RightDownS 1
Delay Int(Rnd * 88 + 18)
RightUpS 1
Delay Int(Rnd * 88 + 18)
RightDownS 1
Delay Int(Rnd * 88 + 18)
RightUpS 1
Delay Int(Rnd * 88 + 18)
Exit Function
Case 5
//输入5就是左键拖动
LeftDownS 1
Delay Int(Rnd * 888 + 188)
Exit Function
Case 6
//输入6就是右键拖动
RightDownS 1
Delay Int(Rnd * 888 + 188)
Exit Function
Case Else
// 退出循环
Exit Do
End Select
Exit Do
//结束循环
Else
//否则(如果鼠标x,y和目标x,y之间大于8个坐标 )
MoveRS Int((x - sbzx) / 3), Int((y - sbzy) / 3)
//鼠标向目标位置移动1/3距离
TracePrint "轨迹位置" & Int((x - sbzx) / 3) & "," & Int((y - sbzy) / 3)
//调试 鼠标向目标位置移动1/3距离
Delay Int(Rnd * 18 + 8)
//随机延时 最大26毫秒,最小8毫秒
pycs = pycs + 1
//偏移次数+1
End If
//结束如果
Else
//否则(鼠标图标在窗口边缘或其他显示不全等情况)
MoveToS x , y
//调整鼠标位置
pycs = pycs + 1
//偏移次数+1
End If
//结束找图
If pycs > 8 Then
//如果偏移次数大于8次
Goto kspy
//跳转 重新开始偏移
End If
//结束如果
Loop
//结束循环
End Function