sendcustommsg 是位置可控的公告接口:在屏幕的任意坐标推送自定义颜色与内容的公告。相比屏中大字的强打断,它适合持续性的信息展示——攻城战的战况、活动的中奖名单、区域的进入提示。
---自定义公告 actor:目标 type:类型 msg:内容 FColor/BColor:颜色 X/Y:坐标
function sendcustommsg(actor, type, msg, FColor, BColor, X, Y) end
-- 攻城战况:屏幕上方持续显示城门血量
sendcustommsg(actor, 0, "沙巴克城门血量 72%", 250, 0, 30, 15)
type 控制公告的目标范围(0 全服、1 个人、3 当前地图),X 与 Y 定公告在屏幕上的位置,攻城战的战况固定在顶部坐标,活动的中奖名单用中部坐标。颜色的整数编码:前景 250 是金色、背景 0 是透明,战况的金字与普通提示的视觉层级由此区分。
---三级公告的组合使用
function Notice.publish(level, actor, text)
if level == 1 then
sendcentermsg(actor, 249, 0, text, 0, 8, "")
elseif level == 2 then
sendcustommsg(actor, 0, text, 250, 0, 30, 15)
else
sendmsg(actor, 1, text)
end
end
公告的三级体系:屏中大字(强打断)、坐标公告(持续显示)、聊天行(轻提示),级别的选择标准是事件的重要程度。坐标公告的寿命管理:持续信息需要定时刷新保持显示,刷新的间隔 1 秒一次,内容不变时跳过重发以省带宽。
坐标公告的推送量与玩家的界面对比数据,公告的密度影响玩家的阅读率。
坐标的取值曾经超出屏幕边界,公告显示在屏幕外玩家看不到,坐标的钳制范围按设计分辨率计算。自定义公告的颜色编码曾经用了字符串,接口要求数值,类型错误静默失败,参数的类型断言进了封装层。
坐标公告的封装统一入口,业务的直接调用在评审中限制。公告的内容走文案表,文案的调整不发版。公告的密度监控进体验日报,玩家对公告的容忍度靠密度控制维持。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
设计初衷 结婚是传奇里少数的"全服见证型"消费场景:玩家愿意为仪式感花钱,但仪式感的档位要拉开且各档都有体面——简约档不寒酸…
设计初衷 沙巴克攻城的荣誉需要一条可以触摸的兑现路径:战功商店用功勋货币把"为行会流血"折算成专属奖励。设计目标三条:功勋只…
底层原理 限频器(throttle)一刀切:窗口内只放一次,突发全拒。令牌桶是它的互补形态:桶以恒定速率生成令牌(每秒 2 …
设计初衷 货币系统的失控从不是一夜之间:金币产出每周悄悄多 5%,三个月后物价翻倍才被发现,追溯源头时账目早已混成一团。经济…
业务场景 沙巴克攻城前,行会会长发放集结令:会员凭令在开战前 30 分钟传送集结点,一令一人。令旗系统的三个环节:发放(按会…
底层原理 元表 __call 让一张表可以像函数一样被调用:call(table, args) 触发时,Lua 先查表的 _…