按键精灵实现传奇自动打怪捡装备,依靠屏幕颜色识别、坐标点击、模拟键盘按键完成操作,分为前台模式和后台模式,前台模式游戏窗口不能最小化,后台模式可以后台运行,但是对游戏窗口兼容性有要求,脚本只做键鼠模拟,不会修改游戏内部数据,需要手动调整坐标、颜色参数适配自己的游戏画面。
脚本核心逻辑,循环执行找怪、攻击怪物、等待怪物死亡、拾取掉落装备、回到挂机点位,循环往复。脚本需要先获取游戏窗口句柄,前台脚本直接使用鼠标点击,后台脚本使用窗口句柄发送鼠标消息,避免游戏窗口遮挡导致识别失效。
基础前台挂机脚本示例,适合窗口模式运行,游戏窗口放在屏幕固定位置,需要提前截图获取怪物血条颜色、地面装备掉落的颜色、挂机安全点位坐标。
```
//设置参数,需要根据自己游戏修改
Dim 挂机X,挂机Y,怪物血条颜色,装备掉落颜色
挂机X = 800
挂机Y = 450
怪物血条颜色 = "FF0000"
装备掉落颜色 = "FFFF00"
Do
//查找怪物,屏幕范围内寻找怪物血条颜色
FindColor 0,0,1280,720,怪物血条颜色,intX,intY,0.8
If intX > -1 And intY > -1 Then
//鼠标移动到怪物位置,点击攻击
MoveTo intX, intY
Delay 300
LeftClick 1
Delay 1200
//检测怪物是否死亡,找不到血条代表怪物死亡
FindColor 0,0,1280,720,怪物血条颜色,intX2,intY2,0.8
If intX2 = -1 Then
//怪物死亡,寻找地上掉落装备
FindColor 0,0,1280,720,装备掉落颜色,intX3,intY3,0.8
If intX3 > -1 And intY3 > -1 Then
MoveTo intX3, intY3
Delay 200
LeftClick 1
Delay 600
End If
End If
Else
//没有找到怪物,返回挂机点位
MoveTo 挂机X,挂机Y
Delay 500
LeftClick 1
Delay 800
End If
Loop
```
后台挂机脚本写法,需要获取游戏窗口句柄,使用Hwnd参数发送鼠标消息,游戏窗口可以后台,部分游戏会拦截后台鼠标消息,会出现点击无效。
```
//获取游戏窗口句柄,窗口标题填写传奇游戏窗口标题
Hwnd = Plugin.Window.Find(0, "传奇游戏窗口标题")
If Hwnd = 0 Then
TracePrint "没有找到游戏窗口,请核对窗口标题"
EndScript
End If
Dim 挂机X,挂机Y,怪物血条颜色,装备掉落颜色
挂机X = 800
挂机Y = 450
怪物血条颜色 = "FF0000"
装备掉落颜色 = "FFFF00"
Do
//后台屏幕取色,在游戏窗口内找怪物血条
FindColorEx Hwnd,0,0,1280,720,怪物血条颜色,0,0.8,intX,intY
If intX > -1 And intY > -1 Then
//后台鼠标点击怪物
Call Plugin.Bkgnd.MoveTo Hwnd, intX, intY
Delay 300
Call Plugin.Bkgnd.LeftClick Hwnd, intX, intY
Delay 1200
//检测怪物是否死亡
FindColorEx Hwnd,0,0,1280,720,怪物血条颜色,0,0.8,intX2,intY2
If intX2 = -1 Then
//拾取地上装备
FindColorEx Hwnd,0,0,1280,720,装备掉落颜色,0,0.8,intX3,intY3
If intX3 > -1 And intY3 > -1 Then
Call Plugin.Bkgnd.MoveTo Hwnd, intX3, intY3
Delay 200
Call Plugin.Bkgnd.LeftClick Hwnd, intX3, intY3
Delay 600
End If
End If
Else
//返回挂机点
Call Plugin.Bkgnd.MoveTo Hwnd,挂机X,挂机Y
Delay 500
Call Plugin.Bkgnd.LeftClick Hwnd,挂机X,挂机Y
Delay 800
End If
Loop
```
脚本参数调整说明,颜色识别是脚本能否正常运行的关键,使用按键精灵抓色工具抓取怪物血条的RGB颜色,地面掉落物品的发光颜色,把代码内颜色值替换成抓取得到的数值。相似度参数0.8,代表颜色匹配程度,颜色差异大可以调低到0.7。Delay延时数值,根据自己电脑配置调整,电脑配置差就加大延时,避免点击过快识别错乱。挂机X、挂机Y填写自己想要挂机的安全坐标。
增加防挂机保护,防止角色被怪物围攻,增加血量检测,使用抓色抓取人物血条颜色,血量过低就执行回城。
```
//血量检测,人物血条颜色
人物血条颜色 = "00FF00"
FindColor 0,0,1280,720,人物血条颜色,intX4,intY4,0.6
If intX4 = -1 Then
TracePrint "血量过低,执行回城"
KeyPress "F12",1
Delay 2000
EndScript
End If
```
脚本运行注意事项,前台脚本游戏窗口不能被其他窗口遮挡,遮挡之后颜色识别失效,会出现不打怪不捡物。后台脚本很多游戏会拦截后台鼠标消息,出现点击没有反应,这种情况只能切换前台模式。屏幕分辨率必须固定,修改分辨率之后所有坐标、颜色全部要重新采集。游戏画面设置要统一,关闭动态光影、特效,特效会改变物品、血条颜色,导致颜色识别失效。
脚本常见故障排查,找不到怪物,检查血条颜色是否抓取正确,相似度参数是否合适,游戏画面特效是否关闭。捡不到装备,地面掉落物品颜色抓取错误,物品发光被特效遮挡。角色乱跑,挂机点位坐标设置错误,延时时间太短,脚本循环速度过快。点击没有反应,后台模式不兼容,切换前台运行。
脚本扩展功能,可以增加喝药逻辑,识别血量颜色,血量不足按下药品快捷键。增加过滤捡取,只拾取指定颜色的高级装备,过滤普通垃圾物品。增加随机移动,防止长时间固定坐标挂机,模拟真人操作。增加定时回城,运行一段时间自动回城补给。
使用限制,按键精灵属于键鼠模拟工具,只能模拟玩家手动操作,不能读取游戏内存,无法获取游戏内部怪物、物品数据。游戏内的反作弊检测会识别按键精灵的模拟操作,需要自行承担对应的使用风险。脚本所有坐标、颜色都需要根据自己游戏画面重新采集,直接复制代码无法直接运行,需要修改对应参数。
传奇按键精灵自动打怪捡装备脚本,后台模拟按键与屏幕识别完整编写教程
来源:
作者:
点击:

