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

传染:烧着一只,火自己找邻居

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

【游戏功能】

三只狼站成一排,火法扔了一轮技能只烧到一只——紧接着怪异的事发生了:后两只没人碰,自己烧了起来。传染的机制就这一条:点着一只,火顺着邻居链自己蔓延——扎堆的狼群就是柴堆。今天拆传染,看"蔓延系"怎么把一次单体点火,滚成一场烧遍全场的连营大火。

一、点火、蔓延、烧尽三段

传染的循环三段。点火段:一刀落在第一只狼身上,它被点着,头顶烧起四秒的火——点火段是全技能的第一把火:这一刀只有三十点,账面寒酸,可它的意义是"柴堆里划的第一根火柴"。蔓延段:着火的狼身边七十像素内,火顺着邻居链自己爬过去,爬到谁谁烧四秒——蔓延段是全技能的雪崩:烧着的每一只都是新的火种,扎得越紧传得越快,火从第一只爬到第三只,你一刀没出。烧尽段:火烧尽四秒后熄灭,怪倒下,火在熄灭前还会跳给最后一只邻居——烧尽段是全技能的收尾:整群狼从头烧到尾,你只出过一次手。三段的核心是"链式自走":传染不提高你的任何数值,它只是把"一打一"的仗改成了"点一把火看它烧"的仗。

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

demo
 fx-spreadfire

二、幂尔框架实现:火苗是一份会自己跑的名单

传染的账本是一张着火名单加一条邻居判定——

lua
local SpreadFire = {}
local BURN_T   = 4.0       -- 燃烧四秒
local LINK_R   = 70        -- 邻居判定七十像素
local LIT_DMG  = 30

local wolves = {}

function SL:Ignite(w)
    w.lit = true
    w.fire = BURN_T
    SL:ShowTipAbove(w, "-30 点火")
end

function SL:OnTick(dt)
    for _, w in ipairs(wolves) do
        if w.lit and not w.dead then
            w.fire = w.fire - dt
            if w.fire <= 0 then w.dead = true end
        end
    end
    for _, w in ipairs(wolves) do
        if w.lit and not w.dead then
            for _, n in ipairs(wolves) do
                if not n.lit and not n.dead
                and math.abs(n.x - w.x) < LINK_R then
                    n.lit = true                   -- 火自己找邻居
                    n.fire = BURN_T
                    SL:ShowTipAbove(n, "传染")
                end
            end
        end
    end
end

return SpreadFire

双层循环是全技能的引擎:外层扫燃烧者、内层扫邻居——传染不需要你瞄准第二只,它只需要名单里多一个燃烧者。

三、蔓延的演出规格

火苗是全技能的脸面:燃烧的狼周身一层橙红的火雾、火星一粒粒往上飘——火雾要"飘",飘着的火才是活的,静止的红光只是染色。传染的一瞬要"递":火从着火的狼身上探出一小簇、落在邻居头上——递的一小簇是"火在找下家",找到了就续燃。燃烧的倒计时挂在头顶:四秒的数字一秒一秒地缩——倒计时归零的那只烧尽倒下,倒计时还在的继续烧——每个头上的表各自走各自的,互不干涉。传染链的方向要"可视":火探向邻居的一小簇带着方向感,方向就是"下一个是谁",玩家读方向就知道火会怎么烧完整场。

四、定价与三条火规

蔓延系的定价一句话:点火三十、传染自动、四秒一轮——三只狼四秒全倒,这门功夫的效率不靠手速,靠的是怪的站位。三条火规:其一,火不回头——烧过的熄了就熄了,不会回燃,传染链是单程的;其二,断链靠距离——把一只没着火的拽出七十像素,它就是这场火里的孤岛,距离是唯一的防火墙;其三,燃烧不叠加——两层火不烧两倍,同体只记一份燃烧,重复点火是浪费柴火。与溅射类对照着看:同是"一打多"的账,溅射是一刀打三个——三个同时挨打;传染是火烧一个再传两个——三个先后挨烧,群体系的两个门派在"同时结账"还是"链式结账"上分了家。

五、传染系的柴堆学:站位是玩家可以经营的伤害

传染真正翻案的是"怪扎堆"这个传统灾难:别的体系里扎堆的怪是控制噩梦,在传染系里扎堆的怪就是一垛码好的柴——它们站得越近,你的第一把火越值钱。老玩家的开怪口诀是"点边不点中":先点最边上的那只,火顺着邻居链往中间烧,烧的顺序和你的收割顺序天然一致。对观战者,火从第一只跳到第三只的画面是最有"蔓延感"的镜头:火自己会走这件事,看一次就忘不掉。工程收尾记一笔:传染的判定要每帧重扫而不能只在点火瞬间扫一次——火蔓延到新邻居时,新邻居身边可能又有凑热闹的,每帧重扫才让火真正"活"着走完全场。最后留给数值组的一句话:七十像素的邻居判定是这门功夫的柴垛密度——密度越低越考引怪,密度越高越像白送,密度就是传染系的全部难度曲线。

写完再留一句给做蔓延系的同学:群体点燃最容易做成"命中几个烧几个",而它本该是一场自己会烧完的连营大火——链要自己爬、火要自己找、烧尽要烧得有先后,火活了,玩家才肯把第一把火当艺术来点。\r\n\r\n传染的火还有一个隐藏的解法:把两只狼隔远点、中间那只点着——火传不过去,中间那只就会独自烧成引信——引信烧尽前的四秒,够你围着它做很多事。传染系的深度,就在这把火传不传、什么时候传的判断里。

补一个演示彩蛋位:火传到最后一只的瞬间,最先点火的灰烬恰好烧尽——头尾两团火在同一帧交接,这个交接帧就是传染系的谢幕礼,谢完幕,满地灰烬全是你一个人点的火。

作者履历与出处

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

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

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

LATEST ARTICLES

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

进阶实战游戏功能

Lua自动炮台:架一个自动索敌开火

【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…

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

Lua元素转换:火伤转冰伤附带减速

【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…

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

Lua连锁引燃:一个着火引燃下一个

【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…

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

Lua弹射地垫:踩上去弹飞到空中

【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…

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

Lua时间减缓:流速减半的局部时差

【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…

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

Lua引力球:丢出去把怪吸过来

【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…

2026-10-02 04:50 996 技术组