精灵主页上的那个关于QQ找茬的代码太过简陋 并且方法效率太低下 所以写一个
//最好的找茬脚本奉献上来 提供大家学习
//用8.x写的
//作者:tiger4
///
/////////////////////////////////
//
//选择是美女找茬 还是 普通找茬 默认美女找茬
UserVar xuanze=DropList{"美女找茬":"1"|"普通找茬":"2"}=1 "QQ游戏找茬"
//寻找定位点 这里的定位点是找茬游戏左上角的星星上的一个点
Call FindColor(0,0,1680,1024,"C8FCF8",X,Y)
//定义两个数组来存 不同点的X坐标和Y坐标
dim kk(1850),kw(1850)
// 定位左边画面起点坐标
dqx=x-5:dqy=y+187
//这里的IF是判断选择了美女找茬还是选择了普通找茬
If xuanze=1 then
//美女找茬 游戏时间条上的一个点的坐标 这个点控制找不同脚本的停止与开始
d3x=x+135:d3y=y+174
//这里定义的是 美女找茬两副图之间的x坐标差
d2qx=509
//这里定义的是 美女找茬第一副图的X坐标终结点
dzx=x+488
//这里定义的是 美女找茬第一副图的Y坐标终结点
dzy=y+633
Else
//普通找茬 游戏时间条上的一个点的坐标 标 这个点控制找不同脚本的停止与开始
d3x=x+350:d3y=y+31
//这里定义的是 普通找茬两副图之间的x坐标差
d2qx=393
//这里定义的是 普通找茬第一副图的X坐标终结点
dzx=x+371
//这里定义的是 普通找茬第一副图的Y坐标终结点
dzy=y+464
End If
//将起点坐标复制一份 以便等下坐标的回归
dqxf=dqx:dqyf=dqy
//用个大循环控制脚本开启后永远执行
While 1
//定义一些控制变量 来达到控制流程的目的
a=1:i=0:i1=0:ak=0:aa=0
//清空屏
Call Plugin.Msg.HideScrTXT()
// 这里While 里面的内容是用时间条上的点来控制是否开始找茬
While aa=0
//得到时间条上点的颜色
GC1=GetPixelColor(d3x,d3y)
//如果颜色为这两个色 就说明游戏已经开始 这时候就跳出循环执行下面脚本
If gc1="E0ECA0" or gc1="F8B400" then
aa=1
Else
//如果没有检测到时间条的颜色则加个延迟 然后循环执行直到颜色对才执行下面脚本
Delay 100
End If
Wend
//这里的While里面的内容是找茬的核心对比部分
While a=1
//获取第一幅图上的点的颜色
GetColor=GetPixelColor(dqx,dqy)
//获取第二幅图上的对应 第一幅图的点的颜色
GetColor1=GetPixelColor(dqx+d2qx,dqy)
//对比这两个颜色 如果一样则什么也不做
If GetColor1=GetColor then
Else
//如果两个点不一样 则分别将X坐标存到kk数组 y坐标存到kw数组 然后流程控制i+1
kk(i)=dqx:kw(i)=dqy:i=i+1
//这句可有可无 主要是将i的值显示出来看看执行到什么程度
Call Plugin.Msg.ShowScrTXT(x, y-30, x+300, y+20, "扫描不同中 "&i&"", "0000FF")
End If
//判断完一个点之后 x坐标加8
dqx=dqx+8
//如果x超出了第一幅图的长度则 x回归到图的左边y坐标加10
If dqx>dzx then
dqx=dqxf:dqy=dqy+10
//如果y坐标超出图的下标 则用流程控制变量a=2跳出循环 并且把x,y回归到第一图的左上
ElseIf dqy>dzy
a=2:dqx=dqxf:dqy=dqyf
End If
Wend
//这句可有可无 主要是用来显示是否已经点的对比
Call Plugin.Msg.ShowScrTXT(x, y-30, x+200, y+20, "扫描完成 ", "00FF00")
//这里的While 是控制将不同的点输出在图片上 因为游戏不断的刷新界面造成显示不能停留所以要循环
While a=2
//用这句将数组kk,kw里面的x,y坐标依次输出在屏幕相应x,y点上
Call Plugin.Msg.ShowScrTXT(kk(i1), kw(i1), kk(i1)+5, kw(i1)+5, "■", "000000")
//流程控制变量i1+1
i1=i1+1
//如果i1大于1则数组里的点次输出了一次了 然后让i1归0,好循环显示
If i1>i then
i1=0
//点都输出一次就ak+1
ak=ak+1
//如果连续输出20次后 则进行是否已经结束了的判断
If ak>20 then
//不管怎样流程控制变量使用以后一定要归0
ak=0
//得到时间条上点的颜色
GC1=GetPixelColor(d3x,d3y)
//判断该点颜色是否是 游戏正在执行中的颜色 如果是则不作为
If gc1="E0ECA0" or gc1="F8B400" then