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

对对联:下联接得住才算才子

2026-09-28 21:55 作者:996 技术组 996引擎Lua教程传奇脚本进阶实战游戏功能996引擎

【游戏功能】

对对联是文人的猜拳:上联出完,三支下联签里只有一支接得住——选对金光进阶,选错墨点糊脸。今天拆对对联的表现,看文字游戏怎么用灯笼和卷轴做出书香气。

一、挂联、选签、判等三段仪式

对对联的仪式三段。挂联段:上联写在金色卷轴上横挂顶端,楷书大字一挂出来,题面就立住了。选签段:三支下联签纵向排开,点选一支即作答——三选一的容错让文盲也能玩,文化门槛被选项稀释,文字游戏的参与感却保留。判等段:选中的签展开判定——选对绿光点亮签面、"对上了"加文采分;选错红光、"墨点糊脸"连击清零。进阶机制藏在连对里:连对三题称号进阶一级(童生→秀才→举人→贡士→状元)——称号是文字游戏里最值钱的成就,比分数值钱十倍。

完整演示在这,点签选下联:

demo
fx-couplet

二、幂尔框架实现:题库轮换与判等反馈

题库随机轮换,选项打乱防止背位置:

lua
local Couplet = {}
local SETS = {
    { up = "风吹杨柳千门绿", ok = "雨打桃花万树红",
      bad = { "雪压寒梅一夜白", "日照青松百尺高" } },
    { up = "书山有路勤为径", ok = "学海无涯苦作舟",
      bad = { "学海无涯乐作舟", "学海无边快回头" } },
    { up = "两个黄鹂鸣翠柳", ok = "一行白鹭上青天",
      bad = { "一枝红杏出墙来", "三只乌鸦落枯枝" } }
}
local TITLES = { "童生", "秀才", "举人", "贡士", "状元" }

function CP.Next()
    local set = SETS[math.random(#SETS)]
    SL:SetValue("upLine", set.up)
    SL:SetValue("okLine", set.ok)
    -- 三个选项: 一对两错, 洗牌打乱位置
    local opts = { set.ok, set.bad[1], set.bad[2] }
    for i = #opts, 2, -1 do
        local j = math.random(i)
        opts[i], opts[j] = opts[j], opts[i]
    end
    SL:SetValue("opts", opts)
    SL:SetValue("picked", -1)
end

function CP.Pick(idx)
    if SL:GetValue("phase") ~= "pick" then return end
    SL:SetValue("picked", idx)
    SL:SetValue("phase", "judge")
    local opts = SL:GetValue("opts")
    local ok = opts[idx] == SL:GetValue("okLine")
    if ok then
        SL:SetValue("score", SL:GetValue("score") + 10)
        SL:SetValue("streak", SL:GetValue("streak") + 1)
        SL:PlayFxAt("lantern_lit", SL:GetValue("optX", idx))
        -- 连对三题进阶称号
        if SL:GetValue("streak") >= 3 then
            SL:SetValue("streak", 0)
            local t = math.min(5, SL:GetValue("titleLv") + 1)
            SL:SetValue("titleLv", t)
            SL:ShowSystemTips("文采进阶: " .. TITLES[t])
        end
    else
        SL:SetValue("streak", 0)
        SL:PlayFxAt("ink_splash", SL:GetValue("optX", idx))
        SL:ShowSystemTips("接错了 — 墨点糊脸")
    end
    SL:ScheduleOnce(function()
        CP.Next()
    end, 1.5)
end

return CP

选项洗牌的三行是反背题的关键:题库小,位置不洗两天就被背穿。

三、错项的写法与判等的墨味

错项的写法是题库的良心:错得不能太蠢("更上一层表"是谐音梗级别的错,一眼假),也不能太深(平仄之辩没人在三秒内想明白)——错项要用"同一个字换得妙"的干扰法:桥/表换掉楼,一眼扫过去都对,细读才发现只有"楼"接得住"千里目"。判等的反馈走双色:对绿错红,绿光点亮签面、红光配一个墨点砸在签面上——墨点是文人才配拥有的失败特效。卷轴的画法三件套:金色底、描边框、楷书大字——楷体是对联的魂,用黑体上联等于用塑料袋装粽子。最后,称号进阶的播报要盖过得分:文采进阶用系统栏大字播报,十点文采用小字飘分——称号是文人的一生所求,分数只是路上的石子。

作者履历与出处

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

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

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

LATEST ARTICLES

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

进阶实战游戏功能

围三阙一:围三面赶一口,出口就是网口

【游戏功能】 围住一只怪的贪心人人都有:三面堵死一只不漏——可围三阙一的规矩偏偏唱反调:围三面留一口,怪只会往那口里钻——口…

2026-09-30 21:31 996 技术组
进阶实战游戏功能

引水:先泼水,再借一道雷

【游戏功能】 元素搭配的老话是水火不容,可战场上的说法得倒过来念:水是雷的引信。引水的机制是一场两步的合谋:先泼一瓢水把地泼…

2026-09-30 21:31 996 技术组
进阶实战游戏功能

血珠:踩碎血珠,断它口粮

【游戏功能】 低血大怪的回血机制人人见过,可血珠的回血藏着一手"要你去抢"的心机:它每掉两成血就吐一颗血珠在地上,两秒内不踩…

2026-09-30 21:31 996 技术组
进阶实战游戏功能

现身:它钻进影子,从你背后出来

【游戏功能】 隐形怪人人都遇到过,可现身的机制比隐形狠:它钻进影子里消失,一秒后从你脚下画的影圈里钻出来,背刺三十四点——影…

2026-09-30 21:31 996 技术组
进阶实战游戏功能

召唤阵:踩阵搅了它的援兵

【游戏功能】 有人纳闷:大怪危机预警里最气人的一档是什么?不是它放大招,是它开阵——法阵一转,转满三秒蹦出两只小狼,好好的单…

2026-09-30 21:31 996 技术组
进阶实战游戏功能

蓄力炮:红线锁死就横挪

【游戏功能】 if chg <= 0.8 then lock = true ——一行把"锁定"写进蓄力里的判定,道破了蓄力炮…

2026-09-30 21:31 996 技术组