小伙伴们大家好~现在脚本挂机都讲究着能够稳定长时间的挂机,但是因为移动设备系统稳定性参差不齐,有时候游戏在挂机中会出现卡死不动的情况,判断游戏是否卡屏成了一个不大不小的问题。这里就让我们来用简单的命令就实现这一功能。 |
>>>> 插件教程目录 <<<<相关命令: 命令名称: | IsDisplayChange |
命令功能: | 判断区域颜色一定时间是否变化 |
参数: | 参数1【必要】:整数型,指定区域的左上角x坐标 参数2【必要】:整数型,指定区域的左上角y坐标参数3【必要】:整数型,指定区域的右下角x坐标参数4【必要】:整数型,指定区域的右下角x坐标参数5【必要】:整数型,指定时间,单位是秒参数6【可选】:整数型,指定时间内每次判断的频率,单位是秒 |
返回值: | 在指定时间内指定区域的屏幕发生变化返回true ,否则到达指定时间后返回false |
游戏卡死的时候往往画面完全不动、或者是部分画面不动,所以我们可以利用这点特性来编写一个判断游戏画面是否卡死的简单的函数
范例:- Import "shanhai.lua"
- // 在指定范围内连续判断8秒是否画面有变化
- If shanhai.IsDisplayChange(21, 25, 96, 69, 8, 1) Then
- TracePrint "画面发生变化"
- ShowMessage "游戏正常"
- Delay 2000
- Else
- TracePrint "画面未发生变化"
- ShowMessage "游戏异常卡屏,自动重启游戏"
- Delay 2000
- // 重启游戏
- KillApp "com.tencent.tmgp.jxqy"
- Delay 5000
- RunApp "com.tencent.tmgp.jxqy"
- End If
复制代码注:这个命令的判断对于变化比较敏感,所以在选取范围的时候尽量不要选择太大的范围,防止游戏画面中有一些粒子动画效果干扰,造成命令的误判。
除了判断卡屏以外,这个命令还可以用在判断游戏中的自动寻路是否到达既定地点的情况上。一些游戏有地图上固定点的自动寻路功能,点击开始自动寻路比较简单,但是要判断知否到达指定的地点就有点麻烦了。我们可以利用这个命令来进行判断。
自动循环的时候游戏画面肯定是大部分都在不停的变化(特别是地面),那我们就可以循环判断地面范围的画面是否有变化来间接的监测是否到了指定地点了。
范例:- Import "shanhai.lua"
- Do
- If shanhai.IsDisplayChange(21, 25, 96, 69, 8, 1) Then
- TracePrint "移动中"
- Else
- TracePrint "画面停止变化,已到达指定地点"
- Exit Do
- End If
- Delay 1000
- Loop
复制代码