• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

luacsgo

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

利用罗技官方提供的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 = 150
 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 = 150
 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]=20
 63     x[6]=-30 y[6]=20
 64     x[7]=-40 y[7]=20
 65     x[8]=-15 y[8]=20
 66     x[9]=-15 y[9]=20
 67     x[10]=-15 y[10]=20
 68     x[11]=-5 y[11]=20
 69     x[12]=-30 y[12]=30
 70     x[13]=-30 y[13]=20
 71     x[14]=0 y[14]=50
 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]=50
 77     x[20]=0 y[20]=-20
 78     x[21]=0 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]=50
 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 = 150
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         EnablePrimaryMouseButtonEvents(true)            --启用鼠标按健1的事件报告
139     elseif event == "PROFILE_DEACTIVATED" then        --配置文件没有被激活
140         EnablePrimaryMouseButtonEvents(false)        --禁用鼠标按健1的事件报告    
141     end
142 end
143 
144 ---------------------------------------------------------------------------
145 --功能判断函数
146 decide = function(event,arg)
147     if event == "MOUSE_BUTTON_PRESSED" and arg == 6 then    -- 按下6键  关闭压枪功能
148         ClearLog()
149         OutputLogMessage(">>>OFF\n")    
150         condition = false
151         weapon = nil
152     elseif event == "MOUSE_BUTTON_PRESSED" and arg == 4 then    -- 按下4键  选择SG553步枪
153         ClearLog()
154         OutputLogMessage(">>>USING SG553")
155         condition = true
156         weapon = onWeaponSG553()
157     elseif event == "MOUSE_BUTTON_PRESSED" and arg == 5 then    -- 按下5键  选择aug步枪
158         ClearLog()
159         OutputLogMessage(">>>USING AUG")
160         condition = true
161         weapon = onWeaponAUG()
162     elseif event == "MOUSE_BUTTON_PRESSED" and arg == 7 then    -- 按下5键  选择aug步枪
163         ClearLog()
164         OutputLogMessage(">>>USING All")
165         condition = true
166         weapon = onWeaponAll()
167     elseif event == "MOUSE_BUTTON_PRESSED" 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 = parametersArr
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],weaponDuration) == false then break end
185             break 
186         end
187     end
188 end
189 
190 ----------------------------------------------------------------------------
191 --鼠标自动移动函数
192 moveMouse = function(x,y,time)
193     if IsMouseButtonPressed(1) then 
194         MoveMouseRelative(x,y)
195         Sleep(time)
196         return true
197     else 
198         return false
199     end
200 end

 

代码功能

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

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

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

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

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

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

 

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

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

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua游戏开发实践指南发布时间:2022-07-22
下一篇:
使用tolua++编译pkg,从而创建自定义类让Lua脚本使用发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap