经验副本是升级的快车道:单人进入、十波怪连刷、双倍时段的经验倍率,25 分钟内拿到平日三小时的经验。副本的实现要点是波次的调度、门票的核销与倍率窗口的叠加规则。
---经验副本:进入与波次刷怪
function ExpDungeon.enter(actor)
local player = class(actor)
if not player then return false end
local cnt = tonumber(getplayvar(actor, 2, "DgCount")) or 0
if cnt >= 2 then
sendmsg(actor, 1, "今日次数已用完(每日 2 次)")
return false
end
if not checkitemw(actor, "副本令牌", 1) then
sendmsg(actor, 1, "需要副本令牌")
return false
end
takeitem(actor, "副本令牌", 1, 0, "经验副本")
setplayvar(actor, "HUMAN", "DgCount", cnt + 1, 1)
mapmove(actor, "exp_dg", 20, 20, 0)
ExpDungeon.startWave(actor, 1)
return true
end
进入的三重校验:每日 2 次的次数上限、副本令牌的核销、落点的传送——次数的限制让副本的定位是每日的节奏点而非无限的经验池。波次的开局即第一波的刷新,10 波的推进按击杀清空触发,每波 20 只怪的经验逐波递增 10%,后段的收益更浓。
---双倍窗口:时段与道具的叠加规则
function ExpDungeon.expRate(actor)
local rate = 100
local hm = tonumber(os.date("%H%M"))
-- 时段窗口:14:00-16:00 双倍
if hm >= 1400 and hm <= 1600 then
rate = rate + 100
end
-- 经验符:1.5 倍的道具加成(乘算独立)
if (getplayvar(actor, 2, "ExpCharm") or "") ~= "" then
rate = math.floor(rate * 1.5)
end
return rate
end
---击杀的经验结算
function ExpDungeon.onKill(actor, monName)
local base = MON_EXP[monName] or 100
local rate = ExpDungeon.expRate(actor)
local exp = math.floor(base * rate / 100)
humanhp(actor, "+", 0)
Group.addExp(actor, exp)
sendmsg(actor, 1, "获得经验 " .. exp .. "(倍率 " .. rate .. "%)")
end
倍率的叠加规则两算:时段窗口与经验符的加成走加法与乘法的分层——时段的双倍先加进倍率、经验符的 1.5 倍再乘算,叠加的口径写进说明页,玩家算得清每一份经验。窗口的设计带动时段的在线:双倍的 14 点到 16 点是全服的副本高峰,服务器的承载排期与活动的窗口对齐。副本的退出与奖励的结算在第十波清空后自动触发,通关的用时记录进个人的榜单,速度的竞速让重复的副本有追求。
副本的通关率与平均用时的统计,通关率低于六成提示波次的强度偏高;经验倍率的分布与公示口径的一致性抽检,玩家实测的差异即信任的裂缝。
次数的扣减曾经在进入成功之后,传送失败次数照扣的客诉,扣减挪到传送确认后。波次的刷新曾经不判上一波清空,怪物堆叠到 60 只卡爆客户端,波次的串行触发修复。倍率的叠加曾经全乘算,双倍加符变成四倍,分层的规则公示并写入代码。
波次的经验递增与门票的定价进配置,副本的性价比随版本校准。双倍的窗口与在线的峰值错峰,容量与活动的窗口互相对表。通关的用时榜单按职业分列,竞速的公平按职业分组。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 版本更新上线后突然下架了某件热销商品,但更新公告里没有提到这件事。玩家发现后截图传播,两小时内贴吧帖子超…
实战应用:用在哪里 技能升级后缺少视觉与听觉反馈,玩家不确定升级是否成功。技能升级反馈在升级成功的瞬间展示金色光效、播放升级…
实战应用:用在哪里 点击其他玩家的角色时默认弹出查看面板,但在战斗中玩家希望点击即攻击。双击检测在单击查看的基础上增加双击攻…
实战应用:用在哪里 灵宠在战斗中作用有限,玩家养了宠物但缺少日常互动。灵宠派遣让宠物成为玩家的探索伙伴:派遣灵宠外出探索获取…
实战应用:用在哪里 宠物养成线只有喂食和升级,缺少宠物之间的对抗玩法。宠物竞技让两只宠物在专属竞技场进行自动对战,玩家通过调…
实战应用:用在哪里 测试环境直接复制生产库会把真实玩家数据暴露给开发和测试人员,存在隐私泄露风险。脱敏测试库的搭建分三步:从…