CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
后端接口红名洗白

【后端接口】红名洗白:洗红任务的进度接口实现

2026-09-23 00:53 作者:996 技术组 0 阅读 996引擎Lua教程传奇脚本后端接口红名洗白

实战应用:用在哪里

PK 值 200 以上进红名村,出来靠洗红任务:击杀红名村恶徒掉善恶令,红名村老者按每枚减 10 点 PK 值回收,每日上限 50 枚,PK 值清零当天获得七天悔过祝福。接口覆盖掉落、提交、清零三条链路。洗红把强制惩罚变成可执行的赎回路径,红名玩家有明确的减刑账可算,乡村里的恶徒也从摆设变成了资源点。

恶善令掉落与每日上限

击杀红名村恶徒按 40% 概率掉善恶令,个人每日获取上限 50 枚,计数跨天由 setday 触发清零。

lua
function killmon(actor, monName)
    if monName ~= "红名村恶徒" then return end
    local got = tonumber(getplayvar(actor, "HUMAN", "TODAY_ORDER") or "0")
    if got >= 50 then return end
    if math.random(1, 100) <= 40 then
        giveitem(actor, "善恶令", 1)
        setplayvar(actor, "HUMAN", "TODAY_ORDER", got + 1, 1)
    end
end

提交回收与悔过祝福

老者处提交善恶令按每枚 10 点扣减红名值,单次提交上限 50 枚;清零瞬间挂 604800 秒的悔过祝福并全服公告。

lua
function redeem(actor, cnt)
    if cnt > 50 then cnt = 50 end
    if not checkitemw(actor, "善恶令", cnt) then
        sendmsg(actor, 0, "善恶令不足,红名村的恶徒身上会掉落")
        return
    end
    local pk = tonumber(getplayvar(actor, "HUMAN", "PK_VALUE") or "0")
    if pk <= 0 then
        sendmsg(actor, 0, "身家清白,无需洗红")
        return
    end
    takeitem(actor, "善恶令", cnt)
    local left = math.max(0, pk - cnt * 10)
    setplayvar(actor, "HUMAN", "PK_VALUE", left, 1)
    if left == 0 then
        addbuff(actor, 10030, 604800, 0, 0, 0)
        local p = class(actor)
        sendcentermsg(p:GetName() .. " 洗净红名,重获清白之身")
    else
        sendmsg(actor, 0, "红名值还剩 " .. left .. " 点")
    end
end

验证与监控

提交链路验证 PK 值 199 与 200 的进村边界、超量提交截断、清零瞬间祝福挂载;掉落计数跨天清零后重新累计;祝福不可被驱散。善恶令全服存量与回收速率每周对一次账,回收慢于产出就上调每日上限。埋点统计每日善恶令回收量与洗白人数,回收量骤增说明有人囤令倒卖。

踩坑记录

PK 值的读写走玩家变量,与引擎自带的 PK 计数原本是两套账,提交后引擎侧红名没消,两边先做账目迁移再统一以变量为准。善恶令在玩家间曾出现协议价交易,官方回收价 10 点一枚是定价锚,倒卖空间靠每日上限压住。掉落概率从 40% 下调到 25% 的版本与洗白人数曲线一起复核过,赎回周期控制在三到五天。math.random 没播种,掉不掉落呈现规律性节拍,玩家总结出刷新间隔,启动播种后分布正常。悔过祝福的 buffid 用了 30 以内的段位,与系统增益表冲突互相顶掉,自定义 buff 统一从 10000 以后取号。addbuff 的叠加参数传 1 时祝福被重复挂载时长翻倍,清零判定加防重入,一天只挂一次。

作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

玩法策划沙巴克税收

【玩法策划】沙城税务官:税收分配与廉政度的玩法设计

实战应用:用在哪里 沙巴克占领行会坐收税收却只进不出,非占领行会的玩家心里不平衡。税务官玩法把税收做成明账:占领行会对摆摊与…

2026-09-23 01:24 996 技术组 · 0 阅读
玩法策划比武社交

【玩法策划】比武招亲:比武切磋与社交绑定的玩法设计

实战应用:用在哪里 高端玩家婚姻系统只有仪式没有过程,社交绑定缺一个高光事件。比武招亲做成擂台玩法:擂主设擂摆彩头,攻擂者报…

2026-09-23 01:24 996 技术组 · 0 阅读
案例复盘限时礼包日期

【案例复盘】限时礼包少发一天的事故复盘

实战应用:用在哪里 开服七日限时礼包发到第六天断了粮,9 月 1 日当天领奖按钮灰的,投诉当天破千。事故根因是一条数字日期循…

2026-09-23 01:24 996 技术组 · 0 阅读
网络通信心跳假在线

【网络通信】心跳探测:半开连接的主动识别

实战应用:用在哪里 玩家拔线不退游戏,连接半开着,人不在指令也没有,在线数虚高,容量预案被假数据带着跑。心跳探测给每个在线玩…

2026-09-23 01:24 996 技术组 · 0 阅读
运维发布发布日历

【运维发布】发布日历:全月变更的集中排期

实战应用:用在哪里 周三发了合成系统补丁,周四又改强化概率,两条变更叠加后玩家分不清是哪个改出来的。发布日历把全月变更集中排…

2026-09-23 01:24 996 技术组 · 0 阅读
Lua实战滑动窗口计数

【Lua实战】时间窗口计数:滑动窗口的环形数组实现

实战应用:用在哪里 容量预案需要知道滚动一小时的副本进入峰值,而不是全天累计。滑动窗口用 60 个槽位每槽记一分钟的进入数,…

2026-09-23 01:24 996 技术组 · 0 阅读