我的世的构世界1.12版本中新增了函数系统,那么我的界函世界1.12版本函数命令怎么用?下面99小编就给大家带来我的世界函数命令系统的构成详细介绍。
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是在1.12 pre-4加入的功能,后面我会解释到这个。我们先来说说第一种形式。例如上面的目录中,要调用system这个命名空间下的_main文件,就是输入这样的指令:
function system:_main
现在,我们来看一个例子例如say命名空间下的Text1.mcfunction和text2.mcfunction,里面分别写上这些内容
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
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title1"]}
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title2"]}
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title3"]}
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title4"]}
summon area_effect_cloud ~ ~ ~ { Tags:["rnd_title","rnd_title5"]}
entitydata @r[r=0,type=area_effect_cloud,tag=rnd_title] { CustomName:"rnd_title"}
execute @e[name=rnd_title,tag=rnd_title1] ~ ~ ~ tellraw @a[r=0,c=1] ["1"]
execute @e[name=rnd_title,tag=rnd_title2] ~ ~ ~ tellraw @a[r=0,c=1] ["2"]
execute @e[name=rnd_title,tag=rnd_title3] ~ ~ ~ tellraw @a[r=0,c=1] ["3"]
execute @e[name=rnd_title,tag=rnd_title4] ~ ~ ~ tellraw @a[r=0,c=1] ["4"]
execute @e[name=rnd_title,tag=rnd_title5] ~ ~ ~ tellraw @a[r=0,c=1] ["5"]
将say:tellraw放到主进程中
execute @a ~ ~ ~ function say:tellraw
则每位玩家每分钟将会看到1~5中随机一个数字出现在聊天框。也就是说,只有计时器分数满1200的人会执行后面的随机部分。那么很显然,带有if的意思就是,如果能找到后面的选择器,就执行这个函数,否则不执行。相当于testfor。
那么unless的意思也就很明显了:在找不到后面的选择器的时候,执行这个函数,相当于testfor+非门。
gameLoopFunction
讲完调用,就该讲讲高频了。玩命令方块的人都知道高频是实现许多功能的前提。在函数系统中,MOJANG 为我们提供了一条名为gameLoopFunction的游戏规则来实现高频。它的格式是
gamerule gameLoopFunction <命名空间:函数>
也就是说,你可以指定一个函数来高频执行,这个高频是20Hz的,也就是每一个游戏刻都会执行一遍。新建的存档如果没有执行过这条指令,而是用gamerule gameLoopFunction来查询的话,得到的返回值是-
为了方便,我们将这个规则简称为glf。在旧版本中,glf指定的函数,由系统(server)作为执行体;而在新的版本中,MOJANG 引入了虚拟执行体,例如将 say:text2 指定为glf时,每一个游戏刻得到的结果是这样的
[say:text2] 3
[say:text2] 4
也就是说,系统不再作为执行体,而是由虚拟的执行体代为执行。
关于 glf 多说两句。使用 glf 去高频执行一个函数,和使用 RCB(循环型命令方块,紫色那种)去执行,是不一样的。区别主要在于其更新顺序先后。一般而言不会造成严重影响,但是在某些情况会不一样。比如,使用 CB 能检测到生物的{ HurtTime:10s}这个 NBT,而使用 glf 执行函数只能检测到的是{ HurtTime:9s},检测不到10,这是因为关于函数的更新,都放在了生物更新之后,而 CB 的更新则是在生物更新之前。详情可以看这里。按照 Searge 的说法,函数并不是命令方块的完全替代。这个说法,大家就见仁见智了。
以上是函数系统的相关构成,以及如何调用函数。接下来我们来了解一下函数系统的模块分类>>>。
本书首发来自成都索客科技有限公司,第一时间看正版内容!
《风流一代》广州路演返场 “00后”观众二刷电影化身细节控 由贾樟柯执导,赵涛主演的时代爱情片《风流一代》正在全国各大影院热映中,12月2日,贾樟柯再次返场广州与观众交流。现场活动中,一位二刷电影的“00后”观众对电影中的很多细节深有感
黔西南州外来人员随迁子女2024年报考普通高等学校资格审查结果公示 黔西南州外来人员随迁子女2024年报考普通高等学校资格审查结果公示根据《贵州省外来人员随迁子女报考普通高等学校规定》和贵州省招生考试院相关工作要求,黔西南州外来人员随迁子女2024年报考普通高等学校资
黔西南州“四个”着力推进妇幼保健重点(特色)专科建设 近年来,黔西南州高度重视妇幼健康工作,通过各级共同努力,妇幼健康发展水平得到整体提升,妇幼保健机构标准化建设与规范化管理取得明显成效,黔西南州妇幼保健院通过三级甲等妇幼保健院评审。截至目前,全州获批7
贵州高考录取工作已正式开始 可通过以下渠道查询录取结果 按照我省普通高校招生考试工作安排,高考录取工作已正式开始,预计8月20日全部结束,各批次录取工作时间具体如下:考生可通过以下渠道查询录取结果:1.贵州省普通高校招生考试考生综合信息平台贵州省普通高校招
小兔温尼想换个地方睡觉 时间:2023-01-08 14:15 来源:未知 作者:未知小兔温尼独自坐在自己的小床上。他的兄弟姐妹都去度假了。温尼觉得好孤单,孤单得都睡不着觉,总觉得缺点儿什么。突然,温尼想到缺什么了&mdas
黔西南州出现30站大暴雨 最大降雨望谟乐旺172.3毫米 一、天气实况降雨:29日07时至30日07时,黔西南州出现30站大暴雨(望谟14站、册亨9站、兴义2站、安龙5站),75站暴雨,78站大雨,最大降雨望谟乐旺172.3毫米,暴雨及以上量级降雨主要分布在
1 人保寿险财寿满堂两全保险怎么样?3年缴费7年满期最新收益演示 作者:
8477字
导读: 人保寿险最新推出的人保寿险财寿满堂两全保险,最高支持73周岁人群投保,3年缴费,7年即可满期,可对接双万能账户,资金规划领取灵活,
1 黔西南州妇幼保健院与北京同仁堂中医医院联合开展义诊活动 作者:
7字
6月13日,黔西南州妇幼保健院与北京同仁堂中医医院驻州妇幼保健院专家到郑屯镇开展“我为群众办实事,公共卫生下基层”为主题的大型联合义诊活动。北京同仁堂中医医院是中医药领域的佼佼
1 黔西南中院:民法典进校园 与法同行护成长 作者:
3字
“同学们,大家了解《民法典》吗?”“遇到校园欺凌该怎么办?”“可以给网络主播打赏吗?”5月23日下午,贵州省黔西南州中级人民法院
1 州发展改革委副主任刘远斌带队督导州级卫生健康项目建设 作者:
951字
2024年5月7日,州发展改革委副主任刘远斌同志到黔西南州中医院(一期)、(二期)建设项目(贵州省黔西南州省级区域医疗中心建设项目)、黔西南州人民医院扩建项目现场,督导检查州级卫生健康项目建设情况。在
1 运河故事沉淀安徽记忆 作者:
7461字
与故宫、敦煌相比,中国大运河,是一个“年轻”的世界文化遗产项目。2014年的6月,在卡塔尔多哈举办的第38届世界文化遗产大会上,中国大运河成功入选世界文化遗产名录。其中大运河安徽段总长约180公里。而
1 “世界第一高”要来了!他们,在“地球裂缝”上搭桥 作者:
53342字
贵州有“世界桥梁博物馆”之称。由于独特的自然地貌,贵州是世界上特大峡谷桥分布最密集、数量最多的地区。目前,世界前100座桥梁中,有一半在贵州。“五一”期
1 黔西南中院开展“6·9国际档案日”宣传活动 作者:
5字
6月9日是第17个国际档案日,为进一步普及档案知识,增强公民档案安全意识和法治意识,展现法院档案工作的重要性,6月7日,黔西南州中级人民法院组织干警参与以“筑梦现代化 奋斗兰台人&rdqu
1 今天下午至夜间,黔西南州将出现强降水天气 作者:
91字
黔西南州气象局6月13日发布强降水天气预报:今天下午至夜间黔西南州将出现强降水天气,部分乡镇暴雨,个别乡镇大暴雨,需加强防范地质灾害。一、具体预报预计:今天下午至夜间全州各地多云转阴天有阵雨或雷雨,雨
1 新疆一地发现在逃人贩子?辟谣 作者:
53779字
近日,部分网民在短视频平台及微信群内转发有关内地人贩子流窜新疆昌吉回族自治州呼图壁县的信息,经公安部门核实,该信息为谣言信息,视频中所述老人为甘肃籍老人,与丈夫来呼图壁县寻亲,该老人并非人贩子,目前在
1 黔西南州2024年上半年地区生产总值 作者:
9312字
根据市(州)生产总值统一核算结果,2024年上半年全州地区生产总值764.51亿元,按不变价计算,比上年同期增长4.0%。其中,第一产业增加值106.89亿元,增长4.1%;第二产业增加值243.86