Appearance
extraction.yml:撤离点
每局必须同时存在至少一个无条件计时撤离点和一个条件撤离点。所有撤离区域互相不得重叠。
通用字段
| 路径 | 类型 / 范围 | 说明 | 生效 |
|---|---|---|---|
points.<id> | 配置段 | ID 仅小写字母、数字、连字符 | 热重载 |
display-name | 非空字符串 | UI 名称 | 热重载 |
type | TIMED/CONDITIONAL | 决定是否必须有 unlock | 热重载 |
region | world,x1,y1,z1,x2,y2,z2 | 整数方块区域;点之间不得重叠 | 热重载 |
countdown | 秒,1..3600 | 玩家持续满足条件的倒计时 | 热重载 |
interrupt.on-damage | 布尔 | 受伤是否打断 | 热重载 |
interrupt.on-leave | 布尔 | 离开撤离区域时会中断撤离 | 热重载 |
条件撤离 unlock
| 字段 | 类型 / 范围 | 说明 |
|---|---|---|
mob | 非空字符串 | MythicMobs 怪物 ID |
mob-display-name | 非空字符串 | 进度提示名 |
count | 整数 1..100000 | 要求击杀数 |
scope | RUN/PLAYER | 全局共享解锁 / 击杀玩家个人解锁 |
两个条件点不得使用完全相同的 mob + count + scope。TIMED 点严格禁止 unlock;CONDITIONAL 点严格要求它。
完整默认配置
yaml
points:
timed-east:
display-name: "东部公路"
type: TIMED
region: "world,28,63,28,34,70,34"
countdown: 10
interrupt:
on-damage: true
on-leave: true
boss-west:
display-name: "西部封锁线"
type: CONDITIONAL
region: "world,-34,63,-34,-28,70,-28"
countdown: 15
interrupt:
on-damage: true
on-leave: true
unlock:
mob: GridRaidBoss
mob-display-name: "区域首领"
count: 1
scope: RUN常见错误与验证
- 不同撤离区域之间建议至少间隔一格,避免边界重叠。
mob必须和击杀事件中取得的 MythicMobs ID 相同,不是显示名。- 重载后分别验证:TIMED 完整倒计时;受伤按开关处理、离区始终打断;RUN 由一人击杀后全队解锁;PLAYER 只对击杀归属玩家解锁;成功撤离只结算一次。
on-leave 的真实行为
ExtractionManager 每 tick 都会检查玩家是否仍在同一撤离区域,离开即调用 LEFT_ZONE 中断。当前代码没有读取 on-leave 来绕过此检查,因此把它设为 false 也不会允许离区继续倒计时。