游戏变速之植物大战僵尸篇
零基础学按键精灵群(2群):372671254
脚本界面效果图
引用
今天的脚本例子是用按键精灵 仿写一个 《变速精灵》,是咱们的大姐大工程师01制作的。{:5_141:}界面十分骚气~~
『1』 下拉列表框用于显示当前电脑上运行的程序的窗口标题
『2』 刷新按钮用于重新获取当前电脑上运行的程序的窗口标题
『3』 "滑块"用于调整速度,往左是减速,往右是加速。(大尺度调整)
『4』 快和慢这两个蓝色的按钮,也是用于调整速度的,与滑块的区别在于: 滑块可以一次性拉动很大的范围,而按钮是精确调整的,每一次点击增/减一个单位的速度。
『5』 恢复"按钮",用于将速度归零。
变速命令引用
变速命令是官方新插件里的 SysEx系统插件增强版 下的命令:Speed
注意:速度的倍数,范围:-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
- End Event
- Event Form1.Timer2.Timer
- GetCursorPos x, y
- dx = x - qx
- If hx + dx <= 16 Then
- Form1.滑块.Left = 16
- ElseIf hx + dx >=296 Then
- Form1.滑块.Left = 296
- Else
- Form1.滑块.Left = hx + dx
- End If
- Form1.速度值.Caption = Form1.滑块.Left - 196 & "倍数"
- //设置指定窗口(Hwnd)加速到100倍
- Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196)
- mouse = GetLastClick()
- If mouse = 32770 Then
- Form1.Timer2.Enabled = False
- End If
- End Event
- //《》-------------刷新窗口标题
- Event Form1.刷新.Click
- Call Form1.恢复速度.Click
- Form1.窗口标题.List = "0-空|"
- s = "0-空|"
- 当前句柄 = 0
- Form1.Timer3.Enabled = False
- Form1.Timer3.Enabled = true
- End Event
- Event Form1.Timer3.Timer
- Do
- Hwnd1 = Plugin.Window.FindEx(0, Hwnd1, 0, 0)
- If Hwnd1 = 0 Then
- Form1.Timer3.Enabled = False
- Form1.窗口标题.List = s
- Form1.窗口标题.ListIndex=0
- Exit Do
- Else
- iState = Plugin.Window.GetWindowState(Hwnd1, 2)
- If iState = True Then
- sText = Plugin.Window.GetText(Hwnd1)
- If sText <> "" Then s = s & Hwnd1 & "-" & sText & "|"
- End If
- End If
- Loop
- End Event
- //《》-------------选择窗口标题
- Event Form1.窗口标题.SelectChange
- Call Form1.恢复速度.Click
- Dim 索引
- 索引 = Split(Form1.窗口标题.List,"|")
- 当前句柄 = split(索引(Form1.窗口标题.ListIndex), "-")(0)
- Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196)
- End Event
- //《》-------------界面关闭后停止变速
- Event Form1.UnLoad
- Call Form1.恢复速度.Click
- End Event
Q文件下载(脚本是在2014.02版下制作的,用02版显示界面效果更佳):变速精灵v1.0(仿).rar[点击下载](73 K) 下载次数:0 累计下载获得 DB 没有记录 刀【2014.02版下载】体验版【点击下载】 【新版插件下载】New插件 演示效果
注意:变速命令,并不是说对所有的网游都无效的,
变速游戏会影响到游戏的这些地方:
1、过场景时的速度快慢 2、动作效果的快慢,比如:跳舞,花草舞动等 3、技能释放速度可能会提高 温馨提示:现在的网游都比较敏感,99%的网游对变速都有检测,所以
不建议在没安全措施的防护下进行尝试。 本文由按键学院提供技术支持
【招生】主流回合制常见功能网络辅助教学——你懂得!