// ===================================== 模块1:初始化配置(移除窗口激活,保留核心参数) =====================================
// 移除窗口激活步骤(手动固定游戏窗口后无需此操作)
延时 1000 // 预留1秒准备时间,确保游戏窗口已固定到位
// 核心变量(基于手动固定窗口后的固定坐标)
变量 小地图左=770 // 小地图固定左边界(手动固定后不变)
变量 小地图上=280 // 小地图固定上边界(手动固定后不变)
变量 小地图右=950 // 小地图固定右边界(手动固定后不变)
变量 小地图下=460 // 小地图固定下边界(手动固定后不变)
变量 小地图主角X=860 // 小地图内主角标识位置(固定在小地图中心)
变量 小地图主角Y=370 // 小地图内主角标识位置(固定在小地图中心)
变量 主界面中心X=480 // 主界面主角位置(固定在游戏界面中心,非战斗时)
变量 主界面中心Y=520 // 主界面主角位置(固定在游戏界面中心,非战斗时)
变量 循环次数=0 // 防死循环计数
变量 最大循环次数=2000 // 最大循环次数(可调整)
变量 目标方位="" // 记录目标方位
变量 探索度满=0 // 标记探索度是否100%
变量 识别相似度=0.75 // 图像识别相似度(0.7-0.8可调)
变量 移动后延时=1500 // 移动后等待时间(ms,可调整)
变量 战斗后延时=3000 // 战斗结束后等待时间(ms,可调整)
变量 方位偏移量=70 // 主界面移动偏移量(可调整)
// NPC交互相关变量
变量 NPC点击次数=0 // 记录"确定"点击次数
变量 NPC最大点击次数=10 // 最大点击次数(5-10次可调)
变量 NPC点击超时=0 // NPC点击超时计数
变量 NPC超时阈值=50 // 超时阈值(50次×300ms=15秒)
// ===================================== 修正后的主循环(核心语法修复) =====================================
While 探索度满=0 and 循环次数<最大循环次数
变量 循环次数=循环次数+1
变量 找到目标=0
变量 目标类型=""
// 优先级1:怪物(小地图内50px范围内有效)
找图 小地图左,小地图上,小地图右,小地图下,"Attachment:\怪物.bmp",识别相似度,intTx,intTy
If intTx>0 And intTy>0 Then
变量 相对X=intTx - 小地图左
变量 相对Y=intTy - 小地图上
变量 距离=平方根((相对X - 小地图主角X)^2 + (相对Y - 小地图主角Y)^2)
If 距离≤50 Then
变量 找到目标=1
变量 目标类型="怪物"
End If
End If
// 优先级2:金钱
If 找到目标=0 Then
找图 小地图左,小地图上,小地图右,小地图下,"Attachment:\金钱.bmp",识别相似度,intTx,intTy
If intTx>0 And intTy>0 Then
变量 相对X=intTx - 小地图左
变量 相对Y=intTy - 小地图上
变量 距离=平方根((相对X - 小地图主角X)^2 + (相对Y - 小地图主角Y)^2)
If 距离≤50 Then
变量 找到目标=1
变量 目标类型="金钱"
End If
End If
End If
// 优先级3:宝箱
If 找到目标=0 Then
找图 小地图左,小地图上,小地图右,小地图下,"Attachment:\宝箱.bmp",识别相似度,intTx,intTy
If intTx>0 And intTy>0 Then
变量 相对X=intTx - 小地图左
变量 相对Y=intTy - 小地图上
变量 距离=平方根((相对X - 小地图主角X)^2 + (相对Y - 小地图主角Y)^2)
If 距离≤50 Then
变量 找到目标=1
变量 目标类型="宝箱"
End If
End If
End If
// 优先级4:NPC
If 找到目标=0 Then
找图 小地图左,小地图上,小地图右,小地图下,"Attachment:\NPC.bmp",识别相似度,intTx,intTy
If intTx>0 And intTy>0 Then
变量 相对X=intTx - 小地图左
变量 相对Y=intTy - 小地图上
变量 距离=平方根((相对X - 小地图主角X)^2 + (相对Y - 小地图主角Y)^2)
If 距离≤50 Then
变量 找到目标=1
变量 目标类型="NPC"
End If
End If
End If
// 优先级5:传送门(仅识别,探索度满前不处理)
If 找到目标=0 Then
找图 小地图左,小地图上,小地图右,小地图下,"Attachment:\传送门.bmp",识别相似度,intTx,intTy
If intTx>0 And intTy>0 Then
变量 相对X=intTx - 小地图左
变量 相对Y=intTy - 小地图上
变量 距离=平方根((相对X - 小地图主角X)^2 + (相对Y - 小地图主角Y)^2)
If 距离≤50 Then
变量 找到目标=1
变量 目标类型="传送门"
End If
End If
End If
// ===================================== 模块2.5:目标方位判断(最终、最稳定版本) =====================================
If 找到目标 = 1 And 目标类型 <> "传送门" Then
// 步骤1:计算目标相对于主角的坐标 (使用正确的函数语法)
变量 相对X = Sub(intTx, 小地图左)
变量 相对Y = Sub(intTy, 小地图上)
// 步骤2:将所有需要比较的计算结果,预先存入临时变量 (使用正确的函数语法)
变量 主角Y减10 = Sub(小地图主角Y, 10)
变量 主角Y加10 = Add(小地图主角Y, 10)
变量 主角X减10 = Sub(小地图主角X, 10)
变量 主角X加10 = Add(小地图主角X, 10)
变量 相对X差的绝对值 = Abs(Sub(相对X, 小地图主角X))
变量 相对Y差的绝对值 = Abs(Sub(相对Y, 小地图主角Y))
// 步骤3:在If语句中,只进行变量之间的比较
If 相对Y < 主角Y减10 And 相对X差的绝对值 <= 10 Then
变量 目标方位 = "上"
ElseIf 相对Y > 主角Y加10 And 相对X差的绝对值 <= 10 Then
变量 目标方位 = "下"
ElseIf 相对X < 主角X减10 And 相对Y差的绝对值 <= 10 Then
变量 目标方位 = "左"
ElseIf 相对X > 主角X加10 And 相对Y差的绝对值 <= 10 Then
变量 目标方位 = "右"
ElseIf 相对X < 主角X减10 And 相对Y < 主角Y减10 Then
变量 目标方位 = "左上"
ElseIf 相对X > 主角X加10 And 相对Y < 主角Y减10 Then
变量 目标方位 = "右上"
ElseIf 相对X < 主角X减10 And 相对Y > 主角Y加10 Then
变量 目标方位 = "左下"
ElseIf 相对X > 主角X加10 And 相对Y > 主角Y加10 Then
变量 目标方位 = "右下"
End If
End If
// ===================================== 主界面移动+目标交互 =====================================
// 情况1:找到有效目标(非传送门)
If 找到目标=1 And 目标类型<>"传送门" Then
// 按固定方位移动(主角在中心,直接偏移)
If 目标方位="上" Then 左键点击 主界面中心X, 主界面中心Y - 方位偏移量
ElseIf 目标方位="下" Then 左键点击 主界面中心X, 主界面中心Y + 方位偏移量
ElseIf 目标方位="左" Then 左键点击 主界面中心X - 方位偏移量, 主界面中心Y
ElseIf 目标方位="右" Then 左键点击 主界面中心X + 方位偏移量, 主界面中心Y
ElseIf 目标方位="左上" Then 左键点击 主界面中心X - 方位偏移量, 主界面中心Y - 方位偏移量
ElseIf 目标方位="右上" Then 左键点击 主界面中心X + 方位偏移量, 主界面中心Y - 方位偏移量
ElseIf 目标方位="左下" Then 左键点击 主界面中心X - 方位偏移量, 主界面中心Y + 方位偏移量
ElseIf 目标方位="右下" Then 左键点击 主界面中心X + 方位偏移量, 主界面中心Y + 方位偏移量
End If
延时 移动后延时 // 等待移动到位
// 移动后检测随机战斗
找图 0,0,1920,1080,"Attachment:\结算界面.bmp",识别相似度,intSx,intSy
If intSx>0 And intSy>0 Then
左键点击 intSx+50, intSy+50 // 点击结算返回
延时 1000
Continue // 回到循环开头重新识别
End If
// 目标类型交互逻辑
If 目标类型="怪物" Then
延时 战斗后延时
找图 0,0,1920,1080,"Attachment:\结算界面.bmp",识别相似度,intSx,intSy
If intSx>0 And intSy>0 Then
左键点击 intSx+50, intSy+50
延时 1000
End If
ElseIf 目标类型="金钱" Or 目标类型="宝箱" Then
延时 1500 // 等待拾取动画
ElseIf 目标类型="NPC" Then
// NPC多次点击"确定"逻辑
变量 NPC点击次数=0
变量 NPC点击超时=0
Do
找图 0,0,1920,1080,"Attachment:\确定.bmp",识别相似度,intOkx,intOky
If intOkx>0 And intOky>0 Then
左键点击 intOkx, intOky
延时 800 // 等待对话切换
变量 NPC点击次数=NPC点击次数+1
If NPC点击次数>=NPC最大点击次数 Then Exit Do
Else
变量 NPC点击超时=NPC点击超时+1
延时 300
End If
If NPC点击超时>=NPC超时阈值 Then
MessageBox "NPC对话超时,脚本继续执行"
Exit Do
End If
Loop
End If
// 传送门询问处理(探索度不满时点击不进入)
找图 0,0,1920,1080,"Attachment:\传送门询问.bmp",识别相似度,intQx,intQy
If intQx>0 And intQy>0 Then
找图 0,0,1920,1080,"Attachment:\不进入.bmp",识别相似度,intNx,intNy
If intNx>0 And intNy>0 Then
左键点击 intNx, intNy
延时 1000
End If
End If
// 情况2:无目标,沿边界顺时针探索
ElseIf 找到目标=0 Then
// 识别蓝色边界(固定小地图内找色)
找色 小地图左,小地图上,小地图右,小地图下,"#0099FF",识别相似度,intBx,intBy
If intBx>0 And intBy>0 Then
变量 相对Bx=intBx - 小地图左
变量 相对By=intBy - 小地图上
If 相对Bx < 小地图主角X - 20 Then
左键点击 主界面中心X, 主界面中心Y - 方位偏移量
ElseIf 相对By < 小地图主角Y - 20 Then
左键点击 主界面中心X + 方位偏移量, 主界面中心Y
ElseIf 相对Bx > 小地图主角X + 20 Then
左键点击 主界面中心X, 主界面中心Y + 方位偏移量
ElseIf 相对By > 小地图主角Y + 20 Then
左键点击 主界面中心X - 方位偏移量, 主界面中心Y
End If
Else
// 初始无边界,默认上移
左键点击 主界面中心X, 主界面中心Y - 方位偏移量
End If
延时 移动后延时
// 探索移动后检测随机战斗
找图 0,0,1920,1080,"Attachment:\结算界面.bmp",识别相似度,intSx,intSy
If intSx>0 And intSy>0 Then
左键点击 intSx+50, intSy+50
延时 1000
Continue
End If
End If
// ===================================== 探索度100%后找传送门 =====================================
找图 0,0,1920,1080,"Attachment:\探索度100.bmp",识别相似度,intDx,intDy
If intDx>0 And intDy>0 Then
变量 探索度满=1
变量 找到传送门=0
变量 搜索超时计数=0
变量 最大搜索次数=300 // 90秒超时
变量 螺旋步长=30 // 螺旋移动步长
变量 螺旋方向=0 // 0=右,1=下,2=左,3=上
变量 当前步长次数=1 // 当前方向步数
变量 已走步数=0 // 已走步数
变量 方向切换计数=0 // 方向切换计数器
Do
// 固定小地图内找传送门
找图 小地图左,小地图上,小地图右,小地图下,"Attachment:\传送门.bmp",识别相似度,intTx,intTy
If intTx>0 And intTy>0 Then
变量 相对X=intTx - 小地图左
变量 相对Y=intTy - 小地图上
变量 距离=平方根((相对X - 小地图主角X)^2 + (相对Y - 小地图主角Y)^2)
If 距离<=180 Then
变量 找到传送门=1
Exit Do
End If
End If
// 螺旋探索移动(基于固定主界面中心)
If 螺旋方向=0 Then 左键点击 主界面中心X + 螺旋步长, 主界面中心Y
ElseIf 螺旋方向=1 Then 左键点击 主界面中心X, 主界面中心Y + 螺旋步长
ElseIf 螺旋方向=2 Then 左键点击 主界面中心X - 螺旋步长, 主界面中心Y
ElseIf 螺旋方向=3 Then 左键点击 主界面中心X, 主界面中心Y - 螺旋步长
End If
延时 300
变量 搜索超时计数=搜索超时计数+1
变量 已走步数=已走步数+1
// 螺旋方向切换逻辑
If 已走步数>=当前步长次数 Then
变量 已走步数=0
变量 螺旋方向=(螺旋方向+1)mod4
变量 方向切换计数=方向切换计数+1
If 方向切换计数>=2 Then
变量 当前步长次数=当前步长次数+1
变量 方向切换计数=0
End If
End If
// 超时处理
If 搜索超时计数>=最大搜索次数 Then
MessageBox "传送门搜索超时,脚本暂停"
Exit Do
End If
// 移动中检测随机战斗
找图 0,0,1920,1080,"Attachment:\结算界面.bmp",识别相似度,intSx,intSy
If intSx>0 And intSy>0 Then
左键点击 intSx+50, intSy+50
延时 1000
End If
Loop While 找到传送门=0
// 移动到传送门并进入
If 找到传送门=1 Then
变量 相对X=intTx - 小地图左
变量 相对Y=intTy - 小地图上
// 精准移动到传送门
If 相对Y < 小地图主角Y -10 Then 左键点击 主界面中心X, 主界面中心Y - 方位偏移量
ElseIf 相对Y > 小地图主角Y +10 Then 左键点击 主界面中心X, 主界面中心Y + 方位偏移量
ElseIf 相对X < 小地图主角X -10 Then 左键点击 主界面中心X - 方位偏移量, 主界面中心Y
ElseIf 相对X > 小地图主角X +10 Then 左键点击 主界面中心X + 方位偏移量, 主界面中心Y
ElseIf 相对X < 80 And 相对Y <80 Then 左键点击 主界面中心X - 方位偏移量, 主界面中心Y - 方位偏移量
ElseIf 相对X >100 And 相对Y <80 Then 左键点击 主界面中心X + 方位偏移量, 主界面中心Y - 方位偏移量
End If
延时 移动后延时
// 检测战斗并处理
找图 0,0,1920,1080,"Attachment:\结算界面.bmp",识别相似度,intSx,intSy
If intSx>0 And intSy>0 Then
左键点击 intSx+50, intSy+50
延时 1000
End If
// 点击进入下一层
找图 0,0,1920,1080,"Attachment:\进入.bmp",识别相似度,intEx,intEy
If intEx>0 And intEy>0 Then
左键点击 intEx, intEy
延时 2000
MessageBox "已找到传送门并进入下一层!"
End If
End If
End If
Wend // 主循环结束
// ===================================== 脚本结束提示 =====================================
If 探索度满=1 Then
MessageBox "探索度100%!脚本完成全部任务"
ElseIf 循环次数>=最大循环次数 Then
MessageBox "已达最大循环次数(" & 最大循环次数 & "次),脚本暂停"
End If
您的脚本存在下列错误,将不能正常运行:
语法错误:脚本 我的脚本2 ,第205行,第5个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第136行,第9个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第116行,第58个字符:(错误码19)缺少符号Sub。语法错误:脚本 我的脚本2 ,第116行,第58个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第116行,第36个字符:(错误码121)不是预期的符号 变量或标号。语法错误:脚本 我的脚本2 ,第116行,第9个字符:(错误码103)缺少符号 右括号 ')'。语法错误:脚本 我的脚本2 ,第116行,第9个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第115行,第58个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第115行,第45个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第115行,第9个字符:(错误码103)缺少符号 右括号 ')'。语法错误:脚本 我的脚本2 ,第115行,第9个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第112行,第41个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第112行,第26个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第112行,第9个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第110行,第41个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第110行,第26个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第110行,第9个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第107行,第41个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第107行,第31个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第107行,第22个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第107行,第9个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第106行,第41个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第106行,第31个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第106行,第22个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第106行,第9个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第104行,第46个字符:(错误码0)没有找到合法的符号。语法错误:脚本 我的脚本2 ,第104行,第5个字符:(错误码0)没有找到合法的符号。