BOSS 掉落的归属判定是打宝玩法的法律系统:谁有资格捡装备、捡了算谁的、队伍内怎么分配,规则的公平性决定打宝生态的稳定。传奇的归属模式从自由拾取演化到伤害权重与队伍锁定,引擎里是一套完整的归属状态机。
local LOOT_MODE = { free = 0, teamLock = 1, damageWeight = 2 }
function Loot.assign(boss, killerTeam)
local mode = killerTeam.lootMode or LOOT_MODE.teamLock
if mode == LOOT_MODE.teamLock then
Loot.lockToTeam(boss, killerTeam, 60)
elseif mode == LOOT_MODE.damageWeight then
Loot.lockToTopDamage(boss, 60)
end
end
function Loot.lockToTeam(boss, team, seconds)
boss.lootOwner = { type = "team", id = team.id, expireAt = os.time() + seconds }
QF_BroadcastMap(boss.mapId, team.name .. " 获得拾取权 60 秒")
end
队伍锁定模式:击杀 BOSS 的队伍获得 60 秒独占拾取权,期间外人拾取无效。伤害权重模式:按伤害贡献排序逐个分配高价值物品。归属期结束掉落转为无主,所有人可拾,归属Expired的物品不会消失。
function BossMgr.dropLoot(boss, team)
for _, entry in ipairs(boss.dropTable) do
if math.random(1, 10000) <= entry.rate then
local ground = QF_DropItem(boss.x, boss.y, entry.item, entry.count)
ground.lootOwner = boss.lootOwner
ground.bindPick = entry.bindPick
ground:ShowName(entry.item)
end
end
QF_LogBossLoot(boss.name, boss.dropLog())
end
掉落表逐项掷概率,掉出的物品散落在 BOSS 尸体周围,归属标记随物品坠地。绑定拾取的物品(如行会提交品)拾取即绑定,交易行的流通品则自由。掉落全量写日志:什么 BOSS、掉什么、谁捡了,纠纷与审计都有据可查。屠龙刀级别的传说掉落触发全服红字播报,全服玩家的肾上腺素跟着一起飙升。
归属期的拾取拒绝记录统计,归属外拾取成功即为归属漏洞,每次都要彻查。
归属期的计时曾经以 BOSS 死亡瞬间的队伍名单为准,中途进队的混子也有拾取权,改为按伤害贡献名单判定后公平。散落坐标曾经重叠,多件装备叠在一点只显示一件,散落算法加最小间距约束后每一件掉落都肉眼可见。
归属模式的选择权限在队长手里,队伍创建时的默认模式与战斗中的模式切换都在队伍面板操作,分配制度的切换成本被做到最低。掉落物的归属标记在物品名前有徽章前缀:锁型徽章代表归属锁定,自由拾取的物品无徽章,徽章语言让地面信息的读取无需猜测。归属的申诉通道在掉落日志里一键提交,争议的仲裁流程最迟 24 小时给出结论。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…
实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…
实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…
实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…
实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…
实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…