【游戏】
一、规则机制
线上事故:玩家收藏了心水商品等降价,降价了却没人告诉,便宜被别人捡走,差评点名"收藏功能是摆设"。关注降价补全提醒侧的缺口:收藏时记下当时价格,此后每次商品价格变动,比对收藏价——当前价低于收藏价即向收藏者推送一条降价提醒;同一商品只提醒一次,提醒后标记已读,避免降价周期内反复轰炸;取消关注即停止比对,重新关注以当时价重新记档。
二、错误写法
-- 错误:收藏后无任何变化提醒
function watch(it)
watchList[it.id] = it.price
end
三、正确写法
local function checkPrice(it)
local watch = getWatch(it.id)
if watch == nil then return end
if it.price < watch.price
and not watch.notified then
notify(watch.owner, it.id,
watch.price, it.price)
setWatchFlag(it.id, true)
end
end
local function unwatch(it)
delWatch(it.id)
end
四、边界处理
降价单商品只提醒一次;取消关注即停止比对;重新关注以当时价格重新记档。
五、FAQ
问:提醒会反复轰炸吗?
答:不会,同一次降价周期只提醒一次。
问:涨价提醒有吗?
答:本期只做降价提醒,涨价提醒可扩展。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 闭包工厂的本质就这一行: 外层函数接收配置,返回一个闭包——闭包捕获配置,后续调用使用捕获的配置——闭包工厂的…
【语法算法】 闭包工厂的本质就这一行: 外层函数接收配置,返回一个闭包——闭包捕获配置,后续调用使用捕获的配置——闭包工厂的…
【语法算法】 泛型 for 的四种形态就这两行: 泛型 for 的四种形态覆盖了 Lua 所有的遍历需求——从无序遍历到有序…
【语法算法】 string.find 的起始偏移就这一行: 第三个参数 init 是搜索的起始偏移——从字符串的第 init…
【语法算法】 CPU 时间和墙钟时间的分界就这两行: os.clock 返回 CPU 时间——程序实际占用处理器的秒数——o…
【语法算法】 元方法 __unm 的触发就这一行: 对带 __unm 的表做一元负号操作 -t 时,Lua 调用 __unm…