CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
后端接口

【后端接口】addbuff:BUFF 接口的叠加层数与属性表

2026-09-22 20:38 作者:996 技术组 后端接口

实战应用:用在哪里

addbuff 是状态系统的入口:中毒、加速、护盾、变身全走这一个接口。它的参数表把 BUFF 的四要素(时长、叠加、施放者、属性修正)一次配齐,配合 buff 表驱动,策划调整一个 BUFF 不需要动代码。

接口签名与叠加

lua

---添加buff obj:玩家|怪物 buffid:10000起步 time:单位看buff表 OverLap:叠加层 objOwner:施放者 abil:属性表
function addbuff(obj, buffid, time, OverLap, objOwner, abil) end

-- 给玩家加 60 秒攻击强化,叠 2 层,带属性表
addbuff(actor, 10001, 60, 2, actor, { [1] = 200, [4] = 20 })

obj 参数玩家与怪物通吃,同一接口给怪上减益给玩家上增益。abil 属性表用属性 ID 做键:1 号位配 200 点攻击、4 号位配 20 点防御,属性修正随 BUFF 生效与到期自动挂卸,不需要业务手工加减。objOwner 登记施放者,光环类 BUFF 的施放者死亡后自动消散的规则靠这个字段驱动。

查询与判断

lua

-- 施毒前判断目标是否已有同系 BUFF
function poisonOrRefresh(target)
    if hasbuff(target, 10010) then
        addbuff(target, 10010, 60, 1, actor)
        sendmsg(actor, 1, "目标已中毒,刷新时长")
    else
        addbuff(target, 10010, 60, 1, actor)
        sendmsg(actor, 1, "目标中毒")
    end
end

hasbuff 先判后加是刷新与新增的分流写法,配合 OverLap 参数实现叠层或刷新两种策略。getbuffinfo 能取出 BUFF 的剩余时间与当前层数,界面上毒圈的剩余秒数显示就是读的这个接口。BUFF 的时长单位以 buff 表配置为准:同一个接口传 60,毒表按秒算就是 60 秒,跳跃表按跳算就是 60 跳,单位的解释权在配置侧。

验证与监控

BUFF 的叠加层数分布监控,层数长期顶在配置上限说明叠加规则需要复盘。

踩坑记录

buffid 从 10000 起步是引擎保留段的约定,有脚本用了 9999 与引擎内置 BUFF 撞车,表现为玩家无故变身,id 段位规范写进接口注释后绝迹。abil 属性表的键写错为字符串(["1"]=200 而不是 [1]=200)时属性不生效且无报错,属性表的键类型断言进了配表校验。

上线要点

给怪物上 BUFF 时注意 obj 传怪物对象,玩家与怪物的 BUFF 表是同一张但生效字段不同,怪物吃速度类 BUFF 的行为要在配表时单独验证。BUFF 的叠加上限在 buff 表里配,OverLap 传超上限的值引擎按上限钳制,业务层不必自行判断。驱散类功能的实现就是按 BUFF 分组遍历清除,给 BUFF 分组打标签的配表习惯能让驱散规则简单一半。

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

作者履历与出处

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

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

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

LATEST ARTICLES

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

工具链

【工具链】风格检查器:Lua 脚本命名与规范的自动审查

实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…

2026-09-22 22:32 996 技术组
界面UI

【界面UI】拍卖行界面:出价流程与截拍提醒

实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…

2026-09-22 21:12 996 技术组
框架设计

【框架设计】幸运值机制:强化失败的隐性补偿

实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…

2026-09-22 21:12 996 技术组
安全加密

【安全加密】日志防篡改:哈希链与异地备份

实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…

2026-09-22 21:12 996 技术组
性能调优

【性能调优】批量邮件:活动奖励的分批投递

实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…

2026-09-22 21:12 996 技术组
网络通信

【网络通信】面对面交易:握手、锁定与确认的协议

实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…

2026-09-22 21:12 996 技术组