【游戏功能】
按住一点五秒再松手——沉刀的全部仪式就这一按一放:按住时劲往刀上沉,松手那一瞬二十二点的重刀见真章;按不满就松,刀软成八点。这篇把整套模块拆开:配置表、沉刀表、松手结算、定时器、调试按钮,一段一段照抄能跑。
一、效果演示:按住一点五秒,松手二十二
演示场按住「按住沉刀」不放:玩家身周转起一圈沉劲环,环转满一点五秒、劲槽烧成全金。松手——"沉刀-二十二"的重字砸出来,震屏带火星。手快了,一点二就松——刀软成八点,灰字寒酸。演示里试两笔账:掐满一点五的重刀二十二,和着急的软刀八点——沉刀教的是手上的定力:劲是按出来的,不是点出来的。
fx-heavyhold
二、底层原理:一张沉劲表加一次松手判定
模块的机关是一对搭档。沉劲表:按住的时长实时灌进沉劲——劲槽随时间涨,一点五秒涨满,涨满后劲封顶待发。松手判定:松开的那一帧读劲槽——满槽放二十二点的重刀,欠槽放八点的软刀,松手的时机就是刀的斤两。和蓄力炮那类蓄能射击的分野在"沉刀蓄的是手上的稳":蓄力炮松手放波,沉刀松手落刀——一个放的是弹药,一个放的是这段时间里手上的功夫。
劲满后继续按会怎样?劲封顶待发不衰减——按多久都行,松手才见分晓,沉刀不逼手快,只考手稳。
三、核心代码:完整模块(上·骨架)
-- @file HeavyHold.lua
-- 沉刀 —— 按住蓄劲,松手见真章
local HeavyHold = {}
local CONST = {
HOLD_FULL = 1.5,
FULL_DMG = 22,
SOFT_DMG = 8,
COLOR_HOLD = "#8a5838",
COLOR_DEEP = "#3e2414",
COLOR_GHOST = "#f0d8c0",
ZORDER_HOLD = 132,
ZORDER_FX = 135,
AUTOINC_BASE = 1043000,
}
local _holding = false
local _holdT = 0
local _scheduler = nil
local _autoInc = 0
local function GenID(prefix)
_autoInc = _autoInc + 1
return string.format("%s_%d", prefix or "HVH",
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 ReleaseCut()
local full = _holdT >= CONST.HOLD_FULL
local dmg = full and CONST.FULL_DMG or CONST.SOFT_DMG
local tid = SL:GetValue("MARK_TARGET_ID")
if not tid then return end
SL:ActorHurt(tid, dmg)
SL:TipAbove(tid, "-" .. dmg)
if full then
SL:PlayHeavyCutFx(tid)
SL:ScreenShake(3.2, 0.2)
ShowTip("沉刀见真章——二十二点入账")
else
ShowTip("松早了——刀软了八点,按满一点五再松")
end
if SL:GetValue("ACTOR_DEAD", tid) then
ShowTip("它倒了——沉到底的刀最重")
end
end
四、核心代码:完整模块(下·定时器与按放结算)
-- 按下:起沉劲
function HeavyHold.Press()
if _holding then return end
_holding = true
_holdT = 0
SL:PlayHoldStartFx(SL:GetValue("USER_ID"))
ShowTip("按住了——劲在往刀上沉")
end
-- 松开:读劲落刀
function HeavyHold.Release()
if not _holding then return end
_holding = false
ReleaseCut()
end
-- 定时器:劲槽上涨
if not _scheduler then
_scheduler = SL:Schedule(function(dt)
if _holding then
_holdT = _holdT + dt
local myID = SL:GetValue("USER_ID")
local mp = GetActorPos(myID)
if mp and mp.x then
SL:PlayHoldRingFx(mp.x, mp.y - 60, _holdT)
end
end
end, 0.02)
end
SL:ScheduleOnce(function()
SL:BindDebugButtonHold("按住沉刀",
function() HeavyHold.Press() end,
function() HeavyHold.Release() end)
ShowTip("技能已加载: 沉刀 (调试按钮触发)")
end, 1.0)
function HeavyHold.Unload()
if _scheduler then SL:Unschedule(_scheduler) end
if _holding then
_holding = false
ReleaseCut()
end
end
return HeavyHold
五、机制问答
问:按住的时候能走位吗?
答:能——沉劲锁刀不锁脚,边按边挪是高阶手法,劲槽跟着人走。
问:按住期挨打会散劲吗?
答:不散——劲认按住时长不认干扰,挨打只掉血不散劲,沉刀的定力不受外物打扰。
问:劲满了不松有奖励吗?
答:没有——劲满封顶不增值,多按的那几秒是给自己数拍子,松手的时机只有"满了"这一个答案。
问:软刀能暴击吗?
答:能——软刀走正常结算,暴击的软刀八点变十六,可惜还是不如不暴的重刀。
问:按住能打断别的动作吗?
答:能——按住即起沉劲,蓄势喝药全数打断,一门手艺占一双手,沉刀的手只做一件事。
问:沉刀的劲槽和蓄力炮一样吗?
答:不一样——沉劲认按住的手感,蓄力炮认读条,一个在手上一个在条上,练的肌肉不同。
问:满劲松手的刀能被闪避吗?
答:能——沉刀是直刀不是锁定,怪闪了二十二落空,沉刀的课上闪避是它自己的克星课。
问:满劲的沉刀和双击斩谁疼?
答:满劲沉刀二十二对双击斩十六——沉刀疼在单发,双击快在节奏,两门输入课各考各的手。
问:按住时怪换招了怎么办?
答:沉刀不认招只认松手——换招是它的事,松手是你的事,两件事互不搭线。
六、调参指南与商业服怎么用
第四笔是满劲的时长:一点五秒是"按得住但不敢走神"的线——按三秒的沉刀变成耐力测试,零点八秒的沉刀谁都会,一点五刚好是"手上有功夫"的证明线。第三笔是软硬的落差:二十二对八是接近三倍的悬殊——落差小的沉刀不如平砍,落差太大软刀变羞辱,近三倍刚好是"早松一秒悔一秒"。第二笔是劲槽的可读:劲环转满即金——读环松手,眼睛不用离开怪,环是这门机制的仪表盘。第一笔是松手的顿挫:满劲松手那一帧要有停顿感——刀落半拍再爆伤害,沉刀的"沉"字全在这半拍里。常见坑三个:按住的状态被界面失焦打断不清,失焦回来劲槽满溢;松手判定认按下时长不认松开帧,松手的时机判定飘;软刀没有独立的音效,软硬两刀听着一个声。
商业服里沉刀是"铁手流派"的家法:别人比手快,他们比手稳——商城里劲环的样式做成品级,皮环、铁环、玄铁环,转满一圈金环松手的那一记重刀就是铁手流派的牌坊。运营落地还有两笔:一段是定力教学——教学关就一句话"按满一秒半,急了就白按",流派第一课是磨性子;一段是重刀榜——按满劲沉刀的总伤排名,手最稳的人有碑。变体做成双段沉刀:一点五秒一段、三秒两段——两段的刀四十点,沉得住的人吃两段。这一篇的演示和整套模块照抄能跑,改的就是 CONST 那张表。
铁手流派的门槛就一行字:松手之前,别想结果。
铁手还有半句压箱的:劲环转满的那半秒,全世界都在等你松手。
铁手的口诀再补一行:按住的时候,全世界都可以等。
写完留一句给做输入系的同学:沉刀卖的是"按住的每一秒都算数"——那圈转满才敢松的劲环,是把手上的一秒半直接锻造成二十二点重刀的秤。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 磁点一开,它的箭全拐——四秒里它射出的每一支箭都拐向同一个聚点,到了聚点整支碎掉,一支都够不着你。磁引把"躲箭…
【游戏功能】 半场一摆两秒一趟的钟摆,砸中站线上的一切——包括被你引过去的怪。钟摆把"地形"变成了武器:它本身不认敌我,你引…
【游戏功能】 两键同按零点一五秒内——铰击:两把刃铰在一起砸它二十,外加半秒的僵。单按一键只有十点白给。这篇把整套模块拆开:…
【游戏功能】 三只怪三角连着链:死一只,另外两只各挨十五;链上再倒一只,最后那只又挨十五——三环扣把"清怪"变成了"连环",…
【游戏功能】 按住攒盾,盾值就是弹量,松手引爆贴脸的怪——蓄盾爆把"防御"改写成了"蓄弹药":盾攒得越厚炸得越疼,攒盾的两秒…
【游戏功能】 按对 劈→刺→扫 三键,一记四十;按错一环,只值八点平砍。三键诀把连招的顺序做成了考卷:三枚键摆在你面前,顺序…