【游戏】
一、业务场景
深夜在线的成员没活动可参加,帮会夜场形同虚设。更夫玩法上线:帮会更夫沿固定路线走街报时,成员陪同巡更每到一点记一次进度,走满一圈领更牌,夜场人气有了实在的参与理由。
二、实现方案
报时走街(时辰刻度推进):
local WATCHES = {"子", "丑", "寅", "卯", "辰", "巳",
"午", "未", "申", "酉", "戌", "亥"}
local function watchCall(actor)
local slot = math.floor(os.date("%H") / 2) + 1
if getplayvar(actor, "lastWatch") == slot then
return
end
setplayvar(actor, "lastWatch", slot)
sendmsg(actor, 1, "更夫报时:"
.. WATCHES[slot] .. "时已到")
end
巡更进度(走满一圈得更牌):
local function patrolReward(actor)
local n = (getplayvar(actor, "patrolN") or 0) + 1
setplayvar(actor, "patrolN", n)
if n >= 7 then
setplayvar(actor, "patrolN", 0)
giveitem(actor, 8501, 1)
sendmsg(actor, 1, "巡更一圈,更牌 1 枚")
else
sendmsg(actor, 1, "巡更进度 " .. n .. "/7")
end
end
三、边界处理
同一时辰只报一次防重复;巡更进度跨时辰累计;更牌每周可兑 1 份夜宵补给。
四、引擎验证
一小时内反复触发只报一次;走满 7 个点位得更牌;进度中途查询正确显示 4/7。
五、FAQ
问:时辰按什么分?
答:每两小时一个时辰,子时从 23 点起。
问:更牌能攒吗?
答:能,周内累计周日兑奖。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 一、一次本可避免的差评 PC 版上线第六天,应用商店冒出一条一星评论:"背包都不能滚轮翻,什么年代了。"复现一…
【游戏功能】 一、先抛一个坑 同样挂一层状态,为什么中毒的怪照跑不误、冰冻的怪却像被拔了电源?再进一步:冰冻到点的瞬间,怪为…
【语法算法】 一、一个不报错的报错 昵称限六个字, str:sub(1, 12) 截前十二个字节——测试服全绿,海外服却冒出…
【语法算法】 一、一行代码的魔法 package.loaded["game/mediator/bag"] = nil ——把…
【游戏功能】 一、一次高帧率翻车 测试服反馈:火球术在 60 帧的旧机器上百发百中,换 144 帧电竞屏,弹道经常从目标身上…
【游戏】 一、规则机制 线上事故:玩家收藏了心水商品等降价,降价了却没人告诉,便宜被别人捡走,差评点名"收藏功能是摆设"。关…