师徒系统的奖励散在多个环节,徒弟不知道出师还差什么,师傅不知道带徒收益几何。师徒面板把出师进度、五项师门任务完成度、可领奖励铺在一页:进度条走到头一键出师,奖励可领的红点自动点亮。前端重点是进度数据的实时同步与红点逻辑。
出师需完成五项师门任务各三次,面板按任务逐行渲染完成度,底部总进度条聚合五项均値;有可领奖励时行尾亮红点。示例代码如下:
-- 师徒面板:进度渲染
local panel = GUI:GetParent("MainTop")
local TASKS = {"跑图", "强化", "组队", "行会", "副本"}
local rows, redDots = {}, {}
local function renderProgress(taskDone, claimable)
local total = 0
for i = 1, 5 do
local done = math.min(3, taskDone[i] or 0)
total = total + done
if rows[i] == nil then
rows[i] = GUI:Text_Create(panel, "Task" .. i, 10, (i - 1) * 30, "", 300, 26)
end
GUI:setText(rows[i], TASKS[i] .. " " .. done .. "/3")
if claimable[i] == 1 then
if redDots[i] == nil then
redDots[i] = GUI:Text_Create(panel, "Dot" .. i, 310, (i - 1) * 30, "●", 20, 26)
end
GUI:setText(redDots[i], "●")
end
end
SL:ShowSystemTips("出师总进度 " .. math.floor(total / 15 * 100) .. "%")
end
五项全部完成后面板亮出一键出师按钮,确认后发送出师请求;回执成功展示师徒双方奖励并关闭面板,失败按未完成项提示缺口。示例代码如下:
-- 出师结算:一键与回执
local player = class(actor)
local graduateBtn = GUI:Button_Create(panel, "Graduate", 120, 180, "btn_graduate")
GUI:addOnClickEvent(graduateBtn, function()
SL:SendNetMsg(9983, "graduate")
end)
local function onGraduateAck(player2, msgId, w1, w2, w3, sMsg)
if w1 == 1 then
SL:ShowSystemTips("出师成功!师徒双方奖励已发放")
GUI:Win_Close("MentorPanel")
else
SL:ShowSystemTips("还差 " .. w2 .. " 项任务未完成:" .. sMsg)
end
end
SL:RegisterLuaNetMsg(9984, onGraduateAck, nil)
联调覆盖:五项逐项完成时进度条推进、红点只在可领时出现、一键出师后面板关闭且奖励到账、缺项出师被拒并提示缺口。断线重连后进度与红点从服务端回执恢复。上线后看两个数:面板打开率与出师完成率,出师率低于五成检查任务难度曲线;红点误亮的反馈出现时优先核对可领状态的服务端判定。
进度曾由前端累计,重装客户端后进度清零引发重复领奖,进度以服务端为准、前端纯展示。红点判定放前端算,服务端活动配置一改红点全亮,判定回收到回执字段。出师按钮曾在未满时也可点击,失败提示太笼统被连环点击,按钮状态与缺口明细同时下发,交互的每个状态都要有对应的视觉反馈。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 行会日常任务十年如一日是同三件事,老成员做麻了,新人做懵了。行会任务大厅改成自选池:每天刷出八个任务,成…
实战应用:用在哪里 为了冲季度在线峰值,一周内同时开了双倍经验、掉落翻倍、充值返利三场活动,结果金币产出是平日六倍,裁决之杖…
实战应用:用在哪里 师徒系统的奖励散在多个环节,徒弟不知道出师还差什么,师傅不知道带徒收益几何。师徒面板把出师进度、五项师门…
实战应用:用在哪里 法师的终极愿景是流星火雨:天空落下火雨,范围内所有敌人同时受击,视觉与数值都是全服焦点。触发设计要处理三…
实战应用:用在哪里 攻城战两个月才一次,新会长连城门在哪都要找半天。城战演习把攻城流程拆成每周一次的无奖励演练:地图、门禁、…
实战应用:用在哪里 角色变量是隐形的存储:每个系统都往里塞数据,没人记得清场,一年后单个角色的变量膨胀到上万字符,存档变慢、…