一百二十八件装备图鉴,每收一件新图鉴,界面红点与进度条要即时跳动。服务端收集变更推送过来,前端用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 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 悬赏捕杀把玩家之间的恩怨变成可托付的系统行为:仇家难以亲自复仇时,花费金条发布悬赏,全服玩家接单击杀目标…
实战应用:用在哪里 策划改表是日常动作,漏填字段、引用了不存在的编号、数值越界这三类问题占了配表故障的绝大多数。等玩家报错再…
实战应用:用在哪里 行会擂台给中小行会提供了固定的对抗出口:挑战方击败守擂方后接管擂台,连胜次数决定每日结算奖励档位。接口层…
实战应用:用在哪里 世界首领战里玩家最关心的是伤害前十名:榜单要求随时插入、随时能按序取出,每来一条伤害记录都重新排序一次太…
实战应用:用在哪里 百人同屏的攻城战里,把每条移动、施法消息广播给全地图是最常见的性能失误。九宫格视野的做法是把地图切成等大…
实战应用:用在哪里 留言板、行会招募语、邮件标题这类字段会被玩家自由填写,并写入角色变量或转发给持久层。拼接式的写法一旦遇到…