Delay 1000 Delay 1000 //分析:宝石出现的时候点击宝石。宝石全点完的时候会出现下一关,点击下一关 //根据以上两点可以看出出现下一关或宝石的时候都要点击它们。 //那么我们如何获得我们要点击的坐标?? //由于宝石不变色(全部6种宝石)所以我们可以通过抓色获得这6种宝石独有的颜色。 //获得6个宝石的颜色后。我们在获得开始键和下一关键上特有的颜色。 //用ARRAY将获得的颜色定义成一个数组。这样方便调用 //ys=array("1A85CD","AD2D2D","C0C064","3333CC","2EC7C7","7C20B9","FFFFFF") //获得7种颜色后。我们通过找色命令可以找到这个7个色的坐标。不管找到什么色都是点一下。 // While true // i=0 // For 7 // VBSCall FindCenterColor(dwx+21,dwy+87,dwx+529,dwy+384,ys(i),x,y) // If x>0 and y>0 // MoveTo x,y // LeftClick 1 // EndIf // Delay 1 // i=i+1 // EndFor //EndWhile //这样的话脚本会一直点。但不会停止。我们在做一个停止开关。开关做在那里呢??游戏共10关开始游戏要点一下开始。每过一关要点一下下一关。如果我们不想他第十关点掉分数的话我们不把第十关的点算下去。开始要点开始和1-9关要点下一关,1(开始)+9(9关)=10(下) //所以我们可以设置个开关一旦这个开关达到10次的时候我们就结束脚本 //ks=0 //If ks>=10 // MessageBox "游戏全通关" // EndScript //EndIf //开始ks=0,当KS达到10的时候也就是点了1下开始和9下下一关了!!!!!!!!! Plugin hwnd=Window.MousePoint() //获得窗口左上角的位置和窗口的大小 Plugin rect=Window.GetClientRect(hwnd) If InStrRev(rect,"550|400")=0 MessageBox "请将鼠标放在游戏窗口内在启动游戏" EndScript EndIf //获得窗口左上角的坐标,并将坐标作为参考坐标 dw=Split(rect,"|"):dwx=dw(0):dwy=dw(1) //设置宝石颜色和开始(下一关)的颜色 ys=array("1A85CD","AD2D2D","C0C064","3333CC","2EC7C7","7C20B9","FFFFFF") //设置一个变量用来控制点开始的次数 ks=0 //无限循环找色 While true i=0 //6种颜色+开始(下一关)按钮的颜色等于7种颜色,循环寻找下这7个色 For 7 //以中点向四周找色找到定义的颜色 VBSCall FindCenterColor(dwx+21,dwy+87,dwx+529,dwy+384,ys(i),x,y) If x>0 and y>0 //判断找到的这个色是否是白色(开始(下一关))的颜色 If ys(i)="FFFFFF" // 判断这个颜色是否大于等于10 If ks>=10 //等于10的话也就是第十关结束了,可以结束游戏了 MessageBox "游戏全通关" EndScript EndIf //不等于10还没到第10关,也就是将到下一关。我们将变量加大1 ks=ks+1 EndIf //点击刚才找到的颜色 MoveTo x,y LeftClick 1 EndIf //减缓CPU的计算降低CPU用量,根据自己电脑CPU设置。 Delay 1 i=i+1 EndFor EndWhile