- [Script]
- 展开附件 .\plugin *.*
- (VBScript语句) dim x1,y1,MBX,MBY,FS,o,SL
- //上面是变量声明
- 用户定义变量 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
- (VBScript语句) FS =2-4
- //FS=负2
- //因为不能输入负数,所以采取的办法.
- (VBScript语句) i=1
- 标记 移动
- 循环 100 遍
- 延时1000毫秒
- 调用插件命令 hz=DBsoft.OCR(0,0,584,67,595,0,0,11,1,0,"ffffff",0,0,0)
- //利用大兵文字识别插件识别地图名长度. 因为设置范围原因大可能会出现识别到多余的坐标.并且保存在变量HZ中
- 在调试状态下向调试窗口输出 HZ
- //调试模式下显示HZ变量内的内容 也可以删除这句
- 调用插件命令 hz=DBSoft.WordSelect(hz,0)
- //利用大兵文字过滤插件,先读取变量HZ把多余的符合或数字过滤.只显示文字.
- 在调试状态下向调试窗口输出 HZ
- //调试模式下显示HZ变量内的内容
- 如果表达式 (len(hz)=5) 为真,则
- //判断变量HZ的文字是否等于5个. 这步是用来识别地图名称.
- 跳转到标记 5
- //符合条件跳转到标记5
- 条件结束
- 如果表达式 (len(hz)=4) 为真,则
- 跳转到标记 4
- 条件结束
- 如果表达式 (len(hz)=3) 为真,则
- 跳转到标记 3
- 条件结束
- 在调试状态下向调试窗口输出 "超出脚本功能范围 本脚本只支持地图名3-5个字"
- 调用子程序 [脚本停止运行]
- 标记 4
- 调用插件命令 x=OF.GetSongTiMin5Number(62,586,"ffffff",0.8,3,6)
- 调用插件命令 y=OF.GetSongTiMin5Number(80,586,"ffffff",0.8,4,6)
- o=4
- 跳转到标记 输出
- 标记 3
- 调用插件命令 X=OF.GetSongTiMin5Number(50,586,"ffffff",0.8,3,6)
- 调用插件命令 Y=OF.GetSongTiMin5Number(68,586,"ffffff",0.8,4,6)
- o=3
- 跳转到标记 输出
- 标记 5
- 调用插件命令 X=OF.GetSongTiMin5Number(74,586,"ffffff",0.8,3,6)
- 调用插件命令 Y=OF.GetSongTiMin5Number(92,586,"ffffff",0.8,4,6)
- //这里是地图名称五个字识别的插件代码. 其实和三 四个字地图识别代码一样.只是左右上下的识别范围不同.
- o=5
- //这是个变量,为了节约时间,下次不在测试地图名称长短.让脚本知道地图是5个字.下次直接返还标记5读取XY.
- 标记 输出
- 调用插件命令 X1=DBSoft.WordSelect(x,1)
- 调用插件命令 y1=DBSoft.WordSelect(y,1)
- //此为大兵过滤插件把读出来的坐标多余的符合过滤只读出数字.
- //因为我地图坐标读取代码范围设置较大,这样能解决X变动导致无法识别Y的错误.
- //例如300:300 Y是从:开始识别.
- 在调试状态下向调试窗口输出 x1
- 在调试状态下向调试窗口输出 y1
- (VBScript语句) x = X1 - xy(i,1)
- (VBScript语句) y = y1 - xy(i,2)
- //利用游戏坐标 减去 目的地坐标.得到相差的距离为X.Y
- 在调试状态下向调试窗口输出 x
- 在调试状态下向调试窗口输出 y
- 如果表达式 (y=0 and x=0) 为真,则
- 如果表达式 (i=SL) 为真,则
- //如果相差的距离Y1=0 并且 相差的距离X1=0 则代表当前游戏坐标与目的地坐标相差为0 则到达目的地.
- //完成走到第SL个坐标后停止. SL是变量 可以在开头设置
- i=i+1
- 条件结束
- //则走到下一个坐标.
- 调用子程序 [判断坐标]
- 条件结束
- 如果表达式 (y>=2 and x>=2) 为真,则
- //如果 相差的距离Y1大于等于2则说明可以往左跑. 并且 相差的距离X1大于等于2则可以上跑.
- //大家都知道游戏中走1步游戏坐标会因为方向不同+1或-1.是有规则的.跑一步则是+2.
- //大家知道 and 是和的意思 则可以往左跑+上跑=左上跑