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

合集下载

游戏辅助:按键精灵脚本如何适应不同的分辨率

游戏辅助:按键精灵脚本如何适应不同的分辨率

游戏辅助:按键精灵脚本如何适应不同的分辨率让游戏脚本开发作者们最头疼的一个问题:脚本如何适应不同的分辨率。

我们都知道,进入游戏之前,可以选择游戏窗口分辨率。

不同的分辨率里,物品的坐标,图片的大小有可能会不同哦~工具/原料按键精灵2014方法/步骤解惑:游戏中的分辨率,和系统的屏幕分辨率,其实是两个东西。

并不是你修改了系统屏幕分辨率为1920*1080,游戏的分辨率就会改成1920*1080。

当然有些游戏,你调整它的分辨率的时候,会相应的修改你的系统分辨率。

但是这个并不是所有的游戏都这样流氓的。

游戏分辨率和系统屏幕分辨率区分:图1-1920*1080分辨率下窗口的大小637.441图2-1280*720分辨率下窗口的大小637.441当游戏窗口固定的时候(游戏的分辨率固定时),你调整系统的屏幕分辨率,其实只是肉眼中图标变大了。

实际上,游戏窗口的分辨率并没有变。

如上图,一个是系统分辨率1920*1080的屏幕分辨率,一个是1280*720的屏幕分辨率,看起来好像软件变大了。

其实在软件这个窗口的大小是没有变的,只是视觉误差。

从上图的客户区大小的数值就可以看出来。

游戏分辨率改变的话,有什么应对方法呢?情境一:游戏分辨率改变,图标大小不变,坐标动态变化解决方法:通过找图:游戏图标不变,找图的方式是最便捷的。

代码例子:hwnd =Plugin.Window.MousePoint()//获取鼠标指定窗口的窗口句柄sRect =Plugin.Window.GetClientRect(Hwnd)//获取窗口客户区大小s=split(sRect,"|")qx=s(0):qy=s(1):zx=s(2):zy=s(3)//qx,qy是左上角的 xy坐标; zx是窗口的宽,zy是窗口的高CallFindPic(260,186,zx*0.5,zy*0.5,"游戏图片.bmp",0.9,mx,my)这里的qx,qy两个原始坐标(例子中的qx,qy原始坐标为 (0,0)),用实际坐标 260,186代替,因为不管按键窗口怎么缩小,我们要找的图标最终的位置是在260,186,分辨率变大图标则往右边移动。

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

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

游戏脚本技术:按键精灵辨识字体来源:按键学院【按键精灵】当游戏里需要识别的文字量很大,而又不知道是什么字体,无法制作字库的时候,我们该怎么办呢?难道就甘心逐个提取文字点阵制作字库吗?想想那工作量就吓尿~例子假如我们要做《神武》游戏的自动任务脚本,我们需要识别下图中红框部分的文字,识别到之后点击文字即可自动寻路到任务处。

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

这。

如果只有几个可能的字体,我们还可以一个个测下来这么多的话。

测还是要测,但是怎么测才能节省成本呢?PS:如果弹出的结果是,在系统库里没有发现这个字也可以用下面的处理方法,千万不能放弃治疗有的情况下,大漠工具会有识别不出的情况肉眼点阵比较法我们知道有很多游戏,它的字体使用的就是我们的系统字体而我们又知道大多数游戏里的字体是9号字好,小编的系统是微软雅黑字体的打开记事本,输入门字,然后把记事本的字体设置为微软雅黑9号字,接着截取记事本里的门字的点阵和游戏的对比记事本:游戏中:点阵差那么多,一看就知道不是了。

那么我们就试试宋体9号字为什么是宋体?因为普遍的游戏用的是宋体字记事本:游戏中:哈哈~点阵对上了,就是宋体9号字~指定生成字库法如果是要用大漠综合工具生成系统字库之后,再加载到脚本里去找字这样太麻烦了,而且每次生成字库花费的时间还多所以,我们使用GetDictInfo 函数然后创建指定的文字小编利用GetDictInfo函数,做了一个简单的测字体脚本,方便大家测字在该脚本界面上,输入字体,字号,文字的颜色已经要测试的文字,启动脚本即可效果:代码:Call 注册大漠()Set dm = CreateObject("dm.dmsoft")Call dm.SetPath("c:\test")// 读取选项字体= Form1.字体.text字号=Form1.字号.text字= Form1.字.text字体颜色= Form1.字体颜色.textCall CreateFont(字,字体, 字号, 0, "字库.txt")//找字dm_ret = dm.FindStr(0, 0, 2000, 2000, 字, 字体颜色, 1.0, intX, intY) TracePrint dm_retIf intX >= 0 and intY >= 0 ThenMessageBox 字ElseMessageBox "没找到"End IfSub CreateFont(Words, Font, Size, Index, Path)Dim TempStrT empStr = dm.GetDictInfo(Words, Font, Size, 0)T empArray = Split(T empStr,"|")For i = 0 to UBound(T empArray)dm.AddDict Index,T empArray(i)NextErase T empArrayIf Len(Path) > 0 ThenCall dm.SaveDict(0, Path)End IfEnd SubFunction 注册大漠()Dim i//释放附件内容PutAttachment "C:\test_game", "*.*"Set ws = createobject("Wscript.Shell")For i = 0 To 20//注册atl跟dm插件ws.run("regsvr32 atl.dll -s")ws.run ("regsvr32 C:\test_game\dm.dll -s")Delay 200Set ws = nothingSet dm = createobject("dm.dmsoft")ver = dm.ver()//输出版本号If ver <> "" Then//TracePrint "注册成功"Exit ForEnd IfNextIf i >= 20 ThenTracePrint "大漠插件注册失败!"EndScriptEnd IfSet dm = nothingDelay 10End Function游戏支持字体设置这一点很简单也很重要切莫粗心,遇到字体不能确定的情况下,先要看看游戏支不支持字体设置例如,大唐无双2 这款游戏就支持宋体和微软雅黑两种字体的设置最后如果,测了多种字体之后,还是没有找到匹配的字体有如下几种原因:1、游戏中的字体并非系统字体,而是经过游戏官方自己改造过的字体2、游戏字体偏色太太太大了(这个还不算死绝的,尽可能找偏色规律,实在不行再放弃治疗)那么,这个时候可以放弃治疗了我们已经尽力了~最后的方法就是一个个的提取文字点阵做字库。

按键精灵 字库制作的原理

按键精灵 字库制作的原理

按键精灵 字库制作的原理
按键精灵的字库制作原理,是通过OCR(Optical Character Recognition,光学字符识别)技术实现的。

OCR技术可以将图片中的字符、数字等信息转换成计算机可以识别的文本格式,从而实现对图片中文字的自动识别和提取。

按键精灵的字库制作流程大致如下:
1. 收集训练样本:收集大量的训练样本,包括各种字体、字号、颜色、背景等不同情况下的字符图片。

2. 预处理:对训练样本进行预处理,包括图像二值化、去噪处理、字符分割等操作,提高识别准确率。

3. 特征提取:从预处理后的图片中提取特征,例如字符的边缘、角度、形状等信息,用于后续的字符识别。

4. 训练模型:使用机器学习算法,根据前面提取的特征和对应的标签,训练出一个OCR模型,用于识别新的字符图片。

5. 字库生成:使用训练好的OCR模型,对大量的字符图片进行识别和提取,生成对应的字符集和字库文件,供按键精灵使用。

按键精灵的字库制作是通过OCR技术实现的,需要大量的训练样本和机器学习算法的支持,才能达到较高的识别准确率和稳定性。

C#实现按键精灵的找图找色找字的功能

C#实现按键精灵的找图找色找字的功能

C#实现按键精灵的找图找⾊找字的功能 找⾊:/// <summary>/// 找颜⾊/// </summary>/// <param name="parPic">查找的图⽚的绝对路径</param>/// <param name="searchColor">查找的16进制颜⾊值,如#0C5FAB</param>/// <param name="searchRect">查找的矩形区域范围内</param>/// <param name="errorRange">容错</param>/// <returns></returns>System.Drawing.Point FindColor(string parPic, string searchColor, System.Drawing.Rectangle searchRect, byte errorRange = 10){var colorX = System.Drawing.ColorTranslator.FromHtml(searchColor);var parBitmap = new Bitmap(parPic);var parData = parBitmap.LockBits(new System.Drawing.Rectangle(0, 0, parBitmap.Width, parBitmap.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); var byteArraryPar = new byte[parData.Stride * parData.Height];Marshal.Copy(parData.Scan0, byteArraryPar, 0, parData.Stride * parData.Height);if (searchRect.IsEmpty){searchRect = new System.Drawing.Rectangle(0, 0, parBitmap.Width, parBitmap.Height);}var searchLeftTop = searchRect.Location;var searchSize = searchRect.Size;var iMax = searchLeftTop.Y + searchSize.Height;//⾏var jMax = searchLeftTop.X + searchSize.Width;//列int pointX = -1; int pointY = -1;for (int m = searchRect.Y; m < iMax; m++){for (int n = searchRect.X; n < jMax; n++){int index = m * parBitmap.Width * 4 + n * 4;var color = System.Drawing.Color.FromArgb(byteArraryPar[index + 3], byteArraryPar[index + 2], byteArraryPar[index + 1], byteArraryPar[index]);if (ColorAEqualColorB(color, colorX, errorRange)){pointX = n;pointY = m;goto END;}}}END:parBitmap.UnlockBits(parData);return new System.Drawing.Point(pointX, pointY);}#endregion⽅法中的容错范围,默认设置为10。

游戏辅助怎么做:用按键精灵识别渐变色或半透明的文字

游戏辅助怎么做:用按键精灵识别渐变色或半透明的文字

游戏辅助怎么做:用按键精灵识别渐变色或半透明的文字来源:按键学院【按键精灵】游戏中的文字如果是单色字,利用大漠工具做一个字库来找字,可以很容易的识别到。

但是,如果这个字是渐变色的呢?或者说是有些透明的字体,字体颜色会随着背景色进行轻微变化的?上图中的465的字样就是渐变颜色我们一起来了解下,大漠工具是如何通过偏色来找渐变色文字的。

首先,我们了解下大漠找字的大致步骤:1、抓取文字图片,抓取文字里的一个颜色点,设置偏色(如果是单色字则不需设置偏色)2、偏色设置好之后,我们得到了清晰的二值化文字,这时候提取文字点阵,做成字库。

3、加载字库,开始找字。

然后,我们了解下大漠工具要如何使用:大漠工具的使用1、点击抓图,抓取我们需要的文字图片。

2、设置文字颜色和偏色。

*RGB颜色值是由R(红)、G(绿)、B(蓝)三种颜色组成的。

每种颜色由2位十六进制值来表示。

例如:“FFFFFF” 白色,FF(红)|FF(绿)|FF (蓝),换算成十进制就是:255,255,255 当RGB三种颜色都是最大值255的时候,就是白色。

*偏色就是设置一个颜色的容差范围,偏色的颜色值是由R(红)、G(绿)、B(蓝)三种颜色组成的。

每种颜色由2位十六进制值来表示。

例如,我想找一个颜色,想找与它相近的颜色,颜色容差范围30个颜色值首先,我们要把容差范围值转换为十六进制的。

30的十六进制是1e,那我们偏色值就填写“1e1e1e”,RGB三种颜色各偏色1e怎样才能知道它的偏色值是多少呢?例如:我们获取的文字图片里,最淡的颜色点A的值是1,最深的颜色点B的值是10,我们当前抓取了一个颜色点C的值是2,那我们就要在文字图片里找比点c深的值,直到找到文字图片里最深的那个颜色点B,点B与点c的差值就是点c的偏色。

这样找好麻烦有没有,找到猴年马月啊~~所以,我们要善用工具,这里介绍一款十分好用的偏色计算器工具——大漠偏色计算器。

刚刚好和大漠工具配成一套使用。

(完整版)按键精灵常用脚本命令汇集

(完整版)按键精灵常用脚本命令汇集

//~~~~~~~~~~{[做后台的准备]}~~~~~~~~~~~//下面,用标题名来找父窗口Hwnd = Plugin.Window.Find(0, "无标题- 记事本")//下面,根据父窗口来找子窗口(找对了标题名才有效)HwndEx = Plugin.Window.FindEx(Hwnd, 0, 0, 0)//下面,用程序名来找父窗口Hwnd = Plugin.Window.Find("Notepad", 0)//下面,根据父窗口来找子窗口(找对了类名才有效)Hwnd = Plugin.Window.FindEx(Hwnd, 0, "Edit", 0)//~~~(也可以改指定程序的标题名来得来句柄)~~~//下面,将指定程序名的标题名变为变量Hwnd = Plugin.Window.Find("Notepad", 0)//改变窗口标题Call Plugin.Window.SetText(Hwnd,"AJJL")//*********》之后可加第一种父子窗口就OK了《*********//~~~如果以上都不行,只剩下最后一种方法~~~~//下面,鼠标指向的程序定为Hwnd这个变量(不过一定要加标记,否则变为假后台)hwnd=Plugin.Window.MousePoint()Rem starGoto star//区域模糊找色//(XY,是坐标)(后面的是句柄,左X,上Y,右X,下Y,16位颜色,找的方式,相似度)XY = Plugin.Bkgnd.FindColorEx(Hwnd, 0, 0, 20, 20, "FFFFFF", 0, 0.9)//将XY坐标变为变量,再折分成X坐标和Y坐标。

MyArray = Split(XY, "|")X = Clng(MyArray(0)): Y = Clng(MyArray(1))//后台判色Color = Plugin.Bkgnd.GetPixelColor(hwndex,300,150)If color = "020503" Then//根据固定32位地址的值加红蓝(HP少于就。

「知识盲区」按键精灵找图、多点找色、找字的原理(续)

「知识盲区」按键精灵找图、多点找色、找字的原理(续)

「知识盲区」按键精灵找图、多点找色、找字的原理(续)大家好,我是公众号3分钟学堂的郭立员,今天给带来一期基础知识的文章,主要讲一下找图、多点找色、找字之间的联系与区别,这是一篇基础原理的教程,可能会有些枯燥。

由于篇幅比较长,分两期更新,这是第二期,本期主要讲图色命令相似度参数的原理以及多点找色和找字的原理,如果没看过第一期,可以先看昨天的文章。

相似度上期文章,我们讲完了找图命令的偏色这个参数的原理,这期我们来说说相似度这个参数的原理。

关于相似度可能很多朋友会有一些误区,比如拿找图参数中默认的0.9相似度来说:【误区一】假设找的图是10*10的图片,一共100个像素点,如果相似度是0.9,那么就是90%相似,100个点中有至少90个点一样,就认为是符合要求的图。

【误区二】假设要找的颜色点是646464,为啥是这个颜色,因为它换算成10进制以后,蓝色、绿色、红色就是100,100,100。

如果相似度是0.9,那么每个颜色符合要求的就是90~110。

以上两个都是误区,那么相似度到底是怎么计算呢?还是以相似度0.9为例,那么容差的范围就是±10%,这个10%是针对于颜色的色阶(256个等级)的。

计算公式:256*10%=25.6这是一个颜色的,蓝绿红一共3个颜色分量,所以容差就是25.6*3=76.8得到容差值以后,我们怎么算出颜色值的有效范围呢?还是以646464这颜色为例,76.8这个差值怎么分呢?可以单独给蓝色,那么100+76.8=176(结果取整数部分),100-76.8=23(结果取整数部分),颜色的范围就是176464~B06464。

同样的道理绿色和红色也是这样计算。

除了给单一颜色分量以外,还可以把76.8分给每一个分量,比如均分每一个颜色分量就是±25.6的。

当然随意分也可以。

说到随意分,可不可以这样,比如给蓝色100,给红色-30,两个加起来是70,也在76.8这个容差范围内,这样写行不行?答案是不行,我们说的±指的是变化趋势,3个颜色分量相加是绝对值相加,那么给蓝色100,给红色-30的结果是100+负30的绝对值,也就是130,已经超出了76.8的容差范围。

按键精灵原理

按键精灵原理

按键精灵原理
按键精灵是一款自动化操作软件,它能够模拟人工操作,实现自动化任务。

其原理主要基于图像识别和按键模拟两个方面。

首先,按键精灵利用图像识别技术来识别屏幕上的各种图像和文字。

通过对屏幕进行扫描和分析,按键精灵可以识别出需要操作的目标,比如按钮、文字、图标等。

这样,它就能够准确地找到需要点击或输入的位置。

其次,按键精灵通过按键模拟技术来实现自动化操作。

一旦识别出目标位置,按键精灵就可以模拟鼠标点击、键盘输入等操作,从而完成各种任务。

这种按键模拟操作是基于系统级的底层接口,因此可以实现对各种应用程序的自动化操作。

总的来说,按键精灵的原理就是通过图像识别找到操作目标,然后通过按键模拟来实现自动化操作。

它的核心技术在于图像识别和按键模拟,通过这两个方面的结合,按键精灵能够实现各种复杂的自动化任务。

除此之外,按键精灵还可以通过脚本编程来实现更加复杂的自动化操作。

用户可以利用按键精灵提供的脚本语言,编写各种自定义的脚本程序,从而实现更加灵活和个性化的自动化任务。

总的来说,按键精灵是一款基于图像识别和按键模拟原理的自动化操作软件,通过这两个方面的技术结合,它能够实现各种复杂的自动化任务,并且还支持用户编写自定义脚本来实现更加灵活的操作。

这种原理和技术使得按键精灵成为了许多人工作和生活中的得力助手,极大地提高了工作效率和生活便利性。

按键精灵读取文本内容

按键精灵读取文本内容

按键精灵读取文本内容按键精灵是一款非常实用的自动化操作工具,它可以帮助用户完成各种重复性的操作,提高工作效率。

其中,读取文本内容是按键精灵的一个重要功能,它可以帮助用户快速准确地获取文本信息,节省大量的时间和精力。

接下来,我将介绍如何利用按键精灵来读取文本内容,以及一些注意事项和技巧。

首先,我们需要打开按键精灵软件,并创建一个新的任务。

在任务编辑界面,我们可以看到各种操作命令和功能选项。

要实现读取文本内容的功能,我们可以使用“读取文件”命令来获取指定文件中的文本信息。

在选择文件的界面,我们可以浏览并选择需要读取的文本文件,然后按照提示完成设置。

在设置完成后,我们可以点击“运行”按钮来执行任务。

按键精灵将自动打开指定的文本文件,并读取其中的内容。

在读取完成后,我们可以选择将文本内容复制到剪贴板,或者直接保存到指定的位置。

这样,我们就成功地利用按键精灵读取了文本内容。

在使用按键精灵读取文本内容时,有一些注意事项和技巧需要我们注意。

首先,要确保选择的文件路径是正确的,否则按键精灵将无法找到需要读取的文件。

其次,要注意文本文件的编码格式,不同的编码格式可能会影响到文本内容的读取结果。

此外,还需要注意文本文件的大小和格式,按键精灵可能无法读取过大或者特殊格式的文本文件。

除了上述的基本操作和注意事项,我们还可以通过一些高级功能来优化文本内容的读取效果。

例如,可以使用正则表达式来匹配特定的文本模式,或者使用循环和条件判断来处理复杂的文本内容。

这些高级技巧可以帮助我们更灵活地处理各种文本信息,提高读取的准确性和效率。

总的来说,按键精灵是一款功能强大的自动化操作工具,它可以帮助我们轻松地读取文本内容,节省大量的时间和精力。

通过合理的设置和技巧,我们可以实现快速准确地获取各种文本信息,提高工作效率。

希望本文介绍的内容对大家有所帮助,谢谢阅读!。

按键精灵常用功能-详细解说

按键精灵常用功能-详细解说

[命令]按键精灵常用功能-详细解说[1]-键盘动作按键精灵常用功能-解说[版本5.0以上]首先-启动按键精灵-看到主程序界面的“小灯泡”增加按钮了吗?点击它...然后-这样就新建了一个脚本,并进入了脚本编辑器界面。

(具体参见Qmacro基础资料/cn/qmacro/)按键精灵常用功能-详细解说[1]-键盘动作-4个功能(1)单个按键的模拟-模拟键盘的单个按键动作,可以是按1下、按住不动、弹起来等3种形式,可以根据自己的需要,设定执行次数。

(2)按键组合的模拟-模拟按键组合,比如ctrl+shift+G之类的,但是不能G+H 这样子哦,那要需要的时候怎么模拟G+H呢?使用(1)功能-按下G,再按下H,就等于G+H了嘛~~~(不同步?哦,计算机的反映速度是很快的!)(3)脚本暂停按任意键继续功能-这里可以设置一个变量,用来表示可能是哪个按键,比如设置了变量key,当key这个变量变动的时候...比如key=49的时候,表示按1就能使脚本继续...那么怎么知道哪个数字对应是哪个按键?请看(4)的功能。

(4)得到按键码-在左边的空白输入一个按键,右边就显示出相应的按键码哦。

有一些特殊的按键码是多少呢?可以去下载个ASCII码表看看。

举例:打开一个记事本,光标停空白处,按1下你设定的快捷键开始执行你设计的脚本... Rem rem只是注释语句,可以做标记或解释用途。

Rem rem这一行,不会有功能,比如:KeyPress 49 10Rem 按1键10次,换行KeyPress 49 10KeyPress 13 1Rem 按下1键不动,2秒后弹起,换行KeyDown 49 1Rem 延时2000毫秒Delay 2000KeyUp 49 1KeyPress 13 1Rem 按shift+1组合键,换行KeyDown 16 1KeyPress 49 1KeyUp 16 1KeyPress 13 1Rem 提示后,等待任意键继续SayExpression "请按任意键继续吧。

按键精灵脚本教程

按键精灵脚本教程

按键精灵脚本教程
按键精灵是一款功能强大的自动化软件,可以帮助用户完成重复性的操作任务。

通过编写脚本,可以将按键精灵的功能发挥到极致。

本教程将为您详细介绍按键精灵脚本的基本语法和常用操作,以帮助您更好地使用按键精灵。

一、脚本语法
按键精灵脚本采用类似于VBScript的语法,非常简洁易懂。

以下是脚本的基本语法:
1. 注释:使用单引号(')进行注释,注释内容会被忽略。

例如:
' 这是一个注释
2. 变量定义:使用Dim关键字定义变量。

例如:
Dim num
3. 赋值语句:使用等号(=)进行赋值。

例如:
num = 10
4. 循环语句:使用For循环来执行重复操作。

例如:
For i = 1 to 10
' 这里是重复执行的操作
Next
5. 条件语句:使用If语句进行条件判断。

例如:
If num > 0 Then
' 符合条件时执行的操作
End If
6. 函数调用:使用Call关键字进行函数调用。

例如:
Call MyFunction()
二、脚本操作
按键精灵脚本可以实现很多功能,以下是一些常用的操作:1. 按键:使用按键精灵内置的按键函数来模拟按键操作。

例如:
Call keyDown(\。

怎么开发脚本?用2014按键精灵学习制作游戏自动打怪脚本

怎么开发脚本?用2014按键精灵学习制作游戏自动打怪脚本

怎么开发脚本?用2014按键精灵学习制作游戏自动打怪脚本
首先,使用插件—窗口命令里的查找句柄命令,得到游戏的句柄。

再使用GetClientRect 命令,可以得到游戏窗口客户端的信息
接着,使用VBS函数里的split函数,可以把客户端的起始坐标信息分离出来。

使用类型转换函数,把字符串转换为数值。

再把值赋予UX,UY。

这是我们获取游戏画面起始点坐标的常用方法。

接下来开始写打怪操作,先是按下TAB键选中临近怪物。

选中怪物后,画面正上方会出现
怪物的血条,这个作为我们判断依据。

先把游戏窗口起始点定义为起点坐标。

获取血条上一个点的信息。

一般选取血条右边的点,避免达到半血的怪物,添加到点1
找到颜色判断命令,选择刚才点1的信息,插入。

由于刚才获取的坐标是相对于窗口起始点的坐标,所以这里的坐标值还要加上窗口本身的坐标,也就是X轴加上UX.Y轴加上UY
如果这个颜色判断成立,则键盘按下技能的快捷键数字1,如果不成立,则调回到选怪操作前,重新选择。

按键精灵的周边产品商业小精灵也强势出击,其具体的操作资料,可百度按键精灵论坛查询:。

学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享

学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享

学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享一、用按键精灵确定人物朝向(以剑灵自动寻路为例)的代码在剑灵右上角的小地图里找色/找图,箭头坐标存储在(x1,y1),箭尾坐标存储在(x2,y2) FindColor1200,0,1920,300,"箭头颜色",x1,y1If x1 > 0 And y1> 0 ThenEnd IfFindColor1200,0,1920,300,"箭尾颜色",x2,y2If x1 > 0 And y1> 0 ThenEnd If'计算斜率/正切值斜率= (y1 - y2) / (x1 -x2)'计算角度角度= Atn(斜率)二、用按键精灵解决用户密码泄露问题的代码Function 加解密(源文件, 秘钥)Dim Z, iDim A, B, C加解密= ""If Len(源文件) = 0 Then’如果密码为空,则初始化为空加解密= ""Exit FunctionEnd If'调用Rnd函数使以后Rnd函数所产生的Rnd为相同的伪随机数列Z = Rnd(-秘钥)For i = 1 To Len(源文件)’将密码字符串一个一个字符通过加密,转换成另一个字符C = Mid(源文件, i, 1)A = Asc(C)B = Int(126 * Rnd) And&H7F’这里的&H7F,是指生成的伪随机代码,只取7位,以免数据溢出A = A Xor B’Xor是可逆的,第一次运行时是得到加密后的数据,再运行一次是得到解密后的数据C = Chr(A)加解密= 加解密+ CNextEnd Function举个例子吧~Function 加解密(源文件, 秘钥)Dim Z, iDim A, B, C加解密= ""If Len(源文件) = 0 Then加解密= ""Exit FunctionEnd If'调用Rnd函数使以后Rnd函数所产生的Rnd为相同的伪随机数列Z = Rnd(-密钥)For i = 1 To Len(源文件)C = Mid(源文件, i, 1)A = Asc(C)B = Int(126 * Rnd) And&H7FA = A Xor BC = Chr(A)加解密= 加解密+ CNextEnd FunctionEvent Form1.Load//获取小节名(如"e1df741f-d5ec-4ad7-969d-adb139c6a24f"),同一个Q文件生成的小节名不变a = GetMacroID()//获取到当前脚本/小精灵de ID加密文件=Plugin.File.ReadINI("e1df741f-d5ec-4ad7-969d-adb139c6a24f","Form1 .InputBox2.T ext", ".\uservar.ini")解密文件= 加解密(加密文件, 1234567890)'这里的1234567890是假使的密钥,可以修改,注意保密Form1.InputBox2.T ext = 解密文件End Event//写入密码信息源文件= Form1.InputBox2.T ext加密文件= 加解密(源文件, 1234567890)CallPlugin.File.WriteINI("e1df741f-d5ec-4ad7-969d-adb139c6a24f","Form1.InputBox2.T ext", 加密文件, ".\uservar.ini")//输出信息RunApp "notepad.exe"SayString Form1.InputBox1.T extKeyPress "Enter", 1SayString 源文件三、按键精灵快速排序的代码su = "6|1|2|7|9|3|4|5|10|8"su=Split(su, "|")L = UBound(su)Call ks(0, L)Function ks(L, B)If L > B ThenExit FunctionEnd If //判断数组上标下标是否超出范围i = Lj = Bkey =int( su(L) ) //数组第一位提取作为基数While j>iWhile int ( su(j)) >= key and j > i //要先从最右边开始找找到第一个小于key的数这里添加的j>i的判断是为了防止j的值不断递减导致下标越界j = j - 1WendWhile int (su(i)) <= key and j > i //从最左边开始找找到第一个大于key的数(这里的字符串数组需要转换为数值型)i = i + 1WendIf j>i then // 将和基数key对比得到的两个数对换将大于key的值往右边放小于key的值往左边放T = su(i)su(i) = su(j)su(j) = TEnd IfWend // 这个While 循环当i=j 第一轮比较完退出su(L) = su(i) // 重新设置数组第一个元素为基数su(i) = key// 基数归位(排完一轮之后左边的数<基数<右边的数那么基数就到了排序中它该在的位置。

学习脚本制作:按键精灵判断验证窗口是否出现

学习脚本制作:按键精灵判断验证窗口是否出现

学习脚本制作:按键精灵判断验证窗口是否出现
展开全文
1.方法:以屏幕左上角的坐标为起点(0,0),从而获取到的游戏中“验证码”图片出现的位置。

步骤1:计算出“验证码”图片左上角坐标、右下角坐标与游戏窗口左上角坐标的距离。

2.2
步骤2:使用GetWindowRect命令获取游戏窗口左上角坐标。

sRect = Plugin.Window.GetClientRect(Hwnd)
MyArray = Split(sRect, "|")
3.3
步骤3:窗口左上角坐标+图片左上角、右下角与窗口左上角的距离,获取图片的位置。

公式:“验证码”图片左上角坐标(x,y)=(窗口左上角x坐标+257,窗口左上角y坐标+139)“验证码”图片右下角坐标(x,y)=(窗口左上角x坐标+308,窗口左上角y坐
标+164)
4.4
步骤4:使用findpic找图命令,查找"验证码"图片。

//"验证码"图片需加载到附件中
FindPic 窗口左上角x坐标+257,窗口左上角y坐标+139, 窗口左上角x坐标+308,窗口左上角y坐标+164,"Attachment:\验证码.bmp",0.9,intX,intY
If intX > 0 And intY > 0 Then
//
End If
5.5
有些游戏的验证窗口出现的位置是随机的。

这种情况,只能将找图范围设置为窗口客户区大小去找图。

观察验证窗口的随机位置,没
有被随机到的位置尽量排除在找图范围外,找图范围越小效率越高。

游戏辅助制作教程:用按键精灵脚本应对游戏分辨率改变问题

游戏辅助制作教程:用按键精灵脚本应对游戏分辨率改变问题

游戏辅助制作教程:用按键精灵脚本应对游戏分辨率改变问题情境一:游戏分辨率改变,图标大小不变,坐标动态变化解决方法:通过找图:游戏图标不变,找图的方式是最便捷的。

代码例子:hwnd =Plugin.Window.MousePoint()//获取鼠标指定窗口的窗口句柄sRect =Plugin.Window.GetClientRect(Hwnd)//获取窗口客户区大小s=split(sRect,"|")qx=s(0):qy=s(1):zx=s(2):zy=s(3)//qx,qy是左上角的xy坐标;zx是窗口的宽,zy是窗口的高CallFindPic(260,186,zx*0.5,zy*0.5,"游戏图片.bmp",0.9,mx,my)这里的qx,qy两个原始坐标(例子中的qx,qy原始坐标为(0,0)),用实际坐标 260,186代替,因为不管按键窗口怎么缩小,我们要找的图标最终的位置是在260,186,分辨率变大图标则往右边移动。

图3-800*600分辨率下“精品教程”图标位置大小图4-1024*768分辨率下“精品教程”图标位置大小为什么要在“CallFindPic(260,186,zx*0.5,zy*0.5,"游戏图片.bmp",0.9,mx,my)”这里zx,zy乘以0.5呢?就是咱提高脚本效率的秘籍了。

找图范围缩小为窗口的一半,因为例子中的图标不管窗口分辨率多大,图标在窗体中的位置比例都不会改变。

为了更效率的找图,尽量减少找图的范围减少找图的时间。

如下:图5-800*600分辨率下“精品教程”图标在窗体的长1/2、宽1/2左右图6-1024*768分辨率下“精品教程”图标在窗体的长1/2、宽1/2左右情境二:游戏分辨率改变,游戏图标等比放大解决方法:不同的分辨率各制作一套对应的图。

调用各分辨率,相对应的图。

有些游戏,游戏分辨率修改之后,游戏界面图标会等比的放大缩小。

学习游戏脚本制作:无需字库轻松找字

学习游戏脚本制作:无需字库轻松找字

学习游戏脚本制作:无需字库轻松找字
制作游戏辅助必学图片找图、图片二期处理和用按键精灵找字,这里我们将告诉你如何轻松找字。

首先要查找的字不能是杂色字,需要是纯色字而且目前按键精灵找字功能支持宋体和黑体。

按键精灵里的资源库中可以下载鱼鱼插件,一只鱼插件除了支持图片找图之外,它还支持图片二期处理和无字库找字。

这里分享找字命令:
找字代码如下:
Dim xy, x, y, i
xy = Plugin.FISH.FindWordShape("一只鱼", "宋体,10", 0, 1.0, "FULL", 0)
'或者xy = Plugin.FISH.FindWordShape("一只鱼", "宋体,10", "从左上到右下", 1.0, "FULL", 0)
For i = 0 To UBound(xy)
x = xy(i, 0)
y = xy(i, 1)
TracePrint x & "," & y
MoveTo x,y
Next
打开记事本测试下效果:。

按键精灵制作脚本的一些技巧

按键精灵制作脚本的一些技巧

按键精灵制作脚本的一些技巧按键精灵制作游戏脚本前需要做的前提准备工作1、看看游戏的类型,确定游戏类型2、根据游戏类型,定下所需的脚本类型3、根据游戏的类型开始制作游戏脚本我们来举个例子来说明脚本制作的流程:例1 自动打怪的脚本:第一步查看游戏里自动寻怪得案件(一般游戏的自动寻怪案件是Tab键游戏游戏自动寻怪的案件是Shift+Tab 这样的组合键)1、相对延时一下时间(比如说100毫秒)2、输入Tab或Shift+Tab组合键3、输入门派第一技能(或出生时的打怪技能键)4、修改脚本的昵称+启动键+终止键5、修改按键次数(默认为启动一次执行一次)你可以选择知道按下终止键为止。

保存退出自动打怪脚本就做好了。

例2 自动跑商脚本大型的网络游戏里一般都有跑商的活动,以赚取日常资金我们来简单介绍下跑商脚本的制作流程:1、延时一定时间2、根据区域找图找色功能(坐标功能)查找NPC,找到NPC后点击购买商品(利用抓抓功能接下游戏图片——按下按键F12右边的SYSRQ键)回到按键精灵中截下做需要的图片(购买的商品的图片)3、利用区域找图找色功能来找到我们需要购买的商品(可以延时一定时间免得游戏卡或其他原因购买不到所需要的商品)4、利用坐标法或(打开地图鼠标移动到场景出口点)来实现跑出购买物品的场景(计算下跑出游戏场景所需要时间——适当延时长一点时间来缓冲)5、利用同样的方法来实现跑图(跨场景)(期间要延时多一点得时间来给游戏以缓冲)6、自动卖物品(宗上所述不是难题)例3 自动喊话有些游友在游戏内有商铺可以建立一个小号(满足系统向系统说话的等级)自动喊话的功能其实很简单1、延时一定毫秒2、回车(一般游戏里喊话前按下回车键或空格键就能输入文字)3、输入文档“填写所喊话的内容”4、延时时间(根据游戏里世界喊话相隔时间来确定延长的时间可以适当长一点)5、循环脚本即可。

发一个按键精灵系统教程上的数字识别源码完整版_脚本开发源码-按键精灵论坛

发一个按键精灵系统教程上的数字识别源码完整版_脚本开发源码-按键精灵论坛

发一个按键精灵系统教程上的数字识别源码完整版_脚本开发源码-按键精灵论坛这是我按系统教程写的,供新手参考,复制到按键精灵调试,只需要改ux和uy就行了,就是代码最上面两行。

ux是坐标X,uy是坐标Y。

如果调试时弹出框出现问号,请检查我的数字特征码跟你屏幕上的数字特征码是不是有差别。

字体不一样特征码也不同的。

这个代码可识别20个数字。

如果想改少或改多,就修改第五行的循环次数就行了。

下面是代码//我是分割线ux = 75uy = 98For 20code = ''y = uyFor 8x = uxFor 5GetColor=GetPixelColor(x,y)If GetColor = '000000' Theni = '1'Elsei = '0'End Ifcode = code & ix = x + 1Nexty = y + 1NextNO0 = '0111010001100011000110001100011000101110' NO1 = '0010001100001000010000100001000010001110' NO2 = '0111010001100010001000100010001000011111'NO3 = '0111010001000010011000001000011000101110' NO4 = '0001000110010100101010010011110001000011'NO5 = '1111110000100001111000001000011000101110' NO6 = '0111010010100001111010001100011000101110'NO7 = '1111110010000100010000100001000010000100'NO8 = '0111010001100010111010001100011000101110' NO9 = '0111010001100011000101111000010100101110' If code = NO0 Thennum = '0'ElseIf code = NO1 Thennum = '1'ElseIf code = NO2 Thennum = '2'ElseIf code = NO3 Thennum = '3'ElseIf code = NO4 Thennum = '4'ElseIf code = NO5 Thennum = '5'ElseIf code = NO6 Then num = '6'ElseIf code = NO7 Then num = '7'ElseIf code = NO8 Then num = '8'ElseIf code = NO9 Then num = '9'Elsenum = '?'End Ifux = ux + 6group = group & numNextMessageBox group。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

游戏脚本技术:按键精灵辨识字体
来源:按键学院【按键精灵】当游戏里需要识别的文字量很大,而又不知道是什么字体,无法制作字库的时候,
我们该怎么办呢?
难道就甘心逐个提取文字点阵制作字库吗?
想想那工作量就吓尿~
例子
假如我们要做《神武》游戏的自动任务脚本,我们需要识别下图中红框部分的文字,识别到之后点击文字即可自动寻路到任务处。

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

这。

如果只有几个可能的字体,我们还可以一个个测下来
这么多的话。

测还是要测,但是怎么测才能节省成本呢?
PS:如果弹出的结果是,在系统库里没有发现这个字
也可以用下面的处理方法,千万不能放弃治疗
有的情况下,大漠工具会有识别不出的情况
肉眼点阵比较法
我们知道有很多游戏,它的字体使用的就是我们的系统字体
而我们又知道大多数游戏里的字体是9号字
好,小编的系统是微软雅黑字体的
打开记事本,输入门字,然后把记事本的字体设置为微软雅黑9号字,接着截取记事本里的门字的点阵和游戏的对比
记事本:
游戏中:
点阵差那么多,一看就知道不是了。

那么我们就试试宋体9号字
为什么是宋体?因为普遍的游戏用的是宋体字
记事本:
游戏中:
哈哈~点阵对上了,就是宋体9号字~
指定生成字库法
如果是要用大漠综合工具生成系统字库之后,再加载到脚本里去找字
这样太麻烦了,而且每次生成字库花费的时间还多
所以,我们使用GetDictInfo 函数然后创建指定的文字
小编利用GetDictInfo函数,做了一个简单的测字体脚本,方便大家测字
在该脚本界面上,输入字体,字号,文字的颜色已经要测试的文字,启动脚本即可效果:
代码:
Call 注册大漠()
Set dm = CreateObject("dm.dmsoft")
Call dm.SetPath("c:\test")
// 读取选项
字体= Form1.字体.text
字号=Form1.字号.text
字= Form1.字.text
字体颜色= Form1.字体颜色.text
Call CreateFont(字,字体, 字号, 0, "字库.txt")
//找字
dm_ret = dm.FindStr(0, 0, 2000, 2000, 字, 字体颜色, 1.0, intX, intY)
TracePrint dm_ret
If intX >= 0 and intY >= 0 Then
MessageBox 字
Else
MessageBox "没找到"
End If
Sub CreateFont(Words, Font, Size, Index, Path)
Dim TempStr
T empStr = dm.GetDictInfo(Words, Font, Size, 0)
T empArray = Split(T empStr,"|")
For i = 0 to UBound(T empArray)
dm.AddDict Index,T empArray(i)
Next
Erase T empArray
If Len(Path) > 0 Then
Call dm.SaveDict(0, Path)
End If
End Sub
Function 注册大漠()
Dim i
//释放附件内容
PutAttachment "C:\test_game", "*.*"
Set ws = createobject("Wscript.Shell")
For i = 0 To 20
//注册atl跟dm插件
ws.run("regsvr32 atl.dll -s")
ws.run ("regsvr32 C:\test_game\dm.dll -s")。

相关文档
最新文档