普通土万象
admin
2024-05-12 05:25:33
0

普通土万象

    • 前言
    • 步骤
    • 源码
      • 字库.txt
    • 需要改进
    • 最后

前言

自动普通土万象

步骤

① 开始游戏
② 抢英雄
③ 判断进入预备地图
④ 多线程 1-自动寻路 2-跳过动画
⑤ 主线程阻塞-判断进入战斗地图
⑥ 战斗
1、多线程 1-蓄力+中闪 2-转向队友以修正方向
2、主线程阻塞-判断通关成功(战斗超时如80s,打破阻塞)
⑦ 返回大厅
以上为匹配,单打开启振刀(振早调延时)和转向敌人(土万象和背景颜色差不多很难识别好)。效率很低,大概4分钟一把,最好匹配。

源码

Call dmcj
Call dmOcrFor 9999Call 开始游戏()Call 使用角色()Call 进入预备地图()xl = BeginThread(寻路(1599, 322))Call 跳过()StopThread xlCall 进入战斗地图()Call 战斗()Call 返回大厅()
NextFunction 战斗()TracePrint "战斗"xlid = BeginThread(蓄力迦南)
//    jzsd = BeginThread(矫正索敌)
//    zd = BeginThread(振刀(xlid))sddy = BeginThread(锁定队友)Call 通关成功(xlid, sddy)
//	StopThread jzsd
//	StopThread zd
End FunctionSub 蓄力TracePrint "蓄力"While 1 = 1RightUp 1RightDown 1Delay 730RightUp 1Delay 1000KeyPress "Shift", 1// 后摇Delay 760Wend
End SubSub 蓄力迦南TracePrint "蓄力"While 1 = 1RightUp 1RightDown 1Delay 20RightUp 1Delay 30KeyPress "Shift", 1Delay 30Wend
End SubSub 振刀(xlid)Call dmcjWhile 1 = 1Delay 10NUM = Plugin.Color.CountColor(456, 259, 1495, 840, "FCEFE2", 0.9)
//		TracePrint NUM
//		If NUM > 600 Then If NUM > 1000 Then PauseThread xlidDelay 50KeyPress "G", 1Delay 1000LeftClick 1Delay 4000ContinueThread xlidEnd IfWend
End SubSub 矫正索敌()Call dmcj判断颜色 = "C1DFF8"While 1 = 1Delay 10NUM = Plugin.Color.CountColor(746, 0, 1080, 720, 判断颜色, 0.92)TracePrint NUMIf NUM > 5 Then Delay 3000dm.MoveR -500, 0Else dm.MoveR 100, 0End IfDelay 10Wend
End SubSub 锁定队友()Delay 1000TracePrint "锁定队友"Call dmcj判断颜色 = "688522"// 如果自己是绿色 就不能判断绿色IfColor 121, 1007, "688522", 0 Then判断颜色 = "AD5A47"End IfIfColor 121, 1007, "000000", 0 Then判断颜色 = "AD5A47"End IfWhile 1 = 1Delay 10FindColor 746,0,1080,720, 判断颜色, intX, intYIf intX > 0 And intY > 0 Then Delay 1000dm.MoveR -300, 0Else dm.MoveR 150, 0End If		Delay 10Wend
End SubFunction 获取坐标()xy = dm.Ocr(1654, 115, 1780, 136, "ffffff-524e4a", 0.92)x = Left(xy, 5)y = Right(xy, 5)
//	TracePrint xy
End FunctionFunction 开始游戏()intXgb = -1While intXgb < 1KeyPress "Space", 1Delay 10dm.MoveTo 0, 0Delay 10gb = dm.FindStr(1547, 941, 1880, 1029, "开始游戏", "ffffff-767b83", 0.90, intXgb, intYgb)If intXgb > 0 Then Delay 100dm.MoveTo intXgb, intYgbDelay 200LeftClick 1Delay 100End If
//		TracePrint gbDelay 100Wend
End FunctionFunction 使用角色()intXur = -1While intXur < 1// 移到角色位置
//		dm.MoveTo 229, 365dm.MoveTo 334, 226ur = dm.FindStr(1613,919,1667,952, "使用", "ffffff-c3abaa", 0.90, intXur, intYur)If intXur > 0 Then LeftClick 1Delay 100dm.MoveTo intXur, intYurDelay 100LeftClick 1Delay 100End If
//		TracePrint urDelay 100Wend
End FunctionFunction 进入预备地图()intXrd = -1While intXrd < 1dm.MoveTo 0,0rd = dm.FindStr(65,64,177,108, "预备", "ffffff-9f9fa0", 0.90, intXrd, intYrd)
//		TracePrint rdDelay 100Wend
End FunctionFunction 进入战斗地图()intXnd = -1While intXnd < 1dm.MoveTo 0,0nd = dm.FindStr(598,19,693,45,"战斗地图","ffffff-342826",0.90,intXnd,intYnd)
//		TracePrint ndDelay 100Wend
End FunctionFunction 跳过()intXps = -1While intXps < 1dm.MoveTo 0,0ps = dm.FindStr(1825,1034,1872,1066, "跳过", "ffffff-cecece", 0.90, intXps, intYps)If intXps > 0 Then Delay 100dm.MoveTo intXps, intYpsDelay 100KeyPress "Esc", 1Delay 100End If
//		TracePrint psDelay 100Wend
End FunctionFunction 通关成功(xlid, sddy)tBegin = Plugin.Sys.GetTime()intXpss = - 1 While intXpss < 1Delay 1000dm.MoveTo 0, 0ps = dm.FindStr(898,204, 1023,228, "即将返回大厅", "ffffff-342826", 0.90, intXpss, intYpss)tUse = Plugin.Sys.GetTime() - tBeginIf tUse > 80000 Then intXpss = 10End IfIf intXpss > 0 Then Delay 100dm.MoveTo intXpss, intYpssDelay 100KeyPress "Esc", 1Delay 100TracePrint "用时:"& tUseEnd IfWendStopThread xlidStopThread sddy
End FunctionFunction 返回大厅()intXbk = -1While intXbk < 1dm.MoveTo 0,0ps = dm.FindStr(915,766,1006,794, "返回大厅", "ffffff-78716f", 0.90, intXbk, intYbk)If intXbk > 0 Then Delay 100dm.MoveTo intXbk, intYbkDelay 100LeftClick 1Delay 300KeyPress "Space", 1End If
//		TracePrint psDelay 1000Wend
End FunctionFunction 矫正方向()dm.MoveTo 0,0intX = -1While intX = -1dm_ret = dm.FindStr(820, 40, 865, 85, "西南", "ffffff-524e4a", 0.70, intX, intY)dm.MoveR 10, 0Delay 5Wend
End FunctionSub 寻路(mbx, mby)Call dmOcr误差 = 0.6微调 = 8倍数 = 30KeyPress "M", 1Delay 500DoCall 获取坐标()If X = "" OR Y = "" ThenKeyPress "W", 1Else If (y - mby) < -误差 Then
//				TracePrint "按w"&(y - mby)&"上"KeyDown "W", 1If Abs(y - mby) > 微调 Then KeyDown "Shift", 1End If
//				KeyPress "Space", 1Delay Abs(y - mby) * 倍数KeyUp "W", 1If Abs(y - mby) > 微调 Then KeyUp "Shift", 1End IfElseIf (y - mby) > 误差 Then
//				TracePrint "按s"&(y - mby)&"下"KeyDown "S", 1If Abs(y - mby) > 微调 Then KeyDown "Shift", 1End IfDelay Abs(y - mby)*倍数KeyUp "S", 1If Abs(y - mby) > 微调 Then KeyUp "Shift", 1End IfElse 
//				TracePrint "X到达"End IfIf (x - mbx) > 误差 Then 
//				TracePrint "按A" & (x - mbx) & "左"KeyDown "A", 1If Abs(x - mbx) > 微调 Then KeyDown "Shift", 1End IfDelay Abs(x - mbx)*倍数KeyUp "A", 1If Abs(x - mbx) > 微调 Then KeyUp "Shift", 1End IfElseIf (x - mbx) < -误差  Then 
//				TracePrint "按D"&(x - mbx)&"右"KeyDown "D", 1If Abs(x - mbx) > 微调 Then KeyDown "Shift", 1End IfDelay Abs(x - mbx)*倍数KeyUp "D", 1If Abs(x - mbx) > 微调 Then KeyUp "Shift", 1End IfElse 
//				TracePrint "Y到达"End Ifcount = count + 1
//			TracePrint 误差 & " " & Abs(mbx - x) & " " & Abs(y - mby)
//			TracePrint Abs(mbx - x) & " " & (Abs(mbx - x) < 误差) & " " & Abs(y - mby) & " :" & (Abs(y - mby) < 误差)If Abs(mbx - x) < 误差 And Abs(y - mby) < 误差 Then TracePrint "XY到达"Exit DoEnd IfEnd IfDelay 100	LoopDelay 200KeyPress "M", 1Delay 500KeyPress "E", 1
End SubSub dmcj大漠,其它地方找,复制进来
End SubSub dmOcrset dm = createobject("dm.dmsoft")base_path = dm.GetBasePath()dm_ret = dm.SetPath(base_path)dm_ret = dm.SetDict(0, "字库.txt")
End Sub

字库.txt

C01800$.$0.0.4$2
3FCE0F00400C02F3CFF0$0$0.0.38$12
401803FFBFF$1$1.2.31$12
40380E03C0CC70FC0400$2$0.0.32$12
40380218430CE0F7CC78$3$0.0.35$12
0180703E0C4709FFFFF804$4$0.0.42$12
1C3F8310660C438FC0F0$5$0.0.37$12
1FCFDF10E208418C50F8$6$0.0.40$12
C0180303E3FDC1E03000$7$0.0.30$12
31EF6718430C60FE4C78$8$0.0.43$12
7C38C20C410C22FFC7E0$9$0.0.39$12
4008FD33A624C8FE1302607F89993126747E000000002FE580B217C6DBF9DB697C2C8590BF900$西南$0.0.171$15
0E03C0780F01E03C0780F01E03C07F8FF1FE3FC7F8F01E03C0780F01E03C0780F01E03C0780F01FE3FC7F8FF1E03C0780F01E03C0780F01E03C000000000000000000020040080100201CFFFFFFFFFE50080100200400801002000000000000000000000601C0F87F7FFFF3F87C06000000000600E03C03803000000000000000000000000000000000300F01E03E03E07C07C07C0F00DC0380700E81DC3FC7FEEFFCFF8FF06E01C0380700E01C0380307EFFFFFFFFFFE87C0F81F03E07C0F81F03E07C0F80F000000000000380780F01E03C0780F01E03C0780F01E03C0780F01F03E07C0F81800000000000001F03FFFFFFFFFFC00000000401C03C07C07C0FC0FC$开始游戏$2.0.3214$46
00401C0F83C1FEFFFE0780BBE77CEE9DC3B8773FFFFFFFE770EE1DC3BE77CEF800000000003FF7FEFFDC638C718E31C63FF7FEE31C638C718E31C63FF7FEFFC$使用$0.0.542$22
7F6FFDFC31F63EFEDFD8E01F3FFFFFFFF001FFFFF87B3E23000000041DC39C79CF19E380740FE1DE39C708E01C1FFFFF8E01C0380$跳过$1.1.401$19
03E00C000000FE1FC00000000000007FFFFE000000000000003F87F000000000007FEFFC3F87F0FE1FC3FFE0FDE1FC3F87F0FE1FDFFBFF000000000200E01C0380700E01C1B87F07E27CC3B87F0FC1E038020000000000300E23FC7F9FFFDFFBDF79FF3FE7F8F716F0DE1FC3F83D$预备$0.1.728$19
0FE1FC00000000000003FFFFE000000000000003F87F000000000007FEFFC3F87F0FE1FC3FFE0FDE1FC3F87F0FE1FDFFBFF000000000000E01C0380700E01C1B87F07E23CC3B87E0F81E038020000000000300E21FC7F9EF7DFFBDF79FF3FE7F8F716F0DE1FC3F801$预备$0.1.692$19
006C0CE18E3086000001FF3FE660CD99B332C618C31963EC798C000000000003FF7FEC018030F63EC7D8C318630C618FB1F600C01803FF7FE000000000180300600C0180300600C01FFFFFF80F0180300600C0180300600C000000000003FE7FCC418C318630C618C318630C798F318630C618C318620$返回大厅$0.0.625$21
0020040080100200400801002004008010020040080000000000000000000000000020040080000000200400F81F007004000000401801000000000000000000000000000000000000000000000000000000000000C018030000040080100000000000000000000000000000000000000000000000000000000000000080100200000000000000000000C01C0$通关成功$9.0.1272$36
3FEFFD10A21442885999FE000000FF900200400801FF000000000000800C008FFF0000042288510A4A58C91126259CE09810020000000460861063800000004FF93022844888A114228590E200000000000007FE8010020043E841082104208410821F400801803FF00000000010020040080100200400DBFE63804C0801002004008010020000000000007FC80110220440881102204408F91022044088110200$即将返回大厅$0.0.491$18
40080100200402DF98C2184308610C21843086107A00400000000000803007918A51983106A9B5F6F25440090120283C000000000000000000000000600C000000000000000016444889113B65448891B2000000085091020059DC03000000000002004028090721F5C8C11022044088110220440881103A00$战斗地图$0.0.295$17

需要改进

① 角色没抢到,应该退出,或者换备选角色
② 有队友退出,应该退出
③ 目前有很多队友g着原地蓄力,跟随容易跟风打空气、 睿智队友一直打远程、队友标点导致识色判断为队友、匹到低等级队友老乱跑甚至躲山崖,
这些都会导致输出不理想,所以设置了战斗超时直接退出。

最后

如果队友正常贴脸输出boss,那么输出也不会差,可以达到40s一把。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...