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

【前端底层】BehaviorSelector:怪物 AI 的行为树选择节点

2026-09-21 09:42 作者:996 技术组 前端底层

实战应用:用在哪里

解密源码里的 bt 目录是怪物的行为树实现:BehaviorSelector 是其中的选择节点,按优先级依次尝试子行为,哪个子行为的前提满足就执行哪个。怪物“先攻击、打不过就跑、跑不动就游荡”的决策链,就是一棵由 Selector 组织的行为树。

选择节点的实现

lua

---行为树选择节点:依次尝试子节点
function BehaviorSelector.tick(mon, dt)
    for _, child in ipairs(mon.behaviors) do
        if child:check(mon) then
            mon.current = child
            return child:tick(mon, dt)
        end
    end
    return false
end

每个子行为实现 check(前提判定)与 tick(执行)两个方法:攻击行为的 check 是仇恨列表非空,逃跑行为的 check 是血量低于两成,游荡行为的 check 恒为真(兜底)。Selector 按数组顺序逐个尝试,命中的行为接管怪物本帧的控制权。

行为的注册与切换

lua

---怪物的行为注册(祖玛卫士的配置示例)
function MonsterAI.initBehaviors(mon)
    mon.behaviors = {
        BehaviorAttack.new(mon, { range = 5 }),
        BehaviorMove.new(mon, { home = mon.homePoint, leash = 10 }),
        BehaviorTurn.new(mon, {}),
    }
end

祖玛卫士的行为链:攻击、游走、转身待机, leash 参数限定 10 格的活动半径,超出即触发回家。行为树的调试技巧:给每个节点加命中计数,运行半小时后各节点的命中分布能暴露决策配置的问题——游荡占比九成的怪物说明攻击范围配小了。

验证与监控

行为节点的命中计数按怪物类型日报,分布的异常偏移即 AI 配置的问题信号。

踩坑记录

check 的实现曾经在遍历中修改 behaviors 表,迭代器跳过了后半的节点,行为“时灵时不灵”,表的快照遍历修复。行为树的嵌套控制在两层以内,更复杂的组合用配置参数表达而不是继续嵌套,调试的成本随层数指数上升。

调试的成本随层数指数上升。行为树的配置示例在案例库有完整的参考实现,新怪物的 AI 配置从复制模板开始,改参数比从零写更不容易出错,模板的积累让 AI 的质量下限稳定。

上线要点

行为树的节点注册表集中管理,新怪物的 AI 配置只写数据不写代码。行为切换的顿挫感用淡入淡出的动画过渡掩盖,AI 的表演性在传奇的观感里占三成权重。

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

作者履历与出处

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

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

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

LATEST ARTICLES

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

框架设计BOSS播报

【框架设计】BOSS阶段时间轴:阶段事件的框架化播报设计

实战应用:用在哪里 沃玛教主血量每降一档触发一次全服播报,播报逻辑散在伤害结算里,改一条文案翻三个文件。时间轴框架把阶段播报…

2026-09-22 14:44 996 技术组
安全加密摊位过户

【安全加密】摊位转让过户:过户费与摊位洗牌防范的设计

实战应用:用在哪里 金位摊位成了稀缺资产,私下转让滋生倒卖。过户系统把转让收编:双方确认、缴纳成交价一成的过户费、转让后原主…

2026-09-22 14:44 996 技术组
数据存储限购持久化

【数据存储】师门积分每周限购:限购状态的持久化设计

实战应用:用在哪里 师门积分商店的热门商品每周限购两件,限购状态跨周重置的口径必须稳:本周已购几件、下周何时刷新、补签周怎么…

2026-09-22 14:44 996 技术组
运维发布怪物平衡

【运维发布】怪物密度动态平衡:全服刷新参数的运营调整机制

实战应用:用在哪里 练级区怪物密度是玩家口碑的晴雨表:太密抢怪打架,太稀挂机空转。密度动态平衡机制把刷新倍率做成运营参数,按…

2026-09-22 14:44 996 技术组
界面UI安全区警示

【界面UI】安全区边界警示:越界提示的可视化设计细节

实战应用:用在哪里 新玩家不知道安全区边界在哪,迈出一步被野怪围殴,第一印象直接崩坏。边界警示方案:接近安全区边界时地面浮现…

2026-09-22 14:44 996 技术组
前端接口任务寻路

【前端接口】任务追踪寻路切换:自动寻路与手动模式的切换实现

实战应用:用在哪里 自动寻路省心但让玩家成了观光客,手动跑图自由却容易迷路。追踪切换方案:任务追踪面板提供自动与手动两种模式…

2026-09-22 14:44 996 技术组