当铺是玩家的应急钱庄:手头紧的时候把裁决之杖当出去换现金,7 天内连本带利赎回。典当的定价是死当与活当的分水岭——赎得回的是活当,赎不回的被当铺吃掉,经济系统的润滑就在这一进一出。
---典当:估价的七折放款
function Pawn.pledge(actor, makeIndex)
local player = class(actor)
if not player then return false end
local item = Pawn.locate(actor, makeIndex)
if not item then return false end
local value = Pawn.evaluate(item)
local loan = math.floor(value * 0.7)
-- 赎回价:本金加 20% 的利钱
local redeemPrice = math.floor(loan * 1.2)
delitembymakeindex(actor, makeIndex)
giveitem(actor, "金币", loan)
Pawn.book(actor, item, loan, redeemPrice, os.time() + 7 * 86400)
sendmsg(actor, 1, "典当放款 " .. loan ..
" 金币,7 天内 " .. redeemPrice .. " 金币赎回")
return true
end
典当的定价按估价的七折放款:裁决之杖估价 100 万,当铺立刻给 70 万救急——活当的赎回价是本金的 1.2 倍,20% 的利钱是急用钱的代价。当票的三个要素落库:本金、赎回价、到期时刻,7 天的当期是玩家与当铺的对赌——赎得回装备回来,赎不回装备进死当流拍。估价的依据按市场价的中位数(交易行的参考价),估价的滞后用周期刷新对冲。
---赎回:到期前的本利结清
function Pawn.redeem(actor, ticketId)
local player = class(actor)
if not player then return false end
local t = Pawn.ticketOf(actor, ticketId)
if not t then return false end
if os.time() > t.expireAt then
sendmsg(actor, 1, "当票已过期,进入死当处理")
return false
end
if not checkitemw(actor, "金币", t.redeemPrice) then
sendmsg(actor, 1, "金币不足,赎回需 " .. t.redeemPrice)
return false
end
takeitem(actor, "金币", t.redeemPrice, 0, "赎回")
giveitem(actor, t.itemName, 1)
Pawn.clearTicket(ticketId)
sendmsg(actor, 1, "赎回成功:" .. t.itemName)
return true
end
赎回的校验三重:当票归属、未过期、金币足额,赎回的装备原样归还——当出去的裁决之杖带着当铺的封条回来,属性分毫不差。过期进死当的处理:装备进入当铺的流拍货架,其他玩家可以用略低于市价的价格拍走,死当的流通让当铺成为二手的市场。赎回的提醒在到期前 24 小时发邮件,救急的玩家不至于忘了赎回而痛失爱刀。
当票的到期分布与死当率的统计,死当率过高说明利钱定价过狠;典当的金额与交易行估价的偏离监控,估价的失准会同时劝退当客与买家。
估价曾经按商店的售价,商店价与市场价差十倍,估价的锚换成成交中位数。赎回曾经不校验当票的归属,A 的当票 B 来赎走了装备,归属的校验补上。死当的流拍曾经无上限,同一把刀流拍三次价格跌破地板,流拍的次数与降价幅度设限。
放款折扣与利钱费率进配置,当铺的经济是服务器的调节阀。死当的货架独立于交易行,二手的折价是急用钱玩家的市场。当票的凭证展示在背包的票据页,账目的清晰减少纠纷。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
设计初衷 回流玩家的第一痛是"追不上":离开 90 天,昔日同侪战力翻番,自己一身旧装备站在城里像个游客。回归走廊是一条限时…
设计初衷 单一月卡的问题:玩家买完 30 天就进入"无牵挂期",续购意愿全靠到期提醒。双通证让付费节奏错峰:月卡管"当下的每…
设计初衷 富矿点位固定是采集玩法的死穴:坐标一旦泄露,脚本 24 小时蹲守,散人永远慢一步。资源轮换让富矿每日换位:全图 1…
底层原理 Lua 用 nil 表达三种截然不同的意思:字段不存在、字段存在但值为空、查询被拒绝。三种 nil 混在一起,调用…
底层原理 Lua 没有 switch,多分支处理惯用 elseif 连缀——每加一种命令就多一个分支,分支越长入口函数越肿,…
底层原理 全服补发 3 万封邮件,一次循环跑完会把当帧拖进秒级卡顿。配额推进把大批量任务切成带配额的小片:每轮只处理固定条数…