一、抛坑提问:掉落表 200 个物品权重排到眼花——先掷"掉不掉、掉哪个稀有度",再在该稀有度池里抽物品,两段判定让每张表都不超过 10 行。
二、底层原理:两段判定把大权重表拆成层级小表:第一段定档(不掉 79%、普通 20%、稀有 1%),第二段在档内抽取;每段权重少而清晰,调概率只动档位表。
三、正确代码:
错误写法。示例代码如下:
local DROPS = {} -- 200行大权重表,肉眼维护
local function roll(actor)
local r = math.random(1, 100000)
-- 手动累减找区间,改一个权重全表重算
end
正确写法。示例代码如下:
local function roll(actor)
local r = math.random(1, 100)
if r > 20 then return end -- 79%不掉
local pool = r <= 1 and RARE or NORMAL
giveitem(actor, pool[math.random(1, #pool)],
1, 0, "祖玛教主掉落")
end
四、引擎验证:10 万次掉落:大表版改权重需全表重算;两段版稀有率实测 1.02%,档内分布均匀,调档位只改 3 个数字。
五、FAQ:问:两段判定概率独立吗?答:独立相乘,档内均抽时物品概率等于档率除以池大小。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法】 一、机制原理 隐蔽的坑:给表挂上 __gc 元方法,指望对象被回收时顺手关闭资源——脚本从头跑到尾,元方法一次都没…
【游戏】 一、规则机制 抛个坑:坐骑提速全场开放行不行?城里被高速身影来回冲撞,野区战斗刚接手人就窜出视野,PVP 双方都骂…
【游戏】 一、规则机制 隐蔽的坑:奇遇按 1% 概率在每次击杀时判定,运气差的玩家连杀三百只毫无动静,投诉"事件是假的"。感…
【语法】 一、机制原理 抛个坑:三十个活动开关要存档,开三十个字段太臃肿,Lua 5.1 又没有位运算符——还能把开关压进一…
【游戏】 一、规则机制 线上事故:活动加怪全压在出生点周边,门口怪海堆积秒刷秒清,深处空无一物;改成均匀散布又稀得打不动,体…
【游戏】 一、规则机制 抛个坑:药能无限嗑吗?产物直接叠 buff 的话,肝帝把攻击药当饭吃,数值表全线失守。丹药规则两把锁…