Minecraft(我的世界)中文论坛

标题: MC1.8:指令方块的HideFlags教程

作者: PotatoMaster101    时间: 2014-6-16 17:23
标题: MC1.8:指令方块的HideFlags教程
本帖最后由 PotatoMaster101 于 2014-6-16 17:49 编辑

大家好,今天来教大家一个做地图的小窍门。就是这个{HideFlags}。这个dataTag可以用在物品上面,来把物品的显示数据屏蔽掉。比如:如果是一把附魔的钻石剑,那么加入这个{HideFlags}后,钻石剑的附魔就会被屏蔽掉,但是附魔还是存在,只是玩家无法看见。不光是附魔,连属性,{CanDestroy},{Unbreakable},{CanPlaceOn},{Author}等等都可以屏蔽掉。如果做冒险地图的话,那么就是利器,可以把信息都屏蔽,这样玩家要动脑才会通关。这个{HideFlags}在MC的14w06a版本时第一次出现。

进入教程。这个{HideFlags}的输入有很多数值,并不是1或者0。因为这个{HideFlags}可以自己选择屏蔽的东西。
首先,我们先刷出一把有很多信息的钻石剑:
  1. /give @p minecraft:diamond_sword 1 0
  2. {Unbreakable:1,AttributeModifiers:[{Operation:0,UUIDLeast:1,UUIDMost:1,Amount:9000000000.0,AttributeName:generic.attackDamage,Name:Attack}],ench:[{id:16,lvl:90000}]}
复制代码
这把钻石剑主要是拥有附魔,自定义属性和永远不毁这3个属性。但是玩家可以轻易看出这把钻石剑的所有信息。于是我们可以加入{HideFlags},来隐藏这些信息。


这个很简单,在dataTag里加入:{HideFlags:63}后,就可以隐藏所有的信息,例子:
  1. /give @p minecraft:diamond_sword 1 0
  2. {Unbreakable:1,AttributeModifiers:[{Operation:0,UUIDLeast:1,UUIDMost:1,Amount:9000000000.0,AttributeName:generic.attackDamage,Name:Attack}],ench:[{id:16,lvl:90000}],HideFlags:63}
复制代码
大家看见在指令的最后加入了{HideFlags},后面的值是63,也就是隐藏所有的信息(不包括名字和附加文字)。但是缺点是剑的附魔还是会显示。注意的是,这个{HideFlags}只是用来隐藏信息,而附魔什么还是存在的,并没有被{HideFlags}清除,只是不显示而已。


之后来说的是HideFlags后面的值。后面有很多数值可以填写,每个都是控制隐藏一个单独的信息。发几个常用的:

1 - 隐藏附魔
2 - 隐藏自定义属性
3 - 隐藏附魔和自定义属性
4 - 隐藏{Unbreakable} (永久不毁)
8 - 隐藏{CanDestroy} (可破坏)
16 - 隐藏{CanPlaceOn} (可放置在)
32 - 隐藏大部分信息(药水信息,书作者,烟花效果等等)
63 - 隐藏所有的信息,除了名字和附加文字

这里就是一些常用的数值。一般用63就可以了,除非要自定义什么要显示什么不要显示。

{CanDestroy}那些只是用在冒险模式地图上面的,但是使用了后物品上面会显示可破坏什么方块。所以,制作人员要是想不让玩家知道什么可以破坏什么,那就可以使用这个{HideFlags}。

帖子最后提取Cyqsimon的推断:
1 - 隐藏附魔
2 - 隐藏自定义属性
4 - 隐藏{Unbreakable} (永久不毁)
8 - 隐藏{CanDestroy} (可破坏)
16 - 隐藏{CanPlaceOn} (可放置在)
32 - 隐藏其他(大部分)信息(药水信息,书作者,烟花效果等等)

可以注意到所有这些数字都是二进制数(2的次方数),而这样安排是有特殊性的

任意数量的任意二进制数相加,结果都是不同的,比如,4+32=36,但是你是永远无法使用别的二进制数组合相加等于36,(当然不能重复相加同一个数),同样的,1+16+32=49,1+2+4+8=15等等都是独特的,即每个0-63的数字必定代表了一种独特的“隐藏数据种类”组合(0代表全部显示)

用几个例子说明:如果想要隐藏CanDestroy和自定义附魔,这个数字即是1+8=9;如果想要隐藏自定义属性、自定义附魔、以及Unbreakable,这个数字即使1+2+4=7;如果想要全部隐藏,这个数字即是1+2+4+8+16+32=63;以此类推

========END==========

作者: RAY5DHao    时间: 2014-6-16 17:25
不把我的名字挂上真有点桑心了
作者: cow_bra    时间: 2014-6-16 17:27
卅个屮 发表于 2014-6-16 17:25
不把我的名字挂上真有点桑心了

你最近没有成为活跃第一呢..
作者: ooooooooyeah    时间: 2014-6-16 17:28
楼主的教程不错,不过这是14w06a的功能,为什么现在才发出来{:10_493:}
作者: PotatoMaster101    时间: 2014-6-16 17:30
ooooooooyeah 发表于 2014-6-16 17:28
楼主的教程不错,不过这是14w06a的功能,为什么现在才发出来

因为这个NBT本来不会发的,后来CBL的一员来问,那就来发一贴
作者: RAY5DHao    时间: 2014-6-16 17:34
cow_bra 发表于 2014-6-16 17:27
你最近没有成为活跃第一呢..

8级了少水点
作者: cyqsimon    时间: 2014-6-16 17:43
你应该讲一下这个二进制标签的特殊性

比如如果想隐藏“附魔”&隐藏“可破坏”,只要输入9即可,因为1+8=9

帮你写个,如果想的话直接复制进帖子好了

1 - 隐藏附魔
2 - 隐藏自定义属性
4 - 隐藏{Unbreakable} (永久不毁)
8 - 隐藏{CanDestroy} (可破坏)
16 - 隐藏{CanPlaceOn} (可放置在)
32 - 隐藏其他(大部分)信息(药水信息,书作者,烟花效果等等)

可以注意到所有这些数字都是二进制数(2的次方数),而这样安排是有特殊性的

任意数量的任意二进制数相加,结果都是不同的,比如,4+32=36,但是你是永远无法使用别的二进制数组合相加等于36,(当然不能重复相加同一个数),同样的,1+16+32=49,1+2+4+8=15等等都是独特的,即每个0-63的数字必定代表了一种独特的“隐藏数据种类”组合(0代表全部显示)

用几个例子说明:如果想要隐藏CanDestroy和自定义附魔,这个数字即是1+8=9;如果想要隐藏自定义属性、自定义附魔、以及Unbreakable,这个数字即使1+2+4=7;如果想要全部隐藏,这个数字即是1+2+4+8+16+32=63;以此类推

作者: Bryan33    时间: 2014-6-16 17:49
PotatoMaster101 发表于 2014-6-16 17:30
因为这个NBT本来不会发的,后来CBL的一员来问,那就来发一贴

明明是你自己问的不毁NBT-_-
作者: PotatoMaster101    时间: 2014-6-16 17:51
a390807154 发表于 2014-6-16 17:49
明明是你自己问的不毁NBT-_-

这帖子又不是不毁,而是{HideFlags}
作者: PotatoMaster101    时间: 2014-6-16 17:51
三国梦 发表于 2014-6-16 17:47
**** 作者被禁止或删除 内容自动屏蔽 ****

不玩,1.6.2版本
作者: PotatoMaster101    时间: 2014-6-16 17:51
cyqsimon 发表于 2014-6-16 17:43
你应该讲一下这个二进制标签的特殊性

比如如果想隐藏“附魔”&隐藏“可破坏”,只要输入9即可,因为1+8=9

加好了。你怎么知道我这么快发帖 你不是只管新闻
作者: cyqsimon    时间: 2014-6-16 18:05
PotatoMaster101 发表于 2014-6-16 17:51
加好了。你怎么知道我这么快发帖 你不是只管新闻



再说了,这可不是推断,如果程序中利用了二进制数,十有八九都是做data简化的,I know because I use it.

你想想,如果不用这种表达,那会是什么情况

HideFlags:{Enchantment:(true/false),AttributeModifiers:(true/false),Unbreakable:(true/false),CanDestory:(true/false),CanPlaceOn:(true/false),OtherProperties:(true/false)}



是不是头疼死了

而且这我也试验过的,确实是这么用的

而且这种应用一点都不奇葩,只要对于二进制数有过点研究的差不多都能想到

@a390807154
作者: PpY_SK    时间: 2014-6-16 18:29
对了,你作品索引和教程索引,并为一类,然后再扔到http://www.mcbbs.net/thread-85937-1-1.html这里面去
作者: PotatoMaster101    时间: 2014-6-16 18:35
PpY_SK 发表于 2014-6-16 18:29
对了,你作品索引和教程索引,并为一类,然后再扔到http://www.mcbbs.net/thread-85937-1-1.html这里面去 ...

?我又不能编辑龙猫的帖子
作者: PpY_SK    时间: 2014-6-16 19:05
PotatoMaster101 发表于 2014-6-16 18:35
?我又不能编辑龙猫的帖子

我帮你扔进去,然后我看了一下,龙猫有http://www.mcbbs.net/thread-260804-1-1.html索引贴,到时候我和龙猫磋商一下,看看能不能并到一块,不要担心金币人气啥啥的,你认为是啥??分开还是在一起?
作者: songfeitong    时间: 2014-6-16 19:15
PpY_SK 发表于 2014-6-16 18:29
对了,你作品索引和教程索引,并为一类,然后再扔到http://www.mcbbs.net/thread-85937-1-1.html这里面去 ...

龙猫的算个人索引,当时候还是新开吧。他的索引当官方索引不太合适。
作者: PotatoMaster101    时间: 2014-6-16 21:38
PpY_SK 发表于 2014-6-16 19:05
我帮你扔进去,然后我看了一下,龙猫有http://www.mcbbs.net/thread-260804-1-1.html索引贴,到时候我和龙 ...

随便。。。。
作者: きのこMogu_    时间: 2014-6-18 14:43
冒昧问一下。。大神是从哪里知道这些1.8的新指令的
作者: PotatoMaster101    时间: 2014-6-18 16:36
きのこMogu_ 发表于 2014-6-18 14:43
冒昧问一下。。大神是从哪里知道这些1.8的新指令的

看MC的最新版的新闻等等 然后自己再研究一下
作者: きのこMogu_    时间: 2014-6-18 16:39
PotatoMaster101 发表于 2014-6-18 16:36
看MC的最新版的新闻等等 然后自己再研究一下

哦哦原来是这样的啊0 0
作者: chyx    时间: 2014-7-10 14:23
cyqsimon 发表于 2014-6-16 17:43
你应该讲一下这个二进制标签的特殊性

比如如果想隐藏“附魔”&隐藏“可破坏”,只要输入9即可,因为1+8=9

药水的数据值
作者: hacccc    时间: 2014-8-25 12:15
终于找到了“无法破坏”的NBT了,谢了
作者: jesse    时间: 2014-11-27 20:10
关于那二进制标签,用的应该是BitMap。最大值64=2^6,所以至少用了6位的变量来存储。这个变量的每一位分别代表一种属性。写成二进制形式就是000001,010110,这样开启了哪些开关就一目了然了。
作者: q2539171536    时间: 2014-11-27 21:43
MCBBS有你更精彩~
作者: ⭐✔️    时间: 2014-11-30 11:43
最近发现PM很多版聊内容很想扣分
作者: PotatoMaster101    时间: 2014-11-30 15:10
贰逼 发表于 2014-11-30 11:43
最近发现PM很多版聊内容很想扣分

。。。发截图看看 哪有
作者: ⭐✔️    时间: 2014-11-30 16:05
PotatoMaster101 发表于 2014-11-30 15:10
。。。发截图看看 哪有

你这帖子里都有
作者: 刀光琴影    时间: 2015-2-1 21:13
{Author}是干什么用的?能不能专门对物品的NBT开一篇贴?
作者: PotatoMaster101    时间: 2015-2-5 16:34
刀光琴影 发表于 2015-2-1 21:13
{Author}是干什么用的?能不能专门对物品的NBT开一篇贴?

书的作者

这么简单 以前早就发过了
作者: lzs1234    时间: 2015-2-13 10:34
我一直不懂UUIDLeast和UUIDMost是干嘛的…
作者: vpiaov    时间: 2015-11-4 16:19
不错........
作者: 石中    时间: 2015-11-5 17:32
好东西
做地图最好用了!!
作者: 林扬骐    时间: 2015-11-5 17:39
挺有用的,可是可放置在是什么意思?
作者: 德芙defanive    时间: 2018-3-18 00:49
大神,怎么让已经隐藏的信息重新显示啊,帮帮我大神
作者: 841256aa    时间: 2019-8-18 16:13
這個東西也太棒了
作者: 尹梦灬小年    时间: 2019-8-18 16:41
6666666666666666666666666666
作者: 0-zero-0    时间: 2020-3-23 08:56
林扬骐 发表于 2015-11-5 17:39
挺有用的,可是可放置在是什么意思?

冒险模式下也可以放置在规定规定方块上下左右的方块
还有一个“可以破坏”令玩家在冒险模式下也可以在手持该物品时破坏规定方块
经常用于冒险模式解密地图