按键精灵教程:炫舞类自动跳舞脚本
学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享

学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享一、用按键精灵确定人物朝向(以剑灵自动寻路为例)的代码在剑灵右上角的小地图里找色/找图,箭头坐标存储在(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// 基数归位(排完一轮之后左边的数<基数<右边的数那么基数就到了排序中它该在的位置。
挂机必备按键精灵网游脚本编写教程

按键精灵网游脚本编写教程一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~355页)五、网游脚本实例(35~最后)一、键盘命令1.1.1.??2.??3.MouseWheel?1 ??3.MouseWheel 14.1.脚本例子:1.语法)命令名称:RestoreMousePos 恢复上次保存的鼠标位置命令功能:保存当前鼠标位置命令参数:无返回值:无脚本例子:1.SaveMousePos语法)1.1. 1.则命令功能:判断表达式命令参数:参数1 条件型,表达式返回值:无脚本例子:语法)1.例子1:2.i=03.If i=0 Then4.Msgbox "条件判断符合被通过!!"5.End If1.1.可当注释,也可以为Goto跳转指令作标记2.Rem脚本开始脚本例子:语法)1.可当注释,也可以为Goto跳转指令作标记2.Rem脚本开始命令名称:RestartScript 重新启动脚本运行命令功能:重新启动脚本运行命令参数:无脚本例子:语法) 1. For i=0 to 22. Delay 10003. Call0, 1024, 768, "屏幕内容填写" & i, "0000FF")4. NextRestartScript则循环 命令功能:条件循环 命令参数:参数1 条件型,循环条件 返 回 值:无 脚本例子:语法) 1. i=02. While i=03. Msgbox "我停不下来啦!!快住手"4. Wend1.1.1.,则默认展开到按键精灵所在的文件夹中2.mp。
如果不指定要释放的文件,则默认释放所有文件3.PutAttachment "c:\","*.bmp"4.plugin","*.dll"1.,则默认展开到按键精灵所在的文件夹中2.mp。
按键精灵教程范文

按键精灵教程范文按键精灵是一款功能强大的自动化工具,可以帮助用户自动执行各种重复性的任务,节省时间和精力。
本文将为大家介绍按键精灵的基本使用方法和一些常见的应用场景。
一、按键精灵的安装和界面介绍2.按键精灵的主界面安装完成后,打开按键精灵,您将看到以下主界面:-脚本列表:用于显示已经录制或保存的脚本文件。
-日志区域:用于显示脚本运行时的日志信息。
-属性窗口:用于设置脚本的属性,如循环次数、延迟时间等。
二、录制和播放脚本1.录制脚本您可以通过按键精灵的录制功能来记录您的操作,生成执行脚本。
具体步骤如下:-点击工具栏中的“录制”按钮。
-选择要录制的窗口。
-开始进行操作,例如点击、拖拽、输入等。
-操作完成后,点击工具栏中的“停止”按钮。
2.播放脚本录制完脚本后,您可以通过按键精灵的播放功能来重复执行录制的操作。
具体步骤如下:-在脚本列表中选择要播放的脚本文件。
-点击工具栏中的“播放”按钮。
-您可以设置脚本的循环次数、延迟时间等属性。
-点击“确定”开始执行脚本。
三、按键精灵的高级功能2.设置按键精灵按键精灵提供了一些常用的设置选项,以便您自定义软件的行为。
具体步骤如下:-点击工具栏中的“设置”按钮。
-在弹出的设置窗口中,您可以设置常规选项、录制选项、播放选项等。
3.定时任务按键精灵还支持定时任务功能,可以在指定的时间自动执行脚本。
具体步骤如下:-点击工具栏中的“定时任务”按钮。
-在弹出的定时任务窗口中设置任务计划。
-您可以选择执行一次或定时执行任务。
四、按键精灵的应用场景按键精灵的自动化功能可以应用在各种场景中,例如:1.游戏辅助:可以自动化进行游戏中的操作,如刷怪、刷装备等。
2.数据录入:可以自动录入大量的数据,提高工作效率。
4.软件测试:可以自动执行一系列测试用例,提高测试效率。
5.系统维护:可以自动执行一些系统维护任务,如清理磁盘、备份文件等。
总结:按键精灵是一款功能强大的自动化工具,可以帮助用户自动执行各种重复性的任务。
按键精灵用法

按键精灵是一个非常方便的自动化工具,可以帮助用户完成一些繁琐的任务,例如自动点击、自动输入、自动播放音乐等等。
下面是按键精灵的用法:
1. 下载和安装
首先,你需要下载和安装按键精灵软件。
按键精灵有免费版和付费版,免费版可以满足大多数用户的需求。
你可以从官方网站上下载并安装按键精灵。
2. 录制和编辑脚本
启动按键精灵后,你可以通过录制或手动编辑的方式来编写脚本。
录制脚本是通过模拟键盘和鼠标操作来实现的,而手动编辑脚本则需要你自己编写相应的代码。
3. 运行脚本
编写好脚本后,你可以通过运行脚本来执行相应的操作。
你可以在按键精灵的主界面中点击“运行”按钮来启动脚本。
4. 设置参数和条件
在录制或手动编写脚本时,你可以设置一些参数和条件来控制脚本的执行。
例如,你可以设置脚本的执行时间、执行次数、执行间隔等等。
5. 保存和导出脚本
在执行脚本后,你可以将脚本保存到本地或导出为其他格式的文件,以便以后再次使用。
总的来说,按键精灵是一种非常方便的自动化工具,可以帮助你完成许多繁琐的任务。
但是,在使用按键精灵时,也需要注意一些安全问题,例如不要将敏感信息暴露给脚本等。
脚本制作教程按键精灵加速游戏

脚本制作教程:按键精灵加速游戏来源:按键学院【按键精灵】植物大战僵尸这款游戏,想必大家都不陌生讲述的是一场植物与僵尸之间刻骨铭心的撕逼大战是一款老少皆宜和善可爱的游戏……此处省略一万字……但是,问题来了等僵尸的过程也慢得太销魂了吧?画面一点动感刺激感都木有,还怎么玩?~和小编一样急性子的小伙伴们,一定忍受不住节奏如此缓慢的游戏,怎么办呢?凉拌炒鸡蛋!自己动手丰衣足食,咱们写个脚本让它快起来~脚本界面效果图今天的脚本例子是用按键精灵仿写一个《变速精灵》,是咱们的大姐大工程师01制作的。
界面十分骚气~~『1』下拉列表框用于显示当前电脑上运行的程序的窗口标题『2』刷新按钮用于重新获取当前电脑上运行的程序的窗口标题『3』"滑块"用于调整速度,往左是减速,往右是加速。
(大尺度调整)『4』快和慢这两个蓝色的按钮,也是用于调整速度的,与滑块的区别在于:滑块可以一次性拉动很大的范围,而按钮是精确调整的,每一次点击增/减一个单位的速度。
『5』?恢复"按钮",用于将速度归零。
变速命令变速命令是官方新插件里的?SysEx系统插件增强版?下的命令:Speed注意:速度的倍数,范围:-256~256,保留小数点后3位,可以实现1.001、1.002倍速度。
??获取窗口句柄当我们点击刷新按钮的时候,则获取当前运行中的所有程序的窗口句柄,并且将窗口的标题名添加到下拉列表框中。
我们用?FindEx查找窗口句柄?命令遍历获取桌面下的第一级子窗口句柄(桌面句柄:0)但是,我们看到,这些窗口中有许多窗口是我们看不见的,甚至都不知道它是做什么用的。
那我们就没有必要获取它了,只要获取到可见的程序窗口句柄即可。
在遍历获取窗口句柄的过程中,加一个判断,利用?GetWindowState 获取窗口状态命令,判断当前窗口的状态,是否为可见的,如果是可见的窗口,则记录下该窗口的窗口句柄和窗口标题。
滑块拖动为了让界面更加的赏心悦目,所以滑块实际上是一张图片并不是真正的滑块按钮我们要实现,拖动滑块图片,往左右移动的时候,滑块图片会跟随着鼠标移动。
按键精灵图文

2.安装后运行按键精灵程序,出现如下界面,不要注册,稍等片刻后红框处会出现“继续”字样,点击进入主程序(注意红框处的录制按钮)。
3.打开天使之恋客户端,将本系的辅助技能(需要1级,省蓝)放至快捷键F1-12任意的位置,进入非练级地点如城市房屋中待理。
4.按下按键精灵程序面板上的录制按钮,会出现如下工具条,将它拖至一旁,游戏中找好适当的鼠标指针落点(需要人物站立与坐下时皆能指到),按下ScrollLock键,立即开始录制过程。
注意:整个录制过程中不要移动鼠标!
5.进行加持辅助技能的操作,即:F1,左键,F2,左键。
反复加持直到MP耗尽,按下Insert键坐下休息直至MP恢复满,再按下Insert键起立,此时立即按下ScrollLock键结束录制过程。
6.按下上图中的工具按钮后出现如下界面,只要对红框框出的三处进行编辑后即可保存,如ctrl+3启动,ctrl+4终止。
7.关闭脚本编辑窗口,此时该脚本就会永远记忆在程序中,除非进行人为删除。
将按键精灵最小化,回到游戏,按下你所设置的启动快捷键(如ctrl+3),看看他是否就按照你的设置一直重复下去了呢?&_&按下终止快捷键(如ctrl+4)则可停止运行。
说明:
使用按键精灵挂技能是双修甚至三修玩家的必备方式,用于解放双手,不影响游戏平衡,
与外挂性质迥异。
该方式已被大部分玩家熟知,仅此献给那些还不懂得如何使用的玩家,有人四处要按键的脚本然后套用,个人觉得不如自己进行录制或者制作,正是“授人以鱼,不如授人以渔”,最后祝大家玩得开心。
挂机必备-按键精灵网游脚本编写教程

按键精灵网游脚本编写教程一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~355页)五、网游脚本实例(35~最后)一、键盘命令命令名称: GetLastKey 检测上次按键命令功能: 检测上次按键命令参数:参数1整数型,可选:变量名返回值:无脚本例子: (8.x语法) 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。
2.Key=GetLastKey()3.If Key = 13Then4. Msgbox"你上次按下了回车键"5.EndIf脚本例子:ﻫ(7.x语法) 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。
2.GetLastKey Key3.If Key = 134. Msgbox "你上次按下了回车键"5.EndIf命令名称: KeyDown 按住命令功能: 键盘按住命令参数: 参数1整数型,键盘虚拟码(8.X支持按键字符)参数2整数型,次数返回值: 无脚本例子:ﻫ(8.x语法)复制代码1.//KeyDown、KeyDownS、KeyDownH2.//KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyDownH:硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyDown 65,15.//65是A键的按键码,上面的语句表示按住A键1次6.7.KeyDown "A",18.//上面的支持按键字符,语句表示按住A键1次脚本例子:(7.x语法) 复制代码1.//KeyDown、KeyDownS、KeyDownH2.//KeyDownS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyDownH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyDown65,15.//65是A键的按键码,上面的语句表示按住A键1次命令名称:KeyPress按键命令功能:键盘按键命令参数:参数1整数型,键盘虚拟码(8.X支持按键字符)ﻫ参数2整数型,次数返回值:无脚本例子: (8.x语法)复制代码1.//KeyPress、KeyPressS、KeyPressH2.//KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyPressH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyPress 65,15.//65是A键的按键码,上面的语句表示按A键1次6.7.KeyPress"A",18.//上面的支持按键字符,语句表示按A键1次脚本例子:(7.x语法) 复制代码1.//KeyPress、KeyPressS、KeyPressH2.//KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyPressH:硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyPress 65,15.//65是A键的按键码,上面的语句表示按A键1次命令名称:KeyUp 弹起命令功能: 键盘弹起命令参数: 参数1 整数型,键盘虚拟码(8.X支持按键字符)ﻫ参数2整数型,次数返回值: 无脚本例子: (8.x语法) 复制代码1.//KeyUp、KeyUpS、KeyUpH2.//KeyUpS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyUp 65,15.//65是A键的按键码,上面的语句表示松开A键1次6.7.KeyUp "A",18.//上面的支持按键字符,语句表示松开A键1次脚本例子: (7.x语法) 复制代码1.//KeyUp、KeyUpS、KeyUpH2.//KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的键盘都可以使用3.//KeyUpH: 硬件模拟方式,仅支持PS(圆口)的键盘点击查看使用硬件模拟方式的注意事项4.KeyUp 65,15.//65是A键的按键码,上面的语句表示松开A键1次命令名称: WaitKey等待按任意键命令功能: 等待按任意键命令参数:参数1整数型,可选:变量名返回值: 无脚本例子:ﻫ(8.x语法) 复制代码1.Key=WaitKey()2.//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里3.If Key = 13 Then4. MessageBox "恭喜你按下了回车键"5.End If脚本例子: (7.x语法)复制代码1.WaitKey Key2.//脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量Key里3.If Key = 134. Msgbox "恭喜你按下了回车键"5.EndIf二、鼠标命令命令名称:GetCursorPos得到鼠标位置坐标命令功能: 得到当前鼠标所在的位置坐标命令参数: 参数1 整数型,返回x坐标ﻫ参数2整数型,返回y坐标返回值: 无脚本例子: (8.x语法) 复制代码1.GetCursorPos mx,my2.//把当前鼠标位置的x和y坐标放在变量mx和my中脚本例子:ﻫ(7.x语法)复制代码1.VBSCall GetCursorPos(mx,my)2.//把当前鼠标位置的x和y坐标放在变量mx和my中命令名称:GetCursorShape得到鼠标形状命令功能: 得到当前鼠标的形状特征命令参数: 参数1整数型,参数返回值:整数型,鼠标的形状值脚本例子:ﻫ(8.x语法) 复制代码1.//参数:0是6.83之前的版本默认的参数2.//参数: 1可用于一些在参数0下无法区分鼠标形状代码的情况3.//下面是我们普通的WINDOWS鼠标形状特征4.//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征5.Shape1 = 15933502876.//下面是我们访问网页超链接时候的手型鼠标形状7.Shape2 = 10559913298.shape=GetCursorShape(0)9.If shape = shape1 Then10. MessageBox "当前鼠标形状是普通的WINDOWS鼠标"11.ElseIf shape= shape2 Then12.MessageBox "当前鼠标形状是手型鼠标"13.Else14. MessageBox "不认识当前鼠标形状!"15.EndIf脚本例子: ﻫ(7.x 语法) 复制代码1.//参数: 0 是6.83之前的版本默认的参数2.//参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况3.//下面是我们普通的WINDOWS鼠标形状特征4.//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征5.Shape1 = 15933502876.//下面是我们访问网页超链接时候的手型鼠标形状7.Shape2 = 10559913298.VBSCall Shape=GetCursorShape(0)9.Ifshape = shape110.MessageBox当前鼠标形状是普通的WINDOWS鼠标11.ElseIf shape = shape212. MessageBox 当前鼠标形状是手型鼠标13.Else14. MessageBox 不认识当前鼠标形状!15.EndIf命令名称: GetLastClick 检测上次按过的鼠标键命令功能:检测上一次按下的鼠标代码命令参数: 参数1 整数型,可选:变量名返回值:无脚本例子:ﻫ(8.x 语法)复制代码1.Mouse=GetLastClick()2.If Mouse =32770Or Mouse =32769 Then3.Msgbox "你按下了鼠标左键"4.End If脚本例子:ﻫ(7.x语法) 复制代码1.GetLastClick Mouse2.IfMouse =32770 Or Mouse =327693. Msgbox "你按下了鼠标左键"4.EndIf命令名称:LeftClick 左键单击命令功能:模拟点击鼠标左键命令参数: 参数1 整数型,次数返回值:无脚本例子: (8.x语法) 复制代码1.//LeftClick、LeftClickS、LeftClickH2.//LeftClickS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftClick 55.//在当前鼠标的位置单击鼠标左键5次脚本例子: (7.x语法) 复制代码1.//LeftClick、LeftClickS、LeftClickH2.//LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftClick 55.//在当前鼠标的位置单击鼠标左键5次命令名称: LeftDoubleClick 左键双击命令功能: 模拟双击鼠标左键命令参数:参数1整数型,次数返回值:无脚本例子:(8.x语法)复制代码1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]2.//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftDoubleClick 55.//在当前鼠标的位置双击鼠标左键5次脚本例子:复制代码(7.x语法)1.//LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH]2.//LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//LeftDoubleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.LeftDoubleClick 55.//在当前鼠标的位置双击鼠标左键5次命令名称:LockMouse 锁定鼠标位置命令功能:锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置命令参数:无返回值:无脚本例子:(8.x语法)复制代码1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错2.LockMouse3.Do4.Delay 10005.Loop脚本例子: (7.x语法) 复制代码1.//在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错2.LockMouse3.WhileTrue4.Delay 10005.EndWhile命令名称: MiddleClick中键单击命令功能: 模拟点击鼠标中键命令参数: 参数1整数型,次数返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.//MiddleClick、MiddleClickS、MiddleClickH2.//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.MiddleClick 55.//在当前鼠标的位置单击鼠标中键5次脚本例子: ﻫ(7.x语法) 复制代码1.//MiddleClick、MiddleClickS、MiddleClickH2.//MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MiddleClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.MiddleClick 55.//在当前鼠标的位置单击鼠标中键5次命令名称: MouseWheel鼠标滚轮命令功能:滚动鼠标滚轮命令参数: 参数1整数型,滚动量返回值:无脚本例子:ﻫ(8.x 语法)复制代码1.//如果滚动量为正,向上滚动;否则向下滚动.2.//仅支持Windows 2000以上的操作系统.3.MouseWheel 14.//把鼠标滚轮向上滚动1格脚本例子:(7.x语法) 复制代码1.//如果滚动量为正,向上滚动;否则向下滚动.2.//仅支持Windows2000以上的操作系统.3.MouseWheel 14.//把鼠标滚轮向上滚动1格命令名称: MoveR 鼠标相对移动命令功能:鼠标相对移动到命令参数: 参数1 整数型,X距离ﻫ参数2整数型,Y距离返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.//MoveR、MoveRS、MoveRH2.//MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.//当前鼠标在(100,100)点,使用下面语句5.MoveR 200,3006.//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处7.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错脚本例子: (7.x语法)复制代码1.//MoveR、MoveRS、MoveRH2.//MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveRH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.//当前鼠标在(100,100)点,使用下面语句5.MoveR 200,3006.//之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处7.//提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错命令名称:MoveTo鼠标移动命令功能:移动鼠标到命令参数: 参数1 整数型,X坐标ﻫ参数2 整数型,Y坐标返回值: 无脚本例子:ﻫ(8.x 语法) 复制代码1.//MoveTo、MoveToS、MoveToH2.//MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveToH: 硬件模拟方式,仅支持PS(圆口)的鼠标4.MoveTo 100,2005.//把鼠标移动到(100,200)这个点上6.intX=507.intY=1508.MoveTo intX,intY9.//把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.脚本例子: ﻫ(7.x语法) 复制代码1.//MoveTo、MoveToS、MoveToH2.//MoveToS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//MoveToH:硬件模拟方式,仅支持PS(圆口)的鼠标4.MoveTo 100,2005.//把鼠标移动到(100,200)这个点上6.intX=507.intY=1508.MoveTo intX,intY9.//把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.命令名称:RestoreMousePos恢复上次保存的鼠标位置命令功能: 保存当前鼠标位置命令参数:无返回值: 无脚本例子: (8.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.//这样脚本执行后鼠标的位置就不会变化脚本例子: ﻫ(7.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.这样脚本执行后鼠标的位置就不会变化命令名称: RightClick 右键单击命令功能: 模拟点击鼠标右键命令参数:参数1 整数型,次数返回值:无脚本例子:ﻫ(8.x语复制代码1.//RightClick、RightClickS、RightClickH2.//RightClickS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的法)鼠标都可以使用3.//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.RightClick 55.//在当前鼠标的位置单击鼠标右键5次脚本例子: (7.x语法) 复制代码1.//RightClick、RightClickS、RightClickH2.//RightClickS:超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和USB接口的鼠标都可以使用3.//RightClickH: 硬件模拟方式,仅支持PS(圆口)的鼠标点击查看使用硬件模拟方式的注意事项4.RightClick 55.//在当前鼠标的位置单击鼠标右键5次命令名称: SaveMousePos 保存当前鼠标所在位置命令功能: 保存当前鼠标位置命令参数: 无返回值: 无脚本例子:(8.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.//这样脚本执行后鼠标的位置就不会变化脚本例子: ﻫ(7.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.这样脚本执行后鼠标的位置就不会变化命令名称: UnlockMouse解除锁定鼠标位置命令功能:解除LockMouse命令对鼠标位置的锁定命令参数:无返回值: 无脚本例子:ﻫ(8.x 语法) 复制代码1.脚本例子:(7.x语法) 复制代码1.//如果用户使用了LockMouse命令而没有使用UnlockMouse命令,按键精灵会在脚本结束时自动解除锁定2.UnlockMouse命令名称: WaitClick 按任意鼠标键继续命令功能:脚本执行到这一句暂停,按下任意鼠标键之后继续命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.last_click=WaitClick()2.MessageBox "您按下了" & last_click脚本例子: (7.x语法) 复制代码1.WaitClick last_click2.MessageBox "您按下了" & last_click三、控制命令脚本例子: (8.x语法)复制代码1.Call子程序("我是子程序,被你调用了")2.EndScript3.//支持中文名变量4.Sub子程序(啊)5. Msgbox啊6.End Sub7.//定义一个过程,可以在脚本中调用这个过程脚本例子:(7.x语法)复制代码命令名称: Do 循环命令功能: 条件循环命令参数:参数1条件型,循环条件返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.例子1:2.//支持Exit Do命令退出循环3.i=04.DoWhile i=05. Msgbox "我停不下来啦!!快住手"6.Loop7.//当循环条件成立的时候,反复执行循环体8.9.10.例子2:11.i=012.DoUntil i=013. Msgbox "为什么没有循环到我呢?"14.Loop15.Msgbox "循环结束"16.//当循环条件成立的时候,离开循环体17.18.19.例子3:20.i=021.Do Untili=122.Msgbox "我停不下来啦!!快住手"23.Loop24.//当循环条件不成立的时候,反复执行循环体25.26.27.例子4:28.n=029.DoWhile true30. Msgbox "我将循环10次停下来!!"31.If n>=10 Then32. //当循环条件成立的时候,离开循环体33.Exit do34.End if35. n=n+136.Loop37.Msgboxn & "次"38.39.40.例子5:41.i = 042.Do43. MessageBox "ok"44.Loop While i <> 045.//条件放后面,前面的循环内容可以执行一次!脚本例子: ﻫ(7.x语法) 复制代码1.无命令名称:For 循环命令功能: 循环一定次数命令参数: 参数1 整数型,循环次数返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.例子1:2.//支持Exit For 命令退出循环3.For i=0 To 94.Delay1005.Next6.//循环10次7.8.例子2:9.//支持ExitFor命令退出循环10.For 1011.Delay10012.Next13.//循环10次14.15.16.例子3:17.//支持Exit For 命令退出循环18.For i=0 to 19 step 219.Delay 10020.Next21.//循环10次22.23.例子4:24.//支持Exit For 命令退出循环25.For i=0 to 19 step 226.Delay 10027.If i>9 Then28.Exit For29.End If30.Next31.//循环5次脚本例子: ﻫ(7.x 语法) 复制代码1.For 102.Delay1003.EndFor4.//循环10次命令名称:Function 函数命令功能: 函数命令参数: 多类型,多参数返回值: 多类型脚本例子:ﻫ(8.x 语法) 复制代码1.//支持Exit Function 命令退出函数过程2.Msgbox 函数过程("我是函数,被你调用了")3.EndScript4.Function函数过程(a)5.函数过程=a6.End Function7.//定义一个函数过程,可以在脚本中调用这个函数脚本例子:ﻫ(7.x语法) 复制代码1.无命令名称:Gosub调用子程序命令功能:调用过程命令参数: 参数1字符串型,过程名返回值:无脚本例子:(8.x语法)复制代码1.//可带参数传递2.Call子程序("我是子程序,被你调用了")3.EndScript4.Sub子程序(a)5. Msgbox a6.End Sub7.//定义一个过程,可以在脚本中调用这个过程脚本例子: ﻫ(7.x 语法) 复制代码1.Gosub子程序2.EndScript3.Sub子程序4. Msgbox "我是子程序,被你调用了"5.Return子程序6.//定义一个过程,可以在脚本中调用这个过程命令名称:Goto 跳转到标记命令功能: 跳转到Rem标记处命令参数:参数1 字符串型,标号返回值: 无脚本例子:ﻫ(8.x 语法)复制代码1.Goto标记2.Delay 1003.Rem标记4.Msgbox"你直接跳到这里了!!,上面的延迟没有被执行!!"5.//跳转语句,可以跳转到rem标记过的标记处继续执行脚本例子:(7.x语法) 复制代码 1. Goto 标记2. D elay 1003. Rem 标记4. Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"5. //跳转语句,可以跳转到r em 标记过的标记处继续执行命令名称:I f 如果..则 命令功能:判断表达式命令参数:参数1 条件型,表达式 返 回 值:无 脚本例子:ﻫ(8.x语法) 复制代码 1. 例子1:2. i=03. If i=0 Then4. Msg bo x "条件判断符合被通过!!"5. End I f6. //通过判断表达式的取值,来执行后面的动作或控制7.8. 例子2:9. i=110. If i=0 Th en11. Ms gbox "条件判断符合被通过!!"12. Else If i=1 The n13. M sgbox "否则条件判断符合被通过!!"14. E lse15. Msgbox "否则!!"16. End If17. //通过判断表达式的取值,来执行后面的动作或控制脚本例子:ﻫ(7.x 语法) 复制代码 1. i=02. If i=03. M sgb ox "条件判断符合被通过!!"4. EndIf5. //通过判断表达式的取值,来执行后面的动作或控I fC olor 颜色判断命令功能:判断屏幕某点的颜色命令参数:参数1 整数型,屏幕X坐标参数2整数型,屏幕Y坐标ﻫ参数3字符串型,颜色16进制值参数4 整数型,判断条件返回值: 无脚本例子:ﻫ(8.x语法)复制代码1.例子1:2.//判断条件(0:等于 1:不等于 2:近似等于)3.IfColor 860,27,"e1b072",0 Then4. Msgbox "颜色等于"5.Else6. Msgbox "颜色不等于"7.End If8.//判断坐标点(860,27)的颜色是否等于e1b0729.10.11.例子2:12.a=1:b=113.IfColor 650,118,"78F0E8",2 Then14.MessageBox "a"15.ElseIf b=a Then16. MessageBox "b"17.Endif脚本例子:(7.x语法)复制代码1.//判断条件(0:等于 1:不等于2:近似等于)2.IfColor 860,27,e1b072,03. Msgbox "颜色等于"4.Else5.Msgbox "颜色不等于"6.EndIf7.//判断坐标点(860,27)的颜色是否等于e1b072命令名称: Rem 标记/注释命令功能:标记命令可当注释命令参数:参数1 字符串型,文字返回值: 无脚本例子:(8.x语法) 复制代码1.//不支持数字开头的和符号作为标记名2.//标记命令.即可当注释,也可以为Goto跳转指令作标记3.Rem脚本开始脚本例子: (7.x语法) 复制代码1.//标记命令.即可当注释,也可以为Goto跳转指令作标记2.Rem脚本开始命令名称: RestartScript重新启动脚本运行命令功能:重新启动脚本运行命令参数:无返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.For i=0 to 22.Delay 10003.Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写" & i, "0000FF")4.Next5.RestartScript //重新启动脚本运行脚本例子: (7.x语法) 复制代码1.无命令名称: Select情况条件选择命令功能: 根据情况选择条件判断命令参数: 参数1条件型,情况返回值:无脚本例子: (8.x语法) 复制代码1.//不支持判断语句如:Case a>0erVar 变量=0 "输入(0~9)数字"3.//<>---------------------------------------------以下是选择条件结结构判断4.Select Case变量5.Case06. Msgbox "你输入的数字为:0"7.Case 18. Msgbox "你输入的数字为:1"9.Case 210. Msgbox "你输入的数字为:2"11.Case 312. Msgbox "你输入的数字为:3"13.Case 414. Msgbox "你输入的数字为:4"15.Case 516. Msgbox "你输入的数字为:5"17.Case 618. Msgbox "你输入的数字为:6"19.Case 720. Msgbox "你输入的数字为:7"21.Case 822. Msgbox "你输入的数字为:8"23.Case 924. Msgbox "你输入的数字为:9"25.CaseElse26. Msgbox "你输入的数字不正确,请输入(0~9)数字!"27.End Select脚本例子:(7.x语法) 复制代码1.无命令名称: Sub 子程序命令功能: 定义一个过程命令参数:参数1 字符串型,过程名返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.//支持Exit Sub命令退出子程序过程2.Call子程序()3.EndScript4.Sub子程序()5. Msgbox "我是子程序,被你调用了"6.End Sub7.//定义一个过程,可以在脚本中调用这个过程脚本例子: ﻫ(7.x语复制代码1.Gosub子程序法) 2.EndScript3.Sub子程序4. Msgbox "我是子程序,被你调用了"5.Return子程序6.//定义一个过程,可以在脚本中调用这个过程命令名称: While 如果..则循环命令功能:条件循环命令参数:参数1 条件型,循环条件返回值: 无脚本例子:ﻫ(8.x语法) 复制代码1.i=02.While i=03. Msgbox"我停不下来啦!!快住手"4.Wend5.//当循环条件成立的时候,反复执行循环体脚本例子: (7.x语法)复制代码1.i=02.While i=03. Msgbox"我停不下来啦!!快住手"4.EndWhile5.//当循环条件成立的时候,反复执行循环体四、颜色/图像命令命令名称: FindCenterColor中心找色命令功能:在屏幕区域从中心开始查找指定的颜色命令参数: 参数1 整数型,屏幕左上角x坐标ﻫ参数2整数型,屏幕左上角y坐标ﻫ参数3 整数型,屏幕右下角x坐标参数4 整数型,屏幕右下角y坐标参数5字符串型,16进制颜色值参数6 整数型,返回x坐标参数7整数型,返回y坐标返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.//FindCenterColor left,top,right,bottom,c,x,y2.//在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//如果没有找到这个颜色,则x和y的值都被置为-16.FindCenterColor 0,0,800,600,"0000FF",x,y7.If x>0 and y>0Then8. MoveTo x,y9.EndIf10.//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点脚本例子: (7.x语法) 复制代码1.//VBSCall FindCenterColor(left,top,right,bottom,c,x,y)2.//在区域内从中心到外围找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//如果没有找到这个颜色,则x和y的值都被置为-16.VBSCall FindCenterColor(0,0,800,600,"0000FF",x,y)7.If x>0 and y>08. MoveTo x,y9.EndIf10.//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点命令名称: FindColor 找色命令功能:在屏幕区域从左到右、从上到下的查找指定的颜色命令参数:参数1整数型,屏幕左上角x坐标ﻫ参数2 整数型,屏幕左上角y坐标ﻫ参数3 整数型,屏幕右下角x坐标ﻫ参数4 整数型,屏幕右下角y坐标ﻫ参数5 字符串型,16进制颜色值参数6 整数型,返回x坐标ﻫ参数7 整数型,返回y坐标返回值:无脚本例子:ﻫ(8.x语法) 复制代码1.//FindColor left,top,right,bottom,c,x,y2.//在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//如果没有找到这个颜色,则x和y的值都被置为-16.FindColor 0,0,800,600,"0000FF",x,y7.If x>0 and y>0 Then8. MoveTo x,y9.EndIf10.//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点脚本例子: ﻫ(7.x语法) 复制代码1.//VBSCall FindColor(left,top,right,bottom,c,x,y)2.//在区域内从左到右,从上到下找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//如果没有找到这个颜色,则x和y的值都被置为-16.VBSCall FindColor(0,0,800,600,"0000FF",x,y)7.If x>0 and y>08. MoveTo x,y9.EndIf10.//在区域(0,0,800,600)中找红色("0000FF")的点,如果找到,则把鼠标移动到这个点命令名称:FindColorEx模糊找色命令功能:在屏幕区域模糊查找指定的颜色命令参数: 参数1整数型,屏幕左上角x坐标参数2整数型,屏幕左上角y坐标参数3 整数型,屏幕右下角x坐标参数4 整数型,屏幕右下角y坐标参数5字符串型,16进制颜色值参数6 整数型,查找方式ﻫ参数7整数型,相似度ﻫ参数8整数型,返回x坐标ﻫ参数9整数型,返回y坐标返回值:无脚本例子:ﻫ(8.x 语法) 复制代码1.//FindColorEx left,top,right,bottom,c,type,similar,x,y2.//在区域内找颜色为c的点,把坐标保存在变量x和y中3.//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限4.//颜色是类似于"0000FF"的字符串,如果不取变量,别忘了加双引号5.//type表示查找方式。
按键精灵的使用方法

按键精灵的使用方法如下:1、下载安装好按键精灵9之后,双击桌面快捷方式打开主程序。
2、看到按键精灵的主界面,点击程序界面上方的录制按钮,这里的录制顾名思义录制的是用户要反复经常进行一些日常操作,比如打开QQ,登录微博等,通过按键精灵把操作录制下来以后就可以一键轻松执行这些步骤繁琐的操作了。
3、之后就会弹出一个名为“录制键盘鼠标动作”的小窗口,第一个红色的小圆点按钮就是录制开始的命令,第二个蓝色的方块按钮是录制停止的命令,第三个是保存录制的结果并退出,第四个则是录制的一些附加设置,比如是否录制鼠标的轨迹等。
我们点击红色的小圆点开始录制我们的操作。
4、把录制键盘鼠标动作的窗口放一边,接下来我们要做的就是像平常一样,开始我们每天都要做的一些重复操作,比如登陆QQ吧,双击桌面的QQ的快捷方式,在登录界面输入自己的登录密码,然后再点击“登陆”。
5、在完成了登陆的操作之后,我们就可以点击录制键盘鼠标动作窗口上面的蓝色方块停止按钮结束我们的录制操作了,然后再点击蓝色方块右边的按钮保存刚才录制的操作,这时按键精灵将会弹回到主界面,我们点击上方的“调试”按钮。
6、这时就会出现调试界面,我们点击“启动”按钮。
这时按键精灵就根据刚才录制下来的操作重复再执行一遍,我们可以检查是否达到自己的目的和要求。
7、如果录制的脚本满足自己的需求,那么就可以留着以后使用了。
这里先对保存的脚本设置一下以便于识别和操作,看到界面右边的脚本属性窗口,描述和文件名(要保留.Q的后缀)都改为自己便于识别的名字,启动热键根据自己的需要设定。
8、下一个步骤,点击程序界面上方的“保存”按钮,按键精灵就把这个录制下来的操作以脚本形式保存好了。
9、最后要把脚本制作成exe格式以方便使用。
点击“发布”,然后选择“制作按键小精灵”。
10、选择好需要生成exe的脚本之后,点击下方红色的“立即制作”即可生成一个exe文件,以后双击运行这个EXE文件就能到达执行录制好的操作的目的了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按键精灵教程:炫舞类自动跳舞脚本来源:按键学院【按键精灵】跳舞类游戏的脚本要怎么写呢?带着这个疑问,小编找了一款十分炫酷的网页游戏《Touch炫舞》游戏画面真是带感,还有那音乐,那妹子的舞姿……啧啧,好妖娆好妩媚……好吧,扯远了,接下来我们进入今天的主题分享下《Touch炫舞》自动跳舞脚本的制作流程由于本帖图片比较多,请各位看官耐心等待图片加载~~流程1、分析游戏2、绑定游戏3、获取箭头的点阵信息,做成字库4、查找箭头游戏画面只出现一个箭头的处理方法游戏画面出现两个箭头的处理方法分析游戏【游戏画面】【游戏规则】1.当箭头的外圈,收缩到箭头内圈时,按下对应的方向键则可以获得最高分。
如果外圈还未收缩到内圈时就按下方向键,则获得一般评价。
如果外圈收缩到箭头中心点消失不见时,还未按下方向键,则不得分。
2.根据歌曲的难度,箭头消失的速度,箭头的个数和复杂程度各不相同。
今天的例子,是以难度为1的歌曲作为操作对象难度为1的歌曲:箭头有两种颜色,粉色和蓝色,上下键为粉色,左右键为蓝色箭头有普通箭头和大箭头普通箭头:大箭头:箭头出现的个数有两种情况只出现一个箭头:按下对应的方向键即可同时出现两个箭头:上下箭头同时出现:按下方向键上不放,然后按方向键下,再松开方向键上左右箭头同时出现:按下方向键左不放,然后按方向键右,再松开方向键左3.游戏支持关闭背景有背景的游戏画面:没有背景的游戏画面:注意:关闭背景能减少cpu负荷,减少干扰,有利于脚本运行4.游戏窗口如果是非激活的状态,画面被锁定,不接受键盘消息以及鼠标消息绑定游戏本例中用大漠插件来做后台脚本首先,我们需要测试下,这个游戏要用什么绑定模式小编测试了几种后台模式,发现键盘如果使用"windows"绑定模式,当游戏窗口处于非激活的状态下(窗口被遮挡),游戏画面会被锁定。
难道不能后台?就当小编心如死灰之际,测试了dx模式成了,键盘用dx模式之后,游戏窗口被遮挡游戏画面也不会被锁定绑定模式:图色模式:dx2鼠标模式:dx键盘模式:dx注意:绑定游戏窗口之前,要先激活游戏窗口之后再绑定如果是非激活状态下(游戏画面锁定)绑定了窗口,需要点击下窗口标题栏激活窗口获取箭头点阵信息,做字库小编使用做字库的方式,来查找箭头有童鞋看到这里可能会有疑问,为什么不用找图的方式呢?其实,找图和找字的方式都可以。
小编喜欢用找字的方式,主要原因是因为找字的效率高于找图好吧,我说实话,其实是因为我比较懒,小编觉得抠图老麻烦了~~箭头的偏色还是相当厉害的,我们怎么才能获取到它的点阵呢?小编使用的是HSV模式来计算偏色根据计算粉色箭头的偏色描述为:308.57.100-25.60.10蓝色箭头的偏色描述为:180.60.100-25.60.0用大漠工具提取图像点阵,我们发现它提取到的点阵范围大小是有限制的,不能将整个箭头的点阵都提取到那我们该提取那一部分呢?粉色箭头红色箭头小编提取的是箭头双角部分的点阵,因为这部分点阵特征比较明显,识别起来准确度高点阵信息命名为:上(粉色大箭头用此点阵也能识别到)粉色朝下的箭头也是提取双角部分的点阵点阵信息命名为:下蓝色箭头蓝色箭头小编提取的是箭头中部的点阵点阵信息命名为:左蓝色往右方向的箭头也是提取箭头中部的点阵点阵信息命名为:右但是问题来了,发现蓝色箭头有很多不能识别到原来蓝色箭头还有另一种情况箭头的中间部位有一条是白色的,所以偏色没有覆盖到(蓝色大箭头也是这种情况)这种情况,小编提取了箭头上方角的部分,点阵信息命名为:大左(蓝色大箭头用此点阵也能识别到)蓝色朝右的箭头也是提取箭头上方角的部分点阵信息命名为:大右查找箭头游戏画面里的箭头有的时候出现一个,有的时候同时出现两个所以,这里我们使用大漠的FindStrFastEx 找字命令这个命令,支持找多字找字的范围怎么定?我们观察下,箭头会出现的大概范围,发现并不是整个窗口都覆盖的所以,小编设置的范围是:91,59,1124,689找字的范围尽可能小点,可以提高效率我们找多字,所以命令中string 这个参数,我们将需要找的字都填进去:"上|下|左|大左|右|大右"Color_format参数,填写偏色描述,将粉色箭头和蓝色箭头的偏色描述一起填写进去:"180.60.100-25.60.0|308.57.100-25.60.10"怎么知道找到的是哪个箭头?怎么知道找到的箭头有几个?如果只找到一个箭头,例如:上箭头我们看string这个参数里,上是在第一个,所以它的序号为0,而下的序号为1,以此类推那么,FindStrFastEx命令的返回值就为:0,x坐标,y坐标我们需要将这个返回值分割,获取到“0”这个序号,才能判断出找到的是哪个箭头如果同时找到了两个箭头,例如:上箭头和下箭头那么,FindStrFastEx命令的返回值就为: 0,x坐标,y坐标|1,x坐标,y坐标我们需要将返回值分割两次,第一次以| 线为分割符号,第二次以,号为分隔符这样才能将两个箭头的序号获取到,然后根据序号判断是哪个箭头看到这里,细心的童鞋一定发现了,如果找到两个箭头,FindStrFastEx命令的返回值里会出现一个竖线如果只找到一个的话,就不会出现竖线,所以我们只要判断竖线有没有即可知道找到了几个箭头按方向键如果只找到一个箭头,我们判断是哪个箭头,然后按下对应的方向键即可例如找到左箭头,我们就按方向键"←"如果同时找到了两个箭头,有两种情况情况1:上下箭头同时出现情况2:左右箭头同时出现我们知道找字是从左往右,从上往下找,所以两个箭头同时出现时,先找到的是上/左箭头所以我们判断找到的第一个箭头是上箭头还是左箭头如果是上箭头,我们就按住方向键"↑"不放,然后按下方向键"↓",再松开方向键"↑"如果是左箭头,我们就按住方向键"←",然后按方向键"→",再松开方向键"←"代码Call 注册大漠()Set dm = CreateObject("dm.dmsoft")'创建大漠对象dm_ret = dm.SetPath("C:\test_game\")'设置大漠全局路径dm_ret = dm.SetDict(0,"Touch.txt")'设置字库文件Hwnd = Plugin.Window.Find("UnityWndClass", "Touch")'获取Touch炫舞的窗口句柄dm_ret = dm.SetWindowState(Hwnd,1) '激活窗口dm_ret = dm.BindWindow(Hwnd, "dx2", "dx", "dx", 1)'绑定窗口If dm_ret = 1 ThenTracePrint "绑定窗口成功"Do//查找箭头dm_ret = dm.FindStrFastEx(91,59,1124,689, "上|下|左|大左|右|大右", "180.60.100-25.60.0|308.57.100-25.60.10", 0.9)If len(dm_ret) > 0 ThenDelay 200 '外圈还未收缩到内圈时就按键的情况下,调高延时。
相反则调低延时。
Call StrToArr(dm_ret)If UBound(ArrMap) = 0 Then '1个箭头SS = split(dm_ret, ",")Call InputKey(CInt(SS(0)),0)Delay 200 '如果一个键判断了两次,导致按键错误的情况,调高延时Elseif UBound(ArrMap) = 1 Then '2个箭头TracePrint "2键"Call InputKey(CInt(ArrMap(0,0)),1)TracePrint "================"End IfEnd IfLoopElseTracePrint "绑定失败"End If//按方向键Sub InputKey(key,mode)If mode=0 then '一个箭头If key = 0 Then dm.KeyPress 38 :TracePrint "↑"If key = 1 Then dm.KeyPress 40 :TracePrint "↓"If key = 2 or key = 3 Then dm.KeyPress 37 :TracePrint "←"If key = 4 or key = 5 Then dm.KeyPress 39 : TracePrint "→"Else '两个个箭头If key = 0 Then '判断是否是上箭头:上箭头=0 /左箭头=2dm.Keydown 38:TracePrint "按下↑"dm.Keypress 40:TracePrint "按↓"dm.Keyup 38:TracePrint "松开↑"Else '左箭头dm.Keydown 37:TracePrint "按下←"dm.Keypress 39:TracePrint "按→"dm.Keyup 37:TracePrint "松开←"End IfEnd ifEnd Sub//分割坐标字符串Sub StrToArr(字符串)Dim i, j, ArrX, ArrYArrX = Split(字符串, "|")For i = 0 To UBound(ArrX)ArrY = Split(ArrX(i), ",")For j = 0 To UBound(ArrY)If j = 0 and i = 0 ThenRedim ArrMap(UBound(ArrX),UBound(ArrY))End IfArrMap(i, j) = ArrY(j)nextNextEnd Sub//注册大漠Function 注册大漠()Dim iPutAttachment "C:\test_game", "*.*"Set ws = createobject("Wscript.Shell")For i = 0 To 20ws.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 <> "" ThenExit ForEnd IfNextIf i >= 20 ThenTracePrint "大漠插件注册失败!"EndScriptEnd IfSet dm = nothingDelay 10End Function//释放大漠Sub OnScriptExit()dm_ret = dm.UnBindWindow()End Sub游戏设置:注意:1、外圈还未收缩到内圈时就按键的情况,需要调高延时。