游戏变速之植物大战僵尸篇

社区服务
高级搜索
猴岛论坛辅助工具游戏变速之植物大战僵尸篇
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
0个回复

游戏变速之植物大战僵尸篇

楼层直达
mimi_rice

ZxID:55494225

等级: 上士
举报 只看楼主 使用道具 楼主   发表于: 2015-02-05 0

游戏变速植物大战僵尸
本文按键学院提供技术支持

按键学院交流群(1群已满):376122403
零基础学按键精灵群(2群):372671254




引用
植物大战僵尸这款游戏,想必大家都不陌生
讲述的是一场 植物与僵尸之间刻骨铭心的撕逼大战
是一款老少皆宜和善可爱的游戏……此处省略一万字……
但是,问题来了
等僵尸的过程也慢得太销魂了吧?

画面一点动感刺激感都木有,还怎么玩?~
和小编一样急性子的小伙伴们,一定忍受不住节奏如此缓慢的游戏,
怎么办呢?
凉拌炒鸡蛋!自己动手丰衣足食,咱们写个脚本让它快起来~









脚本界面效果图


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



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 属性设置为




整体代码


  1. //调试运行事件子程序
  2. //Sub OnScriptLoad()
  3. //    Form1.Show
  4. //End Sub
  5. Form1.Show
  6. EndScript
  7. //《》-------------界面加载事件
  8. Event Form1.Load
  9.     当前句柄 = 0
  10.     Call Form1.刷新.Click
  11. End Event
  12. //《》-------------还原变速
  13. Event Form1.恢复速度.Click
  14.     Form1.恢复速度.Visible = False
  15.     Form1.滑块.Left = 196
  16.     Form1.速度值.Caption = "0倍数"
  17.     Call Plugin.SysEx.Speed(当前句柄, 0)
  18.     Form1.Timer1.Enabled = False
  19.     Form1.Timer1.Enabled = True
  20. End Event
  21. Event Form1.Timer1.Timer
  22.     Form1.恢复速度.Visible = True
  23.     Form1.Timer1.Enabled = False
  24. End Event
  25. //《》-------------减速
  26. Event Form1.慢.Click
  27.     Form1.滑块.Left = Form1.滑块.Left - 1
  28.     If Form1.滑块.Left <= 16 Then Form1.滑块.Left = 16
  29.     Form1.速度值.Caption = Form1.滑块.Left - 196 & "倍数"
  30.     //设置指定窗口(Hwnd)加速到100倍
  31.     Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196)
  32. End Event
  33. //《》-------------加速
  34. Event Form1.快.Click
  35.     Form1.滑块.Left = Form1.滑块.Left + 1
  36.     If Form1.滑块.Left >= 296 Then Form1.滑块.Left = 296
  37.     Form1.速度值.Caption = Form1.滑块.Left - 196 & "倍数"
  38.     //设置指定窗口(Hwnd)加速到100倍
  39.     Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196)
  40. End Event
  41. //《》-------------滑块变速
  42. Event Form1.滑块.Click
  43.     GetCursorPos qx, qy
  44.     hx = Form1.滑块.Left
  45.     Form1.Timer2.Enabled = False
  46.     Form1.Timer2.Enabled = True
  47. End Event
  48. Event Form1.Timer2.Timer
  49.     GetCursorPos x, y
  50.     dx = x - qx
  51.     If hx + dx <= 16 Then
  52.         Form1.滑块.Left = 16
  53.     ElseIf hx + dx >=296 Then
  54.         Form1.滑块.Left = 296
  55.     Else
  56.         Form1.滑块.Left = hx + dx
  57.     End If
  58.     Form1.速度值.Caption = Form1.滑块.Left - 196 & "倍数"
  59.     //设置指定窗口(Hwnd)加速到100倍
  60.     Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196)
  61.     mouse = GetLastClick()
  62.     If mouse = 32770 Then
  63.         Form1.Timer2.Enabled = False
  64.     End If
  65. End Event
  66. //《》-------------刷新窗口标题
  67. Event Form1.刷新.Click
  68.     Call Form1.恢复速度.Click
  69.     Form1.窗口标题.List = "0-空|"
  70.     s = "0-空|"
  71.     当前句柄 = 0
  72.     Form1.Timer3.Enabled = False
  73.     Form1.Timer3.Enabled = true
  74. End Event
  75. Event Form1.Timer3.Timer
  76.     Do
  77.         Hwnd1 = Plugin.Window.FindEx(0, Hwnd1, 0, 0)
  78.         If Hwnd1 = 0 Then
  79.             Form1.Timer3.Enabled = False
  80.             Form1.窗口标题.List = s
  81.             Form1.窗口标题.ListIndex=0
  82.             Exit Do
  83.         Else
  84.             iState = Plugin.Window.GetWindowState(Hwnd1, 2)
  85.             If iState = True Then
  86.                 sText = Plugin.Window.GetText(Hwnd1)
  87.                 If sText <> "" Then s = s & Hwnd1 & "-" & sText & "|"
  88.             End If
  89.         End If
  90.     Loop
  91. End Event
  92. //《》-------------选择窗口标题
  93. Event Form1.窗口标题.SelectChange
  94.     Call Form1.恢复速度.Click
  95.     Dim 索引
  96.     索引 = Split(Form1.窗口标题.List,"|")
  97.     当前句柄 = split(索引(Form1.窗口标题.ListIndex), "-")(0)
  98.     Call Plugin.SysEx.Speed(当前句柄, Form1.滑块.Left - 196)
  99. End Event
  100. //《》-------------界面关闭后停止变速
  101. Event Form1.UnLoad
  102.     Call Form1.恢复速度.Click
  103. End Event
  
Q文件下载(脚本是在2014.02版下制作的,用02版显示界面效果更佳):变速精灵v1.0(仿).rar[点击下载](73 K) 下载次数:0 累计下载获得 DB 没有记录

2014.02版下载体验版【点击下载】
新版插件下载New插件




演示效果


  



注意:变速命令,并不是说对所有的网游都无效的,
           变速游戏会影响到游戏的这些地方:
            1、过场景时的速度快慢
          
         2、动作效果的快慢,比如:跳舞,花草舞动等
            3、技能释放速度可能会提高

温馨提示:现在的网游都比较敏感,99%的网游对变速都有检测,所以不建议在没安全措施的防护下进行尝试。










本文按键学院提供技术支持
【招生】主流回合制常见功能网络辅助教学——你懂得!


« 返回列表
发帖 回复