五人小队打沃玛教主,队友的血量状态只能靠点头像逐个看,集火转火慢半拍。小队血条在屏幕侧边紧凑排布四条队友血条,名字与血量一目了然,掉线灰显、死亡红显,状态变化一眼可辨。
四组名字文本加精简血条纵向排布,控件在进队时创建、离队时清空,位置固定在屏幕左上不遮挡战斗。
local bar = GUI:Node_Create(GUI:Attach_MainTop(), "TeamBar", 20, 300)
local rows = {}
for i = 1, 4 do
rows[i] = {
name = GUI:Text_Create(bar, "TmN" .. i, 0, (i - 1) * 26, 12, "#FFFFFF", ""),
hp = GUI:LoadingBar_Create(bar, "TmH" .. i, 70, (i - 1) * 26 + 2, "ui/hpmini", 1),
}
end
队友数据经 7350 消息批量推送,血量实时刷新,掉线成员血条转灰、名字追加离线标记,恢复后自动复原。
SL:RegisterLuaNetMsg(7350, function(data)
for i = 1, 4 do
local m = data.mates[i]
if m then
GUI:setText(rows[i].name, m.nm .. (m.offline and "(离线)" or ""))
GUI:LoadingBar_setPercent(rows[i].hp, m.hp)
GUI:LoadingBar_setColor(rows[i].hp, m.offline and "#666666" or "#3CDA5C")
else
GUI:setText(rows[i].name, "")
GUI:LoadingBar_setPercent(rows[i].hp, 0)
end
end
end)
四人满编的血量推送逐条核对,血条百分比与实际血量误差不超过 1%;掉线灰显与恢复复原各验证一轮;离队成员的血条即时清空。死亡成员的血条转为红色并停止增长,复活后颜色与数值同步复位。血条低于三成时自动闪烁提醒集火治疗,闪烁频率每秒两次不刺眼。血条控件与目标框的血条共用一套贴图,内存与美术资源各省一份。监控血条推送频率,低于每秒一次会有延迟感,高于五次每秒则浪费带宽,按队伍状态动态调节。
血条颜色直接用十六进制串赋值时多了个井号,setPercent 正常但颜色不生效,格式按接口要求逐字符核对。名字超过四字挤占了血条起点,血条整体右移错位,名字按显示宽度截断加省略号。队员中途入队时槽位分配按序号复用,退出队员的槽位没有释放导致新队友不显示,入队与离队都要同步维护槽位表。推送频率最初每次血量变化都推,团战时每秒上百条消息,节流到每 100 毫秒合并推送一次后恢复流畅。队伍解散时只清了控件没停推送,已解散队伍的血条仍在跳,推送监听随解散一并注销。血条背景底板透明度过高,深色地图上刻度看不清,底板加了一层半透明衬底。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 白天在线高峰多数人忙着下副本,夜间在线长尾需要一个轻社交场景。夜市集市每晚 20 点到 23 点在比奇中…
实战应用:用在哪里 好友系统的互动停留在点赞送花,缺一个紧密绑定的玩法。灵魂契约让两位玩家缔结契约:同图作战时共享契约等级带…
实战应用:用在哪里 新手礼包一元宝一件每人限购一次,定价本意是福利,结果被脚本注册的两千个小号搬空四千万金币等值的物资。限购…
实战应用:用在哪里 新值班凌晨三点遇到登录白屏,翻文档翻了小半个钟头才找到处置步骤。值班手册把常见故障的处置步骤结构化:每条…
实战应用:用在哪里 中文字库包含三万多个字符,完整字体包 30MB,低端机加载慢还吃内存。字体渲染方案把字库分成两档:常用 …
实战应用:用在哪里 经验副本每天限进五次,玩家老问“我还能进几次”。副本入口面板把次数余量与重置倒计时直接挂在入口按钮旁:余…