按键精灵做热血传奇自动打怪:抓色找怪到循环攻击完整写法

来源: 作者: 点击:
按键精灵做传奇自动打怪不走内存、不读封包,纯靠“抓屏幕颜色/图片+模拟键鼠”跑循环。核心链路就一条:找怪物血条色→锁目标→按攻击键/技能键→检测自身血蓝→低血按喝药键→没怪走位→捡物→回头继续。下面按能直接抄进按键精灵 6.87/2014 版编辑器的顺序拆。

一、前置环境(错一步全脚本偏移)
游戏切 1024×768 窗口化,别全屏,全屏桌面坐标会歪。
进蜈蚣洞或沃玛森林站好,技能栏设:F1=主攻击技能(战士烈火/法师雷电/道士火符),F2=红药,F3=蓝药,空格或 F4=拾取(部分端拾取是双击地面或 Ctrl+空格,按你本服设)。
按键精灵开“抓抓”工具,点工具栏放大镜,绑传奇窗口,截屏抓三类点:
• 怪物血条特征色:选怪物头顶血条中段,记颜色值如 "A52A2A",色偏 0.9。

• 自身血条危险色:把血打到残血截一次,记满血绿和残血红两个色值。

- 地面物品色:金色元宝 "FFD700" 或装备名色,按你要捡的来。
坐标全部用窗口内坐标,不是桌面坐标。

二、基础循环骨架(战士示例,可直接存为 .qms)

Rem 开始
// 先测血
GetColor 400, 500, hpColor
If hpColor = "FFFF00" Then
KeyPress "F2", 1
Delay 800
End If
// 再测蓝
GetColor 400, 520, mpColor
If mpColor = "0000FF" Then
KeyPress "F3", 1
Delay 800
End If

// 找怪
FindColor 300, 100, 724, 568, "A52A2A", 0.9, intX, intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Delay 200
LeftClick 1
Delay 300
KeyPress "F1", 1
Delay 3000
// 捡物(怪死后地面色)
FindColor 300, 100, 724, 568, "FFD700", 0.9, ix, iy
If ix > 0 Then
MoveTo ix, iy
Delay 200
LeftClick 1
Delay 800
End If
Else
// 没怪走位
KeyPress "Right", 1
Delay 500
KeyPress "Down", 1
Delay 500
End If
Delay 1000
Goto 开始

FindColor 前五参是搜索矩形左上X、左上Y、右下X、右下Y、颜色、相似度、输出X、输出Y;范围按 1024×768 缩在角色周围 200 像素内最稳,全屏找会点到远处引怪死。

三、法师/道士改法
法师把 F1 换成雷电术绑定键,火墙另起一段:每隔 5 秒在脚下放火墙,用 Static skillTimer 累加 Delay 判断,到 5000 就 KeyPress "F5", 1(F5 绑火墙)再清零。
道士把左键锁怪改成 Ctrl+W 锁敌(KeyPress "Ctrl+W" 或用 KeyDown/KeyUp 组合),F1 绑灵魂火符,加一行自动给宝宝加血:检测宝宝血条色(抓宝宝血条),低了 KeyPress "F6", 1 喊治愈术。合击服要带英雄就额外 KeyPress "Ctrl+E" 切攻击态、怒满 KeyPress "Ctrl+S"。

四、找图比找色稳的写法
血条颜色在暗背景容易被界面红光干扰,改用 FindPic 抓怪物血条存成 blood.bmp:

FindPic 300, 100, 724, 568, "blood.bmp", 0.9, intX, intY
If intX > 0 Then
MoveTo intX, intY
LeftClick 1
KeyPress "F1", 1
Delay 3000
End If

物品也抓 item.bmp 比单色准,避免捡到地面火把光点。

五、延迟与防规律化(降低被系统挑出来的概率)
所有 Delay 写死固定值必像机器。改随机:

Delay 700 + Int(Rnd() * 300)

攻击间隔 700~1000 毫秒浮动,喝药后等 800~1100,走位 400~600。鼠标点击前加 MoveR Rnd()*3-1, Rnd()*3-1 让落点偏移两三像素,别永远点同一像素。
主循环里每 30 秒插一次“假人工动作”:按 Esc 打开背包等 400 毫秒再 Esc 关掉,或随机按 Tab 切换目标,破“无交互长连点”特征。

六、绑定窗口做后台挂机
前台脚本切出去就瞎点,要后台得拿句柄:

Hwnd = Plugin.Window.Find("", "热血传奇-怀旧区-1服")
Call Plugin.Bkgnd.LeftClick(Hwnd, intX, intY)

Hwnd 名字要和传奇窗口标题栏一字不差,坐标用窗口内坐标(实际X减窗口X)。后台左键用 Bkgnd.LeftClick,键盘用 Bkgnd.KeyPress,这样最小化也能跑。

七、调试顺序(新手最常卡这)
1. 只留找怪+左键点击,不接技能不接喝药,跑 5 分钟看鼠标会不会停到怪物血条上。
2. 加 KeyPress "F1" 看技能栏 CD 转不转。
3. 把血条调到残血,单独测 IfColor 分支会不会按 F2。
4. 最后接走位和捡物。
哪段不动就在那段前加 TracePrint "到找怪了 intX="&intX 看输出,比瞎改坐标快。

八、官服红线
盛趣热血传奇用户协议禁第三方自动化,按键精灵属“模拟键鼠的外挂类工具”,行为检测看操作频率+轨迹规律,不是“不读内存就不管”。你前面在贪玩原始传奇点快了都被关小黑屋,官服盛趣端更严,写脚本只建议在自己开的 1.76 本地服务端或明确允许挂机的授权服里跑,官服正式服挂机按了 F10 启动就可能进 3 小时起步临时禁言禁交易,连挂几天转永久封号。

九、完整可跑文本(战士蜈蚣洞挂机简版)

Hwnd = Plugin.Window.Find("", "热血传奇")
Rem loop
GetColor 400,500,hp
If hp="FFFF00" Then KeyPress "F2",1: Delay 800
GetColor 400,520,mp
If mp="0000FF" Then KeyPress "F3",1: Delay 800
FindColor 300,100,724,568,"A52A2A",0.9,tx,ty
If tx>0 Then
MoveTo tx,ty: Delay 200: LeftClick 1: Delay 300
KeyPress "F1",1: Delay 700+Int(Rnd()*300)
FindColor 300,100,724,568,"FFD700",0.9,ix,iy
If ix>0 Then MoveTo ix,iy: Delay 200: LeftClick 1: Delay 800
Else
KeyPress "Right",1: Delay 500: KeyPress "Down",1: Delay 500
End If
Delay 1000+Rnd()*500
Goto loop

把 "A52A2A" 和你抓的怪血条色、"FFFF00" 和你残血色、"FFD700" 和你要捡的物品色、F1/F2/F3 和你游戏里实际绑定键全替换掉,进图按启动热键(默认 F10)就能转。