Макрос мыши с синхронизацией Lua (logiteck api)

#lua #logitech-gaming-software

#lua #logitech-программное обеспечение для игр

Вопрос:

logiteck api (http://www.wolfpack.pe.kr/attachment/1180489860.pdf ) пытаюсь создать скрипт мыши, который нажимает кнопку в течение определенного времени, а затем совершает поворот на 180 градусов в игре: Однако, не будучи уверенным в том, какой будет моя чувствительность мыши, я хочу, чтобы она адаптировалась к моей чувствительности мыши, поэтому:

  1. когда я нажимаю правую кнопку, чтобы начать поворот вправо, пока я не отпущу, он сохраняет количество повторений для этого хода в i переменной
  2. он содержит эту переменную для второй функции, в которой программа сначала нажимает «w», чтобы я переместился (неважно), а затем имеет небольшую задержку (небольшой цикл for). Мой игрок проходит эту задержку, а затем i переменная используется для имитации того точного хода, который я сделал раньше
 EnablePrimaryMouseButtonEvents(true);

function OnEvent(event, arg)
if IsMouseButtonPressed(3)then
i=1
                repeat
i=i  1
                    MoveMouseRelative(3,0)
                    Sleep(5)
                until not IsMouseButtonPressed(3)
                  end

end

function oniEvent(event, arg)
if IsKeyLockOn("numlock" )then
PressKey( "w" );

repeat
u=0
j=1

for k=1,999,1 do j=j/2 
////delay////
 end 

repeat
u=u   1 
                    MoveMouseRelative(3,0)
                    Sleep(5)
                until  u==i




until  not IsKeyLockOn("numlock" )
ReleaseKey( "w" );


end
end
 

Проблема: когда я нажимаюnumlock, он даже начинает нажимать «w»

Ответ №1:

Похоже, это недоразумение.

Определение функции не делает ничего, кроме определения этой функции. Код в его теле выполняется только при вызове функции.

Поскольку вы только определяете oniEvent , но никогда не вызываете его, ваш код делает то, что и следовало ожидать: ничего.

Если вы хотите реагировать на ввод с помощью мыши или клавиши, вы должны реализовать это в OnEvent функции, которая служит обработчиком событий и вызывается автоматически всякий раз, когда происходит событие.

Пожалуйста, прочитайте руководство еще раз. Примеров тому предостаточно.