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

狮子吼:一声吼退三里地

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

【游戏功能】

帮会一位法师抱怨他的"狮子吼"技能输出太低不想用了——我打开战斗记录一看,这技能本来就不该有高输出,它的价值是"吼退+恐惧"的控制效果。今天拆狮子吼的表现,看"一声吼"怎么做出击退加恐惧的双重效果。

一、蓄气、吼出、震退三段爆发

狮子吼的爆发三段。蓄气段:人物下蹲双手抱拳在嘴前,身后微尘被震起的碎屑扬起——蓄气的预备动作是全场的安静前奏。吼出段:金圈三重波纹从人物嘴里向外扩散,吼声的声波环一圈比一圈大——声波环是吼的视觉锤,每一圈都在推狼怪后退。震退段:狼怪被吼退+恐惧不敢近身——震退的距离由吼的力道决定,恐惧标记挂在狼怪头顶。三段的核心是"声波的推力":声波环一圈圈扩散,狼怪就被一圈圈推远,吼声消失狼怪也就停下了。

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

demo
 fx-roar

二、幂尔框架实现:声波环与恐惧标记

吼出的声波用多环扩散渲染,恐惧用计时器+标记:

lua
local Roar = {}
local KEY = { WAVES = 3 }

local fearT = 0

function RO.Execute(self_, target)
    SL:PlayActorAct(self_, "cast")
    SL:PlaySfx("roar")
    -- 声波环: 三圈依次扩散
    for w = 1, KEY.WAVES do
        SL:ScheduleOnce(function()
            SL:PlayFxAt("roar_ring", SL:GetValue("actorX", self_),
                                    SL:GetValue("actorY", self_) - 50, w)
        end, w * 0.12)
    end
    SL:ScheduleOnce(function()
        SL:ScreenShake(0.28, 5)
        -- 击退: 力道决定距离
        local power = SL:GetValue("roarPower") or 100
        SL:KnockBack(target, power)
        SL:PlayActorAct(target, "stuck")
        fearT = 2.5
        SL:ShowTipAbove(target, "吼退!")
    end, 0.4)
    -- 恐惧期: 狼怪不敢近身
    SL:Schedule(function(dt)
        if fearT <= 0 then SL:UnSchedule("fearRun") return end
        fearT = fearT - dt
        SL:ShowTipAbove(target, "!")
        -- 恐惧中狼怪远离玩家
        local dx = SL:GetValue("actorX", target) - SL:GetValue("actorX", self_)
        SL:SetActorVelocity(target, dx > 0 and 30 or -30, 0)
    end, 0.016, "fearRun")
end

return RO

恐惧期的远离速度三十像素每秒——逃跑的速度是散布的,不是直线冲刺,晃晃悠悠地"不敢过来"才像被吓到了。

三、击退力度与恐惧的时长

击退力度滑块和恐惧时长是两个独立的参数轴:力度决定距离、恐惧决定时间——两者组合出"短距长惧"和"长距短惧"的不同体验。恐惧时长两秒半是体感最佳值:太短狼怪立刻回来没安全感,太长等于眩晕浪费时间。恐惧标记的感叹号要闪烁:红色感叹号在狼怪头顶每零点五秒闪一次——闪烁的频率就是恐惧的"心跳",闪得越快越慌。最后,吼声的音效用低频的"嗷"加高频的回响——低频是声音本身,高频是山谷回音,两层叠出来才有"狮子吼"的霸气。

作者履历与出处

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

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

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

LATEST ARTICLES

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

进阶实战游戏功能

偷影:偷走它的影子,没了影子的怪刀都虚

【游戏功能】 if _shadowT 0 then spd = noShadow and 12 or 24 end ——一行…

2026-10-01 06:03 996 技术组
进阶实战游戏功能

魂卫:杀一葬一,魂火替你出手

【游戏功能】 魂卫的全机制就一句:杀掉小怪化一盏魂火跟着你走,每盏魂火两秒自动劈最近的大怪一口八点,至多三盏——「引魂!」按…

2026-10-01 06:03 996 技术组
进阶实战游戏功能

纸人替灾:贴一个纸人,下一道咒它替你挨

【游戏功能】 一道咒飞过来,硬吃是四秒里一秒十的钝疼——有没有第三条路?纸人替灾给的就是第三条路:贴一个纸人在身后,八秒里头…

2026-10-01 06:03 996 技术组
进阶实战游戏功能

水镜式:挨的刀存进镜里,连本带利还回去

【游戏功能】 挨打还能赚钱?水镜式的答案是:挨的刀七成存进镜里不扣血、三成照常疼,六秒后点「还镜」,存量乘一点五放成水炮——…

2026-10-01 06:03 996 技术组
进阶实战游戏功能

弹反镜:架起一面镜,箭从哪来回哪去

【游戏功能】 if _mirrorT 0 then SL:TipAboveMe("免疫") return end ——一道写…

2026-10-01 06:03 996 技术组
进阶实战游戏功能

缩地阵:圈越缩越小,逼它和你贴身

【游戏功能】 远近战的矛盾怎么解?远战的答案是把怪挡在射程外,近战的答案是把人拖进射程内——缩地阵给的第三个答案最蛮横:圈只…

2026-10-01 06:03 996 技术组