五人小队打祖玛教主,队长的集会点全靠打字描述,慢半拍就少人。小队标记做四种快捷标记:集会、攻击、危险、撤退,队长一键发送,队友屏幕同步显示标记文本,十秒自动消退,语音之外多一条不打断操作的信息通道。标记系统上线后小队副本的平均集合时长从 90 秒压到 40 秒,打字描述正式退役。
四个标记按钮一字排开,点击即上行标记序号,队长身份由服务端校验,前端只负责采集点击与反馈。
local MARKS = { "集会", "攻击", "危险", "撤退" }
local wheel = GUI:Node_Create(GUI:Attach_MainTop(), "MarkWheel", 0, 0)
local markText = GUI:Text_Create(wheel, "MarkText", 20, 8, 14, "#FFD700", "")
local function sendMark(idx)
SL:SendNetMsg(7301, idx, 0)
SL:ShowSystemTips("已发送标记:" .. MARKS[idx])
end
for i, name in ipairs(MARKS) do
local b = GUI:Button_Create(wheel, "Mk" .. i, 40 + (i - 1) * 70, 30, "ui/mk" .. i)
local idx = i
GUI:addOnClickEvent(b, function()
sendMark(idx)
end)
end
队友侧注册下行消息,收到标记显示来源与类型,十秒无新标记自动清空,句柄可注销避免重复清空。
local clearJob
SL:RegisterLuaNetMsg(7302, function(idx, who)
GUI:setText(markText, "【" .. MARKS[idx] .. "】来自 " .. who)
if clearJob then SL:UnSchedule(clearJob) end
clearJob = SL:Schedule(function()
GUI:setText(markText, "")
end, 10)
end)
三种标记之外再留一格自定义标记位,队长用高频标记积累讨论,二期开放自定义文案。标记位置不再绑定屏幕文本,二期接入场景坐标投影,指引从队伍频道走到场景里。四种标记逐一发送,队友端文本与类型逐项一致;十秒内连续三条标记,消退计时只按末条算;离队后旧标记不再接收。跨队伍隔离单独验证,两个小队同时发标记互不串扰,通道按队伍号分段。标记发送加 500 毫秒节流,队长连点也只取首条。监控标记的发送频次与类型分布,撤退标记高频出现的队伍,战斗难度画像要标记出来。
标记轮盘的按钮没做二次确认,跑动中误触把撤退标成了集会,队伍反向跑了两屏,长按 300 毫秒才生效的判定加上后误触归零。消息号 7301 与坐骑面板的下行号撞段,两个界面互相干扰,消息号常量表统一登记分配。闭包捕获循环变量少了 local idx 中转,四个按钮全发第 4 号标记,经典陷阱换了个地方又踩一遍。文本清空句柄没有判空,首次标记时 UnSchedule 了一个空句柄报错,句柄判空后才安全。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 装备回收商 NPC 每天按评分收购玩家的装备,裁决之杖、骨玉权杖按攻击、持久加权打分,榜上只要前五名。数…
实战应用:用在哪里 沙巴克攻城是全服行会战的最高舞台:攻方砸开城门、抢占皇宫,守方依托城墙与复活点反打。规则设计的关键是节奏…
实战应用:用在哪里 影分身玩法给法师职业补上生存短板:危急时刻召唤四个影分身分担仇恨,敌人需要在六格范围内分辨真身,猜错就浪…
实战应用:用在哪里 组队邀请、行会宣战这类关键信令丢了没有兜底,玩家只能反复手点,高峰期体验很差。重试机制给信令加确认回执:…
实战应用:用在哪里 新资料片上线首日预约量常是日常十倍,一口气全开会让数据库与登录网关同时过载。滚动开区把开区动作排成队列:…
实战应用:用在哪里 百人同屏的沙巴克外围战场,每个玩家每秒跑动会触发数次位置更新,全部即时下发时广播量随人数平方增长,网关先…