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

火莲绽放:一朵火莲在它脚下开

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

【游戏功能】

一粒火种扔在它脚边,为什么等了一秒才炸?火莲绽放的答案开在花瓣里:火种落地生根,四瓣火莲缓缓张开——花开到极致的那一瞬,火浪漫一圈,圈内重创圈外无伤。今天拆火莲绽放,看"延迟开花"型AOE怎么把一次爆炸演成一朵花的开谢。

一、掷种、开花、漫焰三段

火莲绽放的循环三段。掷种段:一粒金红火种沿短弧线抛到狼怪脚下,落地的瞬间钻进地里——掷种是"播种":火种要落在怪脚下而不是怪身上,种下去的瞬间它还毫无威胁。开花段:地面裂开微光,四瓣火莲按顺时针缓缓张开、花心越烧越亮——开花的零点九秒是全技能的戏眼:花瓣张开的节奏就是引信的读秒,花开得越满,火憋得越足。漫焰段:花开到极致的一瞬,火浪从花心向外漫成一圈,圈内重创、圈外无伤——漫焰的判定只看爆炸那一瞬谁站在圈里,早一步出圈就是干看了一场花开。三段的核心是"花的生命周期即引信":播种、含苞、盛放、爆开,一朵花的开谢就是一次完整的攻击流程。

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

demo
 fx-firelotus

二、幂尔框架实现:掷种弹道与花期调度

火种是一段短抛物线,花是一个带 bloomed 开花标记的花期状态:

lua
local FireLotus = {}
local BLOOM, BURN_DMG = 0.9, 95

local seed, lotus = nil, nil

function SL:CastLotus(caster, target)
    SL:PlayActorAct(caster, "cast")
    seed = { sx = SL:GetValue("actorX", caster) + 22,
             sy = SL:GetValue("actorY", caster) - 58,
             tx = SL:GetValue("actorX", target),
             ty = SL:GetValue("actorY", target) - 20, t = 0 }
    SL:ScheduleRepeat(0.016, function()
        if seed then
            seed.t = seed.t + 0.016
            local k = math.min(1, seed.t / 0.5)
            SL:SetSeedPos(seed.sx + (seed.tx - seed.sx) * k,
                seed.sy - math.sin(k * math.pi) * 60 + (seed.ty - seed.sy) * k)
            if k >= 1 then
                lotus = { t = 0 }
                seed = nil
            end
        elseif lotus then
            lotus.t = lotus.t + 0.016
            SL:DrawLotus(lotus.x, math.min(1, lotus.t / BLOOM))
            if lotus.t >= BLOOM and not lotus.bloomed then
                lotus.bloomed = true
                SL:PlayBurst(lotus.x, GROUND - 16, "lotus_burst", 26)
                SL:FlashScreen("#fb7185", 0.1)
                SL:ShakeCamera(7, 0.3)
                if math.abs(SL:GetValue("actorX", target) - lotus.x) < 64 then
                    SL:HitActor(target, BURN_DMG)
                    SL:ApplyDebuff(target, "burn", 2.4)
                    SL:ShowTipAbove(target, "-" .. BURN_DMG .. " 花爆")
                end
            end
            if lotus.t >= 1.6 then
                lotus = nil
                SL:CancelRepeat()
            end
        end
    end)
end

return FireLotus

掷种零点五秒、开花零点九秒、花存续一点六秒——花期的三段时长就是这门技能的全部节奏,调参调的全是花语。

三、花瓣的画法与漫焰的圈

火莲的画法走"开"字:四瓣椭圆花瓣绕花心旋转展开、花心一粒金核越烧越亮、花瓣张开的旋转自带一分妖冶——火莲区别于火圈的脸就在花瓣上:圈是几何、花是生命。花瓣的颜色从内到外由金转红,张开时花瓣边缘先亮——光从花心往外走,开花有了方向。漫焰的圈不用细描:花开到极致的同一帧,一圈火浪从花心炸开、短促而圆——爆炸的圈是花瓣的续集,花有多大圈就多大,观感连续。余焰的二点四秒烧用三口"-6 灼"小字慢慢念——爆炸是大账、余焰是小账,两页账分色分号。狼怪的反应加一帧戏:花瓣张开时它本能地后退半步——野兽怕火,这半步的后退让开花的压迫感长在了怪身上。

四、延迟开花的定价与花的边界

延迟开花型的定价绕不开"读秒博弈"四个字:零点九秒的花期意味着玩家要预判九百毫秒后它站在哪——掐折返点的老手艺又一次通用。三条花的边界:其一,花不追人——种在哪开在哪,火莲落地的坐标是它一生的坐标;其二,圈内全吃、圈外全免——漫焰的判定只有一次、只有一瞬,爆炸过后花瓣散尽不留火海,开完就谢是花的规矩;其三,余焰只烫圈内客——二点四秒的灼烧只挂在被漫焰结账的目标身上,圈外的人隔岸观火。与爆裂火焰(火球砸地亮圈半秒炸)对照着看,同为"落地延迟AOE":爆裂是"把火扔过去",火莲是"让花在那儿开"——前者的戏在飞行,后者的戏在盛开,延迟爆炸的一个门派里长出了两种完全不同的美学。掷种有弧、开花有节、漫焰有圈、余焰有账——四件凑齐,火莲绽放才开得出"花开一瞬火漫一圈"。

五、花语的调度学:零点九秒怎么读秒

花瓣张开的零点九秒是全技能的心跳,这九百毫秒里的调度值得单独记。花瓣四片不是同时张——顺时针次第展开,每片错开零点一秒——次第开的花才有"活物"感,四片齐开的是折纸。花心的亮度与张开角度同步走:瓣开一半灯半亮、瓣全开灯全亮——光随花开,玩家盯花心就知道离爆炸还有多远。地面要先给"要出事"的暗示:火种钻地的位置留一圈微光缓缓扩张,光圈就是未来的爆炸圈——圈先画好、花后盛开、最后火漫到圈的边缘,三步是同一个半径的三次确认,玩家对"圈内圈外"的判断零歧义。声音的层次跟着花期走:落地一声闷响、开花一声细碎的酥响、爆开一声轰——三声三个量级,最后一声最大。余焰二点四秒的灼烧小字也要有花语的延续:灼字用粉色不用大红——花瓣的粉延续到余焰里,爆炸的橙红留给漫焰那一瞬,一团火里分出两代色,观众自然读出"主爆"与"余温"的差别。花的开谢是自然界最熟的节奏,把它借给AOE引信,玩家的紧张就有了熟悉的形状。

最后补一句给做花系特效的小伙伴:花瓣旋转的速度要随张开的进度加速——先慢后快,花开才有“憋不住了”的势头;匀速张开的花像教科书画图,加速张开的才像真的要炸。

再补一句给爆炸圈的颜色组:漫焰那一圈用粉橙双层——内层粉是花瓣的延续、外层橙是火的正色,圈的爆炸感与花的开放感在颜色上各占一半,花与火才算真的合体。

作者履历与出处

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

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

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

LATEST ARTICLES

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

进阶实战游戏功能

Lua长按判定:按住计时的两分口径

【语法算法】 上一版埋了个越用越错的隐蔽报错:长按的计时不在抬手时清零——第一次长按松手后,秒表没归零,第二次轻轻一点直接被…

2026-10-02 03:05 996 技术组
进阶实战游戏功能

Lua淡入淡出:透明度的排队渐变

【语法算法】 接着抛坑:淡入没播完又来一个淡出,会怎样?答不好的界面都会出事——同一个面板的透明度被两个渐变同时抢,一个往上…

2026-10-02 03:05 996 技术组
进阶实战游戏功能

Lua波浪排布:相位错开的错落动画

【语法算法】 上一版留了排"齐步走"的图标的隐蔽报错:一排波浪排布的图标同起同落——设计稿上是此起彼伏的波浪,实机上整排图标…

2026-10-02 03:05 996 技术组
进阶实战游戏功能

Lua点击热区:视觉与命中的两套尺寸

【语法算法】 先抛一个坑:按钮太小点不中,为什么不做大热区?界面上那个二十像素的小圆钮,玩家戳三次中一次——把按钮画大又会破…

2026-10-02 03:05 996 技术组
进阶实战游戏功能

Lua受击击退:位移衰减的推离

【语法算法】 vel=vel math.pow(0.01,dt) ——先拆这一行。击退的全部手感都在这一行的衰减里:初速三百…

2026-10-02 03:05 996 技术组
进阶实战游戏功能

Lua受击闪白:叠加渐隐的一层白

【语法算法】 上个月一场闪了全屏的事故成了组里的教材:受击闪白上线第一天,玩家一挨打整个界面白一遍——血条、按钮、聊天框全泡…

2026-10-02 03:05 996 技术组