Autohotkey - 仅运行部分脚本

时间:2018-04-19 16:36:03

标签: autohotkey

**大家好! 我最近开始尝试使用autohotkey。 在这个特定的脚本中,我需要帮助隔离并只运行脚本的一部分。

此Autohotkey脚本与游戏进行交互。 我有可玩的角色A - D. 我想根据选择的字符自动激活宏。 (并且如果角色正在切换,也会停用任何其他宏) 要确定选择哪个字符,请使用IMAGESEARCH命令。<​​/ em>

现在我的问题:是否可以在同一个脚本中只运行一个多个宏的宏?就我而言,我遇到的问题是&#34;同样的热键已经存在&#34;错误。如果这在某种程度上是可能的,那将是非常好的,尽管我无法找到任何特别的东西,因为它很难描述和搜索。

我非常感谢你能给我这个主题的所有答案:)**

#IfWinActive Program

If WinActive("ahk_exe Program.exe")
    CoordMode, Pixel


;SELECTION CHECKS;



K0:

    $~LButton:: 
        Sleep, 100
    ImageSearch, FoundX, FoundY, 53, 1233, 2491, 1287,*2 C:\Users\XYZ\Desktop\CharacterA.png

    if ErrorLevel = 2
        SoundBeep, 750, 500

    else if ErrorLevel = 1
        goto K1

    else

        goto CharacterA
return

K1:

    ImageSearch, FoundX, FoundY, 53, 1233, 2491, 1287,*2 C:\Users\XYZ\Desktop\CharacterB.png

    if ErrorLevel = 2
        SoundBeep, 750, 500

    else if ErrorLevel = 1
        goto K2

    else
        goto CharacterB
return

K2:

    ImageSearch, FoundX, FoundY, 53, 1233, 2491, 1287,*2 C:\Users\XYZ\Desktop\CharacterC.png

    if ErrorLevel = 2
        SoundBeep, 750, 500

    else if ErrorLevel = 1
        goto K3

    else
        goto CharacterC
return

K3:

    ImageSearch, FoundX, FoundY, 53, 1233, 2491, 1287,*2 C:\Users\XYZ\Desktop\CharacterD.png

    if ErrorLevel = 2
        SoundBeep, 750, 500

    else if ErrorLevel = 1
        goto K0

    else
        goto CharacterD
return


;Chars;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CharacterA:
 SoundPlay, C:\Users\XYZ\Desktop\CA_Voiceline.wav

examplemacro

    Return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CharacterB:
 SoundPlay, C:\Users\XYZ\Desktop\CB_Voiceline.wav

examplemacro

    Return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CharacterC:
 SoundPlay, C:\Users\XYZ\Desktop\CC_Voiceline.wav

examplemacro

    Return  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CharacterD:
 SoundPlay, C:\Users\XYZ\Desktop\CD_Voiceline.wav

examplemacro

    Return  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

1 个答案:

答案 0 :(得分:0)

我相信您可以使用gosub命令来实现此目的。您可以在此命令here上阅读更多信息。

如果我了解您要使用的流程,则脚本中的更改会将所有goto字符*行更改为:

else

        gosub CharacterA

目前尚未经过测试,但我会在今天晚些时候返回并在有时间完全测试结果后更新。