尸王殿是僵尸洞深处的密室 BOSS 房:每天定时开门两班,门开前半小时就有人蹲守,开门瞬间的挤门大战是老玩家共同记忆。定时密室的设计要点是开门调度、进入容量与房间内外的信息差,三件事都能用引擎定时器与地图接口串成脚本。
---全局定时器 21 号:每 30 秒检查开门时刻
setontimerex(21, 30)
local OPEN_TIMES = { ["1430"] = true, ["2100"] = true }
local doorOpen = false
function ShiWang.tick()
local hm = os.date("%H%M")
if OPEN_TIMES[hm] and not doorOpen then
doorOpen = true
ShiWang.closeAt = os.time() + 300
QF_Broadcast("尸王殿大门开启,300 秒后关闭!")
end
if doorOpen and os.time() > ShiWang.closeAt then
doorOpen = false
end
end
每天 14:30 与 21:00 两班开门,门开 300 秒后关闭。全局定时器每 30 秒对表一次,开门标志加关闭时刻构成门的两个状态。开门广播用 sendmsg 的类型 1 发往全服,在场与否的信息差留给玩家社交渠道,洞外的人要靠好友打听,这层信息差是争夺生态的一部分。
---进门判定:满员 20 人拒载
function ShiWang.enter(actor)
if not doorOpen then
sendmsg(actor, 1, "尸王殿大门尚未开启")
return false
end
if ShiWang.count >= 20 then
sendmsg(actor, 1, "殿内已满员,请等待下一班")
return false
end
ShiWang.count = ShiWang.count + 1
mapmove(actor, "shiWangHall", 25, 25, 0)
return true
end
密室容量 20 人,满员后门口排队的人只能等里面的人出局。尸王每小时刷新一只,殿内争夺从抢怪变成抢位置。密室内死亡回城复活,出门再进要等下一班门开,高代价让每波尸王的争夺全力以赴。尸王掉落召唤神兽、冰咆哮等高阶技能书的门槛概率,书页交易的硬通货由此而来。
开门准点率与满员时长的统计,满员率长期百分百提示扩容或加开班次的运营决策。
开门调度早期用整点定时器,服务器重启后当班开门丢失,玩家蹲了个寂寞,调度改为定时器加时间表双保险并在重启时校验补偿。容量计数曾经只进不出重复累加,有人进出十次占十个坑,计数改为读取当前在室人数的实时快照。门开的广播曾经用地图定向播报,洞外玩家毫无感知导致门开没人知道,改全服播报后挤门盛况回归。
开门时刻与容量进活动配置表,节假日可临时加开 12:00 午间班。门开的 300 秒窗口与殿内尸王的刷新周期错开设计:门关之后殿内的战斗再持续 55 分钟,出殿的传送卷轴作为保底道具投放。容量的上限与服务器承载联动,千人服可放宽到 30 人。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 跨服远征分先锋、主力、后勤三队独立推进,三线全通合围BOSS。不同战力成员都有参与感。 策划要点与配置 …
实战应用:用在哪里 副本限时挑战加入超时血量惩罚:超时后BOSS攻击递增。上线后BOSS攻击叠到十倍秒杀全队。 事故还原与补…
实战应用:用在哪里 混沌麒麟召唤是全服高光时刻:暗幕聚合、裂缝展开、麒麟着陆三段演出各1.3秒。 三段式入场演出编排 围观镜…
实战应用:用在哪里 任务对话一闪而过玩家想回顾。回看接口把对话按节点存档,面板翻阅全部对话记录。 对话存档与查询渲染 当前章…
实战应用:用在哪里 服务器承载六十张地图,空闲地图白耗资源。按需激活,末人离开后六十秒休眠。 激活与休眠触发 休眠回收 验证…
实战应用:用在哪里 坐骑资质洗炼随机重滚五条属性,锁定满意的条目不再重滚,锁定越多消耗越大。 洗炼与锁定 锁定消耗递增 验证…