2013-09-24 64 views
-1

我最近被啓發了在AutoHotkey上編寫腳本的藝術。 我是一個迫切需要洞察力的初學者。 我將非常感謝您在這件事上的時間和投入。請幫我用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

再次,我很欣賞你的時間閱讀本! 任何輸入都會創造奇蹟!

+0

沒有必要爲此功能提供2個腳本。查看'SetTimer',這看起來就像你在找什麼。 –

+0

'Loop'只會循環下一個命令。您需要使用括號'{}'來包圍要循環的塊。 – 576i

回答

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都很好。