一百二十八件装备图鉴,每收一件新图鉴,界面红点与进度条要即时跳动。服务端收集变更推送过来,前端用RegisterLuaNetMsg接住,做增量刷新与全量兜底的双通道。
注册图鉴推送号,收到新收集事件后只更新对应格子与进度文字,红点亮起。
SL:RegisterLuaNetMsg(7601, function(data)
local slot = bookSlots[tonumber(data.idx)]
if slot ~= nil then
GUI:setText(slot, "已收集")
GUI:setTextColor(slot, 120, 220, 120)
end
collected = collected + 1
GUI:setText(progressTxt, collected .. "/128")
SL:ShowSystemTips("新图鉴已录入,收集进度" .. collected .. "/128")
end)
推送可能漏,打开图鉴界面时主动拉一次全量名单对齐本地,两通道互补。
GUI:addOnClickEvent(bookBtn, function()
GUI:Win_Open("tujian_win")
SL:SendNetMsg(7603, {})
end)
SL:RegisterLuaNetMsg(7604, function(data)
collected = 0
for _, idx in ipairs(data.list or {}) do
collected = collected + 1
GUI:setText(bookSlots[idx], "已收集")
end
GUI:setText(progressTxt, collected .. "/128")
end)
测试收集与回退双路径:新收集红点即亮,服务端修正后全量对齐。埋点推送到达与全量拉取的比例,推送漏发率超百分之五通知服务端查通道。
bookSlots表按图鉴序号建索引,序号从1开始还是0开始要和服务端对齐,差一位全图鉴错行。Win_Open打开的是界面配置名,写错名字静默无反应,先在界面配置表里核对注册名。增量与全量并发到达时进度文字跳两次,全量处理完统一刷一次文字,增量只点亮格子不动总数。红点状态存本地缓存,跨天清理,否则服务端已回收的图鉴还亮着红点误导点击。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 月卡签到是留存的基本盘,但断签一天就放弃整月的玩家不在少数。签到面板把三十天签到铺成日历:已签高亮、当日…
实战应用:用在哪里 徒弟满级出师往往只是一句系统提示,师徒情谊没有仪式感的收尾。出师宴把出师做成一场宴席:师徒在比奇酒楼设宴…
实战应用:用在哪里 绑定装备不能交易,玩家手里积压的绑定神器既不能卖也不能换,只能分解。绑定价差设计承认两种装备的双轨价值:…
实战应用:用在哪里 冷备份数据躺在离线介质里,从不解包就永远不知道里面是完整数据还是一堆乱码。冷备抽查每月随机解包两套历史备…
实战应用:用在哪里 预案写在文档里从来不等于是真的能执行:断网、杀进程、拔磁盘,每一种故障第一次真实发生时都是灾难。故障演练…
实战应用:用在哪里 玩家要temporary离开游戏又舍不得宠物掉资质,宠物寄养让宠物进寄养棚按天托管:寄养期间资质锁定不掉…