Macros 带有Lua的Logitech G110键盘上的延迟宏计时器

Macros 带有Lua的Logitech G110键盘上的延迟宏计时器,macros,timer,lua,delay,Macros,Timer,Lua,Delay,因此,我有了我的第一个宏功能键盘(罗技G110),并希望利用它为我的游戏。然而,我的编程教育在C编程的中途结束了。 我正在寻找一个非常简单的脚本的帮助,该脚本为一个延迟的宏设置一个计时器,即,我按下一个按钮,N秒后它播放一个宏。以下是我得到的: function OnEvent(event, arg) if(event == "G_PRESSED" and arg == 6) then Sleep(360000); PlayMacro("Dragon")

因此,我有了我的第一个宏功能键盘(罗技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

问题是,它似乎没有在所需的时间内睡眠,而且似乎是随机发射的。如果我启动多个计时器,脚本将完全崩溃并随机触发,直到我重新启动计算机。

因此这根本不起作用,因为LUA不能同时执行多个操作。它将逐行运行代码。如果按下按钮,脚本将等待N秒,然后运行宏。然而,在这N秒内,它对任何其他输入都完全没有响应。如果你按下更多的按钮,它们就会排成一个接一个的队列。因此,如果您在紧接着按下两个按钮,脚本将等待N秒,然后执行宏,然后等待N秒,然后执行宏。没有(简单的)方法可以在LUA中获得您想要的内容,但是由于您使用Logitech游戏软件(我猜),您可能只想在LUA之外的宏中添加一个暂停。这确实有效。

我想知道它是否可以支持多个计时器,或者是针对如此大的延迟而设计的,文档中是否提供了最大等待的详细信息?睡眠是键盘的自定义功能,而不是标准的lua功能,因此您可能还想在专家论坛上提问,因为那里有一些帖子建议睡眠功能的准确性存在问题。不幸的是,Lalarm一次只允许一个计时器,我需要能够有几个计时器。很遗憾,我不能理解别人的指示,但我想我应该试着自学。很抱歉,我可以建议找一个C应用程序来监视G键被按下,然后启动定时器功能。我唯一不确定的是,他们提到“应用程序必须有焦点才能进行轮询。”这可能意味着,如果您的单独应用程序在全屏游戏之外运行,它可能不会运行。我还没有编写任何代码,但稍后将使用C#进行研究。