返回列表 回复 发帖

网络游戏找怪思路详解

学习按键有段时间了  对一些找怪的思路小有体会  简单来说找怪就是找怪与背景不同的独有的特征  可以通过找怪的颜色/图片,怪名字颜色/图片,怪血条颜色/图片,内存找怪(没试过),渐开线扫描,小地图找怪等等的方法来实现  具体看游戏而定  下面就介绍几种找怪的方法:
1。区域找色
   应该说是最简单的找怪方法了  在区域里查找怪的特有颜色,名字颜色,血条颜色等等  如果找到移动鼠标到怪身上进行攻击 (推荐用区域模糊找色或从区域中间向外找色)
例子(区域模糊找色):
VBSCall FindColorEx(0,0,1024,768,"FFFFFF",1,0.8,x,y)
//区域模糊找色  0,0,1024,768为区域范围 "FFFFFF"为颜色 1为查找方式(中间向外) 0.8为模糊值 x,y为找到颜色后的坐标变量
If x>=0 and y>=0
   
//如果找到颜色  比如找到颜色就会赋值给坐标变量  通过判断坐标变量可以知道有没有找到怪
    MoveTo x y
   
//把鼠标移动到该色的坐标 如果找的是怪名字或血条  可能移动不到怪身上 这时就要用鼠标偏移 如:MoveTo x+10 y+10
    Delay 50
   
//延时
    LeftClick 1
   
//左键单击进行攻击
EndIf
//条件结束
如果要在区域内查找多色可以用数组来写   在16楼有个例子  可以参考一下
2。区域找图
   在区域里查找怪的图形,怪的名字图片,血条图片等等  语法与区域找色相似  需要注意的是图片的制作  这里有两个教程可以参考一下
教程①

教程②
    图片做好之后可以放在按键文件夹里的script文件夹中  就可以不用在脚本里写图片路径 只需图片名就行了  写脚本的时候比较方便
例子:
VBSCall FindPic(0,0,1024,768,"1.bmp",0.9,x,y)
//区域找图  0,0,1024,768为区域范围  "1.bmp"为图片名(路径)  0.9为找图的相似度 x,y为找到图片后的坐标变量
If x>=0 and y>=0
    MoveTo x y
    Delay 50
    LeftClick 1
EndIf
3。圆形渐开线扫描找怪法
   此法效率较低  这里有个以前的例子可以参考一下
http://bbs.vrbrothers.com/viewthread.php?tid=14105
   
4。圆形渐开线扫描找变色怪
   这个是我以前收集的一个找变色怪的例子(原帖找不到了):
VBS dim x0,n,y0,x,color0,color
//声明变量
Rem start
//标记渐开线找怪开始
VBS x0=400:n=1:y0=300:x=400
//变量初始化
While x//限定横坐标范围不超过800
    VBS x=x0+4*(cos(n)+n*sin(n))
   
//根据渐开线公式计算下一个点的横坐标并赋值给x
    VBS y=y0+3*(sin(n)-n*cos(n))
   
//根据渐开线公式计算下一个点的纵坐标并赋值给y
    VBSCall color0=GetPixelColor(x,y)
   
//在鼠标移动之前,获取目标点色值并赋值给color0
    VBSCall Call SetCursorPos(x,y)
   
//马上移动鼠标到目标点
    VBSCall color=GetPixelColor(x,y)
   
//获取鼠标移动后该点色值并赋值给color
    If colorcolor0
        
//同一点取得的两次色值比较,不同,则执行以下的打怪脚本
        LeftClick 1
        
//左键单击
        Delay 3000
        
//打怪延时
    EndIf
   
//该点判断结束
    Delay 10
   
//循环延时
    VBS n=n+0.2
   
//渐开线参数增量,其中0.2代表点间距,数值越小,渐开线散开点间距越小
EndFor
//一次渐开线取点判断结束
Goto start
/转到开始,重复渐开线搜索
5。小地图找怪
  公式:大地图怪坐标=(小地图怪坐标 - 小地图人物坐标)*比例 + 大地图人物坐标   
比例是(大地图怪坐标和大地图人物坐标之间的距离)与(小地图怪坐标和小地图人物坐标之间的距离)这两者的比例   如下图 A线与B线的比例   图做的不好 莫怪

    用小地图找怪计算数据必需要很准确   
然后用区域找色查找小地图上怪的小点(最好用从区域中心向外找色) 找到怪的小点后再计算坐标  计算得出大地图坐标后  移动鼠标到怪身上打怪

例子:
VBSCall FindCenterColor(858,66,996,192,"0000FF",x,y)
//区域从中间向外找色  858,66,996,192是小地图的区域范围
If x>=0 and y>=0
   
//如果找到颜色
    x0=(x-926)*10+512
    y0=(y-129)*10+389
   
//计算大地图怪的坐标
    MoveTo x0 y0
   
//移动到大地图怪的坐标
  
    Delay 50
   
//延时
    LeftClick 1
   
//左键单击进行攻击
EndIf
//条件结束
暂时就写这几个了   当然找怪的方法不止这几种而已   欢迎大家一起来讨论与分享
都是高手........
看不动啊

又是这样的,不明白

努力想学点
。。。。。。。。。。想飘荡,想飞的更高。

                                                                                     飘飘
怪物。。。还用。。。。
不是很明白的
要变的比昨天的自己更强  ~!                           
不是很明白
再努力看懂
好东西呀...

怪怪的!

努力想学点
返回列表