周末活动双倍经验、行会Buff、组队加成、道具丹药四层叠加,理论上两倍,实测出现十六倍:四层各自翻倍连乘。一夜之间三十个号冲到满级,等级榜作废重排。复盘把倍率体系从各自为政改成分层封顶。
四个系统各自用addbuff挂自己的经验加成,引擎对同类Buff取乘积,二乘二乘二乘二,一个组队吃药的周末玩家拿到十六倍。
function weekendDouble(actor)
addbuff(actor, "EXP_X2", 7200)
end
function guildJoinBuff(actor)
addbuff(actor, "EXP_GUILD_X2", 86400)
end
两套Buff同源不同名,引擎不知道它们是同一类加成。
补丁把四层加成收进统一结算器:各类先取最大值,总和封顶三倍,超出的部分静默截断。
local function finalExpMult(mults)
local cap, sum = 3, 1
for _, m in ipairs(mults) do
sum = sum + (m - 1)
end
return math.min(cap, sum)
end
四层全开的测试号实测倍率必须是三倍封顶;单层场景各自回归不受影响。上线后监控满级账号的日均增速,单日升十级以上即告警,倍率失控最先在榜单露出马脚。
同类Buff不同名是历史包袱,收敛命名要兼容存量玩家身上的旧Buff,过渡期双名并存按同源处理。封顶三倍是运营决策不是技术决策,数值组签了字才改,技术单方面封顶等于偷改玩法。满级的三十个号处理走公告加回收经验的软着陆,直接扣级引发的情绪更大。倍率结算器上线后,所有加经验的新功能必须走它,绕过的入口在评审就打回,体系外多一个入口就多一次事故。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
设计初衷 强化是装备养成的主消耗口:黑铁矿石、金币、幸运后续材料都从这里回收。数值目标三条:前期强化爽感足(+1 到 +3 …
设计初衷 沙巴克是全服经济的枢纽:占领它要有真金白银的回报,但回报过丰会让大行会永久垄断、新区行会干脆躺平。数值目标三条:城…
设计初衷 红名系统要同时吓住恶意PK、又不扼杀正常摩擦:惩罚过轻,恶人会蹲新手村门口屠杀;惩罚过重,行会战误伤没人敢动手。数…
底层原理 Lua 的写入规则:给表中一个不存在的键赋值时,引擎先查元表的 __newindex;__newindex 若是函…
底层原理 引擎的 Lua 脚本跑在协作式调度里:一段脚本能跑多久,取决于它自己何时返回。祖玛阁开门要补 2000 只祖玛卫士…
底层原理 Lua 字符串不可变:每次 .. 都新建一个字符串对象,旧的变成垃圾。沙巴克战报高峰,200 名参战玩家每秒产生约…