【游戏功能】
明明开着护甲,怎么比裸奔掉血还快?有人把神圣战甲术和金刚护体混为一谈——罩是先扣罩值再掉血,甲是每一刀打对折,两套账。拿甲当罩用的人,总在第三刀碎甲的那一下莫名亏血。今天拆神圣战甲术,看"减伤"这门账怎么算才跟玩家想的一样。
一、披甲、减半、碎片三段
神圣战甲术的循环三段。披甲段:运功一声,三片金甲沿肩背次第亮起——甲是"可见的减伤额度":三片甲、每片替玩家扛半刀,片数就是额度,看得见数得清。减半段:甲在期间,狼怪的每一爪伤害减半结算,数字旁挂"减半"小标——注意减的是每一刀,不是总量:三片甲不吃总量预算,它改的是汇率。碎片段:每挨一记碎一片,碎片的金色迸屑朝攻击来向飞——挨一碎一,额度随受击线性消耗;三片碎尽,甲卸,回归原价。三段的核心是"汇率与额度的分离":甲改的是每一刀的汇率(乘零点五),额度是三片(三次机会)——把这两件事搅在一起,是减伤类技能一切误解的源头。
完整演示在这,默认自动循环:
fx-holyarmor
二、幂尔框架实现:乘法减伤与片数计数
甲在伤害管线里是一次乘法,片数是它的寿命:
local HolyArmor = {}
local FACTOR = 0.5 -- 甲期伤害系数
local PLATES = 3
local plates = 0
function SL:CastArmor(actor)
SL:PlayActorAct(actor, "cast")
plates = PLATES
SL:AttachFx(actor, "gold_plates")
SL:ShowBuffBar(actor, "神圣战甲", PLATES .. "片")
end
function HolyArmor.OnDamage(actor, raw)
if plates <= 0 then return raw end
local final = math.floor(raw * FACTOR)
plates = plates - 1
SL:ShowTipAbove(actor, "-" .. final .. " 减半", "#e3b341")
SL:ChipPlates(actor, 1) -- 碎一片的迸屑
if plates <= 0 then
SL:CancelFx(actor, "gold_plates")
SL:PlayBurst(SL:GetValue("actorX", actor),
SL:GetValue("actorY", actor) - 50, "armor_break", 24)
SL:ShowSystemTips("三片碎尽 — 甲卸")
end
return final
end
return HolyArmor
乘法发生在伤害管线的结算位——比金刚护体的前置分流晚一站:罩先全额接、甲再对折,两个技能同时开时管线自动排好次序,互不抢账。片数与系数各管各的维度,代码里也分开写,谁也不借谁的变量。
三、甲片的戏与减半的读法
三片甲是三份演出额度。披甲时次第亮起(间隔百毫秒),碎甲时朝攻击来向迸屑——甲片的"来"与"去"都带着方向,玩家读得出这一刀从哪来、被哪片挡了。甲片在身上的呼吸要轻:低频微光即可,甲是"穿着的"不是"烧着的",烧起来的减伤像狂暴。减半的读法靠数字对:同一种爪、有甲灰黄小字"减半"、无甲红色大字——两个数字的对照演两轮,玩家自己就会算"甲省了我多少"。这里有一条与金刚护体对照的定价心得:罩适合高单价低频次的攻击(一爪三十五,罩整口吞),甲适合低单价高频次的攻击(一刀二十,折一半省得细)——两个技能从来不互斥,互为补充的管线站位才是防御体系的全貌。
四、减伤的边界:对折不是免疫
甲的边界写清三条。其一,对折有下限:伤害乘完系数至少保底一点——设计上不给"零伤"的空子,零伤是免疫的领地,减伤染指免疫的领域就会出"叠甲无敌"的邪道。其二,真伤不折:标注为真实的伤害绕过甲片直接结算——否则甲的描述与实战永远对不上。其三,片数不复利:两层甲同开不叠乘——两个零点五相乘变零点二五,减伤叠加是数值设计的黑洞,规矩是一律取最高不叠乘。演示的自动演武把三片甲的节奏排得很清楚:两爪碎两片、第三爪碎尽、第四爪原价——玩家看一轮就知道甲的保质期是三次挨打而不是多少秒,这个"按次计费"正是甲与罩的又一分野:罩按量计费,甲按次计费。三片金甲、乘法站位、按次计费、三条边界——神圣战甲术才是一套讲得清的汇率。
五、甲与罩同开的那笔账
防御体系的全貌在"甲罩同开"的测试里才看得清。演示之外把两个模块叠上跑一遍:狼怪一爪二十,罩先整口接(罩-20),罩空之后甲再对折(减半红字)——管线次序自动排对,两个模块谁也没改谁一个字,这就是管线站位的好处:前置分流与乘法结算天生不打架。但有一笔账要提前算给玩家:罩在的时候甲一片都不碎——甲片只在伤害真正落到血条上时才计费,被罩吞掉的刀不消耗额度。这条规矩让"罩+甲"的组合策略变成"罩扛重击、甲扛频率"的分工,而不是两份额度无脑叠加。反过来还有一个别扭的边角要定:破甲破罩同时发生的那一帧谁先演?规矩是罩先碎——罩是外层,外层先破的物理直觉不变,甲片在罩碎的同帧亮起接手,防御的交接棒有画面。最后补一个给策划同行的提醒:甲的片数与罩的罩值是两个量纲,排行榜、战力评分这类聚合系统里千万别把它们换算到一起加总——"三片甲等于一百点罩"这种换算一旦写进代码,两个技能就再也拆不开了。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 它的爪子明明挥向了你,怎么落在自己脸上?夺舍的答案邪门到家:道士的魂钻进了狼怪的身子——占据三秒,这三秒里它每…
【游戏功能】 墙又不追人,怪为什么次次撞?水墙的定位写在物理里:它立在路中央六秒,是一块"会推人的地形"——狼怪巡逻的弧线扫…
【游戏功能】 左手五刀右手五刀,怎么就数得清是双刀?双刀交叉斩的答案在弧线上:左刀的弧向右扫,右刀的弧向左扫,两把刀的弧线在…
【游戏功能】 隔着半个屏幕扎草人,狼怪为什么跟着一抽一抽?咒怨娃娃的逻辑古老而瘆人:草人与目标结咒之后,草人就是它——针扎草…
【游戏功能】 雷云的全部机制就这一行:一朵乌云升到目标头顶,慢半拍地跟着挪,每一点二秒掉一道小雷。云不追人——它认的是"头顶…
【游戏功能】 跑赢了的怪,怎么反倒挨了烧?火焰冲刺的账目反直觉就在这:冲刺是位移,火径是遗产——人冲过去了,路留在原地烧三秒…