需要 AHK 脚本协助吗?

需要 AHK 脚本协助吗?

下面的代码是我一直在使用的 AHK 脚本。它工作得很好。本质上,它的作用是当我按住左控制键和鼠标左键时,它会帮我将鼠标拉下来。

我遇到的问题是,我需要光标完全停留在中间。我玩的游戏使得当你射击(按住鼠标左键)时,枪会左右“摆动”。遗憾的是,我每次尝试将其合并到下面的脚本中都失败了。

有人可以帮忙吗?

#NoEnv
SendMode Input

~F6::Suspend
~End::ExitApp
~F5::Reload

LCtrl & ~LButton::
Loop
If GetKeyState("LButton", "LCtrl") {
Sleep, 6
moveAmount := (moveAmount = 2) ? 1 : 0
mouseXY(moveAmount,7.5)

}
else
break

Return



mouseXY(x,y)
{
DllCall("mouse_event",int,1,int,x,int,y,uint,0,uint,0)
}

答案1

这是我第三次回答有关这个确切脚本的问题。

可能无论是谁编写的原始脚本,都只是从其他脚本中复制/粘贴了部分内容,然后就让它半工作了。

看起来像

moveAmount := (moveAmount = 2) ? 1 : 0

是做类似这样的事情的尝试。

它的作用是这样的:

如果 (moveAmount == 2) { moveAmount := 1 } else { moveAmount := 0 }

由于 moveAmount 未在其他地方设置,它永远不可能为 2,因此也永远不可能为 1,因此它将始终为 0。因此,没有水平移动。

如果你想交替向右看和向左看,你可以这样做:

moveAmount := (moveAmount == 2 ? -2 : 2)

这会将第一次迭代设置为 2,将第二次迭代设置为 -2,将第三次迭代再次设置为 2,依此类推。

这会将其向左移动,然后向右移动,然后向左移动等等

但我仍然觉得 moveAmount 应该在脚本的某个部分中声明,但该部分已经不存在了。

也许有人只是放弃尝试检测枪向左或向右移动了多少。

相关内容