-1

我最近受到了在 AutoHotkey 上编写脚本艺术的启发。我是一个初学者,迫切需要你的洞察力。非常感谢您在此问题上的时间和投入。

主要目标:循环脚本交互

我希望一次运行一个脚本,该脚本会在给定事件时相互触发。我们有两个脚本,我们将它们命名为 A 和 B。A 的任务是执行给定的任务,直到找到一个特定的图像,然后触发 B。B 的任务是使用该图像执行给定的任务,直到它消失,然后触发回一个。

至于循环脚本交互,这就是我所拥有的。

这是A.ahk:-

Loop

  ImageSearch, PX, PY, 1, 1, 10, 10, %A_WorkingDir%image.png
  if ErrorLevel = 1
    WheelDown
  Else
    Run, %A_WorkingDir%B.ahk

Return

这是B.ahk:-

Loop

  ImageSearch, PX, PY, 1, 1, 10, 10, %A_WorkingDir%image.png
  if ErrorLevel = 0
    Click %PX%, %PY%
  Else
    Run, %A_WorkingDir%A.ahk

Return

如果我这样做正确,请告诉我。对于 ImageSearch,我可以写 X,Y,而不是 PX,PY?我想知道他们的差异。

次要目标:编程鼠标移动

我缺乏为脚本 A 提供一些特定任务的知识。这是场景,该游戏称为《黑暗传奇》,也称为 DarkAges。这是一款 2D 游戏,我的头像处于空闲状态,始终显示在屏幕中央。一旦你按下空格键,你就会触发一个与前一个屏幕重叠的传送地图。但是,传送距离是有限的,在传送地图上以两种颜色显示。蓝色:可用于传送 红色:不可用于传送 单击所需的蓝色区域后,它会突出显示为绿色。单击绿色进行确认,化身传送。

假设世界是矩形的,我希望我的头像在边缘漫游,直到找到触发 B 脚本的图像。处理完图像后,我希望我的头像从 B 点被触发继续旅程。

我只是不知道我应该如何从这个'A'脚本开始。我确实理解这是一个广泛的问题,有许多可能的方向,但是您对我应该考虑研究哪些命令的任何见解至少会让我开始解决这个问题。也许我应该通过限制坐标来对应传送限制?像 X=n, Y=n

再次感谢您抽出宝贵时间阅读本文!任何输入都会创造奇迹!

4

1 回答 1

0

结合两个循环的代码看起来像这样。另一个循环,从第一个循环 A 开始,用 break 命令离开循环 A,然后是 B,然后离开 B,然后循环自己。

Loop,

{

  ;loop A

  Loop,
  {
    ImageSearch, PX, PY, 1, 1, 10, 10, %A_WorkingDir%image.png
    if ErrorLevel = 1
      WheelDown
    Else
      break
  }

  ;loop B

  Loop,
  {
    ImageSearch, PX, PY, 1, 1, 10, 10, %A_WorkingDir%image.png
    if ErrorLevel = 0
      Click %PX%, %PY% 
    Else
      break
  }   

  Sleep, 100
}  

关于 PX,PY。这些是变量名称,您可以在此处使用任何允许的变量名称。X 和 Y 完全没问题。

于 2013-09-25T06:04:18.373 回答