makeposion 是施毒的引擎接口:道士的施毒术、怪物的毒雾、机关的毒针全部走它。毒素的三要素(类型、时长、每跳数值)在这个接口的参数表里一次给全,毒系统的表驱动让新的毒种类零代码接入。
---施毒 actor:施毒者 type:毒素类型 time:时长 value:每跳数值 model:表现模式
function makeposion(actor, type, time, value, model) end
-- 灰毒:15 秒,每跳掉血 8 点
makeposion(target, 0, 15, 8, 0)
-- 黄毒:15 秒,降防型毒素
makeposion(target, 1, 15, 5, 1)
type 区分毒素的系别:掉血毒与降防毒的结算逻辑由类型分派。time 是毒的总时长,value 是每一跳的伤害或降防数值,model 控制表现模式(飘字样式与音效)。施毒者参数让毒素的击杀归属可追溯,毒死的击杀 credited 给下毒的人,这是道士毒系玩法的归属基石。
-- 重复施毒的刷新策略:时长刷新不叠伤
function poisonHit(actor, target)
if hasbuff(target, POISON_BUFF_ID) then
-- 已中毒:仅刷新时长
makeposion(target, 0, 15, 0, 0)
else
makeposion(target, 0, 15, 8, 0)
end
end
-- 解毒接口
detoxifcation(target, 0)
重复施毒的策略用先判后加:已中毒只刷时长不叠伤害,配合 BUFF 判定实现刷新语义。解毒走 detoxifcation 按类型清除,解毒药与道士的净化技能共用这一出口。毒的每跳结算是引擎内部驱动,业务不需要自建定时器,引擎的 tick 与毒表配置天然同步。
毒伤的流水按施毒者聚合,毒系职业的输出占比监控是职业平衡的输入。
value 传 0 的施毒曾经被用来白嫖毒的降防效果不掉血,零伤害毒的合法性在 PVP 平衡讨论后被限制为怪物专属。毒的时长单位与 BUFF 表的单位混淆过,同样的 15 在两边含义不同,毒素与 BUFF 的时长单位对照表贴在了开发文档首页。
makeposion 与 addbuff 的边界:带周期伤害的状态用毒接口,纯属性修正的用 BUFF 接口,两套系统的结算路径不同不要混用。毒系对 BOSS 的抗性表是数值组的核心资产,毒系职业的强度曲线由这张表决定。施毒的表现模式参数在移动端与 PC 端的表现差异要实测,飘字过密在手机屏幕上是灾难。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…
实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…
实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…
实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…
实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…
实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…