【游戏功能】
cd = max(0, cd - 0.8)——一行从冷却里刨时间的代码,立起了以战养战全部的运转:重击冷却六秒,普攻每中一刀,炉子里的时辰立刻缩零点八——打不停,重击就不断。今天拆以战养战,看"续炉系"怎么把最不起眼的普攻,变成重击的送柴人。
一、点炉、添柴、开炉三段
以战养战的循环三段。点炉段:重击砸出去的那一刻,炉子清零,头顶六秒的冷却条开始走——点炉段是全技能的开支:六秒是这一刀的开销,账已经花了,接下来怎么把它挣回来,就看你的手停不停。添柴段:普攻一刀一刀往怪身上递,每中一刀,冷却条"唰"地缩回零点八秒,蓝色的"炉-0.8"小字贴着刀口冒——添柴段是全技能的运转核心:普攻的数字不重要了,重要的是它在给炉子里添柴,一刀零点八,八刀一口炉。开炉段:冷却条走满的那一声"好了!"亮出来,重击第二发已经在弦上——开炉段是全技能的循环:以战养战的完美状态是炉火不熄——重击刚落,普攻接上,八刀之后下一发重击已经好了,永动的账面全靠手不停。三段的核心是"打即续":这门功夫没有"等冷却"这个词,它的冷却,是靠打消化掉的。
完整演示在这,默认自动循环:
fx-feedcd
二、幂尔框架实现:炉膛是一个可以被普攻回填的钟
续力的账本就一行,写在每刀落地的结算里——
local FeedCd = {}
local ULT_CD = 6.0 -- 重击冷六秒
local FEED_STEP = 0.8 -- 一刀续零点八
local ULT_DMG = 85
local PLAIN_DMG = 32
local state = { cd = 0 }
function SL:Heavy()
if state.cd > 0 then
return SL:ShowTipAbove("self", "炉没开")
end
state.cd = ULT_CD
SL:PlayActorAct("self", "attack")
SL:ScheduleDelay(0.24, function()
SL:HitActor("target", ULT_DMG)
SL:ShowTipAbove("target", "-" .. ULT_DMG .. " 重击")
SL:ShakeCamera(6, 0.26)
end)
end
function SL:Light()
SL:PlayActorAct("self", "attack")
SL:ScheduleDelay(0.17, function()
SL:HitActor("target", PLAIN_DMG)
SL:ShowTipAbove("target", "-" .. PLAIN_DMG)
if state.cd > 0 then
state.cd = math.max(0, state.cd - FEED_STEP)
SL:ShowTipAbove("self", "炉-0.8") -- 柴进了炉,钟就退
end
end)
end
return FeedCd
只减不加是炉膛的规矩:math.max(0, ...) 保证柴烧不穿炉底——续得再勤,重击也只回原价,不会提前两发连着放。
三、添柴的演出规格
炉条是全技能的仪表:六秒的冷却条横在头顶,普攻中一刀它就肉眼可见地缩回去一截——炉条要"缩"不要"跳",匀速回缩的条才有"在续力"的实感。续力的蓝字要小而勤:零点八秒的小字跟着每一刀冒,不抢眼、不缺席——小字是记账的凭证,刀刀有凭证,玩家的手才认这门功夫的账。重击的排面照旧:金闪、震屏、八十五的大字——炉火越旺,开炉越要响,响完了玩家才记得下一轮添柴又开始。空刀不续火的规矩要演:挥空的普攻灰字都没有——柴没进炉就是没进炉,虚挥骗不了灶。重击好了的那一声"好了!"要跳得脆——开炉的信号比任何提示都金贵,脆响一声,重击归位。
四、定价与三条炉规
续炉系的定价一句话:冷六秒、一刀续零点八、八刀一口——完美状态下重击无限循环,前提是你的普攻八秒里一刀不空。三条炉规:其一,柴不囤积——炉满了多余的续力当场作废,不存在"攒两发重击"的期货,炉膛只有一发的容量;其二,空刀白空——挥空的普攻不续炉,续力的前提是刀刀见肉,以战养战认的是战果不是动作;其三,重击不算柴——重击自己不能给自己续炉,大刀的冷却只有小刀管,炉火的规矩是小火养大火。与火候对照着看:同是把普攻打成基础设施,火候用普攻养火——刀越打越热;以战养战用普攻养钟——刀越打越快,基建系的两个门派在"养温度"还是"养时辰"上分了家。
五、续炉系的基建学:普攻从填空题变成必答题
以战养战真正改写的是普攻的地位:大多数体系里普攻是"技能之间的填充物",在这门功夫里它是重击的燃料库——普攻停一秒,重击晚一秒,输出的雪崩从偷懒的那一刀就开始。老玩家的手因此被这套体系重新训练:以前等冷却是站着数数,现在等冷却是边打边数——手上有活,眼里有炉,重击的节拍全靠自己的普攻踩。对观战者,这套体系是最耐看的"流水线":小刀连着大刀,大刀催着小刀,一套循环看着不起眼,拆开全是结构。工程收尾记一笔:续力的反馈要和伤害飘字分开两层——伤害往怪身上飘,续力的蓝字往自己炉条上贴,两笔账两条流水线,混在一起就没人看得出"这一刀是为了下一刀"。最后留给数值组的一句话:零点八秒对六秒,账面要算出"手不停就永动"的临界——续炉系的平衡点全在八刀这个数字上,八刀之内能接上的人,这门功夫就是无限的——八刀之外还接得上的人,那已经不是功夫了,是本能。
写完再留一句给做续炉系的同学:冷却减免最容易做成"一条加成属性",而它本该是一口要亲手添柴的炉——条要缩得看得见、小字要记得刀刀有、开炉要响得脆,普攻被写成了燃料,玩家才肯把每一刀都当柴火递。
补一个演示彩蛋位:炉条续满的那一瞬会先亮成金色再转红——金色的一瞬是"柴烧透了"的信号,老玩家看见金色就起手,重击和金光落在同一帧。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…
【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…
【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…
【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…
【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…
【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…