月卡玩家每天领 100 点券,30 天循环,是付费率最稳的长线商品,性价比标签让它成为小额付费的第一站。签到日历允许用补签券补 2 天,超出部分不追,宽容的规则设计让玩家感知到诚意而不是套路。月度重置在每月一号零点,重置逻辑必须幂等,重复执行不重复扣补签券。
function MonthCard.sign(plr)
local today = os.date("%Y%m%d")
local mc = plr.monthCard
if not mc or mc.expireAt < os.time() then return false, "月卡未激活" end
if mc.lastSignDate == today then return false end
mc.lastSignDate = today
mc.signedDays = mc.signedDays + 1
QF_AddVoucher(plr, 100)
return true
end
每天首次登录触发,点券直接入账,断签当天不扣权益,签到日历上留空格等待补签。月卡剩余天数在面板常驻展示,到期前 3 天续费享九折,续费叠加周期顺延不重置补签状态。
function MonthCard.repair(plr, dateStr)
local mc = plr.monthCard
if mc.repairs >= 2 then return false, "本月补签次数已用完" end
if mc.repaired[dateStr] then return false end
mc.repairs = mc.repairs + 1
mc.repaired[dateStr] = true
QF_CostItem(plr, REPAIR_TICKET, 1)
QF_AddVoucher(plr, 100)
return true
end
每月最多补 2 天,消耗补签券,补签券在商城与活动两渠道获取,稀缺但可得。月度重置时清空签到与补签状态,expireAt 未到的月卡自动续新周期,重置脚本幂等可重放。签到日历用 GUI:MonthView 渲染,已领打勾、可补高亮、未来置灰三种状态清晰区分,补签按钮置灰逻辑与服务器判定同源,界面状态即真实状态。
补签券消耗与点券发放每日核对,月度重置的执行日志保留 12 个月备查。
补签券的获取渠道早期只有商城,定价 10 点券的道具承担了挽回月卡体验的重任,活动渠道补上后补签的使用率从四成涨到八成,宽容设计只有配上易得的工具才成立。月度重置脚本的幂等键设计在重放测试里验证过,同一天跑三遍状态只变一次。签到日历的三态渲染在低端机型上有闪炼,补签高亮的呼吸动画降级成静态描边,性能兜底的降级路径是界面开发的收尾动作。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…
实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…
实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…
实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…
实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…
实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…