当前位置 : 145z游戏站 | 魔域 | 技术教程 | 

魔域手游脚本制作从零开始实战教程

热度:
魔域手游脚本制作和端游不一样,手机端没有鼠标坐标那套好使,主要靠屏幕截图、图像匹配、控件文本、ADB指令、无障碍服务、云手机多开和封包抓包。新手最容易踩的坑是把电脑端游那套“找色找图+按键精灵”直接搬过来,结果安卓权限拿不到、游戏反作弊拦了、分辨率一变全废。

先定环境。电脑Windows装ADB、Scrcpy、Python3、Node、Auto.js开发工具;手机或云手机开USB调试,安卓7以上注意悬浮窗和无障碍权限。真机方便调,云手机适合多开挂机。模拟器用雷电、夜神、MuMu都行,但魔域手游对模拟器有特征检测,新号一进去容易被风控,老号也别开太多同IP同设备。

分辨率必须锁。进游戏前把模拟器或云手机设成1080x1920、480dpi,别开自适应。脚本里所有截图模板都按这个分辨率截,换设备就重截。竖屏游戏别横过来搞,UI坐标会乱。

脚本方案有四条路:

一是Auto.js类无障碍脚本。适合不会逆向的人。用UiSelector找“日常”“挑战”“扫荡”“领取”文本,用click(x,y)点按钮,用images.findImage找怪物血条、体力图标、红蓝条。优点是免ROOT、改起来快;缺点是游戏用OpenGL渲染时找不到原生控件,只能靠图像。

二是Python+OpenCV+ADB。电脑截屏adb shell screencap,拉回来用cv2.matchTemplate找模板,再用adb shell input tap x y点击。战斗里找怪物、找BOSS、找掉落、找任务箭头都这么干。延迟比端游高,手机端正常200-500毫秒一次循环,别搞成每50毫秒截一次,CPU烫了游戏掉帧,反而像机器。

三是协议封包。抓App的TCP/UDP通信,复刻登录、移动、放技能、拾取、交易请求。这条路最像“真外挂”,但魔域手游通信一般有证书绑定、UDP加密、时间戳、签名、角色行为校验,没源码没逆向功底别碰。网上卖的“魔域手游协议端”很多是假包、重放包,跑两天号就没了。

四是以色列式云控。多台云手机跑同样脚本,外面用一台中枢发指令:几点做家族任务、几点抢世界BOSS、几点跑商、几点合幻兽。这种不是单脚本,是调度系统,用MQ或者Redis都行,小团队搬资源才用得到。

最小可运行结构:

1. 连接设备:adb devices看得到串号。
2. 启游戏:adb shell am start 包名/.SplashActivity,魔域手游包名各渠道不同,官网包、应用宝包、华为包、小米包都不是一个。
3. 等加载:截图上用模板匹配“进入游戏”按钮,找到点进去。
4. 主循环:
• 读体力/精力,没了我回城或下线;

• 找“日常”按钮,进任务;

• 任务里找“前往”“挑战”“扫荡”,优先扫荡;

- 战斗中模板匹配怪物,点技能1、技能2、大招,蓝不够喝药;
• 地上掉落用颜色范围筛亮色像素,点过去捡;

• 背包满回城,存仓或熔炼;

• 活动时间表:12点家族副本、晚8点世界BOSS、整点答题,到点在主城自动寻路过去;

- 掉线重登,验证码出现暂停等人点;
• 异常弹窗“网络中断”“版本更新”“账号冻结”各自分支处理。

5. 日志写本地:时间、做了啥、捡到啥、卡在哪、掉线几次。

Auto.js片段思路:
if (text("日常").exists()) {
text("
日常").findOne().parent().click();
}
let monster = images.findImage(captureScreen(), monsterTpl, {threshold:0.7});
if (monster) click(monster.x + 20, monster.y + 20);
if (images.findImage(captureScreen(), hpLowTpl)) {
click(healX, healY);
}


Python思路:
img = cv2.imread('screen.png')
res = cv2.matchTemplate(img, boss_tpl, cv2.TM_CCOEFF_NORMED)
_, _, _, max_loc = cv2.minMaxLoc(res)
if score > 0.8:
os.system(f'adb shell input tap {x} {y}')


图像模板别只截一张。怪物有朝向、有受击闪白、有技能特效盖住,单模板匹配率掉得快。做法是用多张图做模板池,或者只匹配怪物名字底框、血条颜色、头顶黄名红名,比认整个怪稳。红名怪、精英怪、BOSS用颜色阈值分离:把画面转HSV,怪名红通通在H=0附近,异能者蓝名在H=210附近,这样比找图快。

反检测这块别信“官方查不到”。手游端会采触控轨迹:真人点击有压力、有移动、有长短按,脚本是直线move+精准tap,间隔像节拍器。要加随机:点击坐标加减3到8像素,点完睡120到400毫秒随机,技能之间插发呆、转镜头、点空白、看背包、切聊天频道。多开别所有号同时放技能,错开300到900毫秒,像几个朋友各打各的。

账号层面,新号直接挂高级图必被看。起号期手动玩三天:做主线、加家族、聊两句、买东西、被怪打死几次。脚本期先挂低收益日常,再慢慢开挂机打怪、自动合宠、自动跑商。同IP下别一下子挂20个号,分三台云机、三个网段、不同充值记录、不同登录时段。

魔域手游里大家想自动化的活儿就那几样:
• 自动主线:点任务追踪,寻路到点,对话点继续,副本进图自动放技能;

• 自动日常:军团任务、幻兽任务、赏金猎人、竞技场次数、远征、藏宝图;

• 自动战斗:普攻+技能循环,蓝低于30喝蓝,血低于40闪现/回城;

- 自动拾取:经验、魔石、装备、幻兽粮、宝石、蛋;
• 自动合宝宝:背包有副宠就进幻兽界面,低星合高星,属性不合的分解;

• 自动跑商:买低价卖高价,价格表写死容易亏,最好爬拍卖行均价;

• 自动答题:题库先备几百条,截图OCR识题再搜答案,答错就下一题;

- 自动抢BOSS:地图BOSS刷新前30秒寻路到位,刷新瞬间放控制技能,掉东西优先捡红装和魂。

OCR用PaddleOCR或者EasyOCR,别用老tesseract,手游字体描边重、渐变色多,tesseract识别出来全是乱码。题目区域截出来二值化、去描边、放大再识别,正确率能上去。答题脚本最怕活动换题库,作者不更新你就零分。

云手机多开架构:
中枢机跑调度脚本,Redis里存每个账号状态:online/offline/leveling/boss/daily/error。
子机每隔5秒上报:坐标、血量、背包格、当前界面、是否卡加载。
中枢发现子机卡在“资源加载中”超过60秒,发指令“重启游戏”。
中枢发现世界BOSS倒计时,给所有在线号发“前往 coordinates”。
这样比每台机各自死循环稳,出问题能集中看日志。

制作时常见故障:
- 截图像素和模板不一致:模拟器开了硬件鼠标、开了高帧率、开了抗锯齿,UI被渲染糊了,关掉;
• 点不到按钮:界面有动效,按钮还在滑入,脚本就点了,加“按钮存在且稳定0.5秒再点”;

• 战斗一直平A不放技能:技能图标被冷却灰罩盖住,模板匹配到的是灰图,要另做冷却判断,读技能CD遮罩透明度或另截“可放状态”;

- 回城后找不到仓库:主城人多,别的玩家名字挡住NPC,先移动到固定空坐标再找;
• 活动弹窗关不掉:有些“首充”“月卡”弹窗点关闭后还会再弹,脚本要识别“今日不再提示”并点掉;

• 掉线后卡在登录界面:登录按钮和“服务器维护”按钮颜色接近,别只靠颜色,用文字OCR加区域截图;

- 合宠合到主号破产:脚本没设止损,副宠价格高于产出就别合,写个简单账本:今日魔石收入-支出>0才继续。

要是走逆向,工具是Frida、IDA、jadx、Objection。jadx反编译apk看Activity跳转和消息分发,Frida hook关键函数看角色移动、发技能、拾取是否走同一个native方法。魔域手游很多逻辑在libgame.so里,Java层只是壳,不啃so基本只能做上层脚本。Frida注入本身就会被反作弊发现,正规研究用改包重签、脱壳分析、只读不写,别hook发送函数改数值,那是明着送封。

打包发布别做“一键全自动.apk”满世界发。安卓现在targetSdk 33以上,无障碍脚本要用户手动开权限,Auto.js项目导出后别人设备分辨率不同就崩。正确做法是给配置文件:分辨率、包名、服务器名、账号池路径、任务开关、活动时间、拾取白名单。会的人自己填,不会的人别用,省得一边挂机一边骂脚本垃圾。

成本上,纯Auto.js日常脚本两三天能跑起来,战斗寻路加一周;Python+CV适合电脑控多台模拟器,调试麻烦但好扩展;协议级要会SO逆向和通信逆向,没半年别想稳定;云控系统是大佬搬号用的,个人玩家用不上。

魔域手游官方对第三方自动化态度很直接:自动打怪都算违规,自动合宠、自动跑商、自动倒魔石、自动抢拍更不用讲。轻则踢线清收益,重则封号、清战、删角色。研究脚本可以放在虚拟机、模拟器、小号、不充钱的号上,别把主号当小白鼠;别下论坛“魔域手游辅助破解版.apk”,一半带扣费短信、剪贴板劫持、相册偷图、远控木马。

实际能长期用的,不是“最猛”的脚本,是最像人的脚本:
• 早上手动上线领签到;

• 白天挂机只打两三个日常,不刷满;

• 下午关脚本,晚上人工打BOSS;

• 聊天频道偶尔发句“谁有副宠”;

• 被PK死一次不立刻复活,等十秒;

- 背包留几个空格不塞满;
• 魔石不过夜全倒给小号;

这些细节比“每秒多A一下”更能保号。

写脚本前先列任务树:
登录
├─ 日常
│ ├─ 军团任务
│ ├─ 幻兽任务
│ ├─ 赏金任务
│ └─ 竞技场
├─ 挂机
│ ├─ 找怪
│ ├─ 放技能
│ ├─ 捡物
│ └─ 回血
├─ 活动
│ ├─ BOSS
│ ├─ 答题
│ └─ 家族副本
└─ 维护
├─ 掉线重登
├─ 背包清理
├─ 仓库存放
└─ 异常弹窗

每个节点写成函数:doDaily()、findMonster()、castSkill()、pickDrop()、backToCity()、handlePopup()。主循环就是状态机:
state = "daily"
while running:
if state == "daily":
if not has_daily_left(): state = "leveling"
else: do_daily()
elif state == "leveling":
if boss_coming(): state = "boss"
elif bag_full(): back_to_city()
else: fight_loop()
elif state == "boss":
go_boss(); fight_boss(); state = "daily"
elif state == "error":
log(); restart_app()


状态机比一大坨if好维护,哪天活动改了只改boss节点,哪天拾取规则改了只动pickDrop。

模板图管理也讲方法:建目录
templates/
daily/
junta_task.png
hunt_task.png
battle/
monster_hp.png
skill_cd.png
ui/
bag_full.png
popup_close.png
脚本启动时按设备名加载对应目录,换模拟器重截一遍,别硬套。

再说拾取。魔域手游地上东西多,脚本一顿点容易点进商店、点进玩家头像、点到世界频道输入框。稳妥做法是先圈定“可拾取区”:屏幕中心半径300像素内才点,点之前再截一次确认亮点还在,两次确认再tap,误点率能降一大截。白名单用物品名OCR:经验球、魔石、灵魂、幻兽粮、宝石、装备;黑名单:灰装、任务垃圾、重叠在NPC上的假亮点。

合幻兽脚本最烧钱。逻辑别写“见副宠就合”,要写:
• 主宠星级 < 目标不合成;

• 副宠属性成长低于主宠不合成;

• 副宠市场价 > 合出来的估值不合成;

• 今日魔石余额 - 合成手续费 < 保底线不合成;

合完看结果,掉属性就停,连成三次再合容易把主号合崩。

跑商脚本别信固定价表。拍卖行价格随时变,简单做法每小时爬一次热门商品均价,低区买、高区卖,单次利润薄但稳;遇到“限时打折”“军团商人”“跨服商队”再临时提速。脚本里加“如果连续三单亏,暂停30分钟”,别跟市场硬刚。

答题脚本题库从哪来:官方活动公告、玩家群聊天记录、贴吧老帖、上次活动OCR存下来的历史。新题没见过就随机选,别卡住不点,活动答题超时算0分还占在线时间。

BOSS抢怪要多层策略:
1. 提前寻路到位;
2. 刷新前清空技能CD;
3. 刷新瞬间控制技+爆发;
4. 血量低于阈值让小号拉怪、主号收尾;
5. 掉红装优先级高于魔石,别捡了半天魔石被人摸走武器;
6. 同屏多个BOSS时按“剩余血量最少”先补刀,抢最后一击;
这套用纯图像也能做,但反应慢,真打高端本还是得内存/协议,可那一条路基本和封号绑定。

日志格式别花哨:
20260926 21:03:11 [daily] 军团任务 第2/5环 完成
20260926 21:04:02 [fight] 怪物=暗翼狼 技能=烈焰 蓝=58%
20260926 21:06:40 [pick] 经验球x3 魔石x120
20260926 21:09:12 [warn] 卡加载 重启游戏
20260926 21:09:55 [ok] 重登成功 坐标=风车镇

出了事翻日志比瞎改代码强。

权限和合规再说一遍:安卓无障碍、悬浮窗、存储权限、后台弹出界面,不同厂商不同坑。小米要关内存扩展,华为要关纯净模式,OPPO云控会杀后台。脚本跑不起来先查“是不是被系统回收了”,不是游戏改了。

模拟器多开别全开最高画质。魔域手游开“流畅+中帧+关特效”,脚本识图反而更清楚。高画质下技能光效盖怪名,CV匹配率掉;低画质下UI干净,模板好认。

最后落到一个能抄的起步路线:
第一周:模拟器+Scrcpy手动玩,截全套UI图;
第二周:Auto.js点日常、点扫荡、关弹窗;
第三周:Python+ADB做战斗循环,加随机延迟;
第四周:多开两台云手机,跑低收益日常;
第五周:加BOSS时间和答题OCR;
第六周:写日志、写配置、写异常分支,不再天天改代码。
走到这就算“会做魔域手游脚本”了,再往下是逆向和协议,那是另一行饭。

别去追“全自动无敌版”,那种东西活不过一次热更新。能每天自己动、遇到异常知道停、掉线知道重登、活动到了知道去、号能活一个月,才是真能用的魔域手游脚本。
[顶部]