Ghub 脚本:向下拖动鼠标并按下鼠标左键自动点击 (LUA)
Ghub Script: Drag mouse down and autocliking by pressing left mouse button (LUA)
所以基本上我是在尝试使用 Ghub Lua 脚本机制来制作标题中解释的内容,并在下面发布我所拥有的代码:
EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
if IsKeyLockOn("capslock")then
if IsMouseButtonPressed(1)then
repeat
MoveMouseRelative(0,4)
PressMouseButton(1)
Sleep(1,2)
ReleaseMouseButton(1)
until not IsMouseButtonPressed(1)
end
end
end
问题是,有时它只是在下降的中途停止,有时它根本就没有点击。已经尝试了多种方法来解决这个问题,包括更改鼠标上按下的按钮,现在是 IsMouseButtonPressed(5),效果很好,但我的目标是在按下 MouseButton(1) 时让它工作。如果可能的话,我会感谢你们的帮助,在此先感谢,希望我给了你们所有必要的信息。
问题是因为无法同时模拟 LMB press/release 和监控其状态。
解决方法如下:
步骤 0.
您即将修改鼠标左键的行为。
这是一个具有潜在危险的操作:如果没有 LMB,您几乎无法在计算机上执行任何操作。
所以你必须创建一个“备用LMB”。
例如,如果您不使用鼠标按钮 8,则可以将其设置为 LMB 上的克隆。
转到 GHUB(鼠标设备、“分配”屏幕、系统选项卡)。
将“主要点击”分配给您的物理 MB#8。
现在,如果出现问题并且您的 LMB 停止工作,您可以按 MB#8 而不是 LMB。
步骤 1.
您在游戏中使用鼠标按钮 4(“后退”)吗?
- 如果是(某些动作在游戏中设置为 MB#4),请继续“步骤 2”。
- 如果否(游戏忽略 MB#4 按下),跳过“第 2 步”并继续“第 3 步”。
步骤 2.
您必须将游戏操作从 MB#4 重新映射到其他键。
执行以下操作:
- 选择您当前不在游戏中使用的键盘键
(假设当前未使用 F12
键)
- 转到 GHUB(鼠标设备、“分配”屏幕、KEYS 选项卡);
将 F12
分配给您的物理 MB#4
- 转到您的游戏设置;
将游戏操作设置为 F12
而不是 MB#4
现在当您按下物理 MB#4 时,游戏会收到 F12
并激活游戏动作。
跳过“第 3 步”并继续“第 4 步”。
步骤 3.
转到 GHUB(鼠标设备,“分配”屏幕)。
从物理 MB#4 取消分配标准命令“后退”(单击并从下拉菜单中 select 禁用)。
禁用的 MB#4 看起来像一个白色的圆圈,里面是黑色的。
步骤 4.
设置脚本(见下文)。
步骤 5.
转到 GHUB(鼠标设备、“分配”屏幕、系统选项卡)。
将“后退”分配给您的物理 LMB。
您将看到有关潜在危险操作的警告。
允许此操作,因为如果出现问题,您有“备用 LMB”。
function OnEvent(event, arg)
if event == "PROFILE_ACTIVATED" then
EnablePrimaryMouseButtonEvents(true)
elseif event == "MOUSE_BUTTON_PRESSED" and arg == 1 then
PressMouseButton(1)
if IsKeyLockOn("capslock") then
repeat
MoveMouseRelative(0,4)
Sleep(10)
if not IsMouseButtonPressed(4) then break end
ReleaseMouseButton(1)
MoveMouseRelative(0,4)
Sleep(10)
PressMouseButton(1)
until not IsMouseButtonPressed(4) -- 4 = "Back"
end
elseif event == "MOUSE_BUTTON_RELEASED" and arg == 1 then
ReleaseMouseButton(1)
elseif event == "PROFILE_DEACTIVATED" then
ReleaseMouseButton(1)
end
end
所以基本上我是在尝试使用 Ghub Lua 脚本机制来制作标题中解释的内容,并在下面发布我所拥有的代码:
EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
if IsKeyLockOn("capslock")then
if IsMouseButtonPressed(1)then
repeat
MoveMouseRelative(0,4)
PressMouseButton(1)
Sleep(1,2)
ReleaseMouseButton(1)
until not IsMouseButtonPressed(1)
end
end
end
问题是,有时它只是在下降的中途停止,有时它根本就没有点击。已经尝试了多种方法来解决这个问题,包括更改鼠标上按下的按钮,现在是 IsMouseButtonPressed(5),效果很好,但我的目标是在按下 MouseButton(1) 时让它工作。如果可能的话,我会感谢你们的帮助,在此先感谢,希望我给了你们所有必要的信息。
问题是因为无法同时模拟 LMB press/release 和监控其状态。
解决方法如下:
步骤 0.
您即将修改鼠标左键的行为。
这是一个具有潜在危险的操作:如果没有 LMB,您几乎无法在计算机上执行任何操作。
所以你必须创建一个“备用LMB”。
例如,如果您不使用鼠标按钮 8,则可以将其设置为 LMB 上的克隆。
转到 GHUB(鼠标设备、“分配”屏幕、系统选项卡)。
将“主要点击”分配给您的物理 MB#8。
现在,如果出现问题并且您的 LMB 停止工作,您可以按 MB#8 而不是 LMB。
步骤 1.
您在游戏中使用鼠标按钮 4(“后退”)吗?
- 如果是(某些动作在游戏中设置为 MB#4),请继续“步骤 2”。
- 如果否(游戏忽略 MB#4 按下),跳过“第 2 步”并继续“第 3 步”。
步骤 2.
您必须将游戏操作从 MB#4 重新映射到其他键。
执行以下操作:
- 选择您当前不在游戏中使用的键盘键
(假设当前未使用F12
键) - 转到 GHUB(鼠标设备、“分配”屏幕、KEYS 选项卡);
将F12
分配给您的物理 MB#4 - 转到您的游戏设置;
将游戏操作设置为F12
而不是 MB#4
现在当您按下物理 MB#4 时,游戏会收到 F12
并激活游戏动作。
跳过“第 3 步”并继续“第 4 步”。
步骤 3.
转到 GHUB(鼠标设备,“分配”屏幕)。
从物理 MB#4 取消分配标准命令“后退”(单击并从下拉菜单中 select 禁用)。
禁用的 MB#4 看起来像一个白色的圆圈,里面是黑色的。
步骤 4.
设置脚本(见下文)。
步骤 5.
转到 GHUB(鼠标设备、“分配”屏幕、系统选项卡)。
将“后退”分配给您的物理 LMB。
您将看到有关潜在危险操作的警告。
允许此操作,因为如果出现问题,您有“备用 LMB”。
function OnEvent(event, arg)
if event == "PROFILE_ACTIVATED" then
EnablePrimaryMouseButtonEvents(true)
elseif event == "MOUSE_BUTTON_PRESSED" and arg == 1 then
PressMouseButton(1)
if IsKeyLockOn("capslock") then
repeat
MoveMouseRelative(0,4)
Sleep(10)
if not IsMouseButtonPressed(4) then break end
ReleaseMouseButton(1)
MoveMouseRelative(0,4)
Sleep(10)
PressMouseButton(1)
until not IsMouseButtonPressed(4) -- 4 = "Back"
end
elseif event == "MOUSE_BUTTON_RELEASED" and arg == 1 then
ReleaseMouseButton(1)
elseif event == "PROFILE_DEACTIVATED" then
ReleaseMouseButton(1)
end
end