如何让这个罗技鼠标 LUA 脚本更好地工作?



我想在 LUA 中为罗技鼠标制作一个简单的宏。 我完全是新手,我只是从几个来源将几行粘贴在一起。

EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
if IsKeyLockOn("numlock") then
if IsMouseButtonPressed(3) then
repeat
if IsMouseButtonPressed(1) then
repeat
PressKey("P")
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
until not IsMouseButtonPressed(3)
elseif not IsMouseButtonPressed(3) then
repeat
if IsMouseButtonPressed(1) then
repeat
PressKey("P")
MoveMouseRelative(0, 15)
Sleep(30)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(130)
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
until IsMouseButtonPressed(3)
end
end
end

首先,它看起来像一团糟,但有点工作,对不起,我完全是新手。 现在我遇到的问题是;

  1. 我使用 numlock 来启用或禁用整个事情,因为我无法弄清楚如何使用单个 MouseButtonKey 打开和关闭它,它要么永远播放,要么我破坏了整个事情。 这没关系,如果不是因为一个奇怪的错误,在我关闭数字锁后,由于某种原因我必须按鼠标按钮 2 才能将其关闭。

  2. 以为我想要实现的目标非常简单, 我想有 4 个功能;

Function 1 MoveMouseRelative repeated every ()ms
Function 2 MoveMouseRelative repeated every ()ms
Function 3 PressKey("P") repeated every ()ms
Function 4 PressKey("P") repeated every ()ms

并结合它 如果我按 MouseButtonPressed(1(,它会执行功能 1+3,因此它同时单击 P 并向下拖动鼠标,但具有不同的 sleep(( 间隔,这将在单独的函数中说明 否则,如果我按下鼠标按钮按下(3((右键单击(+ 鼠标按钮按下(1(,它将执行 2+4 功能,并且会在按住时重复,如果我释放按钮,则会停止重复。

这可能吗?我被卷入了这段代码,无法停止思考上周如何修复,但是没有受过教育,只是猜测事情会如何发展,我遇到了我无法突破的墙。

非常感谢您的任何帮助。

EnablePrimaryMouseButtonEvents(true)
local sequence_LMB     = {{x=0,y=15, t=30}, {x=0,y=12, t=10}, {x=0,y=12, t=10}, {x=0,y=12, t=10}, {x=0,y=12, t=130}}
local sequence_LMB_RMB = {{x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}}
function OnEvent(event, arg)
if event == "MOUSE_BUTTON_PRESSED" and arg == 1 and IsKeyLockOn("numlock") then
repeat
PressKey("P")
local sequence = IsMouseButtonPressed(3) and sequence_LMB_RMB or sequence_LMB
for i, step in ipairs(sequence) do
MoveMouseRelative(step.x, step.y)
Sleep(step.t)
end
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
end

最新更新