【游戏】
一、规则机制
新档开了三天,玩家投诉签到天数突然变成负数:签到系统直接用 os.date 取"日"做减法,跨月后 1 日减 31 日得出负值,断签也没有归零逻辑。签到规则应为:当天首签领奖;昨天签过则连签加一;断签更早则连签归零重计为 1;当天重复请求不重复发奖。
二、错误写法
-- 错误:按"日"数字相减,跨月出负数
local day = tonumber(os.date("%d"))
local last = tonumber(getplayvar(p, "signDay") or "1")
local add = day - last
三、正确写法
local function doSign(p)
local today = os.date("%Y%m%d")
local yday = os.date("%Y%m%d", os.time() - 86400)
if getplayvar(p, "signDate") == today then
sendmsg(p, 1, "今日已签到")
return
end
local n = 1
if getplayvar(p, "signDate") == yday then
n = (getplayvar(p, "signN") or 0) + 1
end
setplayvar(p, "signDate", today)
setplayvar(p, "signN", n)
giveitem(p, 9001 + math.min(n, 7), 1)
sendmsg(p, 1, "连签 " .. n .. " 天,奖励已发放")
end
四、边界处理
断签跨月、跨年都按日期串比较自然归零;连签第 7 天后循环发放新一轮奖励;补签卡可抵一天断签,每月限用两张。
五、FAQ
问:补签会连续累加吗?
答:会,消耗补签卡按昨天已签处理,连签继续累加。
问:断签奖励会追发吗?
答:不追发,只保留连签归零重计的规则。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 一、先抛一个坑 影爆类技能为什么非要给目标头顶挂一个倒计时圈,引信到点自动炸不行吗?自动炸的版本省了倒计时圈,…
【游戏功能】 一、一个记不住的记忆灯序 回声记忆类玩法的首版测试,玩家第二轮就全军覆没。不是难度问题——灯序只有三步;是播放…
【游戏功能】 一、一个永远无解的谜题 光点翻转类解谜的第一版被测试打回:"第三关无解。"排查逻辑:点一个光点,它与上下左右四…
【游戏功能】 一、一个永远差一步的跳台 蓄力跳台玩法首版,玩家的抱怨高度一致:"按半秒和按三秒跳得一样远,那蓄力条是装饰吗?…
【游戏功能】 一、先抛一个坑 套圈摊位的圈扔出去,为什么有的游戏圈是抛物线飘过去的,有的是直线飞过去的?直线圈的判定简单,但…
【游戏功能】 一、一个被指针出卖的开箱 横向开箱卷轴首版上线,最刻薄的评论是:"减速那两秒我知道自己要出什么了,就问你尴尬不…