分享我的游戏脚本框架

您所在的位置:网站首页 手机按键精灵脚本制作教程源码怎么弄 分享我的游戏脚本框架

分享我的游戏脚本框架

2024-01-15 02:33| 来源: 网络整理| 查看: 265

前段时间由于某手游而入坑按键,弄了一个简单的游戏框架,打算分享给大家,一起讨论学习。欢迎大家多提意见,一起维护,让该框架变得更加强大,更加方便。注:这个框架主要采用的是多点彩色该框架由某大神教程改进而来。地址:http://bbs.anjian.com/showtopic-526643-1.aspx

先说说改进方面:1.增加了校验点击的模块,使得调用更加方便2.增加调试模块/测试3.兼容多线程

再说说使用:1.简单的点击功能

Import "f.mql" //导入框架 //多点采色,导入变量 /* f.pm(key, value) value(array) :就以"左上出征"为例 600,113 这个是你要点击的坐标 后面的参数可参考FindMultiColor命令 */ f.pm("左上出征",Array(600,113,"EEEEEE","-42|-56|4433BB,-25|-36|DDDDCC,-1|68|000000,-1|102|000000,-34|28|DDDDDD")) f.pm("出征准备",Array(66,1141,"FFFFFF","-38|15|FFFFFF,-28|33|FFFFFF,-28|-1|FEFEFF,-38|86|F2F2FC,-54|31|1131EE,-41|-130|1111FF")) f.pm "快速补给", Array(479, 1167, "010101", "1|-72|769BC9,-151|77|050524,-160|83|0A54FF,-203|78|00003B,-214|85|0F56FE") //单个判断点击(key:value) f.clickJudge({"左上出征":"出征准备"}) //判断左上出征,点击出征准备 //多个判断点击1(key:value, key:value......) f.clickJudge ({"左上出征":"出征准备", "出征准备":"快速补给"}) //判断左上出征,点击出征准备,然后判断"出征准备",点击"快速补给" //多个判断点击2( array(key1,key2......): val ) Dim keys = Array("左上出征","出征准备") f.clickJudge ({keys:"快速补给"}) //满足"左上出征"和"出征准备",才点击"快速补给" //多个判断点击3( key: array(val1,val2......) ) Dim vals = Array("快速补给","出征准备") f.clickJudge({ "左上出征":vals })//满足"左上出征",才点击"快速补给"和"出征准备" //多个判断点击4( array(key1,key2......): array(val1,val2......) ) Dim keys = Array("左上出征","出征准备") Dim vals = Array("快速补给","出征准备") f.clickJudge({ keys:vals })//满足"左上出征"和"出征准备",才点击"快速补给"和"出征准备" 复制代码上面仅仅是列出使用方法,还不能使用

2.场景来了,假如我要在第一个界面遇到"左上出征",就点击"出征准备",然后进入第二个界面,在第二个界面遇到"快速补给",就点击"快速补给",然后点击返回第一个界面,最后形成一个循环。

Import "f.mql" //导入框架 //多点采色,导入变量 /* f.pm(key, value) value(array) :就以"左上出征"为例 600,113 这个是你要点击的坐标 后面的参数可参考FindMultiColor命令 */ f.pm("左上出征",Array(600,113,"EEEEEE","-42|-56|4433BB,-25|-36|DDDDCC,-1|68|000000,-1|102|000000,-34|28|DDDDDD")) f.pm("出征准备",Array(66,1141,"FFFFFF","-38|15|FFFFFF,-28|33|FFFFFF,-28|-1|FEFEFF,-38|86|F2F2FC,-54|31|1131EE,-41|-130|1111FF")) f.pm "快速补给", Array(479, 1167, "010101", "1|-72|769BC9,-151|77|050524,-160|83|0A54FF,-203|78|00003B,-214|85|0F56FE") f.pm("返回" , Array(57,96,"000000","-1|-29|000000,-3|-56|29EFFF,4|39|2EF5FF")) //方案1 /* Function 我的业务() Dim vals = array("快速补给","返回") f.clickJudge({"左上出征":"出征准备","快速补给",vals}) End Function f.setFeeder (我的业务) //设置要执行的业务 f.init() //检测并初始化环境 f.execute() //循环执行业务 */ //方案2 Function 出征() If f.clickJudge("左上出征":"出征准备") Then f.setFeeder(返回) //执行返回函数 End If End Function Function 返回() Dim vals = array("快速补给","返回") If f.clickJudge ({"快速补给", vals}) Then f.setFeeder(出征)//执行出征函数 End If End Function f.setFeeder (出征) //设置要执行的业务 f.init() //检测并初始化环境 f.execute() //循环执行业务 复制代码若业务多起来,可弄个注册表,将所有业务放进注册表上,在需要的地方进行业务切换即可,这样可让我们专注在写业务逻辑上。3.多线程。场景:若在网络不好的环境下,经常容易掉线,所以我们必须实时监控游戏是否已经掉线,这时候多线程是一种不错的方案。前面代码省略.... Function 掉线检测fn() Dim i = 0 Do Rem 开始检测 Dim appName = Sys.GetFront()//获取当前app应用包名 If appName "xxx" or f.judge("进入游戏") Then 登录fn() End If KeepCapture Delay 2000 f.clickJudge({"检查网络":"检查网络"}) If f.judge("返回登录") = false Then Goto 开始检测 ReleaseCapture Delay 1000 End If If i > 2 And f.judge("返回登录") Then //尝试3次后重新登录 f.click "返回登录" 登录fn() i=0 ElseIf i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3