怪物死亡掉落是传奇经济系统的源头活水:每一只怪的掉落表定义了产出什么、概率多少、数量区间。掉落表的实现要点是概率掷取、数量随机与掉落物的地面管理,一张设计良好的掉落表让打怪本身充满期待。
local ZOMBIE_DROP = {
{ item = "金币", rate = 10000, min = 50, max = 200 },
{ item = "书页", rate = 800, min = 1, max = 1 },
{ item = "召唤骷髅", rate = 30, min = 1, max = 1 },
{ item = "强效金创药", rate = 1500, min = 1, max = 2 },
}
function QF.MonsterDrop(plr, monster)
local drops = {}
for _, entry in ipairs(ZOMBIE_DROP) do
if math.random(1, 10000) <= entry.rate then
local count = entry.min or 1
if entry.max then
count = math.random(entry.min, entry.max)
end
table.insert(drops, { item = entry.item, n = count })
end
end
for _, d in ipairs(drops) do
QF_DropGround(plr, monster.x, monster.y, d.item, d.n)
end
return drops
end
万进制概率:金币必掉,书页 8%,技能书 0.3%,药水 15% 且数量一到二随机。掉落物散落在怪物尸体周围,归属标记跟随击杀者,60 秒后转为无主。掉落表与怪物模板绑定,每张表的产出期望由数值组按练级经济模型测算。
function GroundItem.expire(item)
if os.time() - item.droppedAt > 60 then
item.owner = nil
item:ShowNameColor("#AAAAAA")
end
if os.time() - item.droppedAt > 300 then
item:Remove()
end
end
掉落物 60 秒后归属失效转为无主(名字变灰),5 分钟后自动消失清理。地面物品的容量上限:同屏掉落物超过 100 件时最旧的直接清除,防止恶意铺场。掉落的期望管理:掉率表是数值组的核心资产,每一次调率都要评估对全服经济的影响,装备的保值感与掉率的克制直接相关。
掉落概率的实际分布按周抽样比对,稀有物品的全服产出速率进经济日报监控。
地面物品的归属曾经按伤害第一判定,摸一下就跑的抢怪贼白捡归属,归属改为按击杀判定后纠纷减少。掉落表的万进制在策划手写时容易多写一个零,配表校验器对掉率字段的范围断言拦下了无数次手滑。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 行会建设需要资金,成员的投入却看不到回报。行会发展基金让成员按份投入行会基金,基金用于行会建设与集体活动…
实战应用:用在哪里 占领沙巴克后的日常维护靠几个人,城内挂机广告无人管,安全区成了法外之地。沙城巡逻队把城防日常做成排班玩法…
实战应用:用在哪里 行会仓库运营数月后杂物堆积:过期活动道具、低级材料、重复装备混杂在贵重物资之间。仓库整理接口按价值与用途…
实战应用:用在哪里 一次活动奖励少发,三名客服给出三种答复:补发、不补发、等通知。玩家把三张截图拼在一起发到论坛,一场本可善…
实战应用:用在哪里 玩家拥有多个称号,切换佩戴后效果不符预期又要来回换。称号预览在切换前展示佩戴效果:名字上方的称号样式、属…
实战应用:用在哪里 赤月巢穴的魔龙教主血量降至三成会进入狂暴:攻击翻倍、召唤赤月护卫、周期性释放全屏魔龙血域。狂暴触发把 b…