使用Lua在Logitech G110键盘上设置延迟宏的定时器。

我得到了我的第一个宏功能键盘(罗技 G110),并希望将其用于游戏。然而,我的编程教育在 C 编程的一半结束了。 我正在寻找帮助,需要一个非常简单的脚本,用于设置延迟宏的定时器,即我按下一个按钮后,在 N 秒后它会播放一个宏。这是我的代码:

function OnEvent(event, arg)

    if(event == "G_PRESSED" and arg == 6) then
        Sleep(360000);
        PlayMacro("Dragon");
    end

    if(event == "G_PRESSED" and arg == 5) then
       Sleep(300000);
       PlayMacro("Buff");
    end

    if(event == "G_PRESSED" and arg == 12) then
       Sleep(420000);
       PlayMacro(Nashor);
    end

    if(event == "G_PRESSED" and arg == 10) then
       Sleep(300000);
       PlayMacro(FlashHeal);
    end

    if(event == "G_PRESSED" and arg == 4) then
       Sleep(210000);
       PlayMacro(IgniteExhaust);
    end

end

问题是它似乎不能按照所需的时间睡眠,并且似乎是在随机时间触发。如果我启动多个定时器,脚本会完全崩溃,并在我重新启动计算机之前随机触发。

点赞
用户6610517
用户6610517

所以这根本行不通,因为 LUA 无法同时进行多个动作。它将逐行运行代码。如果您按下按钮,脚本将等待 N 秒,然后运行宏。在这 N 秒内,它完全无法响应任何其他输入。如果您按下更多按钮,则它们将直接排队。因此,如果您在短时间内按下两个按钮,则脚本将等待 N 秒,然后执行宏,然后等待 N 秒,然后执行宏。没有 (容易的) 方法可以在 LUA 本身中实现您想要的内容,但由于您使用了罗技游戏软件 (我推测),您可能只需要在宏之外添加暂停即可。这是可行的。

2016-07-19 20:23:15