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

