PutAttachment .\plugin *.*
VBS dim x1,y1,MBX,MBY,FS,o,SL
//上面是变量声明
UserVar SL=10 设定的坐标数量
//例如你设置从A坐标到B坐标到C坐标.然么你设置的坐标就为3个 A和B和C 然么填上 UserVar SL=3
dim xy(10,2)
xy(1,1) = 0
xy(1,2) = 0
xy(2,1) = 0
xy(2,2) = 0
xy(3,1) = 0
xy(3,2) = 0
xy(4,1) = 0
xy(4,2) = 0
xy(5,1) = 0
xy(5,2) = 0
xy(6,1) = 0
xy(6,2) = 0
xy(7,1) = 0
xy(7,2) = 0
xy(8,1) = 0
xy(8,2) = 0
xy(9,1) = 0
xy(9,2) = 0
xy(10,1) = 0
xy(10,2) = 0
//上面是数组,也就是我们设置坐标的地方. xy(1,1) =这填写X坐标   xy(1,2) = 这填写Y.
//默认可以设置10个坐标,可以自己修改添加更多.具体方法参考文章【数组】在三楼.
//http://bbs.vrbrothers.com/viewthread.php?tid=27138
VBS FS =2-4
//FS=负2
//因为不能输入负数,所以采取的办法.
VBS i=1
Rem 移动
For 100
    Delay 1000
    Plugin hz=DBsoft.OCR(0,0,584,67,595,0,0,11,1,0,"ffffff",0,0,0)
    //利用大兵文字识别插件识别地图名长度. 因为设置范围原因大可能会出现识别到多余的坐标.并且保存在变量HZ中
    TracePrint HZ
    //调试模式下显示HZ变量内的内容 也可以删除这句
    Plugin hz=DBSoft.WordSelect(hz,0)
    //利用大兵文字过滤插件,先读取变量HZ把多余的符合或数字过滤.只显示文字.
    TracePrint HZ
    //调试模式下显示HZ变量内的内容
    If len(hz)=5
        //判断变量HZ的文字是否等于5个.  这步是用来识别地图名称.
        Goto 5
        //符合条件跳转到标记5
    EndIf 
    If len(hz)=4
        Goto 4
    EndIf 
    If len(hz)=3
        Goto 3
    EndIf 
    TracePrint "超出脚本功能范围 本脚本只支持地图名3-5个字"
    Gosub [脚本停止运行]
    Rem 4
    Plugin x=OF.GetSongTiMin5Number(62,586,"ffffff",0.8,3,6)
    Plugin y=OF.GetSongTiMin5Number(80,586,"ffffff",0.8,4,6)
    o=4
    Goto 输出
    Rem 3
    Plugin X=OF.GetSongTiMin5Number(50,586,"ffffff",0.8,3,6)
    Plugin Y=OF.GetSongTiMin5Number(68,586,"ffffff",0.8,4,6)
    o=3
    Goto 输出
    Rem 5
    Plugin X=OF.GetSongTiMin5Number(74,586,"ffffff",0.8,3,6)
    Plugin Y=OF.GetSongTiMin5Number(92,586,"ffffff",0.8,4,6)
    //这里是地图名称五个字识别的插件代码. 其实和三 四个字地图识别代码一样.只是左右上下的识别范围不同.
    o=5
    //这是个变量,为了节约时间,下次不在测试地图名称长短.让脚本知道地图是5个字.下次直接返还标记5读取XY.
    Rem 输出
    Plugin X1=DBSoft.WordSelect(x,1)
    Plugin y1=DBSoft.WordSelect(y,1)
    //此为大兵过滤插件把读出来的坐标多余的符合过滤只读出数字.
    //因为我地图坐标读取代码范围设置较大,这样能解决X变动导致无法识别Y的错误.
    //例如300:300  Y是从:开始识别.
    TracePrint x1
    TracePrint y1
    VBS x = X1 - xy(i,1)
    VBS y = y1 - xy(i,2)
    //利用游戏坐标 减去 目的地坐标.得到相差的距离为X.Y
    TracePrint x
    TracePrint y
    If y=0 and x=0
        If i=SL
            //如果相差的距离Y1=0 并且 相差的距离X1=0 则代表当前游戏坐标与目的地坐标相差为0 则到达目的地.
            //完成走到第SL个坐标后停止. SL是变量 可以在开头设置
            i=i+1
        EndIf 
        //则走到下一个坐标.
        Gosub [判断坐标]
    EndIf 
    If y>=2 and x>=2
        //如果 相差的距离Y1大于等于2则说明可以往左跑. 并且 相差的距离X1大于等于2则可以上跑.
        //大家都知道游戏中走1步游戏坐标会因为方向不同+1或-1.是有规则的.跑一步则是+2.
        //大家知道 and 是和的意思 则可以往左跑+上跑=左上跑
        //左上