机器人WBW
本帖最后由 林扬骐 于 2017-7-10 15:04 编辑
大家应该都知道fill与clone都只能选择一小片区域,很叫人苦恼,尤其是想修复地图的地图制作者

此方法的思想是化“体”为“线”,利用fill出的带auto的(1.9的nbt)命令方块 我估计讲到这里大部分人都会了




大片fill
一般固定格式是这样的:
  1. /fill x y z x2 y2 z2
复制代码
假如我想fill出一片51x51x51的石英块,原本该是这样:

  1. /fill ~ ~ ~ ~50 ~50 ~50 quartz_block
复制代码

可是mc仅支持32768(32x32x32)个方块


所以需要另一种方法:
  1. fill ~ ~ ~ ~ ~50 ~ command_block 0 replace {auto:1,Command:fill ~ ~ ~ ~50 ~ ~ command_block 0 replace {auto:1,Command:fill ~ ~ ~ ~ ~ ~50 quartz_block}}
复制代码
此方法的思想便是:沿y轴fill出一条“线”,然后“线”上每个“点”(命令方块)都沿x轴fill出一条“线”,于是形成了一个“xy平面”,最后再让这个“面”上每一“点”都沿z轴fill出一条“线”,于是形成了一个“体”
而让命令方块里的指令自施发的“神力”便是1.9版本中命令方块auto:1的nbt(所以用1.8的同学,老老实实fill红石块激活命令方块吧





于是固定格式出来了(x,y,z,x2,y2,z2可以为绝对坐标)
  1. fill x y z x y2 z command_block 0 replace {auto:1,Command:fill ~ ~ ~ x2 ~ ~ command_block 0 replace {auto:1,Command:fill ~ ~ ~ ~ ~ z2 quartz_block}}
复制代码



大片clone
clone能取的方块更少,只有4096(16x16x16)
固定格式:
  1. /clone x1 y1 z1 x2 y2 z2 x y z
复制代码


在这里,我给出两种方法

方法一:
格式(不太确定的格式)
  1. fill x1 y1 z1 x1 y2 z1 command_block 0 replace {auto:1,Command:fill ~ ~ ~ x2 ~ ~ command_block 0 replace {auto:1,Command:clone ~ ~ ~ ~ ~ z2 x y z}
复制代码
注:在最后的x、y、z中,x、y只能为相对坐标(可以对命令进行调整,但始终只有一个坐标轴可以用绝对坐标)
实际操作时,我们会发现会把fill出来的命令方块给包括在内(一起clone了,还会换掉clone区域内一部分方块)

所以,我们会不得不进行一些调整,比如把选择的区域再扩大,并且最后clone的z1进行一些修改什么的……
当然,最后可能还得用fill来清空一次命令方块
(讲得有点晕了……clone这一部分的麻烦的解决方法特别多,就看你想不想得出来了,如果遇到实在解决不了的方法就叫我吧,我还会补充说明的)


方法二:
方法二是利用实体,优点是不会把fill出的命令方块clone下来,但仍有上一个”注”的缺点,步骤:
1.fill出一大片实体(fill实体的方法下面会讲)
2.execute清除fill出的命令方块

3.用execute来clone,完成(别忘了清除实体)





fill实体
很多人都表示实体不能fill,实际上是可以“fill”的(然而我估计大部分人都会)
我用药水云举例子吧(不想要粒子效果的请去掉Particle与WaitTime):
一小片的fill:
  1. fill ~ ~ ~ ~50 ~ ~50 command_block 0 replace {auto:1,Command:summon AreaEffectCloud ~ ~ ~ {Duration:10000,Particle:"mobSpell",WaitTime:10000}}
复制代码
一大片的fill(利用之前讲的方法):
  1. fill ~ ~ ~ ~ ~50 ~ command_block 0 replace {auto:1,Command:fill ~ ~ ~ ~50 ~ ~ command_block 0 replace {auto:1,Command:fill ~ ~ ~ ~ ~ ~50 command_block 0 replace {auto:1,Command:summon AreaEffectCloud ~ ~ ~ {Duration:10000,Particle:"mobSpell",WaitTime:10000}}}}
复制代码
当然了,fill完以后记得用execute清空命令方块




这是一小片fill出来的效果(一大片的就不展示了)



(没有粒子效果的话一点也不卡)
于是可以更快地制作点阵 然而做点阵的玩家估计一般都知道此方法


好的就是这样,希望大家喜欢这个方法,当然更好是能提出一些意见或建议,谢谢








Deing
结论是,真要fill一大片区域还是用mcedit更加划算一点2333.
当然不少人都还不会或者懒得用mcedit所以这个方法还是值得一看的。

pca006132
Deing 发表于 2016-2-26 22:24
结论是,真要fill一大片区域还是用mcedit更加划算一点2333.
当然不少人都还不会或者懒得用mcedit所以这个方 ...

系统里如果需要大范围的话就需要这个方法
那就不是mce能做的了,因为那不是预设的而是游戏途中修改的

msydsg
二维码。。。

lzs1234
其实就是fill出一堆自动执行的CB,然后每个CBfill一部分?

乾.坤
挺好的思路,有助于方便的解决大规模地图建造,加油( ?▽` )?

kh1230
。。。。。。。

kh1230
。。。。。。。。。。

840196733mw
fill实体有趣 不过只能在空旷时用,设计之前得考虑好,不然毁图
(大面积生成实体还是烦人)

2995375049
看起来好厉害....

RedStone_jun
所以。。。。。这是好思路???

2492311601
为何1.12.2不行,有没有适合1.12.2的方法

第一页 上一页 下一页 最后一页