请帮我用AutoHotkey编写脚本

时间:2013-09-24 18:10:12

标签: autohotkey game-physics

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

主要目标:循环脚本交互

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

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

这是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

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

1 个答案:

答案 0 :(得分: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都很好。