|
楼主 |
发表于 2023-6-15 01:37:30
|
显示全部楼层
- //梦幻鼠标防漂移代码
- function Mouse_drift(hwnd,target_x,target_y,error_x,error_y)//(窗口句柄,目标x,目标y,误差x,误差y)
- var x,y//找图返回值x,y
- var window_x,window_y//游戏位置x,y
- var mouse_x,mouse_y//桌面鼠标位置x,y
- var count=0//记录失败次数
- windowgetpos(hwnd,window_x,window_y)//获取游戏位置
- while(true)//循环-真
- //用游戏窗口找图的方式来识别鼠标的位置
- var ret =windowfindpic(hwnd,0,0,800,600,"rc:01.bmp|rc:02.bmp|rc:03.bmp","494959",0.5,0,x,y)
- if(ret==-1)//如果没找到
- if(count>20)//连续20次没找到
- mousemove(window_x+400,window_y+300)//鼠标移动游戏的中间位置
- count=0//次数初始化
- end//结束
- sleep(10)//因为游戏只有30帧没有延迟的的情况下找图会多次识别同一张图
- count++//每次失败都进行一次加1的操作
- continue//失败就继续找直到找到在执行下面的代码
- end//结束
- count=0//找到也要给变量初始化
- if(mabs(target_x-x)<error_x&&mabs(target_y-y)<error_y)//误差达到跳出
- break//跳出
- end
- if(mabs(target_x-x)>2||mabs(target_y-y)>2)
- mousemoverelative((target_x-x)/2,(target_y-y)/2)//鼠标相对移动
- end//结束
- mousegetpoint(mouse_x,mouse_y)//桌面鼠标位置
- if(mouse_x<window_x||mouse_y<window_y||mouse_x>(window_x+800)||mouse_y>(window_y+600))//越界代码
- mousemove(window_x+400,window_y+300)//鼠标设置位置
- end//结束
- sleep(30)//重点:不加延迟会出现鼠标移动完 脚本识别的还是上一个坐标上的鼠标位置 会出现鼠标左右上下乱晃的情况
- //因为游戏只有30帧
- end
- end
复制代码 |
|