【问题标题】:Logitech LUA Script: MoveMouseRelative not working as expected罗技 LUA 脚本:MoveMouseRelative 未按预期工作
【发布时间】:2021-05-27 05:08:20
【问题描述】:

我正在尝试编写一个脚本,让我的角色在游戏中旋转 180 度,同时按住 lctrl 并单击鼠标右键。此脚本有效,但由于睡眠定时器,需要永远旋转:

EnablePrimaryMouseButtonEvents(true)
function OnEvent(event, arg)
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 2 and IsModifierPressed("lctrl")) then
        for i = 0, 96 do
            MoveMouseRelative (125,0)
            Sleep (1)
        end
    end
end

如果我将 MouseMoveRelative 增加到 125 以上,它就会开始向错误的方向移动鼠标。无论我使用什么值(我尝试了很多介于 100 和 12,000 之间的值),它总是将鼠标向左或向右移动很小的距离。

如果我消除睡眠功能,结果是不一致的。它通常使我的角色在 80-140 度之间旋转。我怀疑这是因为 MoveMouseRelative 从获取当前鼠标位置开始,它需要延迟才能获得准确的位置。

关于为什么 MouseMoveRelative 对于高于 125 的值不能正常工作的任何指导?或者有什么建议可以让鼠标在x轴上瞬间快速移动12000个相对单位?

【问题讨论】:

    标签: lua logitech logitech-gaming-software


    【解决方案1】:

    或任何关于如何快速移动鼠标 12,000 个相对单位的建议 瞬时在 x 轴上?

    如果你想瞬间移动相对12000,为什么要移动125的97步,延迟1ms?

    97*125 是 12125

    为什么不MoveMouseRelative(12125, 0)

    根据手册,MoveMouseRelative 需要“几毫秒”才能完成。 1毫秒不是几个。过早读取鼠标位置将为您提供起始位置。因此,我认为垃圾邮件涉及该位置的相对运动可能会导致问题。

    【讨论】:

    • 我确实在执行 125 的 96 步,延迟为 1ms,见上文。它有效,但它真的很慢。 MoveMouseRelative(12125,0) 似乎只将位置移动了几度。它没有按预期工作。
    • @user2238685 0-96 是 97 步。
    【解决方案2】:

    如果我将 MouseMoveRelative 增加到 125 以上,它会开始向错误的方向移动鼠标。

    允许的范围是-127...+127

    我怀疑这是因为 MoveMouseRelative 从获取当前鼠标位置开始

    没有。
    它不询问当前鼠标位置。
    它调用不带标志MOUSEEVENTF_ABSOLUTESendInput() 来模拟鼠标的相对移动。

    如何让鼠标在x轴上瞬间快速移动12000个相对单位?

    for i = 0, 96 do
        MoveMouseRelative (125,0)
    end
    

    如果我消除睡眠功能,结果是不一致的。它通常会在 80-140 度之间旋转我的角色。

    尝试more precise versionSleep()

    for i = 0, 96 do
        MoveMouseRelative (125,0)
        FastSleep(1)
    end
    

    【讨论】:

      猜你喜欢
      • 2015-10-24
      • 2021-08-14
      • 2021-04-12
      • 2021-08-13
      • 2016-09-07
      • 2020-11-02
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      相关资源
      最近更新 更多