是否可以将.ahk转换为.lua?



我想做一个简单的宏在LUA罗技鼠标。我完全是新手,我只是从几个来源粘贴了几行。首先,它看起来很乱,但还可以用,抱歉,我完全是新手。现在我遇到的问题是;

我想要完成的是,当我按下指定的任何键时,它将切换该脚本循环/重复,直到我再次按下任何键。

我希望能够在鼠标上按CTRL+7并切换重复,直到我再次按CTRL+7来关闭重复。

请帮助。谢谢你的宝贵时间。

OutputLogMessage("Event: "..event.." Arg: "..arg.."n")
if event == "MOUSE_BUTTON_PRESSED" and arg == nil then
repeat
MoveMouseRelative(1280,-5000)
PressAndReleaseMouseButton(1)
Sleep(3200)
until not IsMouseButtonPressed(nil)
end
end

第一步
你会在游戏中使用鼠标4键("后退")吗?

  • 如果是(游戏中某些动作被设置为mb# 4),则继续"步骤2"。
  • 如果没有(游戏忽略mb# 4按键),跳过"第2步"。并进入"步骤3"。

步骤2。
你必须将游戏动作从mb# 4重新映射到其他键。

  • 选择当前不在游戏中使用的键盘键
    (让我们假设当前未使用F12键)
  • 转到ghb(鼠标设备,"Assignments">
    F12分配给您的物理MB#4

  • 将游戏动作设置为F12而不是mb# 4

现在当你按下物理mb# 4时,游戏接收到F12并激活游戏动作。
跳过第3步;并继续"第4步"。


步骤3。
转到GHUB(鼠标设备,"Assignments"屏幕)。
取消指定标准命令"Back"从物理mb# 4(单击并从下拉菜单中选择禁用)。
禁用mb# 4将看起来像一个白色的圆圈,里面有黑色。


步骤4。
转到GHUB(键盘设备,"Assignments"屏幕)。
指定标准命令"Back"到物理键G7


第5步。
设置脚本:

local toggle, prev_down
local function Interruptable_Sleep(ms)
local tm = GetRunningTime() + ms
repeat
local now = GetRunningTime()
if now < tm then
Sleep(math.min(10, tm - now))
local down = IsMouseButtonPressed(4)  -- 4 = "Back"
toggle, prev_down = toggle or not prev_down and down, down
end
until toggle or now >= tm
end
function OnEvent(event, arg)
OutputLogMessage("Event: "..event.." Arg: "..arg.."n")
if event == "G_PRESSED" and arg == 7 then
toggle = not toggle
if toggle then
prev_down, toggle = true
repeat
for j = 1, 40 do
MoveMouseRelative(1280/40,-5000/40)
Interruptable_Sleep(10)
end
if not toggle then 
PressAndReleaseMouseButton(1)
Interruptable_Sleep(3200)
end
until toggle
end
end
end

现在你可以开始和停止循环按键盘键G7

最新更新