TENCHIANG / blog

issue blog
10 stars 1 forks source link

飞天助手学习笔记 #72

Open TENCHIANG opened 4 years ago

TENCHIANG commented 4 years ago

安装安卓模拟器

指端精灵脚本调试

图色助手

多点找色

findmulticolorfindmulticolorex

解决Hyper-V和VT-x冲突的方法

XM插件使用技巧

导入XM插件

多点找色

function floatwinrun()
    require "XM"

    local tab = {}

    tab["多点找色"] = {
        --[[
        1 名称
        2 相似度(不填默认为0.8)
        3~6 范围 不填则为全屏
        7~8 
        ]]
        { "微信", 0.8, 398,210,486,301,"03DC6C-000000","10|19|FFFFFF-000000,42|48|06C562-000000" }
    }

    local function startApp (name)
        assert(type(name) == "string")
        XM.SetTableID("多点找色")
        lineprint(tostring(XM.Find(name, true)))
    end

    XM.KeepScreen()
    XM.AddTable(tab)

    startApp("微信")
end

综合滑动

要模拟人的行为

同比例分辨率乘倍数即可

尽可能的减少色点检测功能

尽量封装自己的库

因为多语言的原因,能不取字尽量就不要取字

新版字库

点击时间很重要,不能太快,要有适当的延迟

上架

setrotatescreen

getscreendata 截取全屏像素点

local res, w, h = sysgetscreen()
local screen = getscreendata(0,0,700,1040, 1) -- 720 * 1280 x0 y0最好从0, 0开始
print(#screen, #screen[1], res, w, h)

local max, min = { x = 1, y = 1, v = getgray(screen[1][1]) }, { x = 1, y = 1, v = getgray(screen[1][1]) }
for i = 1, #screen, 100 do
    for j = 1, #screen[i], 100 do
        local color = screen[i][j]
        local gray = getgray(tonumber(color, 16))
        if gray > 250 or gray == 0 then print(i - 1, j - 1, gray, color) end
        if gray > max.v then
            max.x, max.y, max.v = i - 1, j - 1, gray
        elseif gray < min.v then
            min.x, min.y, min.v = i - 1, j - 1, gray
        end
    end
end
print("Max")
XM.Print(max)
local colorHex = getcolor(max.x, max.y, 1)
local colorDec = getcolor(max.x, max.y, 0)
local gray = getgray(colorDec)
lineprint(string.format("%d %#x %d\n", tonumber(colorHex, 16), colorDec, gray))

print("Min")
XM.Print(min)
colorHex = getcolor(min.x, min.y, 1)
colorDec = getcolor(min.x, min.y, 0)
gray = getgray(colorDec)
lineprint(string.format("%d %#x %d\n", tonumber(colorHex, 16), colorDec, gray))

keepcapture 是截图,很坑的要注意

不用频繁创建账号:换区即可

新版字库的使用

local rc = getrcpath("rc:叹号任务字库.txt")
setnewdict(rc, 0)
usenewdict(0)
local val = ocrrec(74,1044,330,1074,"e7e7e7-222222|bdbabd-222222|b5b2b5-111111|ffffff-111111", 0.75)
print("ocrrec ", val)

字库的制作

  1. 选择要制作字库的范围,右键点击制作新字库(New)
  2. 打开/新建字库 新建一个字库 xxx字库.txt
  3. 手机快照 在字里面选择一个点的颜色,粘贴到颜色窗口选择偏色为111111并勾上
  4. 调整间距,点击 多个点阵 ,然后看预览窗口是否清晰,不清晰的地方多取一个色
    1. 加大色偏或者是增加颜色
  5. 看字的数量是不是一一对应,多的可以删掉,然后在 定义文字 里一一添加
  6. 如果不是新建字库的话,做完 3~5 的操作直接点 编辑字库 意思就是保存字库
  7. 颜色窗口的截图范围和颜色描述很重要,是识字时的操作

可以多点击的,尽量多点击,以免遗漏