//2张间距VBSn=200//初始抓第一张图的颜色点坐标(下面坐标自己修改)VBSx=100:y=100//4张图,循环4次For4VBSCallc=GetPixelColor(x,y)//颜色判断(可自行增加多个判断项)Ifc="00FF00"orc="FF00FF"orc="DDFFDD"Gosub移动单击ElseIfc="DDFF00"orc="FFDDFF"orc="FFFFDD"Gosub移动单击ElseIfc="AAFF00"orc="FFAAAA"orc="AAAADD"Gosub移动单击EndIfVBSx=x+nEndForRem开始MessageBox识别错误,发现新图片,请把鼠标移动到不同的图片上,再按[ctrl]键WaitKeyk//[ctrl]键acsii码17Ifk=17//鼠标位置判断(4个位置区域)VBSCallGetCursorPos(mx,my)Ifmx>100andmx<200//下面坐标自己修改(就是颜色位置)VBScx=100:cy=100ElseIfmx>200andmx<300VBScx=200:cy=200ElseIfmx>300andmx<400VBScx=300:cy=300ElseIfmx>400andmx<500VBScx=400:cy=400ElseMessageBox鼠标位置放的不对,重新开始!Goto开始EndIf//得到鼠标区域位置颜色VBSCallc1=GetPixelColor(cx,cy)VBSCallMessageBox("["&c1&"]得到的新颜色自己手动增加到颜色判断里面")EndIfRem结束EndScriptSub移动单击MoveToxyDelay200LeftClick1Delay500Goto结束Return移动单击一、椭圆渐开(修改自论坛某位大大的)VBSdimx0,n,y0,x,color0,color//声明变量Remstart//标记渐开线找怪开始VBSx0=400:n=1:y0=300:x=400//变量初始化VBSl=20//设置2点间距离Whilex<800//限定横坐标范围不超过800VBSx=x0+4*(cos(n)+n*sin(n))//根据渐开线公式计算下一个点的横坐标并赋值给xVBSy=y0+3*(sin(n)-n*cos(n))//根据渐开线公式计算下一个点的纵坐标并赋值给yVBSCallcolor0=GetPixelColor(x,y)//在鼠标移动之前,获取目标点色值并赋值给color0VBSCallCallSetCursorPos(x,y)//马上移动鼠标到目标点VBSCallcolor=GetPixelColor(x,y)//获取鼠标移动后该点色值并赋值给colorIfcolor<>color0//同一点取得的两次色值比较,不同,则执行以下的打怪脚本LeftClick1//左键单击Delay3000//打怪延时EndIf//该点判断结束Delay10//循环延时//VBSn=n+0.2//渐开线参数增量,其中0.2代表点间距,数值越小,渐开线散开点间距越小VBSr=Sqr((x-x0)^2+(y-y0)^2)//计算当前点(x,y)到原点(x0,y0)的距离VBSn=n+l/r//渐开线参数增量,其中l/r:点距除以半径,取得2点间相对圆心的角度//能有效控制扫描点的密度,2点间的距离就比较平均EndFor//一次渐开线取点判断结束Gotostart//跳转到开始,重复渐开线搜索二、圆形渐开//设置圆心坐标x0=400:y0=300//设置递增半径rr=20//设置点间距l=20//初始化角度n=0//设置第一圈半径r=30//设置画圆圈数For10Whilen<3.1415926*2//画圆公式x=x0+r*cos(n)y=y0-r*sin(n)MoveToxyLeftClick1Delay10//l/r:点距除以半径,取得2点间相对圆心的角度//能有效控制扫描点的密度,2点间的距离就比较平均n=n+l/rEndFor//画完一圈后重置角度n=0//画完一圈后半径递增rrr=r+rrEndFor三、方形渐开支持第三种方法第三种方法不错//设置中心点x=400:y=300//设置2点间距离v=10i=1//循环20次,即画20圈For20j=0:k=vFor2Forix=x+j:y=y+kMoveToxyLeftClick1Delay10EndForj=v:k=0EndFori=i+1:v=v*(-1)EndFor玩了几个游戏,都看到人物是在游戏画面的最中间,所以做了一个通用程序来取得人物坐标VBSdiMhwnd,x,y,Temp,Rect(4)Pluginhwnd=Window.Foreground()PluginWindow.Move(hwnd,0,0)PluginTemp=Window.GetClientRect(hwnd)VBSxStr=0VBSM=InStr(Temp,"|")WhileM>0Rect(xStr)=Mid(Temp,1,M-1)VBSTemp=Mid(Temp,M+1,len(Temp)-M)VBSM=InStr(Temp,"|")xStr=xStr+1EndWhileRect(Ubound(Rect)-1)=TempVBSM=0WhileM