监视游戏窗口,实现掉线重连
高高兴兴写脚本,开开心心挂游戏~但是,网络渣的时候游戏掉线怎么办?(游戏掉线还有可能是游戏服务器超负荷,例如热门游戏刚开服的时候,那掉线掉得脸都绿了。)晚上挂机,早上起来看成果,映入眼帘的居然是游戏掉线提示~天啊~这不仅仅是损失一点点挂机成果,最伤的还是我们的心情。掉线!掉线!多么烦躁!掉了就给我自己乖乖重新连上!那么,用脚本该如何实现掉线重连的功能呢?一起来了解看看。
脚本思路
脚本启动之后,循环判断游戏是否掉线,如果掉线则重登游戏,没有掉线则继续循环判断是否掉线。
步骤
1. 监视游戏窗口。循环找掉线提示。监视游戏窗口的方法:
1. 在主程序内调用子程序无限循环判断
2. 启动单独的线程来监视。小编拿武尊游戏做个掉线重连的例子,这里我们选择单独线程的方式来监控。
2. 线程相关命令:
- BeginThread 启动新线程
- StopThread 停止线程运行
- PauseThread 暂停线程运行
- ContinueThread 继续线程运行
3. 启动"监视"线程代码:
```
线程ID BeginThread(监视)
Sub 监视
//判断游戏是否掉线
End Sub
```
在线程中我们要循环查看游戏窗口中有没有出现掉线窗口,我们可以通过找字或者找图的方法,找掉线窗口里的标识图文。
找图技巧
1. 首先将运行游戏的浏览器大小调整到固定大小。本例子中浏览器的窗口大小为:1024,900,并且隐藏了浏览器收藏栏。
2. 把浏览器窗口先移动到屏幕左上角坐标(0,0)位置。
3. 使用抓抓工具将浏览器窗口整个抓取。
4. 在抓抓图像里点击掉线窗口的左上角和右下角获取找图的范围。
5. 经过第四步获取到的找图的范围坐标是相对于屏幕的,如果浏览器窗口移动了,找图范围就是错误的。所以,需要将屏幕坐标转换为浏览器窗口坐标。
掉线处理逻辑
1. 找掉线窗口,找到则点击确定。
2. 找武尊首页的标识图片,例子中小编找的是"武尊首页"这几个文字的截图。
3. 如果找到这张图,说明是第二种情况,掉线太久了之后返回到武尊游戏首页。点击上次进入的区服。
4. 如果没有找武尊首页的截图,则开始找角色界面里的"进入游戏"按钮截图。找到则点击。
通过以上步骤,我们就可以实现武尊游戏掉线重连的功能了。
掉线重连脚本
```
Dim Env sRect //定义环境变量 -因为这个值是要传递到线程中的,如果是局部变量是不支持线程的。
PutAttachment "c:a*.bmp" //释放图片
hwnd () //获取鼠标指向窗口的窗口句柄
Call (hwnd, 1024, 900)//设置窗口大小为1024,900
sRect (Hwnd) //获取窗口客户区大小
//////////////////////////////////////////////////////////
BeginThread 监视
Sub 监视
MyArray Split(sRect, "|")
Do //循环找掉线窗口,找到的话才进入第二个循环
L Clng(MyArray(0)): T Clng(MyArray(1)) //获取窗口左上角坐标
FindPic L 300,T 413,L 721,T 611,"C:掉线.bmp", 0.9,intX,intY //找掉线重连图片
If intX > 0 And intY > 0 Then
MoveTo L 568, T 566
LeftClick 1
Do //第二个循环,循环找是不是首页,是的话点击进入区服,不是的话则进入下一个循环。
FindPic L 9,T 144,L 100,T 195,"C:武尊首页.bmp", 0.9,intX,intY //找游戏首页里的"武尊首页"字体图片 判断是不是在游戏首页
If intX > 0 And intY> 0 Then
MoveTo L 72, T 683
LeftClick 1
Delay 200
End If
Do//第三个循环,找角色界面的进入游戏按钮,找到的话则点击,没有找到则继续查找
FindPic L 414,T 701,L 623,T 780,"C:进入游戏.bmp", 0.9,intX,intY //找角色界面里的"进入游戏"字体图片 判断是不是在角色选择界面
If intX > 0 And intY > 0 Then
MoveTo intX,intY
LeftClick 1
Delay 200
End If
loop
Loop
End If
Loop
End Sub
```
通过以上代码,我们可以实现武尊游戏掉线后自动重新登录的功能。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。