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

幽冥火咒:紫火烧完才算完

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

【游戏功能】

幽冥火咒是道士的持续伤害技能:一咒命中后紫火附着不灭——灼烧期间紫焰缠身逐跳掉血。今天讲幽冥火咒的表现,看"附着"这个概念怎么从一枚咒弹变成缠身的紫焰。

一、咒弹、附着、灼烧三段缠身

幽冥火咒的缠身三段。咒弹段:紫色咒弹从人物指尖飞向狼怪——咒弹的紫色是幽冥火的身份色:别的火是橙红、幽冥火是紫。附着段:咒弹命中的瞬间紫焰缠上狼怪——附着的标志是狼怪周身出现四团紫色火苗绕体旋转,火苗的存在就是"中了咒"的宣告。灼烧段:每隔零点五秒跳一次伤害数字、每次伤害伴随紫焰粒子——灼烧的持续就是幽冥火的输出:一咒四跳、四跳四十点。三段的核心是"不灭":附着期紫焰缠身不消,直到灼烧时长自然耗尽。

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

demo
 fx-ghostfire

二、幂尔框架实现:咒弹飞行与灼烧跳伤

咒弹飞行到命中后启动灼烧循环,灼烧按秒跳伤:

lua
local GhostFire = {}
local KEY = { BURN_TICK = 0.5, BURN_DMG = 8 }

local burning = {}

function GF.Cast(self_, target, duration)
    SL:PlayActorAct(self_, "cast")
    SL:PlayFlyFx("ghost_orb", SL:GetValue("actorX", self_) + 20,
                 SL:GetValue("actorY", self_) - 56,
                 SL:GetValue("actorX", target),
                 SL:GetValue("actorY", target) - 58,
                 380, { color = "purple" }, function()
        burning[target] = { jumps = duration, timer = 0 }
        SL:PlayFxAt("ghost_ring", SL:GetValue("actorX", target),
                                SL:GetValue("actorY", target) - 58)
        SL:ShowSystemTips("幽冥火附着!")
    end)
    SL:Schedule(function(dt)
        local b = burning[target]
        if not b then SL:UnSchedule("gfBurn") return end
        b.timer = b.timer + dt
        if b.timer >= KEY.BURN_TICK then
            b.timer = b.timer - KEY.BURN_TICK
            b.jumps = b.jumps - 1
            SL:DeductHp(target, KEY.BURN_DMG)
            SL:ShowHitNum(target, KEY.BURN_DMG, "ghost_fire")
            if b.jumps <= 0 then
                burning[target] = nil
                SL:UnSchedule("gfBurn")
                SL:ShowSystemTips("火焰熄灭")
            end
        end
    end, 0.016, "gfBurn")
end

return GF

灼烧的跳伤跟撕裂的跳伤用的是同一套循环——区别只在粒子颜色和伤害数字的颜色。

三、紫焰粒子与灼烧的节奏

紫焰的粒子是灼烧的氛围核心:四团紫色火苗绕体旋转、火苗的大小随灼烧时间递减——火苗越来越小就是"快烧完了"的视觉预告。灼烧的节奏零点五秒一跳:跳伤的间隔不要太短(太短像DPS技能),也不要太长(太长像摆设)——零点五秒刚好让玩家感受到"持续在掉"而不是"偶尔在掉"。最后,灼烧结束的"熄灭"动画要自然:紫焰从缠绕的火苗变成几粒残余的火星、火星飘两下消散——自然熄灭的优雅比突然消失的干净更能体现幽冥火的阴柔气质。

作者履历与出处

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

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

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

LATEST ARTICLES

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

进阶实战游戏功能

偷影:偷走它的影子,没了影子的怪刀都虚

【游戏功能】 if _shadowT 0 then spd = noShadow and 12 or 24 end ——一行…

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

魂卫:杀一葬一,魂火替你出手

【游戏功能】 魂卫的全机制就一句:杀掉小怪化一盏魂火跟着你走,每盏魂火两秒自动劈最近的大怪一口八点,至多三盏——「引魂!」按…

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

纸人替灾:贴一个纸人,下一道咒它替你挨

【游戏功能】 一道咒飞过来,硬吃是四秒里一秒十的钝疼——有没有第三条路?纸人替灾给的就是第三条路:贴一个纸人在身后,八秒里头…

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

水镜式:挨的刀存进镜里,连本带利还回去

【游戏功能】 挨打还能赚钱?水镜式的答案是:挨的刀七成存进镜里不扣血、三成照常疼,六秒后点「还镜」,存量乘一点五放成水炮——…

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

弹反镜:架起一面镜,箭从哪来回哪去

【游戏功能】 if _mirrorT 0 then SL:TipAboveMe("免疫") return end ——一道写…

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

缩地阵:圈越缩越小,逼它和你贴身

【游戏功能】 远近战的矛盾怎么解?远战的答案是把怪挡在射程外,近战的答案是把人拖进射程内——缩地阵给的第三个答案最蛮横:圈只…

2026-10-01 06:03 996 技术组