祖玛教主倒下的瞬间,掉落的裁决之杖归谁?BOSS 的归属规则是打宝生态的宪法:单挑的归属清晰、组队的分配公平、抢怪的边界明确——归属的争议每少一起,打宝的秩序就稳一分。
---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% 的队伍没有归属权(补一刀抢归属的伎俩失效),贡献的门槛让捡漏与打宝的界限分明。
---掉落的分配:模式由队长选择
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 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 战士克法师、法师克道士、道士克战士——三角的克制是传奇职业平衡的骨架。克制框架的要点是相性的数值化、克制…
实战应用:用在哪里 挂机 24 小时的收益与玩 2 小时一样多吗?疲劳值系统回答产出节奏的问题:每日的疲劳额度框定有效收益的…
实战应用:用在哪里 GM 发出去的每一件补偿、踢掉的每一个号都要能查:审计的数据躺在日志里不算难,检索的效率决定追责与复盘的…
实战应用:用在哪里 师徒链的层级遍历、行会职位的树状结构、嵌套菜单的展开——递归的写法优雅但栈深是隐形的雷。递归改写把深层的…
实战应用:用在哪里 找回密码是账号安全的压轴救援通道,也是社工攻击的突破口:骗过客服就能偷走别人的账号。找回的流程设计在「帮…
实战应用:用在哪里 行会基金是行会的公共金库:沙巴克的税收、成员的捐献、活动的奖金全进这一个池子,基金的每一笔进出都要对得上…