【游戏功能】
按对 劈→刺→扫 三键,一记四十;按错一环,只值八点平砍。三键诀把连招的顺序做成了考卷:三枚键摆在你面前,顺序卷写在头顶,卷面二点五秒——按对了连成一记大招,按错了从头再背。这篇把整套模块拆开:配置表、诀表、连招判定、定时器、调试按钮,一段一段照抄能跑。
一、效果演示:劈刺扫按对了顺序,一记四十
演示场三枚键一字排开:劈、刺、扫。头顶的卷面写着「劈→刺→扫」。照着按:按"劈"第一格亮,按"刺"第二格亮,按"扫"第三格合拢——三格合拢的一瞬"诀-四十"的大字砸在怪脸上,比三下平砍多一倍。按错了——"扫"按在第一步,八点灰字从头再来。二点五秒不按完,"诀散了"从头背。演示里试两种按法:照卷面稳稳按,和凭记忆抢按——背熟的人快一倍。三键诀玩的是背谱:顺序对了,四十点是奖励;背不熟,八点八点慢慢磨。
fx-tricombo
二、底层原理:一张诀表加一次对键判定
模块的机关是一对搭档。诀表:固定顺序劈刺扫三环——每按一键对一次卷面,对则进格错则清盘,卷面二点五秒一散。对键判定:三格全满的出拳升级为四十点整付——升级认的是顺序全对不是单键对,错一键就散一环。和连按那类计数的分野在"连珠认次数、三键认顺序":连珠五下随便按,三键诀一下都不能错——一个考手速,一个考背谱,两门课各教各的。
错键为什么清盘而不是跳过?跳过的版本按错也能蒙混进下一环,背谱变成抽奖;清盘的版本错一键全重来,背谱的价值才立得起来。
三、核心代码:完整模块(上·骨架)
-- @file TriCombo.lua
-- 三键诀 —— 劈刺扫按对了顺序,一记四十
local TriCombo = {}
local CONST = {
RECIPE = { 1, 2, 3 },
RECIPE_TIME = 2.5,
FAULT_DMG = 8,
COMBO_DMG = 40,
COLOR_COMBO = "#c89038",
COLOR_DEEP = "#583812",
COLOR_GHOST = "#f4dca0",
ZORDER_RECIPE = 133,
ZORDER_FX = 135,
AUTOINC_BASE = 1052000,
}
local _step = 0
local _stepT = 0
local _scheduler = nil
local _autoInc = 0
local function GenID(prefix)
_autoInc = _autoInc + 1
return string.format("%s_%d", prefix or "TCB",
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 NextName()
return "劈刺扫"[CONST.RECIPE[_step + 1]]
end
local function ComboDone(tid)
_step = 0
_stepT = 0
SL:ActorHurt(tid, CONST.COMBO_DMG)
SL:TipAbove(tid, "诀-40")
SL:PlayComboDoneFx(tid)
SL:ScreenShake(3.8, 0.24)
ShowTip("三键全对——一记四十的连招诀!")
if SL:GetValue("ACTOR_DEAD", tid) then
ShowTip("它倒了——被三键诀送走的")
end
end
local function FaultPunch(tid)
_step = 0
_stepT = 0
SL:ActorHurt(tid, CONST.FAULT_DMG)
SL:TipAbove(tid, "-8")
ShowTip("顺序错了——八点平砍,从头再按")
end
四、核心代码:完整模块(下·定时器与对键判定)
-- 按键入口:对键进格错键清盘
function TriCombo.Press(idx)
local tid = SL:GetValue("MARK_TARGET_ID")
if not tid or SL:GetValue("ACTOR_DEAD", tid) then return end
if idx == CONST.RECIPE[_step + 1] then
_step = _step + 1
SL:PlayStepOkFx(SL:GetValue("USER_ID"), _step)
if _step >= #CONST.RECIPE then
ComboDone(tid)
else
ShowTip("对了一键——接着按「" .. NextName() .. "」")
end
else
FaultPunch(tid)
end
end
-- 定时器:卷面超时清盘
if not _scheduler then
_scheduler = SL:Schedule(function(dt)
if _step > 0 then
_stepT = _stepT + dt
if _stepT >= CONST.RECIPE_TIME then
_step = 0
_stepT = 0
ShowTip("诀散了——超时,从头再按")
end
end
end, 0.02)
end
SL:ScheduleOnce(function()
SL:BindDebugButton("劈", function() TriCombo.Press(1) end)
SL:BindDebugButton2("刺", function() TriCombo.Press(2) end)
SL:BindDebugButton3("扫", function() TriCombo.Press(3) end)
ShowTip("技能已加载: 三键诀 (调试按钮触发)")
end, 1.0)
function TriCombo.Unload()
if _scheduler then SL:Unschedule(_scheduler) end
_step = 0
_stepT = 0
end
return TriCombo
五、机制问答
问:三键能重复按吗?
答:能但没用——重复键对不上卷面直接清盘,诀表认顺序不认次数,重复按是最快的散诀方式。
问:诀散后从头背吗?
答:从头——卷面二点五秒一散,散了就是新的一卷,诀不认旧账。
问:挨打会清诀吗?
答:会——挨打手一抖诀就散,攻防的取舍和连珠一样:硬顶的代价是清盘。
问:四十点的诀能暴击吗?
答:能——诀走正常结算,暴击的诀四十变八十,背谱家的天花板就在这一击。
问:三键中途怪死了呢?
答:诀散——死目标不结账,诀是打活人的手艺,打空了只能重背。
问:诀面期间怪扑脸怎么办?
答:边退边按——诀认按键不认站位,退着按完三键,诀照样结四十,拉开距离和背谱不冲突。
问:诀面能暂停吗?
答:不能——二点五秒一气呵成是诀的骨相,可暂停的诀叫查阅不叫背谱。
问:按对两键怪死了算成诀吗?
答:不算——诀要三键全对全落,怪死在第二键上诀就散了,打谁先按谁要分清。
六、调参指南与商业服怎么用
第四笔是卷面的松紧:二点五秒对三键是"读完来得及、拖沓就散"的档——卷面太短纯拼反射,太长变成照抄,二点五刚好是"读一遍背一遍"的线。第三笔是错键的账:八点平砍是"错有错报"的保底——错键零伤的版本按错全白费手,八点的版本错了也有收获。第二笔是诀的深度:三键四十对三下平砍三十是"多十点的谱钱"——诀太深背不动,太浅不值得背。第一笔是格子的明示:三格诀面常驻头顶——格亮到几、差几格,一眼读完,格是这门机制的课本。常见坑三个:诀表被写成任意顺序都算对,背谱变成了乱按;错键的八点吃暴击,暴击错键比平砍还疼;卷面超时不刷新,超时后按下一键直接清盘。
商业服里三键诀是"谱师流派"的入门卷:入门考的是背,出师考的是快——商城里诀格的样式做成品级,木格、玉格、金卷格,三格全亮合拢的那一帧就是谱师的出师证。运营落地还有两笔:一段是背谱教学——教一句"劈刺扫,二秒半内按完",流派第一课是背不是打;一段是成诀榜——按三键诀的成功率排名,谱背得最熟的人有碑。变体做成双诀轮换:劈刺扫和扫刺劈两卷轮着考——背一卷是入门,背两卷是出师。这一篇的演示和整套模块照抄能跑,改的就是 CONST 那张表。
谱师的老话只有一句:三键不错,四十自来。
谱师的第二课:背熟之后忘掉卷面,手自己会按。
谱师的第三课:诀散了不懊恼,懊恼的那半秒够背两遍谱。
谱师的压箱句:诀不是背出来的,是按出来的。
谱师的压箱句再补一行:背谱的人赢一次,懂谱的人赢一场。
写完留一句给做输入系的同学:三键诀卖的是"顺序就是伤害"——那三格一格格合拢的诀面,是把背谱的功夫直接标价成四十点的考卷。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 磁点一开,它的箭全拐——四秒里它射出的每一支箭都拐向同一个聚点,到了聚点整支碎掉,一支都够不着你。磁引把"躲箭…
【游戏功能】 半场一摆两秒一趟的钟摆,砸中站线上的一切——包括被你引过去的怪。钟摆把"地形"变成了武器:它本身不认敌我,你引…
【游戏功能】 两键同按零点一五秒内——铰击:两把刃铰在一起砸它二十,外加半秒的僵。单按一键只有十点白给。这篇把整套模块拆开:…
【游戏功能】 三只怪三角连着链:死一只,另外两只各挨十五;链上再倒一只,最后那只又挨十五——三环扣把"清怪"变成了"连环",…
【游戏功能】 按住攒盾,盾值就是弹量,松手引爆贴脸的怪——蓄盾爆把"防御"改写成了"蓄弹药":盾攒得越厚炸得越疼,攒盾的两秒…
【游戏功能】 按对 劈→刺→扫 三键,一记四十;按错一环,只值八点平砍。三键诀把连招的顺序做成了考卷:三枚键摆在你面前,顺序…