【游戏功能】
有新人在群里问过一个傻问题:打完怪地上那个金光一闪的东西是什么?捡了的人说下两刀变疼了,没捡的说不知道、没注意——三秒一过,光就散了。遗计的机制就藏在这颗被大多数人错过的金珠里:撂倒的怪原地留一枚劲核,三秒内捡了,下两刀每刀加二十;不捡,它就散。今天拆遗计,看"拾遗系"怎么把每一场胜利的余温,变成一段要跑位去领的赏。
一、留核、拾劲、吃账三段
遗计的循环三段。留核段:怪倒下的一瞬,原地浮起一枚金色的小珠,底下一行小字写着倒计时——留核段是全技能的馈赠:它把"最后一口劲"留在原地,三秒为限,谁来谁领——留给你的东西,从来不会追着你跑。拾劲段:人跑过去,金珠钻进掌心,"拾劲"两字一亮,下两刀的账面当场改写——拾劲段是全技能的跑位课:劲核不长腿,捡不捡全看你肯不肯为二十点多跑两步,跑位在这个技能里第一次变成了直接的收入。吃账段:带着劲的两刀落下去,刀刀带着"遗"字的金标,两刀吃完劲尽——吃账段是全技能的清账:捡来的便宜要连吃两刀才完,吃完手空,等下一只怪倒下再给你留下一枚。三段的核心是"赏不追人":遗计的每一点收益都要自己弯腰去捡,这个弯腰,就是它与所有自动增益的分界线。
完整演示在这,默认自动循环:
fx-keepsake
二、幂尔框架实现:劲核是一枚带表的金珠
遗计的账本挂在尸体原地,三秒清账——
local Keepsake = {}
local ORB_LIFE = 3.0 -- 劲核三秒
local BUFF_HITS = 2 -- 捡了吃两刀
local BUFF_STEP = 20
local orbs = {} -- { x, t }
local buff = { hits = 0 }
function SL:OnKill(x)
table.insert(orbs, { x = x, t = ORB_LIFE })
SL:ShowTipAbove("wolf", "留了口劲")
end
function SL:OnTick(dt)
for i = #orbs, 1, -1 do
orbs[i].t = orbs[i].t - dt
if orbs[i].t <= 0 then
SL:ShowTipAbove(orbs[i].x, "散了") -- 不捡就散
table.remove(orbs, i)
end
end
if buff.hits > 0 then
buff.hits = buff.hits - 1 -- 一刀销一层的劲
if buff.hits <= 0 then
SL:ShowTipAbove("self", "劲用完了")
end
end
end
function SL:PlayerHit()
local dmg = 32 + buff.hits * BUFF_STEP -- 有劲的刀更沉
SL:HitActor("target", dmg)
SL:ShowTipAbove("target", "-" .. dmg .. (buff.hits > 0 and " 遗" or ""))
end
function SL:PickOrb(i)
buff.hits = BUFF_HITS
SL:ShowTipAbove("self", "拾劲")
end
return Keepsake
三秒清账是全技能的性子:ORB_LIFE 一到珠子散手——遗计不等你,天地也不等你。
三、拾劲的演出规格
金珠是全技能的脸面:倒下的位置浮一枚小金珠,上下三像素地浮着,底下的倒计时小字一秒一秒地跳——珠要浮不要滚,浮着的是"等你"的客气,滚着的就是催命。拾劲的一瞬要有"进账"的体感:金珠钻掌、掌心一圈金环、"拾劲"二字跳出来——进账要有进账的动作,弯腰捡钱也要有个响。带劲的刀三件套:金标的数字、加粗的刀光、多出的四粒迸屑——吃不吃劲,刀的光泽差着一档,观众一眼分得出哪刀是空手。散掉的戏要"淡":倒计时的字先转灰,珠子的光一点点收干,最后散成一缕金烟——散要散得惋惜,惋惜才教会人下次跑快点。
四、定价与三条遗规
拾遗系的定价一句话:一核两刀、每刀加二十、三秒为限——四十点的赏对三秒的腿,账面上这是全游戏时薪最高的跑腿。三条遗规:其一,核不追人——劲核钉死在倒下的坐标上,跑出屏幕它也不挪窝,遗计的规矩是东西不看你,看时辰;其二,捡二不吃三——两刀吃完劲尽,第三刀原价,捡来的便宜有明确的份数,不欠也不多;其三,核可叠加可抢先——场上同时浮两枚核,挨个捡劲量翻倍,但怪抢不到、队友也抢不走,谁的腿快归谁的仓。与收割对照着看:同是"杀戮的余温",收割的穗自动挂头——杀了就涨,站桩也涨;遗计的珠要亲手去捡——杀了还得跑,拾遗系的两个门派在"自动进账"还是"弯腰领赏"上分了家。
五、拾遗系的跑位学:二十点买不来的跑腿习惯
遗计真正训练的是"顺路"的智慧:捡核的两步路从来不是专程跑的——本来就要绕到它侧后补刀,本来就要退开半步躲扑击,顺路弯腰,劲就进了手。老玩家的路线图上没有"专程捡核"这一站,核总是挂在必经之路上被顺路拾走——拾遗系的巅峰是让每一次弯腰都看起来毫不刻意。对观战者,金珠倒计时的三秒是全场最紧凑的支线剧情:主线在打,支线在跑,跑慢了那颗珠子"啪"地散掉,惋惜都是现场直播。工程收尾记一笔:劲核的拾取判定要宽过它的光效——珠子看着一粒米大,判定圈得有一抱宽,光效管好看,判定管良心,两样各管各的。最后留给数值组的一句话:四十点对三秒的腿,账面要高到"不捡心疼"才算及格——拾遗系的定价不是数值问题,是教育问题:把玩家教育成弯腰的人,每一枚核才都有主。
写完再留一句给做拾遗系的同学:掉落增益最容易做成"击杀自动生效",而它本该是一枚倒在原地等你三秒的赏——珠要浮着、时要跳着、散要散得可惜,赏给了腿,玩家才肯把跑位当收入。
补一个演示彩蛋位:捡到劲核的那一瞬,掌心的金光会顺着手臂往肩头爬半寸——劲是往上走的,爬到肩头的那一下,正好是下一刀起手的高度,光走的位置就是刀要来的位置。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…
【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…
【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…
【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…
【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…
【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…