用mudlet实现机器人查岗fullme的在线浮窗--致mudlet新人
本帖最后由 richardgong 于 2022-5-11 12:27 PM 编辑!(https://api.mud.ren/storage/uploads/2022/05/11/fe0e3118f85fd45822b47e898023415d.png)
**首先声明,代码并不是我写的,作者是mudlet当前开发核心人员***Vadim Peretokin***在论坛中发布的代码,我做了简单修改,增加了点击图片打开网页查看大图,修改了图片锚点和宽、高度。**
代码由2部分组成,一是script部分,二是trigger部分。
---
#一、Script部分
```lua
pkuxkx = pkuxkx or {}--全局变量声明
function pkuxkx.downloaded_file(_, filename) --建立用于下载和判断下载图片文件是否完成的函数
-- is the file that downloaded ours? 优秀的程序员会给自己的代码加注释,让我这种小白能看懂
if filename:find("pkuxkx_captcha.html", 1, true) then --如果存在fullme校验页面
local imageurl = pkuxkx.parsewebpage(filename) --对解析出来的网址和图像文件名做局部变量声明
local baseurl = pkuxkx.stripurl(pkuxkx.captcha)
downloadFile(getMudletHomeDir() .. "/pkuxkx_captcha.jpg", baseurl .. imageurl) --下载文件
elseif filename:find("pkuxkx_captcha.jpg", 1, true) then --如果下载图片完成
pkuxkx.makeui(filename) --调用展示图片的UI函数
end
end
function pkuxkx.downloadcaptcha(url) --下载fullme校验网页
pkuxkx.captcha = url --pkuxkx.captcha是在trigger部分获取的
downloadFile(getMudletHomeDir() .. "/pkuxkx_captcha.html", url)
end
function pkuxkx.parsewebpage(filename) --解析网页代码
local f, s, webpage = io.open(filename)
if f then
webpage = f:read("*a")
io.close(f)
end
local url = webpage:match('img src="%.(.-)"') --获取网页中关于图片的网址信息
return url
end
function pkuxkx.stripurl(url) --剥离出图片网址
return url:match("(.*)/")
end
-- register our function to run on the event that something was downloaded
--建立事件监视器,监视器名称"sysDownloadDone",被调用的监视函数为判断是否完
--成图片下载的函数"pkuxkx.downloaded_file"
registerAnonymousEventHandler("sysDownloadDone", "pkuxkx.downloaded_file")
function pkuxkx.hidecaptcha() --关闭fullme图片浮窗
pkuxkx.picturelabel:hide()
end
function pkuxkx.makeui(image) --建立Geyser.Label型的图片浮窗
pkuxkx.picturelabel = Geyser.Label:new({name = "pkuxkx.picturelabel", x = "-50%", y = "-20%", width = "15%", height = "10%"})
-- stick an 'x' top-right 在fullme图片浮窗上加一个close的图标
pkuxkx.picturelabelclose = Geyser.Label:new(
{
name = "pkuxkx.picturelabelclose",
x = "-20px",y = "5px",
width = "30px",height = "30px",
message = "<center>❌</center>",
},pkuxkx.picturelabel)
pkuxkx.picturelabel:setBackgroundImage(image) --在浮窗上展示fullme图片
pkuxkx.picturelabel:setClickCallback("open_url")--将浮窗设置为点击图片后打开网页察看图片全貌
pkuxkx.picturelabelclose:setReleaseCallback("pkuxkx.hidecaptcha") --调用关闭fullme图片浮窗
end
function open_url()--点击后打开网页查看图片
openUrl(fullmeUrl)--fullmeUrl的值是由trigger抓取的
end
```
---
#二、trigger部分(共四行)
##trigger(1)
!(https://api.mud.ren/storage/uploads/2022/05/11/fcabccf34635c5b92721bcde78d32c1e.png)
```lua
fullmeUrl = multimatches
pkuxkx.downloadcaptcha(multimatches)
```
---
##trigger(2)
!(https://api.mud.ren/storage/uploads/2022/05/11/8c3c2bcb508f44b3f56e201987b67399.png)
```lua
deleteLine()
```
---
##trigger(3)
!(https://api.mud.ren/storage/uploads/2022/05/11/6f3c34e1a91b1b235b6c6c25ef349485.png)
```lua
deleteLine()
```
---
##trigger(4)
!(https://api.mud.ren/storage/uploads/2022/05/11/1ea676c948689e277693a1ac04c3b749.png)
```lua
setTriggerStayOpen("gag text", 0)
```
---
#三、改动浮窗位置
我的显示器分辨率不见得适合大家的的分辨率,大家可以根据各自需求调整script中的以下代码数值
!(https://api.mud.ren/storage/uploads/2022/05/11/d139b5507630d7765ec383f9bb113682.png)
```lua
pkuxkx.picturelabel = Geyser.Label:new({
name = "pkuxkx.picturelabel",
x = "-50%", --距离mudlet主窗口右侧50%宽度,设定浮窗的左上角x坐标
y = "-20%", --距离mudlet主窗口底部20%高度,设定浮窗的左上角y坐标
width = "15%",--设定fullme浮窗宽度为mudlet主窗口宽度的15%
height = "10%"--设定fullme浮窗高度为mudlet主窗口宽度的10%
})
```
---
感谢分享 大胆,提取图片地址,再走多走两步就要自动识别了,嗯嗯。yct41 能自动识别北侠fullme图片的,必须是顶级ocr。 suwuji 发表于 2022-5-27 09:43 PM
能自动识别北侠fullme图片的,必须是顶级ocr。
鲁豫.jpg
我读书少.jpg
你们立字据.jpg 这些带干扰线,各种字体的,确实不好辨识。 zip文件里面的xml要导入到哪里使用呀? 这个怎么导入使用啊?还有就是宽度怎么调整呢?
页:
[1]