脚本制作教程:按键精灵加速游戏

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

脚本制作教程:按键精灵加速游戏

来源:按键学院【按键精灵】

植物大战僵尸这款游戏,想必大家都不陌生

讲述的是一场植物与僵尸之间刻骨铭心的撕逼大战

是一款老少皆宜和善可爱的游戏……此处省略一万字……

但是,问题来了

等僵尸的过程也慢得太销魂了吧?

画面一点动感刺激感都木有,还怎么玩?~

和小编一样急性子的小伙伴们,一定忍受不住节奏如此缓慢的游戏,

怎么办呢?

凉拌炒鸡蛋!自己动手丰衣足食,咱们写个脚本让它快起来~

脚本界面效果图

今天的脚本例子是用按键精灵仿写一个《变速精灵》,是咱们的大姐大工程师01制作的。界面十分骚气~~

『1』下拉列表框用于显示当前电脑上运行的程序的窗口标题

『2』刷新按钮用于重新获取当前电脑上运行的程序的窗口标题

『3』"滑块"用于调整速度,往左是减速,往右是加速。(大尺度调整)

『4』快和慢这两个蓝色的按钮,也是用于调整速度的,与滑块的区别在于:滑块可以一次性拉动很大的范围,而按钮是精确调整的,每一次点击增/减一个单位的速度。

『5』恢复"按钮",用于将速度归零。

变速命令

变速命令是官方新插件里的 SysEx系统插件增强版下的命令:Speed

命令名称Speed 变速

命令功能为指定窗口的运行速度设置加速或减速(对网游无效)

命令参数参数1:窗口句柄参数2:变速倍数

返回值无

注意:速度的倍数,范围:-256~256,保留小数点后3位,可以实现1.001、1.002倍速度。

获取窗口句柄

当我们点击刷新按钮的时候,则获取当前运行中的所有程序的窗口句柄,并且将窗口的标题名添加到下拉列表框中。

我们用FindEx查找窗口句柄命令遍历获取桌面下的第一级子窗口句柄(桌面句柄:0)但是,我们看到,这些窗口中有许多窗口是我们看不见的,甚至都不知道它是做什么用的。那我们就没有必要获取它了,只要获取到可见的程序窗口句柄即可。

在遍历获取窗口句柄的过程中,加一个判断,

利用GetWindowState 获取窗口状态命令,判断当前窗口的状态,是否为可见的,如果是可见的窗口,则记录下该窗口的窗口句柄和窗口标题。

滑块拖动

为了让界面更加的赏心悦目,所以滑块实际上是一张图片并不是真正的滑块按钮

我们要实现,拖动滑块图片,往左右移动的时候,滑块图片会跟随着鼠标移动。

步骤:

『1』当我们点住滑块这张图片时,获取当前鼠标位置。

『2』启动计时器,计时器的时间间隔设置为50毫秒。

『3』在计时器的Timer 事件里再次获取当前鼠标位置,对比两次获取鼠标位置之间横坐标的差值。

『4』将滑块图片的横坐标加上两次鼠标位置之间的横坐标差值。

『5』检测鼠标左键是否弹起,如果弹起则将计时器的Enabled 属性

设置为假。

整体代码

//调试运行事件子程序

//Sub OnScriptLoad()

// Form1.Show

//End Sub

Form1.Show

EndScript

//《》-------------界面加载事件

Event Form1.Load

当前句柄= 0

Call Form1.刷新.Click

End Event

//《》-------------还原变速

Event Form1.恢复速度.Click

Form1.恢复速度.Visible = False

Form1.滑块.Left = 196

Form1.速度值.Caption = "0倍数"

Call Plugin.SysEx.Speed(当前句柄, 0)

Form1.Timer1.Enabled = False

Form1.Timer1.Enabled = True

End Event

Event Form1.Timer1.Timer

Form1.恢复速度.Visible = True

Form1.Timer1.Enabled = False

End Event

//《》-------------减速

Event Form1.慢.Click

Form1.滑块.Left = Form1.滑块.Left - 1

If Form1.滑块.Left <= 16 Then Form1.滑块.Left = 16

Form1.速度值.Caption = Form1.滑块.Left - 196 & "倍数"

//设置指定窗口(Hwnd)加速到100倍

Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196) End Event

//《》-------------加速

Event Form1.快.Click

Form1.滑块.Left = Form1.滑块.Left + 1

If 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.滑块.Click

GetCursorPos qx, qy

hx = Form1.滑块.Left

Form1.Timer2.Enabled = False

Form1.Timer2.Enabled = True

相关文档
最新文档