掉率倍率、经验倍率、活动开关、商店价格——这些运营高频调整的参数散落在各脚本里,每次调整都要找代码。配置中心把全部可调参数收敛到一个配置源,脚本统一读取,运营后台改配置即全服生效。适用于:数值参数、功能开关、公告文案、活动时间表。
local Config = { data = {}, version = 0 }
function Config.reload()
local text = readFile("cfg/center.json") -- 或从 Redis/接口拉取
if not text then return false, "配置文件缺失" end
local ok, parsed = pcall(jsonDecode, text)
if not ok then return false, "配置格式错误" end
if parsed.version <= Config.version then return true end -- 版本未变,跳过
Config.data = parsed
Config.version = parsed.version
EventBus.emit("CONFIG_RELOADED", parsed)
return true
end
function Config.get(path, default)
local node = Config.data
for seg in (path .. "."):gmatch("([^%.]*)%.") do
node = node and node[seg]
if not node then break end
end
return node ~= nil and node or default
end
-- 业务读取示例
local rate = Config.get("game.exp_rate", 1)
点分路径读取(game.exp_rate)让配置结构可以任意嵌套,default 参数兜底缺失配置。
配置变更的生效路径两条:定时轮询(每 60 秒检查版本号)与后台主动推送(通知各进程立即 reload)。配置变更事件通过事件总线广播,依赖该配置的模块在监听里刷新内部状态(缓存重置、开关重读)。关键配置(涉及资产的)变更写审计日志:旧值、新值、操作人、时间。
配置带版本号单调递增,历史版本快照保留最近 10 份,出问题一键回滚到指定版本。配置内容走 review(与代码同等级),高危配置项(爆率、掉落)标注双人复核标记。配置中心落地后,运营调整从"找程序改代码热更"变成"后台改配置 30 秒生效"——这是把程序从重复劳动中解放出来的第一批自动化。
配置的灰度与回滚:高危配置项(爆率、掉落倍率)支持按服务器分组生效,先在单服验证再全服推送。回滚操作读取历史版本快照一键还原,回滚动作本身也进审计日志。配置变更的生效延迟需要公示:轮询模式下最长延迟等于轮询间隔,对时效敏感的开关改用主动推送通道。两套通道并存时以推送为准、轮询兜底,保证最终一致。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 战士的烈火剑法一击熄火后要等八秒冷却,连招断档感强烈。疾风烈火斩在烈火剑法命中后给一次连击窗口:三秒内再…
实战应用:用在哪里 阵营对抗打到中期容易疲软:打赢没有额外好处,输掉也没有代价。阵营声望体系给阵营战装上荣誉刻度:个人与阵营…
实战应用:用在哪里 拿下沙巴克之后呢?城主除了名字挂在城墙上,对城市毫无影响。城主施政玩法让占领变成治理:城主每周获得市政令…
实战应用:用在哪里 主线路光缆被挖断的深夜,全服掉线 20 分钟,玩家以为游戏倒闭。备用线路方案给接入层配第二条出口:主线路…
实战应用:用在哪里 行会官员由帮主任命的老模式弊端明显:任人唯亲、能上不能下。行会选举接口把官员换届做成投票制:每两个月一次…
实战应用:用在哪里 烈火剑法的伤害加成、冷却时间、下一级提升,全靠玩家记忆或去官网查。技能说明悬浮卡片在鼠标悬停技能图标零点…