【游戏功能】
一、先抛一个坑
地刺为什么从脚下开始、沿着一条线追到敌阵?做成目标脚下原地一丛刺不行吗?行,但那是控制技。地刺的爽点在"追":刺线从施法者脚下破土,一路推进直扑敌阵,刺头扫过谁谁浮空——玩家看见的是"我的攻击长着腿在追人"。推进式范围技能与定点范围技能的差别,是猎人与陷阱的差别。
二、机制原理:推进前沿即判定前沿
刺线的结构与裂纹冲锋同族:头部位置每帧推进,头部扫过的目标结算浮空。与裂纹的差异有两点。视觉上,地刺是逐节拱出的三棱锥土刺,节与节之间留固定间距,推进过的地面留下渐隐的残刺——残刺是这条线的"尸骸",也是天然的战场标记。判定上,浮空用初速加重力的真抛物线,被顶飞的怪沿刺线方向微位移后落回原位附近,浮空期间不可行动不可受击——地刺的控制是"打断节奏"而不是"伤害放大"。推进速度与刺节密度成反比配置:刺越密推进越慢,压迫感越绵长。
fx-spikeline
三、正确写法:推进刺线(幂尔版)
local SpikeLine = {}
local CONST = { MSG_ID = 12190, KEY = "SpikeLine", SPEED = 600, LEN = 460, AIR_VY = -150 }
function SpikeLine.Cast(myID)
local myX = SL:GetValue("ACTOR_POSITION_X", myID)
local dirSign = SL:GetValue("ACTOR_DIR", myID) == 2 and 1 or -1
SpikeLine._head = myX + 40 * dirSign
SpikeLine._dir = dirSign
SpikeLine._end = myX + dirSign * CONST.LEN
SpikeLine._sched = SL:Schedule(function(dt)
SpikeLine:Update(dt)
end, 0.02)
end
function SpikeLine:Update(dt)
self._head = self._head + self._dir * CONST.SPEED * dt
SpawnSpikeAt(self._head) -- 刺头位置拱出新刺
SpawnDirtDebris(self._head) -- 沿途碎土
for _, id in ipairs(SL:GetValue("FIND_IN_VIEW_MONSTER_LIST") or {}) do
if not self._hit[id] then
local mx = SL:GetValue("ACTOR_POSITION_X", id)
if math.abs(self._head - mx) < 32 then
self._hit[id] = true
SL:SendLuaNetMsg(CONST.MSG_ID, id, 0, CONST.AIR_VY,
SL:JsonEncode({ key = CONST.KEY, op = 2, hit = id }))
end
end
end
if (self._dir > 0 and self._head >= self._end)
or (self._dir < 0 and self._head <= self._end) then
SL:UnSchedule(self._sched) -- 推进完成, 注销心跳
self._sched = nil
end
end
return SpikeLine
四、四个必须钉死的细节
五、心法:让攻击长出方向感
地刺追命的魂是"攻击有方向、有去程":从脚下出发、扑向敌阵、停在尽头。玩家看到的是一条有生命的攻击线。与定点技能相比,推进式攻击多了一个"过程可读"的优势——怪在哪一节被顶飞,玩家看得清清楚楚。把范围攻击做成有来路的推进,命中就不再是概率,是叙事。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 一刀才二十,凭什么说它是好技能?放血的账要等五秒后才看得全:刀口一开,血自己往外淌,五口小额慢扣,总账远超那一…
【游戏功能】 从它头顶翻过去,落地的哪一秒最疼?答案是它转过身来之前的那半秒。燕返的全套设计都围着这半秒转:起跳掠过头顶、落…
【游戏功能】 移速快两成有什么用?打不到人的时候才知道。疾行术是这批技能里数值最朴素的一个——没有伤害、没有控制,就一条移速…
【游戏功能】 太极阵的骨架就这一行:在地上画一个会转的阴阳圈。但让怪物"身不由己"往阵心走的,不是这个圈的画,是圈里每帧都在…
【游戏功能】 明明开着护甲,怎么比裸奔掉血还快?有人把神圣战甲术和金刚护体混为一谈——罩是先扣罩值再掉血,甲是每一刀 打对折…
【游戏功能】 血条见底的时候,道士的刀为什么还在回血?血刀术的反直觉就在这:伤害照给、血也照回,两条账同时走——它不是"吸血…