1. [Script]
  2. 展开附件 .\plugin *.*
  3. (VBScript语句) dim x1,y1,MBX,MBY,FS,o,SL
  4. //上面是变量声明
  5. 用户定义变量 SL=10 设定的坐标数量
  6. //例如你设置从A坐标到B坐标到C坐标.然么你设置的坐标就为3个 A和B和C 然么填上 UserVar SL=3
  7. dim xy(10,2)
  8. xy(1,1) = 0
  9. xy(1,2) = 0
  10. xy(2,1) = 0
  11. xy(2,2) = 0
  12. xy(3,1) = 0
  13. xy(3,2) = 0
  14. xy(4,1) = 0
  15. xy(4,2) = 0
  16. xy(5,1) = 0
  17. xy(5,2) = 0
  18. xy(6,1) = 0
  19. xy(6,2) = 0
  20. xy(7,1) = 0
  21. xy(7,2) = 0
  22. xy(8,1) = 0
  23. xy(8,2) = 0
  24. xy(9,1) = 0
  25. xy(9,2) = 0
  26. xy(10,1) = 0
  27. xy(10,2) = 0
  28. //上面是数组,也就是我们设置坐标的地方. xy(1,1) =这填写X坐标 xy(1,2) = 这填写Y.
  29. //默认可以设置10个坐标,可以自己修改添加更多.具体方法参考文章【数组】在三楼.
  30. //http://bbs.vrbrothers.com/viewthread.php?tid=27138
  31. (VBScript语句) FS =2-4
  32. //FS=负2
  33. //因为不能输入负数,所以采取的办法.
  34. (VBScript语句) i=1
  35. 标记 移动
  36. 循环 100 遍
  37.     延时1000毫秒
  38.     调用插件命令 hz=DBsoft.OCR(0,0,584,67,595,0,0,11,1,0,"ffffff",0,0,0)
  39.     //利用大兵文字识别插件识别地图名长度. 因为设置范围原因大可能会出现识别到多余的坐标.并且保存在变量HZ中
  40.     在调试状态下向调试窗口输出 HZ
  41.     //调试模式下显示HZ变量内的内容 也可以删除这句
  42.     调用插件命令 hz=DBSoft.WordSelect(hz,0)
  43.     //利用大兵文字过滤插件,先读取变量HZ把多余的符合或数字过滤.只显示文字.
  44.     在调试状态下向调试窗口输出 HZ
  45.     //调试模式下显示HZ变量内的内容
  46.     如果表达式 (len(hz)=5) 为真,则
  47.         //判断变量HZ的文字是否等于5个. 这步是用来识别地图名称.
  48.         跳转到标记 5
  49.         //符合条件跳转到标记5
  50.     条件结束
  51.     如果表达式 (len(hz)=4) 为真,则
  52.         跳转到标记 4
  53.     条件结束
  54.     如果表达式 (len(hz)=3) 为真,则
  55.         跳转到标记 3
  56.     条件结束
  57.     在调试状态下向调试窗口输出 "超出脚本功能范围 本脚本只支持地图名3-5个字"
  58.     调用子程序 [脚本停止运行]
  59.     标记 4
  60.     调用插件命令 x=OF.GetSongTiMin5Number(62,586,"ffffff",0.8,3,6)
  61.     调用插件命令 y=OF.GetSongTiMin5Number(80,586,"ffffff",0.8,4,6)
  62.     o=4
  63.     跳转到标记 输出
  64.     标记 3
  65.     调用插件命令 X=OF.GetSongTiMin5Number(50,586,"ffffff",0.8,3,6)
  66.     调用插件命令 Y=OF.GetSongTiMin5Number(68,586,"ffffff",0.8,4,6)
  67.     o=3
  68.     跳转到标记 输出
  69.     标记 5
  70.     调用插件命令 X=OF.GetSongTiMin5Number(74,586,"ffffff",0.8,3,6)
  71.     调用插件命令 Y=OF.GetSongTiMin5Number(92,586,"ffffff",0.8,4,6)
  72.     //这里是地图名称五个字识别的插件代码. 其实和三 四个字地图识别代码一样.只是左右上下的识别范围不同.
  73.     o=5
  74.     //这是个变量,为了节约时间,下次不在测试地图名称长短.让脚本知道地图是5个字.下次直接返还标记5读取XY.
  75.     标记 输出
  76.     调用插件命令 X1=DBSoft.WordSelect(x,1)
  77.     调用插件命令 y1=DBSoft.WordSelect(y,1)
  78.     //此为大兵过滤插件把读出来的坐标多余的符合过滤只读出数字.
  79.     //因为我地图坐标读取代码范围设置较大,这样能解决X变动导致无法识别Y的错误.
  80.     //例如300:300 Y是从:开始识别.
  81.     在调试状态下向调试窗口输出 x1
  82.     在调试状态下向调试窗口输出 y1
  83.     (VBScript语句) x = X1 - xy(i,1)
  84.     (VBScript语句) y = y1 - xy(i,2)
  85.     //利用游戏坐标 减去 目的地坐标.得到相差的距离为X.Y
  86.     在调试状态下向调试窗口输出 x
  87.     在调试状态下向调试窗口输出 y
  88.     如果表达式 (y=0 and x=0) 为真,则
  89.         如果表达式 (i=SL) 为真,则
  90.             //如果相差的距离Y1=0 并且 相差的距离X1=0 则代表当前游戏坐标与目的地坐标相差为0 则到达目的地.
  91.             //完成走到第SL个坐标后停止. SL是变量 可以在开头设置
  92.             i=i+1
  93.         条件结束
  94.         //则走到下一个坐标.
  95.         调用子程序 [判断坐标]
  96.     条件结束
  97.     如果表达式 (y>=2 and x>=2) 为真,则
  98.         //如果 相差的距离Y1大于等于2则说明可以往左跑. 并且 相差的距离X1大于等于2则可以上跑.
  99.         //大家都知道游戏中走1步游戏坐标会因为方向不同+1或-1.是有规则的.跑一步则是+2.
  100.         //大家知道 and 是和的意思 则可以往左跑+上跑=左上跑