当游戏退出时, 我们要清除读取的信息,比如体力、生命值、内力值、经验值、等级、坐标等等,关键是如何判断游戏是否退出,这就用到了时钟,用FindWindows来检测游戏标题,找见标题说明游戏没有退出,否则已经退出,然后建立一个“在线”的全局变量,在线赋值1,退出赋值2,当然我们也可以检测游戏进程是否存在,来判断游戏是否在线。
第19课511遇见易语言大漠循环判断游戏是否在线
内力变化:
.版本 2
.子程序 内力变化, , , 显示角色的内力变化,通过时钟调用
.局部变量 str, 文本型
.局部变量 s_array, 文本型, , "0"
.局部变量 a, 双精度小数型
.局部变量 b, 双精度小数型
.局部变量 c, 双精度小数型
.局部变量 内力进度条句柄, 整数型
内力进度条句柄 = _启动窗口.进度条_内力.取窗口句柄 ()
.如果 (在线 = 1)
str = dm.Ocr (385, 1, 481, 31, “ffffff-000000”, 1)
.如果真 (取文本长度 (str) > 0)
_启动窗口.标签_内力.标题 = str
a = 到整数 (取文本左边 (str, 倒找文本 (str, “/”, , 假)))
b = 到整数 (取文本右边 (str, 取文本长度 (str) - 倒找文本 (str, “/”, , 假)))
_启动窗口.进度条_内力.位置 = 1000
.如果 (a = b)
_启动窗口.进度条_内力.位置 = 1000
.否则
c = (1 - 到数值 (a ÷ b)) × _启动窗口.进度条_内力.位置
_启动窗口.进度条_内力.位置 = _启动窗口.进度条_内力.位置 - c
.如果结束
发送消息 (内力进度条句柄, 1033, 真, #蓝色)
.如果真结束
.否则
_启动窗口.标签_内力.标题 = “”
_启动窗口.进度条_内力.位置 = 0
经验值变化:
.版本 2
.子程序 经验变化, , , 显示角色的经验变化,通过时钟调用
.局部变量 str, 文本型
.局部变量 s_array, 文本型, , "0"
.局部变量 a, 双精度小数型
.局部变量 b, 双精度小数型
.局部变量 c, 双精度小数型
.局部变量 经验进度条句柄, 整数型
经验进度条句柄 = _启动窗口.进度条_经验.取窗口句柄 ()
.如果 (在线 = 1)
str = dm.Ocr (489, 1, 580, 28, “ffffff-000000”, 1)
.如果真 (取文本长度 (str) > 0)
a = 到整数 (取文本左边 (str, 倒找文本 (str, “%”, , 假) - 1)) ÷ 10000
_启动窗口.标签_经验.标题 = 到文本 (100 × a) + “%”
_启动窗口.进度条_经验.位置 = 1000
c = a × _启动窗口.进度条_经验.位置
_启动窗口.进度条_经验.位置 = c
发送消息 (经验进度条句柄, 1033, 真, #黄褐)
.如果真结束
.否则
_启动窗口.标签_经验.标题 = “”
_启动窗口.进度条_经验.位置 = 0
判断是否在线
.版本 2
.子程序 _时钟1_周期事件
账号密码写入组合框 ()
.如果 (dm.FindWindow (, “剑侠情缘·网络版”) ≠ 0)
在线 = 1
.否则
在线 = 0
.如果结束
体力变化 ()
生命变化 ()
内力变化 ()
经验变化 ()
判断游戏是否退出 ()
源码:易语言大漠循环判断游戏是否在线