|
加群说138wow.com看到的
用宏加载,或者用wowbee加载也行。
只在某群服尝试过,别的地方没试过,说下思路
先用/etrace命令,打开wow的调试窗口,在验证码出来后,找下事件,这个验证码是弹窗输出验证文字的,刚好事件CHAT_MSG_ADDON里面有正确答案,格式如下:1#6:8:4:9:3:1:2:7:5:
#前面就是正确答案,后面是弹窗后的9宫格排序。
于是写了以下代码,本来打算写正则来判断的,无奈正则苦手,用了笨办法,支持再点击关闭。
WBE版:
- FD = FD or CreateFrame("Frame")
- FD:RegisterEvent("CHAT_MSG_ADDON")
-
- if XD then
- XD = nil
- print("关闭验证")
- else
- print("开启验证")
- XD = function(_, _, m, s)
- local d = select(2, s:gsub("#", ""))
- local dd = select(2, s:gsub(":", ""))
-
- if d == 1 and dd == 9 then
- --print(s .. "长度:" .. string.len(s))
-
- if string.len(s) == 20 then
- local ddd = string.sub(s, 1, 1)
- print("正确答案:" .. ddd)
- RunMacroText("/click GhostAntiFarmFrameButton" .. ddd)
- end
- end
- end
- end
-
- FD:SetScript("OnEvent", XD)
复制代码
傻瓜宏版:
- /script FD = FD or CreateFrame("Frame") FD:RegisterEvent("CHAT_MSG_ADDON") if XD then XD = nil print("关闭验证") else print("开启验证") XD = function(_, _, m, s) local d = select(2, s:gsub("#", "")) local dd = select(2, s:gsub(":", "")) if d == 1 and dd == 9 then print(s.."长度:"..string.len(s)) if string.len(s) == 20 then local ddd = string.sub(s, 1, 1) print("正确答案:"..ddd) RunMacroText("/click GhostAntiFarmFrameButton" .. ddd) end end end end FD:SetScript("OnEvent", XD)
复制代码
|
|