【游戏功能】
翻滚的减伤账就这一行:
dmg = dmg * 0.5
挨刀的瞬间人正好在滚,这一刀减半——翻滚卸力的全部机制就这一行乘法。可它的价值不在减半,在"滚"这个动作同时把人挪出去半个身位:减伤和位移一手交易,挨打变成了一件有收益的事。今天把这行乘法前后的账拆开。
一、下压、翻滚、卸力三段
翻滚卸力的三段。下压:狼怪起手下压,头顶紫色的箭头往下压——它的重击是"下压式"的,落点就是玩家当前位置,起手半秒半。翻滚:箭头将落的一瞬点翻滚,人团身滚出去——滚的半秒里挨到的刀全部减半,滚的方向自选,滚完落在半个身位之外。卸力:减半的刀落下来,飘字变成"10 卸力"的绿色小字,配一圈绿色的卸力环——挨是挨了,但挨得有尊严。翻滚的姿势也有戏:团身、贴地、收尾,三拍连着播,滚的半秒里人物压得极低——低,是翻滚的视觉语言,压得越低,玩家越信这一滚卸了力。三段的妙处在"挨打"和"位移"是同一动作的两面:翻滚不是躲(躲是零伤),也不是硬吃(硬吃是全额),是"打了对折再送位移"的中间态——犹豫玩家的兜底,精细玩家的起手。
完整演示在这——看它箭头下压,点「翻滚!」滚一圈卸掉半刀:
fx-roll
二、幂尔框架实现:滚动态与受击折算
幂尔框架里翻滚是一个带位移的受击折算状态:
local Roll = {}
local ROLL_TIME, ROLL_DIST, ROLL_KEEP = 0.4, 84, 0.5
function Roll.Do()
SL:SetState("player", "roll", ROLL_TIME)
SL:SetDamageKeep("player", ROLL_KEEP) -- 滚动态: 受击折半
SL:Dash("player", "roll", ROLL_DIST, ROLL_TIME)
SL:PlayBurst("player", "roll_dust", 6)
end
local function onTakeDamage(target, raw)
if SL:GetState(target) == "roll" then
local final = math.floor(raw * SL:GetDamageKeep(target))
SL:ShowTipAbove(target, "卸力!")
SL:PlayBurst(target, "halve_ring", 6)
return final
end
return raw
end
SL:On("take_damage", onTakeDamage)
SL:RegClick("roll", Roll.Do)
return Roll
SetDamageKeep 是滚动态挂的一个系数,伤害事件进门先查这个系数——滚完系数自动随状态摘除,不留尾巴。
三、减半的定价与位移的方向
减半这个数是翻滚的锚:全免,翻滚变成闪避的下位替代没人用;只减两成,翻滚像隔靴搔痒——对半刚好立在"躲不开时的最优解"上。位移的八十四像素也有一半的讲究:滚出去半个身位,刚好脱离狼怪下一爪的判定圈边缘——滚是减伤动作,也是微调站位的动作,两个收益绑在一个按钮上,按钮才值得一个独立键位。冷却一秒六对狼怪的爪间隔两秒二:理论上每一爪都能滚着卸,但滚的方向要选——往狼怪怀里滚,卸了刀也贴了脸;往侧后滚,刀卸了位也脱了。方向自由是翻滚比定身减伤高级的地方。和闪避的分账最后写清:闪避是零伤但要求时机严丝合缝,翻滚是半伤但窗口宽得多——技术好的玩家用闪避清零,普通玩家用翻滚对折,一套防御体系喂两种水平的玩家,这才叫分层。
翻滚的方向还有一个进阶用法:朝狼怪的身后滚——卸了刀还绕到了背后,下一刀从背后起手带加成。这个用法翻滚自己不教,是玩家在血线的教训里悟出来的:正对狼滚,卸了力贴了脸;斜后滚,卸了力还拿了身位。同一个按钮,方向选择把玩家分成了三档——翻滚练到最后,练的是落点的选择学。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 控制技能的镜像问题是:锁住了怪,自己是不是也闲着?影锁把这道两难摆上台面:影锁四秒,它动不了、你也动不了——它…
【游戏功能】 打断为什么只有"清读条"一种?震魂偏要反过来——不清招、不断势,打在它读条半途的那一劲顺着招震进腑——中劲十秒…
【游戏功能】 蜂群为什么总是一只一只出?蜂王偏要让它们进化:放一只蜂王出来,杀掉小怪喂它——喂三只升一阶,三阶蜂王的毒刺一秒…
【游戏功能】 技能为什么总是不扣自己的血?血刃偏要反着来:开着血刃的每一刀先扣自己二血、命中回三血——净赚一但要打得中,空刀…
【游戏功能】 bn.t = bn.t - dt ——一行旗面倒计时的代码,撑起了破军旗全部的紧迫感:旗立三秒、圈内加攻三成,…
【游戏功能】 淬毒为什么要一毒到底?淬毒刃偏要一层一层叠:一刀淬一层毒、毒层一秒六地烂,六层封顶之后一刀下去毒伤三十六——叠…