吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11549|回复: 46
上一主题 下一主题
收起左侧

[其他原创] 罗技鼠标宏lua分享之压枪的实现

   关闭 [复制链接]
跳转到指定楼层
楼主
Him8848 发表于 2023-3-26 20:33 回帖奖励

罗技鼠标压枪代码

本节重点代码:MoveMouseRelative(X, Y)

其中X、Y是表示直角坐标轴

当X等于0时,鼠标水平不移动,当X为正数则向右移动,为负数则向左移动

当Y等于0时,鼠标垂直不移动,当Y为正数则向下移动,为负数则向上移动

基于这个我们可以实现将弹道移动的方向调整过来

首先先在GHub里面创建一个新脚本如下:

function OnEvent(event, arg)
    --OutputLogMessage("Event: "..event.." Arg: "..arg.."\n")
end

在此之前,我们先来学习一下判断语句 if 这是所有语言都是很重要的语句

它的形式是这样的:

if 条件语句 then
 --正确条件下的执行语句
else
 --非正确条件下的执行语句
end

条件语句为真,即true

将脚本加一点判断实现代码一部分展示

function OnEvent(event, arg)
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
        MoveMouseRelative(0, 30)
    end
end

if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then 是表示当鼠标左键被按压时发生的事情

基于这个操作,我们将这些代码重复执行几遍就能实现压枪操作,所以我们把代码写进循环里面

在此之前,我们先了解一下数组(一维数组)

数组是对象的有序排列,可以是包含行集合的一维数组,也可以是包含多行多列的多维数组。

在 Lua 中,数组是使用带有整数的索引表来实现的。 数组的大小不是固定的,它可以根据我们的要求增长,受内存限制。

举个例子:

a = {1, 2, 3, 4, 5}
OutputLogMessage(a[1])

接着再了解一下循环

i = 0
while i<5 do
        OutputLogMessage(i)
    i = i + 1
end

其中循环内容是这样的,第一次循环:

i=0,i=i+1,当前的 i=i+1=0+1=1

第二次:由于上面的原因,现在 i=1,i=i+1=1+1=2

......

一直到 i=5 ,这时 while i<5 doi<5 的条件不成立就会结束此处代码

不知道为什么,注释太多运行不了,所以记得删注释

yq = 3 -- 这是压枪开关对应的侧键
down = {5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3} --向下压枪 这里有20个数值
--想往下压幅度大一点一点就改大这里面的数值,或者在后面添加数值 改小反之
ZY = {-3, -3, -3, -3, -4, -4, -4, -4, -4, -4, 5, 5, 5, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3} --向左右压枪

yaqiang = false --压枪开关判断

function OnEvent(event, arg)
    if event == "MOUSE_BUTTON_PRESSED" and arg == yq then
        --上面判断语句是鼠标被按压且按压的键是yq,yq也就是3
        yaqiang = not yaqiang --这里 false = not false 即变成true 当再次按下就再次变成 false 实现开关功能
    end
    if yaqiang then
        i = 1 --从第一个数开始
        z = 1
        if event == "MOUSE_BUTTON_PRESSED" and arg == 1 then
            Sleep(math.random(105, 115))
            while (IsMouseButtonPressed(1)) do --当鼠标左键被按压时执行的循环

                MoveMouseRelative(0, down[i]) --向下移动20个数值
                i = i + 1 --执行完这个下压,当大于的时候将会是nil将不会再移动,当i大于20就会是nil
                if i>20 then -- i>20 表示向下压完成了
                    MoveMouseRelative(ZY[z], 0)
                    z = z + 1
                end
                Sleep(math.random(25, 35)) --下压延时

            end
        end
    end
end

想调整就改down和ZY里面的内容,增加数值或者改大改小里面的数值


[url=]这里是删注释的代码lua.zip[/url]

lua.zip

453 Bytes, 下载次数: 919, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 14吾爱币 +14 热心值 +12 收起 理由
Tolix + 1 + 1 谢谢@Thanks!
绝境守护者 + 1 + 1 我很赞同!
MAOSKE + 1 + 1 谢谢@Thanks!
小熊孩 + 1 + 1 我很赞同!
dahe3211 + 1 + 1 谢谢@Thanks!
czq378729369 + 1 + 1 支持一下!
junjia215 + 1 + 1 谢谢@Thanks!
头铁又刚 + 1 我很赞同!
echoaku + 1 + 1 谢谢@Thanks!
lainbojc + 1 + 1 谢谢@Thanks!
zhubing0622 + 1 谢谢@Thanks!
angxi6 + 1 + 1 我很赞同!
yimei + 1 + 1 我很赞同!
netspirit + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
大黑屋 发表于 2023-3-26 21:01
可以  下载去试试PUBG
推荐
silverKirsi 发表于 2023-3-29 12:08
奇怪,不知道为什么我这里就是运行不了,提示了Script Loaded(脚本加载)后按什么按键都没有反应(也修改过yq = 3(改成4、5、6、7、8、9都没反应)),删掉注释也不行,下面的按键运行框里也没有按键运行信息弹出,而用另一个压枪的脚本又可以,按键运行框里会出现使用按键的信息。
还用了chatGPT分析解决都不行,就很奇怪不知道问题出在哪了,还是我都没激活过这个脚本?是按鼠标中键激活的吗?
有没有大佬说一下。

以下是分析后的代码:
-- 压枪参数设置
local yq = 3 -- 压枪开关对应的侧键
local down = {5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3} -- 向下压枪,这里有20个数值
-- 想往下压幅度大一点一点就改大这里面的数值,或者在后面添加数值,改小反之
local zy = {-3, -3, -3, -3, -4, -4, -4, -4, -4, -4, 5, 5, 5, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3} -- 向左右压枪

-- 压枪开关判断
local yaqiang = false

-- 按键事件处理函数
function OnEvent(event, arg)
    if event == "MOUSE_BUTTON_PRESSED" and arg == yq then
        yaqiang = not yaqiang -- 切换压枪开关状态
    end
   
    if yaqiang and event == "MOUSE_BUTTON_PRESSED" and arg == 1 then
        local i, z = 1, 1 -- 下压和左右压枪的数组下标
        Sleep(math.random(105, 115)) -- 初始延时,防止误触发
        while IsMouseButtonPressed(1) do -- 当鼠标左键被按压时执行的循环
            MoveMouseRelative(0, down[i]) -- 向下移动
            i = i + 1 -- 移动到下一个数值
            if i > #down then -- 下压完成后开始左右压枪
                MoveMouseRelative(zy[z], 0) -- 向左右移动
                z = z + 1 -- 移动到下一个数值
            end
            Sleep(math.random(25, 35)) -- 下压延时
        end
    end
end
3#
ddfboy 发表于 2023-3-26 20:53
4#
Z65156811 发表于 2023-3-26 21:11
哪个游戏可以直接用
5#
 楼主| Him8848 发表于 2023-3-26 22:01 |楼主
jiaozidev 发表于 2023-3-26 21:10
研究了下这个语言,在一些端游自动释放技能不太好用。

遇到问题就解决问题
6#
 楼主| Him8848 发表于 2023-3-26 22:02 |楼主
Z65156811 发表于 2023-3-26 21:11
哪个游戏可以直接用

FPS游戏都可以用,但是要自己调整数据
7#
angxi6 发表于 2023-3-26 22:41
通俗易懂,简洁明了!
8#
baijiu520 发表于 2023-3-26 22:56
感谢分享
9#
wangL0 发表于 2023-3-26 23:51
收藏收藏
10#
netpeng 发表于 2023-3-26 23:54
试用看看,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 18:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表