sendcentermsg 是屏幕正中的大字公告:攻城倒计时、活动预告、BOSS 来袭全靠它。它的第七个参数 func 是隐藏的高级玩法——公告倒计时结束后触发回调,公告从纯展示升级为定时器。
---屏中公告 FColor:前景色 BColor:背景色 Msg:内容 flag:对象 time:秒 func:结束回调
function sendcentermsg(actor, FColor, BColor, Msg, flag, time, func) end
-- 攻城倒计时:10 秒公告,读秒结束触发开门回调
sendcentermsg(actor, 249, 0, "沙巴克大门将在 10 秒后开启", 0, 10, "opencitygate")
公告显示 10 秒,倒计时走完自动调用注册的 opencitygate 函数,公告与逻辑的联动不需要额外的定时器。回调按函数名分发,全局可见的函数都能作为公告的收尾动作,开门、刷怪、发奖三个高频收尾动作各有各的公告配套。FColor 与 BColor 用整数色值,红字公告与金色的节日公告在配色上就分出了级别。
-- flag 参数区分发送对象:0 全服 1 个人 2 行会 3 当前地图
sendcentermsg(actor, 249, 0, "沃玛教主已被击杀", 0, 8, "")
sendcentermsg(actor, 251, 0, "行会已占领沙巴克", 2, 8, "")
flag 参数决定这条公告给谁看:0 全服、1 仅自己、2 行会、3 当前地图。BOSS 击杀的全服公告与个人任务的私密提示用同一个接口不同 flag,通知的分层不用建两套系统。公告的横幅在客户端是强打断的视觉元素,频次管制(同类公告冷却 60 秒)在业务层实现,屏中公告的稀缺性是它威力的来源。
屏中公告的发送量按 flag 维度统计,全服级公告的日频次超过阈值即触发频控告警。
func 回调的函数名写错时公告照常显示但回调静默不执行,倒计时结束该开的门没开,回调名的存在性校验在发送前做一次断言。time 参数传 0 的行为是常驻不消失,曾经把测试用的常驻公告带上了生产,玩家屏幕中央挂了一小时横幅,测试公告的清理清单从此成为发布流程的一部分。
sendcentermsg 与 sendmovemsg(滚动消息)的分工:屏中大字留给重大事件,滚动走马灯承载次级信息,两级公告的视觉秩序靠接口的分工维持。公告文案的字数控制在 20 字以内,超长文本在低分辨率屏幕会截断。倒计时回调里要做场景校验:公告发出后玩家的状态可能已变化,回调执行时重新校验前提条件。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
设计目标 服务假死最难排查:进程还在、请求不响应。探针体系的目标是把"服务器是不是挂了"变成"哪个服务哪个环节挂了":探针覆…
原理剖析 改密码、交易确认这类敏感消息若明文传输,被截获即可重放。对称加密里最轻量的是异或:明文每个字节与密钥对应字节异或得…
设计目标 天气是全服共享的情绪调节器与玩法杠杆:雨天火系技能衰减、沙暴命中下降、晴天产出加成。策划要交付的是一套可独立调整的…
设计目标 工作室批量注册刷金,冲击的是整个经济系统。风控目标:识别同源注册的账号聚集,对新注册号加验证闸门,对已确认的批量号…
原理剖析 装备评分、属性折算这类纯函数,同样的输入永远得到同样的输出,重复计算就是纯浪费。函数级缓存(memoize)用闭包…
原理剖析 沙巴克攻城高峰,同一帧内一个玩家可能触发五六条消息:战况通报、奖励到账、行会频道、系统公告。逐条下发时每条的包头开…