按键精灵游戏开发教程
- 格式:docx
- 大小:4.07 MB
- 文档页数:10
学习怎么用按键精灵制作游戏辅助——脚本源代码干货分享一、用按键精灵确定人物朝向(以剑灵自动寻路为例)的代码在剑灵右上角的小地图里找色/找图,箭头坐标存储在(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// 基数归位(排完一轮之后左边的数<基数<右边的数那么基数就到了排序中它该在的位置。
竭诚为您提供优质的服务,优质的文档,谢谢阅读/双击去除按键精灵脚本编写教程 [按键精灵脚本制作教程]按键精灵很多人都听说过,是一款很好的脚本编辑器,怎么使用它呢,其实很简单的,请看下面小编整理的方法!用按键精灵做脚本的方法下载按键精灵,这个不用多说了吧,去百度一下找到官网进去下载安装,安装好后启动按键精灵,点击新建,跳到脚本编辑窗口3先说说录制吧,这个比较简单,我们点击窗口上的录制按钮4会弹出一个录制控制窗口,红色的圆圈是开始录制,蓝色正方形是停止,第三个是保存录制好的脚本,第四个有个向下的三角形,可以选择要录制哪些动作,比如你把记录键盘操作的勾去掉,那么你录制的时候就不会录制你键盘上的动作,不管你键盘怎么按,都不会被记录下来开始录制也可以用快捷键scrlk键(scrollLock键),如果是鼠标去点击开始的按钮的话,会多录制到一些不必要的动作,所以这边建议使用快捷键,开始录制后,就去操作你的鼠标和键盘吧,把你要重复的动作做一遍,按键精灵会记录下来,录制好后再次按下scrlk键停止,确认没问题后按保存按钮即可保存,会自动返回到按键精灵脚本编辑窗口根据图片上的提示进行修改,启动和停止热键可以修改为自己比较顺手的键,循环次数意思是你刚刚录制的脚本要重复执行多少次,如果要一直执行到自己按下停止键的话,可以选择循环到按终止键为止,描述建议起一个符合脚本的名字再来说说自己写的,按键精灵非常方便,提供了很多快捷命令,我们看左边这一栏,很清楚的标出了各个功能比如说我们要做一个鼠标自动点击的脚本,那么肯定是要用到鼠标命令,我们点击鼠标命令,按键精灵已经帮我们列出一些比较常用的鼠标命令了,我们只需要填写一些相关的参数即可比如我们要写一个不停的点击某一个坐标点的小工具,我们先点击“鼠标移动到坐标”这一栏的插入(坐标先不管,也可以先在按键抓抓中抓取),然后再点击“鼠标动作”这一栏的插入,默认左键单击不变点击源文件,将moveTo后面的坐标改为你想点击的坐标位置,如果不知道具体的坐标位置的话,可以用按键抓抓打开按键抓抓后,移动你的鼠标,按键抓抓上会显示出你的鼠标所在位置的信息,把坐标点x,y记录下来,填到刚刚moveTo后面都做好之后,我们把脚本循环的次数改成循环到按终止键为止,然后点击保存,再点击调试,也可以直接点击调试,然后按下启动键,看看我们制作的脚本是不是可以执行,有没有出现错误都没问题的话,如果你想把你的脚本分享给别人一起使用的话,那么你可以点击发布右边的向下三角形,然后选择制作按键小精灵在弹出的窗口中输入脚本的使用说明,一般就是说明一下启动热键和停止热键,然后点击立即制作,会弹出一个保存的对话框,选择一个路径,保存即可,下次你要用这个脚本的话,可以直接打开刚刚保存的按键小精灵,也可以把生成的按键小精灵发给你的朋友,让他们使用eND看了“怎么用按键精灵做脚本”的人还看了1.如何用按键精灵开发后台命令脚本2.按键精灵如何设置循环3.什么是挂机挂机的分类4.电脑鼠标精灵怎么用5.cf鼠标连点怎么设置最后,小编希望文章对您有所帮助,如果有不周到的地方请多谅解,更多相关的文章正在创作中,希望您定期关注。
怎么开发脚本?按键精灵快速制作游戏脚本教程
以按键精灵制作游戏中跑地图脚本“大地图寻路法”为例:以下是从应天府到星秀村的脚本
按键精灵中编程页面,找到基本命令,键盘命令,键盘按下Tab键,呼出大地图,其他命令中,延时200毫秒,插入命令,按下print screen截图,切换到按键精灵中的抓抓页面功能。
右键点目的地的位置,添加到点1,回到编辑器。
在鼠标命令中刚刚点的坐标,插入命令,延时200毫秒,再插入鼠标单击命令。
最后键盘按下T ab键,关掉地图页面,运行,大地图寻路完成。
目前按键精灵的周边产品商业小精灵也强势出击,其具体的操作资料,可百度按键精灵论坛查询:。
游戏辅助制作教程:用按键精灵开发计算距离自己最近的怪物/包裹/金矿坐标的脚本知识点引入:数学知识:已知坐标求距离已知坐标A(X1,Y1)、B(X2,Y2),那么AB之间的距离有一个计算公式:距离=sqr((X1-X2)^2+(Y1-Y2)^2)即:距离等于两个坐标的横坐标之差的平方,加上纵坐标之差的平方,两个平方相加,再取它们的平方根。
算法知识:冒泡排序介绍:冒泡排序(Bubble Sort),这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,像鱼吐泡泡一样。
同样,也可以让越大的元素沉到数列底部。
算法原理:冒泡排序算法的运作如下:(从后往前)1.比较相邻的元素。
如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。
在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4. 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
思路解析:1.获取到人物的坐标,以及各个物品的坐标,存入数组;2.计算人物距离各个物品的坐标距离,存入数组;3.通过各个坐标距离的比较,从而获取到最小距离(距离人物最近的物品)以及最大距离(距离人物最远的物品),输出相对应的物品坐标。
大神代码段://注:coordinate为物品坐标,range为距离,Arr为物品坐标的数组,Ub 为物品坐标的最大下界x = 300:y = 330'人物的坐标coordinate = "200,300|10,20|60,800|500,321|456,789|421,6|300,320|320,290"'物品(怪物)的坐标Arr = split(coordinate, "|")Ub = UBound(Arr)'range(Ub)用来存储每个物品离人物的距离, xx(Ub)用来存储每个物品的X坐标, yy(Ub)用来存储每个物品的Y坐标Redim range(Ub), xx(Ub), yy(Ub)'计算所有的物品坐标,离人物的距离,存在range数组里For i = 0 To Ubx1 = split(Arr(i), ",")(0) : y1 = split(Arr(i), ",")(1)xx(i) = x1 : yy(i) = y1range(i) = sqr((x1 - x) ^ 2 + (y1 - y) ^ 2)Next'通过冒泡排序,将人物离每个物品的距离,按照从小到大的顺序排列,并根据距离的排序,相应的调整物品的X坐标和Y坐标在数组中的位置。
按键精灵网游脚本编写教程一、键盘命令(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~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~355页)五、网游脚本实例(35~最后)一、键盘命令命令名称:GetLastKey 检测上次按键命令功能:检测上次按键命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。
2.Key=GetLastKey()3.If Key = 13 Then4. Msgbox "你上次按下了回车键"5.End If脚本例子:(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. KeyDown 65,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.End If脚本例子:(7.x语法) 复制代码1.//参数: 0 是6.83之前的版本默认的参数2.//参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况3.//下面是我们普通的WINDOWS鼠标形状特征4.//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征5.Shape1 = 15933502876.//下面是我们访问网页超链接时候的手型鼠标形状7.Shape2 = 10559913298.VBSCall Shape=GetCursorShape(0)9.If shape = shape110. MessageBox 当前鼠标形状是普通的WINDOWS鼠标11.ElseIf shape = shape212. MessageBox 当前鼠标形状是手型鼠标13.Else14. MessageBox 不认识当前鼠标形状!15.EndIf命令名称:GetLastClick 检测上次按过的鼠标键命令功能:检测上一次按下的鼠标代码命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码1.Mouse=GetLastClick()2.If Mouse =32770 Or Mouse =32769 Then3. Msgbox "你按下了鼠标左键"4.End If脚本例子:(7.x语法) 复制代码1.GetLastClick Mouse2.If Mouse =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次脚本例子:(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.While True4.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.//仅支持Windows 2000以上的操作系统.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.Delay 1004.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.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.//这样脚本执行后鼠标的位置就不会变化脚本例子:(7.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.这样脚本执行后鼠标的位置就不会变化三、控制命令命令名称:Call 调用过程命令功能:调用过程命令参数:参数1 字符串型,过程名返回值:无脚本例子:(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.Do While i=05. Msgbox "我停不下来啦!!快住手"6.Loop7.//当循环条件成立的时候,反复执行循环体8.9.10.例子2:11.i=012.Do Until i=013. Msgbox "为什么没有循环到我呢?"14.Loop15.Msgbox "循环结束"16.//当循环条件成立的时候,离开循环体17.18.19.例子3:20.i=021.Do Until i=122. Msgbox "我停不下来啦!!快住手"23.Loop24.//当循环条件不成立的时候,反复执行循环体25.26.27.例子4:28.n=029.Do While true30. Msgbox "我将循环10次停下来!!"31.If n>=10 Then32. //当循环条件成立的时候,离开循环体33.Exit do34.End if35. n=n+136.Loop37.Msgbox n & "次"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.Delay 1005.Next6.//循环10次7.8.例子2:9.//支持Exit For 命令退出循环10.For 1011.Delay 10012.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.Delay 1003.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.Delay 1003.Rem标记4.Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"5.//跳转语句,可以跳转到rem标记过的标记处继续执行命令名称:If 如果..则命令功能:判断表达式命令参数:参数1 条件型,表达式返回值:无脚本例子:(8.x语法) 复制代码1.例子1:2.i=03.If i=0 Then4. Msgbox "条件判断符合被通过!!"5.End If6.//通过判断表达式的取值,来执行后面的动作或控制7.8.例子2:9.i=110.If i=0 Then11. Msgbox "条件判断符合被通过!!"12.ElseIf i=1 Then13. Msgbox "否则条件判断符合被通过!!"14.Else15. Msgbox "否则!!"16.End If17.//通过判断表达式的取值,来执行后面的动作或控制脚本例子:(7.x语法) 复制代码1.i=02.If i=03. Msgbox "条件判断符合被通过!!"4.EndIf5.//通过判断表达式的取值,来执行后面的动作或控命令名称:IfColor 颜色判断命令功能:判断屏幕某点的颜色命令参数: 参数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. End if脚本例子:(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.Case 06. 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.Case Else26. 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>0 Then8. MoveTo x,y9.End If10.//在区域(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.End If10.//在区域(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表示查找方式。
按键精灵脚本制作教程(全)一、前言所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。
虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。
不管游戏外挂程序是不是“合法”身份,但是它却是具有一定的技术含量的,在这些小小程序中使用了许多高端技术,如拦截Sock技术、拦截API技术、模拟键盘与鼠标技术、直接修改程序内存技术等等。
本文将对常见的游戏外挂中使用的技术进行全面剖析。
二、认识外挂游戏外挂的历史可以追溯到单机版游戏时代,只不过当时它使用了另一个更通俗易懂的名字??游戏修改器。
它可以在游戏中追踪锁定游戏主人公的各项能力数值。
这样玩家在游戏中可以达到主角不掉血、不耗费魔法、不消耗金钱等目的。
这样降低了游戏的难度,使得玩家更容易通关。
随着网络游戏的时代的来临,游戏外挂在原有的功能之上进行了新的发展,它变得更加多种多样,功能更加强大,*作更加简单,以至有些游戏的外挂已经成为一个体系,比如《石器时代》,外挂品种达到了几十种,自动战斗、自动行走、自动练级、自动补血、加速、不遇敌、原地遇敌、快速增加经验值、按键精灵……几乎无所不包。
游戏外挂的设计主要是针对于某个游戏开发的,我们可以根据它针对的游戏的类型可大致可将外挂分为两种大类。
一类是将游戏中大量繁琐和无聊的攻击动作使用外挂自动完成,以帮助玩家轻松搞定攻击对象并可以快速的增加玩家的经验值。
比如在《龙族》中有一种工作的设定,玩家的工作等级越高,就可以驾驭越好的装备。
但是增加工作等级却不是一件有趣的事情,毋宁说是重复枯燥的机械劳动。
如果你想做法师用的杖,首先需要做基本工作--?砍树。
砍树的方法很简单,在一棵大树前不停的点鼠标就可以了,每10000的经验升一级。
这就意味着玩家要在大树前不停的点击鼠标,这种无聊的事情通过"按键精灵"就可以解决。
使用步骤如下:1. 制作脚本:按照个人需求从网上搜集脚本或者自己制作脚本。
如果您的脚本是从别的地方收集的,请先把脚本文件拷贝到按键精灵文件夹下的script文件夹中,然后再运行按键精灵。
2.选择有效的窗口:建议您选择“对所有窗口有效”。
如果您只需要脚本当某个窗口在前台时有效,请选择窗口名称,比如“龙族”3.让需要执行的脚本“有效”,只有“有效”一栏中勾中的脚本才会执行。
4.进入游戏(或者其他需要使用按键精灵的软件),在需要使用脚本的时候按下脚本的“快捷键”,按键精灵就会忠实的为您工作了。
按键精灵主界面图:主界面及功能按钮主界面功能简介:增加:增加一个新的脚本。
修改:修改当前选中的脚本。
删除:删除当前选中的脚本,可以同时选中多个脚本进行删除。
录制:录制新的脚本,新手制作脚本首选功能。
上传:将当前脚本上传至按键精灵网站,与他人进行交流。
全部有效/无效:让所有脚本有效或者无效。
注册:注册按键精灵,使用正版软件。
帮助:查看用户帮助手册。
图:录制功能录制功能简介:强烈推荐的功能!能够忠实记录您的动作,并在脚本执行时回放,新手也可随心所欲制作脚本。
按下ScrollLock键就可以开始录制,再次按下就可停止录制,最后保存即可。
如果您需要按键精灵忠实的记录鼠标移动轨迹,在后面的“记录鼠标移动轨迹”前面打个勾就可以了。
录制过程中可以随便移动录制工具条,不会对您录制的动作产生任何影响。
图:上传脚本上传脚本功能简介:在主界面选择一个脚本,点击“上传”按钮就可以进入上传脚本界面。
您可以将自己比较得意的脚本上传到我们的服务器。
在您的脚本上传成功之后,我们将会进行人工审核。
不错的脚本都会被我们推荐给其他玩家共同学习。
上传时按键精灵会自动填写一些信息。
请您在“脚本说明”里写上脚本的用途、制作思路等你认为对其他人有帮助的信息。
没有说明或者说明不清楚的脚本将无法获得推荐。
:-)脚本编辑器图:脚本编辑器界面脚本编辑器使用说明:在动作选择区选择动作,插入右边的脚本内容区即可。
如果你还为一些枯燥、繁琐的电脑操作而烦恼,按键精灵绝对会是你最好的帮手。
那么,按键精灵具体能帮我们干什么呢?我们来列举几个例子来说明下。
*网络游戏中可作脚本实现自动打怪,自动补血,自动说话等;*办公族可用它自动处理表格、文档,自动收发邮件等;脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果.我们可以通过”录制”功能制作简单的脚本,还可通过”脚本编辑器”制作更加智能的脚本.今天我们就通过录制一个最简单的脚本,来手把手的教大家使用按键精灵。
上网一族一般开机后会先看看自己邮箱,或者看看自己博客;每天如此,可能都有些烦了。
现在好了,把这些繁杂的事情交给按键精灵吧。
今天我们就来录制一个自动登录博客,并对整个页面进行浏览的脚本。
首先,我们打开“按键精灵”。
其运行界面如下(图1):图1运行界面打开软件后点击工具栏上“新建”项(如图2);之后进入“脚本编译器”界面(如图3)。
现在就可以正式开始编译脚本了。
图2xx图3脚本编译器界面在脚本编译器界面上,左键点击工具栏上“录制”项,会出现这样的情况:进入桌面,并出现一个小的对话框(如图4)。
图4录制在这个小的对话框中,左侧红色圆按钮是录制的开始,第二个蓝色方按钮是录制结束,第三个是存储录制内容。
在录制过程中该对话框可以随意移动,不会影响录制结果。
我们来点击红色圆形按钮开始录制(图5)图5开始录制后我们把这个小的对话框移至窗口右下角,然后用鼠标点击左下角任务栏的IE浏览器标志,来打开浏览器(如图6)。
图6打开IE浏览器随后在地址栏输入博客地址(如图7)图7输入地址进入xx主页(如图8)用鼠标拖动滚动条,浏览整个页面。
看完后关闭页面,然后点击录制对话框的蓝色方形停止键(如图9)图9停止录制之后点击第三个按钮,来保存录制动作并进入脚本编译界面。
现在我们可以看到在编译界面的中部,有“按键精灵录制的内容”这句话显示。
这句话的下面有“鼠标移动”、“延时”、“按键动作”等记录的录制过程中的各个动作。
最全面的按键精灵教程一、键盘命令(2~5页)二、鼠标命令(5~13页)三、控制命令(13~22页)四、颜色/图像命令(22~28页)五、其他命令(28~355页)五、网游脚本实例(35~最后)一、键盘命令命令名称:GetLastKey 检测上次按键命令功能:检测上次按键命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码1.//脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量Key里。
2.Key=GetLastKey()3.If Key = 13 Then4. Msgbox "你上次按下了回车键"5.End If脚本例子:(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.KeyDown 65,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次脚本例子:(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.End If脚本例子:(7.x语法) 复制代码1.//参数: 0 是6.83之前的版本默认的参数2.//参数: 1 可用于一些在参数0下无法区分鼠标形状代码的情况3.//下面是我们普通的WINDOWS鼠标形状特征4.//不同电脑上鼠标形状特征也许不同,请使用"抓点抓色"功能抓取正确的鼠标形状特征5.Shape1 = 15933502876.//下面是我们访问网页超链接时候的手型鼠标形状7.Shape2 = 10559913298.VBSCall Shape=GetCursorShape(0)9.If shape = shape110. MessageBox 当前鼠标形状是普通的WINDOWS鼠标11.ElseIf shape = shape212. MessageBox 当前鼠标形状是手型鼠标13.Else14.MessageBox 不认识当前鼠标形状!15. EndIf命令名称:GetLastClick 检测上次按过的鼠标键 命令功能:检测上一次按下的鼠标代码 命令参数:参数1 整数型,可选:变量名 返 回 值:无 脚本例子:(8.x 语法) 复制代码 1. Mouse=GetLastClick()2. If Mouse =32770 Or Mouse =32769 Then3. Msgbox "你按下了鼠标左键"4. End If脚本例子:(7.x 语法) 复制代码 1. GetLastClick Mouse2. If Mouse =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.While True4.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.//仅支持Windows 2000以上的操作系统.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.Delay 1004.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.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.//这样脚本执行后鼠标的位置就不会变化脚本例子:(7.x语法) 复制代码1.SaveMousePos2.//保存当前鼠标位置3.Delay 1004.MoveTo 500,205.Delay 1006.RestoreMousePos7.//将鼠标移动到上一次保存的鼠标位置8.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,9.这样脚本执行后鼠标的位置就不会变化命令名称:WaitClick 按任意鼠标键继续命令功能:脚本执行到这一句暂停,按下任意鼠标键之后继续命令参数:参数1 整数型,可选:变量名返回值:无脚本例子:(8.x语法) 复制代码st_click=WaitClick()2.MessageBox "您按下了" & last_click脚本例子:(7.x语法) 复制代码1.WaitClick last_click2.MessageBox "您按下了" & last_click三、控制命令命令名称:Call 调用过程命令功能:调用过程命令参数:参数1 字符串型,过程名返回值:无脚本例子:(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.Do While i=05. Msgbox "我停不下来啦!!快住手"6.Loop7.//当循环条件成立的时候,反复执行循环体8.9.10.例子2:11.i=012.Do Until i=013. Msgbox "为什么没有循环到我呢?"14.Loop15.Msgbox "循环结束"16.//当循环条件成立的时候,离开循环体17.18.19. 例子3:20. i=021. Do Until i=122. Msgbox "我停不下来啦!!快住手"23. Loop24. //当循环条件不成立的时候,反复执行循环体25.26.27. 例子4:28. n=029. Do Whiletrue30. Msgbox "我将循环10次停下来!!"31. If n>=10 Then32. //当循环条件成立的时候,离开循环体33. Exit do34. End if35. n=n+136. Loop37. Msgbox n & "次"38.39.40. 例子5:41. i = 042. Do43. MessageBox "ok"44. Loop While i <> 045. //条件放后面,前面的循环内容可以执行一次!脚本例子:(7.x 语法) 复制代码 1. 无3.For i=0 To 94.Delay 1005.Next6.//循环10次7.8.例子2:9.//支持Exit For 命令退出循环10.For 1011.Delay 10012.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.Delay 1003.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.Delay 1003.Rem标记4.Msgbox "你直接跳到这里了!!,上面的延迟没有被执行!!"5.//跳转语句,可以跳转到rem标记过的标记处继续执行命令名称:If 如果..则命令功能:判断表达式命令参数:参数1 条件型,表达式返回值:无脚本例子:(8.x语法) 复制代码1.例子1:2.i=03.If i=0 Then4. Msgbox "条件判断符合被通过!!"5.End If6.//通过判断表达式的取值,来执行后面的动作或控制7.8.例子2:9.i=110.If i=0 Then11. Msgbox "条件判断符合被通过!!"12.ElseIf i=1 Then13. Msgbox "否则条件判断符合被通过!!"14.Else15. Msgbox "否则!!"16.End If17.//通过判断表达式的取值,来执行后面的动作或控制脚本例子:(7.x语法) 复制代码1.i=02.If i=03. Msgbox "条件判断符合被通过!!"4.EndIf5.//通过判断表达式的取值,来执行后面的动作或控命令名称:IfColor 颜色判断命令功能:判断屏幕某点的颜色命令参数:参数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.End if脚本例子:(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>02. UserVar 变量=0 "输入(0~9)数字"3. //<>---------------------------------------------以下是选择条件结结构判断4. Select Case 变量5. Case 06. 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. Case Else26. 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>0 Then8. MoveTo x,y9. End If10. //在区域(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. End If10. //在区域(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表示查找方式。
按键精灵网游脚本编写教程一、键盘命令(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表示查找方式。
按键精灵实现多线程多开脚本教程来源:按键学院【按键精灵】“多线程到底怎么实现?好复杂!”小编时常在论坛里,看到有童鞋发出这样的疑问。
小编觉得多线程就好似冰山美人,外冷内热。
乍一看,好像很不好相处,近一步,则会发现其实她很温柔。
到底有多温柔呢?一起来看看~QUI界面写代码之前,我们先画脚本的Qui界面。
如下图:思路我们拿记事本作为多开的对象。
脚本由以下三个按钮点击事件组成:1、点击QUI界面中的"一键启动"按钮,启动记事本,启动的记事本个数由InputBox1里填入的数值决定。
启动线程,将线程id、窗口句柄记录到ini文件中。
在线程调用的子程序里,对记事本输入内容。
2、点击“关闭所有窗口”按钮,则读取ini中保存的线程id、窗口句柄,关闭线程之后关闭窗口。
3、点击“暂停”按钮,则读取ini文件中和InputBox2文本框中对应数值的窗线程id,暂停该线程。
再次点击“暂停”按钮,则读取ini文件中和InputBox2文本框中对应数值的窗线程id,恢复该线程。
“一键启动”按钮点击事件步骤:1、启动记事本窗口。
2、修改记事本的标题名称。
3、每个记事本窗口对应启动一个线程。
4、将窗口句柄、线程id记录到ini文件中。
1、启动记事本窗口。
获取InputBox1中的数值。
利用for循环打开记事本窗口。
For i = 1 To Form1.InputBox1.Text//打开记事本RunApp "Notepad.exe"Next打开记事本之后,我们需要判断下记事本是不是已经打开,如果打开了则获取窗口句柄,如果没有打开,则继续循环判断记事本是不是已经打开。
避免当游戏窗口还没有打开获取不到窗口句柄的情况。
dohwnd = Plugin.Window.Find(0, "无标题- 记事本")//获取记事本句柄Loop while (Hwnd=0)2、修改记事本窗口的标题。
按键精灵教程之俄罗斯方块按键精灵是一种自动化工具,可用于自动执行各种重复性任务。
在本教程中,我们将使用按键精灵来制作一个简单的俄罗斯方块游戏。
首先,让我们来了解一下俄罗斯方块的规则。
俄罗斯方块是一款经典的益智游戏,玩家需要将不同形状的方块逐行堆叠在一起,使得每一行的方块都被填满。
当一行被填满时,它将消失并腾出新的空间。
游戏结束的条件是当方块堆满整个游戏区域时。
接下来,我们将使用按键精灵创建一个简化版的俄罗斯方块游戏。
我们将使用鼠标点击来控制方块的移动和旋转,以及键盘触发来加快方块下降的速度。
首先,我们将创建一个方块的类。
每个方块都由四个正方形组成,可以进行旋转,并且在游戏区域中进行移动。
```class Block:def __init__(self, x, y):self.x = xself.y = ydef move_left(self):self.x -= 1def move_right(self):self.x += 1def move_down(self):self.y += 1def rotate(self):# to be implemented```接下来,我们将创建一个游戏区域的类。
游戏区域由一个二维数组表示,每个方块的状态都可以在其中更新。
```class GameBoard:def __init__(self, width, height):self.width = widthself.height = heightself.board = [[0] * width] * heightdef update(self, block):# to be implemented```在游戏区域的update方法中,我们需要将当前方块的状态更新到游戏区域中。
当方块堆满一行时,需要将该行删除并向下移动所有上方的方块。
接下来,我们将使用按键精灵来控制方块的移动和旋转。
首先,我们需要定义鼠标和键盘事件触发时的回调函数。
变量就是会变化的量。
就像一个小柜子,我们可以在柜子里装载不同的东西,而当我们需要找到这些东西的时候,只要记住柜子的名字就可以了。
使用变量的方法是:先定义(给柜子起名)、再赋值(将物品放进柜子)、最后使用(根据柜子名字找到放在其中的物品)。
使用Dim命令定义变量,例如:Dim str1 //定义变量str1Dim var1=22 //定义变量Var1,并且赋值为22例子1:使用变量设置输出文字的内容1、下面红色的是3行脚本,请把他复制到“源文件”当中Dim str1str1 = "你很聪明"SayString str12、Dim str1 就是定义变量,也就是说我们创建了一个小柜子,给他起名为str13、str1 = "你很聪明" 就是赋值,我们把"你很聪明"这几个字放到str1这个小柜子里4、SayString str1 表示我们输出str1这个变量的内容,也就是说把str1这个小柜子里的内容拿出来交给SayString 这个命令去使用。
5、如果你希望修改喊话的内容,只要修改str1这个小柜子里的内容就可以了。
例子2:变量的一些用法a=1把数字1放进柜子a中。
b="你猜对了吗?"把字符串你猜对了吗?放进柜子b中。
字符串必须用""包含。
dc=3.14159265把小数放进柜子dc中。
num1=1num1=33num2=55sum=num1+num2首先把33和55分别放入num1和num2中。
然后把他们取出来,做加法操作(加法是由CPU来处理的),把结果放在sum中。
结果sum等于88num1=1num1=33num1被给值为1,然后又给值为33。
此时,num1中存储是的33。
1就被覆盖掉了。
没有了:)sum=sum+1这句不等同于数学的加法,也是初学者不容易理解的地方。
我们只要想,把sum拿出来和1做加法,再放回sum中就可以了。
按键精灵网游脚本编写教程随着网络游戏的兴起,使用按键精灵编写脚本已成为很多玩家提高效率、优化游戏体验的必备工具。
本文将为大家介绍按键精灵网游脚本编写的基本原理和步骤。
首先,明确脚本编写的目的和需求。
比如,你想编写一个自动打怪脚本、自动采集资源脚本或者自动升级脚本等。
根据你的需求,确定脚本的功能和执行的具体步骤。
接下来,了解按键精灵的基本操作。
打开按键精灵软件,点击新建脚本并命名。
按键精灵分为录制模式和文本模式,录制模式可以用来记录你在游戏中的操作,而文本模式则需要手动编写脚本代码。
对于网游脚本编写来说,我们主要关注文本模式。
在文本模式下,你可以通过编写脚本代码来实现你的需求。
按键精灵采用VBScript语言编写脚本,语法类似于Visual Basic语言。
下面是一个简单的按键精灵脚本示例:```//定义循环次数loopCount = 10//循环执行操作For i = 1 to loopCount//模拟按下按键keybd_event(VK_A, 0, 0, 0)//延时1000毫秒Delay 1000//模拟松开按键keybd_event(VK_A, 0, KEYEVENTF_KEYUP, 0)//延时500毫秒Delay 500Next```上述示例中,我们定义了一个循环次数为10的循环,每次循环内模拟按下A键,延时1秒,松开A键,再延时0.5秒。
这样就实现了按下A键的动作。
可以根据需要,使用不同的语句和函数来编写脚本,实现不同的操作,比如鼠标点击、键盘输入、窗口切换等。
编写完脚本后,点击保存并执行按钮,就可以运行脚本了。
可以通过修改循环次数、延时时间和按键等,来调整脚本的执行效果。
最后,需要注意一些使用脚本的注意事项。
首先,要遵守游戏的规则和使用条款,不要使用脚本进行作弊或破坏游戏的公平性。
其次,要保持脚本的更新和适应性,游戏的版本更新可能导致脚本的失效或不适配。
最后,要合理使用脚本,不要过度依赖脚本,保持游戏的乐趣和体验。
按键精灵游戏脚本开发教程:自动逛地图打怪来源:按键学院【按键精灵】学院实战班目前在教授的是回合制游戏《神武》的脚本功能小编凑热闹,也跟着去玩了玩今天在这里和大家分享下,自动战斗功能的脚本编写流程~流程1、打开地图(快捷键Tab)2、随机点击地图上的坐标点3、如果遇到怪物则打怪(自动打怪快捷键Ctrl+A)技术难点:1、随机移动过程中,如何判断人物是否已经移动到了指定坐标点。
2、随机点击一组坐标的实用写法。
绑定游戏窗口今天我们要写的脚本有使用到大漠插件。
因为是多开脚本,所以查找句柄使用的是Search命令后台绑定模式:图色模式:dx3鼠标模式:dx键盘模式:dx关于Search命令的详细说明以及大漠绑定模式如何获知请参阅相关院刊:【院刊】-【201501期】沙盘后台绑定游戏打开地图《神武》游戏支持点击大地图进行移动的方式。
打开地图的快捷键为Tab键。
为了避免地图已经打开的情况我们要先判断地图有没有打开,没有打开的话才去按Tab键打开地图这里要注意一点那就是,地图没打开的情况下有两种情况1、没进入战斗画面2、进入了战斗画面所以,打开地图的判断步骤如下1、地图没打开——>在不在战斗画面?在战斗画面——>开始战斗不在战斗画面——>打开地图——>随机点击地图上的坐标点2、地图打开了——>人物在不在移动?在移动(说明还没到目的坐标)——> 不做任何操作不在移动(说明到了目的坐标或者遇到了阻碍物停止了移动)——> 点击下一个随机坐标本例子中,是通过找图方式来判断地图窗口是否出现小编找的是红框框里的图片蓝色框的区域里,经常会出现系统的横条提示信息,会遮挡住地图框影响找图,所以不取那个区域里的图片随机点击地图上的坐标点在QUI上画一个文本输入框输入框里的内容为要移动的坐标信息坐标与坐标之间用| 隔开随后在脚本中,我们读取文本输入框的内容读取之后用分割函数split依据 | 分隔符将其分割Split函数分割之后,会将分割的内容存放在数组里这里注意下通过第一次分割,假如数组(0) 存放的是:28,29dm.MoveTo 数组(0)这样写显然是错误的,会提示参数个数不对,那怎么办呢?不怕,我们有Execute函数Execute "dm.MoveTo " & 数组(0)这样写就可以执行了然后,我们前面说的要随机点只要将数组下标进行随机就可以了例如:Execute "dm.MoveTo " & 数组( Int(10* Rnd))关于Execute函数、随机函数的详细内容请参阅相关院刊【院刊】-【201410期】神奇的Execute语句【院刊】-【201411期】细说Rnd随机函数随机点完地图的坐标,就等着人物移动过去那怎么才能知道人物已经到了那个点了呢?这就要用到大漠的IsDisplayDead函数了当人物在移动的过程中,坐标肯定在不停的变化,当坐标一段时间不变则说明已经到了目的地,或者前方有障碍物过不去不管是到了目的地还是有障碍物过不去我们的处理方式都是点击下一个随机坐标点所以,我们使用IsDisplayDead 函数监视坐标的变化即可但是!在战斗画面里,坐标是一直不变的所以,利用 IsDisplayDead 函数监视坐标变化时,我们要先排除战斗画面,在战斗画面我们就不做监视操作。
按键精灵游戏开发教程
来源:按键学院【按键精灵】
渐开线找怪是一种高效率的找怪方法,以角色为中心点,向外扩散,找离角色最近的怪物。
渐开线
画渐开线重要的几个点:
1、起始点坐标
2、线与线之间的距离。
3、转向。
4、线长。
(上图中,渐开线并不是一口气画完的,是一段线一段线的画。
)
游戏里的规律
咱们今天讲的例子是2D游戏《神涂》。
渐开线要怎么应用到游戏找怪呢?
咱们先了解下游戏里的规律,再将渐开线套用进去。
规律1:
在2D游戏里,角色、怪物移动的距离是固定的,就像走在棋盘里一样,移动一步就像走了一个格子。
在今天的游戏例子中,角色、怪物横着走一步是48个像素点,竖着走一步是32个像素点。
(不是所有2D游戏都是这样的规格)
那么,如何知道一步的距离是多少呢?
我们可以获取角色血条的第一个像素点坐标,然后向上移动一步,再次获取血条第一个像素点坐标。
y坐标的差值,即是竖走一步的距离,用同样的方法,横走一步即可获得横走一步的距离
规律2:
离角色越近的怪物,格子的圈数越少。
经过图片的分析,情况一目了然。
以角色为中心,一圈圈往外扩散,不正是渐开线么。
渐开线找怪思路
1、以角色右边一格为渐开线起始点,一圈圈往外遍历格子。
(不一定要角色右边一格为起始点,上下左右都可以,不要以角色为起点即可。
因为咱们的角色血条也是红的,如果从角色那一格开始遍历,那么一开始就找到角色自己的血条。
)
2、遍历到第26个格子的时候发现怪物,角色移动过去打怪。
打完怪物之后,以当前角色所在位置的右边一格为起始点,再次开始渐开线找怪。
例如:渐开线是8圈,遍历了8圈格子,其中第三圈和第五圈都有怪物。
遍历到第三圈找到怪物,角色移动到怪物点打完怪。
剩下的五圈继续遍历扩散,但不判断有没有怪物。
为什么不判断呢?
因为,打完第一只怪物之后,角色的位置变化了,
我们不能肯定,第五圈的那只怪物和当前角色所在位置的距离是最近的。
步骤
1、我们已经知道,一个格子宽48像素,高32像素。
第一步,以角色右边一格为渐开线起始点,也就是说x坐标要加48个像素。
以角色为中心点,往上移动y坐标递减,往下移动y坐标递增。
往左移动x坐标递减,往右移动x坐标递增。
2、第1个格子到第二个格子,y坐标加32个像素。
现在问题来了,第2格到第3个要转弯,怎么转弯呢?
咱们上面提到过:
以角色为中心点,往上移动y坐标递减,往下移动y坐标递增。
往左移动x坐标递减,往右移动x坐标递增。
也就是说:如果我们想往上走一个格子,那么x坐标不变,y坐标减少32像素。
如果想往左走,那么y坐标不变,x坐标减少48像素,依此类推。
3、现在我们知道了转向的原理,那么走几格需要转向?要怎么控制?我们来看下图片分析:
结合代码进行理解:
步数= 1
For 16 //这里的数字越大,渐开线范围越大
For 2
//转向
For 步数
Next
Next
步数= 步数+ 1
Next
初始步数为1,
for 2 循环有循环两次。
第一次,角色转向进入for 步数循环往右走一格(上图中白色格子)。
第二次,角色转向进入for 步数循环往下走一格。
for 2循环执行完毕,步数加1
再次进入for 2 循环。
第一次,角色转向进入for 步数循环往左走两格(上图中嫩绿色格子)。
第二次,角色转向进入for 步数循环往上走两格。
for 2循环执行完毕,步数加1
再次进入for 2 循环。
依此类推。
整体代码
Call 随机打怪()
Function 随机打怪()
px = 497 - 9
py = 279 - 15
//497,279为角色血条的第一个像素点
'/* 渐开找怪
Do
坐标X = 0
坐标Y = 0
朝向=0 // [0=上、1=右、2=下、3=左]
步数= 1
有怪= false
For 16
For 2
朝向= 朝向+ 1
For 步数
Select Case Abs(朝向mod 4)
Case 0
坐标Y = 坐标Y - 1
Case 1
坐标X = 坐标X + 1
Case 2
坐标Y = 坐标Y + 1
Case 3
坐标X = 坐标X - 1
End Select
If 有怪= False Then
XY = Plugin.Color.FindMultiColor(px + (坐标x * 48), py + (坐标y * 32), px + ((坐标x + 1) * 48), py + ((坐标y + 1) * 32), "FF0000", "0|1|9C0000", 1)
ZB = InStr(XY, "|")
intX = Clng(Left(XY, ZB - 1)): intY = Clng(Right(XY, Len(XY) - ZB))
If IntX >= 0 Then
MoveTo IntX + 16, IntY + 46
LeftClick 1
有怪= TRUE
End If
End If
Next
Next
步数= 步数+ 1
Next
Delay 1000
// 判断是否要使用随机传送了
If 有怪= False Then
KeyPress "3",1
Delay 1000
End If
Loop
End Function
注意:
px = 497 - 9
py = 279 - 15
//497,279为角色血条的第一个像素点
为什么在这里要减9减15呢?
正常的思路应该是以角色血条左上角的第一个红色像素点作为格子的左上角,然后渐开找色,判断每个格子左上角的位置是不是红色的,是则说明有怪。
但是,在神涂中,怪物的身高不一样,会导致有的怪物它的血条可能不在格子左上角位置。
所以,这里获取到角色血条第一个像素点之后,x坐标减9,y坐标减15,把角色血条移动都了格子中间位置:
然后,使用区域多点找色,在格子范围内查找血条,这样高的怪物的血条就不会超出格子范围。