AreaControl 使用指南
AreaControl 是个用来控制(Control)玩家在一块地(Area)上能干啥的 Mod。
写在前面:出问题怎么办?
请先联系分诊团队。
但是下面这些问题理论上和 AreaControl 无关:
红石电路不管用。AreaControl 管不了红石。
你需要了解这些概念
地块(Area)
有时也叫 Claim,意思是「划好的地块」,即「领地」。
这就是个长方体,且长宽高与 Minecraft 世界坐标系中的 X、Y、Z 轴平行或垂直。
地块和维度挂钩:同样是范围为从 (0,0,0) 到 (10,10,10) 的领地,在主世界和在下界是两块不一样的领地。
地块可以嵌套(俗称「套娃」):你可以大地块包小地块,小地块里包小小地块,……
野外
不在任何地块范围之内的地方就是野外。代码实现上,野外也是一个地块。
地块主人
有时也叫地块所有者(Owner)或者声明者(Claimer)。
这些人是地块的话事人。
地块主人有两种:玩家和团队。玩家由 UUID 表示。团队由团队识别名称表示。
地块建设者
或者说建筑师。
这些人有权在地块上搭建建筑,但对地块的一些核心信息没有话事权。
地块建设者有两种:玩家和团队。玩家由 UUID 表示。团队由团队识别名称表示。
地块属性
这些是决定了「这个地块可以干啥,不可以干啥」的各种开关。
对于「套娃」地块,属性可以继承:小地块没说行不行的时候,由上面一层大地块决定。上面一层大地块也没说行不行的话,由上上一层大大地块决定。依此类推,直到有地块或野外做决定。
对于野外,则会由野外属性决定。
Bypass 模式
意为「绕开」模式。
开启此模式时,大部分地块属性的检查都将不再对此模式下的玩家生效。
Bypass 模式与领地挂钩。只有地块的建设者、所有者或者茶馆员工可以开启 Bypass 模式。
Bypass 模式分两种:局部和全局。
局部 Bypass 模式意思是「你在哪块领地里打开的 Bypass,就只在哪块领地里有效果」。
全局 Bypass 模式意思是「无论你走到哪里,只要你有权限,系统就会帮你自动打开 Bypass」。
Bypass 模式有两种关闭方式:
玩家下线时,所有 Bypass 状态都会清空。
使用
/ac current bypass none手动关闭。
你需要了解一下基本命令
/ac claim chunk <x> <z>
直接申领指定数量的区块。x 和 z 的值含义如下:
正的 x 表示向东延伸
|x|个区块。负的 x 表示向西延伸
|x|个区块。正的 z 表示向南延伸
|z|个区块。负的 z 表示向北延伸
|z|个区块。
方向不以玩家朝向为转移。
若同时省略 x 和 z 不写,你会申领到你站着位置所在的区块。
不能只省略 x 或者只省略 z:这样有歧义。
/ac claim marked
申领用领地标记物品标记出来的范围。
若客户端装有 AreaControl,这个范围是用黄色力场圈出来的范围。
/ac unclaim
直接删除你所站位置的领地。要求你必须是当前领地所有者。
/ac nearby
高亮显示周围地块。需要客户端安装有 AreaControl。
使用后你周围的地块范围都会出现青色或蓝色力场。蓝色表示领地是套娃领地。青色表示「再往外就是野外」的领地。
/ac current
显示你现在在哪个地块里。如果你在野外,会显示你在野外。
/ac current edit
打开领地属性编辑器。需要客户端安装有 AreaControl 且你是当前所在领地的所有者或建筑师。
如果你站在野外,那就会编辑野外属性。
这编辑器的使用方式类似 Discord 的权限编辑界面,分两排:
左边一排是一条条属性;
右边是三个按钮:叉、斜线、勾。叉表示禁止。斜线表示不设置。勾表示允许。不设置的时候,会使用上面一层大领地的设置。
/ac current bypass local
使用后玩家会开启局部 Bypass 模式,或者说当前领地的 Bypass 模式。
/ac current bypass global
使用后玩家会开启全局 Bypass 模式,走到哪就自动开到哪。
/ac current bypass none
使用后玩家会关闭 Bypass 模式。
你需要知道这些属性都是干啥的
属性 | 解释 | 值类型 | 允许 Bypass | 存在精确到方块/物品/实体的变种 |
|---|---|---|---|---|
| 是否在玩家进入时,在其快捷栏上方(Action bar)中显示欢迎辞。 | 是/否 | 无效 | 否 |
| 允许来自下级领地的实体使用实体选择器选中当前领地的实体 | 是/否 | 不允许 | 否 |
| 允许来自上级领地的实体使用实体选择器选择当前领地的实体 | 是/否 | 不允许 | 否 |
| 允许来自下级领地的命令方块使用实体选择器选择来自当前领地的实体 | 是/否 | 不允许 | 否 |
| 允许来自上级领地的命令方块使用实体选择器选择来自当前领地的实体 | 是/否 | 不允许 | 否 |
| 是否允许生成实体,不论方式 | 是/否 | 无效 | 否 |
| 是否允许玩家攻击玩家 | 是/否 | 允许 | 否 |
| 是否允许玩家攻击非玩家实体。 | 是/否 | 允许 | 是 |
| 是否允许玩家与实体进行交互,例如打开村民交易界面。 | 是/否 | 允许 | 是 |
| 是否允许骑乘载具 | 是/否 | 允许 | 是 |
| 是否允许玩家破坏方块 | 是/否 | 允许 | 是 |
| 是否允许玩家点击方块(左击) | 是/否 | 允许 | 是 |
| 是否允许玩家与方块交互(右击) | 是/否 | 允许 | 是 |
| 是否允许玩家放置方块。 | 是/否 | 允许 | 是 |
| 是否允许玩家使用物品 | 是/否 | 允许 | 是 |
| 是否允许持有物品。「持有」意味着物品在玩家背包中。 | 是/否 | 允许 | 是 |
| 是否允许爆炸。禁止后爆炸将不存在。 | 是/否 | 无效 | 否 |
| 是否允许爆炸破坏方块。爆炸此时已经发生,无法阻止。 | 是/否 | 无效 | 否 |
| 是否允许爆炸杀伤实体。爆炸此时已经发生,无法阻止。 | 是/否 | 无效 | 否 |
| 是否允许玩家破坏耕地。 | 是/否 | 允许 | 否 |
| 是否允许火焰蔓延。 | 是/否 | 允许 | 否 |
你需要知道一些小技巧,又称:ACtrl 简易食谱
如何实现安检机的效果?
假设我们禁止某块领地里出现 TNT,那么我们在目标领地中可以如此做:
/ac current properties set possess.minecraft:tnt false上述属性只会禁止玩家背包里有 TNT 物品,而不会影响到其他物品。
带着 TNT 的玩家到时候就会看到 TNT 被没收的提示。玩家可在允许的地区从保险箱中取出没收的物品。
恐怕玩家不会找到任何允许携带 TNT 的地方吧。
——茶缸子
我们还可以更进一步,禁止放置 TNT 方块:
/ac current properties set place_block.minecraft:tnt false上述表格中,若「存在精确到方块/物品/实体的变种」一栏标「是」,那么这个属性就可以后接特定对象的注册名,以实现精确打击。
如何防止外面的玩家或命令方块一个 /kill @e 把我领地里的实体带走?
在你的领地里执行下列两个命令。第一个命令防玩家,第二个命令防命令方块。
/ac current properties set select_from_parent_area_by_entity false
/ac current properties set select_from_parent_area_by_command_block false
如何实现「除了指定物品,其他物品全部没收」的效果?
假设你要求玩家在某个领地里的时候,背包里只允许有原版雪球、鸡蛋和 ChromeBall 模组的 Chrome 球,那么你可以在这块领地中依次执行下列命令:
/ac current properties set possess.minecraft:egg true/ac current properties set possess.minecraft:snowball true/ac current properties set possess.chromeball true/ac current properties set possess false
带过滤器的属性的优先级比不带过滤器的高。因此我们可以先额外允许鸡蛋、雪球和 Chrome 球,然后直接一次性「禁止持有任何物品」。ACtrl 在检查时,会首先检查带过滤器的版本,然后是粗糙一点的按 Mod ID 过滤的版本,最后才是 possess。这样组合的结果便是「允许持有物品的白名单」。