魔域手游(腾讯魔域手游/魔域口袋版/各渠道服)自动清精英怪的脚本,核心不是“模拟点击”那么简单,而是识图定位精英→寻路靠近→技能循环→拾取判断→脱战回血五段串起来。下面按 AutoHotkey+大漠插件(Windows 安卓模拟器挂机最稳)给一套能直接改了用的骨架,手机端 Auto.js 思路放最后。
一、前置:模拟器与绑定
• 雷电/夜神/蓝叠跑魔域手游,开 1~3 开,分辨率锁 960×540 或 1280×720,DPI 240,别用动态分辨率。
• 大漠 dm.BindWindow 绑模拟器渲染子窗口(雷电是 LdVBoxHeadless 或 dnplayer 主窗下的 Render 子控件),模式 dx.graphic.2d.1 + windows + windows。
- 颜色格式用 RGB,魔域精英怪头顶有金色“精”字标和血条偏色,截图取色时关掉游戏内“高级画质”和“天气特效”,否则找色漂移。
二、精英怪识别(找色+找字)
精英怪特征:名字牌金色、血条黄绿、脚下光圈、部分服带“精英”角标。用大漠多点找色最稳:
; 精英血条特征色(实战自己抓)
eliteBar := "A83200" ; 血条左端暗红
eliteName := "FFD700" ; 名字牌金字
eliteRing := "00FF00" ; 脚下绿圈(部分图)
x:=y:=0
dm.FindColor 0, 0, 960, 540, eliteBar, 1.0, 1, x, y
if (x>0 && y>0) {
; 二次校验名字牌在血条上方 20~40px
dm.FindColor x-20, y-40, x+20, y-15, eliteName, 1.0, 1, nx, ny
if (nx>0) goto Attack
}
嫌找色烦就大漠 FindStr 找“精”字(字库用大漠综合工具抓),但不同服字体不同,找色比找字通用。
三、寻路靠近
魔域手游点地面移动,脚本里不读内存坐标(手游反作弊严),用“朝精英方向点屏”逼近:
; 假设精英在 (ex,ey),角色固定在屏幕中心略下 (cx,cy)
dx := ex - 480
dy := ey - 320
if (abs(dx) > 60) {
; 横向偏移大,点屏幕左侧/右侧地面
tx := dx > 0 ? 700 : 260
ty := 420
dm.MoveTo tx, ty
dm.LeftDown
Sleep 30
dm.LeftUp
Sleep 400 ; 走 0.4 秒
}
if (abs(dy) > 50) {
tx := 480
ty := dy > 0 ? 460 : 280
dm.Click tx, ty
Sleep 400
}
循环这套直到 abs(dx)<60 && abs(dy)<50 进攻击距离。
四、技能循环与攻击
靠近后按职业来,以战士为例(法师把技能键换掉):
Attack:
; 普通攻击键 F1,技能 飞天连斩 F2,风斩 F3
SendInput {F1} ; 平A触发选中
Sleep 200
SendInput {F2} ; 主力输出
Sleep 1500 ; 技能后摇
; 检测精英血条是否消失
dm.FindColor 0,0,960,540, eliteBar, 1.0, 1, cx, cy
if (cx<=0) goto Loot
; 血条还在,补控制
SendInput {F3}
Sleep 800
goto Attack
法师把 F2 换成火旋风、F3 换暴雷;异能者换破灭斩。技能键位在游戏设置里固定,别用默认 Shift+1 这种组合键,模拟麻烦。
五、拾取与脱战
精英死掉后地面爆装备/幻兽蛋/魔石,自动拾取:
Loot:
Loop 5 {
dm.FindColor 0,0,960,540, "FFFF00", 1.0, 1, lx, ly ; 黄字拾取物
if (lx>0) {
dm.Click lx, ly
Sleep 300
}
}
; 回血判断:角色血条(屏幕左下)低于阈值就喝红
dm.FindColor 0,0,200,540, "FF0000", 0.9, 1, hx, hy
; 红条长度用横向找色判断,短了就按 F5 喝药
if (hx < 120) SendInput {F5}
脱战判定:连续 3 次找不到精英血条且角色不被攻击(听不到受击音效/没红屏闪),回巡逻点。
六、巡逻路线(按地图写点)
patrol := [[480,420],[700,300],[200,300],[480,200]]
idx := 0
Tick:
idx := (idx+1) % patrol.Length()
dm.Click patrol[idx][1], patrol[idx][2]
Sleep 2500 ; 走到点
goto Scan
Scan:
; 每 0.5 秒扫一次精英
dm.FindColor ... eliteBar ...
if found goto Attack
Sleep 500
goto Scan
地图换图(洞窟→野外)就改 patrol 数组坐标,别用全局固定点。
七、Auto.js(手机直挂)同逻辑简写
var 精英 = findMultiColors(0,0,1080,1920, "#A83200",[[0,-20,"#FFD700"]]);
if(精英){
var dx = 精英.x - device.width/2;
click(device.width/2 + dx*0.5, device.height*0.7);
sleep(400);
swipe(...); // 靠近
press(技能坐标F2, 50);
sleep(1500);
} else {
click(巡逻点);
sleep(2500);
}
Auto.js 不绑句柄,靠 findMultiColors + click/swipe,抗模拟器但吃截图权限,安卓 10+ 要无障碍或 Root 找色。
八、避坑点
• 模拟器里游戏设“固定UI缩放”,别开“自适应”,不然精英血条坐标每次进图漂。
- 大漠找色相似度设 0.9~1.0,魔域同屏小怪血条和精英同色系,靠名字牌金字二次过滤,否则会去砍普通怪。
• 技能后摇 Sleep 别太短,魔域手游有动作锁,连发 F2 只算一次。
• 多开时每个模拟器实例单独绑 hwnd,AHK 用 #IfWinActive ahk_pid %pid% 隔离。
- 部分服有“自动战斗”系统(点一下挂机),能开就开系统挂机+脚本只管找精英和喝药,比纯模拟点击省事一倍。
脚本本质就是“找色→走位→按键→找色”死循环,不需要读内存不需要封包,大漠找色+SendInput 在模拟器里能跑稳几天不掉。手机直挂走 Auto.js 找色点击,逻辑一模一样,就是把 dm. 换成 findMultiColors 和 click。
一、前置:模拟器与绑定
• 雷电/夜神/蓝叠跑魔域手游,开 1~3 开,分辨率锁 960×540 或 1280×720,DPI 240,别用动态分辨率。
• 大漠 dm.BindWindow 绑模拟器渲染子窗口(雷电是 LdVBoxHeadless 或 dnplayer 主窗下的 Render 子控件),模式 dx.graphic.2d.1 + windows + windows。
- 颜色格式用 RGB,魔域精英怪头顶有金色“精”字标和血条偏色,截图取色时关掉游戏内“高级画质”和“天气特效”,否则找色漂移。
二、精英怪识别(找色+找字)
精英怪特征:名字牌金色、血条黄绿、脚下光圈、部分服带“精英”角标。用大漠多点找色最稳:
; 精英血条特征色(实战自己抓)
eliteBar := "A83200" ; 血条左端暗红
eliteName := "FFD700" ; 名字牌金字
eliteRing := "00FF00" ; 脚下绿圈(部分图)
x:=y:=0
dm.FindColor 0, 0, 960, 540, eliteBar, 1.0, 1, x, y
if (x>0 && y>0) {
; 二次校验名字牌在血条上方 20~40px
dm.FindColor x-20, y-40, x+20, y-15, eliteName, 1.0, 1, nx, ny
if (nx>0) goto Attack
}
嫌找色烦就大漠 FindStr 找“精”字(字库用大漠综合工具抓),但不同服字体不同,找色比找字通用。
三、寻路靠近
魔域手游点地面移动,脚本里不读内存坐标(手游反作弊严),用“朝精英方向点屏”逼近:
; 假设精英在 (ex,ey),角色固定在屏幕中心略下 (cx,cy)
dx := ex - 480
dy := ey - 320
if (abs(dx) > 60) {
; 横向偏移大,点屏幕左侧/右侧地面
tx := dx > 0 ? 700 : 260
ty := 420
dm.MoveTo tx, ty
dm.LeftDown
Sleep 30
dm.LeftUp
Sleep 400 ; 走 0.4 秒
}
if (abs(dy) > 50) {
tx := 480
ty := dy > 0 ? 460 : 280
dm.Click tx, ty
Sleep 400
}
循环这套直到 abs(dx)<60 && abs(dy)<50 进攻击距离。
四、技能循环与攻击
靠近后按职业来,以战士为例(法师把技能键换掉):
Attack:
; 普通攻击键 F1,技能 飞天连斩 F2,风斩 F3
SendInput {F1} ; 平A触发选中
Sleep 200
SendInput {F2} ; 主力输出
Sleep 1500 ; 技能后摇
; 检测精英血条是否消失
dm.FindColor 0,0,960,540, eliteBar, 1.0, 1, cx, cy
if (cx<=0) goto Loot
; 血条还在,补控制
SendInput {F3}
Sleep 800
goto Attack
法师把 F2 换成火旋风、F3 换暴雷;异能者换破灭斩。技能键位在游戏设置里固定,别用默认 Shift+1 这种组合键,模拟麻烦。
五、拾取与脱战
精英死掉后地面爆装备/幻兽蛋/魔石,自动拾取:
Loot:
Loop 5 {
dm.FindColor 0,0,960,540, "FFFF00", 1.0, 1, lx, ly ; 黄字拾取物
if (lx>0) {
dm.Click lx, ly
Sleep 300
}
}
; 回血判断:角色血条(屏幕左下)低于阈值就喝红
dm.FindColor 0,0,200,540, "FF0000", 0.9, 1, hx, hy
; 红条长度用横向找色判断,短了就按 F5 喝药
if (hx < 120) SendInput {F5}
脱战判定:连续 3 次找不到精英血条且角色不被攻击(听不到受击音效/没红屏闪),回巡逻点。
六、巡逻路线(按地图写点)
patrol := [[480,420],[700,300],[200,300],[480,200]]
idx := 0
Tick:
idx := (idx+1) % patrol.Length()
dm.Click patrol[idx][1], patrol[idx][2]
Sleep 2500 ; 走到点
goto Scan
Scan:
; 每 0.5 秒扫一次精英
dm.FindColor ... eliteBar ...
if found goto Attack
Sleep 500
goto Scan
地图换图(洞窟→野外)就改 patrol 数组坐标,别用全局固定点。
七、Auto.js(手机直挂)同逻辑简写
var 精英 = findMultiColors(0,0,1080,1920, "#A83200",[[0,-20,"#FFD700"]]);
if(精英){
var dx = 精英.x - device.width/2;
click(device.width/2 + dx*0.5, device.height*0.7);
sleep(400);
swipe(...); // 靠近
press(技能坐标F2, 50);
sleep(1500);
} else {
click(巡逻点);
sleep(2500);
}
Auto.js 不绑句柄,靠 findMultiColors + click/swipe,抗模拟器但吃截图权限,安卓 10+ 要无障碍或 Root 找色。
八、避坑点
• 模拟器里游戏设“固定UI缩放”,别开“自适应”,不然精英血条坐标每次进图漂。
- 大漠找色相似度设 0.9~1.0,魔域同屏小怪血条和精英同色系,靠名字牌金字二次过滤,否则会去砍普通怪。
• 技能后摇 Sleep 别太短,魔域手游有动作锁,连发 F2 只算一次。
• 多开时每个模拟器实例单独绑 hwnd,AHK 用 #IfWinActive ahk_pid %pid% 隔离。
- 部分服有“自动战斗”系统(点一下挂机),能开就开系统挂机+脚本只管找精英和喝药,比纯模拟点击省事一倍。
脚本本质就是“找色→走位→按键→找色”死循环,不需要读内存不需要封包,大漠找色+SendInput 在模拟器里能跑稳几天不掉。手机直挂走 Auto.js 找色点击,逻辑一模一样,就是把 dm. 换成 findMultiColors 和 click。

