|
aquamarine 發表於 Dec 3, 2020 21:50:13 GMT
目前在掛的遊戲,出現了驗證碼機制來防止腳本
目前的想法是
先寫一個擷取驗證碼的腳本,用截圖功能搭配遊戲中的刷新,來刷出大量的驗證碼圖片,先由我把這些驗證碼全部分類好。
下次遇到的時候,就從這些大量的驗證碼圖片,讓程式去找出相符的圖片。
問題來了,有指令是可以從大量的圖片中找出最相符的圖片並傳回圖片的檔名?
又或者是有其他更好用的功能?
|
|
|
AnkuLua 發表於 Dec 4, 2020 0:04:31 GMT
要在一個區域(Region)找最相似的圖,並回傳是第幾個圖可以用regionExistsMultiMax()
function regionExistsMultiMax(target, debug) local maxScore = 0 local maxIndex = 0 local match snapshot()
for i, t in ipairs(target) do if (debug and t.region) then t.region:highlight(0.3) end if ((t.region and (t.region):exists(t.target, 0)) or (not t.region and exists(t.target, 0))) then -- check once local currentMatch if (t.region) then currentMatch = (t.region):getLastMatch() else currentMatch = getLastMatch() end local score = currentMatch:getScore() if (score > maxScore) then maxScore = score maxIndex = i match = currentMatch end end end
usePreviousSnap(false) if (maxScore == 0) then return -1, "__none__" end return maxIndex, target[maxIndex].id, match, maxScore end
reg = Region(100, 150, 200, 50) target = {{target = "1534.png", region = reg, id = "1534"}, {target = "2836.png", region = reg, id = "2836"}, {target = "3592.png", region = reg, id = "3592"}, }
local index, id, match, score = regionExistsMultiMax(target, false) print ("max similar id: " .. id)
|
|