#lua #logitech-gaming-software
#lua #logitech-программное обеспечение для игр
Вопрос:
logiteck api (http://www.wolfpack.pe.kr/attachment/1180489860.pdf ) пытаюсь создать скрипт мыши, который нажимает кнопку в течение определенного времени, а затем совершает поворот на 180 градусов в игре: Однако, не будучи уверенным в том, какой будет моя чувствительность мыши, я хочу, чтобы она адаптировалась к моей чувствительности мыши, поэтому:
- когда я нажимаю правую кнопку, чтобы начать поворот вправо, пока я не отпущу, он сохраняет количество повторений для этого хода в
i
переменной - он содержит эту переменную для второй функции, в которой программа сначала нажимает «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
функции, которая служит обработчиком событий и вызывается автоматически всякий раз, когда происходит событие.
Пожалуйста, прочитайте руководство еще раз. Примеров тому предостаточно.