【游戏功能】
三只怪三角连着链:死一只,另外两只各挨十五;链上再倒一只,最后那只又挨十五——三环扣把"清怪"变成了"连环",杀的顺序对了,链子替你收尾。这篇把整套模块拆开:配置表、三角链表、连环结算、定时器、调试按钮,一段一段照抄能跑。
一、效果演示:三角链死一伤二,连环清场
演示场三只小怪站成三角,两两之间青橙色的链线连着。普攻撂倒第一只:它倒下的同一帧,链线闪光——另外两只各挨十五的红字。再打倒第二只(血已经被链伤磨薄了):最后一环再闪,第三只又挨十五——多半直接见底。三只怪,杀一只带两只,链子替你收尾。演示里试两种杀法:不挑顺序瞎打,和专挑血薄的先杀——连环的账每一环都在变,会算的清得快。三环扣玩的是连锁:杀的不是怪,是链上的第一枚扣。
fx-trinet
二、底层原理:一张三角链表加一次连环结算
模块的机关是一对搭档。三角链表:三只怪两两连链——链认三角不认距离,拴上的三只谁挨死讯,链条就顺着链传导伤。连环结算:链条上的怪死亡时,其余活口各挨十五——这份十五还能再杀,杀掉的再传,链传到没有活口为止。和溅射那类范围伤害的分野在"连环认链不认位置":溅射看半径,连环看拴链——三只散在半场的怪只要链在就一起疼,挤成一堆没拴链的也各疼各的。
连环为什么会终止?链的十五是"死讯的代价"——代价不衰减的版本三环扣变成无限连锁炮,衰减的版本每一环都比上一环难收,算环就是这门机制的算术。
三、核心代码:完整模块(上·骨架)
-- @file TriNet.lua
-- 三环扣 —— 三角链死一伤二,连环清场
local TriNet = {}
local CONST = {
CHAIN_DMG = 15,
COLOR_CHAIN = "#c86830",
COLOR_DEEP = "#54240e",
COLOR_GHOST = "#f4c8a8",
ZORDER_CHAIN = 129,
ZORDER_FX = 135,
AUTOINC_BASE = 1054000,
}
local _trio = {}
local _scheduler = nil
local _autoInc = 0
local function GenID(prefix)
_autoInc = _autoInc + 1
return string.format("%s_%d", prefix or "TNT",
CONST.AUTOINC_BASE + _autoInc)
end
local function GetActorPos(id)
if not id then return nil end
local x = SL:GetValue("ACTOR_POSITION_X", id)
local y = SL:GetValue("ACTOR_POSITION_Y", id)
if not x or not y then return nil end
return { x = x, y = y }
end
local function ShowTip(msg)
if msg and msg ~= "" then SL:ShowSystemTips(msg) end
end
local function AliveCount()
local n = 0
for _, tid in ipairs(_trio) do
if not SL:GetValue("ACTOR_DEAD", tid) then n = n + 1 end
end
return n
end
local function ChainHit(exclude, dmg)
local hit = false
for _, tid in ipairs(_trio) do
if tid ~= exclude
and not SL:GetValue("ACTOR_DEAD", tid) then
SL:ActorHurt(tid, dmg)
SL:TipAbove(tid, "链-15")
hit = true
if SL:GetValue("ACTOR_DEAD", tid) then
ChainHit(tid, dmg)
end
end
end
return hit
end
四、核心代码:完整模块(下·定时器与死亡钩子)
-- 死亡钩子:链上传伤
SL:RegisterLUAEvent(LUA_EVENT_ACTOR_DEATH, "TNT_Chain", function(tid)
for _, t in ipairs(_trio) do
if t == tid then
if AliveCount() > 0 then
ChainHit(tid, CONST.CHAIN_DMG)
ShowTip("连环扣开了——一只带一只走")
end
break
end
end
end)
-- 定时器:链线的存续巡检
if not _scheduler then
_scheduler = SL:Schedule(function()
if #_trio < 3 then return end
local alive = AliveCount()
if alive == 0 then
ShowTip("三只全倒——链子把最后一环也收了")
end
end, 0.5)
end
SL:ScheduleOnce(function()
_trio = SL:GetSmallTrio()
SL:BindDebugButton("清点", function()
ShowTip("还剩" .. AliveCount() .. "只在链上")
end)
ShowTip("技能已加载: 三环扣 (调试按钮触发)")
end, 1.0)
function TriNet.Unload()
if _scheduler then SL:Unschedule(_scheduler) end
SL:UnregisterLUAEvent(LUA_EVENT_ACTOR_DEATH, "TNT_Chain")
_trio = {}
end
return TriNet
五、机制问答
问:链上的怪能被治愈吗?
答:能——链传伤不传疗,治愈照常生效,链上奶一口也是三只一起稳,这也是链不散的理由。
问:链伤能暴击吗?
答:能——链伤走正常结算,暴击的链环一个暴击带倒两只,连环的账面越暴越好看。
问:链外第四只怪受牵连吗?
答:不受——链只认三只,第四只站边上白看,链外的怪不进这个账本。
问:两环同时倒算一环还是两环?
答:两环——每笔死亡各传各的,同帧双倒就是双倍链伤,链的账按事件数不按帧。
问:最后一只被链伤倒下算通关吗?
答:算——链伤的击杀照样记战绩,链子收的尾也是尾,这一场叫"零刀清场"的极端玩法。
问:链上的怪会自己散开吗?
答:不会——链在阵在,三只怪各守各角,散不开也跑不掉,链就是阵的眼。
问:三环的怪血量不同先杀谁?
答:先杀血厚的——链伤固定十五不挑厚薄,厚血怪多挨一环链就多省三刀平砍。
问:连环能跳环吗?
答:不能——链按三角逐环传,隔环跳传的版本连环变乱码,逐环才是链的规矩。
六、调参指南与商业服怎么用
第四笔是链伤的斤两:十五点对两百血的小怪是"两环半清一只"的账——链伤太轻连环变温吞水,太重一只倒全场倒,十五刚好是"每环都得挨一下普攻"的线。第三笔是环数的容量:三环是"一眼算得清"的容量——五环的链要记查账本,两环的链没有连锁感,三环刚好是"心算不超三个数"的容量。第二笔是传导的顺序:同帧多环按链表顺序逐环传——顺序透明玩家才能预演"杀这只带哪只",顺序混乱的连环就是乱账。第一笔是链线的画法:活口之间的链亮、死口的链灭——链的明暗就是战场的人口普查,一眼扫过去剩几只一目了然。常见坑三个:连环的递归没设终止,同帧三环互传栈溢出;链伤的击杀归属挂在链上而非玩家,战绩页漏账;链线的层级压过怪的模型,线盖在怪脸上。
商业服里三环扣是"锁链师流派"的收尾手艺:别人清怪一只只点,他清怪算环收——商城里链线的材质做成品级,麻链、铁链、缚魂链,三角之间那三道一明一暗的链弧就是锁链师的账房。运营落地还有两笔:一段是算环教学——教一句"先杀哪只,链替你算",流派第一课是排击杀顺序;一段是连环榜——按单场连环的总传导伤害排名,算环最精的人有碑。变体做成四环方阵:四只怪四方链——从三角到四方,链师的账本翻倍。这一篇的演示和整套模块照抄能跑,改的就是 CONST 那张表。
锁链师的老话只有一句:杀谁不重要,链在就行。
锁链师的第二课:链伤不挑顺序挑时机,薄血怪半血时破一环,连环刚好收完。
锁链师的第三课:链线的明暗就是战场地图,链亮着谁也别想跑。
写完留一句给做连锁系的同学:三环扣卖的是"杀一是杀三"——那三道一明一暗的链弧,是把击杀顺序变成伤害路线的一张环网。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 磁点一开,它的箭全拐——四秒里它射出的每一支箭都拐向同一个聚点,到了聚点整支碎掉,一支都够不着你。磁引把"躲箭…
【游戏功能】 半场一摆两秒一趟的钟摆,砸中站线上的一切——包括被你引过去的怪。钟摆把"地形"变成了武器:它本身不认敌我,你引…
【游戏功能】 两键同按零点一五秒内——铰击:两把刃铰在一起砸它二十,外加半秒的僵。单按一键只有十点白给。这篇把整套模块拆开:…
【游戏功能】 三只怪三角连着链:死一只,另外两只各挨十五;链上再倒一只,最后那只又挨十五——三环扣把"清怪"变成了"连环",…
【游戏功能】 按住攒盾,盾值就是弹量,松手引爆贴脸的怪——蓄盾爆把"防御"改写成了"蓄弹药":盾攒得越厚炸得越疼,攒盾的两秒…
【游戏功能】 按对 劈→刺→扫 三键,一记四十;按错一环,只值八点平砍。三键诀把连招的顺序做成了考卷:三枚键摆在你面前,顺序…