文档托管解决方案

4.功能域

注意:此页面所述功能和/volumearea命令在现版本已被弃用,此页面现仅作为旧版本参考。

此页面所述功能只能在1.21.0及以下的游戏中使用。
然而,出于学习并理解旧版附加包的必要性,我保留了这个页面。

前言

上期,我们成功向附加包中添加了函数。这一期,我们将学习功能域相关内容。注意,功能域属于实验性内容中的实验性内容,从未正式发布,测试了四个大版本就移除了。需要1.18到1.21的版本。
草

准备

打开行为包根目录,打开volumes文件夹。不过,在你迫不及待地新建文件之前,你一定很疑惑:什么是功能域?我怎么从来没听说过??如果你想知道答案,打开折叠块。你也可以跳过,反正我一会儿还要放出使用方法。

这个问题,只有玩命令的玩家才可能会回答,而且回答的不一定对。如果你经常玩命令,你应该会注意到有个命令叫/volumearea。这个命令的解释大概是“列出、添加或删除卷”,这一定让你大惑不解。“卷”?卷是什么?你带着这个疑问,看到了它的语法大致与/tickingarea(常加载区域)相同,于是你猜测这个“卷”就像常加载区域一样,是一种区域。没错,所谓“卷”,就是功能域。
在你尝试输入/volumearea然后招惹来一堆错误提示时,你一定不会想到这东西居然需要附加包的支持。换句话说,还没有已知的原版的功能域。功能域,只能通过附加包添加,这就是我把它放在函数后面这一期的原因。
我说了这么多,只是因为我想让你在自然情况里了解功能域,你会有兴趣的。
现在我来回答到底什么是功能域。
一个实体进入或离开特定区域后触发了事件,或者在区域内有迷雾效果,这个特定区域就是功能域。比如,走进房子,系统提示:“已进入房子”;走出房子,系统提示:“已离开房子”,房子在一个特定的区域里,这个区域就是功能域。
不过现在,连/volumearea命令都被移除了,功能域这个特性算是几乎没人知道的东西了,它本身也并不实用。

好了,在volumes文件夹里新建文件吧,文件名称见后面的解释。

b844a3a4-a24a-47f8-b94b-bf2f2871d73f.png

第一个功能域

现在就可以开始了。在你新建的文件里写以下代码。

{
  "format_version": "1.18.0",
  "minecraft:volume": {
    "description": {
      "identifier": "前面写一个附加包名称,加上英文冒号,后面写具体的这个文档的英文名(例如test_pack:test_volume),这个叫命名空间ID,要牢记"
    },
    "components": {
      "minecraft:bounds": {
        "min": [
          -512,
          -64,
          -512
        ],
        "max": [
          512,
          320,
          512
        ] //这两个数组可能是指定这个功能域的范围,又或者是限制放置的坐标,目前不清楚它的功能
      },
      "minecraft:fog": { //给功能域附加一个迷雾,进入后显示这个迷雾
        "fog_identifier": "minecraft:fog_hell", //下界荒地的迷雾ID
        "priority": 0 //迷雾的优先级,多个功能域重叠时使用。数字越小,优先级越大。
      },
      "minecraft:on_actor_enter": { //指定当实体进入时触发的事件
        "on_enter": [
          {
            "condition": "1", //指定一个Molang表达式,返回true时才触发这个事件
            "event": "enter", //触发的事件
            "target": "other" //other意思是进入功能域的实体,self意思是功能域本身
          }
        ]
      },
      "minecraft:on_actor_leave": { //指定当实体离开时触发的事件
        "on_leave": [
          {
            "condition": "1", //指定一个Molang表达式,返回true时才触发这个事件
            "event": "leave", //触发的事件
            "target": "other" //other意思是离开功能域的实体,self意思是功能域本身
          }
        ]
      }
    },
    "events": {
      "enter": { //进入时触发的事件
        "run_command": {
          "command": [
            "title @s 进入测试功能域" //要运行的命令
          ]
        }
      },
      "leave": { //离开时触发的事件
        "run_command": {
          "command": [
            "title @s 离开测试功能域"
          ]
        }
      }
    }
  }
}

总结

好了,现在,你应该会如何添加一个功能域了,也明白什么是功能域了。功能域的内容单一,热度较低,目前由于特性(见折叠块)实际用途不多,一期就可以说完。下期,我们就要学习如何添加迷雾了。
解压后查看

上一篇
下一篇
目录导航

更多文档