取色不准确的问题,大佬来帮忙 Topic is solved

遇到了问题?请先进行搜索(中文和英文),然后在此提问

Moderators: tmplinshi, arcticir

bang20101010

取色不准确的问题,大佬来帮忙  Topic is solved

Post by bang20101010 » 18 May 2024, 04:57

我剑灵用的是窗口模式,因为我的显卡不是很好,全屏帧数不高,窗口模式能60
我用 autoHotKey 编写宏,脚本中有设置CoordMode ,Client 和 Window 都试过。取色总是不对,以下是我的代码
;1. 取色到剪贴板, a.ahk:

Code: Select all

CoordMode "Mouse", "Window"
F1:: {
    MouseGetPos &x, &y
    color := PixelGetColor(x, y, "rgb")
    A_Clipboard := Format("PixelGetColor({1}, {2}, `"rgb`") == `"{3}`"", x, y, color)
}
我用F1做热键,取到色后直接生成语句,本来不是这样,这是反复调试我搞烦了,干脆取色时直接整一个语句
比如烈火掌图标取色后生成的语句如这样:
PixelGetColor(1542, 1300, "rgb") == "0xDB3016"

;2. 比较颜色, b.ahk

Code: Select all

CoordMode "Mouse", "Window"
G:: {
    while GetKeyState("G", "p"){
        ;下面这句其实就是上面按 F1 后生成的语句,直接粘贴过来的
        if (PixelGetColor(1542, 1300, "rgb") == "0xDB3016""){
            ;SendInput("r")
            ;sleep 200
			msgbox "find the color."
        } else {
			MsgBox "can't find the color."
		}
    }
}
按G热键后,它总是弹出提示 can't find the color. 我试过从图标的各个位置取色,总是没有一个正确的结果,我也不知道问题出在哪里。

bang20101010

Re: 取色不准确的问题,大佬来帮忙

Post by bang20101010 » 18 May 2024, 06:59

我改了一下取色代码,按一下热键同时取两次,发现两次取色的结果不一样的。代码如下 :

Code: Select all

#SingleInstance Force
#HotIf WinActive("ahk_exe BNSR.exe")
CoordMode "Mouse", "Window"

F1:: {
    MouseGetPos &x, &y
    color1 := PixelGetColor(x, y, "rgb")
    MsgBox Format("x={1}  y={2}  color={3}", x, y, color1)

    color2 := PixelGetColor(x, y, "rgb")
    MsgBox Format("x={1}  y={2}  color={3}", x, y, color2)
}
两次结果 都 不同,我对比两次弹框,x y 是相同的,但颜色 那里不一样

Post Reply

Return to “请求帮助”