【游戏功能】
血池阵的全机制就一句话:脚边开一池血露,泡在里面每秒回十二,可池子只有一百二的存量——你回多少它扣多少,存量见底,池子当场涸成一个灰坑。今天拆血池阵,看"存量回补"怎么把一口泉,变成一碗要省着喝的水。
一、开池、分账、涸底三段
血池阵的循环三段。开池段:一抹红光砸在脚边化开,一圈红池荡出水纹,池沿亮出"池存一百二"的存量字——开池段是全技能的立约:这一池不是无限的泉,是一碗端上桌的水,碗有多大、水有多深,落地那一瞬就念给你听。分账段:泡在池里的人一秒回十二、池子一秒扣十二,两行数字同帧各走各的——分账段是全技能的核心:回补的每一滴都是从存量里舀的,泡着不是白泡,是拿池子的寿命换自己的血条;血满的人站在池里,池子照样扣——账不看来意,只看泡没泡。涸底段:存量走到底,红光整池暗下去,池沿那行字归零,红池塌成一圈灰坑——涸底段是全技能的退场:池子涸了不加血也不消失动画上留个坑,坑是它来过的证据,也是"省着点"三个字的实物教材。三段的核心是"回补即消耗":血池阵把治疗从"恩赐"改写成"支取"——支取就要对账,对不上账的池子养不出会省的人。
完整演示在这,默认自动循环:
fx-bloodpool
二、幂尔框架实现:血池是一个带存量的分账器
血池阵的账本就是一个带存量的分账器——
local BloodPool = {}
local POOL_CAP = 120 -- 一百二存量
local POOL_RATE = 12 -- 一秒回十二
local POOL_RANGE = 40 -- 池圈四十步
local pool = { on = false, x = 0, y = 0, stock = 0, tick = 0 }
local cd = 0
function SL:CastPool()
if pool.on or cd > 0 then return end
pool.on = true
pool.x, pool.y = SL:MyPos()
pool.stock = POOL_CAP
pool.tick = 0
SL:TipAt(pool.x, pool.y, "池存" .. POOL_CAP)
end
function SL:OnTick(dt)
if not pool.on then return end
cd = math.max(0, cd - dt)
pool.tick = pool.tick + dt
if pool.tick < 1.0 then return end
pool.tick = pool.tick - 1.0
for _, p in ipairs(SL:InCircle(pool.x, pool.y, POOL_RANGE)) do
local need = SL:HpMax(p) - SL:Hp(p)
local give = math.min(POOL_RATE, need)
if give > 0 then
SL:Heal(p, give)
SL:TipAbove(p, "+" .. give)
end
pool.stock = pool.stock - POOL_RATE -- 泡着就扣,满血也扣
if pool.stock <= 0 then
pool.on = false -- 舀干即涸
SL:DryPool(pool.x, pool.y)
break
end
end
end
return BloodPool
满血也扣是全技能的筋骨:扣存量的那行写在给血的那行外面——泡着的人血满不给也照扣,规矩不看来意;give 用 math.min 压住两头的顶,回血不溢出、存量不透支,一笔账两边都不欠。
三、分账的演出规格
红池是全技能的脸面:池面一层半透明的红,随着存量变浅——满池红得发亮,半池红得发闷,浅池只剩一圈红边——池面的红就是存量的刻度,刻度要用颜色不用嘴说。存量要"念":池沿一行"池存八十七"一秒一秒往下走——数字是碗底的明账,明账挂在外面玩家才知道省。回血要"对":泡着的人头顶飘绿字、池面同时荡开一圈涟漪——给和取在同一个水纹上发生,一秒一荡,荡的节奏就是分账的节奏。扣账要"静":池子每秒扣的十二不飘字不配音——给要响,取要静,动静都在给的一边,玩家才记得自己是来占便宜的。涸底要"塌":存量走底的瞬间整池红光塌下去、缩成一圈灰印——塌要干脆,拖泥带水的干涸像卡顿不像见底。
四、定价与三条池规
存量回补的定价一句话:一百二存量、泡着秒回十二、舀干即涸——满打满算十秒的泉,救得回两条命;可这十秒不认人只认泡,泡满血的、泡路过的,一视同仁地扣。三条池规:其一,池不认人——站在池里的每秒都扣存量,管你缺血还是满血,碗不挑嘴;其二,账是死的——回十二扣十二,血满不减扣、重伤不多回,分账没有情面可讲;其三,涸了不返——存量见底池子当场作废,没有回气、没有第二春,一碗水泼出去就没有第三碗。与治疗图腾对照着看:同是"地上长的回血点",治疗图腾是一口泉——插上就流、随用随取、不问存量;血池阵是一碗水——总量封顶、见底即涸,回补族的两件家什一个管"有没有"、一个管"省不省",泉养懒人,池教过秤。
五、血池的过秤学:十秒的泉要喝在刀口上
血池阵真正交付的是"回补的时机":池子不是血条矮了才开的急救包,是要提前过秤的口粮——什么时候开、泡几秒、留给谁,三笔账都在那一百二里。老玩家的用法是"对表":看大怪的出手轮,两拍之间撤进池里泡一秒,出来接它第三拍——一进一出只舀十二,十秒的存量够这样对七次表;莽一点的开在脚底下顶着怪泡,回的血和挨的刀在场内打擂台,池子十秒见底人也见底。对观战者,池面的红一圈一圈变浅、最后塌成一圈灰印,是最有"坐吃山空"感的镜头:观众看着那行存量数字一路走到底,比看任何血条都揪心——揪心的不是回血慢,是明知道碗要见底还得喝。工程收尾记一笔:池面的颜色要和存量数字同步——数字还剩一半池面已经见红底,色和账各说各话,玩家信色不信账就会提前慌;存量的演出要一根轴走到黑。最后留给数值组的一句话:一百二存量对怪两拍一轮二十,十秒的泉只够省着用——血池阵的定价不是回多少血,是"玩家会不会为了多喝一口把命泡在池边"——会过秤的人,一碗水喝出两碗的命。
写完再留一句给做存量回补的同学:血池最容易做成"范围回复光环"的白给泉,而它本该是一碗看得见底的水——池色要跟着存量走、数字要挂在池沿、涸了要塌成一个坑——碗立住了,玩家才会去省,而不是站着泡到天荒地老。
补一个演示彩蛋位:池子见底的那一帧,最后一圈红边会先聚成一颗红珠再沉进灰坑——聚珠的一瞬是"舀干了"的最后确认,确认一过,地上那圈灰印就是这一百二去过的地方。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 把怪往远处引会怎么样?多数战斗里答案是"它跟你到天涯海角",可在归巢线的规矩里,答案是你敢拉出它的地界,它就敢…
【游戏功能】 血池阵的全机制就一句话:脚边开一池血露,泡在里面每秒回十二,可池子只有一百二的存量——你回多少它扣多少,存量见…
【游戏功能】 if pts[tp].hits = 3 then seal = 8 end ——一行数到三就封穴的代码,藏着封…
【游戏功能】 打击组报过一条谁也没当回事的记录:同一只大怪的同一爪,有人挨了二十,有人只挨十——装备一样、站位一样、连挨打的…
【游戏功能】 数值组对过一笔让人生气的账:一条大怪被毒得明明白白,血线掉到七成的那个瞬间,毒的扣血流水戛然而止——毒没了,可…
【游戏功能】 为什么有的召唤兽见怪就咬,有的站着看戏?差的多半不是等级,是一条契——没认主的兽再凶也是野的,认了主的兽才分得…