游戏脚本技术:按键精灵辨识字体

时间:2024-10-21 16:03:14

1、例子假如我们要做《神武》游戏的自动任务脚本,我们需要识别下图中红框部分的文字,识别到之后点击文字即可自动寻路到任务处。

游戏脚本技术:按键精灵辨识字体

2、我们先用大漠综合工具提取一个字的点阵,这里我们提取“门派指引人”中的门字这里要注意,我们截图的时候,门字下面的下划线不能截取第一步:截图之后,我们取文字颜色第二步:点击提取单个点阵第三步:在定义文字输入框里输入“门”字第四步:点击回车添加到当前字库第五步:右击我们新添加的门字选择查询系统字库

3、看啊!它说可能的字体有那么多。。。这。。如果只有几个可能的字体,我们还可以一个个测下来这么多的话。。测还是要测,但是怎么测才能节省成本呢?PS:如果弹出的结果是,在系统库里没有发现这个字也可以用下面的处理方法,千万不能放弃治疗有的情况下,大漠工具会有识别不出的情况

游戏脚本技术:按键精灵辨识字体

4、肉眼点阵比较法我们知道有很多游戏,它的字体使用的就是我们的系统字体而我们又知道大多数游戏里的字体是9号字好,小编的系统是微软雅黑字体的打开记事本,输入门字,然后把记事本的字体设置为微软雅黑9号字,接着截取记事本里的门字的点阵和游戏的对比记事本:

游戏脚本技术:按键精灵辨识字体

5、游戏中:

游戏脚本技术:按键精灵辨识字体

6、点阵差那么多,一看就知道不是了。那么我们就试试宋体9号字为什么是宋体?因为普遍的游戏用的是宋体字记事本:

游戏脚本技术:按键精灵辨识字体

7、游戏中:

游戏脚本技术:按键精灵辨识字体

8、哈哈~点阵对上了,就是宋体9号字~

9、指定生成字库法如果是要用大漠综合工具生成系统字库之后,再加载到脚本里去找字这样太麻烦了,而且每次生成字库花费的时间还多所以,我们使用GetDictInfo挣窝酵聒函数然后创建指定的文字小编利用GetDictInfo函数,做了一个简单的测字体脚本,方便大家测字在该脚本界面上,输入字体,字号,文字的颜色已经要测试的文字,启动脚本即可效果:

游戏脚本技术:按键精灵辨识字体

10、代码:Call注册大漠()Setdm=CreateObject("dm.dmsoft")Calldm.SetPath(媪青怍牙"c:\test")//读取选项字体=Form1.字体.text字号=Form1.字号.text字=Form1.字.text字体颜色=Form1.字体颜色.textCallCreateFont(字,字体,字号,0,"字库.txt")//找字dm_ret=dm.FindStr(0,0,2000,2000,字,字体颜色,1.0,intX,intY)TracePrintdm_retIfintX>=0andintY>=0ThenMessageBox字ElseMessageBox"没找到"EndIfSubCreateFont(Words,Font,Size,Index,Path)DimTempStrTempStr=dm.GetDictInfo(Words,Font,Size,0)TempArray=Split(TempStr,"|")Fori=0toUBound(TempArray)dm.AddDictIndex,TempArray(i)NextEraseTempArrayIfLen(Path)>0ThenCalldm.SaveDict(0,Path)EndIfEndSubFunction注册大漠()Dimi//释放附件内容PutAttachment"C:\test_game","*.*"Setws=createobject("Wscript.Shell")Fori=0To20//注册atl跟dm插件ws.run("regsvr32atl.dll-s")ws.run("regsvr32C:\test_game\dm.dll-s")Delay200Setws=nothingSetdm=createobject("dm.dmsoft")ver=dm.ver()//输出版本号Ifver<>""Then//TracePrint"注册成功"ExitForEndIfNextIfi>=20ThenTracePrint"大漠插件注册失败!"EndScriptEndIfSetdm=nothingDelay10EndFunction

11、游戏支持字体设置这一点很简单也很重要切莫粗心,遇到字体不能确定的情况下,先要看看游戏支不支持字体设置例如,大唐无双2这款游戏就支持宋体和微软雅黑两种字体的设置

12、最后如果,测了多种字体之后,还是没有找到匹配的字体有如下几种原因:1、游戏中的字体并非系统字体,而是经过游戏官方自己改造过的字体2、游戏字体偏色太太捺疮啭普太大了(这个还不算死绝的,尽可能找偏色规律,实在不行再放弃治疗)那么,这个时候可以放弃治疗了我们已经尽力了~最后的方法就是一个个的提取文字点阵做字库

© 手抄报圈