本帖最后由 乙烯_中国 于 2015-10-8 21:52 编辑
大家好,我是秋一,这是我在本版块的第一个帖子,排版不好请各位大大见谅~
我感觉,发这个好像有点太小白了,因为玩CB的大触们在看到新NBT以后首先会想到的就是OOC(Only OneCommand)编写的变化,其次会觉得
Oh f**k S——B Moj**g——!
好了直接进入正题吧?
其实这个帖子是先发在了别的吧的~就不贴传送门了,以免有打广告的嫌疑
以往由于使用的是Riding标签,因此在1.8通常是按照执行顺序的倒序(以下简称倒序)来编写指令,而且还要通过fill 红石块来激活;
到了1.9的早期版本(具体来讲是15w35a以后),由于有了CCB(Chain Command Block,链式命令方块)和自激活(Always Active,即{auto:1/0}),因此可以通过召唤一个自激活的ICB+骑乘若干CCB的方式来编写OneCommand,且编写顺序为指令顺序的正序(以下简称正序)
具体怎么写就不提了,反正过期了对吧?我们来聊聊新的编写方法~
首先新标签是Passengers:[],这个应该不用多说了吧?
在这里就讲两种思路吧,如果大家有更好的意见不妨指出来~
我感觉,发这个好像有点太小白了,因为玩CB的大触们在看到新NBT以后首先会想到的就是OOC(Only OneCommand)编写的变化,其次会觉得
Oh f**k S——B Moj**g——!
好了直接进入正题吧?
其实这个帖子是先发在了别的吧的~就不贴传送门了,以免有打广告的嫌疑
以往由于使用的是Riding标签,因此在1.8通常是按照执行顺序的倒序(以下简称倒序)来编写指令,而且还要通过fill 红石块来激活;
到了1.9的早期版本(具体来讲是15w35a以后),由于有了CCB(Chain Command Block,链式命令方块)和自激活(Always Active,即{auto:1/0}),因此可以通过召唤一个自激活的ICB+骑乘若干CCB的方式来编写OneCommand,且编写顺序为指令顺序的正序(以下简称正序)
具体怎么写就不提了,反正过期了对吧?我们来聊聊新的编写方法~
首先新标签是Passengers:[],这个应该不用多说了吧?
在这里就讲两种思路吧,如果大家有更好的意见不妨指出来~
第一种是正序编写,采用朝上的自激活ICB+CCB指令串的方式,
当然,因为生成骑乘的落沙有3gt左右的延时,所以激活指令串肯定是要放在最后的。
具体做法是先召唤一个朝上、未激活的ICB,为了避免指令霸屏,这个ICB默认填gamerule commandBlockOutput false,当然如果大家的口味比较独特的话,不写这个也是无关紧要的~这里,也可以先用其他上表面完整的方块代替,比如石头……
然后依次搭载朝上的CCB,里面填写要执行的指令,写完以后,再搭载一个朝上的CCB,填写指令为fill ~ ~1 ~ ~ ~-X ~ air。其中,X=要执行的指令数+2,这里的指令数特指前面的CCB数量,不包括本条指令。
最后再搭载一个任意朝向的ICB,将最底下的ICB激活(blockdata 相对坐标 {auto:1}),或者如果先前没有用ICB的话,在这里放置一下ICB(setblock 相对坐标 command_block 1 replace {auto:1,Command:gamerule commandBlockOutput false})
为了方便理解,我大致拆分成这几个部分
第一部分是summon
大意是召唤一个可以生成石头方块的落沙
第二部分是OneCommand主体部分,可以进行嵌套,嵌套都是插入在中括号里面,注意是按照正序编写!
Tile:211,Data:1指的是朝上的CCB,Command:后面依次填上要执行的指令,嵌套插入在中括号里面~
当要执行的指令填完以后,插入第三部分,用于激活并拆掉OneCommand
注意这里的X就是前面说的X,要注意有两个地方要改
使用方法是在记事本之类的软件里面把OneCommand写好,复制粘贴到一个ICB里面,改为Always Active然后确认即可
第二种思路是倒序
由于CB默认朝下放置,因此可以通过自激活ICB+CCB指令串(倒序编写)的方式来实现OneCommand
具体做法是先召唤一个朝下的CCB,指令是fill ~ ~-1 ~ ~ ~Y ~ air
这里的Y=指令数+1,指令数不包括本条指令,以及ICB里面填的gamerule commandBlockOutput false
第一部分依旧是summon,这里先召唤的是最后拆柱子用的
意思不多说了~
第二部分是OneCommand的主体
这里要倒序编写!
第三部分是激活核心
使用方法同思路一
因为写得比较快,也没怎么校对,如有错误请各位指出~如果有更好的方法,也希望大家提出来,互相学习一下!
大家好,我是秋一,这是我在本版块的第一个帖子,排版不好请各位大大见谅~
我感觉,发这个好像有点太小白了,因为玩CB的大触们在看到新NBT以后首先会想到的就是OOC(Only OneCommand)编写的变化,其次会觉得
Oh f**k S——B Moj**g——!
好了直接进入正题吧?
其实这个帖子是先发在了别的吧的~就不贴传送门了,以免有打广告的嫌疑
以往由于使用的是Riding标签,因此在1.8通常是按照执行顺序的倒序(以下简称倒序)来编写指令,而且还要通过fill 红石块来激活;
到了1.9的早期版本(具体来讲是15w35a以后),由于有了CCB(Chain Command Block,链式命令方块)和自激活(Always Active,即{auto:1/0}),因此可以通过召唤一个自激活的ICB+骑乘若干CCB的方式来编写OneCommand,且编写顺序为指令顺序的正序(以下简称正序)
具体怎么写就不提了,反正过期了对吧?我们来聊聊新的编写方法~
首先新标签是Passengers:[],这个应该不用多说了吧?
在这里就讲两种思路吧,如果大家有更好的意见不妨指出来~
2021.12 数据,可能有更多内容
大家好,我是秋一,这是我在本版块的第一个帖子,排版不好请各位大大见谅~我感觉,发这个好像有点太小白了,因为玩CB的大触们在看到新NBT以后首先会想到的就是OOC(Only OneCommand)编写的变化,其次会觉得
Oh f**k S——B Moj**g——!
好了直接进入正题吧?
其实这个帖子是先发在了别的吧的~就不贴传送门了,以免有打广告的嫌疑
以往由于使用的是Riding标签,因此在1.8通常是按照执行顺序的倒序(以下简称倒序)来编写指令,而且还要通过fill 红石块来激活;
到了1.9的早期版本(具体来讲是15w35a以后),由于有了CCB(Chain Command Block,链式命令方块)和自激活(Always Active,即{auto:1/0}),因此可以通过召唤一个自激活的ICB+骑乘若干CCB的方式来编写OneCommand,且编写顺序为指令顺序的正序(以下简称正序)
具体怎么写就不提了,反正过期了对吧?我们来聊聊新的编写方法~
首先新标签是Passengers:[],这个应该不用多说了吧?
在这里就讲两种思路吧,如果大家有更好的意见不妨指出来~
第一种是正序编写,采用朝上的自激活ICB+CCB指令串的方式,
当然,因为生成骑乘的落沙有3gt左右的延时,所以激活指令串肯定是要放在最后的。
具体做法是先召唤一个朝上、未激活的ICB,为了避免指令霸屏,这个ICB默认填gamerule commandBlockOutput false,当然如果大家的口味比较独特的话,不写这个也是无关紧要的~这里,也可以先用其他上表面完整的方块代替,比如石头……
然后依次搭载朝上的CCB,里面填写要执行的指令,写完以后,再搭载一个朝上的CCB,填写指令为fill ~ ~1 ~ ~ ~-X ~ air。其中,X=要执行的指令数+2,这里的指令数特指前面的CCB数量,不包括本条指令。
最后再搭载一个任意朝向的ICB,将最底下的ICB激活(blockdata 相对坐标 {auto:1}),或者如果先前没有用ICB的话,在这里放置一下ICB(setblock 相对坐标 command_block 1 replace {auto:1,Command:gamerule commandBlockOutput false})
为了方便理解,我大致拆分成这几个部分
第一部分是summon
代码:
- summon FallingSand ~ ~1 ~ {Time:1,Tile:1,Passengers:[]}
大意是召唤一个可以生成石头方块的落沙
第二部分是OneCommand主体部分,可以进行嵌套,嵌套都是插入在中括号里面,注意是按照正序编写!
代码:
- {id:FallingSand,Time:1,Tile:211,Data:1,TileEntityData:{Command:},Passengers:[]}
Tile:211,Data:1指的是朝上的CCB,Command:后面依次填上要执行的指令,嵌套插入在中括号里面~
当要执行的指令填完以后,插入第三部分,用于激活并拆掉OneCommand
代码:
- {id:FallingSand,Time:1,Tile:211,Data:1,TileEntityData:{Command:fill ~ ~1 ~ ~ ~-X ~ air},Passengers:[{id:FallingSand,Time:1,Tile:137,TileEntityData:{auto:1,Command:setblock ~ ~-X ~ command_block 1 replace {auto:1,Command:gamerule commandBlockOutput false}}}]}
注意这里的X就是前面说的X,要注意有两个地方要改
使用方法是在记事本之类的软件里面把OneCommand写好,复制粘贴到一个ICB里面,改为Always Active然后确认即可
第二种思路是倒序
由于CB默认朝下放置,因此可以通过自激活ICB+CCB指令串(倒序编写)的方式来实现OneCommand
具体做法是先召唤一个朝下的CCB,指令是fill ~ ~-1 ~ ~ ~Y ~ air
这里的Y=指令数+1,指令数不包括本条指令,以及ICB里面填的gamerule commandBlockOutput false
第一部分依旧是summon,这里先召唤的是最后拆柱子用的
代码:
- summon FallingSand ~ ~1 ~ {Time:1,Tile:211,TileEntityData:{Command:fill ~ ~-1 ~ ~ ~Y ~ air},Passengers:[]}
意思不多说了~
第二部分是OneCommand的主体
代码:
- {id:FallingSand,Time:1,Tile:211,TileEntityData:{Command:},Passengers:[]}
这里要倒序编写!
第三部分是激活核心
代码:
- {id:FallingSand,Time:1,Tile:137,TileEntityData:{auto:1,Command:gamerule commandBlockOutput false}}
使用方法同思路一
因为写得比较快,也没怎么校对,如有错误请各位指出~如果有更好的方法,也希望大家提出来,互相学习一下!
意思就是说,auto为1的icb直接就可以激活,rcb就是一直高频吗,无需红石块?
另外这个passengers是被骑乘的单位吗,我没摸过1.9的NBT
正价氟 发表于 2015-10-8 11:14
意思就是说,auto为1的icb直接就可以激活,rcb就是一直高频吗,无需红石块? ...
对,auto:1的ICB放置了会激活一次指令,RCB则一直循环
正价氟 发表于 2015-10-8 11:15
另外这个passengers是被骑乘的单位吗,我没摸过1.9的NBT
Riding后面才是被骑乘的单位,而Passengers后面跟的是骑在上面的实体,这个在新特性里面有,所以我帖子就没写 =_=
非常不错 下载看看 啦啦
水经验加沙发
水啊。。。。。。。。。。。。。。
我不是码农,所以不会写滤器,等论坛里面其他人写吧~我这里是提供一个编写的思路
acordome 发表于 2015-10-8 12:37
我不是码农,所以不会写滤器,等论坛里面其他人写吧~我这里是提供一个编写的思路 ...
那我做好了帮帮我变成码吧
和Riding一起用
林扬骐 发表于 2015-10-8 19:16
和Riding一起用
Riding已经被废除了
我有一种想杀了Mojang的冲动……还我Riding……
我还是继续停留在1.8好了
我还是继续停留在1.8好了
lzs1234 发表于 2015-10-8 23:26
我有一种想杀了Mojang的冲动……还我Riding……
我还是继续停留在1.8好了
嘛,总归要适应新东西的...其实我觉得后面还会改,就是定义乘客的位置,如果加上了这个特性,应该会有更简单的书写方式
这些都无所谓了,所做的只需要等待