У меня есть этот Lua, и в мае он работал нормально, затем вчера я вернулся, чтобы протестировать его после нескольких месяцев бездействия, и теперь ничего, изменилось ли что-нибудь в Ghub/Lua?
Это сценарий:
function OnEvent(event, arg)
OutputLogMessage("event = %s, arg = %d\n", event, arg)
if (event == "PROFILE_ACTIVATED") then
EnablePrimaryMouseButtonEvents(true)
elseif event == "PROFILE_DEACTIVATED" then
ReleaseMouseButton(2) -- to prevent it from being stuck on
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == 7) then
recoil = not recoil
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == 1 and recoil) then
if recoil then
repeat
Sleep(18)
MoveMouseRelative(0,2)
until not IsMouseButtonPressed(1)
end
end
end
Я пробовал переустанавливать Logitech Ghub несколько раз, включая перезагрузки, ничего не изменилось.
РЕДАКТИРОВАТЬ Я добавил это в начало моего сценария, и, похоже, это помогло.
EnablePrimaryMouseButtonEvents(true);





В текущей версии GHub событие PROFILE_ACTIVATED имеет второй параметр arg=nil (в предыдущих версиях arg было 0), поэтому необходимо заменить
OutputLogMessage("event = %s, arg = %d\n", event, arg)
либо с
OutputLogMessage("event = %s, arg = %s\n", event, tostring(arg))
или
OutputLogMessage("event = %s, arg = %d\n", event, arg or 0)
Без такой модификации все ваши сценарии GHub теперь не смогут обрабатывать события PROFILE_ACTIVATED и PROFILE_DEACTIVATED, поскольку код генерирует исключение в строке OutputLogMessage.