搜索

触发器与条件

15 个触发器、最多 11 个条件、目标上下文、常用配方与逐层排查。

LiDungeon 的逻辑结构是:

事件发生 -> 触发器捕获 -> 逐项检查条件 -> 通过后执行功能

“触发器少”通常有三种原因:当前菜单分类、地牢类型或可选依赖不同。当前完整基准是 15 个触发器;程序化房间触发器只在相关场景使用,MythicMobs 会把普通生物死亡触发器替换为 Mythic 版本,所以总数仍是 15。

触发器完整清单

中文菜单名 内部类型 触发时机 关键设置
方块检测器 TriggerBlockDetector 指定位置方块被放置或破坏 检测放置/破坏、方块、延迟;同时允许该位置操作
聊天消息 TriggerChat 玩家发送匹配文本 文本、完全匹配、大小写、重复、延迟
玩家检测器 TriggerDistance 玩家进入位置半径 半径、最少玩家、逐玩家触发、重复、延迟
地牢开始 TriggerDungeonStart 地牢正式开始 适合开场标题、刷怪、关门
AND 门 TriggerGateAnd 关联触发器全部激活 子触发器列表
OR 门 TriggerGateOr 任一关联触发器激活 子触发器列表
右键方块 TriggerInteract 玩家按配置点击位置方块 点击类型、重复、延迟
钥匙物品检测器 TriggerKeyItem 玩家使用指定物品 物品、点击类型、消耗、任意位置、重复、延迟
离开地牢监听器 TriggerLeaveDungeon 玩家离开实例 可阻止普通离开、重复、延迟
生物死亡计数器 TriggerMobDeath 或 TriggerMythicMobDeath 指定生物死亡达到数量 生物 ID、数量、半径、重复、延迟
玩家死亡计数器 TriggerPlayerDeath 玩家死亡次数达到要求 数量、按玩家计数、重复、延迟
红石信号接收器 TriggerRedstone 指定方块收到红石 重复、延迟;没有明确玩家/队伍目标
信号接收器 TriggerRemote 收到同名远程信号 信号名、等待条件、重复、延迟
房间门开关 TriggerRoomDoorChange 程序化房间门打开或关闭 门名、动作、重复
进入/离开房间 TriggerRoomPresence 玩家进入/离开程序化房间 触发时机、原因筛选、重复

每个触发器还能添加条件,并可限制到房间。位置型触发器复制/旋转后要验证位置和朝向。

11 类条件

基础安装有 9 类;安装 MythicMobs 和 PlaceholderAPI 后最多 11 类。

中文菜单名 内部类型 判断内容 常见用途
触发概率 ConditionChance 随机概率 随机彩蛋、掉落分支
地牢难度 ConditionDifficulty LiDungeon 难度 ID HARD 专属怪物;与原版 /difficulty 无关
变量比较 ConditionInstanceVariable 当前实例共享变量 阶段、机关总进度
范围内生物 ConditionMobWithin 半径内指定生物数量 清怪开门、Boss 存活检查
玩家数量 ConditionPartySize 当前或初始玩家数 多人机关、人数缩放
范围内玩家 ConditionPlayersWithin 位置周围玩家数量 全员到齐、区域占领
玩家变量比较 ConditionPlayerVariable 每名目标玩家变量 个人任务、个人钥匙状态
地牢状态 ConditionStatus 自定义状态字符串 阶段机、Boss 状态
已用时间 ConditionTimeElapsed 运行时间范围 限时分支、延迟阶段
Mythic 条件 ConditionMythic MythicMobs 条件行 仅安装 MythicMobs
占位符检查 ConditionPlaceholderAPI PAPI 输出比较 仅安装 PlaceholderAPI,可选择检查全部玩家

条件可以切换“要求通过/要求不通过”。排查时先确认这个反转开关,避免判断逻辑与预期相反。

执行与目标上下文

触发器是否能提供明确玩家目标,决定后续功能能否对某个玩家执行:

  • 玩家检测、聊天、交互、钥匙、玩家死亡通常有玩家上下文;
  • 红石等世界事件没有明确玩家,后续“玩家目标”功能可能没有对象;
  • “为每名玩家触发”开启时,玩家检测器会为范围内每名玩家分别执行;关闭时通常只为最近玩家触发一次;
  • 限制到房间可避免同一模板在不同程序化房间中误触。

常用逻辑配方

清怪开门

生物死亡计数器(数量=10)
  + 条件:范围内生物=0
  -> 门控制器(解锁/打开)
  -> 标题(区域已清理)

两个机关同时激活

右键方块 A ─┐
             ├─ AND 门 -> 门控制器
右键方块 B ─┘

全员到达后开始 Boss

玩家检测器(半径=6、最少玩家=N)
  + 条件:玩家数量达到队伍人数
  -> 多功能组合
     -> 门控制器(关闭入口)
     -> 生物生成器(Boss)
     -> Boss 血条

远程信号跨区域联动

任意触发器 -> 信号发送器(signal=boss_dead)
远处信号接收器(signal=boss_dead, 等待条件=true)
  -> 奖励/出口/标题

触发器不出现

  1. 查看启动日志加载数量。
  2. 确认是在正确的功能/触发器菜单与分类。
  3. 房间门和房间成员触发器需要程序化房间上下文。
  4. MythicMobs 安装后普通死亡触发器会被 Mythic 版本替换,不会同时显示两个。
  5. PAPI 只增加条件,不增加触发器。
  6. Citizens 只增加 NPC 功能,不增加触发器。
  7. 可选插件必须在 LiDungeon 启动前成功加载;热装插件后要重启。

触发了但功能没执行

按以下顺序拆解:

  1. 临时移除全部条件,验证事件能否触发。
  2. 只绑定“消息发送器”,验证功能链。
  3. 逐个加回条件,检查比较符、数值类型和反转开关。
  4. 检查目标类型:当前事件是否提供玩家、队伍或位置。
  5. 关闭“只触发一次”类限制,重新进实例测试。
  6. 确认没有把触发器限制到错误房间。
  7. 保存、退出编辑、重载地牢后再测试一个全新实例。

不要直接在旧活动实例里判断重载是否生效;活动实例通常保留创建时的运行状态。