例子:一键奶 V2
2026年5月25日大约 4 分钟
一键奶 版本2
利用黑兔超级宏,可以自动扫描团队或小队成员的血量缺口,智能选择合适等级的治疗技能。无需手动切目标,按一下即可完成治疗。
注意
需要黑兔版本 >= 1.11.6,如果正式版低于这个版本,请在黑兔设置里面开启测试版推送
这只是一个例子,你完全可以自己阅读或者让AI阅读黑兔超级宏文档之后(把网址给AI),根据你的需要完善这个函数
适用场景
- 团队副本中快速补血
- 小队任务中自动奶队友
- PVP 中应急治疗
使用方法
如果宏字数不够用,可以把函数放在黑兔的超级宏基础库中:
- 打开黑兔软件 → 超级宏
- 在编辑区填入以下函数代码
- 游戏内使用
/s S HealRaid()调用
或者在游戏里新建一个宏,输入以下内容:
/s S HealRaid()然后把宏拖到动作条上,设置快捷键。按一下即可自动治疗团队中血量缺口最大的成员。
完整代码
在黑兔软件 超级宏 编辑器中输入:
function HealRaid()
-- ============ 配置区(按需修改)============
-- 三个治疗等级,按优先级从高到低排列
-- minLost: 最低血量缺口 maxDist: 最大施法距离(码)
-- spellId: 技能ID name: 技能名称(仅用于调试输出)
local LEVELS = {
{minLost = 5000, maxDist = 40, spellId = 48782, name = "圣光术"},
{minLost = 2000, maxDist = 40, spellId = 48785, name = "圣光闪现"},
{minLost = 1, maxDist = 30, spellId = 48825, name = "神圣震击"},
}
-- 注意:血量缺口相同的等级,靠前的优先级更高
-- ==========================================
local members = TeamMembers()
-- 按优先级遍历每个治疗等级
for _, lv in ipairs(LEVELS) do
local bestLost = 0
local bestInfo = nil
local bestGuid = ""
for i, m in ipairs(members) do
local info = GetUnitInfo(m.guid)
if info and info.health > 0 and info.maxHealth > 0 then
local lost = info.maxHealth - info.health
if lost >= lv.minLost then
local dist = Distance(m.guid)
if dist <= lv.maxDist and lost > bestLost then
bestLost = lost
bestInfo = info
bestGuid = m.guid
end
end
end
end
-- 当前等级有符合条件的目标,直接施放并结束
if bestInfo ~= nil then
print("治疗: " .. bestInfo.name .. "[" .. lv.name .. "] 缺口:" .. bestLost .. " 距离:" .. Distance(bestGuid))
Spell(lv.spellId, bestGuid)
return
end
end
-- 没有需要治疗的队友
print("无需治疗")
end并且点击界面右上角的【保存并且同步到游戏】按钮

工作原理
- 按三个治疗等级的优先级依次扫描
- 每个等级内,找到血量缺口最大且在距离范围内的队友
- 高优先级(紧急)找到目标就直接施放,不再检查低优先级
- 三个等级都没找到合适目标则什么都不做
flowchart TD
A[按下快捷键] --> B[按优先级遍历治疗等级]
B --> C{当前等级:扫描团队成员}
C --> D[跳过死亡/满血成员]
D --> E[检查血量缺口 >= 该等级阈值]
E -->|是| F{距离 <= 该等级最大距离?}
F -->|是| G[记录血量缺口最大的目标]
F -->|否| D
G --> D
E -->|否| D
C --> H{当前等级找到目标?}
H -->|是| I[施放对应技能]
H -->|否| J{还有更低等级?}
J -->|是| C
J -->|否| K[无需治疗]用到的函数说明
| 函数 | 说明 |
|---|---|
TeamMembers() | 获取团队/小队所有成员列表 |
GetUnitInfo(guid) | 通过 guid 获取成员详细信息(血量、状态等) |
Distance(guid) | 获取指定成员与自身的距离(码) |
Spell(技能ID, guid) | 对指定成员施放技能 |
自定义修改
所有可调参数都集中在函数开头的 LEVELS 配置表里,修改时只改配置区即可:
调整治疗等级
local LEVELS = {
-- 调整 minLost(血量阈值)和 maxDist(施法距离)
{minLost = 8000, maxDist = 40, spellId = 大治疗ID, name = "大治疗"},
{minLost = 4000, maxDist = 35, spellId = 中治疗ID, name = "中治疗"},
{minLost = 1, maxDist = 30, spellId = 小治疗ID, name = "小治疗"},
}更换技能
把 spellId 换成你自己职业的治疗技能 ID:
-- 奶萨
{minLost = 5000, maxDist = 40, spellId = 治疗波ID, name = "治疗波"}
{minLost = 2000, maxDist = 40, spellId = 次级治疗波ID, name = "次级治疗波"}
{minLost = 1, maxDist = 30, spellId = 激流ID, name = "激流"}
-- 奶德
{minLost = 5000, maxDist = 40, spellId = 愈合ID, name = "愈合"}
{minLost = 2000, maxDist = 40, spellId = 回春ID, name = "回春"}
{minLost = 1, maxDist = 30, spellId = 迅捷治愈ID, name = "迅捷治愈"}按血量百分比判断(替代绝对血量缺口)
如果需要用百分比而不是绝对数值:
-- 在判断条件中改用 pct
local pct = (info.health / info.maxHealth) * 100
if pct < 60 and dist <= lv.maxDist then
-- 血量低于60%就治疗
end只奶特定小队
for i, m in ipairs(members) do
-- 只治疗第1小队的成员(subgroup 从0开始)
if m.subgroup == 0 then
-- ... 后续逻辑
end
end增加等级数量
配置表支持任意数量的等级,添加新行即可:
local LEVELS = {
{minLost = 8000, maxDist = 40, spellId = 48782, name = "圣光术"},
{minLost = 5000, maxDist = 40, spellId = 48785, name = "圣光闪现"},
{minLost = 2000, maxDist = 35, spellId = 48825, name = "神圣震击"},
{minLost = 1, maxDist = 30, spellId = 25235, name = "恢复"}, -- 新增第四级
}注意事项
- 需要先在黑兔中开启改模型功能,超级宏会自动生效
- 建议关闭杀毒软件或将黑兔目录加入白名单
- 技能 ID 可通过数据库网站(如 db.heitu.org)查询
- 支持全部 60/70/80 级版本客户端(112/114/243/253/343)