CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
进阶实战游戏功能996引擎

当铺预支纹:先支重刀后还账,三刀利息要算清

2026-10-02 12:29 作者:996 技术组 996引擎Lua教程传奇脚本进阶实战游戏功能996引擎

【游戏功能】

先抛一个坑:预支的刀为什么后三刀变轻?当铺的规矩是先支后还:重刀四十现在拿走,账上记三笔,之后三刀每刀只值二,还清才能再当。预支不是白给的爆发,是拿未来的伤换现在的重——利钱算不清的人,当一次亏一次。这篇把当铺预支整套写法拆开:当票挂账、重刀到手、轻刀还账、还清再当,一段一段照抄能跑。

一、效果演示

演示场柜台旁挂着三格当票。点「预支!」:掌柜的一锤定音,下一刀直接四十的重价砸出去;与此同时当票三格亮起——之后的每一刀只值二,砍三刀还清三笔,当票熄灭恢复清白之身。清白的时候才能再当,两秒一当的冷却管着节奏。重刀来得痛快,轻刀还得诚实,这买卖值不值,看你在什么当口当。

mermaid
flowchart TD
A[点预支] --> B{当票清白吗}
B -- 挂账 --> C[拦下 先还账]
B -- 清白 --> D[重刀四十到手]
D --> E[当票三格亮起]
E --> F[后三刀每刀只值二]
F --> G{三笔还清了吗}
G -- 没有 --> F
G -- 还清 --> H[清白之身 再当可期]
demo
 fx-crest-pawn

二、底层原理

预支系统的机关是"当票挂账"——重刀预支的代价明明白白挂在三格当票上:之后三刀每刀只值二,格还一笔熄一笔。预支与还账是同一笔账的两段:四十的重是借来的,二十二的还(二乘三)是利钱,借四十四还二十二的账面看着是赚,但轻刀的三拍里你可能挨两爪——利钱不在数字上,在轻刀窗口的风险里。
三格当票把账亮在明处:挂几笔、还几笔,玩家数着格子打——还账期什么时候结束、下一记重刀什么时候能当,全在格子上。两秒一当的冷却管的是频率,清白之身的门槛管的是资格:资格加频率双闸,预支才不会变成每刀必开的常态技。幂尔框架这边当票收在预支的口子里挂账,还账记在命中口里熄格,清白的判定读当票的格数,账面三格到底。

这套玩法的代码量不到七十行,难的不是当重刀而是利钱的诚实——借的账不挂在明面上,预支就成了无本的爆发。

再看还账为什么用"轻刀"而不是"停刀"——三刀停手的版本,还账期玩家只能干看,当铺的账还清了手感却断了;轻刀还账的版本,每一刀都还在打,只是分量给了账——节奏不断,账也在走。惩罚的接法要接在动作的流上:打断流的惩罚教会玩家恨机制,顺着流的惩罚教会玩家算机制。

三、核心代码:完整模块(上·骨架)

lua
-- @file CrestPawn.lua
-- 当铺预支纹 —— 先支重刀后还账 三刀利息要算清

local CrestPawn = {}

local CONST = {
    LOAN_DMG      = 40,
    REPAY_HITS    = 3,
    REPAY_DMG     = 2,
    SWING_CD      = 2,

    AUTOINC_BASE  = 1203600,
}

local _debt     = 0
local _loan     = false
local _cd       = 0
local _autoInc  = 0

local function ShowTip(msg)
    if msg and msg ~= "" then SL:ShowSystemTips(msg) end
end

local function GenID()
    _autoInc = _autoInc + 1
    return CONST.AUTOINC_BASE + _autoInc
end

function CrestPawn.Debt() return _debt end

function CrestPawn.Clean() return _debt == 0 end

-- 预支: 当票挂账
function CrestPawn.Pawn()
    if _cd > 0 then
        ShowTip("掌柜的合算盘——再等" .. math.ceil(_cd) .. "秒")
        return false
    end
    if not CrestPawn.Clean() then
        ShowTip("旧账未清——还剩" .. _debt .. "笔轻刀")
        return false
    end
    _cd = CONST.SWING_CD
    _loan = true
    ShowTip("当出一记重刀——后三刀只值二")
    return true
end

四、核心代码:完整模块(下·推进与卸载)

lua
-- 命中结账: 重刀落 当票亮
function CrestPawn.Settle()
    if _loan then
        _loan = false
        _debt = CONST.REPAY_HITS
        ShowTip("预支到账——数着当票还")
        return CONST.LOAN_DMG
    end
    if _debt > 0 then
        _debt = _debt - 1
        if _debt == 0 then
            ShowTip("账还清了——清白之身")
        else
            ShowTip("还一笔——剩" .. _debt .. "笔")
        end
        return CONST.REPAY_DMG
    end
    return 14
end

if not _ticker then
    _ticker = SL:Schedule(function(dt)
        if _cd > 0 then _cd = _cd - dt end
    end, 0.05)
end

SL:ScheduleOnce(function()
    SL:BindDebugButton("预支!", function()
        CrestPawn.Pawn()
    end)
    ShowTip("技能已加载: 当铺预支纹")
end, 1.0)

function CrestPawn.Unload()
    if _ticker then SL:Unschedule(_ticker) end
    _debt = 0
end

return CrestPawn

五、机制问答

问:预支的利钱藏在哪里?
答:轻刀三拍的风险里——借四十还二十二看着是赚,轻刀窗口挨的爪才是真利钱。

问:当票为什么亮三格?
答:账挂明处——挂几笔还几笔数着格子打,还账期什么时候结束一目了然。

问:还账为什么用轻刀不停刀?
答:接在动作的流上——停刀的版本账清了手感断了,轻刀还账节奏不断账也在走。

问:双闸管的是什么?
答:资格加频率——清白之身管资格,两秒冷却管频率,预支当不成常态技。

问:什么当口当最值?
答:怪的血线将断未断时——重刀收尾在借来的拍子里,轻刀的账留给下一只开张。

六、调参与实战怎么用

参数层面三个量——预支分量、还账笔数、轻刀价。借四十还二十二看着是赚,真账要在轻刀窗口的风险里算。当票的语气也得做足:挂账时格子亮、还清时格子熄,掌柜的一句"清白之身"比数值提示更像那么回事。实战里这套当票挂账的骨架能搬去透支拳、赊账咒、预付剑气,全是当票、重手、轻还一条线。常见坑两个:利钱藏在暗处,预支成无本爆发;还账停刀,账清了手感断。

补充一个设计层面的思考——战斗之外的空档也是玩法:怪倒之后的三秒、换场的间隙、回合之间的喘口,这些空档塞进不同的经营与选择,战斗的呼吸就完整了。空档里给的选择要短平快:三秒能看完、一点能买定,拖泥带水的空档玩法会让玩家跳过它,跳过等于白做。

补充一个维护层面的思考——概率展示类的状态(扣着的碗、没亮的碑、随机摆的货)要在每一局开始时重洗、结束时清点:上一局剩下什么这一局还摆什么,玩家很快就能摸出固定套路,随机的乐趣就成了背版。重洗的口子收在开局一处,清点写在卸载一行,谁也别留尾巴。

补充一个工程层面的思考——跨阶段的账(预支的债、记下的仇、买断的货)要在阶段切换的口子上自检一遍:换怪了、重开了、演出的半路了,凡是账还挂在已经不存在的对象上,就地作废。自检一行换来的是账本永远只认还活着的对象,幽灵账无处落脚。

写完留一句给做借贷系的同学:玩家当的是重刀也是未来三拍的分量——当票亮三格,利钱算得清,预支才敢用在刀刃上。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

进阶实战游戏功能

走一格为什么是半秒?拆开996引擎走路状态机

接手二开的兄弟几乎都撞过同一堵墙:玩家嫌走路"一格一格像机器人",老板拍板要"丝滑移动",改服务端速度?不对。改客户端动画帧…

2026-10-03 05:31 996 技术组
进阶实战游戏功能

特效总挂在脚后跟上?挂点表选对一行顶十行

【游戏功能】 先看一个熟场面:法师的火球特效挂在怪的脚后跟上,明明技能说明写着"焚烧其面",火星子却在地上打滚。群里有位策划…

2026-10-03 05:30 996 技术组
进阶实战游戏功能

刀刀都判命中,玩家为什么喊挥空?命中表现差的那一拍

【游戏功能】 上周有个开服的老板在群里发了一段录屏:他的战士明明刀刀都砍中了,观众却一片"这刀挥空了吧"。他原话是"判定日志…

2026-10-03 05:30 996 技术组
进阶实战游戏功能

怪的皮一会儿绿一会儿红?状态染色的色号表就三列

【游戏功能】 先说结论放在开头:怪的皮一会儿绿一会儿红,不是美术换了几套贴图,是染色系统在怪身上盖了一层"色镜"。开服群里有…

2026-10-03 05:30 996 技术组
进阶实战游戏功能

996引擎Buff系统解剖:中毒变绿、冰冻发白是怎么挂上去的

前两天群里有个架设的朋友问了个需求:中毒的人要变绿、每两秒掉一次血、毒还能叠五层,问是不是要在服务端把整套状态机重写。我说你…

2026-10-03 05:25 996 技术组
进阶实战游戏功能

编钟纹:五口钟排着敲,一口更比一口疼

【游戏功能】 先抛一个坑:五口钟一模一样大,为什么一口比一口疼?先后次序动不得吗?倒过来敲会怎样?这篇把编钟纹整套写法拆开:…

2026-10-03 05:01 996 技术组