CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
进阶实战游戏功能996引擎

焚天气焰:敢贴身就让它也烧起来

2026-09-30 02:23 作者:996 技术组 996引擎Lua教程传奇脚本进阶实战游戏功能996引擎

【游戏功能】

怪打人一下,自己为什么要烧两秒?焚天气焰的逻辑就是这么横:气焰缠身的战士像一团行走的火——狼怪的爪子伸过来,挨的打照单全收,但爪子沾上火焰,回去自己烧两秒。攻击即代价,出手即点火。今天拆焚天气焰,看"反烧"这个防御向机制怎么把被动挨打演成主动放火。

一、引焰、沾火、自烧三段

焚天气焰的循环三段。引焰段:战士运功,一圈橙红气焰沿身体轮廓升起,头顶挂出气焰倒计时——引焰是"宣战":这六秒里我的身体是火做的,碰我就是点火。沾火段:狼怪扑击命中,伤害照给、白字红字如实结算——气焰不减伤,它只在结算的同一瞬间把狼怪的爪子点燃,"爪着火"三个字从狼怪头顶冒出——挨打与点火同帧,这两件事在时间上是一件事。自烧段:狼怪带着燃烧的爪子退回去,每零点九秒冒一口"-9 灼"的小额火字,两秒二后火苗熄灭——反烧的账单分期寄到,烧完爪子才凉。三段的核心是"因果同帧":打人的瞬间着火,不需要任何附加条件——闪避不掉血自然也不点火,气焰烧的是"每一次成功的攻击",概率与百分比都掺不进来。

完整演示在这,默认自动循环:

demo
 fx-burnaura

二、幂尔框架实现:受击后钩与点燃状态

反烧挂在受击的后置钩上,点燃是目标身上的独立状态:

lua
local BurnAura = {}
local AURA_TIME, BURN_TIME = 6.0, 2.2
local BURN_DMG, BURN_TICK = 9, 0.9

local aura, burns = 0, {}

function SL:CastAura(actor)
    SL:PlayActorAct(actor, "cast")
    aura = AURA_TIME
    SL:AttachFx(actor, "flame_aura")
    SL:ShowBuffBar(actor, "焚天气焰", AURA_TIME)
end

function BurnAura.OnAfterDamaged(actor, attacker, dmg)
    if aura <= 0 then return end
    burns[attacker] = { t = BURN_TIME, acc = 0 }
    SL:PlayBurst(SL:GetValue("actorX", attacker),
                 SL:GetValue("actorY", attacker) - 60, "ignite_claw", 12)
    SL:ShowTipAbove(attacker, "爪着火!", "#ff9e5e")
end

function BurnAura.Tick(dt)
    if aura > 0 then
        aura = aura - dt
        if aura <= 0 then SL:CancelFx(actor, "flame_aura") end
    end
    for att, b in pairs(burns) do
        b.t = b.t - dt
        b.acc = b.acc + dt
        if b.acc >= BURN_TICK then
            b.acc = b.acc - BURN_TICK
            SL:HitActor(att, BURN_DMG)
            SL:ShowTipAbove(att, "-" .. BURN_DMG .. " 灼", "#ff9e5e")
        end
        if b.t <= 0 then burns[att] = nil end
    end
end

return BurnAura

受击的后置钩是关键站位:气焰管不着伤害本身,它只在账目走完之后追加一条回执——挂前置钩就会跟护盾、减伤这类管线抢座,职责就乱了。burns 表按攻击者立账,几个怪一起打就几份火各自烧各自的。

三、焰的画法与火字的分寸

气焰的画法走"裹"字诀:一圈椭圆的橙红描边罩住角色轮廓、焰粒从脚到头持续上冒、描边低频脉动——焰要"贴着人烧",飘得太散像站在篝火边。狼怪爪上的火另有一套:点燃瞬间从接触点炸出十二粒火星,之后两秒里爪部持续掉小火粒——火要长在"它伸过来的那只爪"上,长在身上就成了感染。两类火字要分档:"-12"的白红是狼怪的输出、"-9 灼"的橙黄是气焰的回执——攻击账与反烧账颜色分开,玩家一眼分清谁在亏谁在赚。反烧的数字天生要小:九点一口、两秒三口共二十七,不及它一爪的十二的两倍——反烧是"惩罚"不是"报复",账单比巴掌轻,火气才不越界。

四、反烧的边界:惩罚不能变成武器

反烧类的三条边界划在前面。其一,只反近战——爪子、刀剑这些"接触型攻击"才点火,远程的箭矢法球不沾火,反烧的物理常识是"碰到才烧";其二,点燃不吃属性加成——气焰的反烧是固定小额,不吃暴击不吃法强,防御技的伤害一旦跟着攻击属性走,它就变相成了输出技;其三,多 attacker 各立各账——三只怪轮流打,三份火各自烧各自的,互不叠加互不冲销。跟金刚护体、神圣战甲摆在一起,防御三件套的分工就齐了:罩是先扣额度、甲是打对折、焰是罚出手——一个免账、一个折账、一个回账,玩家的防御选择从此是三种活法而不是三层数值。引焰宣战、同帧点火、分期回执、三条边界——焚天气焰把"挨打"这件事演成了放火的艺术。

五、焰期的站位学:近战的囚徒困境

气焰亮起的六秒里,狼怪面对的其实是一道博弈题:贴身输出,吃十二点真伤但反烧二十七点账面;站在圈外干瞪眼,零收入但零代价。演示里狼怪的巡逻脚本选的是"照打不误"——它的AI没这么聪明,但玩家看这两条曲线会自己算:反烧总伤略高于挨打伤害,贴身的期望是正收益但不多——气焰的定价就卡在这个"赚头很小"的位置上,赚太大近战绝迹,亏了焰就成了摆设。战士侧的进阶玩法则反过来利用这道题:焰期主动贴脸站着不动,摆出"你敢来就烧"的姿态,诱使对方犹豫——这六秒里不打输出的时间差,本身就是焰的最大产出,防御技玩到深处全是心理账。还有一个与治疗的组合值得一记:焰期的挨打伤照走、反烧照点,道士在这个窗口刷治疗性价比最高——对面打得越凶、烧得越狠,奶量的边际价值越大,气焰于是天然是队伍里的"引怪信号灯"。收尾记一笔配色账:焰用橙红不用绯红——绯红在伤害语义里属于流血系,橙红留给火焰,两条持续伤害线在色板上的分界,比文案里的任何解释都有效。

这轮写下来还有一句想留的话:这类技能最容易在迭代里走形——改一次数值、调一次粒子,最初的那个"为什么好看"就慢慢丢了。把每个技能最核心的那一句话钉在模块头部注释里,往后任何一次改动,先问一句还符不符合那句话,再动手。表现层的所有分歧,最后都要回到那句话上对表。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

进阶实战游戏功能

夺舍:钻进它身子让它打自己

【游戏功能】 它的爪子明明挥向了你,怎么落在自己脸上?夺舍的答案邪门到家:道士的魂钻进了狼怪的身子——占据三秒,这三秒里它每…

2026-09-30 03:54 996 技术组
进阶实战游戏功能

水墙:一面水墙推它回原路

【游戏功能】 墙又不追人,怪为什么次次撞?水墙的定位写在物理里:它立在路中央六秒,是一块"会推人的地形"——狼怪巡逻的弧线扫…

2026-09-30 03:54 996 技术组
进阶实战游戏功能

双刀交叉斩:左右开弓刀不停

【游戏功能】 左手五刀右手五刀,怎么就数得清是双刀?双刀交叉斩的答案在弧线上:左刀的弧向右扫,右刀的弧向左扫,两把刀的弧线在…

2026-09-30 03:54 996 技术组
进阶实战游戏功能

咒怨娃娃:扎它替身它替它疼

【游戏功能】 隔着半个屏幕扎草人,狼怪为什么跟着一抽一抽?咒怨娃娃的逻辑古老而瘆人:草人与目标结咒之后,草人就是它——针扎草…

2026-09-30 03:54 996 技术组
进阶实战游戏功能

雷云:一朵乌云跟它到哪电到哪

【游戏功能】 雷云的全部机制就这一行:一朵乌云升到目标头顶,慢半拍地跟着挪,每一点二秒掉一道小雷。云不追人——它认的是"头顶…

2026-09-30 03:54 996 技术组
进阶实战游戏功能

火焰冲刺:一路冲过去一路烧

【游戏功能】 跑赢了的怪,怎么反倒挨了烧?火焰冲刺的账目反直觉就在这:冲刺是位移,火径是遗产——人冲过去了,路留在原地烧三秒…

2026-09-30 03:54 996 技术组