1、脚本制作教程:按键精灵加速游戏来源:按键学院 【按键精灵】植物大战僵尸这款游戏,想必大家都不陌生讲述的是一场 植物与僵尸之间刻骨铭心的撕逼大战是一款老少皆宜和善可爱的游戏 此处省略一万字但是,问题来了等僵尸的过程也慢得太销魂了吧?画面一点动感刺激感都木有,还怎么玩?和小编一样急性子的小伙伴们,一定忍受不住节奏如此缓慢的游戏,怎么办呢?凉拌炒鸡蛋!自己动手丰衣足食,咱们写个脚本让它快起来脚本界面效果图今天的脚本例子是用按键精灵 仿写一个 变速精灵,是咱们的大姐大工程师 01 制作的。界面十分骚气1下拉列表框用于显示当前电脑上运行的程序的窗口标题2刷新按钮用于重新获取当前电脑上运行的程序的窗口标题
2、3“滑块“用于调整速度,往左是减速,往右是加速。(大尺度调整)4快 和慢这两个蓝色的按钮,也是用于调整速度的,与滑块的区别在于:滑块可以一次性拉动很大的范围,而按钮是精确调整的,每一次点击增/减一个单位的速度。5 恢复“ 按钮 “,用于将速度归零。变速命令变速命令是官方新插件里的 SysEx 系统插件增强版 下的命令:Speed命令名称 Speed 变速命令功能 为指定窗口的运行速度设置加速或减速(对网游无效)命令参数 参数 1:窗口句柄参数 2:变速倍数返 回 值 无注意:速度的倍数,范围:-256256,保留小数点后 3 位,可以实现 1.001、1.002 倍速度。 获取窗口句柄当我们点
3、击刷新按钮的时候,则获取当前运行中的所有程序的窗口句柄,并且将窗口的标题名添加到下拉列表框中。我们用 FindEx 查找窗口句柄 命令遍历获取桌面下的第一级子窗口句柄(桌面句柄:0)但是,我们看到,这些窗口中有许多窗口是我们看不见的,甚至都不知道它是做什么用的。那我们就没有必要获取它了,只要获取到可见的程序窗口句柄即可。在遍历获取窗口句柄的过程中,加一个判断,利用 GetWindowState 获取窗口状态命令,判断当前窗口的状态,是否为可见的,如果是可见的窗口,则记录下该窗口的窗口句柄和窗口标题。滑块拖动为了让界面更加的赏心悦目,所以滑块实际上是一张图片并不是真正的滑块按钮我们要实现,拖动滑
4、块图片,往左右移动的时候,滑块图片会跟随着鼠标移动。步骤:1当我们 点住滑块这张图片时,获取当前鼠标位置。2启动计时器,计时器的时间间隔设置为 50 毫秒。3在计时器的 Timer 事件里再次获取当前鼠标位置,对比两次获取鼠标位置之间横坐标的差值。4将滑块图片的横坐标 加上 两次鼠标位置之间的横坐标差值。5检测鼠标左键是否弹起,如果弹起则将计时器的 Enabled 属性设置为假。整体代码/调试运行事件子程序/Sub OnScriptLoad()/ Form1.Show /End SubForm1.Show EndScript/-界面加载事件Event Form1.Load当前句柄 = 0Cal
5、l Form1.刷新.ClickEnd Event/-还原变速Event Form1.恢复速度.ClickForm1.恢复速度.Visible = FalseForm1.滑块.Left = 196Form1.速度值.Caption = “0 倍数“Call Plugin.SysEx.Speed(当前句柄, 0)Form1.Timer1.Enabled = FalseForm1.Timer1.Enabled = TrueEnd EventEvent Form1.Timer1.TimerForm1.恢复速度.Visible = TrueForm1.Timer1.Enabled = FalseEnd
6、 Event/-减速Event Form1.慢.ClickForm1.滑块.Left = Form1.滑块.Left - 1If Form1.滑块.Left = 296 Then Form1.滑块.Left = 296 Form1.速度值.Caption = Form1.滑块.Left - 196 & “倍数“/设置指定窗口(Hwnd)加速到 100 倍Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196)End Event/-滑块变速Event Form1.滑块.ClickGetCursorPos qx, qyhx = Form1.滑块.Left
7、Form1.Timer2.Enabled = FalseForm1.Timer2.Enabled = TrueEnd EventEvent Form1.Timer2.TimerGetCursorPos x, ydx = x - qxIf hx + dx =296 ThenForm1.滑块.Left = 296ElseForm1.滑块.Left = hx + dxEnd IfForm1.速度值.Caption = Form1.滑块.Left - 196 & “倍数“/设置指定窗口(Hwnd)加速到 100 倍Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left
8、- 196)mouse = GetLastClick()If mouse = 32770 ThenForm1.Timer2.Enabled = FalseEnd IfEnd Event/-刷新窗口标题Event Form1.刷新.ClickCall Form1.恢复速度.ClickForm1.窗口标题.List = “0-空|“s = “0-空|“当前句柄 = 0Form1.Timer3.Enabled = FalseForm1.Timer3.Enabled = trueEnd EventEvent Form1.Timer3.TimerDoHwnd1 = Plugin.Window.FindE
9、x(0, Hwnd1, 0, 0)If Hwnd1 = 0 Then Form1.Timer3.Enabled = FalseForm1.窗口标题.List = sForm1.窗口标题.ListIndex=0Exit DoElseiState = Plugin.Window.GetWindowState(Hwnd1, 2)If iState = True ThensText = Plugin.Window.GetText(Hwnd1)If sText “ Then s = s & Hwnd1 & “-“ & sText & “|“End IfEnd IfLoopEnd Event/-选择窗口标
10、题Event Form1.窗口标题.SelectChangeCall Form1.恢复速度.ClickDim 索引索引 = Split(Form1.窗口标题.List,“|“)当前句柄 = split(索引(Form1.窗口标题.ListIndex), “-“)(0)Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196)End Event/-界面关闭后停止变速Event Form1.UnLoadCall Form1.恢复速度.ClickEnd Event注意:变速命令,并不是说对所有的网游都无效的,变速游戏会影响到游戏的这些地方:1、过场景时的速度快慢 2、动作效果的快慢,比如:跳舞,花草舞动等3、技能释放速度可能会提高温馨提示:现在的网游都比较敏感,99%的网游对变速都有检测,所以不建议在没安全措施的防护下进行尝试。