Search code examples
lualogitechlogitech-gaming-software

Logitech Lua script


im trying to run this script on my logitech mouse. I want the mouse cursor to move down, it does but after a while of the cursor moving down the cursor reverses in direction.

Does anyone know why?

function X4()
local mult= 11
  if IsMouseButtonPressed(1)then 
    repeat 
        MoveMouseRelative(0*mult, 11*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 11*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 11*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 11*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 10*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 11*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 11*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 12*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 13*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 13*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 13*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 13*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 13*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 13*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 13*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 13*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 14*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 14*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 14*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 14*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 14*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 14*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 15*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 15*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 15*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 15*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 15*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 15*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 15*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 15*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
        MoveMouseRelative(0*mult, 16*mult)Sleep(10) if not IsMouseButtonPressed(1) then break end
    until not IsMouseButtonPressed(1) 
end
end

Solution

  • Your mouse move simulation should be in a reasonable limits.
    It's very unrealistic that a human can move mouse cursor faster than 100 pixels in 10 ms.

    MoveMouseRelative accepts only integers in the range -127..127
    In your case 16*mult = 16*11 = 176 > 127
    Values above 127 might be interpreted as negative values.