金猪脚本(原飞猪脚本)以按钮精灵教学为主,涉及UiBot。
Python,Lua等脚本语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,web脚本,Android脚本,IOS脚本,注册脚本,好评脚本,阅读脚本,网赚脚本。
想做脚本和学习按钮精灵的朋友可以添加按钮精灵学习交流群:554127455学习之路不再孤独,金猪脚本陪你成长。
上周给大家介绍了游戏地图的寻路方法,也给大家分享了最简单的寻路方法——直接输入坐标的寻路方法。看完之后,我想大家对游戏的寻路方式都有了一定的了解。今天边肖将与你分享先进的寻路方法。
即转换地图坐标寻路法
转换地图坐标寻路方法
转换游戏坐标寻路法是什么?顾名思义,游戏地图上显示的坐标与我们屏幕的实际坐标不一致,可以通过对应关系的转换计算出地图坐标相对于屏幕实际坐标的偏移量。
然后用鼠标的相对偏移量在地图上点击某个位置后就可以自动找路了。听到这里估计你还是不明白。没关系。下面小编以慎到游戏为例,和大家一起深入分析一下。
游戏地图
地图左上角的红点0,0是游戏地图的起始坐标,右下角的红点是游戏地图的结束坐标830,690,但实际上当我们用qq截图功能对地图区域进行截图时,会发现地图图片的实际大小只有660*415像素左右。
除了游戏的初始(0,0)坐标与实际鼠标偏移坐标一致之外,
其他游戏地图坐标与实际鼠标偏移坐标不一致。进一步说,游戏坐标(830,690)=相对于游戏地图初始点坐标(0,0)的实际鼠标偏移坐标(660,412)。那怎么根据这个关系换算坐标呢?
座标变换
游戏地图尺寸为660*412像素(实际为600*375,上传到论坛时放大。为了方便对比,我们就以上图为例)。比如上图所示的我们当前角色的坐标是(258,266)。
游戏地图的最大坐标是(830,690),所以我们角色的当前位置(即地图上橙色点的中心位置)应该等于:
实际偏移量x坐标=int(660/830*258)=205。
实际偏移y坐标=int(412/690*266)=159。
不管对不对,我们不妨用沙漠综合工具的浮动快照功能截取上图来验证一下:
有图有。。,事实证明边肖的计算是正确的。
思维过程
技术困难:
1.不同的地图名称对应不同的地图最大X和Y坐标。
2.如何确定地图初始点(0,0)的位置,坐标转换后再偏移?
3.在移动的过程中,如何判断角色是否移动到了指定的坐标点,开始下一个动作?
绑定窗口
我们今天写的脚本用的是沙漠插件,而且是在后台。
因为是单开脚本,顶层窗口句柄就是游戏所对应的客户区句柄,所有用的是大漠的findwindow命令,查找符合类名或者标题名的顶层可见窗口
后台绑定模式:
图色模式:dx2
鼠标模式:windows
键盘模式:windows
关于大漠绑定模式如何获知
请参阅相关院刊:
【院刊】-【201501期】沙盘后台绑定游戏
判断地图名
游戏左下角会显示地图名及坐标,由于游戏不同的地图对应的游戏最大X坐标、Y坐标都是不一样的,所以我们要先识别当前的地图名,然后根据识别到的地图名对最大X坐标、Y坐标进行相应赋值,
由于左下角会显示地图名和坐标,相互之间有时会有影响,所以做了俩个字库(坐标字库、地图名字库),分开调用
打开地图
为了避免地图已经打开的情况
我们要先判断地图有没有打开,没有打开的话才去按Tab键打开地图
因为后面我们找字的时候就是要在地图上找字,所以我们先进行找字
没找到字的情况下说明地图没打开,再按Tab键打开地图
确定地图初始点坐标
找地图上的'复活区'字,找到后就会得到该字左上角第一点坐标(IntX,IntY)然后通过大漠工具精确抓图获取到地图初始点位置(0,0)相对于'复活区' 偏移的坐标
地图起始点X坐标=IntX-154地图起始点Y坐标=IntY+31
判断寻路是否到达
这个在上一期的寻路院刊已经介绍过了,这边就不重复说明了,具体请查看院刊:按键有屎以来最智能寻路系列
整体代码
Call 注册大漠()Set dm=createobject('dm.dmsoft')//创建大漠对象Call 找句柄()Delay 100Call 大漠绑定()dm_ret=dm.SetPath('D:\test')//设置全局路径dm_ret=dm.SetDict(0, '神途地图名字库.txt')//设置字库为地图名字库为0号字库dm_ret=dm.SetExactOcr(1)//设置找字方式为精确查找,
效果演示由于游戏窗口里录制的。。太大了,压缩后还是上传不了,还是只能用代码演示了
标题:按键精灵窗口坐标和屏幕坐标(按键精灵如何让人物跑到一个指定坐标位置)
链接:https://www.52hkw.com/news/rj/57861.html
版权:文章转载自网络,如有侵权,请联系删除!