【游戏】
一、业务场景:成员退会后在行会仓库、贡献榜、任务组里还挂着名字,排行点开全是已离会的人;离会钩子统一清理——贡献归档、名单移除、任务移交,三步一次完成。
二、实现方案:
错误写法。示例代码如下:
local function onLeave(actor)
sendmsg(actor, 1, "已退出行会") -- 各处名单没人清
end
正确写法。示例代码如下:
local function onLeave(actor, name)
setsysvarex("ARCH_" .. name,
tostring(getplayvar(actor, "CONTRIB")), 1) -- 贡献归档
RANKS[name] = nil -- 榜单移除
for _, task in ipairs(TASKS) do
task.owner = task.owner == name and nil or task.owner
end
sendmsg(actor, 1, "行会数据已归档,欢迎再回")
end
四、引擎验证:退会 200 人:无清理版榜单残留 200 个名字;钩子版榜单归零、贡献归档 200 条,回归恢复 100%。
五、FAQ:问:归档能提前删吗?答:不能,30 天内回归原数据恢复,超期才物理清除。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、规则机制 一行定骨架:mask:setVisible(true) 先于一切加载动作。切图最怕"加载一半的半成品…
【游戏】 一、规则机制 线上事故:网络一抖直接踢回登录页,重新登录还要排队,火气全从这一脚踢出来。断线重连改温和路线:检测到…
【语法】 一、机制原理 抛个坑:界面配置十来个字段,只想改颜色一项,传入的覆盖表却把没写的字段全顶成 nil——直接拿覆盖表…
【游戏】 一、规则机制 一行定骨架:first = math.floor(offset / ROW_H)。千行列表建一千个节…
【语法】 一、机制原理 隐蔽的坑:给敏感词表去重,用了"排序后相邻比对"的老办法,重复是去掉了,原有优先级顺序也被打乱。去重…
【语法】 一、机制原理 隐蔽的坑:网格数据用 grid[x .. "_" .. y] 拼字符串键存取,写入顺手,可要遍历整张…