我正在使用AutoHotKey程序,我有一个监视某个像素及其颜色的脚本,如果它改变了,它会做一些事情让颜色回来。因此,假设它正在查看像素100,100并且颜色为0xFFFFFF,如果颜色变为除0xFFFFFF之外的任何内容,则脚本将按下数字5键并且它将返回到0xFFFFFF。这非常有效,现在我在这里的帮助是让一个脚本监控两个x,y位置和两个单独的颜色,并使用两个不同的键将所述颜色更改回监控颜色。此脚本主要用于玩在线电脑游戏,如Ragnarok Online或WoW。
以下是监控ONE x,y和ONE颜色的代码
#Persistent
CoordMode, Pixel, Relative
X := 100
Y := 100
SetColor := 0xC48559
SetTimer, WatchLife, 100
Return
WatchLife:
Pixelgetcolor, Color, %X%, %Y%
if (Color = SetColor)
Return
Else
Send, 5
Sleep 20
Return
此脚本会监视HP栏,它会低于某个区域,它会自动按数字键5以使用HP Potion重新启动HP栏。这对游戏玩家有很大的帮助,因此他们不必过多地关注他们的HP,而更多地关注攻击玩家或怪物。
现在我需要一种方法让一个脚本执行两次,AutoHotKey程序不允许重复某些行,所以你不能只在一个脚本中复制粘贴两次,是的你可以使用这个脚本两次通过更改x,y和颜色代码,但一次运行多个脚本可能会弄乱其他脚本,我看到这种情况发生了,并且在使用另一个脚本运行此脚本时发生了几次。 / p>
我试过这段代码;
#Persistent
CoordMode, Pixel, Relative
X := 100
Y := 100
SetColor := 0xC48559
X := 100
Y := 80
SetColor := 0xF0DED7
SetTimer, WatchLife, 100
Return
WatchLife:
Pixelgetcolor, 0xC48559, 100, 100
if (Color = SetColor)
Return
Else
Send, 5
Sleep 20
Pixelgetcolor, 0xF0DED7, 100, 80
if (Color = SetColor)
Return
Else
Send, 6
Sleep 20
Return
我认为这样可行但是当像素中的颜色存在时,它只会为HP和MP的治疗项目发送密钥。我在AutoHotKey的主要网站和论坛上搜索过,但我还没有看到有关此脚本的任何内容。
请帮助,这个脚本可以帮助任何人玩任何类似于WoW或Ragnarok Online的在线电脑游戏。
答案 0 :(得分:1)
这个怎么样?我修改了第一个脚本,以便在我的环境中测试它。
您生成了大量发送指令,因为您没有定义应该存储PixelGetColor的变量,因此If语句始终为false。在第一个If之后你也有一个返回,所以第二个If只在第一个If为false时执行(在你的脚本中就是这种情况,但不应该这样)。
Persistent
CoordMode, Pixel, Relative
X1 := 200
Y1 := 200
SetColor1 := 0x999999
X2 := 200
Y2 := 1000
SetColor2 := 0xFFFFFF
SetTimer, WatchLife, 500
Return
WatchLife:
Pixelgetcolor, Color, %X1%, %Y1%
if (Color <> SetColor1)
SoundBeep, 500, 200
Pixelgetcolor, Color, %X2%, %Y2%
if (Color <> SetColor2)
SoundBeep, 1000, 200
Return
如果您想在发送击键后等待,那么您应该在If语句中包含等待,如下所示。
Persistent
CoordMode, Pixel, Relative
X1 := 100
Y1 := 100
SetColor1 := 0xC48559
X2 := 100
Y2 := 80
SetColor2 := 0xF0DED7
SetTimer, WatchLife, 500
Return
WatchLife:
Pixelgetcolor, Color, %X1%, %Y1%
if (Color <> SetColor1)
{
Send, 5
Sleep, 20
}
Pixelgetcolor, Color, %X2%, %Y2%
if (Color <> SetColor2)
{
Send, 6
Sleep, 20
}
Return
答案 1 :(得分:1)
你能先试试吗?打开记事本(白色背景)并最小化所有其他应用程序(仅限桌面)。移动“记事本”窗口,使空白区域位于两个鼠标位置之上,而不是两个鼠标位置之上或之上。您可以使用 Ctrl + q 退出,因为您无法真正使用鼠标退出AHK。
根据具体情况,您将听到没有声音,只有一声低音(高或低)或两声低音(高和低)。鼠标将指向像素所在的位置。
#Persistent
CoordMode, Pixel, Screen
CoordMode, Mouse, Screen
X1 := 100
Y1 := 100
SetColor1 := 0xFFFFFF
X2 := 600
Y2 := 100
SetColor2 := 0xFFFFFF
SetTimer, WatchLife, 6000
Return
WatchLife:
MouseMove, %X1%, %Y1%
Pixelgetcolor, Color, %X1%, %Y1%
TrayTip,, %Color%
if (Color <> SetColor1)
{
SoundBeep, 500, 200
}
Sleep, 1000
MouseMove, %X2%, %Y2%
Pixelgetcolor, Color, %X2%, %Y2%
TrayTip,, %Color%
if (Color <> SetColor2)
{
SoundBeep, 1000, 200
}
Return
^q::
ExitApp