CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
引擎触发

【引擎触发】攻城战:沙巴克占领判定与税收权的引擎实现

2026-09-23 17:03 作者:996 技术组 996引擎Lua教程传奇脚本

实战应用:用在哪里

沙巴克攻城战是传奇的巅峰玩法:每周固定时段,申请攻城的行会进攻沙巴克,皇宫内站稳 60 秒即改旗易帜,城主行会获得税收权与全服尊荣。占领判定的每一条规则都牵动全服最强势力的神经,引擎为攻城提供了一整套真名接口与触发链。

攻城开启的触发

lua

---castlewarstart: 攻城开始时触发 sysobj:系统对象
function castlewarstart(sysobj)
    local applicants = getcastlewarlist()
    if not applicants or #applicants == 0 then return end
    QF_Broadcast("沙巴克攻城战开始!城门已开")
end

攻城的排期与城门开关由引擎托管,脚本侧在 castlewarstart 触发里做业务衔接:getcastlewarlist 取回申请攻城的行会列表,用于开场通报与参战统计。申请环节用 addtocastlewarlist 把行会写入攻城名单,名单在开战前 24 小时冻结,防止临时抱团。

占领与税收的结算

lua

---getcastle0: 占领沙巴克触发
function getcastle0(sysobj, guildName)
    setcastleguild(guildName, 0)
    QF_Broadcast("「" .. guildName .. "」占领沙巴克!")
    Siege.grantTax(guildName, 0.05)
end

---castlewarend: 攻城结束时触发
function castlewarend(sysobj)
    QF_Broadcast("沙巴克攻城战结束")
end

皇宫内的占领计时由引擎判定:同一行会的成员独占皇宫并持续 60 秒即触发 getcastle0,混入他帮成员计时清零。脚本侧拿到占领触发的行会名后写城主、发播报、授税收。城主行会获得全服交易税 5% 的抽成权,每日结算进行会基金,经济霸权是沙巴克的真正奖赏。攻城战期间的击杀不计 PK 值,杀红了眼也不进红名村,这是攻城的特权。

验证与监控

占领触发的日志保留整个赛季,争议判罚凭日志逐秒还原,攻城战的公信力靠数据维护。

踩坑记录

皇宫的归属判定早期用矩形框自行计算,玩家站在模型边缘卡出判定区,改成引擎的房间判定后无死角。税收结算曾经按日重复发放,发放任务的幂等键补上后城主基金才对得上账。攻城名单曾经开战后仍可修改,半夜偷报名的行会让守方措手不及,名单冻结时点写进规则后争议消失。

上线要点

攻城时段、占领秒数、税收比例全部进配置表,赛季间可调。占领触发的播报文案区分占领与卫冕两种,卫冕成功的荣誉感单独设计。攻城战的容错预案:开战时 castleinfo 检查城墙状态,异常时用 gmexecute 走引擎的强制开场通道,裁判权永远在脚本侧可干预。

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

策划架构996引擎

【策划架构】赛季分层:竞技场奖励的分层发放设计

设计初衷 竞技场奖励"一刀切"(前 10 名有奖,其余没份)的后果:排名 11 到 50 的中间层玩家觉得自己白打了一个赛季…

2026-09-24 16:50 996 技术组
进阶实战996引擎

【进阶实战】连胜豁免:竞技场三连胜的匹配豁免封装

业务场景 三连胜后继续匹配同段位对手没有挑战性。连胜豁免:三连胜后自动将匹配池上移一档。 核心实现 连胜计数与豁免判定。示例…

2026-09-24 16:50 996 技术组
高级技巧996引擎

【高级技巧】事件委托表:事件与处理函数解耦注册

底层原理 事件系统硬编码处理函数名导致新增事件必须改分发入口——开放封闭原则的反面。事件委托表用数据代替分支:事件名到处理函…

2026-09-24 16:50 996 技术组
策划架构996引擎

【策划架构】坐骑养成:喂养训练共鸣的三线并行设计

设计初衷 坐骑系统普遍的死穴是"买了就不用管":一次性消费后坐骑沦为纯代步工具,没有养成层级。坐骑长线的设计目标:喂养、训练…

2026-09-24 16:50 996 技术组
策划架构996引擎

【策划架构】引路匹配:回流玩家的双向激励重连设计

设计初衷 回流玩家的最大障碍不是数值落后,是社交断层:离开 90 天后,好友列表里一半人退游、行会换了会长、固定队散了。回归…

2026-09-24 16:50 996 技术组
高级技巧996引擎

【高级技巧】协程超时看门狗:长时间任务的自动终止封装

底层原理 引擎的 Lua 脚本跑在协作式调度里:一段脚本能跑多久,取决于它自己何时返回。批量操作(扫 5000 只怪物掉落、…

2026-09-24 16:50 996 技术组