【游戏功能】
同一个下午两张战报:一张写"兄弟血薄被围,眼看要倒",一张写"硬生生把人从刀堆里背了回来"——差别就在一记换我。挡刀的规矩写得直白:兄弟头上挂红标的那一刀,一步跨过去接下来,替挨的伤打六折,兄弟当场隐去半拍缓口气。今天拆挡刀,看"代挨系"怎么把一次跨步,演成半张保命的文书。
一、见标、跨步、接刀三段
挡刀的循环三段。见标段:狼怪锁了血薄的兄弟,他头顶沉甸甸地坠下一枚红标,标下一圈红环把他整个人圈住——见标段是全技能的读局:红标就是狼怪的出刀预告,标在谁头上,刀就去谁那儿,这一步跨不跨、往哪儿跨,半秒之内要定完。跨步段:一声"换我",人从刀堆里斜插过去,金屑一路撒到兄弟身前——跨步段是全技能的腿功:零点二四秒的跨步不长不短,短了赶不上那刀,长了人已经在刀后面。接刀段:那一刀结结实实落在你背上,只有九点——六折的代价比它原价的一刀轻得多,兄弟在金环里隐去半拍,缓过那口几乎断掉的气——接刀段是全技能的兑现:疼是真疼,可文书写在这儿:这一刀,归我。三段的核心是"换标":红标还在兄弟头上,刀却被你半路签收——挡刀改不了狼怪的出刀,只改得了收件人。
完整演示在这,默认自动循环:
fx-standin
二、幂尔框架实现:代挨是一笔改了收件人的账
挡刀的账本两步走:跨步、改道——
local StandIn = {}
local DASH_T = 0.24 -- 跨步时长
local SOFT = 0.6 -- 替挨打六折
local GHOST_T = 1.2 -- 兄弟隐去半拍
local state = { dash = 0, stand = false }
function SL:CallStandIn(caster)
if not SL:GetValue("marked", "mate") then
return SL:ShowTipAbove(caster, "红标不在他头上")
end
state.dash = DASH_T
SL:PlayActorAct(caster, "walk")
SL:Cooldown("standin", 5.0)
end
function SL:OnTick(dt)
if state.dash > 0 then
state.dash = state.dash - dt
SL:StepTo("self", "mate", 330 * dt)
if SL:BodyTouch("mate", 26) then
state.dash = 0
state.stand = true
SL:Ghost("mate", GHOST_T) -- 兄弟隐去半拍
SL:RingAt("self", 30, "#e3b341")
end
end
end
function SL:OnMateHit(dmg) -- 冲兄弟去的刀先进这道闸
if state.stand then
state.stand = false
SL:HitActor("self", math.floor(dmg * SOFT))
SL:ShowTipAbove("self", "-" .. math.floor(dmg * SOFT) .. " 替")
return 0 -- 兄弟那份,免了
end
return dmg
end
return StandIn
免单与六折同时结算是全技能的账目:它那一刀劈成两半——兄弟那份归零、自己那份六折,一张刀两本账,一笔记功一笔记痛。
三、跨步的演出规格
红标是全技能的请柬:他头顶的红标配一圈呼吸的红环——环亮着,就是这门功夫营业的时间。跨步的金屑要"急":一路斜插的线、身后一串撒出去的金点——跨步的每一帧都在说"来不及了"。接刀的一瞬两本账同屏:你头上九点的"替"字金字,兄弟身上的免伤金环同帧亮起——一疼一安同帧演出,观感立得住。兄弟的隐去要"轻":半透明地淡出、半拍后又淡回来——不是消失,是"这半拍我替了,你歇",淡出的那几帧是全技能最温柔的一笔。六折的金字挂在自己头顶不挪窝——替挨的疼要署名,署了名的疼才叫担。
四、定价与三条替规
代挨系的定价一句话:替挨六折、兄弟免单、隐去半拍——四折的差价加上那半拍的喘息,是这门功夫的全部报酬。三条替规:其一,无标不替——红标不在兄弟头上,一步也不白跨,代挨的刀只接标了的,不接乱飞的;其二,一标一替——接下来那一刀之后兄弟的标转挂到你头上,第二刀就是原价的自己挨,挡刀挡的是一刀,不是一辈子;其三,跨步可扑空——你还在半路上它已经收刀,一步白跨、冷却照走,腿上的账不退不换。与断后对照着看:同是替兄弟挨,断后钉在原地守一条线——线后的兄弟只管跑,守的是空间;挡刀是贴着兄弟接那一刀——刀落哪儿人站哪儿,守的是那一刀的收件人,护卫系的两个门派在"守一片地"还是"守一个人"上分了家。
五、代挨系的义气账:六折的疼也要有人抢着付
挡刀真正演的是"抢"这个动作的温度:狼怪的刀已经点名了,跨过去的人硬生生把收件人改成自己——疼没少受,只是六折,可兄弟那半拍的喘息,值回整场。会玩的搭档把挡刀编进撤退的呼吸里:血薄的人专职引怪拉红标,肉盾的手指永远悬在换我上,红标一亮人就到——代挨系的默契不用语言,红标一亮人已到,就是全部台词。对观战者,金环里兄弟淡出的那几帧,比任何治疗术都动人——治疗回的是血,挡刀回的是命。工程收尾记一笔:跨步的落点要贴着兄弟的身位而不是红标的位置——人落地才算站进刀路,落点差半步,替挨就变成陪挨。最后留给数值组的一句话:四折对一刀,账面不肥——代挨系的收益全在"兄弟还站着"这件事里,这条不进伤害统计,进的是整场仗的胜负。
挡刀的冷却也是一门读数的功课:五秒的空窗里红标又亮,硬按只会白按——这时候的解法不是腿,是嘴:喊一声兄弟开跑,红标追着人打,比追着站桩的打温柔得多。挡刀挡不住的间隙,用走位补;走位补不住的,用下一记冷却等——护卫的功课一半在腿上,一半在嘴上。
写完再留一句给做代挨系的同学:替挨最容易做成"一个伤害转移",而它本该是一次当着刀改收件人的跨步——标要看得见、跨要跨得急、六折要署上自己的名,替挨替出了担当,这门功夫才配叫挡刀。
补一个演示彩蛋位:接完刀的一瞬,兄弟从隐色里回来会先看你一眼再看狼——那一眼没有数值,可每个打过配合的人都懂:那一眼是"记下了"。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…
【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…
【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…
【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…
【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…
【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…