|
despairw 發表於 Mar 26, 2017 9:24:04 GMT
感謝各位辛苦的開發者們~
最近想寫一個,如果在螢幕上找到A圖,則執行A路線,如果是找到B圖,則執行B路線。
以前有用過If,elseif的組合,然後配合上找到圖給座標的方式。但換成用match來替代找到座標的時候,開始腦袋轉不過來了...
所以希望開發者大人指點一下
另外由於A圖跟B圖雖然不會同時出現,但是出現的時間不能精準的確定,那請問有辦法在指定時間內,讓腳本持續搜尋AorB,直到找到其中一個圖為止嗎?
先在這邊感謝您!
|
|
|
AnkuLua 發表於 Mar 26, 2017 12:26:09 GMT
while (true) do if (exists("A.png", 0) then .... -- 如果要跳出while,可以加break end if (exists("B.png", 0) then .... end end
|
|
|
despairw 發表於 Mar 27, 2017 5:31:07 GMT
感謝賜教!
現在腳本完成的差不多了,但是有另一個問題。 現在找A走A路線已經沒問題了,但是似乎要找B走B路線的時候,會因為沒找到A圖跟B圖,就直接結束重複動作,跳回腳本開始的地方。
目前的腳本架構如下: while (true) do existsClick ... existsClick while (true) do if (exists("A",0)) then existsClick ... break end if (exists("B.png",0)) then existsClick ... existsClick break end end wait(5) end
是哪邊邏輯有誤或是寫錯嗎? 還懇請您賜教了!謝謝您!
|
|
|
AnkuLua 發表於 Mar 27, 2017 6:13:51 GMT
break 會跳出while 迴圈 要把底下的break 拿掉
if (exists("A",0)) then existsClick ... break -- 這行拿掉 end
|
|
|
despairw 發表於 Mar 27, 2017 6:51:03 GMT
原來如此!
那再請問一下,由於目前的腳本是打算這麼走的 迴圈的主路線=>A or B路線=>主路線 希望在A or B路線都跑完之後,腳本可以再回到主路線繼續跑 那請問我需要在A&B的迴圈裡加上break嗎?
感謝您!
|
|
|
AnkuLua 發表於 Mar 27, 2017 7:26:27 GMT
如果要A,B都跑完才回到主路線,就要加判斷式
aRun = false bRun = false
while (true) do
if (exists("A.png", 0)) then aRun = true ... end
if (exists("B.png", 0)) then bRun = true ... end
if (aRun and bRun) then break end end
|
|
|
despairw 發表於 Mar 27, 2017 7:58:02 GMT
原來如此!
那如果條件變成是只要A或B其中一條路線跑完,就回到主路線的話,是否是要這樣寫呢? aRun = false bRun = false
while (true) do
if (exists("A.png", 0)) then aRun = true ... end
if (exists("B.png", 0)) then bRun = true ... end
if aRun then break elseif bRun then break end end
|
|
|
AnkuLua 發表於 Mar 27, 2017 10:32:11 GMT
可以
這樣更直接 if (aRun or bRun) then break end
|
|
|
despairw 發表於 Mar 27, 2017 12:11:09 GMT
腳本完成了!超完美的!開發者大人感謝您!!
|
|