宠物忠诚度决定它听不听话:忠诚满格技能必放,忠诚见底可能罢工甚至叛逃。饱食度随在线时长衰减,喂食恢复,把宠物从一次性道具变成持续投入,宠物粮因此成为长线消耗品。传奇引擎里宠物系统承载了大量养成付费,忠诚机制是其中运转的齿轮。
function Pet.tickDecay(plr)
local pet = plr.pet
if not pet or pet.summonAt == nil then return end
local mins = math.floor((os.time() - pet.lastTickAt) / 60)
if mins > 0 then
pet.loyalty = math.max(0, pet.loyalty - mins)
pet.lastTickAt = os.time()
end
end
每在线 1 分钟扣 1 点忠诚,0 到 1000 的区间。衰减只按真实在线时长计算,离线不扣,避免玩家上线发现宠物饿死的挫败感。战斗中每释放一次技能额外扣 2 点,战斗强度与消耗挂钩,喂食节奏自然形成。
function Pet.rollSkill(plr, skillId)
local pet = plr.pet
local rate = pet.loyalty >= 800 and 100
or pet.loyalty >= 300 and 60
or 20
if math.random(1, 100) > rate then
QF_SendTip(plr, "宠物忠诚不足,技能释放失败")
return false
end
return QF_PetCast(plr, skillId)
end
忠诚分三档:800 以上必放,300 到 800 有 60% 概率,其余只有 20%。喂食宠物粮恢复忠诚,每颗恢复 50 点,宠物粮在宠物商店与打怪掉落双渠道供应。忠诚跌到 0 触发离家出走,24 小时内花 10 万金币找回,超时宠物永久离队,找回机制让极端情况也有挽回余地。宠物技能栏用 GUI 图标渲染,冷却转圈用 SL 动画接口驱动,忠诚度低于 300 时图标闪红提醒喂食。
忠诚分布按周统计,低于 300 的宠物占比超过两成说明消耗过快,数值组下调衰减速率。
衰减速率上线第一周,全服平均忠诚从 800 跌到 400,喂食材料的产能没跟上,宠物粮价格翻倍引发抛售,紧急回滚了一半衰减并在两个产地补了掉落。离家出走的找回定价 10 万金币当时是拍的脑袋,实际出走发生率只有 3%,说明惩罚偏轻威慑足够,这个参数此后没再动过。数值的第一次上线就是一次真实压测,回滚通道随时备好是基本素养。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…
实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…
实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…
实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…
实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…
实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…