区域目录
AchieveMaster 的区域系统主要给这两类触发器用:
REGION_ENTERREGION_LEAVE
当前实现同时支持:
config.yml -> custom-regions里的旧写法regions/文件夹下的独立区域文件- WorldGuard 区域(写成
wg:区域名)
真正推荐长期维护的,是 regions/ 目录。
首次启动后的默认行为
如果 plugins/AchieveMaster/regions/ 不存在,当前区域监听器会:
- 自动创建这个目录
- 自动写入
_示例区域.yml - 自动写入
_多区域示例.yml
以下划线 _ 开头的文件不会被正式加载,只当示例使用。
单区域文件
最推荐的方式是一个文件只写一个区域。
yaml
id: "spawn"
name: "主城"
world: "world"
x1: -100
y1: 0
z1: -100
x2: 100
y2: 256
z2: 100几个规则:
- 文件名默认会当区域 ID
- 如果文件里自己写了
id,会优先用id name是显示名,不影响触发器真正匹配的 ID
多区域文件
如果你想把一组区域放在同一个文件里,也支持:
yaml
regions:
主城:
name: "主城区域"
world: "world"
pos1: "0,0,0"
pos2: "100,256,100"
矿洞:
name: "矿洞区域"
world: "world"
x1: 200
y1: 0
z1: 200
x2: 300
y2: 64
z2: 300坐标写法
当前实现支持两种:
写法 1:分开写
yaml
x1: -100
y1: 0
z1: -100
x2: 100
y2: 256
z2: 100写法 2:字符串坐标
yaml
pos1: "-100,0,-100"
pos2: "100,256,100"两种效果一样。
在成就里怎么引用
自定义区域直接写区域 ID:
yaml
trigger:
type: REGION_ENTER
条件:
区域ID: "spawn"WorldGuard 区域写成:
yaml
trigger:
type: REGION_ENTER
条件:
区域ID: "wg:spawn"使用建议
- 区域少量时也可以先用
custom-regions,但长期项目还是建议统一到regions/。 - 能一文件一地区域时,就别硬塞很多区域进一个文件,后面维护更轻松。
- 区域 ID 一旦被成就广泛引用,就尽量不要乱改。
- 大型服如果本来就有完整的 WorldGuard 区域体系,可以直接用
wg:接,不一定非得重复定义一遍。
常见问题
为什么我的区域文件没生效
先检查:
- 文件名是不是以下划线
_开头 - 是不是
.yml文件 - 改完后有没有执行
/ach reload - 坐标格式是不是写错了
REGION_ENTER 一直不触发
先确认:
- 玩家是不是从区域外进入到区域内
world名是否写对- 填的是不是区域 ID,而不是显示名
name