我的世界函数指令如何编辑和使用?
原创

我的世界函数指令如何编辑和使用?

好文
试试语音读文章

热门回答:

以下所述仅代表个人观点哦

首先函数系统是1.12版本以后的一个功能。他将原来进度系统中返回指令的部分单独提取出来。做成现在的函数系统。

函数系统有命名空间和函数文件组成。命名空间就是方便我们编写者分类管理各种函数文件。而函数文件。简单来讲。一个函数等价于多个命令方块。函数文件里面每一行写一条指令。当执行这个函数时。里面的指令会按行依次执行。如果在一个函数中调用其他函数。那么在同一游戏刻。被调用的函数中。所有指令先执行完。就像插队一样。

function指令格式如下

function <命名空间:函数名>

function<命名空间:函数名> <选择器>

此外。对于一些不放在出生点的模块。我们还需要考虑到区块加载的问题。相信这也是让许多人头疼的问题吧。

函数系统显然不需要担心这个。因为它所有的内容全都保存在文件里。不具体的出现在游戏世界中。再资源占用方面相比于cb系统而言是要占优势的。

我们知道。写一个功能可能只要一两天。bebug可能要一周。过去cb系统不依靠编辑器的话。你得手动检查。如果要在中间插入什么指令的话。还得整体移动。工作效率不高。

而函数系统。你要改什么。直接去翻文件改。改完了保存一下。再在游戏里通过/reload指令直接刷新就完事儿了。游戏都不用重进。

想必大家对函数系统有了一定的了解了吧。那么其他的大家一定还是要自己去探索。毕竟自己探索了才会记得更加牢固。还没准儿会多出什么意想不到的东西呢。

注:以上只代表个人看法和以往经验。并不代表官方权威数据。









其他观点:

声明:非原创转自手心游戏网—钱钱。侵删!只希望帮助大家!

《我的世界》1.12版本新增了函数命令这一内容。很多玩家觉得非常复杂。也有玩家发现这个命令可以完全脱离命令方块而存在。

写在前面的话

1.9的更新为我们带来了三色命令方块。让命令方块脱离了红石成为独立的体系。我们因此可以更好实现一些想法;时隔3个版本。MOJANG再次为我们带来惊人的变革。

1.12中。函数与进度系统的出现。让命令脱离命令方块——这句曾经说过的玩笑般的预言。正式成为可能。

函数系统的构成

函数系统的由来

函数(function)系统。是 MC 1.12 Pre-1 版本中新增的一个功能。它将原来进度系统中返回指令的部分单独提取出来。做成了现在的函数系统。

函数系统的形式

函数系统由命名空间和函数文件组成。这些文件保存在存档目录/data/functions/下。functions目录下的文件夹。称为命名空间。各个命名空间下存放不同的函数文件。实际上。命名空间就是方便我们编写者分类并管理各种函数文件。

函数文件是以.mcfunction为后缀名的文本文件。建议采用utf-8无BOM编码以防显示错乱。简单来讲。一个函数等价于一个多行命令方块。函数文件里面每一行写一条指令。当执行这个函数时。里面的指令会按行依次执行。如果在一个函数中调用其它函数。那么在同一游戏刻。被调用的函数中所有指令先执行完。再继续当前函数中后续的指令。就像插队一样。我们在后面对比命令方块时还会说到这个。

请注意:在 1.12 Pre-3 版本中存在一个严重漏洞。即命令执行体不能正确地通过execute传递到被调用的函数中去。这个漏洞有望在后续版本以及正式版修复。

以下是本文用到的一个函数系统的目录。带有\"+\"的表示为目录

+ functions+ sayhi.mcfunctionbye.mcfunctionText1.mcfunctiontext2.mcfunction+ system+ process_process.mcfunction_main.mcfunctionplayer_tick.mcfunction

如何调用函数

在 1.12 中。MOJANG新增了function指令和一条名为gameLoopFunction的游戏规则来辅助我们使用函数系统。function指令的格式如下:

function <命名空间:函数名>function <命名空间:函数名> <if|unless> <选择器>

这两条都是可行的。其中。if|unless是在1.12 pre-4加入的功能。后面我会解释到这个。我们先来说说第一种形式。例如上面的目录中。要调用system这个命名空间下的_main文件。就是输入这样的指令:

function system:_main

现在。我们来看一个例子例如say命名空间下的Text1.mcfunction和text2.mcfunction。里面分别写上这些内容

Text1.mcfunction

#这是一个范例。在function文件中可以用#来注释行。请注意。不能够使用//来注释!say 1function say:text2say 2

text2.mcfunction

say 3say 4

当我在系统后台输入function say:text1时。聊天框会出现这些内容:[server] 1[server] 3[server] 4[server] 2

也就是说。执行function指令的人。会把函数里面的指令依次执行——我在系统后台输入function指令。就是系统在执行。我自己输入function指令。就是我本人在执行。大家可能注意到了。函数中支持使用#进行注释(旧版本支持//注释。当前版本已经不再支持)。也就是说被注释行不会作为指令而执行。这一点有多方便相比不比我再说了。同时需要大家注意:函数中所有指令不能够以/开头。例如。你可以这样写:

say @s

但是不能这样写:

/say @s

最后有一点需要注意的是。在function指令中调用函数时。不区分大小写。例如前面say命名空间下的Text1.mcfunction。我在调用的时候写的是say:text1

然后是第二种形式。也就是带有if|unless的。我简单举两个例子。大家就知道是什么意思了。

其他观点:

感谢方官大大:以下是我的讲解《我的世界》1.12版本新增了函数命令这一内容。很多玩家觉得非常复杂。也有玩家发现这个命令可以完全脱离命令方块而存在。今天文超将推荐的是《我的世界》1.12函数命令系统入门教程 。希望大家能够喜欢。

函数系统的构成

函数系统的由来

函数(function)系统。是 MC 1.12 Pre-1 版本中新增的一个功能。它将原来进度系统中返回指令的部分单独提取出来。做成了现在的函数系统。

函数系统的形式

函数系统由命名空间和函数文件组成。这些文件保存在存档目录/data/functions/下。functions目录下的文件夹。称为命名空间。各个命名空间下存放不同的函数文件。实际上。命名空间就是方便我们编写者分类并管理各种函数文件。

函数文件是以.mcfunction为后缀名的文本文件。建议采用utf-8无BOM编码以防显示错乱。简单来讲。一个函数等价于一个多行命令方块。函数文件里面每一行写一条指令。当执行这个函数时。里面的指令会按行依次执行。如果在一个函数中调用其它函数。那么在同一游戏刻。被调用的函数中所有指令先执行完。再继续当前函数中后续的指令。就像插队一样。我们在后面对比命令方块时还会说到这个。

请注意:在 1.12 Pre-3 版本中存在一个严重漏洞。即命令执行体不能正确地通过execute传递到被调用的函数中去。这个漏洞有望在后续版本以及正式版修复。

以下是本文用到的一个函数系统的目录。带有\"+\"的表示为目录

+ functions

+ say

hi.mcfunction

bye.mcfunction

Text1.mcfunction

text2.mcfunction

+ system

+ process

_process.mcfunction

_main.mcfunction

player_tick.mcfunction

如何调用函数

在 1.12 中。MOJANG新增了function指令和一条名为gameLoopFunction的游戏规则来辅助我们使用函数系统。function指令的格式如下:

function <命名空间:函数名>

function <命名空间:函数名> <if|unless> <选择器>

这两条都是可行的。其中。if|unless是在1.12 pre-4加入的功能。后面我会解释到这个。我们先来说说第一种形式。例如上面的目录中。要调用system这个命名空间下的_main文件。就是输入这样的指令:

function system:_main

现在。我们来看一个例子例如say命名空间下的Text1.mcfun

Text1.mcfunction

#这是一个范例。在function文件中可以用#来注释行。请注意。不能够使用//来注释!

say 1

function say:text2

say 2

text2.mcfunction

say 3

say 4

当我在系统后台输入function say:text1时。聊天框会出现这些内容:

[server] 1

[server] 3

[server] 4

[server] 2

也就是说。执行function指令的人。会把函数里面的指令依次执行——我在系统后台输入function指令。就是系统在执行。我自己输入function指令。就是我本人在执行。大家可能注意到了。函数中支持使用#进行注释(旧版本支持//注释。当前版本已经不再支持)。也就是说被注释行不会作为指令而执行。这一点有多方便相比不比我再说了。同时需要大家注意:函数中所有指令不能够以/开头。例如。你可以这样写:

say @s

但是不能这样写:

/say @s

最后有一点需要注意的是。在function指令中调用函数时。不区分大小写。例如前面say命名空间下的Text1.mcfunction。我在调用的时候写的是say:text1

然后是第二种形式。也就是带有if|unless的。我简单举两个例子。大家就知道是什么意思了。

say:tellraw.mcfunction

scoreboard objectives add timer dummy 计时器

scoreboard players add @s timer 1

function random:title if @s[score_timer_min=1200]

scoreboard players reset @s[score_timer_min=1200] timer

random:title.mcfunction

您还感兴趣的文章推荐

以上就是由互联网推广工程师 网创网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

发表评论

您的电子邮箱地址不会被公开。

评论(2)

  • 少女恶习 永久VIP 2022年12月28日 04:29:55

    函数,指令,系统,文件,命令,空间,方块,注释,版本,我在

  • 归属感 永久VIP 2022年12月28日 04:29:55

    没想到大家都对我的世界函数指令如何编辑和使用?感兴趣,不过这这篇解答确实也是太好了

  • 苏梦北 永久VIP 2022年12月28日 04:29:55

    以下所述仅代表个人观点哦首先函数系统是1.12版本以后的一个功能。他将原来进度系统中返回指令的部分单独提取出来。做成现