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

【框架设计】BOSS 归属:伤害贡献与掉落分配

2026-09-21 19:46 作者:996 技术组 0 阅读 996引擎Lua教程传奇脚本框架设计战斗系统

实战应用:用在哪里

祖玛教主倒下的瞬间,掉落的裁决之杖归谁?BOSS 的归属规则是打宝生态的宪法:单挑的归属清晰、组队的分配公平、抢怪的边界明确——归属的争议每少一起,打宝的秩序就稳一分。

贡献的记账

lua
---BOSS 战的伤害记账
function BossDamage.onHit(actor, bossId, dmg)
    local player = class(actor)
    if not player then return end
    local key = bossId .. "_" .. actor:GetUserId()
    local rec = BossDamage.table[key]
    if not rec then
        rec = { dmg = 0, firstAt = os.time() }
        BossDamage.table[key] = rec
    end
    rec.dmg = rec.dmg + dmg
end

---归属的判定:伤害第一的队伍
function BossDamage.owner(bossId)
    local best, bestDmg = nil, 0
    local teamDmg = {}
    for key, rec in pairs(BossDamage.table) do
        local bid, uid = key:match("^(%d+)_(.+)$")
        if bid == bossId then
            local team = Team.of(uid) or uid
            teamDmg[team] = (teamDmg[team] or 0) + rec.dmg
        end
    end
    for team, dmg in pairs(teamDmg) do
        if dmg > bestDmg then
            best, bestDmg = team, dmg
        end
    end
    return best
end

伤害的记账按玩家维度累计:每次命中的伤害记进个人的账本,归属的判定把个人的账按队伍聚合——队伍的归属让组队打宝的收成归队伍而非个人,单挑的独行侠用自己的 ID 参战。归属的门槛另设:总伤害占比不足 10% 的队伍没有归属权(补一刀抢归属的伎俩失效),贡献的门槛让捡漏与打宝的界限分明。

掉落的分配

lua
---掉落的分配:模式由队长选择
local SPLIT_MODES = { "free", "round", "damage" }

function BossDrop.assign(bossId, drops)
    local owner = BossDamage.owner(bossId)
    if not owner then return end
    local mode = Team.splitMode(owner) or "free"
    for i, drop in ipairs(drops) do
        if mode == "round" then
            -- 轮流模式:按成员顺序逐件分配
            local member = Team.memberByOrder(owner, i)
            BossDrop.toMember(member, drop)
        elseif mode == "damage" then
            -- 贡献模式:按伤害占比排序分配
            local member = BossDamage.topOf(owner, i)
            BossDrop.toMember(member, drop)
        else
            BossDrop.toGround(drop)   -- 自由模式丢在地面上
        end
    end
end

掉落的分配三模式由队长定:自由(丢地上全凭手速)、轮流(按成员顺序逐件分)、贡献(按伤害占比排序分配)——模式的多样性匹配队伍的信任结构,野队的贡献模式最公平、固定队的自由最效率。掉落的稀缺件(裁决之杖级)的公示:归属确定后的全服播报带队伍名,名刀的出处全服可查。抢怪的边界规则:归属未定的 BOSS 谁都可以打,归属已定的再插手按恶意 PK 论处——先来后到的秩序在规则里写清。

验证与监控

归属判定的准确率回放:战斗记录与归属结果的比对,判错的案例进测试用例;分配模式的采用率统计,模式的偏好反映队伍生态的信任结构。

踩坑记录

伤害的记账曾经不按队伍聚合,散人的归属判定把组队的收益拆碎,聚合的维度修正。轮流分配的顺序曾经每次随机,轮流的意义荡然无存,顺序的持久化按队伍成员表。补刀的门槛曾经不设,10% 的伤害门槛上线后抢归属的投诉绝迹。

上线要点

归属的规则与分配的模式在组队面板公示,规则的透明减少纠纷。贡献的伤害明细在战斗结束后可查,每个人的账当场算清。恶意抢怪的判定与 PK 的红名机制联动,破坏秩序的代价写进规则。

作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

框架设计战斗系统

【框架设计】职业克制:三职业的相性与平衡框架

实战应用:用在哪里 战士克法师、法师克道士、道士克战士——三角的克制是传奇职业平衡的骨架。克制框架的要点是相性的数值化、克制…

2026-09-21 20:13 996 技术组 · 0 阅读
框架设计经济系统

【框架设计】疲劳值系统:产出节奏与限购的框架

实战应用:用在哪里 挂机 24 小时的收益与玩 2 小时一样多吗?疲劳值系统回答产出节奏的问题:每日的疲劳额度框定有效收益的…

2026-09-21 20:13 996 技术组 · 0 阅读
工具链审计系统

【工具链】审计查询台:GM 操作的检索界面

实战应用:用在哪里 GM 发出去的每一件补偿、踢掉的每一个号都要能查:审计的数据躺在日志里不算难,检索的效率决定追责与复盘的…

2026-09-21 20:13 996 技术组 · 0 阅读
性能调优算法优化

【性能调优】递归改写:尾调用与迭代的栈开销

实战应用:用在哪里 师徒链的层级遍历、行会职位的树状结构、嵌套菜单的展开——递归的写法优雅但栈深是隐形的雷。递归改写把深层的…

2026-09-21 20:13 996 技术组 · 0 阅读
安全加密账号安全

【安全加密】找回密码:身份核验与社工防御

实战应用:用在哪里 找回密码是账号安全的压轴救援通道,也是社工攻击的突破口:骗过客服就能偷走别人的账号。找回的流程设计在「帮…

2026-09-21 20:13 996 技术组 · 0 阅读
数据存储行会系统

【数据存储】行会基金:公共资金的收支与对账

实战应用:用在哪里 行会基金是行会的公共金库:沙巴克的税收、成员的捐献、活动的奖金全进这一个池子,基金的每一笔进出都要对得上…

2026-09-21 20:13 996 技术组 · 0 阅读