【游戏功能】
SL:SetAura(actor, "gold", 6.0) -- 金气裹身六秒
无极真气的全部开关就这一行:给角色挂一层六秒的金气光环。但光环底下压着三条规矩——窗口期、三刀递增、过期作废。今天顺着这行拆无极真气,看"增益窗口"类技能怎么把 1.2/1.5/2.0 这条递增曲线演成玩家看得懂的戏。
一、运功、灌体、递增三段
无极真气的循环三段。运功段:道士掐诀,金气从脚下升起裹住全身,光环亮起的同时头顶挂出倒计时——运功是开窗动作,窗口六秒,头顶的秒数就是窗口的寿命。灌体段:窗口期内角色周身持续冒金屑,攻击动作的刀光也换成金色——增益要"上身":光裹在角色身上、色染在刀光上,玩家不用看 buff 栏就知道自己还开着窗。递增段:窗口期内每一刀的伤害倍率递增,第一刀一点二倍、第二刀一点五倍、第三刀两倍——第三刀落地,金气散,回到白刀状态,等下一轮运功。三段的核心是"递增可读":三刀的数字必须一刀比一刀醒目——数字尺寸、金光半径、震屏幅度全线递进,玩家从观感上就能读出"第三刀是爆发刀"。
完整演示在这,默认自动循环:
fx-truqi
二、幂尔框架实现:光环状态与递增表
窗口是一个带寿命的状态,倍率是一张三格表:
local TrueQi = {}
local LIFE = 6.0
local MULT = { 1.2, 1.5, 2.0 } -- 三刀递增倍率
local BASE = 40
local buff = { on = false, t = 0, stack = 0 }
function SL:CastTrueQi(actor)
SL:PlayActorAct(actor, "cast")
buff = { on = true, t = 0, stack = 0 }
SL:SetAura(actor, "gold", LIFE)
SL:ShowBuffBar(actor, "无极真气", LIFE)
end
function SL:OnMeleeHit(actor, target)
local mult = 1
if buff.on then
mult = MULT[math.min(buff.stack + 1, #MULT)]
buff.stack = buff.stack + 1
SL:PlayBurst(SL:GetValue("actorX", target),
SL:GetValue("actorY", target) - 74,
"gold_slash", 16)
if buff.stack >= #MULT then
buff.on = false
SL:ClearAura(actor)
SL:ShowSystemTips("三刀用尽 — 金气散")
end
end
SL:HitActor(target, math.floor(BASE * mult))
SL:ShowTipAbove(target, "-" .. math.floor(BASE * mult) .. (mult > 1 and (" ×" .. mult) or ""))
end
function TrueQi.Tick(dt)
if buff.on then
buff.t = buff.t + dt
if buff.t >= LIFE then
buff.on = false
SL:ClearAura(actor)
end
end
end
return TrueQi
两个坑提前排掉:其一,stack 越界——第三刀之后如果玩家还在窗口期里连按,MULT[4] 是 nil,取倍率前必须 math.min(stack+1, #MULT) 收口;其二,过期与用尽两条路都要 ClearAura——只清一条,就会出现"金气散了倍率还在"的隐形增益。
三、递增的观感与窗口的节奏
递增的观感是一条全面升级的曲线:数字尺寸一档比一档大、命中金光的粒子数一档比一档多、震屏幅度一刀比一刀重——三刀三规格,玩家的手都能读出递增。金屑是窗口的呼吸:灌体期间角色周身以每秒十几粒的频率冒金屑,粒速朝上飘——金屑停了,窗口也就没了,余光读状态比抬头看 buff 栏快得多。窗口的节奏要给"取舍":六秒窗口、三刀配额,掐着秒表等第三刀的玩家收益最大,乱按的玩家两刀就把窗口打空——递增曲线天然惩罚手急,这是无极真气"道家风骨"的玩法表达。最后是空窗期的白刀对比:白刀的数字灰色、粒子白色、零震屏——没有对比就没有递增,白刀越素,金气三刀才越贵。光环上身、倍率收口、三刀三规格、白金对比,四件凑齐,"真气灌体刀刀更重"才从文案落进手感。
四、窗口的经济学:冷却、配额与贪心税
无极真气的手感之上还有一层经济账。冷却与窗口的差:窗口六秒、冷却给到窗口结束再三秒——空窗三秒是"白刀惩罚期",玩家在这三秒里格外珍惜每一次出手,下一轮运功的开启时机于是成为节奏点:怪挪位的间隙开窗,刀刀打在静止目标上,三刀全中;乱开窗的玩家第三刀落空,两倍配额作废在空气里。配额即节奏:三刀配额天然把输出循环切成"三刀一波",这比任何连招提示都有效地规训了手急的玩家——递增曲线在这里显出它的第二重身份:不仅是数值,更是节拍器。贪心税:第三刀两倍伤害的诱惑会让人在狼怪快死时强行开窗——结果怪两刀内倒地,配额剩两格,冷却照转——窗口期技能的"浪费"必须真实存在,收益感才成立;工程上这不需任何额外代码,配额与冷却的自然交互就是税本身。视觉收尾还有一处便宜的加笔:金气散去的瞬间给角色一次小小的"泄气"表现——光环收缩、金屑下沉、角色肩膀微沉半帧——散功是个事件,不是状态的默默翻页。最后留一条工程备忘:窗口状态的读写分属两处(攻击回调写 stack、心跳清寿命),热重载这类模块时最怕状态表被换成新表——原表回填的规矩在之前的笔记里定过,增益类模块是这条规矩最常抓到的现行犯。
五、白刀的底线与三刀的天花板
递增曲线的两端要各留一条硬线。底端是白刀:四十点基础伤害是整个技能的"信用本位"——所有倍率都从它出发,玩家对"这一刀值多少"的直觉全部锚定在白刀上,白刀数字一旦浮动,递增的分量感立刻失真。顶端是第三刀:两倍是配额曲线的封顶值,刻意不做成三连倍——第三刀之后的第四刀(如果玩家手快在散功瞬间又按出一次)回落到白刀,这个"从天堂掉回地面"的落差本身就是散功的体感宣言,比任何提示文案都直白。两端的硬线之外,中间档的位置也有讲究:一点五倍卡在几何中点附近,三刀的数字序列 48、60、80 排出来是清晰的等比感——数字序列本身要"排得好看",玩家未必算得出倍率,但读得出节奏。最后是队伍里的定位对账:无极真气的三刀爆发在组队时让位给控场——金气窗口最好开在气功波推定、彻地钉钉住的空当里,三刀全落在不能动的目标身上;演示脚本里自动演武的节奏(运功-三刀-等待)就是照这个"控场后爆发"的队伍节拍写的。单体是保底,队伍是上限,窗口期技能的天花板永远长在队友的技能里。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 var ld2=Math.max(1,Math.round(d 0.25)) ——先拆这一行。连枝转移的账就在…
【游戏功能】 前阵子的投诉出得冤:玩家开着让先纹被怪的头一招打掉了半管血,找到客服问"让先让了个寂寞"。翻流水发现机制没算错…
【游戏功能】 上一版留了条只在连打两场时冒头的隐蔽报错:秋后纹第二次开的清算比第一次翻倍——头一场十二笔账清完没清零,第二场…
【游戏功能】 先抛一个坑:砍出去的刀,能收回来吗?刀光落了地、数字蹦出来、血条掉了——按理说木已成舟。可玩家心里都有过那一拍…
【游戏功能】 var fresh=(tg===M)?fr.a:fr.b ——先拆这一行。两只怪,两本"点没点过卯"的小账,出…
【游戏功能】 上个月一场差评事故:一个闪避堆得高的怪成了玩家的噩梦——十刀落空七刀,打得着的两三刀又不痛不痒,玩家在频道里骂…