【游戏功能】
拆一行代码:
stuck[#stuck + 1] = { x = hitX, y = hitY, wob = 0.3 }
命中的飞刀不再消失,而是带着零点三秒的颤动钉在目标身上——飞刀连掷的表现核心就这一行:投掷物的"留存"。今天讲五刀连掷,讲怎么让"第五刀"成为全场都在等的那一刻。
一、累积视觉与计数爆点
连掷系技能的表现分两段。累积段:五刀接连钉入狼怪身体,每刀钉在不同高度、不同横向位置,刀柄颤两下才停——钉着的刀越多,狼怪看起来越像一排箭靶,视觉债越欠越多。爆点段:第五刀入体的瞬间触发致命回敬,白闪、冲击环、翻倍数字一起炸——前四刀每刀九点的零碎数字,在第五刀的四十大数字面前全是铺垫。两段的节奏对比是关键:前四刀间隔一百八十毫秒、每刀小反馈;第五刀前留一个明显的换气(人物抬手的停顿),然后一锤定音。累积的债在爆点一次还清,这是所有计数类技能的通用节奏。
完整演示在这,默认自动循环,可调掷刀间隔:
fx-knives
二、幂尔框架实现:留存表与计数触发
钉身的刀进留存表,第五刀走爆点分支:
local KnifeVolley = {}
local KEY = { COUNT = 5 }
local stuck = {}
function KnifeVolley.Throw(self_, target)
local thrown = 0
SL:Schedule(function(dt)
thrown = thrown + 1
SL:PlayActorAct(self_, "attack")
local oy = -60 - (thrown % 3) * 16
SL:PlayFlyFx("knife", SL:GetValue("actorX", self_) + 24,
SL:GetValue("actorY", self_) + oy,
SL:GetValue("actorX", target) - 18 + (thrown % 4) * 9,
SL:GetValue("actorY", target) - 92 + (thrown % 3) * 18,
700, nil, function(hx, hy)
-- 命中: 刀留存并颤动
stuck[#stuck + 1] = { x = hx, y = hy, wob = 0.3 }
SL:PlayBurst(hx, hy, "steel_spark", 6)
if thrown >= KEY.COUNT then
-- 第五刀: 致命回敬
SL:UnSchedule("knifeVolley")
SL:FreezeFrame(0.1)
SL:ScreenShake(0.24, 4)
SL:PlayFxAt("volley_finish", hx, hy)
SL:DeductHp(target, 40)
SL:ShowHitNum(target, 40, "finisher")
SL:PlayActorAct(target, "stuck")
SL:ScheduleOnce(function()
stuck = {} -- 刀随硬直结束一起消散
SL:PlayFxAt("knives_fade", SL:GetValue("actorX", target),
SL:GetValue("actorY", target))
end, 1.4)
else
SL:ShowHitNum(target, 9, "small")
end
end)
if thrown >= KEY.COUNT then SL:UnSchedule("knifeVolley") end
end, SL:GetValue("knifeGap") or 0.18, "knifeVolley")
end
return KnifeVolley
留存表在硬直结束时整体清空配一次淡出——刀不能永远挂在怪身上,下一轮连掷要一张干净的靶子。
三、钉点分布与颤动余韵
钉点的分布是视觉编排:五刀分别落在肩、胸、腹、肋、腿的高度,横向上从深到浅排开——像被钉上展示架,狠但不乱。颤动衰减是留存物的生命感:刚命中时刀柄每秒抖八次,半秒内衰减到静止,这个"余韵"比命中瞬间更有味道。第五刀的钉点要落在最显眼的位置——正胸口偏上,爆点的白闪从这一刀的位置炸开,因果链的视觉焦点收束在一处。数字的对照也要拉开:前四刀的九点小灰字一闪即逝,第五刀的四十大白字带感叹号停足半秒——零碎与重锤的反差越大,计数爆点越响。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 治疗术的流派里吵了几十年的架:瞬发治疗保当下,持续回血养节奏——回春术是后一派的掌门。回春的机制是一层温火:焐…
【游戏功能】 血条的分配学里有个扎心的现象:满血的人和一丝血的人站在同一道箭雨里,狼怪的爪子永远优先够着后者——血量不均是队…
【游戏功能】 隐蔽的报错单上写着一行怪数据:同一个技能,伤害记录在六十三和四十四之间跳——查了半天配置表,两套数值都"没配错…
【游戏功能】 治疗量的统计表上有一栏常年被无视:溢出治疗——奶到满血之后白白流掉的那部分。溢疗的机制把这栏捡了回来:满血再奶…
【游戏功能】 群攻技能的尴尬人人都懂:三只狼站得东一只西一只,六百点的群符砸下去只烧到一只——剩下两只在火圈外看得清清楚楚。…
【游戏功能】 if seal.t <= 0.4 then dmg = dmg 2 ——一行卡着符印尾巴翻倍的判定,养出了压哨…