套装是装备收集的经典钩子:祈祷头盔加祈祷项链加祈祷戒指,凑齐五件触发祈祷套装的隐藏效果——件数越齐收益越猛,收齐的执念就是套装的设计目标。套装的引擎要点是件数的检测、效果的激活与装备变动的实时响应。
---套装表:件数与效果的定义
local SUITS = {
{ name = "祈祷套装", parts = { "祈祷头盔", "祈祷项链",
"祈祷手镯", "祈祷戒指", "祈祷之刃" },
full = { buffId = 22001, atkPct = 20 } },
{ name = "记忆套装", parts = { "记忆头盔", "记忆项链",
"记忆手镯", "记忆戒指" },
full = { buffId = 22002, hpFlat = 200 } },
}
---检测身上的套装件数
function Suit.count(actor, suit)
local n = 0
for _, part in ipairs(suit.parts) do
if Suit.wearing(actor, part) then
n = n + 1
end
end
return n
end
套装表定义件数清单与满件效果:祈祷五件套的攻击加成 20%、记忆四件套的生命上限加 200。件数的检测遍历套装部件在身上的穿戴情况,穿三件是三件的收益档、穿满是全套的效果——件数的阶梯收益让收集的每一步都有正反馈。检测的时机挂装备的变动事件:穿戴、卸下、替换的每一次都重算全部套装的件数。
---套装效果的激活与撤销
function Suit.refresh(actor)
for _, suit in ipairs(SUITS) do
local n = Suit.count(actor, suit)
local key = "Suit_" .. suit.name
local active = (getplayvar(actor, 2, key) or "") ~= ""
if n == #suit.parts and not active then
-- 凑齐:激活效果
addbuff(actor, suit.full.buffId, 99999, 1, actor,
{ [1] = suit.full.atkPct or 0,
[4] = suit.full.hpFlat or 0 })
setplayvar(actor, "HUMAN", key, os.time(), 1)
sendmsg(actor, 1, suit.name .. " 套装效果激活!")
QF_Broadcast(actor:GetName() .. " 集齐了 " ..
suit.name .. "!")
elseif n < #suit.parts and active then
-- 破套:撤销效果
setplayvar(actor, "HUMAN", key, "", 1)
sendmsg(actor, 1, suit.name .. " 套装效果失效")
end
end
end
效果的状态机两态切换:凑齐激活、破套撤销,激活的标记落库,卸下一件的效果失效与重新穿回的恢复都由 refresh 的幂等重算保证。凑齐全套的全服播报是收集的加冕时刻,祈祷套的集齐值得一句公告。套装的战斗联动是设计的灵魂:祈祷五件的隐藏彩蛋(宝宝叛变机制的老梗)这类趣味效果让套装有故事可讲,效果表的可扩展位留给每套装备的独特性。属性的阶梯中继:三件套给 8% 的中继档、五件套给 20% 的满档,中继档的存在让收集的中途不空手。
套装的持有与激活率统计,凑齐率的分布反映套装的投放节奏;激活与撤销的状态翻转监控,破套的频次暴露玩家对效果的依赖度。
件数的检测曾经只看背包不看穿戴,仓库里凑齐的套装也被判激活,检测的口径统一为已穿戴。效果的撤销曾经在卸下的重算竞态里漏发,破套后属性残留,重算的幂等串行化修复。两套套装的效果曾经共用 BUFF 位段,互相顶掉对方的加成,位段的分配表统一管理。
套装的部件、效果与中继档进配置表,新套装的接入只填表。套装图鉴页展示收集进度,差一件的提示驱动收集的临门一脚。套装的投放按件分渠道:头盔走打宝、戒指走活动,集齐的路径横跨玩法。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 沙巴克占领行会坐收税收却只进不出,非占领行会的玩家心里不平衡。税务官玩法把税收做成明账:占领行会对摆摊与…
实战应用:用在哪里 高端玩家婚姻系统只有仪式没有过程,社交绑定缺一个高光事件。比武招亲做成擂台玩法:擂主设擂摆彩头,攻擂者报…
实战应用:用在哪里 开服七日限时礼包发到第六天断了粮,9 月 1 日当天领奖按钮灰的,投诉当天破千。事故根因是一条数字日期循…
实战应用:用在哪里 玩家拔线不退游戏,连接半开着,人不在指令也没有,在线数虚高,容量预案被假数据带着跑。心跳探测给每个在线玩…
实战应用:用在哪里 周三发了合成系统补丁,周四又改强化概率,两条变更叠加后玩家分不清是哪个改出来的。发布日历把全月变更集中排…
实战应用:用在哪里 容量预案需要知道滚动一小时的副本进入峰值,而不是全天累计。滑动窗口用 60 个槽位每槽记一分钟的进入数,…