2013-12-09 66 views
0

我一直在試圖做一個自動選擇器的研磨,但它只是停在中間,我不明白爲什麼。這是我到目前爲止:函數不返回一個變量的自動熱鍵定義

^!n:: ;Ctr+Alt+n 
FindColour(0x4447FB, 338, 491) ; Enter Building 
Sleep 1500 
FindColour(0x4145F1, 387, 420) ; Left Attack 
Battle(1,1,1,1,0) 
Sleep 1500 
FindColour(0x4447FB, 602, 335) ; Far Attack 
; Do Attack 
Sleep 1500 
FindColour(0x4447FC, 555, 527) ; Bottom Attack 
; Do Attack 
Sleep 1500 
FindColour(0x4347FB, 338, 537) ; Leave Building 
Sleep 1500 
FindColour(0xF9F9F5, 239, 561) ; Reset Point 
Sleep 1500 
Return 

FindColour(Colour, x, y){ ; Wait until the correct colour appears before clicking 
Col = 0x000000 
MouseMove, %x%, %y% 
Loop 
{ 
PixelGetColor, Col, %x%, %y% 
If Col = %Colour% 
{ 
    Click %x% %y% 
    Return 
} 
Sleep 10 
} 
Return 
} 

Battle(a, b, c, d, e){ ; e isn't needed yet 
x = 488 
y := FindStart() 
Col = 0x3F18D0 
MsgBox %y% 

Loop %a% 
{ 
FindColour(%Col%, %x%, %y%) 
Sleep 100 
Click 606 276 
} 

Loop %b% 
{ 
FindColour(%Col%, %x%, %y%) 
Sleep 100 
Click 547 371 
} 

Loop %c% 
{ 
FindColour(%Col%, %x%, %y%) 
Sleep 100 
Click 676 491 
} 

Loop %d% 
{ 
FindColour(%Col%, %x%, %y%) 
Sleep 100 
Click 774 309 
} 

; End 

Return 
} 

FindStart(){ 
x = 488 
y = 200 
Loop 300 
{ 
MouseMove, %x%, %y% 
Sleep 20 
PixelGetColor, Col, %x%, %y% 
If Col = 0x3D00FF 
{ 
    y += 23 
    Return %y% 
} 
Else 
{ 
    y += 1 
} 
} 
MsgBox Start not found 
} 

它運行得很好,直到它運行FindStart()。我看着光標緩慢地沿着屏幕向下移動到正確的像素(移動每場戰鬥,從而移動功能),然後停止。在調用FindStart()之後,我放置了「MsgBox%y%」這一行,以檢查函數調用後發生的任何事情,但msgbox從不出現。

我錯過了什麼?

+0

準確找出停車位置。雙擊腳本的托盤圖標將顯示最近執行的行。 – MCL

回答

1

我找到了解決方案。事實證明,調用函數時發送的變量不應包含在百分號中。