|
AnkuLua 發表於 Feb 26, 2017 14:43:49 GMT
前言:玩遊戲常常有單純點擊練功的時後,雖然已經有 錄製與回放腳本,但是有下列缺點: - 要抓時間差,造成只能保守多等待一些時間,沒有效率
- 如果只是不同(教難)關卡,常因等待時間不夠而不能用
為甚麼不能抓固定圖,每次就搜尋並點擊這些圖就好;例如開始、組隊、戰鬥、結果、驗收... 於是有了這個腳本--截圖與回放(snap And Play) 注意: 請勿放在中文路徑下,否則可能無法正常動作 截圖與回放腳本已經直接內含在AnkuLua app內,路徑在 /sdcard/AnkuLua/snapAndPlay/snapAndPlay.lua此腳本為Open source,歡迎更改 截圖錄製使用說明:1. AnkuLua 選snapAndPlay.lua,然後進入要錄的畫面(以下以陰陽師 為例) 2. 按左下角AnkuLua Play 按鈕出現選擇畫面,請選錄製 選擇是否為浸潤模式(遊戲時海苔條會消失且遊戲畫面會需要點擊要到原本海苔條位置請務必勾選) 輸入要儲存的檔名 注意: 請勿使用中文檔名訂定每次要抓多大的圖,還有執行時要搜尋多大區域 開始執行時,請務必等畫面罩上黃色再點擊畫面,否則無法錄製到點擊並截圖 開始執行時,請務必等畫面罩上黃色再點擊畫面,否則無法錄製到點擊並截圖 開始執行時,請務必等畫面罩上黃色再點擊畫面,否則無法錄製到點擊並截圖
如果像下面這樣清楚的畫面請勿點擊 像下面有一層黃色才可點擊 3. 要停止錄製請按畫面 "Stop!" 紅色區域,或是AnkuLua 停止鈕 回放使用說明: 1. AnkuLua 選recordAndPlay.lua,然後進入要回放的畫面 2. 選回放 3. 選擇要回放檔案與相關設定 前兩項設定很清楚,就不做多說明 因為有可能某一些小圖不會固定出現在一個地方,這時就要把"所有搜尋都要用區域搜尋"取消掉 如果有取消掉,就會出現下面設定畫面 您可以取哪些圖要不要只做區域搜尋 提示: 您可以在腳本底下的 luar/檔案名Image 目錄下找到截圖檔案 先進技巧:如果自動產生的腳本無法滿足您的需求,您可以修改產生的luar來滿足您的需求。 如果您希望找到某個圖時能做更多事,您可以改寫action。 變數 matchResult 是搜尋結果。 以下為一些例子 ------ 1 ----- -- 找到 1.png 時,點擊 realTarget.png touchList[index] = {target = "1.png", region = Region(612, 493, 150, 150), id = "1", action = 'click("realTarget.png")'} index = index + 1
------ 2 ----- -- 找到 2.png 時,點擊找到的地方,並等兩秒 touchList[index] = {target = "2.png", region = Region(774, 493, 150, 150), id = "2", action = 'click(matchResult); wait(2)'} index = index + 1
------ 3 ----- -- 找到 3.png 時,執行 3.lua。請用絕對路徑 touchList[index] = {target = "3.png", region = Region(174, 293, 150, 150), id = "3", action = 'dofile(scriptPath() .. "luar/3.lua")'} index = index + 1
------ 3 ----- -- 全螢幕找 4.png,不限區域 touchList[index] = {target = "4.png", region = nil, id = "4", action = 'click'} index = index + 1
|
|
mypl
New Member
Posts: 1
|
mypl 發表於 Mar 7, 2017 15:27:10 GMT
先感謝Ankulua,太棒了,解放我的手指和時間,及對root的疑問
作為一個對手機啊,軟件啊沒有了解的普通人,自然只能靠各位前人分享的腳本了 snap And Play, 按說明成功為自己的遊戲錄製好了按鍵模式,就發現了一個問題?或者說缺憾?
好像不能設定按鍵間的間隔啊,就是隔多少秒重複,好想弄成不斷按不斷按的,但snap And Play就慢慢的,隔好幾秒才重複的樣子
是我看漏了什麼,還是我該用別的腳本
感謝
|
|
|
AnkuLua 發表於 Mar 10, 2017 12:36:55 GMT
目前是設成每次點擊後等待兩秒才做下一次比對,主要是怕遊戲反應慢,截到還沒變的圖 下一版可以加參數讓使用者設 如果等不及,可以改下面這個部分
click(match) wait(2) -- 更改此值,0 就不會等了
如果需要速度,請關閉debug
|
|
|
a9460620 發表於 Mar 13, 2017 16:07:36 GMT
希望可以設定選擇這個點擊位置要不要截圖 因為有部分的點擊位置的圖片是隨機變化的 圖片截下去找不到,開全域找圖又會點到其他類似的東西,整個悲劇中
|
|
|
AnkuLua 發表於 Mar 13, 2017 23:36:11 GMT
|
|
|
jackyui 發表於 Mar 30, 2017 0:54:56 GMT
我用過這個腳本之後也看到存好的luar 的副檔名
發現到一個問題就是,當我在A目錄下錄製好腳本,也知道目錄是Luar這個目錄 但是我把他搬到A目錄下一層的B目錄,結果主腳本卻找不到 副腳本(luar)的情況必須要再搬回A目錄下才正常
第二如果想在副腳本(luar)下增加自己想要的一些功能好像不太好加入? 例如本來是單次點擊
------ 1 ----- touchList[index] = {target = "進入1.png", region = Region(1387, 672, 150, 150), id = "進入1", action="click"} index = index + 1
------ 2 -----
要怎麼在這個裡面加入 continueClick這個函數?是在 action這個改掉嗎?
第二怎麼在這個裡面 加入迴圈?
|
|
|
AnkuLua 發表於 Mar 30, 2017 11:53:12 GMT
luar 目前無法移動目錄
目前尚不支援continueClick,如有需要可以自己改 snapAndPlay.lua
|
|
|
jackyui 發表於 Mar 31, 2017 0:40:52 GMT
是在這幾行的嗎?
if (matchObject.action == "longClick" or matchObject.action == "click") then _G[matchObject.action](match) end
if (matchObject.action == "swipe" or matchObject.action == "dragDrop") then local match2 = targetExists({target = matchObject.target2, region = matchObject.region2}, 0) if (match2) then if (debug) then match2:highlight(0.5) end _G[matchObject.action](match, match2) end end
|
|
|
AnkuLua 發表於 Mar 31, 2017 0:50:13 GMT
是的 要加上一個判斷式
if (matchObject.action == "continueClick") then continueClick(match, 100) -- 100 改成您要的次數 end
|
|
|
liller 發表於 Apr 9, 2017 8:15:53 GMT
你好 我在執行時 在用行動回合時 在04回合時 但卻會去點00回合 的按鈕,我的圖如下 imgur.com/7O8POxF有什麼辦法讓它圖抓的更精確嗎? 或者是我如果寫一個判斷可以讓它再我某一個回合執行完之後才可以點選這個功能?
|
|
|
AnkuLua 發表於 Apr 9, 2017 8:42:28 GMT
可以直接去編輯產生的luar 將相似度提高(例如改到0.96) 原本如果是 touchList[index] = {target = "0.png", region = Region(10, 10, 1200, 680), id = "0"} 改成 touchList[index] = {target = Pattern("0.png"):similar(0.96), region = Region(10, 10, 1200, 680), id = "0"}
|
|
|
liller 發表於 Apr 15, 2017 23:35:59 GMT
您好,我這裡又有兩個問題提問 1.如果我在A點比對圖片成功後,是否可以在B點點擊 2.如果我在A點比對圖片成功後,是否可以在A點的範位裡面,亂數一個位置點選
|
|
|
AnkuLua 發表於 Apr 16, 2017 1:04:31 GMT
這要直接改snapAndPlay.lua 了
在 if (choice ~= -1 and match) then 這行要改成
if (id == "A") then existsClick("B.png", 0) -- 點B圖 click(Location(match:getX() + math.random(match:getW()), match:getY() + match.random(match:getH()))) -- 點A 圖內任一點 elseif (choice ~= -1 and match) then
|
|
|
evil129 發表於 Apr 16, 2017 7:13:39 GMT
|
|
|
AnkuLua 發表於 Apr 16, 2017 8:27:37 GMT
AnkuLua 請更新到最新版
|
|