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

魔域按键精灵打怪脚本从零写法教程

热度:
先确认客户端是窗口化,分辨率用 1024x768 或 800x600,系统缩放 100%,DPI 让应用程序自己管。全屏模式按键精灵找色找图会截到黑屏,后台也绑不住。

打怪脚本最小结构就五块:选怪、放技能、喝药、捡物、没怪时走位。前台就能跑,不用一上来装大漠。

一、新建脚本先试键盘

KeyPress "F1", 1
Delay 1000
KeyPress "F2", 1
Delay 1000
KeyPress "F5", 1
Delay 500

能进游戏用小号试,F1/F2 是技能,F5 是红药,具体看你魔域设置里快捷键。跑起来角色会放技能,说明按键精灵能和游戏通信。

二、找怪用颜色比用图省事
魔域怪物头顶或血条有固定色调,野外小怪血条常是红色。先抓色:按键精灵工具栏“抓色”点怪物血条,得到类似 E60000 的十六进制颜色。

找怪点击:

XY = Plugin.Color.FindColor(200, 150, 820, 560, "E60000", 1, 0.9)
If XY <> "-1|-1" Then
arr = Split(XY, "|")
x = CLng(arr(0))
y = CLng(arr(1))
MoveTo x, y
LeftClick 1
Delay 400
End If


区域 (200,150,820,560) 是游戏里怪物可能出现的中间地带,自己用画图量。别全屏找,全屏慢还容易点到 NPC。

三、放技能别固定间隔太死

Sub 打怪
dm 不算,这里先前台:
KeyPress "F1", 1
Delay Rnd(900, 1500)
KeyPress "F2", 1
Delay Rnd(800, 1300)
KeyPress "F3", 1
Delay Rnd(1000, 1600)
End Sub

用 Rnd 让间隔飘一下,比 Delay 1000 死循环像人。魔域里先点怪选中,再放技能才会打中;不点怪直接放,角色会对空气放。

四、喝药看血条
血条一般在左上角。抓满血颜色,比如 FF0000 代表红条;血少了红色区域变短,可以抓“血条右端背景色”来判断。

简单写法:

Sub 喝药
hp = Plugin.Color.FindColor(180, 60, 250, 90, "3A3A3A", 1, 0.9)
If hp <> "-1|-1" Then
KeyPress "F5", 1
Delay 600
KeyPress "F6", 1
Delay 600
End If
End Sub

意思是:原本红血条位置出现了暗色(血没了),就按红蓝药。颜色和条件要自己抓,不能直接抄数值。

五、捡物用找图比找色稳
进游戏等地面出金币,截一小块存成 coin.bmp 放脚本目录;出宝石截 gem.bmp,出蛋截 egg.bmp。

ret = Plugin.Pic.FindPic(200, 300, 820, 560, "coin.bmp", 0.82, intX, intY)
If ret = 0 Then
MoveTo intX + Rnd(-2, 2), intY + Rnd(-2, 2)
LeftClick 1
Delay Rnd(150, 260)
End If

相似度 0.82~0.88 之间调。太高半夜地图暗一点找不到,太低点到地面花纹。

六、没怪时走位

Sub 巡逻
KeyPress 38, 1
Delay Rnd(700, 1200)
KeyPress 39, 1
Delay Rnd(700, 1200)
End Sub

38 上、40 下、37 左、39 右。别一直往一个方向走,容易卡墙角或走进高级怪区。可以写成:上一下、右一下、下一下、左一下,绕小圈。

七、主循环
Call 喝药
Call 找怪打
Call 捡物
Call 没怪巡逻
Call 背包满回城
Delay 200
Loop


找怪打 里先 FindColor 怪血条,找到就点怪再放技能;找不到就跳出,进巡逻。

八、背包满回城
抓背包空格提示,或者数背包格子太麻烦,新手用“捡了 N 次后回城”:

count = count + 1
If count >= 80 Then
KeyPress "F7", 1 // F7 绑回城卷
Delay 3000
count = 0
End If

回城后手动点仓库 NPC 太复杂,先人工存仓,脚本只管出去再打。真要自动存仓就得找 NPC 名字颜色 → 走过去 → 点对话 → 点存储,逻辑长但都是找色找图堆叠。

九、前台脚本完整雏形

Dim count
count = 0

Do
// 喝药
If Plugin.Color.FindColor(180,60,250,90,"3A3A3A",1,0.9) <> "-1|-1" Then
KeyPress "F5", 1
Delay 600
End If

// 找怪
xy = Plugin.Color.FindColor(200,150,820,560,"E60000",1,0.9)
If xy <> "-1|-1" Then
a = Split(xy,"|")
MoveTo CLng(a(0)), CLng(a(1))
LeftClick 1
Delay 300
KeyPress "F1", 1
Delay Rnd(900,1400)
KeyPress "F2", 1
Delay Rnd(800,1300)
Else
KeyPress 38, 1
Delay Rnd(600,1000)
KeyPress 39, 1
Delay Rnd(600,1000)
End If

// 捡物
If Plugin.Pic.FindPic(200,300,820,560,"coin.bmp",0.84,intX,intY)=0 Then
MoveTo intX, intY
LeftClick 1
Delay 200
End If

count = count + 1
If count >= 80 Then
KeyPress "F7", 1
Delay 3500
count = 0
End If

Delay 200
Loop


十、为什么点了怪不放技能
魔域里点怪只是选中,自动攻击没开就停手。两种办法:
1. 游戏设置里开“自动物理攻击/自动施法”;
2. 脚本点怪后紧接着按普通攻击键,再按技能键;

更稳的是点怪 → 等 200ms → F1 → 等 → F2,别点完马上跳转找下一匹怪。

十一、多怪时别只点一个
简单脚本只点第一个怪,效率底。可以循环找 3 次:

For i = 1 To 3
xy = Plugin.Color.FindColor(200,150,820,560,"E60000",1,0.88)
If xy <> "-1|-1" Then
点怪+放技能
End If
Delay 300
Next

真要群怪得用群技能键,还得避开水属性怪、BOSS 怪、反伤怪,新手先单怪挂低级图。

十二、卡墙和掉线处理
卡墙表现:一直按上键但坐标不动。
办法:每次巡逻换方向,记录上次按键,连续两次同上就换键。
掉线:脚本发现登录按钮颜色出现就停,别自动输密码——账号密码写脚本里既危险又被截胡。

十三、想后台不抢鼠标
前面都是前台。要小号后台打怪、大号前台玩,用:

HWND = Plugin.Window.Find("", "魔域")
Call Plugin.Bkgnd.KeyPress(HWND, 112)

但点怪捡物前台命令会抢鼠标,必须上大漠:

Set dm = CreateObject("dm.dmsoft")
dm.BindWindow HWND, "gdi", "windows", "windows", 0
dm.FindColor ...
dm.MoveTo ...
dm.LeftClick

不装大漠就别指望又点怪又完全后台。

十四、魔域不同版本差异
正式版、怀旧版、掉钱版、模拟器版,怪物血条颜色、技能键、回城卷位置都不一样。别人发你脚本直接跑,十有八九区域不对。自己抓色三分钟,比改别人坐标三小时强。

十五、防封这点事
图色+键鼠模拟比内存注入低调,但也不能太机器:
• 点击坐标加 ±3 像素抖动;

• 延时用 Rnd;

• 每 15~30 分钟随机停 2~5 秒;

• 世界喊话别刷;

• 自动交易、自动和玩家买卖别写;

• 深夜 3 点还 0 误差循环,最像挂;

十六、调试顺序
1. 脚本只写 KeyPress F1,看放技能;
2. 加 FindColor 怪血条,不点击,先看 XY 能不能打印出来;
3. 能找到再加 MoveTo+LeftClick;
4. 再加喝药;
5. 再加捡物;
6. 最后加回城;
一步不通就别往下写,不然报错都不知道哪行。

十七、常用按键数值
F1=112 F2=113 F3=114 F4=115 F5=116 F6=117 F7=118 F8=119
上=38 下=40 左=37 右=39
回车=13
这些在 Plugin.Bkgnd.KeyPress 里用数字,前台 KeyPress 用字符串。

十八、新手别踩的坑
• 游戏全屏:改窗口化;

• 缩放 125%:坐标全偏;

• 找色区域抄别人:你界面布局不同;

• 相似度写 1.0:几乎永远找不到;

• 循环里一直 AppActivate:大号被抢焦点;

• 背包满不回城:捡一夜垃圾;

• 小号进 BOSS 图:十分钟被拍死;

• 下载“魔域全能打怪.exe”:基本有东西;

十九、再省事一点
游戏里自带“自动打怪/自动拾取”先开起来,按键精灵只做补技能+喝药+背包满回城,比纯脚本点怪稳得多。官方自带功能不触发第三方特征,脚本只当定时器用:
KeyPress "F1", 1
Delay Rnd(1500, 2200)
KeyPress "F5", 1
Delay Rnd(800, 1200)
// 背包满就按回城
count = count + 1
If count >= 60 Then
KeyPress "F7", 1
Delay 4000
count = 0
End If
Loop


二十、一句话落地
进游戏→窗口化→抓怪血条颜色→抓金币图→写“找怪-点怪-放技能-喝药-捡物-满包回城”循环→小号低级图试 1 小时→别信现成 exe→会改坐标和模板比会下载值钱。

按键精灵做魔域打怪不难,难的是版本一更,颜色变了、界面挪了、怪名改了,你得会自己抓。会抓色找图,脚本自己写也够用;不会抓色,拿别人成品也养不活号。
[顶部]