【问题标题】:Lua code Editing Fortnite issues with MoveMouseRelative使用 MoveMouseRelative 编辑 Fortnite 问题的 Lua 代码
【发布时间】:2021-12-13 12:37:57
【问题描述】:

MoveMouseRelative 移动得非常快,但我注意到当我让鼠标向上然后向右移动时,它通常会获得一个快捷方式。所以我在编辑时错过了一些方块。 因此,它似乎没有向上走,而是向右走。 我试图在移动鼠标或两次移动之间增加更多的睡眠时间。在第一种情况下,它移动得太慢,而在第二种情况下,它仍然走捷径。

这个代码是最好的(不太糟糕),我做了几个向上或向下移动,以便采用更小的快捷方式。但我确信可以通过更简单的代码(更少的行)和良好的编辑绘图来改进它。

请问如何解决?

----------------
    -- Boutton 8 edit en rond ou du haut vers le bas mur ou escalier - MB8 round edit or up and down stair and wall             
    ----------------
    -- CapsLock OFF
    -- Edit en rond - Round edit
    
      if not IsKeyLockOn("capslock")then
            if (event == "MOUSE_BUTTON_PRESSED" and arg == 8) then
    
                        PressAndReleaseKey("BackSpace")-- Edit
                        FastSleep(5)
                        PressAndReleaseKey("T")-- Reset Edit
    
                if not IsMouseButtonPressed(3) then
    
                        --Regarder - Look
                            for i = 0, 20 do
                            MoveMouseRelative (0,127) -- bas - down
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
    
                        -- Dessiner Edit - Draw Edit
                            PressKey(13)-- Select Edit
    
                            for i = 0, 5 do
                            MoveMouseRelative (0,-127) -- haut - up
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 5 do
                            MoveMouseRelative (0,-127) -- haut - up
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 4 do
                            MoveMouseRelative (0,-127) -- haut - up
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 4 do
                            MoveMouseRelative (0,-127) -- haut - up
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 5 do
                            MoveMouseRelative (127,0) -- droite - right
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 6 do
                            MoveMouseRelative (0,127) -- bas - down
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 6 do
                            MoveMouseRelative (0,127) -- bas - down
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 6 do
                            MoveMouseRelative (0,-127) -- haut - up
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 5 do
                            MoveMouseRelative (-127,0) -- gauche- left
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 5 do
                            MoveMouseRelative (-127,0) -- gauche - left
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 6 do
                            MoveMouseRelative (0,127) -- bas - down
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 6 do
                            MoveMouseRelative (0,-127) -- haut - up
                           FastSleep(0.5)
                            end
                           FastSleep(1)
    
                            for i = 0, 5 do
                            MoveMouseRelative (0,-127) -- haut - up
                           FastSleep(0.5)
                            end
                           FastSleep(5)
    
                            for i = 0, 5 do
                            MoveMouseRelative (127,0) -- droite- right
                           FastSleep(0.5)
                            end
                           FastSleep(5)
                end

(....)

 if event == "MOUSE_BUTTON_RELEASED" and arg == 8 then

                    FastSleep(1)
                    ReleaseKey(13)-- Select Edit
                    FastSleep(1)
                    PressAndReleaseKey("F1")
                    PressAndReleaseKey(7) -- Alterner les raccourcis - Switch Quickbar
                    end
    end
  end

【问题讨论】:

  • 游戏通常每帧更新其状态(包括用户输入),FPS 通常为 60。因此,每次更新需要 16 毫秒。这意味着 0.5 毫秒的睡眠在这里毫无意义。您应该在每个角落停留(不移动)16 毫秒,然后再改变移动方向以避免走捷径。
  • 我记得我已经尝试过两次快速睡眠 20 或 30 次。正如您在另一个问题中所说,超过 30 我使用睡眠。我会再试一次,只关注角落。但是我的帧是 144 赫兹,而我平均以 100 赫兹的速度转动。
  • @Egor 我试着专注于角落。似乎好一点,只是慢了一点。在创意模式(低 ping
  • 可能游戏的更新时间间隔取决于ping。
  • @Egor 是的,可能会解决问题。我找到了一种无需捷径即可使拐角移动的方法(请参阅我的答案)。我试图将它集成到我以前的代码中,但突然在我的测试中没有任何效果了。 Ghub 告诉我: [string "LuaVM"]:39: 尝试在你的 fastsleep 代码中对 nil 值(本地'ms')行号:1 => this 执行算术。我从原来的 = 相同的地方再次复制/粘贴它。任何想法 ? Getrunningtime 问题?

标签: lua logitech-gaming-software


【解决方案1】:

我试图找到一种方法来移动,例如快速向上和向右缓慢移动,然后缓慢向上和向右快速移动,以便向上倾斜 90° 然后向右。

我设法做到了,而且效果很好:

                n = 20
                s = 0.5
                p = 120
                q = 120
                
                for i = 1, n do
                MoveMouseRelative (p/(n-i+1),q/i) -- bas puis droite - down then right
                FastSleep(s)
                end
                
                for i = 1, n do
                MoveMouseRelative (p/i,-q/(n-i+1)) -- droite puis haut - right then up
                FastSleep(s)
                end         
                                        
                for i = 1, n do
                MoveMouseRelative (-p/(n-i+1),-q/i) -- haut puis gauche - up then left
                FastSleep(s)
                end
                
                for i = 1, n do
                MoveMouseRelative (-p/i,q/(n-i+1)) -- gauche puis bas - left then down
                FastSleep(s)
                end

这段代码随着你的鼠标移动绘制了一个圆角的正方形。

  • 将 n 更改为更高 = 圆角不那么圆,但变慢了

  • 将 n 改为 less = 在两种方式之间采取捷径

  • s 只更改 fastsleep 以查看绘图进展如何

  • p 和 q 应该小于 120 = 更改为 80 = 更小的正方形 只改变一个就变成一个矩形

  • 更改 n、p 和 q = 尚未尝试

【讨论】:

  • 当你在拐角处时,为什么不直接用Sleep(30) 停下来呢?我的意思是在这些循环之间插入睡眠。
  • 我已经尝试了 sleep(20) 并且我尝试了 sleep(30) => 它有点太慢了,但如果它可以正常工作就可以了。这是提高 fastsleep 延迟和添加 sleep(20) 或 30 的组合,效果更差。在 creatif 模式下(低 ping)它工作 9 倍于 10,但在游戏中它只有 6/10。我希望有解决方案来改善这一点。
  • 另一个问题是,在某些情况下,当我快速按下 MB8 进行编辑,按下 MB4 到 6 进行构建(按下并快速释放 MB8 然后 MB4to6)时,我的分辨率仍然停留在高 dpi,而我的代码可以解释这一点。看起来编辑代码中断了构建代码的执行,只让第一个宏被执行,而不是整个脚本(没有构建)!!!任何想法@Egor 因为你知道我的两个问题(代码)?
  • my resolution still stuck in high dpi and nothing in my code can explain this. - 您在问题中发布的代码与 DPI 无关。所以,我不明白你的问题。
  • 在开始时,我在一个问题中发布了我的整个代码,并被要求在每个问题中发布每段代码。您回答了我的另一个问题(在堡垒之夜中使用 lua 构建)并解决了我的问题。这个其他代码(在同一个 lua 脚本中)使用宏来提高和降低 dpi。但是当其他MB很快同时按下这个MB8时,我仍然停留在高分辨率dpi。就是这样。
猜你喜欢
  • 2021-12-12
  • 2021-11-25
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多