持久度是装备的消耗属性:战斗掉持久、修理回持久、持久归零装备失效。setdura 接口负责持久度的精确修改,配合耐久上限的读取,修理费用的计算、持久归零的提示全在这条链路上。
---修改物品持久度 actor:玩家 itemmakeid:物品唯一ID char:加减符 dura:持久值
function setdura(actor, itemmakeid, char, dura) end
-- 战斗掉持久:每次死亡随机掉 2 到 5 点
local drop = math.random(2, 5)
setdura(actor, weaponMakeId, "-", drop)
itemmakeid 是物品的唯一 ID(每件装备实例独立),char 用加减符号指定方向,dura 是本次修改的量。持久度的当前值与上限通过物品对象的字段读取,掉持久前先判断剩余量,归零的边界提前一步处理。
-- 修理铺:按缺口计算费用
function Repair.calc(actor, makeId)
local cur, max = itemdura(actor, makeId)
local gap = max - cur
if gap <= 0 then return false, "无需修理" end
local fee = gap * 150
if not actor:TakeGold(fee) then return false, "金币不足" end
setdura(actor, makeId, "+", gap)
return true
end
修理费按持久缺口每点 150 金币计算,itemdura 读取当前与上限。持久归零的装备攻击力按三成结算(不直接失效),这是传奇式的温柔:装备残血可用但菜。特殊修理(可恢复最大持久)走稀有材料,普通修理只回当前值,两条修理线的定价差了十倍。
持久度的总消耗与修理恢复量的每日对账,武器磨损曲线的数据是修理定价调整的依据。
setdura 的 makeid 传错曾把 A 玩家的修理加到了 B 玩家的装备上,唯一 ID 的获取必须来自物品对象本身而不是界面缓存。持久归零三成攻击的规则文档滞后,玩家以为装备废了直接卖店,规则说明补进装备 tooltip 后误卖归零。
持久度变更与金钱消耗的流水成对记录,修理收入是经济系统的重要回收口。掉持久的事件来源分类(死亡、战斗、挖矿)统计,不同来源的损耗率支持差异化的磨损曲线。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 行会等级是行会玩法的地基:建筑上限、商店货架、活动资格全部挂在等级上。行会经验与等级成长框架把升级路径做…
实战应用:用在哪里 行会走过两年,第一次拿下沙巴克、第一位满级成员、最强的一次攻防战,这些瞬间散落在聊天记录里无人记得。行会…
实战应用:用在哪里 两服合服时允许玩家自由抢注重名角色,结果原服老玩家“至尊战神”的名字被另一服新号抢先注册,老玩家两年的社…
实战应用:用在哪里 热门行会一天几十份入会申请,逐条点开看效率极低还容易漏人。行会申请列表把申请铺成可批量操作的清单:每行显…
实战应用:用在哪里 炼狱回廊是高端玩家的试炼场:十层回廊逐层深入,每下一层全属性递减百分之五,越往深处怪物越强、自己越弱,奖…
实战应用:用在哪里 本服押镖产出稳定但缺乏刺激,高战玩家押镖像散步。跨服镖局把押运拉到跨服边境:路线穿越两服交界的无主之地,…