- 初中三年级
- 2220985
- 396
- 0
- 532 朵
- 2506 个
- 334 个
- 480
- 2013-10-27
|
1#
t
T
发表于 2014-11-26 15:40
|
|只看楼主
简单几个步骤实现游戏掉线重连 本文由按键学院提供技术支持 高高兴兴写脚本,开开心心挂游戏~ 但是,网络渣的时候游戏掉线怎么办? (游戏掉线还有可能是游戏服务器超负荷,例如热门游戏刚开服的时候,那掉线掉得脸都绿了。) 晚上挂机,早上起来看成果,映入眼帘的居然是游戏掉线提示~ 天啊~这不仅仅是损失一点点挂机成果,最伤的还是我们的心情。 掉线!掉线!多么烦躁!掉了就给我自己乖乖重新连上!
那么,用脚本该如何实现掉线重连的功能呢? 一起来了解看看。 |
| 脚本思路脚本启动之后,循环判断游戏是否掉线,如果掉线则重登游戏,没有掉线则继续循环判断是否掉线。 |
- 您所在的用户组无法下载或查看附件
步骤监视游戏窗口的方法: 1 在主程序内调用子程序无限循环判断 弊端:如果主程序中有一个地方卡住了,那么作为监控用的子程序也会卡住,无法再进行监测。 2 启动单独的线程来监视。 | 小编拿武尊游戏做个掉线重连的例子,这里我们选择单独线程的方式来监控。建立一个线程,名作 :监视。 |
线程相关命令:
命令名称 | BeginThread 同时运行过程
| 命令功能 | 新开一个线程运行当前脚本,从指定的过程开始运行
| 命令参数 | 过程名
| 返 回 值 | 整数型,线程ID
|
代码示例:线程ID=BeginThread(监视) //方法1:启动线程,并且将启动的线程的id返回给变量线程id BeginThread 监视 //方法2:启动线程,没有返回值的写法 编程好习惯,启动了线程之后,不需要使用的时候要记得停止线程 。 |
命令名称 | StopThread 停止线程运行
| 命令功能 | 停止某个线程的运行
| 命令参数 | 整数型,线程ID编号
| 返 回 值 | 无
|
代码示例: StopThread 线程ID 这里的停止是指关闭了线程。如果希望只是暂时停止线程,一会儿还要重新继续这个线程,可以使用暂停线程的命令 |
命令名称 | PauseThread 暂停线程运行
| 命令功能 | 暂停某个线程的运行
| 命令参数 | 整数型,线程ID
| 返 回 值 | 无 |
代码示例:PauseThread 线程ID 暂停之后想要继续运行线程,使用继续线程运行命令。 假设之前的线程是负责往记事本里依次输入1-100的数字,当输入到59的时候我们停止了线程,那么脚本就暂停对记事本输入。当我们使用继续线程命令恢复线程运行后,脚本会对记事本继续输入,继续输入60-100. |
命令名称 | ContinueThread 继续线程运行
| 命令功能 | 继续某个线程的运行
| 命令参数 | 整数型,线程ID
| 返 回 值 | 无 |
启动“监视”线程代码:
- 线程ID = BeginThread(监视)
- Sub 监视
- //判断游戏是否掉线
- End Sub
复制代码在线程中我们要循环查看游戏窗口中有没有出现掉线窗口,我们可以通过找字或者找图的方法,找掉线窗口里的标识图文,例子中,小编使用找图的方法。 | 武尊掉线提示:- 您所在的用户组无法下载或查看附件
找图技巧: 1、 首先将运行游戏的浏览器大小调整到固定大小。本例子中浏览器的窗口大小为:1024,900 浏览器:360浏览器 并且隐藏了浏览器收藏栏 收藏栏隐藏快捷键 ctrl+B 2、 把浏览器窗口先移动到屏幕左上角坐标(0,0)位置。 3、 使用抓抓工具将浏览器窗口整个抓取。 4、在抓抓图像里点击掉线窗口的左上角和右下角获取找图的范围。 - 您所在的用户组无法下载或查看附件
左上角 - 您所在的用户组无法下载或查看附件
右下角 5、 经过第四步获取到的找图的范围坐标是相对于屏幕的,如果浏览器窗口移动了,找图范围就是错误的。所以,需要将屏幕坐标转换为浏览器窗口坐标。 转换方法详见: 【院刊】-【201409期】前台坐标与后台坐标转换武尊这款游戏,有的代理平台支持记录账号,有的平台不支持。也就是说,有的平台掉线之后不需要再次输入账号密码,而有的则需要。 小编今天登录的是37武尊,这个平台是有记录账号功能的。 |
37武尊掉线处理有如下两种情况: 1、掉线断网的时间不长,那么点击掉线提示窗口里的确定之后即会回到,角色选择界面。这个时候再点击进入游戏即可。 2、掉线断网时间过长,点击掉线提示窗口的确定之后会返回到武尊游戏的首页。这个时候需要点击区服,进入到角色界面之后再点击进入游戏。 实际上,这两种情况,我们做三个判断就可以实现重连。步骤:1、找掉线窗口,找到则点击确定。 2、找武尊首页的标识图片,例子中小编找的是 武尊首页 这几个文字的截图。- 您所在的用户组无法下载或查看附件
3、如果找到这张图,说明是第二种情况,掉线太久了之后返回到武尊游戏首页。 点击上次进入的区服。- 您所在的用户组无法下载或查看附件
4、如果没有找武尊首页 的截图,则开始找 角色界面里的 进入游戏 按钮截图。找到则点击。 - 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
代码- DimEnv sRect //定义环境变量 -因为这个值是要传递到线程中的,如果是局部变量是不支持线程的。
- PutAttachment "c:\","*.bmp" //释放图片
- hwnd = Plugin.Window.MousePoint() //获取鼠标指向窗口的窗口句柄
- Call Plugin.Window.Size(hwnd, 1024, 900)//设置窗口大小为1024,900
- sRect = Plugin.Window.GetClientRect(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
复制代码 武尊掉线重连Q文件下载:- 您所在的用户组无法下载或查看附件
本文由按键学院提供技术支持 ━═━═━━═━═━━═━═━◥◤━═━═━━═━═━━═━═━ 按键学院开班【手机按键】 重金招募导师! 按键学院实战班
|