【游戏功能】
血祭术的全机制就一句话:一刀放三十血换一层血怒,六秒里普攻加四成,最多三层,血条见底的最后一口祭不出去。今天拆血祭术,看"放血系"怎么把自己最贵的东西,变成刀锋上最便宜的燃料。
一、放血、叠怒、收息三段
血祭术的循环三段。放血段:刀锋往自己手腕上一带,一道红字飘出"三十血",血条肉眼可见地缺了一口——放血段是全技能的立约:这个技能的本钱不是蓝不是冷却,是命,命是全场最硬的通货。叠怒段:放出的血化作一层红光缠在身上,头顶亮出"血怒一层 加四成",四成只活六秒——叠怒段是全技能的核心:层是各自的闹钟,六秒一到自己散,续层要再放血,怒不是攒出来的家底是租来的气势;三层封顶,三层全开的时候普攻翻倍还拐弯。收息段:红字一层比一层大,十四的普攻在三层怒里砸出二十九——收息段是全技能的兑现:放出去的三十血,三层怒里五刀就赚回来,赚不回来的人不该碰这个技能。三段的核心是"血即弹药":血祭术把血条从"命"重新定义成"弹匣"——弹匣可以打空,但打空的那一刻你就死了,所以每一次放血都在问同一句话:这几刀的利,跑得过它拍你的速度吗。
完整演示在这,默认自动循环:
fx-bloodrite
二、幂尔框架实现:血怒是一张各自到期的层表
血祭术的账本就是一张各自到期的层表——
local BloodRite = {}
local RITE_PAY = 30 -- 一刀放三十血
local RITE_LIFE = 6.0 -- 一层怒活六秒
local RITE_BONUS = 0.4 -- 一层加四成
local RITE_CAP = 3 -- 三层封顶
local rage = {}
function SL:CastBloodRite()
if #rage >= RITE_CAP then return end
if SL:MyHp() <= 40 then return end -- 见底的血不收
SL:PayHp(RITE_PAY)
table.insert(rage, RITE_LIFE)
SL:TipAboveMe("血怒" .. #rage .. "层")
end
function SL:RageFactor()
return #rage * RITE_BONUS
end
function SL:OnTick(dt)
for i = #rage, 1, -1 do
rage[i] = rage[i] - dt
if rage[i] <= 0 then
table.remove(rage, i) -- 到期的层自己散
end
end
end
function SL:PlayerHit(base)
return math.round(base * (1 + SL:RageFactor()))
end
return BloodRite
见底不收是全技能的筋骨:MyHp() <= 40 那一行把最后一口血锁在门外——放血技能的底线是活着,账算得再精也算不过一条命;放大的入口统一走 PlayerHit,怒的利只在这一处生效,账才不会两处打架。
三、叠怒的演出规格
红光是全技能的脸面:一层怒一层红晕,三层全开红得像刚从血里捞出来——红晕的浓度就是怒的层数,浓度要说谎玩家一眼就拆穿。层点是全技能的账本:血条上方三颗红点,叠几层亮几颗,每颗底下还拖着一根六秒的细倒计时——层是租的,租约要亮出来,亮出来的租约玩家才敢续。放血要"真":三十血的红字和挨打的字一样大——从自己身上放出去的血和从自己身上扣掉的血是同一种疼,字号分了家玩家就不当钱。涨数字要"带血":三十四、四十八、六十九,怒里的数字颜色从灰转红再转深红——数字的颜色就是血的浓度,浓度涨上去玩家才看得见自己买到什么。散层要"静":六秒一到那颗点暗掉就走,不配音效不弹字——散层是租约到期不是出事,动静大了反而吓人。
四、定价与三条祭规
放血系的定价一句话:一刀三十血、一层四成、六秒一层、三层封顶——九十血买到的是六秒翻倍的刀,翻倍期五刀回本;可这三层怒的每一秒都在招怪拍你,血条薄一格,容错就薄一格。三条祭规:其一,层不免费——每层都是三十血的现货,没有攒怒条的白给路线,怒的每一秒都在烧命本;其二,见底不收——四十以下是保命线,技能自己把最后一口血锁住,放血人的死法不该是自杀;其三,层各自计时——三层是三张租约不是一张,先叠的先到期,续哪层是手艺。与潮汐对照着看:同是"刀劲有起落",潮汐是白给的节拍——十息一个浪头,涨落的命是技能自己的;血祭是买来的层次——几层、多高、多久,全是玩家拿真金白银的血定的,放血族的钱包攥在自己手里,这才是"代价"二字的分量。
五、血祭的保命学:刀快的前提是命长
血祭术真正交付的是"血条的用法":普通玩家的血条是拿来挨打的,血祭玩家的血条是拿来做买卖的——九十血的进货,翻倍期的出货,中间的差价就是这门生意的全部。老玩家的用法是"分层放":开打先放一层试水,看怪的出手节奏够不够自己回血,稳了再补第二层第三层——三层齐开是顺风局的奢侈,逆风局里一层怒加半管血活得比三层怒加一口血久。对观战者,玩家一刀一刀割自己、数字一层一层变大,是最有"狠劲"的镜头:对自己下得去手的人,观众默认他对怪更下得去——狠不是演出来的,是账算出来的。工程收尾记一笔:保命线的提示要写在按钮上——血量不够的时候按钮该灰掉或者标一行"血不足",让玩家点下去才弹提示的保命线是陷阱不是底线。最后留给数值组的一句话:九十血对怪的每轮十六,翻倍期六秒它能拍三轮——血祭术的定价不是加成几成,是"玩家敢把血条卖到几成"——卖到三成还活着的人,才配用这个技能。
写完再留一句给做放血系的同学:放血最容易做成"扣个数字加个倍率"的暗账,而它本该是一场看得见的割肉——红字要和挨打一样大、层点要带租约、保命线要灰按钮——割肉立住了,玩家才会把血条当钱包而不是当命。
补一个演示彩蛋位:第三层怒点亮的那一帧,三颗层点会连成一条红线闪一下——连线的一瞬加成跳到翻倍,确认一过,这六秒就是全场最贵的六秒。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 if _shadowT 0 then spd = noShadow and 12 or 24 end ——一行…
【游戏功能】 魂卫的全机制就一句:杀掉小怪化一盏魂火跟着你走,每盏魂火两秒自动劈最近的大怪一口八点,至多三盏——「引魂!」按…
【游戏功能】 一道咒飞过来,硬吃是四秒里一秒十的钝疼——有没有第三条路?纸人替灾给的就是第三条路:贴一个纸人在身后,八秒里头…
【游戏功能】 挨打还能赚钱?水镜式的答案是:挨的刀七成存进镜里不扣血、三成照常疼,六秒后点「还镜」,存量乘一点五放成水炮——…
【游戏功能】 if _mirrorT 0 then SL:TipAboveMe("免疫") return end ——一道写…
【游戏功能】 远近战的矛盾怎么解?远战的答案是把怪挡在射程外,近战的答案是把人拖进射程内——缩地阵给的第三个答案最蛮横:圈只…