- 小学三年级
- 8533714
- 62
- 0
- 45 朵
- 57 个
- 222 个
- 0
- 2021-11-11
|
1#
t
T
发表于 2021-11-12 21:07
|
|只看楼主
ps:近期接到比较多的朋友咨询CQ手游脚本,现来分享一下脚本思路以及常规代码,其实并不是什么高深的的算法,代码,思路也很简单,下面粗略介绍一下 首先。传奇手游,无非围绕着,打金,回收,自动下图等等…… 接下来 分享一份之前自己开发的无卡点脚本(现在游戏是否还在运营我也不知道了) - ///-----初始运行
- Import "zm.luae"
- zm.Init
- Dim 当前应用包名
- 当前应用包名 = sys.GetFront()
- TracePrint 当前应用包名
- zm.SetShowLog "显示"
- Dim 等待最小=clng(ReadUIConfig("等待最小")*1000*60),等待最大=clng(ReadUIConfig("等待最大")*1000*60),密码=ReadUIConfig("密码"),攻击=ReadUIConfig("攻击模式"),模式=ReadUIConfig("模式")
- Dim 使用开关=0,检测开关=0,关闭开关=0,ret ,i,x,y,死亡计数=0,初始元宝,现元宝数值,地图打开卡屏=0,卡屏次数 = 0
- Dim 地图=ReadUIConfig("地图"),子地图=ReadUIConfig("子地图"),城战=ReadUIConfig("城战"),血量开关=ReadUIConfig("血量")
- tsxx ("初始化中,请稍后")
- Delay 1000
- If 城战 = True Then
- tsxx ("初始化中,请稍后" & "\n开启城战等待模式。")
- Delay 2000
- If 血量开关 = True Then
- tsxx ("初始化中,请稍后" & "\n开启城战等待模式" & "\n开启血量检测保护模式。")
- Delay 2000
- Else
- tsxx ("初始化中,请稍后" & "\n开启城战等待模式" & "\n关闭血量检测保护模式。")
- Delay 2000
- End If
- Else
- tsxx ("初始化中,请稍后" & "\n关闭城战等待模式。")
- Delay 1000
- If 血量开关 = True Then
- tsxx ("初始化中,请稍后" & "\n关闭城战等待模式" & "\n开启血量检测保护模式。")
- Delay 1000
- Else
- tsxx ("初始化中,请稍后" & "\n关闭城战等待模式" & "\n关闭血量检测保护模式。")
- Delay 1000
- End If
- End If
- tsxx ("初始化完成即将开始脚本")
- Delay 3000
- ///-----------------------------数组类别--------------------//
- Dim 死亡(),血量()
- dim 元宝={300,125,661,691,"0074C4","24|20|0499D5,-9|18|007ADA,6|14|022A91,18|32|0B84AD,-11|34|5E3410"}
- Dim 元宝1={300,125,661,691,"358ADF","0|-8|29A9D4,9|2|3587D8,-14|5|1D91DD,-8|12|38BCE8,-8|-10|32A8D2,-4|15|1C31CA,16|-3|0B51C5,7|-13|005BDC"}
- 死亡["死亡1"]={239,721,391,954,"4C4640","-11|5|958E8E,-3|12|4E4C50,-11|30|938C8C,1|32|000008,-11|41|747172,-2|41|929288,-4|22|4D555D",true}
- 死亡["死亡2"]={239,721,391,954,"1C161E","-1|5|7D756E,-6|13|857A7C,4|10|9B9183,1|9|5B5A57,-6|30|4F4C50,-6|41|777771,1|34|62605A",true}
- 血量["血量点1"] = {101, 421, 121, 451, "FCFEFE"}
- 血量["血量点2"] = {101, 421, 121, 451, "FFFFFF"}
- ///-----------------------------数组类别结束--------------------//
- '=====================================================================================
- //------------------------------自定义色值------------------------//
- Dim 盟重={640,1149,706,1257,"424342","-11|6|A6A7A7,-15|13|FAFAFA,-15|26|F4F4F4,-7|25|C6C6C6,-13|38|BBBBBB,-2|43|AAAAAA,-6|44|A6A7A7,-13|49|B1B2B2"}
- Dim 回收={"DFDAD8","8|-1|0D0B0A,11|8|CBC4C0,3|15|E2DDDA,13|21|B1AAA5,4|25|F8F7F6,13|34|D8D2CF,2|36|453830,7|46|714830,7|9|221D1A"}
- Dim 回收1={"E1DEDC","-7|10|F2EFED,-12|14|F6F5F4,2|20|FAFAFA,-8|20|FEFEFE,-13|25|B5ADA8,2|29|FCFCFB,-10|31|E8E3E1,1|34|948B86,-8|24|E8E4E1"}
- Dim 自动战斗={317,1078,458,1243,"86CFE1","-9|7|599DBD,-23|12|92E0FF,-24|23|85D2F2,-1|33|8DE2F9,-32|4|BFD5DE,-38|21|7CACBF,-19|19|6DC5ED"}
- //------------------------------自定义色值结束------------------------//
- Dim 返回数组()
- 初始设置
- Do
- For i = 0 To 300
- 死亡检测
- 土城
- 战斗检测
- 主程序判断合集()
- Next
- 卡屏检测()
- Tap 464, 1237'打开背包
- Delay 2000
- 检测背包
- 使用物品 (元宝)
- 使用物品 (元宝1)
- Tap 656,727'关闭背包
- Delay 1000
- Loop
- Function 主程序判断合集()
- If 攻击 = 1 Then
- TouchDown 120, 1189, 1
- TouchMove 185, 1251, 300, 1
- TouchUp 1
- End If
- If 血量开关 = true Then
- 检测血量()
- End If
- End Function
- Function 战斗检测()
- ret = zm.FindMultiColor(自动战斗)
- If ret Then
- tsxx("正在战斗中"&"\n红包检测倒计时:"&300-i&"秒"&"\n已死亡:"&死亡计数&"次"&"\n已产出元宝:"&现元宝数值-初始元宝)
- Else
- tsxx("未开启自动战斗,即将开启")
- Tap 383, 1153
- Delay 1000
- End If
- End Function
- Function 时间判断()
- If 城战 = True Then
- Do
- dim g = DateTime.Hour(now)
- If g >= 20 and g < 22 Then
- TracePrint "在晚8点,到10点之间"
- tsxx("在晚8点,到10点之间")
- Delay 10000
- Else
- Exit Do
- End If
- Loop
- End If
- End Function
- Function 检测血量()
- Dim t = zm.FindColorTable(血量)
- If t Then
- TracePrint "血量低,回城"
- Delay 500
- Tap 178,909'随机
- Delay 500
- Else
- TracePrint "血量健康,继续战斗"
- End If
- End Function
- Function 检测回城石()
- ret = zm.FindMultiColor(136,588,187,639,"392042-292929","-1|11|660872,9|10|8E4C86,8|0|C61B8D,0|-7|A73399,-8|-1|4A0D52,11|17|4B4F55,11|3|CAC7C7,4|-3|A594A1")
- // ret = zm.FindPic(136,588,187,639,"回城石.png",0.85)
- If ret Then
- TracePrint "有回城石"
- Else
- TracePrint "没回城石,进行购买回城石"
- 购买回城石()
- End If
- End Function
- Function 购买回城石()
- Tap 46,382'打开商城
- Delay 2000
- Tap 211,369'点击购买回城石
- Delay 1500
- Tap 272,874'购买
- Delay 1500
- Tap 633,1088'关闭商城界面
- Delay 2000
- End Function
- Function 检测背包()
- Do
- ret = zm.FindPic(157,0,467,1270,"回收.png|回收1.png", true)
- If ret Then
- Delay 500
- 关闭开关 = 0
- TracePrint "找到回收"
- Delay 2000
- Tap 316,287'点击回收
- Delay 1000
- Tap 697,389'关闭回收
- Delay 1000
- Exit Do
- Exit Function
- Else
- TracePrint "没找到回收"
- Tap 464, 1237
- Delay 1500
- 关闭开关 = 关闭开关 + 1
- End If
- If 关闭开关 = 10 Then
- Delay 500
- 关闭开关 = 0
- Delay 1000
- KillApp "com.nnsmt.librxhj"
- Delay 8000
- zm.CollectGarbage
- Delay 1000
- RunApp "com.nnsmt.librxhj"
- Delay 5000
- 启动游戏()
- End If
- Loop
- End Function
- Function 坐标检测(地图名)
- ret = zm.FindPic(493,1203,538,1284,地图名&".png")
- If ret Then
- Delay 500
- 关闭开关 = 0
- TracePrint "已到指定坐标"
- Else
- Delay 500
- 关闭开关 = 关闭开关 + 1
- 找色单击 (死亡)
- TouchDown 232, 226, 1
- Delay 300
- TouchMove 157, 318,1,300
- Delay 1000
- TouchUp 1
- TracePrint "坐标检测"
- 判断寻路
- End If
- If 关闭开关 = 5 Then
- Delay 500
- 关闭开关 = 0
- Delay 1000
- KillApp "com.nnsmt.librxhj"
- Delay 8000
- zm.CollectGarbage
- Delay 1000
- RunApp "com.nnsmt.librxhj"
- Delay 5000
- 启动游戏
- End If
- End Function
- Function 找色单击(参数)
- dim sw = zm.FindMultiColorTable(参数)
- If ret Then
- tsxx("已点击确认")
- Delay 1000
- Else
- TracePrint "没找到确认"
- Delay 500
- End If
- End Function
- Function 死亡检测()
- ret = zm.FindPic("确定1.png|确定2.png|确定3.png|开始.png",true)
- If ret Then
- 死亡1
- 死亡计数 = 死亡计数 + 1
- Else
- TracePrint "还未死亡"
- End If
- End Function
- Function 死亡1()
- Do
- ret = zm.FindMultiColor(盟重)
- If ret Then
- Delay 5000
- zm.Delay(等待最小,等待最大)
- 时间判断
- zm.Delay 1000, 2000
- 启动游戏备用()'单次查找
- If ReadUIConfig("血量") = true Then
- 检测回城石()
- Delay 2500
- End If
- TracePrint "找到土城,技能打开地图"
- 判断寻路
- Exit Do
- Exit Function
- Else
- TracePrint "没在土城"
- Delay 500
- ret = zm.FindPic("确定1.png|确定2.png|确定3.png|开始.png", true)
- Delay 300
- 启动游戏备用()'单次查找
- End If
- Loop
- End Function
- Function 土城()
- ret = zm.FindMultiColor(盟重)
- If ret Then
- Delay 5000
- 时间判断
- Delay 1000
- If ReadUIConfig("血量") = true Then
- 检测回城石
- End If
- TracePrint "在土城"
- 找色单击 (死亡)
- Delay 2500
- TracePrint "找到土城,技能打开地图"
- 判断寻路()
- Else
- TracePrint "没在土城"
- Delay 1000
- End If
- End Function
- Function 判断寻路()
- Select Case 地图
- Case 0
- 四地图
- Case 1
- 四地图
- Case 2
- 四地图
- Case 3
- 四地图
- Case 4
- 四地图
- Case 5
- 九地图
- Case 6
- 九地图
- Case 7
- TracePrint "7号图"
- 九地图
- Case 8
- 九地图
- Case 9
- 九地图
- Case 10
- 十地图
- Case 11
- 十地图
- Case 12
- 十地图
- Case 13
- 十地图
- Case 14
- 十地图
- Case 15
- 十一地图
- Case 16
- 老兵地图
- End Select
- End Function
- Function 老兵地图()
- 打开地图
- Tap 481,571'寻路
- Delay 300
- 关闭地图()
- 坐标检测 ("老兵坐标")
- TracePrint "4"
- 判断进图
- End Function
- Function 四地图()
- 打开地图
- // tap 474,569
- Tap 475,569'寻路
- Delay 300
- 关闭地图()
- 坐标检测 ("0-4坐标")
- TracePrint "4"
- 判断进图
- End Function
- Function 九地图()
- 打开地图()
- Tap 475,558'寻路
- Delay 300
- 关闭地图()
- 坐标检测 ("5-9坐标")
- TracePrint "9"
- 判断进图
- End Function
- Function 十地图()
- 打开地图()
- Tap 475,548'寻路
- Delay 300
- 关闭地图()
- 坐标检测 ("10-14坐标")
- TracePrint "10-14"
- 判断进图
- End Function
- Function 十一地图()
- 打开地图()
- Tap 475,538'寻路
- Delay 300
- 关闭地图()
- 坐标检测 ("十一坐标")
- TracePrint "十一坐标"
- 判断进图
- End Function
- Function 判断进图
- Select Case 地图
- Case 0
- Tap 377, 912'进入血路
- Delay 1000
- 进入地图
- 开启战斗
- Case 1
- Tap 405,711 '点击玛雅
- Delay 1000
- 进入地图
- 开启战斗
- Case 2
- Tap 382,504 '散人之家
- Delay 1000
- 进入地图
- 开启战斗
- Case 3
- Tap 379,307 '猪洞九层
- Delay 1000
- 进入地图
- 开启战斗
- Case 4
- Tap 399,99'地下皇陵
- Delay 1000
- 进入地图
- Delay 200
- TracePrint "调用皇陵子地图"
- 皇陵子地图
- Case 5
- Tap 399,970'传奇之路
- Delay 1000
- 进入地图
- 开启战斗
- Case 6
- Tap 394,772'火龙巢穴
- Delay 1000
- 进入地图
- 开启战斗
- Case 7
- Tap 401,569'雷炎洞穴
- Delay 1000
- 进入地图
- 雷炎子地图
- Case 8
- Tap 376,381'英雄之路
- Delay 1000
- 进入地图
- 开启战斗
- Case 9
- Tap 374,176'玛法古墓
- Delay 1000
- 进入地图
- 开启战斗
- Case 10'恶魔殿堂
- Tap 335,966'恶魔殿堂
- Delay 1000
- 进入地图
- 开启战斗
- Case 11'绝情谷底
- Tap 357,781'绝情谷底
- Delay 1000
- 进入地图
- 绝情子地图()
- Case 12'藏剑山庄
- Tap 351,573'藏剑山庄
- Delay 1000
- 进入地图
- 开启战斗
- Case 13'热血幻境
- Tap 354,369'热血幻境
- Delay 1000
- 进入地图
- 开启战斗
- Case 14'世外桃源
- Tap 352,166'世外桃源
- Delay 1000
- 进入地图
- 开启战斗
- Case 15'冰雪之城
- Tap 364, 915'冰雪之城
- Delay 1000
- 进入地图
- 开启战斗
- Case 16
- Tap 415,706'传送员
- Delay 1000
- 盟重传送员地图
- Delay 1000
- 开启战斗
- End Select
- End Function
- Function 盟重传送员地图()
- Select Case 子地图
- Case 0
- Tap 286,513'幻境7层
- Case 1
- Tap 286,666'王者禁地
- Case 2
- Tap 331,360'赤月老巢
- Case 3
- Tap 284,360'藏宝阁
- End Select
- End Function
- Function 绝情子地图()
- Select Case 子地图
- Case 0
- tsxx("当前选择,绝情谷底地图一层挂机")
- 开启战斗
- Case 1
- ret = zm.FindPic(609,1087,720,1284,"绝情第一层.png")
- If ret Then
- tsxx("当前选择,绝情谷底地图二层挂机")
- 绝情子地图二层寻路()
- Else
- tsxx("当前选择,绝情谷底地图一层挂机")
- 开启战斗
- End If
- End Select
- End Function
- Function 绝情子地图二层寻路()
- tsxx("当前选择,绝情谷底二层挂机")
- 打开地图
- Tap 554,958'雷炎2寻路
- 关闭地图
- 子地图寻路检测 "绝情一坐标", 40, 554, 958
- TracePrint "到坐标"
- Tap 398,438'点击NPC
- Delay 1000
- Tap 289,410'进入第二层
- Delay 2000
- tsxx("已达到绝情谷底二层,即将开启挂机")
- 开启战斗
- End Function
- Function 雷炎子地图()
- Select Case 子地图
- Case 0
- tsxx("当前选择,雷炎洞穴地图一层挂机")
- 开启战斗
- Case 1
- ret = zm.FindPic(609,1087,720,1284,"雷炎第一层.png")
- If ret Then
- tsxx("当前选择,雷炎地图二层挂机")
- 雷炎子地图二层寻路()
- Else
- tsxx("当前选择,雷炎地图一层挂机")
- 开启战斗
- End If
- End Select
- End Function
- Function 雷炎子地图二层寻路()
- tsxx("当前选择,雷炎洞穴二层挂机")
- 打开地图
- Tap 411,376'雷炎2寻路
- 关闭地图
- 子地图寻路检测 "雷炎二层", 10, 411,376
- Tap 290,642'点击NPC
- Delay 1000
- Tap 289, 403'进入第二层
- Delay 2000
- tsxx("已达到雷炎二层,即将开启挂机")
- 开启战斗
- End Function
- Function 皇陵子地图()
- TracePrint 子地图
- Select Case 子地图
- Case 0
- tsxx("当前选择,皇陵地图一层挂机")
- 开启战斗
- Case 1
- ret = zm.FindPic(609,1087,720,1284,"皇陵第一层.png")
- If ret Then
- 皇陵子地图二层寻路()
- Else
- tsxx("当前选择,皇陵地图一层挂机")
- 开启战斗
- End If
- Case 2
- Do
- ret = zm.FindPic(609, 1087, 720, 1284, "皇陵第一层.png|皇陵第二层.png|皇陵第三层.png", 0.8, 返回数组)
- If ret Then
- If 返回数组["id"] = 0 Then
- 皇陵子地图二层寻路
- Delay 1000
- ElseIf 返回数组["id"] = 1 Then
- 皇陵子地图三层寻路
- Delay 1000
- ElseIf 返回数组["id"] = 2 Then
- tsxx ("已到达第三层,开始自动战斗")
- 开启战斗
- Exit Do
- End If
- Else
- ShowMessage "出问题啦,请检查问题"
- TracePrint "出问题了,请检查问题"
- EndScript
- End If
- Loop
- End Select
- End Function
- Function 皇陵子地图二层寻路()
- tsxx("当前选择,皇陵地图二层挂机")
- 打开地图
- Tap 446,693'皇陵2寻路
- 关闭地图
- 子地图寻路检测 "皇陵二层", 30, 446,693
- Tap 353,504'点击NPC
- Delay 1000
- Tap 289, 403'进入第二层
- Delay 2000
- tsxx("已达到地下二层,即将开启挂机")
- 开启战斗
- End Function
- Function 皇陵子地图三层寻路()
- tsxx ("当前选择,皇陵地图三层挂机")
- TracePrint "调用三层"
- 打开地图
- Tap 273,915'皇陵3寻路
- 关闭地图
- 子地图寻路检测 "皇陵三层", 30, 273, 915
- TracePrint "进入1"
- Tap 263,566'点击NPC
- Delay 1000
- Tap 289, 403'进入第三层
- Delay 2000
- tsxx("已达到地下三层,即将开启挂机")
- 开启战斗
- End Function
- Function 子地图寻路检测(地图, 等待时间, x, y)
- TracePrint "调用"
- Do
- ret = zm.FindPic(493,1203,538,1284,地图&".png")
- If ret Then
- tsxx("已到指定坐标")
- 检测开关 = 0
- TracePrint "结束"
- Exit Do
- Exit Function
- Else
- Delay 1000
- 检测开关 = 检测开关 + 1
- End If
- If 检测开关 = 等待时间 Then
- 检测开关 = 0
- 多次未到指定点(30)'自动战斗N秒
- 打开地图
- Tap x,y'皇陵1寻路
- 关闭地图
- End If
- tsxx("寻路延迟倒计时:"&等待时间-检测开关&"秒")
- Loop
- End Function
- Function tsxx(x)
- ShowMessage x,0,1000, 1000
- End Function
- Function 多次未到指定点(循环)
- 开启战斗
- For i = 0 to 循环
- Delay 1000
- tsxx("自动战斗循环等待倒计时:"&循环-i&"秒")
- Next
- End Function
- Function 开启战斗()
- For 2
- Tap 267, 1214'召唤神兽
- Delay 1500
- Next
- Tap 386,1158'自动战斗
- Delay 1000
- End Function
- Function 关闭地图()
- Delay 300
- Tap 663,1057'关闭地图
- Delay 4000
- End Function
- Function 打开地图()
- Tap 625,1190'打开地图
- Delay 1200
- 地图打开验证()
- End Function
- Function 地图打开验证()
- Do
- ret = zm.FindMultiColor(597,596,703,1139,"265B79","-6|0|2A759F,-14|14|2893CE,0|19|27698E,-14|18|2892CE,0|30|286D96,-14|32|2892CE,0|38|214459,-14|48|2894D1,-7|406|6BA1D4")
- If ret Then
- tsxx("已打开地图即将进行随机检测")
- Exit Do
- Exit Function
- Else
- 死亡检测
- Delay 500
- Tap 625,1190'打开地图
- Delay 1800
- 地图打开卡屏 = 地图打开卡屏 + 1
- End If
- If 地图打开卡屏 = 5 Then
- 卡屏次数 = 1
- 卡屏检测()
- End If
- Loop
- End Function
- Function 进入地图()
- Tap 488,140'进入神殿
- Delay 2000
- End Function
- Function 卡屏检测()
- //在5秒内判断屏幕100,100,200,200范围是否卡屏
- tsxx("调用卡屏检测")
- Dim 卡屏 = zm.IsDisplayDead(3,808,27,1273,5000,0.9,10,-2)
- If 卡屏 or 卡屏次数 >= 1 Then
- 卡屏次数 = 0
- TracePrint "出现卡屏了"
- Delay 1000
- KillApp "com.nnsmt.librxhj"
- Delay 8000
- RunApp "com.nnsmt.librxhj"
- Delay 8500
- tsxx("调用游戏启动")
- 启动游戏()
- Else
- tsxx("没有卡屏")
- TracePrint "没有卡屏"
- End If
- End Function
- Function 启动游戏()
- Do
- ret = zm.FindPic(201,588,433,865,"登陆.png",0.9)
- If ret Then
- tsxx("已找到登陆,即将进行密码登陆")
- Delay 500
- Tap 391, 732
- Delay 800
- InputText 密码
- Delay 1000
- Tap ret(1), ret(2)
- Delay 2000
- 死亡1
- Exit Do
- Exit Function
- Else
- tsxx("未找到登陆,自动检测当前界面")
- Delay 1000
- ret = zm.FindPic("启动确定.png|进入游戏.png", true,0.9)
- If ret Then
- tsxx("检测到正在启动进入游戏界面,请耐心等待")
- End If
- End If
- Loop
- End Function
- Function 启动游戏备用()
- ret = zm.FindPic(201,588,433,865,"登陆.png",0.9)
- If ret Then
- Delay 500
- Tap 391, 732
- Delay 800
- InputText 密码
- Delay 1000
- Tap ret(1), ret(2)
- Delay 2000
- Else
- Delay 1000
- ret = zm.FindPic("启动确定.png|进入游戏.png", true)
- If ret Then
- tsxx("检测到正在启动进入游戏界面,请耐心等待")
- End If
- End If
- End Function
- Function 使用物品(参数)
- Do
- ret = zm.FindMultiColor(参数)
- If ret Then
- 使用开关 = 0
- tsxx ("使用物品中,请稍等")
- For 2
- Tap ret(1), ret(2)
- Delay 30
- Next
- Else
- tsxx("没有找到元宝, 不执行点击")
- 使用开关 = 使用开关 + 1
- Tap 276,530'整理按钮
- Delay 800
- End If
- TracePrint 使用开关
- If 使用开关 = 2 Then
- 使用开关 = 0
- tsxx("多次未检测到,即将退出")
- Exit Do
- Exit Function
- End If
- Loop
- End Function
- Function 初始设置()
- //---修改攻击模式
- Tap 554, 1097'点击模式
- Delay 800
- Select Case 攻击
- Case 0
- Tap 549,842'和平
- Case 1
- Select Case 模式
- Case 0
- Tap 549,777'全体攻击
- Delay 500
- Case 1
- Tap 545,905'编组攻击
- Delay 500
- Case 2
- Tap 550,967'行会攻击
- Delay 500
- Case 3
- Tap 552,1028'善恶攻击
- Delay 500
- End Select
- End Select
- //-----识别元宝
- End Function
复制代码
|