【游戏功能】
法师的困扰千篇一律:蓝不够——符纸是好的、手感是对的,但蓝条见底了什么都放不出来。灵魂抽取的机制就是给法师一根管子:四秒里每秒从它身上抽走二十点血,抽走的二十点里一半回自己的蓝——抽它的血回自己的蓝,蓝条不掉反涨。今天拆灵魂抽取,看"汲取系"怎么把一根管子插进怪的血条里,变成法师的充电宝。
一、插管、抽取、断管三段
灵魂抽取的循环三段。插管段:一道紫色的光管从指尖连到狼怪的胸口——插管段是全技能的接管:管子插上了,从这一刻起到四秒后拔管,它和你之间架起了一条传输带——管子里流的是它的血、到的是你的蓝。抽取段:每秒从它身上抽走二十点、一半回自己的蓝——抽取段是全技能的核心:二十点伤害加十点回蓝,两笔账同一秒结算——它的血条在掉、你的蓝条在涨,一消一涨之间攻防在换手。断管段:四秒一到管子自动拔出,紫光散尽,抽取结束——断管段是全技能的截止:四秒的管子不能延长,拔管之后的空窗要靠走位和普攻填补——管子拔了不是结束,是等下一根管子的间隔。三段的核心是"抽即回":灵魂抽取不是伤害技不是回蓝技,它是一根把两个资源条串在一起的管子——管子通了,两边同时变。
完整演示在这,默认自动循环:
fx-souldrain
二、幂尔框架实现:抽取是一个双通道的滴灌表
灵魂抽取的账本两笔同时记——
local SoulDrain = {}
local DRAIN_T = 4.0 -- 抽取四秒
local DRAIN_HP = 20 -- 每秒抽二十
local GAIN_MANA = 10 -- 回十蓝
local DRAIN_CD = 8.0
local drain = { t = 0, tick = 0 }
function SL:StartDrain()
drain.t = DRAIN_T
drain.tick = 0
SL:PlayActorAct("self", "cast")
end
function SL:OnTick(dt)
if drain.t <= 0 then return end
drain.t = drain.t - dt
drain.tick = drain.tick + dt
if drain.tick >= 1.0 then
drain.tick = drain.tick - 1.0
SL:HitActor("target", DRAIN_HP) -- 抽它的血
SL:GainMana(GAIN_MANA / 2) -- 一半回蓝
SL:ShowTipAbove("target", "-20 抽")
end
if drain.t <= 0 then
drain.t = 0
SL:BreakBeam() -- 拔管
end
end
return SoulDrain
滴灌式结算是全技能的节奏:一秒一跳不是一拳打完——滴灌的抽取量虽小但频次高,高频小量的抽取才配叫"管子"。
三、抽取的演出规格
光管是全技能的脸面:紫色的光管从你的指尖连到它的胸口,管子里有光点从它身上流向你——光管要"流",流着的管子才有"正在抽取"的实感,静止的管子只是一根线。抽取的反馈要"双笔":它身上掉二十的紫字、自己蓝条涨十的蓝字同帧出现——两笔账同帧记账,玩家才读得出"一抽两得"。狼怪的被抽反应要"弱":它不会挣扎不会惨叫,只是血条一截一截地短——被抽的怪是"无感的失血者",失血的无感比惨叫更让人不安。蓝条涨到满的瞬间管子自动断——蓝满了管子就多余了,断了才干净。
四、定价与三条管规
汲取系的定价一句话:每秒抽二十回十、四秒一管、八秒一冷——四秒抽八十回四十,单看不高,但它是"边打边回"的复利型技能。三条管规:其一,管只对单体——一根管子只能插一只怪,多只怪不会多几根管,汲取系的管是点对点的专线;其二,蓝满则止——蓝条满了管子自动断,多余的抽取不转为伤害也不存入备用,蓝满就是管子的天花板;其三,管中怪可移——狼怪跑出管子的距离管子自动断,管子不是锁链,距离远了管就够不着了。与灵魂汲取对照着看:同是"从它身上抽东西",灵魂汲取抽的是血回自己的血——抽血补血,同类互转;灵魂抽取抽的是血回自己的蓝——抽血换蓝,异类互转,汲取系的两个门派在"同类互转"还是"异类互转"上分了家。
五、汲取系的续蓝学:管子插上了,蓝条不掉反涨
灵魂抽取真正交付的是"资源循环":普通法师的蓝条是单向的——只出不进,蓝空了就废;汲取系的蓝条是双向的——打它的时候蓝在回,不打的时候蓝在降。这套资源循环把法师的输出节拍从"三符连落然后干等"改成了"符杖符杖符杖"的永动流。老玩家的用法是把管子当"蓝条充电器"用:蓝条过半就插管补蓝,蓝条满了一起打——管子的四秒既是伤害期也是充能期,充能和输出不矛盾。对观战者,紫色光管里流淌的光点是全场最有"资源管理"意味的特效:光点从它流向你,每个光点都是一滴被抽走的资源。工程收尾记一笔:管子里的光点流动速度要和抽取速率同步——一秒二十光点就流二十个光点,速度对不上就是管子在骗人。最后留给数值组的一句话:回蓝十对抽血二十的兑换率是一比二——汲取系的收益在"边打边回"的复利里,单看每秒二十不高,但四秒积攒的蓝够下一轮三符连落。
写完再留一句给做汲取系的同学:资源抽取最容易做成"扣它加我"的两行代码,而它本该是一根看得见光点在流的管子——管要插得看得见、流要流得有节拍、蓝要涨得有反馈,管子活了,玩家才觉得自己的蓝条是从怪身上借来的。
补一个演示彩蛋位:管子拔出的那半秒,光管会在断口处弹两下才消失——弹两下是"管子还有余压"的释放,弹完才散——看得懂弹跳的人,知道下一次插管的最佳时机是八秒冷却的最后一秒。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…
【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…
【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…
【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…
【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…
【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…