使用Lua的Logitech G110键盘上延迟宏的定时器

时间:2013-01-17 21:15:16

标签: macros timer lua delay

所以我有了我的第一个支持宏的键盘(罗技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

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

1 个答案:

答案 0 :(得分:0)

所以这根本不起作用,因为LUA不能同时进行多项行动。它将逐行运行代码。如果按下按钮,脚本将等待N秒,然后运行宏。然而,在这N秒内,它对任何其他输入完全没有响应。如果按下更多按钮,它们将简单地排在另一个按钮之后。因此,如果你一个接一个地按下两个按钮,脚本将等待N秒,然后执行宏,然后等待N秒,然后执行宏。没有(简单)方法在LUA本身拥有你想要的东西,但是因为你使用Logitech游戏软件(我推测)你可能只想在lua之外的宏中添加一个暂停。这确实有效。