经验副本每天限进五次,玩家老问“我还能进几次”。副本入口面板把次数余量与重置倒计时直接挂在入口按钮旁:余量文本实时刷新,重置倒计时精确到秒,次数用完按钮置灰,玩家对自己的额度一目了然。入口面板同时展示进入次数与剩余重置时间,额度透明的玩法投诉量只有不透明版本的三成。
余量与重置数据经 7360 消息下发,余量文本与倒计时文本分别渲染,倒计时用 SL:SecondToHMS 转成时分秒格式。
local countText = GUI:Text_Create(panel, "CntText", 20, 40, 13, "#FFFFFF", "")
local resetText = GUI:Text_Create(panel, "RstText", 20, 64, 12, "#9F9F9F", "")
SL:RegisterLuaNetMsg(7360, function(data)
leftCount = data.left
GUI:setText(countText, "今日剩余次数 " .. data.left .. "/" .. data.max)
GUI:setText(resetText, SL:SecondToHMS(data.resetSec, true) .. " 后重置")
end)
进入按钮点击时先做本地校验,次数为零直接提示不发送请求,校验通过才上行进入消息并本地预扣一次。
local enterBtn = GUI:Button_Create(panel, "EnterBtn", 120, 200, "ui/enter")
GUI:addOnClickEvent(enterBtn, function()
if leftCount <= 0 then
SL:ShowSystemTips("今日次数已用完,每日 5 点重置")
return
end
leftCount = leftCount - 1
SL:SendNetMsg(7361, 1, 0)
end)
五次额度从满额用到清零,按钮逐次刷新状态;零次数点击只出提示不发请求;跨天五点重置后余量自动回满。进入请求发出后服务端拒绝的回执没有刷新余量,本地预扣的次数与真实次数短暂不一致,回执驱动统一刷新。倒计时格式在一天内的三个时段抽样核对,跨天临界点的归零同步单独验证。监控每日副本进入的次数分布,接近上限的账号占比是难度与奖励调参的参考。
重置时间点按零点配置,服务器实际按每日五点重置次数,两小时的错位让玩家在凌晨进不了副本,重置时刻与存储侧对齐后消除。本地预扣次数在进入失败时没有回补,玩家被传送失败却少了一次数,失败回执触发次数回补。倒计时文本跨天临界显示成负数秒,重置数据推送前先做合法性判断。按钮置灰只改了贴图没禁用点击,连点仍会发出请求,置灰状态同时屏蔽点击事件。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 周五晚高峰副本掉线事故:三百支队伍的成员在副本里掉线后无法重连,只能等副本超时踢出,客服工单一夜积压九百…
实战应用:用在哪里 行会活动集中在晚上八点的攻城战,白天在线的成员没有参与感。行会运镖做成轻协作玩法:行会每周两趟集体运镖,…
实战应用:用在哪里 沙巴克城主每周可以打出两张政策牌影响全服:双倍经验日让全场经验翻倍、怪物狂暴日让野怪攻击提升三成、和平协…
实战应用:用在哪里 故障演练总演同一套拔线流程,队伍熟练了但新故障类型没覆盖。演练题库把历史故障转化成十个演练场景,每季度随…
实战应用:用在哪里 排行榜界面打开时开启定时刷新、关闭时忘了停,玩家关了界面推送还在后台跑。界面生命周期把打开、刷新、销毁三…
实战应用:用在哪里 沃玛教主被击杀后四小时原地重生,重生前一分钟全服预告,教主重生点位在窝点周围五格内随机偏移,蹲点守尸的策…