本帖最后由 Him8848 于 2023-3-28 09:42 编辑
罗技鼠标宏lua分享之速点(连点)的实现
[TOC]
PressMouseButton(n) 是模拟按下鼠标n键
ReleaseMouseButton(n) 是模拟松开鼠标n键
n 为1时是鼠标左键 3是鼠标右键
具体自己测试
举个例子
function OnEvent(event, arg)
if IsMouseButtonPressed(5) then
PressMouseButton(1)
ReleaseMouseButton(1)
end
end
当你侧键5被按压时将会点击一次鼠标左键
if语句
if 条件语句 then
--正确条件下的执行语句
else
--非正确条件下的执行语句 else和这里可以省略不写
end
只要if的条件语句正确,他就会执行正确条件下的代码
例如:
if IsMouseButtonPressed(1) then -- 这是鼠标左键被按下
--正确条件下的执行语句
OutputLogMessage('成功')
end
这里在按下鼠标左键将会输出 成功
输出在控制台里面查看
Is Mouse Button Pressed 直接翻译就是鼠标按键按下
后面括号的n是罗技对应的键位
这个语句只支持1-5
1是鼠标左键 2是鼠标中键 3是鼠标右键 4是侧键后退 5是侧键前进
event == "MOUSE_BUTTON_PRESSED" and arg == n 是一样的判断
支持全部鼠标键位 其中2是鼠标左键 3是鼠标中键
repeat.....until 语句
repeat.....until 类似于while
但是while是条件成立执行,这个是条件成立结束(不成立将一直执行)
repeat
-- 执行的循环语句
until 条件(这里一般是 not IsMouseButtonPressed(n) 既是鼠标按压松开)
只要判断条件成立将会结束语句
math.random(min, max) 和 sleep(x)
math.random(min, max)是取随机数值的函数
取的数值在(min, max)区间内
这个函数主要模拟每次按压的随机性
sleep(x)则是编程休眠一下,用作延迟使用
其中x是休眠的毫秒数 1000毫秒是1秒
最终演示例子
先将注释删掉再运行,避免出现bug
function OnEvent(event, arg)
if IsMouseButtonPressed(5) then -- 侧键5被按下时执行
repeat
PressMouseButton(1) -- 模拟鼠标左键按下
Sleep(math.random(20, 30)) -- 这里的延迟是表示按下的时候再抬起的那个间隔
ReleaseMouseButton(1) -- 模拟鼠标松开
Sleep(math.random(40, 60)) -- 这是第一次按压松开到第二次按压的间隔,一般比上面的间隔大
until not IsMouseButtonPressed(5) -- 直到松开侧键结束
end
end
这里当按下侧键5时持续按压鼠标左键
效果如图
|