装备升品是品质的跨越:白装的蓝光、蓝装的紫辉、紫装的金芒——升品让同一件装备有品质的成长线。升品的实现要点是碎片的消耗、品质的跃迁与保底的碎片返还,跨品级失败的挫败由保底兜住。
---装备升品:品质的跃迁与消耗
function UpgradeQ.upgrade(actor, slot)
local player = class(actor)
if not player then return false end
local q = tonumber(getplayvar(actor, 2, "Quality_" .. slot)) or 1
if q >= 5 then
sendmsg(actor, 1, "已达最高品质")
return false
end
local need = q * 20
if not checkitemw(actor, "升品碎片", need) then
sendmsg(actor, 1, "升品碎片不足,需 " .. need .. " 枚")
return false
end
takeitem(actor, "升品碎片", need, 0, "升品消耗")
setplayvar(actor, "HUMAN", "Quality_" .. slot, q + 1, 1)
sendmsg(actor, 1, "升品成功!品质提升至 " .. (q + 1) .. " 级")
return true
end
升品的消耗按当前品质递增:1 升 2 需要 20 枚碎片、4 升 5 需要 80 枚——消耗的曲线让每次跃迁都有沉甸甸的分量。升品必成的设定与强化的概率风险错开:品质的跃迁是确定的投入产出,玩家攒够碎片就一定能跨过品质的门槛。品质的属性加成按百分比:每级品质提升基础属性的 8%,品质的差距在中后期被放大。
---升品碎片的保底:未达标部分返还
function UpgradeQ.pity(actor, slot, progress)
local total = tonumber(getplayvar(actor, 2,
"QPity_" .. slot)) or 0
local sum = total + progress
setplayvar(actor, "HUMAN", "QPity_" .. slot, sum, 1)
-- 累计投入 200 枚未升品:返还 50% 的碎片
if sum >= 200 then
local back = math.floor(sum * 0.5)
setplayvar(actor, "HUMAN", "QPity_" .. slot, 0, 1)
giveitem(actor, "升品碎片", back)
sendmsg(actor, 1, "投入达保底线,返还碎片 " .. back)
end
end
保底的逻辑按投入的总量计算:累计投入 200 枚碎片仍未完成升品的玩家,返还一半的碎片作为补偿——保底的存在让碎片永远是资产而非沉没成本。升品的碎片来源三渠道:装备分解的主产出、行会副本的掉落、活动的限时投放,供给的多渠道让碎片的价格稳定。升品的展示在装备的 Tooltip:品质的星数与属性的加成一目了然,成长的可视化是升品的体验核心。
品质的分布与保底的触发率统计,保底的触发率超 10% 提示消耗曲线偏陡;碎片的产出与消耗的流量对照,材料的通胀进经济的月报。
品质的属性曾经按固定值加成,升品的收益被基础属性的成长稀释,百分比的计算修正。保底的计数曾经存内存,重启清零后玩家的投入白费,计数落库是保底类的铁律。升品的碎片曾经在多角色间不通用,换角色重新收集引发客诉,碎片改为账号级共享。
升品的消耗曲线与品质上限进配置表,数值的调整不改代码。品质的视觉表现与数值一致:星数、光效、名字颜色三重映射。碎片的投放与升品的节奏联动,活动的投放避开大版本的碎片潮。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 悬赏捕杀把玩家之间的恩怨变成可托付的系统行为:仇家难以亲自复仇时,花费金条发布悬赏,全服玩家接单击杀目标…
实战应用:用在哪里 策划改表是日常动作,漏填字段、引用了不存在的编号、数值越界这三类问题占了配表故障的绝大多数。等玩家报错再…
实战应用:用在哪里 行会擂台给中小行会提供了固定的对抗出口:挑战方击败守擂方后接管擂台,连胜次数决定每日结算奖励档位。接口层…
实战应用:用在哪里 世界首领战里玩家最关心的是伤害前十名:榜单要求随时插入、随时能按序取出,每来一条伤害记录都重新排序一次太…
实战应用:用在哪里 百人同屏的攻城战里,把每条移动、施法消息广播给全地图是最常见的性能失误。九宫格视野的做法是把地图切成等大…
实战应用:用在哪里 留言板、行会招募语、邮件标题这类字段会被玩家自由填写,并写入角色变量或转发给持久层。拼接式的写法一旦遇到…