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

按键精灵魔域自动合BB脚本:完整源码与坐标校准方法

热度:
以下脚本为纯文本格式,可直接用写字板打开编辑,保存后在按键精灵中新建脚本并粘贴使用。代码基于你提供的操作顺序整理,补充了循环结构、次数控制、随机延时和停止热键。坐标部分需要按自己的屏幕分辨率和游戏窗口位置重新取点,照抄原文数值大概率会点偏。

一、基础版(固定次数循环)

这是最接近你原稿的版本,结构清晰,适合先跑通流程。

'==============================================
' 魔域自动合BB脚本 - 基础版
' 适用:6星幻兽合成,带草不带草均可
' 启动:F10 停止:F12
' 注意:坐标必须按自己的屏幕重新取点
'==============================================

Dim count, i
count = 50 ' 合成总次数,按需修改

For i = 1 To count
' 第1步:打开幻兽(宝宝)界面
MoveTo 1009, 143
LeftClick 1
Delay 1200

' 第2步:右键选中要合成的幻兽,左键确认
MoveTo 187, 123
RightClick 1
Delay 600
LeftClick 1
Delay 800

' 第3步:点击合成按钮
MoveTo 1214, 133
LeftClick 1
Delay 2000

' 第4步:关闭结果窗口,回到初始状态
MoveTo 128, 128
LeftClick 1
Delay 1500

' 每完成10次提示一次进度
If i Mod 10 = 0 Then
TracePrint "已完成 " & i & " 次合成"
End If
Next

MessageBox "合成结束,共完成 " & count & " 次"

二、增强版(随机延时加随时停止)

固定延时的脚本容易被系统判定为异常操作,加入随机波动更稳妥,同时支持按F12随时中断。

'==============================================
' 魔域自动合BB脚本 - 增强版
' 特点:延时随机化、F12随时停止、计数显示
'==============================================

Dim count, i, stopFlag
count = 100
stopFlag = False

' 开启F12作为停止键
KeyDown "F12", 1
KeyUp "F12", 1

For i = 1 To count
' 检测是否按下停止键
If GetLastKey() = 123 Then ' F12的键码是123
stopFlag = True
Exit For
End If

Call 合成一次()

' 两次合成之间随机等待3到6秒
Delay RndInt(3000, 6000)
Next

If stopFlag Then
MessageBox "已手动停止,当前完成 " & (i - 1) & " 次"
Else
MessageBox "全部完成,共 " & count & " 次"
End If

'----------------------------------------------
Sub 合成一次()
MoveTo 1009, 143
LeftClick 1
Delay RndInt(1000, 1500)

MoveTo 187, 123
RightClick 1
Delay RndInt(500, 900)
LeftClick 1
Delay RndInt(700, 1200)

MoveTo 1214, 133
LeftClick 1
Delay RndInt(1800, 2500)

MoveTo 128, 128
LeftClick 1
Delay RndInt(1200, 1800)
End Sub

'----------------------------------------------
' 生成min到max之间的随机整数
Function RndInt(min, max)
Randomize
RndInt = Int((max - min + 1) * Rnd + min)
End Function

三、无限循环版(跑到手动停止或材料用完)

不预设次数,适合长时间挂机。建议配合手机闹钟或定时提醒,避免无人看守时出现异常。

Dim i
i = 0

Do
Call 合成一次()
i = i + 1

' 每20次停顿5秒,模拟人工休息
If i Mod 20 = 0 Then
Delay 5000
End If

' 连续运行超过2小时建议手动停一次
If i >= 200 Then
MessageBox "已连续运行200次,建议检查游戏状态后再继续"
Exit Do
End If

Delay RndInt(2000, 4000)
Loop While GetLastKey() <> 123

MessageBox "已停止,累计 " & i & " 次"

四、坐标怎么重新取点

脚本能不能点对位置,取决于这一步。不同分辨率、不同窗口大小或全屏与窗口模式切换后,坐标都会变。

方法一:按键精灵自带取点
打开按键精灵,进入“抓抓”或“抓点抓色”工具。
切换到游戏窗口,把鼠标移到要点击的位置。
记录下显示的X和Y数值。
四个动作各取一个点:开界面、选幻兽、点合成、关窗口。

方法二:手工校准
先把脚本里的Delay全部改成3000,放慢速度方便观察。
只运行第一步,看鼠标实际落在哪里。
偏左就把X减小,偏右就增大;偏上就把Y减小,偏下就增大。
每次只调一个坐标,调完再试,直到四个点全部准确。

方法三:用相对坐标
如果游戏窗口经常移动,绝对坐标会失效。可以先用FindWindow获取游戏窗口句柄,再用窗口内相对坐标点击。这种方式稳定性更好,但写法稍复杂,适合有一定基础的人。

五、几个容易出问题的地方

界面没弹出来就点了下一步
网络卡顿或服务器繁忙时,弹窗可能延迟一两秒。固定延时太短会导致后续点击全部错位。解决办法是把关键步骤的Delay适当加长,或者改用找图判断界面是否出现后再点击。

幻兽被合完了还在点
脚本不会判断背包里还有没有可用的6星幻兽。材料耗尽后它会继续空点,可能误选其他物品。建议设置合理的次数上限,或者中途人工查看一次。

弹出其他窗口打断流程
游戏内的系统公告、活动提示、升级提示等弹窗会挡住目标按钮,导致点击落空。遇到这种情况只能手动处理后再继续,脚本无法自动恢复。

分辨率或缩放变化
Windows的显示缩放设为125%或150%时,取到的坐标和实际点击位置会不一致。建议把缩放调回100%,游戏固定用全屏或固定窗口尺寸运行,取点完成后不要再改动。

注释符号
老版本的按键精灵不支持双斜杠注释,统一使用单引号开头比较保险。中文标点也不能出现在代码里,引号、逗号必须是英文半角。

六、关于带草和不带草的区别

从脚本层面看,带草与不带草的区别仅在于“选中幻兽”那一步的操作对象不同。如果你的流程是:带草时直接左键,不带草时需要先右键再左键,可以把这两步写成两个子程序,通过一个开关变量来控制走哪条分支。

Dim 带草
带草 = True ' 带草改为True,不带草改为False

If 带草 Then
Call 合成带草()
Else
Call 合成不带草()
End If

这样同一份脚本就能适配两种情况,不用来回改代码。

七、使用前的必要提醒

魔域是联网运营的在线游戏,官方用户协议通常禁止使用第三方自动化工具。这类鼠标脚本虽然不涉及内存修改或封包拦截,技术层面上比外挂温和得多,但仍属于自动化操作范畴,存在被系统检测并处罚账号的风险。后果轻则警告,重则封号,且没有申诉空间。

如果要尝试,建议控制单次运行时长,避免整夜无人看守;不要在游戏高峰期或活动密集时段运行;账号内有高价值装备或大量资源时尽量别用。更稳妥的做法是优先使用游戏内自带的自动功能,或者手动完成重复操作。

另外,脚本中的坐标、延时和步骤顺序都是基于你提供的信息编写的模板,实际运行时很可能需要微调。第一次使用请先用小次数测试,确认每一步都点对了再正式跑长循环。
[顶部]