七夕限时活动原计划七天,上线第二天下午整点活动面板突然关闭,奖励领了一半,玩家以为被砍了福利,两小时内工单破三百。复盘这起提前关闭事故:错在一个日期字段把开始时间当成了结束时间,也错在缺少一道时长校验的闸门。
活动配置里结束时间误填成开始时间加一天,校验缺失让非法配置直接生效。补丁给所有限时活动加时长闸门:结束时间减开始时间不足三天一律拒绝生效,并向运营组发复核邮件。
local function checkWindow(startTs, endTs)
if endTs - startTs < 259200 then
sendmail("#运营组", 917, "活动时长异常告警",
"活动时长不足 3 天,配置未生效,请复核开始与结束时间", "")
return false
end
return true
end
提前关闭的两小时里玩家已完成的任务进度按完成补偿,全员补发限时礼盒一个,活动重新延展三天,补偿走幂等键防重复。
local function compensate(actor)
if getplayvar(actor, "HUMAN", "QIXI_FIX") == 1 then return end
setplayvar(actor, "HUMAN", "QIXI_FIX", 1, 1)
giveitem(actor, "限时礼盒", 1)
sendmsg(actor, 0, "活动已恢复并延长三天,补偿限时礼盒 x1")
end
时长闸门验证一小时、三天、三十天三组配置的放行与拦截;补偿幂等验证同一账号重复执行只发一次;活动延展后的结束时间与公告逐字一致。监控全服活动面板的开启数量与剩余时长分布,任何活动剩余时长低于一小时即推送提醒。
结束时间的配置单位是秒,运营按毫秒填了一串十三位数字,换算后活动时长被算成负数,配置表单位在表头加粗标注。时长闸门只挡了不足三天,还有一条配置把结束时间填在了开始时间之前,闸门补上先后顺序校验。补偿礼盒没有做绑定,部分玩家把补偿当成了活动奖励挂上寄售,补偿类道具默认绑定写进规范。提前关闭的两小时里,活动道具在玩家背包里被系统回收了一轮,回收前先公告 24 小时的规则补进了回滚预案。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 明拍容易被大号威慑,普通玩家不敢出手。秘宝暗拍改为全服暗标:每周一件秘宝,玩家密价投标一次,截标前互相看…
实战应用:用在哪里 充值返利活动被风控规则误判成套利,480 个大额充值账号被批量封禁 24 小时,申诉两小时破千条。误封风…
实战应用:用在哪里 五人小队打沃玛教主,队友的血量状态只能靠点头像逐个看,集火转火慢半拍。小队血条在屏幕侧边紧凑排布四条队友…
实战应用:用在哪里 好友申请藏在好友面板的角标里,玩家半天不看一眼,申请积压让社交转化掉了一半。好友申请浮窗把新申请推到屏幕…
实战应用:用在哪里 矿洞产出人人有份等于人人不重视,矿位租赁把矿洞变成可经营资产:矿位按 24 小时租给个人或行会,产出归租…
实战应用:用在哪里 击杀 BOSS 后要同时做三件事:发奖励、记流水、刷新排行榜,全都写在 killmon 触发里互相拖累,…