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

【引擎触发】师徒历练:师徒共同任务的进度与奖励引擎实现

2026-09-21 15:43 作者:996 技术组 0 阅读 引擎触发

实战应用:用在哪里

师徒历练把师徒关系从挂名变成真实陪伴:师徒组队共同完成任务累计历练次数,历练档位决定出师奖励的丰厚程度。共同任务的进度判定要点是双人在场校验与双向计数,防单边刷进度是设计的关键。

历练的判定

lua

---共同任务完成:四重校验后双向累加
function Mentor.taskDone(actor, masterName)
    local myMaster = getplayvar(actor, 2, "MasterName")
    if myMaster ~= masterName then return false end
    local members = getgroupmember(actor) or {}
    local together = false
    for _, mate in ipairs(members) do
        if mate:GetName() == masterName then together = true end
    end
    if not together then return false end
    -- 每日历练上限 5 次
    local dayKey = "MentorDaily_" .. os.date("%Y%m%d")
    local today = tonumber(getplayvar(actor, 2, dayKey)) or 0
    if today >= 5 then return false end
    setplayvar(actor, 2, dayKey, today + 1, 0)
    Mentor.bumpExp(actor, masterName)
    return true
end

历练判定四重校验:徒弟有师父、师父在徒弟的组队名单里、当日历练未满 5 次。getgroupmember 的成员名比对确认双人在队,distance 的在场要求另在任务接取侧校验 10 格。每日上限的防刷保护让历练值是真实的陪伴时长而非任务数量的堆砌,工作室的自拜自刷在这里被计数器挡住。

档位与奖励

lua

---历练值 10/30/60 三档勋章
local TIERS = { [10] = "历练铜章", [30] = "历练银章", [60] = "历练金章" }

function Mentor.bumpExp(actor, masterName)
    local exp = tonumber(getplayvar(actor, 2, "MentorExp")) or 0
    exp = exp + 1
    setplayvar(actor, "HUMAN", "MentorExp", exp, 1)
    for tier, medal in pairs(TIERS) do
        if exp == tier then
            giveitem(actor, medal, 1)
            sendmsg(actor, 1, "获得师徒勋章:" .. medal)
        end
    end
    if exp == 60 then
        QF_Broadcast(actor:GetName() .. " 与师父 " .. masterName .. " 的历练达满档金章!")
    end
end

历练值落库持久,10、30、60 三档勋章由 giveitem 发放,勋章是出师奖励档位的判定依据:金章徒弟的出师礼包翻倍,金章师父的名师礼盒追加稀有材料。历练的覆盖面宽:主线、日常、副本首通都计入,师徒一起玩什么都算数,陪伴本身就是被奖励的行为。金章的全服播报是师徒情的公共认证,收徒的师父在招募频道的说服力因此加成。

验证与监控

历练的每日分布统计,单日打满 5 次上限的师徒占比反映活跃师徒的投入程度;勋章的发放数与历练值的对账。

踩坑记录

在场校验曾经用坐标瞬读,瞬移药水让师父瞬移到场边打卡即走,改为组队期间的时间加权在场(组队时长占比过半才计历练)。历练值的双向累加在师徒解绑后出现归属争议,解绑时冻结双方历练值并公示规则,事前透明优于事后扯皮。计数器的日期键曾经用天索引没带月份,跨月后键冲突,日期串带年月日。

上线要点

历练的档位值与每日上限进配置,档位的勋章名可按赛季换皮。师徒历练的进度在师徒面板双向可见,目标的透明是陪伴的驱动。历练任务的定义开放给运营配置,每季度的历练主题轮换保持新鲜。

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

作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

玩法策划黑市限时货架

【玩法策划】矿洞黑市:黑市商人限时货架的玩法设计

实战应用:用在哪里 盟重矿洞挖出的黑曜石除了堆仓库没有去向,矿工玩法缺一条消耗链。黑市商人每 4 小时换一批限时货架,6 个…

2026-09-23 00:25 996 技术组 · 0 阅读
玩法策划护航海盗

【玩法策划】码头护航:商船护航与海盗袭击的玩法设计

实战应用:用在哪里 盟重码头到沙巴克水路要 20 分钟,商船运货收益高但会被半兽海盗打劫,单人押船九死一生。码头护航做成对抗…

2026-09-23 00:25 996 技术组 · 0 阅读
网络通信合并打包

【网络通信】消息合并:同帧多包的打包下发

实战应用:用在哪里 拍卖行竞拍高峰,一件屠龙刀 1 秒能产生 60 条竞价事件,逐条 sendluamsg 下发,竞拍面板每…

2026-09-23 00:25 996 技术组 · 0 阅读
Lua实战权重抽奖

【Lua实战】权重轮盘:动态权重的原地缩减抽取

实战应用:用在哪里 金盒转盘 8 格奖池,普通奖越来越疲,大奖既要概率递增又不能失控。动态权重轮盘:每抽一次普通奖权重缩减 …

2026-09-23 00:25 996 技术组 · 0 阅读
案例复盘周年庆重复领取

【案例复盘】周年庆福利重复领取的事故复盘

实战应用:用在哪里 周年庆礼包开领 30 分钟,3000 名玩家多领了一份礼盒,回收与舆情处理耗掉两天。事故根因简单得刺眼:…

2026-09-23 00:25 996 技术组 · 0 阅读
数据存储流水强化

【数据存储】道具流水:装备强化全程的流水追踪

实战应用:用在哪里 一次回档让玩家的裁决之杖从强化 7 退回 5,口头承诺补偿却没有账可查。强化流水把每次强化的时间、道具、…

2026-09-23 00:25 996 技术组 · 0 阅读