新玩家首日面对十几个功能入口,第一步走错就流失。引导系统把首日关键动作做成六步高亮引导:高亮框圈住目标按钮、其余界面压暗、完成一步自动进入下一步。前端实现的核心是步骤状态机与高亮遮罩的配合,既要看得清又不能卡死玩家。
引导步骤存服务端,断线重连不重置;每步校验前置步骤已完成,跳步请求拒绝;紧急跳过入口只对老玩家回归开放。示例代码如下:
-- 新手引导:步骤状态机
local STEPS = {"领取首充", "强化武器", "接取行会任务", "第一次组队", "进入矿洞", "穿戴称号"}
local player = class(actor)
local function nextStep(player)
local cur = tonumber(getplayvar(player, "HUMAN", "GuideStep") or 0) + 1
if cur > #STEPS then
sendmsg(player, 1, 0, "引导已全部完成,玛法大陆任由闯荡,冒险愉快!")
return 0
end
setplayvar(player, "HUMAN", "GuideStep", cur, true)
sendluamsg(player, 9991, cur, 0, 0, STEPS[cur])
return cur
end
引导开启时铺一层半透明压暗遮罩,目标按钮区域挖空提亮;遮罩随目标控件位置动态对齐,小屏设备自动收缩边距保证目标完整可见。示例代码如下:
-- 引导遮罩:目标框定位
local panel = GUI:GetParent("MainTop")
local mask, tipText
local function showGuideStep(idx, targetName, tip)
if mask == nil then
mask = GUI:Text_Create(panel, "GuideMask", 0, 0, "", 800, 600)
GUI:Attach_MainTop(mask)
tipText = GUI:Text_Create(panel, "GuideTip", 20, 300, "", 300, 24)
end
GUI:setText(tipText, "步骤 " .. idx .. "/6:" .. tip)
SL:ShowSystemTips("请点击高亮的 " .. targetName)
end
六步全流程双端验证:顺序执行、跳步拒绝、断线重连续接、回归玩家跳过;遮罩在不同分辨率下目标按钮完整可见可点。漏斗数据按步统计流失,哪一步流失突增就改哪一步的文案与奖励。上线后看两个数:六步完成率与每步平均耗时,完成率低于六成时合并步骤;平均耗时超过五分钟的步骤通常是文案没讲清楚。
步骤状态存客户端,删档重玩引导不复位,工作室批量养号绕过引导,状态移到服务端变量。遮罩曾把跳过按钮也压暗,卡死玩家五分钟直到强退,遮罩层级永远低于引导交互层。目标按钮位置在横竖屏切换后偏移,高亮框圈了个寂寞,定位改在每次显示时实时计算,任何写死的引导坐标都要警惕。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 蜈蚣洞深处的黑暗区域是老传奇最经典的压迫感来源:没有火把,屏幕只剩身边一圈微光,黑暗里随时窜出钳虫。视野…
实战应用:用在哪里 行会管理层每周要给成员发福利邮件,一封封发到崩溃。邮件撰写面板支持附件拖拽与群发名单:从背包把物品拖进附…
实战应用:用在哪里 顶级装备直接掉落太破坏生态,长期不掉又让人绝望。碎片兑换把屠龙这样的神器拆成六十块碎片:野外精英怪概率掉…
实战应用:用在哪里 沙巴克守城最怕城防形同虚设:城墙上没箭、城门后没药、守军没人指挥补给。军备库玩法把城防物资做成一套捐献与…
实战应用:用在哪里 金币靠打、元宝靠充,两种货币一旦混在一个变量里记账,对不上账的时候谁都说不清。货币钱包把金币、元宝、绑元…
实战应用:用在哪里 每个在线客户端都要定时发心跳保活,一万在线就是每秒上百个心跳包,其中九成来自挂机与后台窗口。心跳分级按客…