Call 传送到("兽人古墓")Function 传送到(mapname)//寻路找老兵自动寻路 265, 272//点击老兵Call 等字点击("老兵", "49.67.78-10.20.30", 20, 45, 500)Call 等字点击(mapname, "ffdf00-050505", 24, 6, 500)Call 等字点击("前往挑战", "ffdf00-050505", 24, 6, 500)//Do//找到了么 = 找字点击("老兵", "49.67.78-10.20.30", 20, 45)//循环找字 防止字被挡住//TracePrint 找到了么//Delay 500//Loop While 找到了么 = - 1 //找不到继续循环 -1 就是找不到 0 就是找到了 跳出循环//上面简化写法//Do//Delay 500//Loop 找字点击("老兵", "49.67.78-10.20.30", 20, 45)=-1//Delay 1000//Do//Delay 1000//Loop 找字点击(mapname, "ffdf00-050505", 24, 6)=-1//Do//Delay 1000//Loop 找字点击("前往挑战", "ffdf00-050505", 24, 6)=-1End FunctionFunction 等字点击(findtext, colortext, px, py, sleep)DoDelay sleepLoop While 找字点击(findtext,colortext, px, py)=-1End FunctionFunction 自动寻路(x, y)地图宽度 = 830地图高度 = 694小地图宽度 = 605小地图高度 = 380横向比例 = 小地图宽度 / 地图宽度纵向比例 = 小地图高度 / 地图高度dm.KeyPress 9 //按 tab 按键Delay 500dm.moveto 94 + (x * 横向比例), 168 + (y * 纵向比例)//94,168是TAB出的小地图左上角起始位置坐标dm.LeftClick //定位 orc 区域y1 = GameH - 30y2 = GameHx1 = 10x2 = 170//取字DoText = dm.Orc(x1, y1, x2, y2, "ffffff-000000", 1.0) //识别文字库文字Text = Replace(Text, "土城", "") //把 土城 这个字换成空坐标组 = Split(Text, ":") // 用 冒号 分割文字 成数组If abs(坐标组(0) - x) < 4 Then //实际坐标与目的地坐标之间差不超过4点距离If abs(坐标组(1) - y) < 4 Then Delay 2000Exit DoEnd IfEnd IfLoopdm.KeyPress 9 //按 tab 按键End FunctionFunction 找字点击(findtext, colortext, px, py)//px,py 是偏移值找字点击 = dm.FindStrFast(0, 0, GameW, GameH, findtext, colortext, 1.0, x, y)If 找字点击 > - 1 Then //找的返回值是0 找不到返回值是 -1dm.moveto x + px, y + pyDelay 200dm.LeftClikEnd IfEnd Function
TracePrint eval("100+10") //输出计算结果函数ExitScript DoIf 找怪() Then dm.Moveto 最近的横, 最近的纵dm.LeftClik Delay 3000End IfLoopIf 打怪() Then dm.Moveto 最近的横+15, 最近的纵+40End IfFunction 打怪()Text=dm.FindStrFastEx(0,0,GameW,GameH-284,"血条","100408-101010",0.9)TracePrint Text怪物列表 = Split(Text, "|")//定义可能的最远距离最近的横 = 32767最近的纵=32767For i = 0 To UBound(怪物列表)怪物信息 = Split(怪物列表(i), ",")If (怪物信息(1) <> 496 and 怪物信息(2) <> 278) Then //排除自己的坐标位置找色横1 = 怪物信息(1) + 10找色横2 = 怪物信息(2) + 20找色纵1 = 怪物信息(2) + 45找色纵2 = 怪物信息(2) + 50//是否是怪If dm.FindColor(找色横1, 找色纵1, 找色纵1, 找色纵2, "ffffff-000000", 1.0, 0, x, y) = 0 Then 距离1 = 两点距离(486, 278, 怪物信息(1), 怪物信息(2))距离2 = 两点距离(486, 278, 最近的横, 最近的纵)//如果这只更近If 距离2 > 距离1 Then 最近的横 = 怪物信息(1)最近的纵 = 怪物信息(2)打怪 = TrueEnd IfTracePrint "是怪"Else TracePrint "不是怪"End Ifx = CLng(怪物信息(1))y = CLng(怪物信息(2))Call dm.ClientToScreen(hWnd, x, y) //吧窗口坐标转换为屏幕坐标MoveTo x + 16, y + 65Delay 50//是否是怪 特征码的方案//If GetCursorShape(0) = 684280064 Then //获取鼠标特征码//距离1 = 两点距离(486, 278, 怪物信息(1), 怪物信息(2))//距离2 = 两点距离(486, 278, 最近的横, 最近的纵)////如果这只更近//If 距离2 > 距离1 Then //最近的横 = 怪物信息(1)//最近的纵 = 怪物信息(2)//打怪 = True//End If//End IfEnd IfNextEnd FunctionFunction 两点距离(x1, y1, x2, y2)两点距离=sqr(((x1-x2)^2)+((y1-y2)^2)))End Function