传奇 BOSS 战的经典阵型:战士顶在前面拉仇恨扛伤害,道士后方治疗施毒,法师远程输出。战法道的铁三角靠仇恨机制黏合,引擎里的仇恨值计算与嘲讽类技能是阵型成立的技术底座。
function Hate.add(mob, plrId, points)
local h = mob.hate[plrId] or 0
mob.hate[plrId] = h + points
Hate.retarget(mob)
end
function Hate.retarget(mob)
local top, topScore = nil, 0
for id, score in pairs(mob.hate) do
local factor = 1
local plr = QF_GetPlayer(id)
if plr:HasState("taunting") then factor = 2 end
if score * factor > topScore then top, topScore = id, score * factor end
end
if top and top ~= mob.target then
mob:SetTarget(top)
end
end
仇恨按伤害、治疗量与嘲讽加成分桶累计:造成 1 点伤害加 1 点仇恨,治疗量按一半折算,嘲讽状态把仇恨权重翻倍。retarget 在每次仇恨变动后重排目标,战士的输出不高但嘲讽翻倍让怪物始终盯着盾位。
-- 战士技能触发:狮子吼
function QF.Taunt(plr)
local targets = QF_GetMonstersInCircle(plr.x, plr.y, 4)
for _, mob in ipairs(targets) do
local cur = mob.hate[plr.id] or 0
local top = Hate.topScore(mob)
mob.hate[plr.id] = math.max(cur, top * 1.2)
end
plr:SetState("taunting", 5000)
plr:SendMsg("狮子吼!仇恨已拉取")
return true
end
狮子吼把战士的仇恨值瞬间抬到当前仇恨第一名的 1.2 倍并保持 5 秒嘲讽状态,救场与开怪的开关技能。仇恨的衰减机制:脱离战斗 10 秒后仇恨按每秒 5% 衰减,仇恨表不会永远记仇。法师的仇恨管理是输出节奏的自我克制,开局三秒不放大技能等战士建立仇恨是铁三角的默契起点。
BOSS 战的目标切换频次统计,频繁切换说明仇恨权重需要调参,稳定仇恨是战斗体验的隐形地基。
治疗仇恨的系数曾经与伤害等权,道士一管蓝把自己奶成第一仇恨,折半系数后铁三角的站位才稳定。嘲讽状态的翻倍因子对免疫嘲讽的 BOSS 曾经照常生效,免疫表补齐后 BOSS 战的仇恨策略回归职业设计。
仇恨面板的实时数据在组队界面可选开启,开启后每个成员能看到自己的仇恨占比,站位分工的沟通成本被数据化降低。坦克的嘲讽技能冷却 12 秒,窗口的把握是坦克技术的核心,嘲讽空窗期的输出收敛是团队默契的试金石。BOSS 战的站位图例在每张副本的攻略页有标准图示:坦克位、治疗位、输出位的三角站位是铁三角的空间表达。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 把接口串成功能:一个 BOSS 血条窗口覆盖前端的大半接口面——窗口的打开、控件的创建、网络消息的接收、…
实战应用:用在哪里 控件会动才有生命: GUI:ActionMoveTo 、 ActionFadeIn 、 ActionSc…
实战应用:用在哪里 活动图标、在线奖励按钮、红点提示这些常驻元素要钉在主界面的固定区域: GUI:Attach_MainTo…
实战应用:用在哪里 玩家的每个操作都要有回声: SL:ShowSystemTips 是屏幕中央的系统提示(操作失败、领取成功…
实战应用:用在哪里 前端拿到的大量数据是"字符串形态"的:服务端 sendluamsg 的字符串参数、配置表的行文本、本地缓…
实战应用:用在哪里 界面的炫彩体验有一半来自特效: GUI:Effect_Create 把引擎特效挂到界面控件上,按钮的流光…