Logitech G系鼠标脚本编程

利用罗技官方提供的API来写一个鼠标自动定位移动脚本

  点击脚本编辑器中的帮助选项,查看罗技官方提供的API说明,有很多实现好的鼠标功能

  

  G-series Lua API V8.45 Overview and Reference

  

   下面是我写的一个自动压枪代码。在csgo游戏中实现SG553,AUG两种步枪的自动压枪功能,以及通用武器自动压枪功能

   

  1 --全局变量区
  2     condition = false    --功能启用状态开关
  3     weapon = nil    --当前所用的武器
  4
  5 --武器弹道参数--------------------------------------------------------------------------
  6 --AUG步枪
  7 onWeaponAUG = function()
  8     local arr = {}
  9     local arrLength = 30
 10     local weaponDuration = 100
 11     local x ={}
 12     local y ={}
 13
 14     x[2]=0 y[2]=10
 15     x[3]=0 y[3]=10
 16     x[4]=0 y[4]=10
 17     x[5]=0 y[5]=20
 18     x[6]=0 y[6]=60
 19     x[7]=15 y[7]=60
 20     x[8]=15 y[8]=60
 21     x[9]=15 y[9]=60
 22     x[10]=20 y[10]=50
 23     x[11]=10 y[11]=0
 24     x[12]=0 y[12]=0
 25     x[13]=0 y[13]=0
 26     x[14]=0 y[14]=0
 27     x[15]=-30 y[15]=0
 28     x[16]=-50 y[16]=0
 29     x[17]=-50 y[17]=0
 30     x[18]=-30 y[18]=0
 31     x[19]=-30 y[19]=0
 32     x[20]=-30 y[20]=0
 33     x[21]=40 y[21]=0
 34     x[22]=40 y[22]=0
 35     x[23]=40 y[23]=0
 36     x[24]=40 y[24]=0
 37     x[25]=40 y[25]=0
 38     x[26]=40 y[26]=0
 39     x[27]=-10 y[27]=0
 40     x[28]=-10 y[28]=0
 41     x[29]=0 y[29]=0
 42     x[30]=0 y[30]=0
 43
 44     arr[0] = x
 45     arr[1] = y
 46     arr[2] = weaponDuration
 47     arr[3] = arrLength
 48     return arr
 49 end
 50 ----------------------------------------------------------------------------
 51 --SG553步枪
 52 onWeaponSG553 = function()
 53     local arr= {}
 54     local arrLength = 30
 55     local weaponDuration = 94
 56     local x ={}
 57     local y ={}
 58
 59     x[2]= -4 y[2]=10
 60     x[3]=-4 y[3]=20
 61     x[4]=-40 y[4]=50
 62     x[5]=-10 y[5]=50
 63     x[6]=-30 y[6]=90
 64     x[7]=-40 y[7]=70
 65     x[8]=-15 y[8]=70
 66     x[9]=-15 y[9]=70
 67     x[10]=-15 y[10]=50
 68     x[11]=-5 y[11]=40
 69     x[12]=-30 y[12]=30
 70     x[13]=-30 y[13]=20
 71     x[14]=0 y[14]=15
 72     x[15]=0 y[15]=15
 73     x[16]=0 y[16]=15
 74     x[17]=-20 y[17]=-20
 75     x[18]=-20 y[18]=-20
 76     x[19]=-30 y[19]=0
 77     x[20]=100 y[20]=-20
 78     x[21]=100 y[21]=-20
 79     x[22]=80 y[22]=-20
 80     x[23]=80 y[23]=-20
 81     x[24]=50 y[24]=20
 82     x[25]=30 y[25]=20
 83     x[26]=30 y[26]=20
 84     x[27]=30 y[27]=20
 85     x[28]=-30 y[28]=20
 86     x[29]=-50 y[29]=20
 87     x[30]=-80 y[30]=20
 88
 89     arr[0] = x
 90     arr[1] = y
 91     arr[2] = weaponDuration
 92     arr[3] = arrLength
 93     return arr
 94 end
 95 ----------------------------------------------------------------------------
 96 --通用武器
 97 onWeaponAll = function()
 98     local arr= {}
 99     local arrLength = 15
100     local weaponDuration = 100
101     local x ={}
102     local y ={}
103
104     x[2]=0 y[2]=15
105     x[3]=0 y[3]=15
106     x[4]=0 y[4]=15
107     x[5]=0 y[5]=15
108     x[6]=0 y[6]=20
109     x[7]=0 y[7]=25
110     x[8]=0 y[8]=25
111     x[9]=0 y[9]=25
112     x[10]=0 y[10]=25
113     x[11]=0 y[11]=25
114     x[12]=0 y[12]=25
115     x[13]=0 y[13]=25
116     x[14]=0 y[14]=25
117     x[15]=0 y[15]=25
118
119     arr[0] = x
120     arr[1] = y
121     arr[2] = weaponDuration
122     arr[3] = arrLength
123     return arr
124 end
125 ----------------------------------------------------------------------------
126 --入口函数
127 function OnEvent(event,arg)
128     --控制台格式化输出当前的按健
129     --OutputLogMessage("event = %s, arg = %d\n", event, arg)
130     activate(event,arg)
131     decide(event,arg)
132 end
133
134 ---------------------------------------------------------------------------
135 --激活鼠标按健报告函数
136 activate = function(event,arg)
137     if event == "PROFILE_ACTIVATED" then            --配置文件被激活
138         EnablePrmaryMouseButtonEvent(true)            --启用鼠标按健1的事件报告
139     elseif event == "PROFILE_DEACTIVATED" then    --配置文件没有被激活
140         EnablePrmaryMouseButtonEvent(false)        --禁用鼠标按健1的事件报告
141     end
142 end
143
144 ---------------------------------------------------------------------------
145 --功能判断函数
146 decide = function(event,arg)
147     if event == "MOUSE_BUTTON_PRESSEDS" and arg == 6 then    -- 按下6键  关闭压枪功能
148         ClearLog()
149         OutputLogMessage(">>>OFF\n")
150         condition = false
151         weapon = nil
152     elseif event == "MOUSE_BUTTON_PRESSEDS" and arg == 4 then    -- 按下4键  选择SG553步枪
153         ClearLog()
154         OutputLogMessage(">>>USING SG553")
155         condition = true
156         weapon = onWeaponSG553()
157     elseif event == "MOUSE_BUTTON_PRESSEDS" and arg == 5 then    -- 按下5键  选择aug步枪
158         ClearLog()
159         OutputLogMeesage(">>>USING AUG")
160         condition = true
161         weapon = onWeaponAUG()
162     elseif event == "MOUSE_BUTTON_PRESSEDS" and arg == 7 then    -- 按下5键  选择aug步枪
163         ClearLog()
164         OutputLogMessage(">>>USING All")
165         condition = true
166         weapon = onWeaponAll()
167     elseif event == "MOUSE_BUTTON_PRESSEDS" and arg == 1 and condition == true then --按住鼠标1键  自动开火并鼠标自动压枪
168         fire(weapon)
169     end
170 end
171
172 ---------------------------------------------------------------------------
173 --武器开火,执行功能函数
174 fire = function ( parametersArr )
175     local arr = parameterArr
176     local arrX = arr[0]
177     local arrY = arr[1]
178     local weaponDuration = arr[2]
179     local length = arr[3]
180
181
182     for x=2,length,1 do
183         for y=x,length,1 do
184             if moveMouse(arrX[x],arrY[y],weaponDuraion) == false then break end
185             break
186         end
187     end
188 end
189
190 ----------------------------------------------------------------------------
191 --鼠标自动移动函数
192 moveMouse = function(x,y,time)
193     if IsMouseButtonPresse(1) then
194         MoveMouseRelative(x,y)
195         Sleep(time)
196         return true
197     else
198         return false
199     end
200 end

关键功能函数说明,具体使用说明请参考官方说明文档

  MoveMouseRelative(x,y) 移动鼠标指针至当前屏幕中的目标绝对坐标位置  Sleep(time)  暂停脚本并等待所设置的时间后再继续执行       OnEvent() 方法为脚本提供了一系列事件句柄以方便用户对触发的事件进行操  OutputLogMessage()  在控制台输出指定内容  EnablePrmaryMouseButtonEvent() 开启鼠标1键的事件报告

代码功能

  以上代码按健的配置是基于罗技G502鼠标,其它

  按下鼠标6键关闭自动控制功能

  按下鼠标7 键开启指定武器鼠标控制

  按下鼠标5 键开启指定武器鼠标控制

  按下鼠标4 键开启指定武器鼠标控制

  按住鼠标1 键,检查自动控制功能是否开启,如果开启便调用指定函数执行

  使用鼠标脚本自动压枪在游戏中属于作弊行为,为了防止不良玩家将代码直接复制作弊使用,我将代码中的少量参数字母改错,复制后无法正常使用。仅供学习参考,请参考罗技官方API说明文档编写。以下是在CSGO游戏中的使用效果。

原文地址:https://www.cnblogs.com/Haidnor/p/11185173.html

时间: 2024-10-22 08:20:54

Logitech G系鼠标脚本编程的相关文章

Vbs 脚本编程简明教程之一

-为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件事情就是打开 WORD ,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某 些数据进行整理,把各式各样的数据按照某种规则排列起来--.这些事情重复.琐碎,使人容易疲劳. 第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

#7 shell脚本编程之正则表达式

多命令执行方法: 脚本组成: 1.shengbang 2.# 3.空白行--没有任何内容的行.只包含空白字符或制表符(TAB) 4.逻辑判断 shell脚本编程: 1.加执行权限,通过路径来调用脚本: 2.利用解释器直接执行: 本文处理工具: vim.vi.nano 文本处理三剑客: grep系: grep.egrep.fgrep,文本搜索工具,基础"pattern"对于给定的文本进行模糊搜索,grep系默认工作于贪婪模式下: sed:stream editor,流数据器,行编辑器,文

Linux命令:bash脚本编程

bash脚本编程简介: 此文假定你没有任何关于脚本或一般程序的编程知识, 但是如果你具备相关的知识, 那么你将很容易就能够达到中高级的水平. . . 你可以把此文作为参考, 自学手册, 或者是关于shell脚本技术的文档. 介绍内容包括: A:变量.变量类型 B:条件判断 C:算术运算 D: E: F: G: A.bash变量类型: 1)本地变量:(局部变量) set VARNAME=VALUE: 作用域为整个bash进程: 2)局部变量: local VARNAME=VALUE:作用域为当前代

Linux01-BASH脚本编程之信号捕捉及任务计划53

一.脚本编程知识点 1.获取变量中字符的长度:${#VARNAME} 2.变量赋值: a)${parameter:-word}:如果parameter为空或未定义,则变量展开为"word":否则,展开为parameter的值: 如:A=3 echo ${A:-30} unset A echo ${A:-30} b)${parameter:+word}:如果parameter为空或未定义,不做任何操作:否则,则展开为"word"值: 如:echo ${A:+30} A

shell脚本编程的选择分支结构

选择执行结构: if语句单分支结构:如果条件为真,则执行then后的命令,否则,不做任何操作: if CONDITION :then STATEMENT fi 或 if CONDITION ; then STATEMENT1 STATEMENT2 ... fi 注意:想要执行then后面的STATEMENTS,前提条件是CONDITION部分为真: if语句的双分支结构:如果条件为真,就执行then后面的命令:否则就执行else后面的命令: if CONDITION ; then STATEME

shell脚本编程之基础篇(二)

shell脚本编程之基础篇(二) ============================================================================== 概述: ============================================================================== 退出状态 ★进程使用退出状态来报告成功或失败 ◆0 代表成功,1-255代表失败 ◆$? 变量保存最近的命令退出状态 (查看:echo $?)

Linux 的shell脚本编程

shell脚本编程 程序:指令+数据 程序编辑风格:             过程式:以指令为中心,数据服务于指令             对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指令 编程语言: 低级:汇编语言 高级:编译:高级语言-->编译器-->目标代码 java,c#,c,c++ 解释:高级语言-->解释器-->机器代码 shell,per,python 编程逻辑处理方式:           顺序执行      

Shell脚本编程基础

什么是Shell 操作系统最外层的程序,shell通过提示符让用户输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来,管理用户与操作系统之间的交互. Shell是一个用户跟操作系统之间的一个命令解释器.Shell是用户与Linux操作系统之间沟通的桥梁.用户可以输入命令执行,又可以利用 Shell脚本编程去运行. 为什么要用到shell shell是一个交互式程序,当用户输入一条命令,shell就解释一条,一次只处理一条命令.如果我们一些复杂操作,逐个敲命令工作量就会增大,因此,我