冰咆哮是法师的核心 AOE:以目标点为中心 3 格范围内的全体敌人吃到伤害并附带减速,沙城战里法师团的冰咆哮覆盖是战术基座。点选地面目标的范围技能要处理坐标校验、范围结算与减速状态三段逻辑。
-- 技能释放触发:冰咆哮
function QF.IceStorm(plr, tx, ty)
if not plr:CooldownReady("ice_storm") then return false end
if plr:DistToXY(tx, ty) > 8 then
return false, "超出施法距离"
end
plr:SetCooldown("ice_storm", 8)
plr:CostMP(45)
local targets = QF_GetUnitsInCircle(tx, ty, 3)
for _, t in ipairs(targets) do
if t.camp ~= plr.camp then
local dmg = plr:GetMagic() * 1.5
QF_ApplyDamage(plr, t, dmg, "ice")
if not t:IsBoss() then
t:AddState("slow", { expireAt = os.time() + 5, rate = 0.5 })
end
end
end
return true
end
施法距离 8 格校验点选坐标,防止超视距打击。3 格半径圆内所有敌方单位吃 1.5 倍魔法伤害,非 Boss 附带 5 秒减速 50%。同阵营不受伤,沙城混战里友军误伤为零是硬规则。
function Slow.applyMoveSpeed(t, rate)
local base = t:GetMoveSpeed()
t:SetMoveSpeed(math.floor(base * rate))
SL_UI:showSlowMark(t)
end
减速直接改移动速度,状态到期自动恢复基础值。客户端冰霜覆盖的地面贴图持续 5 秒,SL_UI:showSlowMark 在被减速单位头顶挂冰晶标记。冰咆哮的蓝耗 45 点在法师消耗结构里占比很高,配合蓝药补给节奏是法师玩家的一门经济课。
单次释放的命中人数统计与范围设定比对,零命中的释放占比反映施放时机的手感。
点选坐标曾经不校验距离只校验地图,法师隔着屏幕边缘冰人,8 格施法距离补上后才符合法术半径。减速状态与坐骑加速叠加出现负速度,速度钳制下限 20% 的通用规则补进状态系统。
冰咆哮的蓝耗与伤害的性价比曾经被火墙整体压制,法师团集体转投火墙流派后,冰咆哮的减速价值被重新定价:控制与伤害不应用同一把尺子衡量。减身的 50% 幅度在沙城战里是阵型切割的工具,冰咆哮铺出的减速带让冲锋的战士队形拉出断层,技能的战术价值超越了数值面板。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…
实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…
实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…
实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…
实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…
实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…