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

龙息灼原:一口火吐出一条焦土

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

【游戏功能】

直播里最容易被喷的一句话是"这技能是不是没放出来"。喷火龙息这类持续喷射技能最招这个冤——伤害是分段跳的,第一跳和最后一跳隔了一秒多,观感上就是"喷了个寂寞"。今天拆龙息灼原,核心就一件事:持续技能怎么让观众确认"它一直在生效"。

一、锥形火流的三层结构

龙息的火流不是一团火,是一个锥。近端窄、远端宽,边缘随喷吐抖动——锥形是"从口中喷出"的物理直觉,画成矩形就是喷枪。火流内部三层:中心白亮焰(温度最高、最窄)、中层橙焰(主体)、外层飘散火星(越出锥边越稀疏)。地面的反馈是第二幕:火流扫过之处铺开焦土,焦土从近到远生长,边缘一圈橙线表示"还烫着"。命中反馈分两段:火流吞没狼怪的瞬间一次结算大数字,之后每隔零点四五秒跳一个灼烧小字——大字是"烧到了",小字是"还在烧",两层配合,持续感就有了。

完整演示在这,默认自动循环,可调喷吐时长:

demo
fx-breath

二、幂尔框架实现:持续通道与分段结算

喷吐期间火流常驻、结算分段推进,幂尔框架里一条定时器管全程:

lua
local DragonBreath = {}
local KEY = { BURN_TICK = 0.45 }

function Breath.Cast(self_, target, duration)
    SL:PlayActorAct(self_, "cast")
    SL:SetValue("breathing", true)
    local elapsed = 0
    local hitDone = false
    local burnTimer = 0
    SL:Schedule(function(dt)
        elapsed = elapsed + dt
        -- 火流常驻渲染: 起点在口部, 终点在目标
        SL:DrawConeFx("dragon_fire",
            SL:GetValue("actorX", self_) + 20,
            SL:GetValue("actorY", self_) - 56,
            SL:GetValue("actorX", target),
            SL:GetValue("actorY", target) - 56)
        -- 首次吞没: 一次大额结算
        if not hitDone and elapsed > 0.2 then
            hitDone = true
            SL:ScreenShake(0.26, 4)
            SL:DeductHp(target, 28)
            SL:ShowHitNum(target, 28, "breath_big")
            SL:PlayActorAct(target, "stuck")
        end
        -- 灼烧跳: 小额分段
        burnTimer = burnTimer + dt
        if burnTimer >= KEY.BURN_TICK then
            burnTimer = burnTimer - KEY.BURN_TICK
            SL:DeductHp(target, 8)
            SL:ShowHitNum(target, 8, "burn_small")
        end
        -- 地面焦土逐步生长
        SL:GrowGroundFx("scorched", SL:GetValue("actorX", self_),
                                       elapsed / duration)
        if elapsed >= duration then
            SL:UnSchedule("breathRun")
            SL:SetValue("breathing", false)
            SL:StopConeFx("dragon_fire")
        end
    end, 0.016, "breathRun")
end

return Breath

GrowGroundFx 的第二个参数是生长进度——焦土跟着喷吐时长一起长,火停土也停,因果干净。

三、喷吐朝向与焦土余温

持续技能最怕目标跑出范围。锥形火流的追踪策略有二选一:火随头转(必烧但人物变成定身炮台)或火钉原地(可躲但人物能走位)。演示选前者并做了补偿:喷吐期间人物移速降为零、但朝向以每秒 60 度的限速缓慢追踪——狼怪横向跑位能甩掉火流边缘,正面硬闯躲不掉,攻防两边都有解。焦土的余温要有衰减:火停之后焦土橙线十秒内熄灭,期间踩上去仍有灼烧小跳——地面从"武器"过渡回"地形",这个衰减过程就是技能退场的礼貌。最后,火星粒子永远飘向火流外侧,内侧被焰体占满,外侧的零星几点才是"火在燃烧"的呼吸感。

作者履历与出处

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

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

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

LATEST ARTICLES

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

进阶实战游戏功能

回春:一层温火慢慢焐,血是焐回来的

【游戏功能】 治疗术的流派里吵了几十年的架:瞬发治疗保当下,持续回血养节奏——回春术是后一派的掌门。回春的机制是一层温火:焐…

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

均衡:把血多的匀给血少的

【游戏功能】 血条的分配学里有个扎心的现象:满血的人和一丝血的人站在同一道箭雨里,狼怪的爪子永远优先够着后者——血量不均是队…

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

游走符:一边走一边念,慢是慢了点

【游戏功能】 隐蔽的报错单上写着一行怪数据:同一个技能,伤害记录在六十三和四十四之间跳——查了半天配置表,两套数值都"没配错…

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

溢疗:多出来的奶变成盾

【游戏功能】 治疗量的统计表上有一栏常年被无视:溢出治疗——奶到满血之后白白流掉的那部分。溢疗的机制把这栏捡了回来:满血再奶…

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

聚怪:一声令下怪挤成一团,一符全收

【游戏功能】 群攻技能的尴尬人人都懂:三只狼站得东一只西一只,六百点的群符砸下去只烧到一只——剩下两只在火圈外看得清清楚楚。…

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

压哨:符烧尽的最后一刻落刀,账翻倍

【游戏功能】 if seal.t <= 0.4 then dmg = dmg 2 ——一行卡着符印尾巴翻倍的判定,养出了压哨…

2026-09-30 19:56 996 技术组