称号承载成就展示与属性加成两个功能:外观上标识玩家身份(全服第一战力、首杀 Boss),数值上提供加成激励收集。称号系统的设计要点是条件检测自动化与佩戴互斥管理,新增称号变成一条配置。
local TITLES = {
slayer_1000 = { name = "千人斩", cond = function(p)
return p.counters["kill:player"] >= 1000 end,
attrs = { atk = 30 } },
first_rich = { name = "首富", cond = function(p)
return p.gold >= 10000000 end,
attrs = { hp = 500 } },
}
function Title.checkAll(player)
for id, def in pairs(TITLES) do
if not player.titles[id] and def.cond(player) then
player.titles[id] = { grantedAt = os.time() }
notifyGrant(player, id)
end
end
end
检测挂在定时任务(每 5 分钟全量轮询)加事件即时触发(关键事件发生即检测相关称号)双通道,保证达成不被延迟太久,又不增加常态开销。
佩戴互斥:同一时刻只能佩戴一个称号,属性只结算佩戴中的称号。切换佩戴走统一接口(卸下旧称号属性、应用新称号属性),属性结算走汇总函数(基础 + 装备 + 称号 + BUFF),来源分离让数值问题可定位。
称号定义三要素进配置表:达成条件(引用计数器或判定函数名)、属性加成、展示样式(颜色、动效标志)。展示端支持两种形态:名字前后缀(前缀称号)与独立徽章(后缀称号),前端按样式标志渲染。过期称号(限时活动称号)到期自动收回,收回前 3 天给续期提示。称号系统与成就系统共享条件检测设施(判定函数复用),两套展示各自独立——设施复用加展示分离,是这类"条件达成型"系统的通用设计。
称号的展示优先级:佩戴中的称号在名字前后缀与查看面板同时显示,多个称号可收藏但只佩戴一个。收藏册展示全部已达成称号与达成条件,收集欲是称号系统驱动活跃的核心设计。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 战士的烈火剑法一击熄火后要等八秒冷却,连招断档感强烈。疾风烈火斩在烈火剑法命中后给一次连击窗口:三秒内再…
实战应用:用在哪里 阵营对抗打到中期容易疲软:打赢没有额外好处,输掉也没有代价。阵营声望体系给阵营战装上荣誉刻度:个人与阵营…
实战应用:用在哪里 拿下沙巴克之后呢?城主除了名字挂在城墙上,对城市毫无影响。城主施政玩法让占领变成治理:城主每周获得市政令…
实战应用:用在哪里 主线路光缆被挖断的深夜,全服掉线 20 分钟,玩家以为游戏倒闭。备用线路方案给接入层配第二条出口:主线路…
实战应用:用在哪里 行会官员由帮主任命的老模式弊端明显:任人唯亲、能上不能下。行会选举接口把官员换届做成投票制:每两个月一次…
实战应用:用在哪里 烈火剑法的伤害加成、冷却时间、下一级提升,全靠玩家记忆或去官网查。技能说明悬浮卡片在鼠标悬停技能图标零点…