CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
进阶实战游戏功能996引擎

推波:一堵水墙推着它们走,推到火里才算完

2026-09-30 22:28 作者:996 技术组 996引擎Lua教程传奇脚本进阶实战游戏功能996引擎

【游戏功能】

场上有火坑,狼怪又贴着你——攻也不是退也不是的死局,怎么解?推波的答案是把死局变成杠杆:一堵水墙从左往右推过去,被推到的狼怪连人带爪滑向火坑——推波的伤害不在墙上,在墙的终点上。今天拆推波,看"位移系"怎么把推这个动作,变成给狼怪指路的运钞车。

一、起墙、推狼、落火三段

推波的循环三段。起墙段:一道水墙从你脚边立起,贴着地面往右滚——起墙段是全技能的宣告:墙的推进方向恒定向右,速度恒定,墙所过之处狼怪全被推着走——墙就是一条会走路的分界线,线右侧是终点,终点有个火坑。推狼段:水墙撞上狼怪,狼怪被推着连滑带跑,脚下的尘土一路往右飞——推狼段是全技能的搬运:推的力道不重,但推的路径精准——狼怪被推着经过的每一寸地面,都在替你缩小它和火坑的距离。落火段:狼怪滑进火坑,七十点的"落火"大字连着火星一起炸——落火段是全技能的结账:火坑的七十点不是水墙打的,是火坑打的——水墙只是把它们"送"了过去。三段的核心是"推即送":推波本身一分伤害没有,它赚的是把敌人变成炮弹的那一下——推得准的人,一堵水墙顶三发大炮。

完整演示在这,默认自动循环:

demo
 fx-pushwave

二、幂尔框架实现:推波是一堵只进不退的墙

推波的账本就是墙的横坐标——

lua
local PushWave = {}
local WAVE_SPD = 170       -- 墙速
local PUSH_R   = 30        -- 推撞半径
local PIT_X    = 590       -- 火坑位置
local FALL_DMG = 70

local wave = nil

function SL:CastWave()
    if wave then return end
    wave = { x = 100 }
    SL:PlayActorAct("self", "cast")
    SL:ShowTipAbove("self", "推波")
end

function SL:OnTick(dt)
    if not wave then return end
    wave.x = wave.x + WAVE_SPD * dt
    SL:DrawWave(wave.x)
    for _, w in ipairs(wolves) do
        if not w.dead and math.abs(wave.x - w.x) < PUSH_R then
            if not w.wet then w.wet = 3.0 end     -- 湿滑:被推着走
        end
        if w.wet then
            SL:DragActor(w, 1, 130 * dt)          -- 顺着推力滑
            if w.x >= PIT_X then
                SL:HitActor(w, FALL_DMG)
                SL:ShowTipAbove(w, "-70 落火")
            end
        end
    end
    if wave.x > 700 then wave = nil end
end

return PushWave

墙只进不退是全技能的性格:wave.x 每帧递增从不回头——推波的推进是一条单行道,单行道上的狼怪没有讨价还价的余地。

三、推狼的演出规格

水墙是全技能的脸面:四层蓝白的水叠影从下往上码,墙头翻着白沫——水墙要"叠",叠出来的层次才有"一堵墙"的体量。湿滑的标记要"晃":被推的狼怪脚下打滑,头顶晃"湿滑"两个小字——湿滑的状态写在它自己头上,滑向哪里就是它自己的路线图。落火的排面要"轰":火星混着水汽一起炸、狼怪被推过火坑时四脚朝天——落火的七十点要炸出"水浇火"的轰响,水推火的账面才有戏。狼怪在墙后的挣扎要"蹬":被推的狼怪四爪蹬地、蹬出一溜尘土——蹬地的尘土越急,推波的搬运感越足。

四、定价与三条波规

推挤系的定价一句话:墙速恒定、推程全免伤、落坑七十——推波自己不打人,它打的账全记在"终点"头上。三条波规:其一,墙不认人——玩家站在推进线上照样被推,水墙不认施法者,推波的阵型学第一课就是别站在自己的推线上;其二,湿滑三秒——被推过的狼怪带三秒的湿滑,湿滑期它自己走路也打滑——湿滑是推波的余味,余味里它连追人都追不稳;其三,落坑即定身——火坑里的狼怪定身一秒,火坑的惩罚不止七十还有一秒的罚站,坑里的每一秒都是白给的输出窗。与抗拒火环对照着看:同是"推怪出门",火环是原地放一圈推力——推完就结束;推波是造一堵会走的墙——推着狼怪一路走,位移系的两个门派在"推一下"还是"推一路"上分了家。

五、推挤系的选址学:墙不值钱,墙的终点才值钱

推波真正设计的是"终点学":墙的起点由你定、方向恒定,唯一能做文章的是终点——终点是火坑,一墙两杀;终点是平地,一墙零杀。老玩家的推波从不看墙看地:开打前先扫一眼场子——火坑在哪、墙角在哪、悬崖在哪——三个坐标记完,推波就从控制技升级成了处决技。对观战者,狼怪被水墙推着一路滑进火坑的画面,是全场最有"多米诺感"的一幕:从起墙到落火,两秒演完一场因果。工程收尾记一笔:被推的狼怪脚下的滑行痕迹要留在地上——滑痕是"它被推的"的笔迹,笔迹从起点画到火坑,推波的账本才有一笔一笔的实感。最后留给数值组的一句话:落坑七十对墙速一百七,账面全在终点上——推挤系的定价不写在技能描述里,写在地图上有几个坑。

写完再留一句给做推挤系的同学:位移推挤最容易做成"强制移动一段距离",而它本该是一堵把敌人送进账本里的墙——墙要推得匀、狼要滑得慌、坑要炸得响,终点立住了,玩家的每一堵墙才都是一单生意。\r\n\r\n推波还有一手三连推的葬送打法:第一波把它们推下火坑、第二波推刚爬出来的、第三波推还没站稳的——三波推波一气呵成,狼怪整场都在滑,连还手的姿势都摆不出来——推波连发的艺术,是让敌人全场都在打滑。

补一个演示彩蛋位:狼怪滑进火坑的前半秒,湿滑的脚下会先冒一缕白汽——白汽是水碰到火的预告,白汽一起,落火的七十点就已经在路上了。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

进阶实战游戏功能

Lua自动炮台:架一个自动索敌开火

【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…

2026-10-02 04:50 996 技术组
进阶实战游戏功能

Lua元素转换:火伤转冰伤附带减速

【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…

2026-10-02 04:50 996 技术组
进阶实战游戏功能

Lua连锁引燃:一个着火引燃下一个

【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…

2026-10-02 04:50 996 技术组
进阶实战游戏功能

Lua弹射地垫:踩上去弹飞到空中

【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…

2026-10-02 04:50 996 技术组
进阶实战游戏功能

Lua时间减缓:流速减半的局部时差

【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…

2026-10-02 04:50 996 技术组
进阶实战游戏功能

Lua引力球:丢出去把怪吸过来

【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…

2026-10-02 04:50 996 技术组